{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fixedFee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fractionalFee",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryCapitalFeesSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryCapitalProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolWalletAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryCapitalTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "instanceWalletAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryFeesTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "walletAddress",
          "type": "address"
        }
      ],
      "name": "LogTreasuryInstanceWalletSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryPayoutProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolWalletAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryPayoutTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fixedFee",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fractionalFee",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryPremiumFeesSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryPremiumProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolWalletAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryPremiumTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "erc20Address",
          "type": "address"
        }
      ],
      "name": "LogTreasuryProductTokenSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "LogTreasuryResumed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "walletAddress",
          "type": "address"
        }
      ],
      "name": "LogTreasuryRiskpoolWalletSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "LogTreasurySuspended",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryWithdrawalProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolWalletAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogTreasuryWithdrawalTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "fixedFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "fractionalFee",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "feeCalculationData",
          "type": "bytes"
        }
      ],
      "name": "createFeeSpecification",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "componentId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fractionalFee",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "feeCalculationData",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct ITreasury.FeeSpecification",
          "name": "feeSpec",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getComponentToken",
      "outputs": [
        {
          "internalType": "contract IERC20",
          "name": "token",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getFeeSpecification",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "componentId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fractionalFee",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "feeCalculationData",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct ITreasury.FeeSpecification",
          "name": "feeSpecification",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFractionFullUnit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInstanceWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "instanceWalletAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getRiskpoolWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "riskpoolWalletAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "capitalAmount",
          "type": "uint256"
        }
      ],
      "name": "processCapital",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netCapitalAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "processPayout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netPayoutAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPremium",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netPremiumAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "processPremium",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netPremiumAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processWithdrawal",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "componentId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fractionalFee",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "feeCalculationData",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct ITreasury.FeeSpecification",
          "name": "feeSpec",
          "type": "tuple"
        }
      ],
      "name": "setCapitalFees",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "instanceWalletAddress",
          "type": "address"
        }
      ],
      "name": "setInstanceWallet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "componentId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedFee",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fractionalFee",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "feeCalculationData",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct ITreasury.FeeSpecification",
          "name": "feeSpec",
          "type": "tuple"
        }
      ],
      "name": "setPremiumFees",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "erc20Address",
          "type": "address"
        }
      ],
      "name": "setProductToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "riskpoolWalletAddress",
          "type": "address"
        }
      ],
      "name": "setRiskpoolWallet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "39": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol",
    "4": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol",
    "exportedSymbols": {
      "IERC20": [
        15820
      ],
      "ITreasury": [
        12909
      ]
    },
    "id": 12910,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12651,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:39"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "id": 12652,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12910,
        "sourceUnit": 15821,
        "src": "62:56:39",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 12909,
        "linearizedBaseContracts": [
          12909
        ],
        "name": "ITreasury",
        "nameLocation": "130:9:39",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "id": 12654,
            "name": "LogTreasurySuspended",
            "nameLocation": "153:20:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12653,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "173:2:39"
            },
            "src": "147:29:39"
          },
          {
            "anonymous": false,
            "id": 12656,
            "name": "LogTreasuryResumed",
            "nameLocation": "187:18:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12655,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "205:2:39"
            },
            "src": "181:27:39"
          },
          {
            "anonymous": false,
            "id": 12664,
            "name": "LogTreasuryProductTokenSet",
            "nameLocation": "220:26:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12663,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12658,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "255:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12664,
                  "src": "247:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12657,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12660,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "274:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12664,
                  "src": "266:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "266:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12662,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "294:12:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12664,
                  "src": "286:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12661,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "286:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "246:61:39"
            },
            "src": "214:94:39"
          },
          {
            "anonymous": false,
            "id": 12668,
            "name": "LogTreasuryInstanceWalletSet",
            "nameLocation": "319:28:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12667,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12666,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "356:13:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12668,
                  "src": "348:21:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12665,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "348:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "347:23:39"
            },
            "src": "313:58:39"
          },
          {
            "anonymous": false,
            "id": 12674,
            "name": "LogTreasuryRiskpoolWalletSet",
            "nameLocation": "382:28:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12673,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12670,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "419:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12674,
                  "src": "411:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12669,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "411:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12672,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "439:13:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12674,
                  "src": "431:21:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12671,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "431:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "410:43:39"
            },
            "src": "376:78:39"
          },
          {
            "anonymous": false,
            "id": 12682,
            "name": "LogTreasuryPremiumFeesSet",
            "nameLocation": "466:25:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12676,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "500:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12682,
                  "src": "492:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12675,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "492:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12678,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "519:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12682,
                  "src": "511:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12677,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "511:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12680,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "537:13:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12682,
                  "src": "529:21:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12679,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "529:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "491:60:39"
            },
            "src": "460:92:39"
          },
          {
            "anonymous": false,
            "id": 12690,
            "name": "LogTreasuryCapitalFeesSet",
            "nameLocation": "563:25:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12689,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12684,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "597:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12690,
                  "src": "589:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12683,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "589:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12686,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "617:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12690,
                  "src": "609:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12685,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "609:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12688,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "635:13:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12690,
                  "src": "627:21:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12687,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "627:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "588:61:39"
            },
            "src": "557:93:39"
          },
          {
            "anonymous": false,
            "id": 12698,
            "name": "LogTreasuryPremiumTransferred",
            "nameLocation": "662:29:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12697,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12692,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "700:4:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12698,
                  "src": "692:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12691,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12694,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "714:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12698,
                  "src": "706:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12693,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12696,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "745:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12698,
                  "src": "737:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12695,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "737:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "691:61:39"
            },
            "src": "656:97:39"
          },
          {
            "anonymous": false,
            "id": 12706,
            "name": "LogTreasuryPayoutTransferred",
            "nameLocation": "764:28:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12705,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12700,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "801:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12706,
                  "src": "793:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12699,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "793:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12702,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "832:2:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12706,
                  "src": "824:10:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12701,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12704,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "844:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12706,
                  "src": "836:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12703,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "792:59:39"
            },
            "src": "758:94:39"
          },
          {
            "anonymous": false,
            "id": 12714,
            "name": "LogTreasuryCapitalTransferred",
            "nameLocation": "863:29:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12708,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "901:4:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12714,
                  "src": "893:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12707,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "893:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12710,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "915:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12714,
                  "src": "907:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12709,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "907:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12712,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "946:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12714,
                  "src": "938:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12711,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "938:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "892:61:39"
            },
            "src": "857:97:39"
          },
          {
            "anonymous": false,
            "id": 12722,
            "name": "LogTreasuryFeesTransferred",
            "nameLocation": "965:26:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12716,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1000:4:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12722,
                  "src": "992:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12715,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "992:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12718,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1014:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12722,
                  "src": "1006:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12717,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1006:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12720,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1045:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12722,
                  "src": "1037:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12719,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "991:61:39"
            },
            "src": "959:94:39"
          },
          {
            "anonymous": false,
            "id": 12730,
            "name": "LogTreasuryWithdrawalTransferred",
            "nameLocation": "1064:32:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12729,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12724,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1105:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12730,
                  "src": "1097:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12723,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1097:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12726,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1136:2:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12730,
                  "src": "1128:10:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12725,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1128:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12728,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1148:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12730,
                  "src": "1140:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12727,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1096:59:39"
            },
            "src": "1058:98:39"
          },
          {
            "anonymous": false,
            "id": 12736,
            "name": "LogTreasuryPremiumProcessed",
            "nameLocation": "1168:27:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12735,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12732,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1204:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12736,
                  "src": "1196:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12731,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1196:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12734,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1223:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12736,
                  "src": "1215:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12733,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1195:35:39"
            },
            "src": "1162:69:39"
          },
          {
            "anonymous": false,
            "id": 12744,
            "name": "LogTreasuryPayoutProcessed",
            "nameLocation": "1242:26:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12743,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12738,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1277:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12744,
                  "src": "1269:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12737,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12740,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1297:2:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12744,
                  "src": "1289:10:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12739,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1289:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12742,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1309:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12744,
                  "src": "1301:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12741,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1301:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1268:48:39"
            },
            "src": "1236:81:39"
          },
          {
            "anonymous": false,
            "id": 12752,
            "name": "LogTreasuryCapitalProcessed",
            "nameLocation": "1328:27:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12751,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12746,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1364:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12752,
                  "src": "1356:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1356:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12748,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1384:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12752,
                  "src": "1376:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12747,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1376:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12750,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1402:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12752,
                  "src": "1394:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12749,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1394:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1355:54:39"
            },
            "src": "1322:88:39"
          },
          {
            "anonymous": false,
            "id": 12760,
            "name": "LogTreasuryWithdrawalProcessed",
            "nameLocation": "1421:30:39",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 12759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12754,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1460:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12760,
                  "src": "1452:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12753,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12756,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1480:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12760,
                  "src": "1472:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12755,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1472:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12758,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1498:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12760,
                  "src": "1490:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12757,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1490:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1451:54:39"
            },
            "src": "1415:91:39"
          },
          {
            "canonicalName": "ITreasury.FeeSpecification",
            "id": 12773,
            "members": [
              {
                "constant": false,
                "id": 12762,
                "mutability": "mutable",
                "name": "componentId",
                "nameLocation": "1554:11:39",
                "nodeType": "VariableDeclaration",
                "scope": 12773,
                "src": "1546:19:39",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 12761,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12764,
                "mutability": "mutable",
                "name": "fixedFee",
                "nameLocation": "1583:8:39",
                "nodeType": "VariableDeclaration",
                "scope": 12773,
                "src": "1575:16:39",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 12763,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1575:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12766,
                "mutability": "mutable",
                "name": "fractionalFee",
                "nameLocation": "1609:13:39",
                "nodeType": "VariableDeclaration",
                "scope": 12773,
                "src": "1601:21:39",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 12765,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1601:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12768,
                "mutability": "mutable",
                "name": "feeCalculationData",
                "nameLocation": "1638:18:39",
                "nodeType": "VariableDeclaration",
                "scope": 12773,
                "src": "1632:24:39",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 12767,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "1632:5:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12770,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "1674:9:39",
                "nodeType": "VariableDeclaration",
                "scope": 12773,
                "src": "1666:17:39",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 12769,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1666:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 12772,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "1701:9:39",
                "nodeType": "VariableDeclaration",
                "scope": 12773,
                "src": "1693:17:39",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 12771,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1693:7:39",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "FeeSpecification",
            "nameLocation": "1519:16:39",
            "nodeType": "StructDefinition",
            "scope": 12909,
            "src": "1512:205:39",
            "visibility": "public"
          },
          {
            "functionSelector": "cc9cf8cd",
            "id": 12780,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setProductToken",
            "nameLocation": "1732:15:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12778,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12775,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "1756:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12780,
                  "src": "1748:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12774,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12777,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "1775:12:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12780,
                  "src": "1767:20:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12776,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1767:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1747:41:39"
            },
            "returnParameters": {
              "id": 12779,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1797:0:39"
            },
            "scope": 12909,
            "src": "1723:75:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "cab2504d",
            "id": 12785,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setInstanceWallet",
            "nameLocation": "1813:17:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12783,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12782,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1839:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12785,
                  "src": "1831:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12781,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1831:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1830:31:39"
            },
            "returnParameters": {
              "id": 12784,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1870:0:39"
            },
            "scope": 12909,
            "src": "1804:67:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "86039aed",
            "id": 12792,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setRiskpoolWallet",
            "nameLocation": "1885:17:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12787,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1911:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12792,
                  "src": "1903:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12786,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1903:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12789,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1931:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12792,
                  "src": "1923:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12788,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1923:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:51:39"
            },
            "returnParameters": {
              "id": 12791,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1962:0:39"
            },
            "scope": 12909,
            "src": "1876:87:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "62f0ab55",
            "id": 12806,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createFeeSpecification",
            "nameLocation": "1978:22:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12801,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12794,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2018:11:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12806,
                  "src": "2010:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12793,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2010:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12796,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "2047:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12806,
                  "src": "2039:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12795,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2039:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12798,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "2073:13:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12806,
                  "src": "2065:21:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12797,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2065:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12800,
                  "mutability": "mutable",
                  "name": "feeCalculationData",
                  "nameLocation": "2111:18:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12806,
                  "src": "2096:33:39",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 12799,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2096:5:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2000:135:39"
            },
            "returnParameters": {
              "id": 12805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12804,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2190:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12806,
                  "src": "2166:31:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$12773_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 12803,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12802,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 12773,
                      "src": "2166:16:39"
                    },
                    "referencedDeclaration": 12773,
                    "src": "2166:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$12773_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2165:33:39"
            },
            "scope": 12909,
            "src": "1969:230:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "01132a7f",
            "id": 12812,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setPremiumFees",
            "nameLocation": "2218:14:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12809,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2259:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12812,
                  "src": "2233:33:39",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$12773_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 12808,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12807,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 12773,
                      "src": "2233:16:39"
                    },
                    "referencedDeclaration": 12773,
                    "src": "2233:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$12773_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2232:35:39"
            },
            "returnParameters": {
              "id": 12811,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2276:0:39"
            },
            "scope": 12909,
            "src": "2209:68:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ca946aa",
            "id": 12818,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setCapitalFees",
            "nameLocation": "2291:14:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12815,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2332:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12818,
                  "src": "2306:33:39",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$12773_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 12814,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12813,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 12773,
                      "src": "2306:16:39"
                    },
                    "referencedDeclaration": 12773,
                    "src": "2306:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$12773_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2305:35:39"
            },
            "returnParameters": {
              "id": 12817,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2349:0:39"
            },
            "scope": 12909,
            "src": "2282:68:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5ecc078e",
            "id": 12829,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2369:14:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12820,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2392:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12829,
                  "src": "2384:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12819,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2384:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2383:19:39"
            },
            "returnParameters": {
              "id": 12828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12823,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2447:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12829,
                  "src": "2442:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12822,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2442:4:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12825,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2476:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12829,
                  "src": "2468:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12824,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2468:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12827,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2507:16:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12829,
                  "src": "2499:24:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12826,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2499:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2428:105:39"
            },
            "scope": 12909,
            "src": "2360:174:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "02108268",
            "id": 12842,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2553:14:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12831,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2576:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12842,
                  "src": "2568:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12830,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2568:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12833,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "2595:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12842,
                  "src": "2587:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12832,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2587:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2567:35:39"
            },
            "returnParameters": {
              "id": 12841,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12836,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2647:7:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12842,
                  "src": "2642:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 12835,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2642:4:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12838,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2676:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12842,
                  "src": "2668:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12837,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2668:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12840,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2707:16:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12842,
                  "src": "2699:24:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12839,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2699:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2628:105:39"
            },
            "scope": 12909,
            "src": "2544:190:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 12853,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "2753:13:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12844,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2775:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12853,
                  "src": "2767:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 12843,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2767:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12846,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "2794:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12853,
                  "src": "2786:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12845,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2786:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2766:37:39"
            },
            "returnParameters": {
              "id": 12852,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12849,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2851:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12853,
                  "src": "2843:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12848,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2843:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12851,
                  "mutability": "mutable",
                  "name": "netPayoutAmount",
                  "nameLocation": "2882:15:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12853,
                  "src": "2874:23:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12850,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2874:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2829:78:39"
            },
            "scope": 12909,
            "src": "2744:164:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "26debdaa",
            "id": 12864,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processCapital",
            "nameLocation": "2927:14:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12855,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2950:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12864,
                  "src": "2942:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12854,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2942:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12857,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "2968:13:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12864,
                  "src": "2960:21:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12856,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2960:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2941:41:39"
            },
            "returnParameters": {
              "id": 12863,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12860,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3030:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12864,
                  "src": "3022:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12859,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3022:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12862,
                  "mutability": "mutable",
                  "name": "netCapitalAmount",
                  "nameLocation": "3061:16:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12864,
                  "src": "3053:24:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12861,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3008:79:39"
            },
            "scope": 12909,
            "src": "2918:170:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d9358075",
            "id": 12875,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processWithdrawal",
            "nameLocation": "3103:17:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12866,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3129:8:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12875,
                  "src": "3121:16:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12865,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3121:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12868,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3147:6:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12875,
                  "src": "3139:14:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12867,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3120:34:39"
            },
            "returnParameters": {
              "id": 12874,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12871,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3201:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12875,
                  "src": "3193:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12870,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3193:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 12873,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3232:9:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12875,
                  "src": "3224:17:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12872,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3224:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3179:72:39"
            },
            "scope": 12909,
            "src": "3094:158:39",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "038696bb",
            "id": 12883,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentToken",
            "nameLocation": "3267:17:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12877,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3293:11:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12883,
                  "src": "3285:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12876,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3285:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3284:21:39"
            },
            "returnParameters": {
              "id": 12882,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12881,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3335:5:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12883,
                  "src": "3328:12:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$15820",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 12880,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12879,
                      "name": "IERC20",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 15820,
                      "src": "3328:6:39"
                    },
                    "referencedDeclaration": 15820,
                    "src": "3328:6:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$15820",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3327:14:39"
            },
            "scope": 12909,
            "src": "3258:84:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a434f0ad",
            "id": 12891,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeSpecification",
            "nameLocation": "3356:19:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12886,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12885,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3384:11:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12891,
                  "src": "3376:19:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12884,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3376:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3375:21:39"
            },
            "returnParameters": {
              "id": 12890,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12889,
                  "mutability": "mutable",
                  "name": "feeSpecification",
                  "nameLocation": "3443:16:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12891,
                  "src": "3419:40:39",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$12773_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 12888,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 12887,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 12773,
                      "src": "3419:16:39"
                    },
                    "referencedDeclaration": 12773,
                    "src": "3419:16:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$12773_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3418:42:39"
            },
            "scope": 12909,
            "src": "3347:114:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ccf5ca2",
            "id": 12896,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFractionFullUnit",
            "nameLocation": "3476:19:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12892,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3495:2:39"
            },
            "returnParameters": {
              "id": 12895,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12894,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 12896,
                  "src": "3520:7:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12893,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3520:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3519:9:39"
            },
            "scope": 12909,
            "src": "3467:62:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a44330c4",
            "id": 12901,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceWallet",
            "nameLocation": "3543:17:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12897,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3560:2:39"
            },
            "returnParameters": {
              "id": 12900,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12899,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "3593:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12901,
                  "src": "3585:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12898,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3585:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3584:31:39"
            },
            "scope": 12909,
            "src": "3534:82:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "49081637",
            "id": 12908,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolWallet",
            "nameLocation": "3630:17:39",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 12904,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12903,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3656:10:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12908,
                  "src": "3648:18:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 12902,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3648:7:39",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3647:20:39"
            },
            "returnParameters": {
              "id": 12907,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 12906,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "3698:21:39",
                  "nodeType": "VariableDeclaration",
                  "scope": 12908,
                  "src": "3690:29:39",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 12905,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3690:7:39",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3689:31:39"
            },
            "scope": 12909,
            "src": "3621:100:39",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 12910,
        "src": "120:3604:39"
      }
    ],
    "src": "39:3686:39"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "ITreasury",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    120,
    3724
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "9e5c186a337a941977917f9a72d6b8a35aa1a19e",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ninterface ITreasury {\n\n    event LogTreasurySuspended();\n    event LogTreasuryResumed();\n\n    event LogTreasuryProductTokenSet(uint256 productId, uint256 riskpoolId, address erc20Address);\n    event LogTreasuryInstanceWalletSet(address walletAddress);\n    event LogTreasuryRiskpoolWalletSet(uint256 riskpoolId, address walletAddress);\n\n    event LogTreasuryPremiumFeesSet(uint256 productId, uint256 fixedFee, uint256 fractionalFee);\n    event LogTreasuryCapitalFeesSet(uint256 riskpoolId, uint256 fixedFee, uint256 fractionalFee);\n\n    event LogTreasuryPremiumTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n    event LogTreasuryPayoutTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n    event LogTreasuryCapitalTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n    event LogTreasuryFeesTransferred(address from, address instanceWalletAddress, uint256 amount);\n    event LogTreasuryWithdrawalTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n\n    event LogTreasuryPremiumProcessed(bytes32 processId, uint256 amount);\n    event LogTreasuryPayoutProcessed(uint256 riskpoolId, address to, uint256 amount);\n    event LogTreasuryCapitalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n    event LogTreasuryWithdrawalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n\n    struct FeeSpecification {\n        uint256 componentId;\n        uint256 fixedFee;\n        uint256 fractionalFee;\n        bytes feeCalculationData;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    function setProductToken(uint256 productId, address erc20Address) external;\n\n    function setInstanceWallet(address instanceWalletAddress) external;\n    function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) external;\n\n    function createFeeSpecification(\n        uint256 componentId,\n        uint256 fixedFee,\n        uint256 fractionalFee,\n        bytes calldata feeCalculationData\n    )\n        external view returns(FeeSpecification memory feeSpec);\n    \n    function setPremiumFees(FeeSpecification calldata feeSpec) external;\n    function setCapitalFees(FeeSpecification calldata feeSpec) external;\n    \n    function processPremium(bytes32 processId) external \n        returns(\n            bool success,\n            uint256 feeAmount,\n            uint256 netPremiumAmount\n        );\n    \n    function processPremium(bytes32 processId, uint256 amount) external \n        returns(\n            bool success,\n            uint256 feeAmount,\n            uint256 netPremiumAmount\n        );\n    \n    function processPayout(bytes32 processId, uint256 payoutId) external \n        returns(\n            uint256 feeAmount,\n            uint256 netPayoutAmount\n        );\n    \n    function processCapital(uint256 bundleId, uint256 capitalAmount) external \n        returns(\n            uint256 feeAmount,\n            uint256 netCapitalAmount\n        );\n\n    function processWithdrawal(uint256 bundleId, uint256 amount) external\n        returns(\n            uint256 feeAmount,\n            uint256 netAmount\n        );\n\n    function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n    function getFeeSpecification(uint256 componentId) external view returns(FeeSpecification memory feeSpecification);\n\n    function getFractionFullUnit() external view returns(uint256);\n    function getInstanceWallet() external view returns(address instanceWalletAddress);\n    function getRiskpoolWallet(uint256 riskpoolId) external view returns(address riskpoolWalletAddress);\n\n}\n",
  "sourceMap": "",
  "sourcePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol",
  "type": "interface"
}