{
  "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": {
    "1": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "22": "contracts/modules/ITreasury.sol"
  },
  "ast": {
    "absolutePath": "contracts/modules/ITreasury.sol",
    "exportedSymbols": {
      "IERC20": [
        4956
      ],
      "ITreasury": [
        3798
      ]
    },
    "id": 3799,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3540,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:22"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "id": 3541,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 3799,
        "sourceUnit": 4957,
        "src": "62:56:22",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 3798,
        "linearizedBaseContracts": [
          3798
        ],
        "name": "ITreasury",
        "nameLocation": "130:9:22",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "id": 3543,
            "name": "LogTreasurySuspended",
            "nameLocation": "153:20:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3542,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "173:2:22"
            },
            "src": "147:29:22"
          },
          {
            "anonymous": false,
            "id": 3545,
            "name": "LogTreasuryResumed",
            "nameLocation": "187:18:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3544,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "205:2:22"
            },
            "src": "181:27:22"
          },
          {
            "anonymous": false,
            "id": 3553,
            "name": "LogTreasuryProductTokenSet",
            "nameLocation": "220:26:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3547,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "255:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "247:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3546,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3549,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "274:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "266:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3548,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "266:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3551,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "294:12:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3553,
                  "src": "286:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3550,
                    "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": 3557,
            "name": "LogTreasuryInstanceWalletSet",
            "nameLocation": "319:28:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3555,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "356:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3557,
                  "src": "348:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3554,
                    "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": 3563,
            "name": "LogTreasuryRiskpoolWalletSet",
            "nameLocation": "382:28:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3559,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "419:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3563,
                  "src": "411:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3558,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "411:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3561,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "439:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3563,
                  "src": "431:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3560,
                    "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": 3571,
            "name": "LogTreasuryPremiumFeesSet",
            "nameLocation": "466:25:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3565,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "500:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3571,
                  "src": "492:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3564,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "492:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3567,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "519:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3571,
                  "src": "511:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3566,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "511:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3569,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "537:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3571,
                  "src": "529:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3568,
                    "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": 3579,
            "name": "LogTreasuryCapitalFeesSet",
            "nameLocation": "563:25:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3573,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "597:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3579,
                  "src": "589:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3572,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "589:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3575,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "617:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3579,
                  "src": "609:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "609:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3577,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "635:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3579,
                  "src": "627:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3576,
                    "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": 3587,
            "name": "LogTreasuryPremiumTransferred",
            "nameLocation": "662:29:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3586,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3581,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "700:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3587,
                  "src": "692:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3580,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3583,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "714:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3587,
                  "src": "706:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3582,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3585,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "745:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3587,
                  "src": "737:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3584,
                    "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": 3595,
            "name": "LogTreasuryPayoutTransferred",
            "nameLocation": "764:28:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3589,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "801:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3595,
                  "src": "793:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3588,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "793:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3591,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "832:2:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3595,
                  "src": "824:10:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3590,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3593,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "844:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3595,
                  "src": "836:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3592,
                    "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": 3603,
            "name": "LogTreasuryCapitalTransferred",
            "nameLocation": "863:29:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3602,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3597,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "901:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3603,
                  "src": "893:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3596,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "893:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3599,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "915:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3603,
                  "src": "907:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3598,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "907:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3601,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "946:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3603,
                  "src": "938:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3600,
                    "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": 3611,
            "name": "LogTreasuryFeesTransferred",
            "nameLocation": "965:26:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3610,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3605,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1000:4:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3611,
                  "src": "992:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3604,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "992:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3607,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1014:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3611,
                  "src": "1006:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3606,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1006:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3609,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1045:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3611,
                  "src": "1037:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3608,
                    "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": 3619,
            "name": "LogTreasuryWithdrawalTransferred",
            "nameLocation": "1064:32:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3618,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3613,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1105:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3619,
                  "src": "1097:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3612,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1097:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3615,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1136:2:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3619,
                  "src": "1128:10:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3614,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1128:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3617,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1148:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3619,
                  "src": "1140:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3616,
                    "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": 3625,
            "name": "LogTreasuryPremiumProcessed",
            "nameLocation": "1168:27:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3621,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1204:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "1196:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3620,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1196:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3623,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1223:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3625,
                  "src": "1215:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3622,
                    "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": 3633,
            "name": "LogTreasuryPayoutProcessed",
            "nameLocation": "1242:26:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3632,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3627,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1277:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3633,
                  "src": "1269:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3626,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3629,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1297:2:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3633,
                  "src": "1289:10:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3628,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1289:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3631,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1309:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3633,
                  "src": "1301:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3630,
                    "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": 3641,
            "name": "LogTreasuryCapitalProcessed",
            "nameLocation": "1328:27:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3635,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1364:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3641,
                  "src": "1356:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3634,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1356:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3637,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1384:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3641,
                  "src": "1376:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3636,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1376:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3639,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1402:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3641,
                  "src": "1394:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3638,
                    "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": 3649,
            "name": "LogTreasuryWithdrawalProcessed",
            "nameLocation": "1421:30:22",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3643,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1460:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "1452:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3642,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3645,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1480:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "1472:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3644,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1472:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3647,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1498:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "1490:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3646,
                    "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": 3662,
            "members": [
              {
                "constant": false,
                "id": 3651,
                "mutability": "mutable",
                "name": "componentId",
                "nameLocation": "1554:11:22",
                "nodeType": "VariableDeclaration",
                "scope": 3662,
                "src": "1546:19:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3650,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3653,
                "mutability": "mutable",
                "name": "fixedFee",
                "nameLocation": "1583:8:22",
                "nodeType": "VariableDeclaration",
                "scope": 3662,
                "src": "1575:16:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3652,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1575:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3655,
                "mutability": "mutable",
                "name": "fractionalFee",
                "nameLocation": "1609:13:22",
                "nodeType": "VariableDeclaration",
                "scope": 3662,
                "src": "1601:21:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3654,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1601:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3657,
                "mutability": "mutable",
                "name": "feeCalculationData",
                "nameLocation": "1638:18:22",
                "nodeType": "VariableDeclaration",
                "scope": 3662,
                "src": "1632:24:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 3656,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "1632:5:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3659,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "1674:9:22",
                "nodeType": "VariableDeclaration",
                "scope": 3662,
                "src": "1666:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3658,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1666:7:22",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3661,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "1701:9:22",
                "nodeType": "VariableDeclaration",
                "scope": 3662,
                "src": "1693:17:22",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3660,
                  "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": 3798,
            "src": "1512:205:22",
            "visibility": "public"
          },
          {
            "functionSelector": "cc9cf8cd",
            "id": 3669,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setProductToken",
            "nameLocation": "1732:15:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3667,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3664,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "1756:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3669,
                  "src": "1748:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3663,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3666,
                  "mutability": "mutable",
                  "name": "erc20Address",
                  "nameLocation": "1775:12:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3669,
                  "src": "1767:20:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3665,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1767:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1747:41:22"
            },
            "returnParameters": {
              "id": 3668,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1797:0:22"
            },
            "scope": 3798,
            "src": "1723:75:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "cab2504d",
            "id": 3674,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setInstanceWallet",
            "nameLocation": "1813:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3671,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "1839:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3674,
                  "src": "1831:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3670,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1831:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1830:31:22"
            },
            "returnParameters": {
              "id": 3673,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1870:0:22"
            },
            "scope": 3798,
            "src": "1804:67:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "86039aed",
            "id": 3681,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setRiskpoolWallet",
            "nameLocation": "1885:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3679,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3676,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "1911:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3681,
                  "src": "1903:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3675,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1903:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3678,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "1931:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3681,
                  "src": "1923:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3677,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1923:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:51:22"
            },
            "returnParameters": {
              "id": 3680,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1962:0:22"
            },
            "scope": 3798,
            "src": "1876:87:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "62f0ab55",
            "id": 3695,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createFeeSpecification",
            "nameLocation": "1978:22:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3690,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3683,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2018:11:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3695,
                  "src": "2010:19:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3682,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2010:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3685,
                  "mutability": "mutable",
                  "name": "fixedFee",
                  "nameLocation": "2047:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3695,
                  "src": "2039:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3684,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2039:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3687,
                  "mutability": "mutable",
                  "name": "fractionalFee",
                  "nameLocation": "2073:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3695,
                  "src": "2065:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3686,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2065:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3689,
                  "mutability": "mutable",
                  "name": "feeCalculationData",
                  "nameLocation": "2111:18:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3695,
                  "src": "2096:33:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3688,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2096:5:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2000:135:22"
            },
            "returnParameters": {
              "id": 3694,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3693,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2190:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3695,
                  "src": "2166:31:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$3662_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 3692,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3691,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3662,
                      "src": "2166:16:22"
                    },
                    "referencedDeclaration": 3662,
                    "src": "2166:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$3662_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2165:33:22"
            },
            "scope": 3798,
            "src": "1969:230:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "01132a7f",
            "id": 3701,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setPremiumFees",
            "nameLocation": "2218:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3699,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3698,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2259:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3701,
                  "src": "2233:33:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$3662_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 3697,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3696,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3662,
                      "src": "2233:16:22"
                    },
                    "referencedDeclaration": 3662,
                    "src": "2233:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$3662_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2232:35:22"
            },
            "returnParameters": {
              "id": 3700,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2276:0:22"
            },
            "scope": 3798,
            "src": "2209:68:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ca946aa",
            "id": 3707,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setCapitalFees",
            "nameLocation": "2291:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3705,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3704,
                  "mutability": "mutable",
                  "name": "feeSpec",
                  "nameLocation": "2332:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3707,
                  "src": "2306:33:22",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$3662_calldata_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 3703,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3702,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3662,
                      "src": "2306:16:22"
                    },
                    "referencedDeclaration": 3662,
                    "src": "2306:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$3662_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2305:35:22"
            },
            "returnParameters": {
              "id": 3706,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2349:0:22"
            },
            "scope": 3798,
            "src": "2282:68:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5ecc078e",
            "id": 3718,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2369:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3709,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2392:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3718,
                  "src": "2384:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3708,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2384:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2383:19:22"
            },
            "returnParameters": {
              "id": 3717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3712,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2447:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3718,
                  "src": "2442:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3711,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2442:4:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3714,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2476:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3718,
                  "src": "2468:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3713,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2468:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3716,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2507:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3718,
                  "src": "2499:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3715,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2499:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2428:105:22"
            },
            "scope": 3798,
            "src": "2360:174:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "02108268",
            "id": 3731,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPremium",
            "nameLocation": "2553:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3723,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3720,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2576:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "2568:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3719,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2568:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3722,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "2595:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "2587:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3721,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2587:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2567:35:22"
            },
            "returnParameters": {
              "id": 3730,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3725,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "2647:7:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "2642:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3724,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2642:4:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3727,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2676:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "2668:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3726,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2668:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3729,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "2707:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "2699:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3728,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2699:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2628:105:22"
            },
            "scope": 3798,
            "src": "2544:190:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 3742,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "2753:13:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3733,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "2775:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3742,
                  "src": "2767:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3732,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2767:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3735,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "2794:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3742,
                  "src": "2786:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3734,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2786:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2766:37:22"
            },
            "returnParameters": {
              "id": 3741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3738,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "2851:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3742,
                  "src": "2843:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3737,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2843:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3740,
                  "mutability": "mutable",
                  "name": "netPayoutAmount",
                  "nameLocation": "2882:15:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3742,
                  "src": "2874:23:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2874:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2829:78:22"
            },
            "scope": 3798,
            "src": "2744:164:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "26debdaa",
            "id": 3753,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processCapital",
            "nameLocation": "2927:14:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3744,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2950:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3753,
                  "src": "2942:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3743,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2942:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3746,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "2968:13:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3753,
                  "src": "2960:21:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3745,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2960:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2941:41:22"
            },
            "returnParameters": {
              "id": 3752,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3749,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3030:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3753,
                  "src": "3022:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3748,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3022:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3751,
                  "mutability": "mutable",
                  "name": "netCapitalAmount",
                  "nameLocation": "3061:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3753,
                  "src": "3053:24:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3750,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3053:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3008:79:22"
            },
            "scope": 3798,
            "src": "2918:170:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d9358075",
            "id": 3764,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processWithdrawal",
            "nameLocation": "3103:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3758,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3755,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3129:8:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3764,
                  "src": "3121:16:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3754,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3121:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3757,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3147:6:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3764,
                  "src": "3139:14:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3756,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3139:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3120:34:22"
            },
            "returnParameters": {
              "id": 3763,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3760,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "3201:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3764,
                  "src": "3193:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3759,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3193:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3762,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3232:9:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3764,
                  "src": "3224:17:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3761,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3224:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3179:72:22"
            },
            "scope": 3798,
            "src": "3094:158:22",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "038696bb",
            "id": 3772,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentToken",
            "nameLocation": "3267:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3766,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3293:11:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3772,
                  "src": "3285:19:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3765,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3285:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3284:21:22"
            },
            "returnParameters": {
              "id": 3771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3770,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3335:5:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3772,
                  "src": "3328:12:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$4956",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 3769,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3768,
                      "name": "IERC20",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4956,
                      "src": "3328:6:22"
                    },
                    "referencedDeclaration": 4956,
                    "src": "3328:6:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$4956",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3327:14:22"
            },
            "scope": 3798,
            "src": "3258:84:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a434f0ad",
            "id": 3780,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeSpecification",
            "nameLocation": "3356:19:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3774,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "3384:11:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3780,
                  "src": "3376:19:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3773,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3376:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3375:21:22"
            },
            "returnParameters": {
              "id": 3779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3778,
                  "mutability": "mutable",
                  "name": "feeSpecification",
                  "nameLocation": "3443:16:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3780,
                  "src": "3419:40:22",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FeeSpecification_$3662_memory_ptr",
                    "typeString": "struct ITreasury.FeeSpecification"
                  },
                  "typeName": {
                    "id": 3777,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 3776,
                      "name": "FeeSpecification",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3662,
                      "src": "3419:16:22"
                    },
                    "referencedDeclaration": 3662,
                    "src": "3419:16:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FeeSpecification_$3662_storage_ptr",
                      "typeString": "struct ITreasury.FeeSpecification"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3418:42:22"
            },
            "scope": 3798,
            "src": "3347:114:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8ccf5ca2",
            "id": 3785,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFractionFullUnit",
            "nameLocation": "3476:19:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3781,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3495:2:22"
            },
            "returnParameters": {
              "id": 3784,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3783,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 3785,
                  "src": "3520:7:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3782,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3520:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3519:9:22"
            },
            "scope": 3798,
            "src": "3467:62:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a44330c4",
            "id": 3790,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceWallet",
            "nameLocation": "3543:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3786,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3560:2:22"
            },
            "returnParameters": {
              "id": 3789,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3788,
                  "mutability": "mutable",
                  "name": "instanceWalletAddress",
                  "nameLocation": "3593:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3790,
                  "src": "3585:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3787,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3585:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3584:31:22"
            },
            "scope": 3798,
            "src": "3534:82:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "49081637",
            "id": 3797,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolWallet",
            "nameLocation": "3630:17:22",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3793,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3792,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3656:10:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3797,
                  "src": "3648:18:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3791,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3648:7:22",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3647:20:22"
            },
            "returnParameters": {
              "id": 3796,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3795,
                  "mutability": "mutable",
                  "name": "riskpoolWalletAddress",
                  "nameLocation": "3698:21:22",
                  "nodeType": "VariableDeclaration",
                  "scope": 3797,
                  "src": "3690:29:22",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3794,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3690:7:22",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3689:31:22"
            },
            "scope": 3798,
            "src": "3621:100:22",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 3799,
        "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.7.3/IERC20"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    120,
    3724
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "9e5c186a337a941977917f9a72d6b8a35aa1a19e",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ninterface ITreasury {\n\n    event LogTreasurySuspended();\n    event LogTreasuryResumed();\n\n    event LogTreasuryProductTokenSet(uint256 productId, uint256 riskpoolId, address erc20Address);\n    event LogTreasuryInstanceWalletSet(address walletAddress);\n    event LogTreasuryRiskpoolWalletSet(uint256 riskpoolId, address walletAddress);\n\n    event LogTreasuryPremiumFeesSet(uint256 productId, uint256 fixedFee, uint256 fractionalFee);\n    event LogTreasuryCapitalFeesSet(uint256 riskpoolId, uint256 fixedFee, uint256 fractionalFee);\n\n    event LogTreasuryPremiumTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n    event LogTreasuryPayoutTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n    event LogTreasuryCapitalTransferred(address from, address riskpoolWalletAddress, uint256 amount);\n    event LogTreasuryFeesTransferred(address from, address instanceWalletAddress, uint256 amount);\n    event LogTreasuryWithdrawalTransferred(address riskpoolWalletAddress, address to, uint256 amount);\n\n    event LogTreasuryPremiumProcessed(bytes32 processId, uint256 amount);\n    event LogTreasuryPayoutProcessed(uint256 riskpoolId, address to, uint256 amount);\n    event LogTreasuryCapitalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n    event LogTreasuryWithdrawalProcessed(uint256 riskpoolId, uint256 bundleId, uint256 amount);\n\n    struct FeeSpecification {\n        uint256 componentId;\n        uint256 fixedFee;\n        uint256 fractionalFee;\n        bytes feeCalculationData;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    function setProductToken(uint256 productId, address erc20Address) external;\n\n    function setInstanceWallet(address instanceWalletAddress) external;\n    function setRiskpoolWallet(uint256 riskpoolId, address riskpoolWalletAddress) external;\n\n    function createFeeSpecification(\n        uint256 componentId,\n        uint256 fixedFee,\n        uint256 fractionalFee,\n        bytes calldata feeCalculationData\n    )\n        external view returns(FeeSpecification memory feeSpec);\n    \n    function setPremiumFees(FeeSpecification calldata feeSpec) external;\n    function setCapitalFees(FeeSpecification calldata feeSpec) external;\n    \n    function processPremium(bytes32 processId) external \n        returns(\n            bool success,\n            uint256 feeAmount,\n            uint256 netPremiumAmount\n        );\n    \n    function processPremium(bytes32 processId, uint256 amount) external \n        returns(\n            bool success,\n            uint256 feeAmount,\n            uint256 netPremiumAmount\n        );\n    \n    function processPayout(bytes32 processId, uint256 payoutId) external \n        returns(\n            uint256 feeAmount,\n            uint256 netPayoutAmount\n        );\n    \n    function processCapital(uint256 bundleId, uint256 capitalAmount) external \n        returns(\n            uint256 feeAmount,\n            uint256 netCapitalAmount\n        );\n\n    function processWithdrawal(uint256 bundleId, uint256 amount) external\n        returns(\n            uint256 feeAmount,\n            uint256 netAmount\n        );\n\n    function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n    function getFeeSpecification(uint256 componentId) external view returns(FeeSpecification memory feeSpecification);\n\n    function getFractionFullUnit() external view returns(uint256);\n    function getInstanceWallet() external view returns(address instanceWalletAddress);\n    function getRiskpoolWallet(uint256 riskpoolId) external view returns(address riskpoolWalletAddress);\n\n}\n",
  "sourceMap": "",
  "sourcePath": "contracts/modules/ITreasury.sol",
  "type": "interface"
}