{
  "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": {
    "2": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
    "22": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol"
  },
  "ast": {
    "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol",
    "exportedSymbols": {
      "IERC20": [
        4694
      ],
      "ITreasury": [
        2409
      ]
    },
    "id": 2410,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2151,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:22"
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "id": 2152,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 2410,
        "sourceUnit": 4695,
        "src": "62:56:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 2409,
        "linearizedBaseContracts": [
          2409
        ],
        "name": "ITreasury",
        "nameLocation": "130:9:22",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "id": 2154,
            "name": "LogTreasurySuspended",
            "nameLocation": "153:20:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2153,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "173:2:22"
            },
            "src": "147:29:22"
          },
          {
            "anonymous": false,
            "id": 2156,
            "name": "LogTreasuryResumed",
            "nameLocation": "187:18:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2155,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "205:2:22"
            },
            "src": "181:27:22"
          },
          {
            "anonymous": false,
            "id": 2164,
            "name": "LogTreasuryProductTokenSet",
            "nameLocation": "220:26:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2158,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "255:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2164,
                  "src": "247:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2157,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2160,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "274:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2164,
                  "src": "266:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "266:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2162,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "294:12:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2164,
                  "src": "286:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "286:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "246:61:22"
            },
            "src": "214:94:22"
          },
          {
            "anonymous": false,
            "id": 2168,
            "name": "LogTreasuryInstanceWalletSet",
            "nameLocation": "319:28:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2166,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "356:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2168,
                  "src": "348:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2165,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "348:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "347:23:22"
            },
            "src": "313:58:22"
          },
          {
            "anonymous": false,
            "id": 2174,
            "name": "LogTreasuryRiskpoolWalletSet",
            "nameLocation": "382:28:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2170,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "419:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2174,
                  "src": "411:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2169,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "411:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2172,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "439:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2174,
                  "src": "431:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2171,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "431:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "410:43:22"
            },
            "src": "376:78:22"
          },
          {
            "anonymous": false,
            "id": 2182,
            "name": "LogTreasuryPremiumFeesSet",
            "nameLocation": "466:25:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2176,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "500:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2182,
                  "src": "492:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2175,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "492:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2178,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "519:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2182,
                  "src": "511:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2177,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "511:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2180,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "537:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2182,
                  "src": "529:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2179,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "529:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "491:60:22"
            },
            "src": "460:92:22"
          },
          {
            "anonymous": false,
            "id": 2190,
            "name": "LogTreasuryCapitalFeesSet",
            "nameLocation": "563:25:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2189,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2184,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "597:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2190,
                  "src": "589:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2183,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "589:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2186,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "617:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2190,
                  "src": "609:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2185,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "609:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2188,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "635:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2190,
                  "src": "627:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2187,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "627:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "588:61:22"
            },
            "src": "557:93:22"
          },
          {
            "anonymous": false,
            "id": 2198,
            "name": "LogTreasuryPremiumTransferred",
            "nameLocation": "662:29:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2192,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "700:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2198,
                  "src": "692:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2191,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2194,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "714:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2198,
                  "src": "706:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2196,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "745:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2198,
                  "src": "737:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2195,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "737:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "691:61:22"
            },
            "src": "656:97:22"
          },
          {
            "anonymous": false,
            "id": 2206,
            "name": "LogTreasuryPayoutTransferred",
            "nameLocation": "764:28:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2200,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "801:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2206,
                  "src": "793:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2199,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "793:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2202,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "832:2:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2206,
                  "src": "824:10:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2204,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "844:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2206,
                  "src": "836:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "792:59:22"
            },
            "src": "758:94:22"
          },
          {
            "anonymous": false,
            "id": 2214,
            "name": "LogTreasuryCapitalTransferred",
            "nameLocation": "863:29:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2208,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "901:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2214,
                  "src": "893:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2207,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "893:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2210,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "915:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2214,
                  "src": "907:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2209,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "907:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2212,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "946:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2214,
                  "src": "938:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2211,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "938:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "892:61:22"
            },
            "src": "857:97:22"
          },
          {
            "anonymous": false,
            "id": 2222,
            "name": "LogTreasuryFeesTransferred",
            "nameLocation": "965:26:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2216,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1000:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2222,
                  "src": "992:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2215,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "992:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2218,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1014:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2222,
                  "src": "1006:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2217,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1006:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2220,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1045:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2222,
                  "src": "1037:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2219,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1037:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "991:61:22"
            },
            "src": "959:94:22"
          },
          {
            "anonymous": false,
            "id": 2230,
            "name": "LogTreasuryWithdrawalTransferred",
            "nameLocation": "1064:32:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2224,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1105:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2230,
                  "src": "1097:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2223,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1097:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2226,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1136:2:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2230,
                  "src": "1128:10:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2225,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1128:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2228,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1148:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2230,
                  "src": "1140:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2227,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1140:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1096:59:22"
            },
            "src": "1058:98:22"
          },
          {
            "anonymous": false,
            "id": 2236,
            "name": "LogTreasuryPremiumProcessed",
            "nameLocation": "1168:27:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2232,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1204:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2236,
                  "src": "1196:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2231,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1196:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2234,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1223:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2236,
                  "src": "1215:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2233,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1215:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1195:35:22"
            },
            "src": "1162:69:22"
          },
          {
            "anonymous": false,
            "id": 2244,
            "name": "LogTreasuryPayoutProcessed",
            "nameLocation": "1242:26:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2243,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2238,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1277:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2244,
                  "src": "1269:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2237,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2240,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1297:2:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2244,
                  "src": "1289:10:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2239,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1289:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2242,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1309:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2244,
                  "src": "1301:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2241,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1301:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1268:48:22"
            },
            "src": "1236:81:22"
          },
          {
            "anonymous": false,
            "id": 2252,
            "name": "LogTreasuryCapitalProcessed",
            "nameLocation": "1328:27:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2246,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1364:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2252,
                  "src": "1356:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1356:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2248,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1384:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2252,
                  "src": "1376:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2247,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1376:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2250,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1402:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2252,
                  "src": "1394:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2249,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1394:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1355:54:22"
            },
            "src": "1322:88:22"
          },
          {
            "anonymous": false,
            "id": 2260,
            "name": "LogTreasuryWithdrawalProcessed",
            "nameLocation": "1421:30:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2254,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1460:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2260,
                  "src": "1452:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2253,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2256,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1480:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2260,
                  "src": "1472:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2255,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1472:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2258,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1498:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2260,
                  "src": "1490:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2257,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1490:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1451:54:22"
            },
            "src": "1415:91:22"
          },
          {
            "canonicalName": "ITreasury.FeeSpecification",
            "id": 2273,
            "members": [
              {
                "constant": false,
                "id": 2262,
                "mutability": "mutable",
                "name": "componentId",
                "nameLocation": "1554:11:22",
                "nodeType": "VariableDeclaration",
                "scope": 2273,
                "src": "1546:19:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2261,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2264,
                "mutability": "mutable",
                "name": "fixedFee",
                "nameLocation": "1583:8:22",
                "nodeType": "VariableDeclaration",
                "scope": 2273,
                "src": "1575:16:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2263,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1575:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2266,
                "mutability": "mutable",
                "name": "fractionalFee",
                "nameLocation": "1609:13:22",
                "nodeType": "VariableDeclaration",
                "scope": 2273,
                "src": "1601:21:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2265,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1601:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2268,
                "mutability": "mutable",
                "name": "feeCalculationData",
                "nameLocation": "1638:18:22",
                "nodeType": "VariableDeclaration",
                "scope": 2273,
                "src": "1632:24:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 2267,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "1632:5:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2270,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "1674:9:22",
                "nodeType": "VariableDeclaration",
                "scope": 2273,
                "src": "1666:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2269,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1666:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2272,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "1701:9:22",
                "nodeType": "VariableDeclaration",
                "scope": 2273,
                "src": "1693:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 2271,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1693:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "FeeSpecification",
            "nameLocation": "1519:16:22",
            "nodeType": "StructDefinition",
            "scope": 2409,
            "src": "1512:205:22",
            "visibility": "public"
          },
          {
            "functionSelector": "cc9cf8cd",
            "id": 2280,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setProductToken",
            "nameLocation": "1732:15:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2275,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "1756:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2280,
                  "src": "1748:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2274,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2277,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "1775:12:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2280,
                  "src": "1767:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2276,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1767:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1747:41:22"
            },
            "returnParameters": {
              "id": 2279,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1797:0:22"
            },
            "scope": 2409,
            "src": "1723:75:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "cab2504d",
            "id": 2285,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setInstanceWallet",
            "nameLocation": "1813:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2282,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1839:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "1831:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2281,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1831:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1830:31:22"
            },
            "returnParameters": {
              "id": 2284,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1870:0:22"
            },
            "scope": 2409,
            "src": "1804:67:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "86039aed",
            "id": 2292,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setRiskpoolWallet",
            "nameLocation": "1885:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2290,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2287,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1911:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2292,
                  "src": "1903:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2286,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1903:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2289,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1931:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2292,
                  "src": "1923:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2288,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1923:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:51:22"
            },
            "returnParameters": {
              "id": 2291,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1962:0:22"
            },
            "scope": 2409,
            "src": "1876:87:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "62f0ab55",
            "id": 2306,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createFeeSpecification",
            "nameLocation": "1978:22:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2294,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2018:11:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2306,
                  "src": "2010:19:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2293,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2010:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2296,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "2047:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2306,
                  "src": "2039:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2295,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2039:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2298,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "2073:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2306,
                  "src": "2065:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2297,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2065:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2300,
                  "mutability": "mutable",
                  "name": "feeCalculationData",
                  "nameLocation": "2111:18:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2306,
                  "src": "2096:33:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2299,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2096:5:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2000:135:22"
            },
            "returnParameters": {
              "id": 2305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2304,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2190:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2306,
                  "src": "2166:31:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$2273_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 2303,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2302,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2273,
                      "src": "2166:16:22"
                    },
                    "referencedDeclaration": 2273,
                    "src": "2166:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$2273_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2165:33:22"
            },
            "scope": 2409,
            "src": "1969:230:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "01132a7f",
            "id": 2312,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setPremiumFees",
            "nameLocation": "2218:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2310,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2309,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2259:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2312,
                  "src": "2233:33:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$2273_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 2308,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2307,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2273,
                      "src": "2233:16:22"
                    },
                    "referencedDeclaration": 2273,
                    "src": "2233:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$2273_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2232:35:22"
            },
            "returnParameters": {
              "id": 2311,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2276:0:22"
            },
            "scope": 2409,
            "src": "2209:68:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ca946aa",
            "id": 2318,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setCapitalFees",
            "nameLocation": "2291:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2315,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2332:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2318,
                  "src": "2306:33:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$2273_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 2314,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2313,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2273,
                      "src": "2306:16:22"
                    },
                    "referencedDeclaration": 2273,
                    "src": "2306:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$2273_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2305:35:22"
            },
            "returnParameters": {
              "id": 2317,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2349:0:22"
            },
            "scope": 2409,
            "src": "2282:68:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5ecc078e",
            "id": 2329,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2369:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2321,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2320,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2392:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2329,
                  "src": "2384:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2319,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2384:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2383:19:22"
            },
            "returnParameters": {
              "id": 2328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2323,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2447:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2329,
                  "src": "2442:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2322,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2442:4:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2325,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2476:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2329,
                  "src": "2468:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2324,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2468:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2327,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2507:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2329,
                  "src": "2499:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2326,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2499:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2428:105:22"
            },
            "scope": 2409,
            "src": "2360:174:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "02108268",
            "id": 2342,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2553:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2331,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2576:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "2568:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2330,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2568:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2333,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "2595:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "2587:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2332,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2587:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2567:35:22"
            },
            "returnParameters": {
              "id": 2341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2336,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2647:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "2642:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2335,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2642:4:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2338,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2676:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "2668:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2337,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2668:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2340,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2707:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2342,
                  "src": "2699:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2339,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2699:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2628:105:22"
            },
            "scope": 2409,
            "src": "2544:190:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 2353,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "2753:13:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2344,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2775:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "2767:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2343,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2767:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2346,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "2794:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "2786:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2345,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2786:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2766:37:22"
            },
            "returnParameters": {
              "id": 2352,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2349,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2851:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "2843:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2348,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2843:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2351,
                  "mutability": "mutable",
                  "name": "netPayoutAmount",
                  "nameLocation": "2882:15:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2353,
                  "src": "2874:23:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2350,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2874:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2829:78:22"
            },
            "scope": 2409,
            "src": "2744:164:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "26debdaa",
            "id": 2364,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processCapital",
            "nameLocation": "2927:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2355,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2950:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2364,
                  "src": "2942:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2354,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2942:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2357,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "2968:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2364,
                  "src": "2960:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2356,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2960:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2941:41:22"
            },
            "returnParameters": {
              "id": 2363,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2360,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3030:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2364,
                  "src": "3022:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2359,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3022:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2362,
                  "mutability": "mutable",
                  "name": "netCapitalAmount",
                  "nameLocation": "3061:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2364,
                  "src": "3053:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3008:79:22"
            },
            "scope": 2409,
            "src": "2918:170:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d9358075",
            "id": 2375,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processWithdrawal",
            "nameLocation": "3103:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2366,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3129:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2375,
                  "src": "3121:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3121:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2368,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3147:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2375,
                  "src": "3139:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2367,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3120:34:22"
            },
            "returnParameters": {
              "id": 2374,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2371,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3201:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2375,
                  "src": "3193:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2370,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3193:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2373,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3232:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2375,
                  "src": "3224:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2372,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3224:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3179:72:22"
            },
            "scope": 2409,
            "src": "3094:158:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "038696bb",
            "id": 2383,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentToken",
            "nameLocation": "3267:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2378,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2377,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3293:11:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2383,
                  "src": "3285:19:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2376,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3285:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3284:21:22"
            },
            "returnParameters": {
              "id": 2382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2381,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3335:5:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2383,
                  "src": "3328:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$4694",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 2380,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2379,
                      "name": "IERC20",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4694,
                      "src": "3328:6:22"
                    },
                    "referencedDeclaration": 4694,
                    "src": "3328:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$4694",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3327:14:22"
            },
            "scope": 2409,
            "src": "3258:84:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a434f0ad",
            "id": 2391,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeSpecification",
            "nameLocation": "3356:19:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2385,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3384:11:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2391,
                  "src": "3376:19:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2384,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3376:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3375:21:22"
            },
            "returnParameters": {
              "id": 2390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2389,
                  "mutability": "mutable",
                  "name": "feeSpecification",
                  "nameLocation": "3443:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2391,
                  "src": "3419:40:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$2273_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 2388,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2387,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2273,
                      "src": "3419:16:22"
                    },
                    "referencedDeclaration": 2273,
                    "src": "3419:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$2273_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3418:42:22"
            },
            "scope": 2409,
            "src": "3347:114:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ccf5ca2",
            "id": 2396,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFractionFullUnit",
            "nameLocation": "3476:19:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2392,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3495:2:22"
            },
            "returnParameters": {
              "id": 2395,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2394,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2396,
                  "src": "3520:7:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2393,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3520:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3519:9:22"
            },
            "scope": 2409,
            "src": "3467:62:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a44330c4",
            "id": 2401,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceWallet",
            "nameLocation": "3543:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2397,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3560:2:22"
            },
            "returnParameters": {
              "id": 2400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2399,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "3593:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2401,
                  "src": "3585:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2398,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3585:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3584:31:22"
            },
            "scope": 2409,
            "src": "3534:82:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "49081637",
            "id": 2408,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolWallet",
            "nameLocation": "3630:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2403,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3656:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2408,
                  "src": "3648:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2402,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3648:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3647:20:22"
            },
            "returnParameters": {
              "id": 2407,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2406,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "3698:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 2408,
                  "src": "3690:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2405,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3690:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3689:31:22"
            },
            "scope": 2409,
            "src": "3621:100:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 2410,
        "src": "120:3604:22"
      }
    ],
    "src": "39:3686:22"
  },
  "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.8.2/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/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/ITreasury.sol",
  "type": "interface"
}