{
  "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": {
    "13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "45": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol",
    "exportedSymbols": {
      "IERC20": [
        18510
      ],
      "ITreasury": [
        23443
      ]
    },
    "id": 23444,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 23185,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:45"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "id": 23186,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 23444,
        "sourceUnit": 18511,
        "src": "62:56:45",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 23443,
        "linearizedBaseContracts": [
          23443
        ],
        "name": "ITreasury",
        "nameLocation": "130:9:45",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "id": 23188,
            "name": "LogTreasurySuspended",
            "nameLocation": "153:20:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23187,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "173:2:45"
            },
            "src": "147:29:45"
          },
          {
            "anonymous": false,
            "id": 23190,
            "name": "LogTreasuryResumed",
            "nameLocation": "187:18:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23189,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "205:2:45"
            },
            "src": "181:27:45"
          },
          {
            "anonymous": false,
            "id": 23198,
            "name": "LogTreasuryProductTokenSet",
            "nameLocation": "220:26:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23192,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "255:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23198,
                  "src": "247:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23191,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23194,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "274:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23198,
                  "src": "266:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23193,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "266:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23196,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "294:12:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23198,
                  "src": "286:20:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23195,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "286:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "246:61:45"
            },
            "src": "214:94:45"
          },
          {
            "anonymous": false,
            "id": 23202,
            "name": "LogTreasuryInstanceWalletSet",
            "nameLocation": "319:28:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23201,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23200,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "356:13:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23202,
                  "src": "348:21:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23199,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "348:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "347:23:45"
            },
            "src": "313:58:45"
          },
          {
            "anonymous": false,
            "id": 23208,
            "name": "LogTreasuryRiskpoolWalletSet",
            "nameLocation": "382:28:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23204,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "419:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23208,
                  "src": "411:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "411:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23206,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "439:13:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23208,
                  "src": "431:21:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23205,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "431:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "410:43:45"
            },
            "src": "376:78:45"
          },
          {
            "anonymous": false,
            "id": 23216,
            "name": "LogTreasuryPremiumFeesSet",
            "nameLocation": "466:25:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23210,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "500:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23216,
                  "src": "492:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23209,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "492:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23212,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "519:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23216,
                  "src": "511:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23211,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "511:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23214,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "537:13:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23216,
                  "src": "529:21:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "529:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "491:60:45"
            },
            "src": "460:92:45"
          },
          {
            "anonymous": false,
            "id": 23224,
            "name": "LogTreasuryCapitalFeesSet",
            "nameLocation": "563:25:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23218,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "597:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23224,
                  "src": "589:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23217,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "589:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23220,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "617:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23224,
                  "src": "609:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23219,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "609:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23222,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "635:13:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23224,
                  "src": "627:21:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23221,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "627:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "588:61:45"
            },
            "src": "557:93:45"
          },
          {
            "anonymous": false,
            "id": 23232,
            "name": "LogTreasuryPremiumTransferred",
            "nameLocation": "662:29:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23231,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23226,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "700:4:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23232,
                  "src": "692:12:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23228,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "714:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23232,
                  "src": "706:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23227,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23230,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "745:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23232,
                  "src": "737:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23229,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "737:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "691:61:45"
            },
            "src": "656:97:45"
          },
          {
            "anonymous": false,
            "id": 23240,
            "name": "LogTreasuryPayoutTransferred",
            "nameLocation": "764:28:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23234,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "801:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23240,
                  "src": "793:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23233,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "793:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23236,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "832:2:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23240,
                  "src": "824:10:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23235,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23238,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "844:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23240,
                  "src": "836:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23237,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "792:59:45"
            },
            "src": "758:94:45"
          },
          {
            "anonymous": false,
            "id": 23248,
            "name": "LogTreasuryCapitalTransferred",
            "nameLocation": "863:29:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23247,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23242,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "901:4:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23248,
                  "src": "893:12:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23241,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "893:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23244,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "915:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23248,
                  "src": "907:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23243,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "907:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23246,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "946:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23248,
                  "src": "938:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "938:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "892:61:45"
            },
            "src": "857:97:45"
          },
          {
            "anonymous": false,
            "id": 23256,
            "name": "LogTreasuryFeesTransferred",
            "nameLocation": "965:26:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23250,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1000:4:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23256,
                  "src": "992:12:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23249,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "992:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23252,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1014:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23256,
                  "src": "1006:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23251,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1006:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23254,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1045:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23256,
                  "src": "1037:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23253,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "991:61:45"
            },
            "src": "959:94:45"
          },
          {
            "anonymous": false,
            "id": 23264,
            "name": "LogTreasuryWithdrawalTransferred",
            "nameLocation": "1064:32:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23263,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23258,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1105:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23264,
                  "src": "1097:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23257,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1097:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23260,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1136:2:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23264,
                  "src": "1128:10:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23259,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1128:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23262,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1148:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23264,
                  "src": "1140:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23261,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1096:59:45"
            },
            "src": "1058:98:45"
          },
          {
            "anonymous": false,
            "id": 23270,
            "name": "LogTreasuryPremiumProcessed",
            "nameLocation": "1168:27:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23269,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23266,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1204:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23270,
                  "src": "1196:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23265,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1196:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23268,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1223:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23270,
                  "src": "1215:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23267,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1195:35:45"
            },
            "src": "1162:69:45"
          },
          {
            "anonymous": false,
            "id": 23278,
            "name": "LogTreasuryPayoutProcessed",
            "nameLocation": "1242:26:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23272,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1277:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23278,
                  "src": "1269:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23271,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23274,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1297:2:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23278,
                  "src": "1289:10:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23273,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1289:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23276,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1309:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23278,
                  "src": "1301:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23275,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1301:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1268:48:45"
            },
            "src": "1236:81:45"
          },
          {
            "anonymous": false,
            "id": 23286,
            "name": "LogTreasuryCapitalProcessed",
            "nameLocation": "1328:27:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23280,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1364:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23286,
                  "src": "1356:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23279,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1356:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23282,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1384:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23286,
                  "src": "1376:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23281,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1376:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23284,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1402:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23286,
                  "src": "1394:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23283,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1394:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1355:54:45"
            },
            "src": "1322:88:45"
          },
          {
            "anonymous": false,
            "id": 23294,
            "name": "LogTreasuryWithdrawalProcessed",
            "nameLocation": "1421:30:45",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 23293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23288,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1460:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23294,
                  "src": "1452:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23287,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23290,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1480:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23294,
                  "src": "1472:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23289,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1472:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23292,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1498:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23294,
                  "src": "1490:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23291,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1490:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1451:54:45"
            },
            "src": "1415:91:45"
          },
          {
            "canonicalName": "ITreasury.FeeSpecification",
            "id": 23307,
            "members": [
              {
                "constant": false,
                "id": 23296,
                "mutability": "mutable",
                "name": "componentId",
                "nameLocation": "1554:11:45",
                "nodeType": "VariableDeclaration",
                "scope": 23307,
                "src": "1546:19:45",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 23295,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 23298,
                "mutability": "mutable",
                "name": "fixedFee",
                "nameLocation": "1583:8:45",
                "nodeType": "VariableDeclaration",
                "scope": 23307,
                "src": "1575:16:45",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 23297,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1575:7:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 23300,
                "mutability": "mutable",
                "name": "fractionalFee",
                "nameLocation": "1609:13:45",
                "nodeType": "VariableDeclaration",
                "scope": 23307,
                "src": "1601:21:45",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 23299,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1601:7:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 23302,
                "mutability": "mutable",
                "name": "feeCalculationData",
                "nameLocation": "1638:18:45",
                "nodeType": "VariableDeclaration",
                "scope": 23307,
                "src": "1632:24:45",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 23301,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "1632:5:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 23304,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "1674:9:45",
                "nodeType": "VariableDeclaration",
                "scope": 23307,
                "src": "1666:17:45",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 23303,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1666:7:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 23306,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "1701:9:45",
                "nodeType": "VariableDeclaration",
                "scope": 23307,
                "src": "1693:17:45",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 23305,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1693:7:45",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "FeeSpecification",
            "nameLocation": "1519:16:45",
            "nodeType": "StructDefinition",
            "scope": 23443,
            "src": "1512:205:45",
            "visibility": "public"
          },
          {
            "functionSelector": "cc9cf8cd",
            "id": 23314,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setProductToken",
            "nameLocation": "1732:15:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23309,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "1756:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23314,
                  "src": "1748:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23308,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23311,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "1775:12:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23314,
                  "src": "1767:20:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23310,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1767:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1747:41:45"
            },
            "returnParameters": {
              "id": 23313,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1797:0:45"
            },
            "scope": 23443,
            "src": "1723:75:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "cab2504d",
            "id": 23319,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setInstanceWallet",
            "nameLocation": "1813:17:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23316,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1839:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23319,
                  "src": "1831:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23315,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1831:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1830:31:45"
            },
            "returnParameters": {
              "id": 23318,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1870:0:45"
            },
            "scope": 23443,
            "src": "1804:67:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "86039aed",
            "id": 23326,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setRiskpoolWallet",
            "nameLocation": "1885:17:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23321,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1911:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23326,
                  "src": "1903:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23320,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1903:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23323,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1931:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23326,
                  "src": "1923:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23322,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1923:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:51:45"
            },
            "returnParameters": {
              "id": 23325,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1962:0:45"
            },
            "scope": 23443,
            "src": "1876:87:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "62f0ab55",
            "id": 23340,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createFeeSpecification",
            "nameLocation": "1978:22:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23335,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23328,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2018:11:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23340,
                  "src": "2010:19:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23327,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2010:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23330,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "2047:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23340,
                  "src": "2039:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23329,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2039:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23332,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "2073:13:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23340,
                  "src": "2065:21:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23331,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2065:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23334,
                  "mutability": "mutable",
                  "name": "feeCalculationData",
                  "nameLocation": "2111:18:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23340,
                  "src": "2096:33:45",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 23333,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2096:5:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2000:135:45"
            },
            "returnParameters": {
              "id": 23339,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23338,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2190:7:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23340,
                  "src": "2166:31:45",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$23307_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 23337,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23336,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23307,
                      "src": "2166:16:45"
                    },
                    "referencedDeclaration": 23307,
                    "src": "2166:16:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$23307_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2165:33:45"
            },
            "scope": 23443,
            "src": "1969:230:45",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "01132a7f",
            "id": 23346,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setPremiumFees",
            "nameLocation": "2218:14:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23344,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23343,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2259:7:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23346,
                  "src": "2233:33:45",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$23307_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 23342,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23341,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23307,
                      "src": "2233:16:45"
                    },
                    "referencedDeclaration": 23307,
                    "src": "2233:16:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$23307_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2232:35:45"
            },
            "returnParameters": {
              "id": 23345,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2276:0:45"
            },
            "scope": 23443,
            "src": "2209:68:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ca946aa",
            "id": 23352,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setCapitalFees",
            "nameLocation": "2291:14:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23349,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2332:7:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23352,
                  "src": "2306:33:45",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$23307_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 23348,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23347,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23307,
                      "src": "2306:16:45"
                    },
                    "referencedDeclaration": 23307,
                    "src": "2306:16:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$23307_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2305:35:45"
            },
            "returnParameters": {
              "id": 23351,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2349:0:45"
            },
            "scope": 23443,
            "src": "2282:68:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5ecc078e",
            "id": 23363,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2369:14:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23355,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23354,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2392:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23363,
                  "src": "2384:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23353,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2384:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2383:19:45"
            },
            "returnParameters": {
              "id": 23362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23357,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2447:7:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23363,
                  "src": "2442:12:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23356,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2442:4:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23359,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2476:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23363,
                  "src": "2468:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23358,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2468:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23361,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2507:16:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23363,
                  "src": "2499:24:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23360,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2499:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2428:105:45"
            },
            "scope": 23443,
            "src": "2360:174:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "02108268",
            "id": 23376,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2553:14:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23368,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23365,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2576:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23376,
                  "src": "2568:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23364,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2568:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23367,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "2595:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23376,
                  "src": "2587:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23366,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2587:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2567:35:45"
            },
            "returnParameters": {
              "id": 23375,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23370,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2647:7:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23376,
                  "src": "2642:12:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23369,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2642:4:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23372,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2676:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23376,
                  "src": "2668:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23371,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2668:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23374,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2707:16:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23376,
                  "src": "2699:24:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23373,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2699:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2628:105:45"
            },
            "scope": 23443,
            "src": "2544:190:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 23387,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "2753:13:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23378,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2775:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23387,
                  "src": "2767:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 23377,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2767:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23380,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "2794:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23387,
                  "src": "2786:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23379,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2786:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2766:37:45"
            },
            "returnParameters": {
              "id": 23386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23383,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2851:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23387,
                  "src": "2843:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23382,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2843:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23385,
                  "mutability": "mutable",
                  "name": "netPayoutAmount",
                  "nameLocation": "2882:15:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23387,
                  "src": "2874:23:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23384,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2874:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2829:78:45"
            },
            "scope": 23443,
            "src": "2744:164:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "26debdaa",
            "id": 23398,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processCapital",
            "nameLocation": "2927:14:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23392,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23389,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2950:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23398,
                  "src": "2942:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23388,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2942:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23391,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "2968:13:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23398,
                  "src": "2960:21:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23390,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2960:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2941:41:45"
            },
            "returnParameters": {
              "id": 23397,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23394,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3030:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23398,
                  "src": "3022:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23393,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3022:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23396,
                  "mutability": "mutable",
                  "name": "netCapitalAmount",
                  "nameLocation": "3061:16:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23398,
                  "src": "3053:24:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23395,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3008:79:45"
            },
            "scope": 23443,
            "src": "2918:170:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d9358075",
            "id": 23409,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processWithdrawal",
            "nameLocation": "3103:17:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23403,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23400,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3129:8:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23409,
                  "src": "3121:16:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3121:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23402,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3147:6:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23409,
                  "src": "3139:14:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23401,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3120:34:45"
            },
            "returnParameters": {
              "id": 23408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23405,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3201:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23409,
                  "src": "3193:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23404,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3193:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23407,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3232:9:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23409,
                  "src": "3224:17:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23406,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3224:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3179:72:45"
            },
            "scope": 23443,
            "src": "3094:158:45",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "038696bb",
            "id": 23417,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentToken",
            "nameLocation": "3267:17:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23411,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3293:11:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23417,
                  "src": "3285:19:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23410,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3285:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3284:21:45"
            },
            "returnParameters": {
              "id": 23416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23415,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3335:5:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23417,
                  "src": "3328:12:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$18510",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 23414,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23413,
                      "name": "IERC20",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 18510,
                      "src": "3328:6:45"
                    },
                    "referencedDeclaration": 18510,
                    "src": "3328:6:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$18510",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3327:14:45"
            },
            "scope": 23443,
            "src": "3258:84:45",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a434f0ad",
            "id": 23425,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeSpecification",
            "nameLocation": "3356:19:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23419,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3384:11:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23425,
                  "src": "3376:19:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23418,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3376:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3375:21:45"
            },
            "returnParameters": {
              "id": 23424,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23423,
                  "mutability": "mutable",
                  "name": "feeSpecification",
                  "nameLocation": "3443:16:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23425,
                  "src": "3419:40:45",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$23307_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 23422,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23421,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23307,
                      "src": "3419:16:45"
                    },
                    "referencedDeclaration": 23307,
                    "src": "3419:16:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$23307_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3418:42:45"
            },
            "scope": 23443,
            "src": "3347:114:45",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ccf5ca2",
            "id": 23430,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFractionFullUnit",
            "nameLocation": "3476:19:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3495:2:45"
            },
            "returnParameters": {
              "id": 23429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23428,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23430,
                  "src": "3520:7:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23427,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3520:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3519:9:45"
            },
            "scope": 23443,
            "src": "3467:62:45",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a44330c4",
            "id": 23435,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceWallet",
            "nameLocation": "3543:17:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23431,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3560:2:45"
            },
            "returnParameters": {
              "id": 23434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23433,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "3593:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23435,
                  "src": "3585:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23432,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3585:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3584:31:45"
            },
            "scope": 23443,
            "src": "3534:82:45",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "49081637",
            "id": 23442,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolWallet",
            "nameLocation": "3630:17:45",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23437,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3656:10:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23442,
                  "src": "3648:18:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23436,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3648:7:45",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3647:20:45"
            },
            "returnParameters": {
              "id": 23441,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23440,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "3698:21:45",
                  "nodeType": "VariableDeclaration",
                  "scope": 23442,
                  "src": "3690:29:45",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 23439,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3690:7:45",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3689:31:45"
            },
            "scope": 23443,
            "src": "3621:100:45",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 23444,
        "src": "120:3604:45"
      }
    ],
    "src": "39:3686:45"
  },
  "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"
}