{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "activeBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "claims",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfClaims",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "contractName",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "name",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "contracts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfContracts",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "bundleIdx",
          "type": "uint256"
        }
      ],
      "name": "getActiveBundleId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "getApplication",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum IPolicy.ApplicationState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "premiumAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sumInsuredAmount",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Application",
          "name": "application",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balanceAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "getBundle",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "bundle",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBundleToken",
      "outputs": [
        {
          "internalType": "contract IBundleToken",
          "name": "token",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getCapacity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "capacityAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getCapital",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "capitalAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getChainId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "chainId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getChainName",
      "outputs": [
        {
          "internalType": "string",
          "name": "chainName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "getClaim",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum IPolicy.ClaimState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "claimAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "paidAmount",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Claim",
          "name": "claim",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getComponent",
      "outputs": [
        {
          "internalType": "contract IComponent",
          "name": "component",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        }
      ],
      "name": "getComponentId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getComponentOwnerService",
      "outputs": [
        {
          "internalType": "contract IComponentOwnerService",
          "name": "service",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getComponentState",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentState",
          "name": "componentState",
          "type": "uint8"
        }
      ],
      "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": "getComponentType",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getDefaultAdminRole",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFeeFractionFullUnit",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "fullUnit",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFullCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInstanceId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "instanceId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInstanceOperator",
      "outputs": [
        {
          "internalType": "address",
          "name": "instanceOperator",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInstanceOperatorService",
      "outputs": [
        {
          "internalType": "contract IInstanceOperatorService",
          "name": "service",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getInstanceWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "walletAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getMaximumNumberOfActiveBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "getMetadata",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "productId",
              "type": "uint256"
            },
            {
              "internalType": "enum IPolicy.PolicyFlowState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Metadata",
          "name": "metadata",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getOracleProviderRole",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getOracleService",
      "outputs": [
        {
          "internalType": "contract IOracleService",
          "name": "service",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "getPayout",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "claimId",
              "type": "uint256"
            },
            {
              "internalType": "enum IPolicy.PayoutState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "amount",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Payout",
          "name": "payout",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "getPolicy",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum IPolicy.PolicyState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "premiumExpectedAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "premiumPaidAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "claimsCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "openClaimsCount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "payoutMaxAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "payoutAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Policy",
          "name": "policy",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getProductOwnerRole",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getProductService",
      "outputs": [
        {
          "internalType": "contract IProductService",
          "name": "service",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getRiskpool",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "wallet",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "erc20Token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "collateralizationLevel",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sumOfSumInsuredCap",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sumOfSumInsuredAtRisk",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPool.Pool",
          "name": "riskPool",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRiskpoolKeeperRole",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRiskpoolService",
      "outputs": [
        {
          "internalType": "contract IRiskpoolService",
          "name": "service",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getRiskpoolWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "walletAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getStakedAssets",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "componentId",
          "type": "uint256"
        }
      ],
      "name": "getStakingRequirements",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "getTotalValueLocked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "totalValueLockedAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTreasuryAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "treasuryAddress",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "principal",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "roleIsAssigned",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfOracles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "payouts",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfPayouts",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "processIds",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfProcessIds",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "products",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfProducts",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "riskpools",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfRiskpools",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "riskpoolId",
          "type": "uint256"
        }
      ],
      "name": "unburntBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "numberOfUnburntBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "13": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
    "18": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol",
    "26": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/introspection/IERC165.sol",
    "30": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
    "44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
    "46": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IComponentOwnerService.sol",
    "47": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceOperatorService.sol",
    "48": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
    "49": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IOracleService.sol",
    "50": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
    "51": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
    "53": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/tokens/IBundleToken.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
    "exportedSymbols": {
      "IBundle": [
        20491
      ],
      "IBundleToken": [
        24052
      ],
      "IComponent": [
        22099
      ],
      "IComponentOwnerService": [
        23478
      ],
      "IERC165": [
        27203
      ],
      "IERC20": [
        18510
      ],
      "IERC721": [
        23745
      ],
      "IInstanceOperatorService": [
        23629
      ],
      "IInstanceService": [
        22849
      ],
      "IOracleService": [
        23755
      ],
      "IPolicy": [
        20837
      ],
      "IPool": [
        21652
      ],
      "IProductService": [
        23900
      ],
      "IRegistry": [
        21750
      ],
      "IRiskpoolService": [
        24006
      ],
      "ITreasury": [
        23443
      ]
    },
    "id": 22850,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 22502,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:48"
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
        "file": "../components/IComponent.sol",
        "id": 22503,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 22100,
        "src": "63:38:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IBundle.sol",
        "file": "../modules/IBundle.sol",
        "id": 22504,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 20492,
        "src": "102:32:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
        "file": "../modules/IPolicy.sol",
        "id": 22505,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 20838,
        "src": "135:32:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPool.sol",
        "file": "../modules/IPool.sol",
        "id": 22506,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 21653,
        "src": "168:30:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/tokens/IBundleToken.sol",
        "file": "../tokens/IBundleToken.sol",
        "id": 22507,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 24053,
        "src": "199:36:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IComponentOwnerService.sol",
        "file": "./IComponentOwnerService.sol",
        "id": 22508,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 23479,
        "src": "236:38:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceOperatorService.sol",
        "file": "./IInstanceOperatorService.sol",
        "id": 22509,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 23630,
        "src": "275:40:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IOracleService.sol",
        "file": "./IOracleService.sol",
        "id": 22510,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 23756,
        "src": "316:30:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
        "file": "./IProductService.sol",
        "id": 22511,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 23901,
        "src": "347:31:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
        "file": "./IRiskpoolService.sol",
        "id": 22512,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 24007,
        "src": "379:32:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "id": 22513,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 18511,
        "src": "413:56:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol",
        "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "id": 22514,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 22850,
        "sourceUnit": 23746,
        "src": "470:58:48",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 22849,
        "linearizedBaseContracts": [
          22849
        ],
        "name": "IInstanceService",
        "nameLocation": "540:16:48",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "functionSelector": "3408e470",
            "id": 22519,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getChainId",
            "nameLocation": "589:10:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22515,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "599:2:48"
            },
            "returnParameters": {
              "id": 22518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22517,
                  "mutability": "mutable",
                  "name": "chainId",
                  "nameLocation": "632:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22519,
                  "src": "624:15:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22516,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "624:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "623:17:48"
            },
            "scope": 22849,
            "src": "580:61:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d722b0bc",
            "id": 22524,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getChainName",
            "nameLocation": "655:12:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22520,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "667:2:48"
            },
            "returnParameters": {
              "id": 22523,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22522,
                  "mutability": "mutable",
                  "name": "chainName",
                  "nameLocation": "706:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22524,
                  "src": "692:23:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 22521,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:6:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "691:25:48"
            },
            "scope": 22849,
            "src": "646:71:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1551100f",
            "id": 22529,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceId",
            "nameLocation": "731:13:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "744:2:48"
            },
            "returnParameters": {
              "id": 22528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22527,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "777:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22529,
                  "src": "769:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22526,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "768:20:48"
            },
            "scope": 22849,
            "src": "722:67:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "39c6fa90",
            "id": 22534,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceOperator",
            "nameLocation": "803:19:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22530,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "822:2:48"
            },
            "returnParameters": {
              "id": 22533,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22532,
                  "mutability": "mutable",
                  "name": "instanceOperator",
                  "nameLocation": "855:16:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22534,
                  "src": "847:24:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22531,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "847:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "846:26:48"
            },
            "scope": 22849,
            "src": "794:79:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6fa29853",
            "id": 22540,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentOwnerService",
            "nameLocation": "904:24:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22535,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "928:2:48"
            },
            "returnParameters": {
              "id": 22539,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22538,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "976:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22540,
                  "src": "953:30:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IComponentOwnerService_$23478",
                    "typeString": "contract IComponentOwnerService"
                  },
                  "typeName": {
                    "id": 22537,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22536,
                      "name": "IComponentOwnerService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23478,
                      "src": "953:22:48"
                    },
                    "referencedDeclaration": 23478,
                    "src": "953:22:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IComponentOwnerService_$23478",
                      "typeString": "contract IComponentOwnerService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "952:32:48"
            },
            "scope": 22849,
            "src": "895:90:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "091924dc",
            "id": 22546,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceOperatorService",
            "nameLocation": "999:26:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22541,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1025:2:48"
            },
            "returnParameters": {
              "id": 22545,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22544,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1075:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22546,
                  "src": "1050:32:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IInstanceOperatorService_$23629",
                    "typeString": "contract IInstanceOperatorService"
                  },
                  "typeName": {
                    "id": 22543,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22542,
                      "name": "IInstanceOperatorService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23629,
                      "src": "1050:24:48"
                    },
                    "referencedDeclaration": 23629,
                    "src": "1050:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceOperatorService_$23629",
                      "typeString": "contract IInstanceOperatorService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1049:34:48"
            },
            "scope": 22849,
            "src": "990:94:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a7ecda36",
            "id": 22552,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getOracleService",
            "nameLocation": "1098:16:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22547,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1114:2:48"
            },
            "returnParameters": {
              "id": 22551,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22550,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1154:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22552,
                  "src": "1139:22:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracleService_$23755",
                    "typeString": "contract IOracleService"
                  },
                  "typeName": {
                    "id": 22549,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22548,
                      "name": "IOracleService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23755,
                      "src": "1139:14:48"
                    },
                    "referencedDeclaration": 23755,
                    "src": "1139:14:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracleService_$23755",
                      "typeString": "contract IOracleService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1138:24:48"
            },
            "scope": 22849,
            "src": "1089:74:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4288121d",
            "id": 22558,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProductService",
            "nameLocation": "1177:17:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22553,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1194:2:48"
            },
            "returnParameters": {
              "id": 22557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22556,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1235:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22558,
                  "src": "1219:23:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IProductService_$23900",
                    "typeString": "contract IProductService"
                  },
                  "typeName": {
                    "id": 22555,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22554,
                      "name": "IProductService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 23900,
                      "src": "1219:15:48"
                    },
                    "referencedDeclaration": 23900,
                    "src": "1219:15:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IProductService_$23900",
                      "typeString": "contract IProductService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1218:25:48"
            },
            "scope": 22849,
            "src": "1168:76:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "442ed817",
            "id": 22564,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolService",
            "nameLocation": "1258:18:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22559,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1276:2:48"
            },
            "returnParameters": {
              "id": 22563,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22562,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1318:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22564,
                  "src": "1301:24:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                    "typeString": "contract IRiskpoolService"
                  },
                  "typeName": {
                    "id": 22561,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22560,
                      "name": "IRiskpoolService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24006,
                      "src": "1301:16:48"
                    },
                    "referencedDeclaration": 24006,
                    "src": "1301:16:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRiskpoolService_$24006",
                      "typeString": "contract IRiskpoolService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1300:26:48"
            },
            "scope": 22849,
            "src": "1249:78:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6c0f79b6",
            "id": 22569,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "contracts",
            "nameLocation": "1341:9:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22565,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1350:2:48"
            },
            "returnParameters": {
              "id": 22568,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22567,
                  "mutability": "mutable",
                  "name": "numberOfContracts",
                  "nameLocation": "1384:17:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22569,
                  "src": "1376:25:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22566,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1376:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1375:27:48"
            },
            "scope": 22849,
            "src": "1332:71:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f6b3e7d0",
            "id": 22576,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "contractName",
            "nameLocation": "1417:12:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22571,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "1438:3:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22576,
                  "src": "1430:11:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22570,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1430:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1429:13:48"
            },
            "returnParameters": {
              "id": 22575,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22574,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "1474:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22576,
                  "src": "1466:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22573,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1466:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1465:14:48"
            },
            "scope": 22849,
            "src": "1408:72:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "52a9c8d7",
            "id": 22581,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getDefaultAdminRole",
            "nameLocation": "1509:19:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22577,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1528:2:48"
            },
            "returnParameters": {
              "id": 22580,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22579,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1561:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22581,
                  "src": "1553:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22578,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1553:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1552:14:48"
            },
            "scope": 22849,
            "src": "1500:67:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "775a4048",
            "id": 22586,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProductOwnerRole",
            "nameLocation": "1581:19:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1600:2:48"
            },
            "returnParameters": {
              "id": 22585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22584,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1633:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22586,
                  "src": "1625:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22583,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1625:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1624:14:48"
            },
            "scope": 22849,
            "src": "1572:67:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d49d21c0",
            "id": 22591,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getOracleProviderRole",
            "nameLocation": "1653:21:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22587,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1674:2:48"
            },
            "returnParameters": {
              "id": 22590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22589,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1707:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22591,
                  "src": "1699:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22588,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1699:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1698:14:48"
            },
            "scope": 22849,
            "src": "1644:69:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3ffdd2f3",
            "id": 22596,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolKeeperRole",
            "nameLocation": "1727:21:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22592,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1748:2:48"
            },
            "returnParameters": {
              "id": 22595,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22594,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1781:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22596,
                  "src": "1773:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22593,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1773:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1772:14:48"
            },
            "scope": 22849,
            "src": "1718:69:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "91d14854",
            "id": 22605,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "hasRole",
            "nameLocation": "1801:7:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22598,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1817:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22605,
                  "src": "1809:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22597,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1809:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22600,
                  "mutability": "mutable",
                  "name": "principal",
                  "nameLocation": "1831:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22605,
                  "src": "1823:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1823:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1808:33:48"
            },
            "returnParameters": {
              "id": 22604,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22603,
                  "mutability": "mutable",
                  "name": "roleIsAssigned",
                  "nameLocation": "1870:14:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22605,
                  "src": "1865:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22602,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1865:4:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1864:21:48"
            },
            "scope": 22849,
            "src": "1792:94:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "c71e261f",
            "id": 22610,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "products",
            "nameLocation": "1922:8:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22606,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1930:2:48"
            },
            "returnParameters": {
              "id": 22609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22608,
                  "mutability": "mutable",
                  "name": "numberOfProducts",
                  "nameLocation": "1963:16:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22610,
                  "src": "1955:24:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22607,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1955:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1954:26:48"
            },
            "scope": 22849,
            "src": "1913:68:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2857373a",
            "id": 22615,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "oracles",
            "nameLocation": "1995:7:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22611,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2002:2:48"
            },
            "returnParameters": {
              "id": 22614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22613,
                  "mutability": "mutable",
                  "name": "numberOfOracles",
                  "nameLocation": "2035:15:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22615,
                  "src": "2027:23:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22612,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2027:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2026:25:48"
            },
            "scope": 22849,
            "src": "1986:66:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a054381f",
            "id": 22620,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "riskpools",
            "nameLocation": "2066:9:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22616,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2075:2:48"
            },
            "returnParameters": {
              "id": 22619,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22618,
                  "mutability": "mutable",
                  "name": "numberOfRiskpools",
                  "nameLocation": "2108:17:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22620,
                  "src": "2100:25:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22617,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2100:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2099:27:48"
            },
            "scope": 22849,
            "src": "2057:70:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2b1c7f73",
            "id": 22627,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentId",
            "nameLocation": "2142:14:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22623,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22622,
                  "mutability": "mutable",
                  "name": "componentAddress",
                  "nameLocation": "2165:16:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22627,
                  "src": "2157:24:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22621,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2157:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2156:26:48"
            },
            "returnParameters": {
              "id": 22626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22625,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2213:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22627,
                  "src": "2205:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22624,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2205:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2204:21:48"
            },
            "scope": 22849,
            "src": "2133:93:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4f27da18",
            "id": 22635,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponent",
            "nameLocation": "2240:12:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22630,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22629,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2261:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22635,
                  "src": "2253:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22628,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2253:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2252:21:48"
            },
            "returnParameters": {
              "id": 22634,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22633,
                  "mutability": "mutable",
                  "name": "component",
                  "nameLocation": "2307:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22635,
                  "src": "2296:20:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IComponent_$22099",
                    "typeString": "contract IComponent"
                  },
                  "typeName": {
                    "id": 22632,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22631,
                      "name": "IComponent",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22099,
                      "src": "2296:10:48"
                    },
                    "referencedDeclaration": 22099,
                    "src": "2296:10:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IComponent_$22099",
                      "typeString": "contract IComponent"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2295:22:48"
            },
            "scope": 22849,
            "src": "2231:87:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "dd51c86a",
            "id": 22643,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentType",
            "nameLocation": "2332:16:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22637,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2357:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22643,
                  "src": "2349:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22636,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2349:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2348:21:48"
            },
            "returnParameters": {
              "id": 22642,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22641,
                  "mutability": "mutable",
                  "name": "componentType",
                  "nameLocation": "2417:13:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22643,
                  "src": "2392:38:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ComponentType_$22002",
                    "typeString": "enum IComponent.ComponentType"
                  },
                  "typeName": {
                    "id": 22640,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22639,
                      "name": "IComponent.ComponentType",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22002,
                      "src": "2392:24:48"
                    },
                    "referencedDeclaration": 22002,
                    "src": "2392:24:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentType_$22002",
                      "typeString": "enum IComponent.ComponentType"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2391:40:48"
            },
            "scope": 22849,
            "src": "2323:109:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5e966e45",
            "id": 22651,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentState",
            "nameLocation": "2446:17:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22645,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2472:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22651,
                  "src": "2464:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22644,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2464:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2463:21:48"
            },
            "returnParameters": {
              "id": 22650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22649,
                  "mutability": "mutable",
                  "name": "componentState",
                  "nameLocation": "2533:14:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22651,
                  "src": "2507:40:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ComponentState_$22010",
                    "typeString": "enum IComponent.ComponentState"
                  },
                  "typeName": {
                    "id": 22648,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22647,
                      "name": "IComponent.ComponentState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22010,
                      "src": "2507:25:48"
                    },
                    "referencedDeclaration": 22010,
                    "src": "2507:25:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentState_$22010",
                      "typeString": "enum IComponent.ComponentState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2506:42:48"
            },
            "scope": 22849,
            "src": "2437:112:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ab9c6ee4",
            "id": 22658,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStakingRequirements",
            "nameLocation": "2587:22:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22653,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2618:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22658,
                  "src": "2610:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22652,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2610:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2609:21:48"
            },
            "returnParameters": {
              "id": 22657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22656,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "2666:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22658,
                  "src": "2653:17:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 22655,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2653:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2652:19:48"
            },
            "scope": 22849,
            "src": "2578:94:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3a42b053",
            "id": 22665,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStakedAssets",
            "nameLocation": "2686:15:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22661,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22660,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2710:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22665,
                  "src": "2702:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22659,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2702:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2701:21:48"
            },
            "returnParameters": {
              "id": 22664,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22663,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "2758:4:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22665,
                  "src": "2745:17:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 22662,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2745:5:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2744:19:48"
            },
            "scope": 22849,
            "src": "2677:87:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eb802114",
            "id": 22673,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpool",
            "nameLocation": "2795:11:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22667,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "2815:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22673,
                  "src": "2807:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22666,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2807:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2806:20:48"
            },
            "returnParameters": {
              "id": 22672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22671,
                  "mutability": "mutable",
                  "name": "riskPool",
                  "nameLocation": "2867:8:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22673,
                  "src": "2849:26:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Pool_$21605_memory_ptr",
                    "typeString": "struct IPool.Pool"
                  },
                  "typeName": {
                    "id": 22670,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22669,
                      "name": "IPool.Pool",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 21605,
                      "src": "2849:10:48"
                    },
                    "referencedDeclaration": 21605,
                    "src": "2849:10:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Pool_$21605_storage_ptr",
                      "typeString": "struct IPool.Pool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2848:28:48"
            },
            "scope": 22849,
            "src": "2786:91:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f1d354d0",
            "id": 22678,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFullCollateralizationLevel",
            "nameLocation": "2891:29:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22674,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2920:2:48"
            },
            "returnParameters": {
              "id": 22677,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22676,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 22678,
                  "src": "2946:7:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22675,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2946:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2945:9:48"
            },
            "scope": 22849,
            "src": "2882:73:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "29560980",
            "id": 22685,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getCapital",
            "nameLocation": "2969:10:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22681,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22680,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "2988:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22685,
                  "src": "2980:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22679,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2979:20:48"
            },
            "returnParameters": {
              "id": 22684,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22683,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "3030:13:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22685,
                  "src": "3022:21:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22682,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3022:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3021:23:48"
            },
            "scope": 22849,
            "src": "2960:85:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3f5d9235",
            "id": 22692,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTotalValueLocked",
            "nameLocation": "3059:19:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22688,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22687,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3087:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22692,
                  "src": "3079:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22686,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3079:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3078:20:48"
            },
            "returnParameters": {
              "id": 22691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22690,
                  "mutability": "mutable",
                  "name": "totalValueLockedAmount",
                  "nameLocation": "3129:22:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22692,
                  "src": "3121:30:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22689,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3121:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3120:32:48"
            },
            "scope": 22849,
            "src": "3050:103:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "bcd5349f",
            "id": 22699,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getCapacity",
            "nameLocation": "3167:11:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22695,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22694,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3187:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22699,
                  "src": "3179:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22693,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3179:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3178:20:48"
            },
            "returnParameters": {
              "id": 22698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22697,
                  "mutability": "mutable",
                  "name": "capacityAmount",
                  "nameLocation": "3229:14:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22699,
                  "src": "3221:22:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22696,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3221:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3220:24:48"
            },
            "scope": 22849,
            "src": "3158:87:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1e010439",
            "id": 22706,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBalance",
            "nameLocation": "3259:10:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22702,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22701,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3278:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22706,
                  "src": "3270:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22700,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3270:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3269:20:48"
            },
            "returnParameters": {
              "id": 22705,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22704,
                  "mutability": "mutable",
                  "name": "balanceAmount",
                  "nameLocation": "3320:13:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22706,
                  "src": "3312:21:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22703,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3312:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3311:23:48"
            },
            "scope": 22849,
            "src": "3250:85:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a4266a66",
            "id": 22713,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "activeBundles",
            "nameLocation": "3350:13:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22709,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22708,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3372:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22713,
                  "src": "3364:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22707,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3364:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3363:20:48"
            },
            "returnParameters": {
              "id": 22712,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22711,
                  "mutability": "mutable",
                  "name": "numberOfActiveBundles",
                  "nameLocation": "3414:21:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22713,
                  "src": "3406:29:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22710,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3406:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3405:31:48"
            },
            "scope": 22849,
            "src": "3341:96:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ec833b0c",
            "id": 22722,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getActiveBundleId",
            "nameLocation": "3451:17:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22718,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22715,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3477:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22722,
                  "src": "3469:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22714,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3469:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22717,
                  "mutability": "mutable",
                  "name": "bundleIdx",
                  "nameLocation": "3497:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22722,
                  "src": "3489:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22716,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3489:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3468:39:48"
            },
            "returnParameters": {
              "id": 22721,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22720,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3538:8:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22722,
                  "src": "3530:16:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22719,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3530:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3529:18:48"
            },
            "scope": 22849,
            "src": "3442:106:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7db32844",
            "id": 22729,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getMaximumNumberOfActiveBundles",
            "nameLocation": "3562:31:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22725,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22724,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3602:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22729,
                  "src": "3594:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22723,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3594:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3593:20:48"
            },
            "returnParameters": {
              "id": 22728,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22727,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "3644:28:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22729,
                  "src": "3636:36:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22726,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3636:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3635:38:48"
            },
            "scope": 22849,
            "src": "3553:121:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eb35783c",
            "id": 22735,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBundleToken",
            "nameLocation": "3704:14:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22730,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3718:2:48"
            },
            "returnParameters": {
              "id": 22734,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22733,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3756:5:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22735,
                  "src": "3743:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBundleToken_$24052",
                    "typeString": "contract IBundleToken"
                  },
                  "typeName": {
                    "id": 22732,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22731,
                      "name": "IBundleToken",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 24052,
                      "src": "3743:12:48"
                    },
                    "referencedDeclaration": 24052,
                    "src": "3743:12:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IBundleToken_$24052",
                      "typeString": "contract IBundleToken"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3742:20:48"
            },
            "scope": 22849,
            "src": "3695:68:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "18442e63",
            "id": 22740,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "bundles",
            "nameLocation": "3777:7:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22736,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3784:2:48"
            },
            "returnParameters": {
              "id": 22739,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22738,
                  "mutability": "mutable",
                  "name": "numberOfBundles",
                  "nameLocation": "3817:15:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22740,
                  "src": "3809:23:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22737,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3809:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3808:25:48"
            },
            "scope": 22849,
            "src": "3768:66:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2d0821b7",
            "id": 22748,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBundle",
            "nameLocation": "3848:9:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22743,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22742,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3866:8:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22748,
                  "src": "3858:16:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22741,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3858:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3857:18:48"
            },
            "returnParameters": {
              "id": 22747,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22746,
                  "mutability": "mutable",
                  "name": "bundle",
                  "nameLocation": "3920:6:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22748,
                  "src": "3898:28:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$20407_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 22745,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22744,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20407,
                      "src": "3898:14:48"
                    },
                    "referencedDeclaration": 20407,
                    "src": "3898:14:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$20407_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3897:30:48"
            },
            "scope": 22849,
            "src": "3839:89:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "c559783e",
            "id": 22755,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "unburntBundles",
            "nameLocation": "3942:14:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22751,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22750,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3965:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22755,
                  "src": "3957:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22749,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3957:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3956:20:48"
            },
            "returnParameters": {
              "id": 22754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22753,
                  "mutability": "mutable",
                  "name": "numberOfUnburntBundles",
                  "nameLocation": "4007:22:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22755,
                  "src": "3999:30:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22752,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3999:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3998:32:48"
            },
            "scope": 22849,
            "src": "3933:98:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a427056e",
            "id": 22760,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processIds",
            "nameLocation": "4060:10:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22756,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4070:2:48"
            },
            "returnParameters": {
              "id": 22759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22758,
                  "mutability": "mutable",
                  "name": "numberOfProcessIds",
                  "nameLocation": "4103:18:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22760,
                  "src": "4095:26:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22757,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4095:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4094:28:48"
            },
            "scope": 22849,
            "src": "4051:72:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a5961b4c",
            "id": 22768,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getMetadata",
            "nameLocation": "4137:11:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22763,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22762,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4157:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22768,
                  "src": "4149:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22761,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4149:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4148:19:48"
            },
            "returnParameters": {
              "id": 22767,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22766,
                  "mutability": "mutable",
                  "name": "metadata",
                  "nameLocation": "4214:8:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22768,
                  "src": "4190:32:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Metadata_$20652_memory_ptr",
                    "typeString": "struct IPolicy.Metadata"
                  },
                  "typeName": {
                    "id": 22765,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22764,
                      "name": "IPolicy.Metadata",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20652,
                      "src": "4190:16:48"
                    },
                    "referencedDeclaration": 20652,
                    "src": "4190:16:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Metadata_$20652_storage_ptr",
                      "typeString": "struct IPolicy.Metadata"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4189:34:48"
            },
            "scope": 22849,
            "src": "4128:96:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "bc506f64",
            "id": 22776,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getApplication",
            "nameLocation": "4238:14:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22770,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4261:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22776,
                  "src": "4253:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22769,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4253:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4252:19:48"
            },
            "returnParameters": {
              "id": 22775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22774,
                  "mutability": "mutable",
                  "name": "application",
                  "nameLocation": "4321:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22776,
                  "src": "4294:38:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Application_$20666_memory_ptr",
                    "typeString": "struct IPolicy.Application"
                  },
                  "typeName": {
                    "id": 22773,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22772,
                      "name": "IPolicy.Application",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20666,
                      "src": "4294:19:48"
                    },
                    "referencedDeclaration": 20666,
                    "src": "4294:19:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Application_$20666_storage_ptr",
                      "typeString": "struct IPolicy.Application"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4293:40:48"
            },
            "scope": 22849,
            "src": "4229:105:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a3f685f9",
            "id": 22784,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getPolicy",
            "nameLocation": "4348:9:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22779,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22778,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4366:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22784,
                  "src": "4358:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4358:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4357:19:48"
            },
            "returnParameters": {
              "id": 22783,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22782,
                  "mutability": "mutable",
                  "name": "policy",
                  "nameLocation": "4421:6:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22784,
                  "src": "4399:28:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Policy_$20686_memory_ptr",
                    "typeString": "struct IPolicy.Policy"
                  },
                  "typeName": {
                    "id": 22781,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22780,
                      "name": "IPolicy.Policy",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20686,
                      "src": "4399:14:48"
                    },
                    "referencedDeclaration": 20686,
                    "src": "4399:14:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Policy_$20686_storage_ptr",
                      "typeString": "struct IPolicy.Policy"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4398:30:48"
            },
            "scope": 22849,
            "src": "4339:90:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eff0f592",
            "id": 22791,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "claims",
            "nameLocation": "4443:6:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22787,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22786,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4458:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22791,
                  "src": "4450:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22785,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4450:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4449:19:48"
            },
            "returnParameters": {
              "id": 22790,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22789,
                  "mutability": "mutable",
                  "name": "numberOfClaims",
                  "nameLocation": "4499:14:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22791,
                  "src": "4491:22:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22788,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4491:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4490:24:48"
            },
            "scope": 22849,
            "src": "4434:81:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "aeddb905",
            "id": 22798,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "payouts",
            "nameLocation": "4529:7:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22794,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22793,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4545:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22798,
                  "src": "4537:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22792,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4537:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4536:19:48"
            },
            "returnParameters": {
              "id": 22797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22796,
                  "mutability": "mutable",
                  "name": "numberOfPayouts",
                  "nameLocation": "4586:15:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22798,
                  "src": "4578:23:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22795,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4578:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4577:25:48"
            },
            "scope": 22849,
            "src": "4520:83:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7f22c2d9",
            "id": 22808,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getClaim",
            "nameLocation": "4618:8:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22803,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22800,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4635:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22808,
                  "src": "4627:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22799,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4627:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22802,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4654:7:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22808,
                  "src": "4646:15:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22801,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4646:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4626:36:48"
            },
            "returnParameters": {
              "id": 22807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22806,
                  "mutability": "mutable",
                  "name": "claim",
                  "nameLocation": "4707:5:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22808,
                  "src": "4686:26:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Claim_$20700_memory_ptr",
                    "typeString": "struct IPolicy.Claim"
                  },
                  "typeName": {
                    "id": 22805,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22804,
                      "name": "IPolicy.Claim",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20700,
                      "src": "4686:13:48"
                    },
                    "referencedDeclaration": 20700,
                    "src": "4686:13:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$20700_storage_ptr",
                      "typeString": "struct IPolicy.Claim"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4685:28:48"
            },
            "scope": 22849,
            "src": "4609:105:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "cef58f13",
            "id": 22818,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getPayout",
            "nameLocation": "4728:9:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22813,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22810,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4746:9:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22818,
                  "src": "4738:17:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22809,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4738:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22812,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "4765:8:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22818,
                  "src": "4757:16:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22811,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4757:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4737:37:48"
            },
            "returnParameters": {
              "id": 22817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22816,
                  "mutability": "mutable",
                  "name": "payout",
                  "nameLocation": "4820:6:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22818,
                  "src": "4798:28:48",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Payout_$20714_memory_ptr",
                    "typeString": "struct IPolicy.Payout"
                  },
                  "typeName": {
                    "id": 22815,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22814,
                      "name": "IPolicy.Payout",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 20714,
                      "src": "4798:14:48"
                    },
                    "referencedDeclaration": 20714,
                    "src": "4798:14:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Payout_$20714_storage_ptr",
                      "typeString": "struct IPolicy.Payout"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4797:30:48"
            },
            "scope": 22849,
            "src": "4719:109:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e0024604",
            "id": 22823,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTreasuryAddress",
            "nameLocation": "4859:18:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22819,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4877:2:48"
            },
            "returnParameters": {
              "id": 22822,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22821,
                  "mutability": "mutable",
                  "name": "treasuryAddress",
                  "nameLocation": "4910:15:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22823,
                  "src": "4902:23:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22820,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4902:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4901:25:48"
            },
            "scope": 22849,
            "src": "4850:77:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a44330c4",
            "id": 22828,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceWallet",
            "nameLocation": "4943:17:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22824,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4960:2:48"
            },
            "returnParameters": {
              "id": 22827,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22826,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "4993:13:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22828,
                  "src": "4985:21:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22825,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4985:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4984:23:48"
            },
            "scope": 22849,
            "src": "4934:74:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "49081637",
            "id": 22835,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolWallet",
            "nameLocation": "5022:17:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22831,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22830,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "5048:10:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22835,
                  "src": "5040:18:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5040:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5039:20:48"
            },
            "returnParameters": {
              "id": 22834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22833,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "5090:13:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22835,
                  "src": "5082:21:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22832,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5082:7:48",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5081:23:48"
            },
            "scope": 22849,
            "src": "5013:92:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "038696bb",
            "id": 22843,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentToken",
            "nameLocation": "5121:17:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22838,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22837,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "5147:11:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22843,
                  "src": "5139:19:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22836,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5139:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5138:21:48"
            },
            "returnParameters": {
              "id": 22842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22841,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "5189:5:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22843,
                  "src": "5182:12:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$18510",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 22840,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 22839,
                      "name": "IERC20",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 18510,
                      "src": "5182:6:48"
                    },
                    "referencedDeclaration": 18510,
                    "src": "5182:6:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$18510",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5181:14:48"
            },
            "scope": 22849,
            "src": "5112:84:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6319112b",
            "id": 22848,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeFractionFullUnit",
            "nameLocation": "5210:22:48",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22844,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5232:2:48"
            },
            "returnParameters": {
              "id": 22847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22846,
                  "mutability": "mutable",
                  "name": "fullUnit",
                  "nameLocation": "5265:8:48",
                  "nodeType": "VariableDeclaration",
                  "scope": 22848,
                  "src": "5257:16:48",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22845,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5257:7:48",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5256:18:48"
            },
            "scope": 22849,
            "src": "5201:74:48",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22850,
        "src": "530:4748:48"
      }
    ],
    "src": "39:5240:48"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "IInstanceService",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "etherisc/gif-interface@3b0002a/IBundleToken",
    "etherisc/gif-interface@3b0002a/IComponent",
    "etherisc/gif-interface@3b0002a/IComponentOwnerService",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC165",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.7.3/IERC721",
    "etherisc/gif-interface@3b0002a/IInstanceOperatorService",
    "etherisc/gif-interface@3b0002a/IOracleService",
    "etherisc/gif-interface@3b0002a/IProductService",
    "etherisc/gif-interface@3b0002a/IRegistry",
    "etherisc/gif-interface@3b0002a/IRiskpoolService"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    530,
    5278
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "a6ad1c32058b44b6f99d00b274af2bff3da44462",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"../components/IComponent.sol\";\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../modules/IPool.sol\";\nimport \"../tokens/IBundleToken.sol\";\nimport \"./IComponentOwnerService.sol\";\nimport \"./IInstanceOperatorService.sol\";\nimport \"./IOracleService.sol\";\nimport \"./IProductService.sol\";\nimport \"./IRiskpoolService.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\ninterface IInstanceService {\n\n    // instance\n    function getChainId() external view returns(uint256 chainId);\n    function getChainName() external view returns(string memory chainName);\n    function getInstanceId() external view returns(bytes32 instanceId);\n    function getInstanceOperator() external view returns(address instanceOperator);\n\n    // registry\n    function getComponentOwnerService() external view returns(IComponentOwnerService service);\n    function getInstanceOperatorService() external view returns(IInstanceOperatorService service);\n    function getOracleService() external view returns(IOracleService service);\n    function getProductService() external view returns(IProductService service);\n    function getRiskpoolService() external view returns(IRiskpoolService service);\n    function contracts() external view returns (uint256 numberOfContracts);\n    function contractName(uint256 idx) external view returns (bytes32 name);\n\n    // access\n    function getDefaultAdminRole() external view returns(bytes32 role);\n    function getProductOwnerRole() external view returns(bytes32 role);\n    function getOracleProviderRole() external view returns(bytes32 role);\n    function getRiskpoolKeeperRole() external view returns(bytes32 role);\n    function hasRole(bytes32 role, address principal) external view returns (bool roleIsAssigned);    \n\n    // component\n    function products() external view returns(uint256 numberOfProducts);\n    function oracles() external view returns(uint256 numberOfOracles);\n    function riskpools() external view returns(uint256 numberOfRiskpools);\n\n    function getComponentId(address componentAddress) external view returns(uint256 componentId);\n    function getComponent(uint256 componentId) external view returns(IComponent component);\n    function getComponentType(uint256 componentId) external view returns(IComponent.ComponentType componentType);\n    function getComponentState(uint256 componentId) external view returns(IComponent.ComponentState componentState);\n\n    // service staking\n    function getStakingRequirements(uint256 componentId) external view returns(bytes memory data);\n    function getStakedAssets(uint256 componentId) external view returns(bytes memory data);\n\n    // riskpool\n    function getRiskpool(uint256 riskpoolId) external view returns(IPool.Pool memory riskPool);\n    function getFullCollateralizationLevel() external view returns (uint256);\n    function getCapital(uint256 riskpoolId) external view returns(uint256 capitalAmount);\n    function getTotalValueLocked(uint256 riskpoolId) external view returns(uint256 totalValueLockedAmount);\n    function getCapacity(uint256 riskpoolId) external view returns(uint256 capacityAmount);\n    function getBalance(uint256 riskpoolId) external view returns(uint256 balanceAmount);\n\n    function activeBundles(uint256 riskpoolId) external view returns(uint256 numberOfActiveBundles);\n    function getActiveBundleId(uint256 riskpoolId, uint256 bundleIdx) external view returns(uint256 bundleId);\n    function getMaximumNumberOfActiveBundles(uint256 riskpoolId) external view returns(uint256 maximumNumberOfActiveBundles);\n\n    // bundles\n    function getBundleToken() external view returns(IBundleToken token);\n    function bundles() external view returns(uint256 numberOfBundles);\n    function getBundle(uint256 bundleId) external view returns(IBundle.Bundle memory bundle);\n    function unburntBundles(uint256 riskpoolId) external view returns(uint256 numberOfUnburntBundles);\n\n    // policy\n    function processIds() external view returns(uint256 numberOfProcessIds);\n    function getMetadata(bytes32 processId) external view returns(IPolicy.Metadata memory metadata);\n    function getApplication(bytes32 processId) external view returns(IPolicy.Application memory application);\n    function getPolicy(bytes32 processId) external view returns(IPolicy.Policy memory policy);\n    function claims(bytes32 processId) external view returns(uint256 numberOfClaims);\n    function payouts(bytes32 processId) external view returns(uint256 numberOfPayouts);\n\n    function getClaim(bytes32 processId, uint256 claimId) external view returns (IPolicy.Claim memory claim);\n    function getPayout(bytes32 processId, uint256 payoutId) external view returns (IPolicy.Payout memory payout);\n\n    // treasury\n    function getTreasuryAddress() external view returns(address treasuryAddress);\n \n    function getInstanceWallet() external view returns(address walletAddress);\n    function getRiskpoolWallet(uint256 riskpoolId) external view returns(address walletAddress);\n \n    function getComponentToken(uint256 componentId) external view returns(IERC20 token);\n    function getFeeFractionFullUnit() external view returns(uint256 fullUnit);\n\n}\n",
  "sourceMap": "",
  "sourcePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
  "type": "interface"
}