{
  "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": {
    "2": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
    "21": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
    "23": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IComponentOwnerService.sol",
    "24": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceOperatorService.sol",
    "25": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
    "26": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IOracleService.sol",
    "27": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
    "28": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
    "29": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/tokens/IBundleToken.sol",
    "4": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol",
    "6": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/IERC165.sol",
    "9": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol"
  },
  "ast": {
    "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
    "exportedSymbols": {
      "IBundle": [
        3612
      ],
      "IBundleToken": [
        4029
      ],
      "IComponent": [
        5218
      ],
      "IComponentOwnerService": [
        7044
      ],
      "IERC165": [
        7662
      ],
      "IERC20": [
        4694
      ],
      "IERC721": [
        6660
      ],
      "IInstanceOperatorService": [
        7311
      ],
      "IInstanceService": [
        5668
      ],
      "IOracleService": [
        5262
      ],
      "IPolicy": [
        3958
      ],
      "IPool": [
        7160
      ],
      "IProductService": [
        5813
      ],
      "IRegistry": [
        7009
      ],
      "IRiskpoolService": [
        7417
      ],
      "ITreasury": [
        2409
      ]
    },
    "id": 5669,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5321,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:25"
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
        "file": "../components/IComponent.sol",
        "id": 5322,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 5219,
        "src": "63:38:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IBundle.sol",
        "file": "../modules/IBundle.sol",
        "id": 5323,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 3613,
        "src": "102:32:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
        "file": "../modules/IPolicy.sol",
        "id": 5324,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 3959,
        "src": "135:32:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPool.sol",
        "file": "../modules/IPool.sol",
        "id": 5325,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 7161,
        "src": "168:30:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/tokens/IBundleToken.sol",
        "file": "../tokens/IBundleToken.sol",
        "id": 5326,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 4030,
        "src": "199:36:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IComponentOwnerService.sol",
        "file": "./IComponentOwnerService.sol",
        "id": 5327,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 7045,
        "src": "236:38:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceOperatorService.sol",
        "file": "./IInstanceOperatorService.sol",
        "id": 5328,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 7312,
        "src": "275:40:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IOracleService.sol",
        "file": "./IOracleService.sol",
        "id": 5329,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 5263,
        "src": "316:30:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
        "file": "./IProductService.sol",
        "id": 5330,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 5814,
        "src": "347:31:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
        "file": "./IRiskpoolService.sol",
        "id": 5331,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 7418,
        "src": "379:32:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "id": 5332,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 4695,
        "src": "413:56:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol",
        "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "id": 5333,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 5669,
        "sourceUnit": 6661,
        "src": "470:58:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 5668,
        "linearizedBaseContracts": [
          5668
        ],
        "name": "IInstanceService",
        "nameLocation": "540:16:25",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "functionSelector": "3408e470",
            "id": 5338,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getChainId",
            "nameLocation": "589:10:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5334,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "599:2:25"
            },
            "returnParameters": {
              "id": 5337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5336,
                  "mutability": "mutable",
                  "name": "chainId",
                  "nameLocation": "632:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5338,
                  "src": "624:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5335,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "624:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "623:17:25"
            },
            "scope": 5668,
            "src": "580:61:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d722b0bc",
            "id": 5343,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getChainName",
            "nameLocation": "655:12:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5339,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "667:2:25"
            },
            "returnParameters": {
              "id": 5342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5341,
                  "mutability": "mutable",
                  "name": "chainName",
                  "nameLocation": "706:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5343,
                  "src": "692:23:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5340,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "692:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "691:25:25"
            },
            "scope": 5668,
            "src": "646:71:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1551100f",
            "id": 5348,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceId",
            "nameLocation": "731:13:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "744:2:25"
            },
            "returnParameters": {
              "id": 5347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5346,
                  "mutability": "mutable",
                  "name": "instanceId",
                  "nameLocation": "777:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5348,
                  "src": "769:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5345,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "769:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "768:20:25"
            },
            "scope": 5668,
            "src": "722:67:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "39c6fa90",
            "id": 5353,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceOperator",
            "nameLocation": "803:19:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5349,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "822:2:25"
            },
            "returnParameters": {
              "id": 5352,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5351,
                  "mutability": "mutable",
                  "name": "instanceOperator",
                  "nameLocation": "855:16:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5353,
                  "src": "847:24:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5350,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "847:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "846:26:25"
            },
            "scope": 5668,
            "src": "794:79:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6fa29853",
            "id": 5359,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentOwnerService",
            "nameLocation": "904:24:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "928:2:25"
            },
            "returnParameters": {
              "id": 5358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5357,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "976:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5359,
                  "src": "953:30:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IComponentOwnerService_$7044",
                    "typeString": "contract IComponentOwnerService"
                  },
                  "typeName": {
                    "id": 5356,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5355,
                      "name": "IComponentOwnerService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 7044,
                      "src": "953:22:25"
                    },
                    "referencedDeclaration": 7044,
                    "src": "953:22:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IComponentOwnerService_$7044",
                      "typeString": "contract IComponentOwnerService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "952:32:25"
            },
            "scope": 5668,
            "src": "895:90:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "091924dc",
            "id": 5365,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceOperatorService",
            "nameLocation": "999:26:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5360,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1025:2:25"
            },
            "returnParameters": {
              "id": 5364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5363,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1075:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5365,
                  "src": "1050:32:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IInstanceOperatorService_$7311",
                    "typeString": "contract IInstanceOperatorService"
                  },
                  "typeName": {
                    "id": 5362,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5361,
                      "name": "IInstanceOperatorService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 7311,
                      "src": "1050:24:25"
                    },
                    "referencedDeclaration": 7311,
                    "src": "1050:24:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceOperatorService_$7311",
                      "typeString": "contract IInstanceOperatorService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1049:34:25"
            },
            "scope": 5668,
            "src": "990:94:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a7ecda36",
            "id": 5371,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getOracleService",
            "nameLocation": "1098:16:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1114:2:25"
            },
            "returnParameters": {
              "id": 5370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5369,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1154:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5371,
                  "src": "1139:22:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IOracleService_$5262",
                    "typeString": "contract IOracleService"
                  },
                  "typeName": {
                    "id": 5368,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5367,
                      "name": "IOracleService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5262,
                      "src": "1139:14:25"
                    },
                    "referencedDeclaration": 5262,
                    "src": "1139:14:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IOracleService_$5262",
                      "typeString": "contract IOracleService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1138:24:25"
            },
            "scope": 5668,
            "src": "1089:74:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4288121d",
            "id": 5377,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProductService",
            "nameLocation": "1177:17:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5372,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1194:2:25"
            },
            "returnParameters": {
              "id": 5376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5375,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1235:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5377,
                  "src": "1219:23:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IProductService_$5813",
                    "typeString": "contract IProductService"
                  },
                  "typeName": {
                    "id": 5374,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5373,
                      "name": "IProductService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5813,
                      "src": "1219:15:25"
                    },
                    "referencedDeclaration": 5813,
                    "src": "1219:15:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IProductService_$5813",
                      "typeString": "contract IProductService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1218:25:25"
            },
            "scope": 5668,
            "src": "1168:76:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "442ed817",
            "id": 5383,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolService",
            "nameLocation": "1258:18:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5378,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1276:2:25"
            },
            "returnParameters": {
              "id": 5382,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5381,
                  "mutability": "mutable",
                  "name": "service",
                  "nameLocation": "1318:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5383,
                  "src": "1301:24:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                    "typeString": "contract IRiskpoolService"
                  },
                  "typeName": {
                    "id": 5380,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5379,
                      "name": "IRiskpoolService",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 7417,
                      "src": "1301:16:25"
                    },
                    "referencedDeclaration": 7417,
                    "src": "1301:16:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                      "typeString": "contract IRiskpoolService"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1300:26:25"
            },
            "scope": 5668,
            "src": "1249:78:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6c0f79b6",
            "id": 5388,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "contracts",
            "nameLocation": "1341:9:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5384,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1350:2:25"
            },
            "returnParameters": {
              "id": 5387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5386,
                  "mutability": "mutable",
                  "name": "numberOfContracts",
                  "nameLocation": "1384:17:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5388,
                  "src": "1376:25:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5385,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1376:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1375:27:25"
            },
            "scope": 5668,
            "src": "1332:71:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f6b3e7d0",
            "id": 5395,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "contractName",
            "nameLocation": "1417:12:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5391,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5390,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "1438:3:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5395,
                  "src": "1430:11:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5389,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1430:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1429:13:25"
            },
            "returnParameters": {
              "id": 5394,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5393,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "1474:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5395,
                  "src": "1466:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5392,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1466:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1465:14:25"
            },
            "scope": 5668,
            "src": "1408:72:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "52a9c8d7",
            "id": 5400,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getDefaultAdminRole",
            "nameLocation": "1509:19:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5396,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1528:2:25"
            },
            "returnParameters": {
              "id": 5399,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5398,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1561:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5400,
                  "src": "1553:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5397,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1553:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1552:14:25"
            },
            "scope": 5668,
            "src": "1500:67:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "775a4048",
            "id": 5405,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getProductOwnerRole",
            "nameLocation": "1581:19:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1600:2:25"
            },
            "returnParameters": {
              "id": 5404,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5403,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1633:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5405,
                  "src": "1625:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5402,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1625:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1624:14:25"
            },
            "scope": 5668,
            "src": "1572:67:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "d49d21c0",
            "id": 5410,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getOracleProviderRole",
            "nameLocation": "1653:21:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5406,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1674:2:25"
            },
            "returnParameters": {
              "id": 5409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5408,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1707:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5410,
                  "src": "1699:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5407,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1699:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1698:14:25"
            },
            "scope": 5668,
            "src": "1644:69:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3ffdd2f3",
            "id": 5415,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolKeeperRole",
            "nameLocation": "1727:21:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5411,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1748:2:25"
            },
            "returnParameters": {
              "id": 5414,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5413,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1781:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5415,
                  "src": "1773:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5412,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1773:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1772:14:25"
            },
            "scope": 5668,
            "src": "1718:69:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "91d14854",
            "id": 5424,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "hasRole",
            "nameLocation": "1801:7:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5417,
                  "mutability": "mutable",
                  "name": "role",
                  "nameLocation": "1817:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5424,
                  "src": "1809:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5416,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1809:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5419,
                  "mutability": "mutable",
                  "name": "principal",
                  "nameLocation": "1831:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5424,
                  "src": "1823:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5418,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1823:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1808:33:25"
            },
            "returnParameters": {
              "id": 5423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5422,
                  "mutability": "mutable",
                  "name": "roleIsAssigned",
                  "nameLocation": "1870:14:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5424,
                  "src": "1865:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5421,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1865:4:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1864:21:25"
            },
            "scope": 5668,
            "src": "1792:94:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "c71e261f",
            "id": 5429,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "products",
            "nameLocation": "1922:8:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5425,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1930:2:25"
            },
            "returnParameters": {
              "id": 5428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5427,
                  "mutability": "mutable",
                  "name": "numberOfProducts",
                  "nameLocation": "1963:16:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5429,
                  "src": "1955:24:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5426,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1955:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1954:26:25"
            },
            "scope": 5668,
            "src": "1913:68:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2857373a",
            "id": 5434,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "oracles",
            "nameLocation": "1995:7:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5430,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2002:2:25"
            },
            "returnParameters": {
              "id": 5433,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5432,
                  "mutability": "mutable",
                  "name": "numberOfOracles",
                  "nameLocation": "2035:15:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5434,
                  "src": "2027:23:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5431,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2027:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2026:25:25"
            },
            "scope": 5668,
            "src": "1986:66:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a054381f",
            "id": 5439,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "riskpools",
            "nameLocation": "2066:9:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2075:2:25"
            },
            "returnParameters": {
              "id": 5438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5437,
                  "mutability": "mutable",
                  "name": "numberOfRiskpools",
                  "nameLocation": "2108:17:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5439,
                  "src": "2100:25:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5436,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2100:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2099:27:25"
            },
            "scope": 5668,
            "src": "2057:70:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2b1c7f73",
            "id": 5446,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentId",
            "nameLocation": "2142:14:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5442,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5441,
                  "mutability": "mutable",
                  "name": "componentAddress",
                  "nameLocation": "2165:16:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5446,
                  "src": "2157:24:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5440,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2157:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2156:26:25"
            },
            "returnParameters": {
              "id": 5445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5444,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2213:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5446,
                  "src": "2205:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5443,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2205:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2204:21:25"
            },
            "scope": 5668,
            "src": "2133:93:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4f27da18",
            "id": 5454,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponent",
            "nameLocation": "2240:12:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5449,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5448,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2261:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5454,
                  "src": "2253:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5447,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2253:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2252:21:25"
            },
            "returnParameters": {
              "id": 5453,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5452,
                  "mutability": "mutable",
                  "name": "component",
                  "nameLocation": "2307:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5454,
                  "src": "2296:20:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IComponent_$5218",
                    "typeString": "contract IComponent"
                  },
                  "typeName": {
                    "id": 5451,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5450,
                      "name": "IComponent",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5218,
                      "src": "2296:10:25"
                    },
                    "referencedDeclaration": 5218,
                    "src": "2296:10:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IComponent_$5218",
                      "typeString": "contract IComponent"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2295:22:25"
            },
            "scope": 5668,
            "src": "2231:87:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "dd51c86a",
            "id": 5462,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentType",
            "nameLocation": "2332:16:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5457,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5456,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2357:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5462,
                  "src": "2349:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5455,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2349:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2348:21:25"
            },
            "returnParameters": {
              "id": 5461,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5460,
                  "mutability": "mutable",
                  "name": "componentType",
                  "nameLocation": "2417:13:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5462,
                  "src": "2392:38:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ComponentType_$5121",
                    "typeString": "enum IComponent.ComponentType"
                  },
                  "typeName": {
                    "id": 5459,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5458,
                      "name": "IComponent.ComponentType",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5121,
                      "src": "2392:24:25"
                    },
                    "referencedDeclaration": 5121,
                    "src": "2392:24:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentType_$5121",
                      "typeString": "enum IComponent.ComponentType"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2391:40:25"
            },
            "scope": 5668,
            "src": "2323:109:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5e966e45",
            "id": 5470,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentState",
            "nameLocation": "2446:17:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5464,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2472:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5470,
                  "src": "2464:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5463,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2464:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2463:21:25"
            },
            "returnParameters": {
              "id": 5469,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5468,
                  "mutability": "mutable",
                  "name": "componentState",
                  "nameLocation": "2533:14:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5470,
                  "src": "2507:40:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ComponentState_$5129",
                    "typeString": "enum IComponent.ComponentState"
                  },
                  "typeName": {
                    "id": 5467,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5466,
                      "name": "IComponent.ComponentState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 5129,
                      "src": "2507:25:25"
                    },
                    "referencedDeclaration": 5129,
                    "src": "2507:25:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentState_$5129",
                      "typeString": "enum IComponent.ComponentState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2506:42:25"
            },
            "scope": 5668,
            "src": "2437:112:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ab9c6ee4",
            "id": 5477,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStakingRequirements",
            "nameLocation": "2587:22:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5473,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5472,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2618:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5477,
                  "src": "2610:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5471,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2610:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2609:21:25"
            },
            "returnParameters": {
              "id": 5476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5475,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "2666:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5477,
                  "src": "2653:17:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5474,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2653:5:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2652:19:25"
            },
            "scope": 5668,
            "src": "2578:94:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3a42b053",
            "id": 5484,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStakedAssets",
            "nameLocation": "2686:15:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5480,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5479,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "2710:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5484,
                  "src": "2702:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5478,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2702:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2701:21:25"
            },
            "returnParameters": {
              "id": 5483,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5482,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "2758:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5484,
                  "src": "2745:17:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5481,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2745:5:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2744:19:25"
            },
            "scope": 5668,
            "src": "2677:87:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eb802114",
            "id": 5492,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpool",
            "nameLocation": "2795:11:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5487,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5486,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "2815:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5492,
                  "src": "2807:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5485,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2807:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2806:20:25"
            },
            "returnParameters": {
              "id": 5491,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5490,
                  "mutability": "mutable",
                  "name": "riskPool",
                  "nameLocation": "2867:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5492,
                  "src": "2849:26:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Pool_$7113_memory_ptr",
                    "typeString": "struct IPool.Pool"
                  },
                  "typeName": {
                    "id": 5489,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5488,
                      "name": "IPool.Pool",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 7113,
                      "src": "2849:10:25"
                    },
                    "referencedDeclaration": 7113,
                    "src": "2849:10:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Pool_$7113_storage_ptr",
                      "typeString": "struct IPool.Pool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2848:28:25"
            },
            "scope": 5668,
            "src": "2786:91:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "f1d354d0",
            "id": 5497,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFullCollateralizationLevel",
            "nameLocation": "2891:29:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5493,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2920:2:25"
            },
            "returnParameters": {
              "id": 5496,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5495,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5497,
                  "src": "2946:7:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5494,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2946:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2945:9:25"
            },
            "scope": 5668,
            "src": "2882:73:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "29560980",
            "id": 5504,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getCapital",
            "nameLocation": "2969:10:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5499,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "2988:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5504,
                  "src": "2980:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5498,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2980:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2979:20:25"
            },
            "returnParameters": {
              "id": 5503,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5502,
                  "mutability": "mutable",
                  "name": "capitalAmount",
                  "nameLocation": "3030:13:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5504,
                  "src": "3022:21:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5501,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3022:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3021:23:25"
            },
            "scope": 5668,
            "src": "2960:85:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3f5d9235",
            "id": 5511,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTotalValueLocked",
            "nameLocation": "3059:19:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5507,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5506,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3087:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5511,
                  "src": "3079:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5505,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3079:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3078:20:25"
            },
            "returnParameters": {
              "id": 5510,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5509,
                  "mutability": "mutable",
                  "name": "totalValueLockedAmount",
                  "nameLocation": "3129:22:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5511,
                  "src": "3121:30:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5508,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3121:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3120:32:25"
            },
            "scope": 5668,
            "src": "3050:103:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "bcd5349f",
            "id": 5518,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getCapacity",
            "nameLocation": "3167:11:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5514,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5513,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3187:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5518,
                  "src": "3179:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5512,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3179:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3178:20:25"
            },
            "returnParameters": {
              "id": 5517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5516,
                  "mutability": "mutable",
                  "name": "capacityAmount",
                  "nameLocation": "3229:14:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5518,
                  "src": "3221:22:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5515,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3221:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3220:24:25"
            },
            "scope": 5668,
            "src": "3158:87:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1e010439",
            "id": 5525,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBalance",
            "nameLocation": "3259:10:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5520,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3278:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5525,
                  "src": "3270:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5519,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3270:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3269:20:25"
            },
            "returnParameters": {
              "id": 5524,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5523,
                  "mutability": "mutable",
                  "name": "balanceAmount",
                  "nameLocation": "3320:13:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5525,
                  "src": "3312:21:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5522,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3312:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3311:23:25"
            },
            "scope": 5668,
            "src": "3250:85:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a4266a66",
            "id": 5532,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "activeBundles",
            "nameLocation": "3350:13:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5528,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5527,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3372:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5532,
                  "src": "3364:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5526,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3364:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3363:20:25"
            },
            "returnParameters": {
              "id": 5531,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5530,
                  "mutability": "mutable",
                  "name": "numberOfActiveBundles",
                  "nameLocation": "3414:21:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5532,
                  "src": "3406:29:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5529,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3406:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3405:31:25"
            },
            "scope": 5668,
            "src": "3341:96:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ec833b0c",
            "id": 5541,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getActiveBundleId",
            "nameLocation": "3451:17:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5534,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3477:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5541,
                  "src": "3469:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5533,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3469:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5536,
                  "mutability": "mutable",
                  "name": "bundleIdx",
                  "nameLocation": "3497:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5541,
                  "src": "3489:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5535,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3489:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3468:39:25"
            },
            "returnParameters": {
              "id": 5540,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5539,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3538:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5541,
                  "src": "3530:16:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5538,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3530:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3529:18:25"
            },
            "scope": 5668,
            "src": "3442:106:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7db32844",
            "id": 5548,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getMaximumNumberOfActiveBundles",
            "nameLocation": "3562:31:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5544,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5543,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3602:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5548,
                  "src": "3594:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5542,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3594:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3593:20:25"
            },
            "returnParameters": {
              "id": 5547,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5546,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "3644:28:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5548,
                  "src": "3636:36:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5545,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3636:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3635:38:25"
            },
            "scope": 5668,
            "src": "3553:121:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eb35783c",
            "id": 5554,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBundleToken",
            "nameLocation": "3704:14:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3718:2:25"
            },
            "returnParameters": {
              "id": 5553,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5552,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "3756:5:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5554,
                  "src": "3743:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBundleToken_$4029",
                    "typeString": "contract IBundleToken"
                  },
                  "typeName": {
                    "id": 5551,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5550,
                      "name": "IBundleToken",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4029,
                      "src": "3743:12:25"
                    },
                    "referencedDeclaration": 4029,
                    "src": "3743:12:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IBundleToken_$4029",
                      "typeString": "contract IBundleToken"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3742:20:25"
            },
            "scope": 5668,
            "src": "3695:68:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "18442e63",
            "id": 5559,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "bundles",
            "nameLocation": "3777:7:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5555,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3784:2:25"
            },
            "returnParameters": {
              "id": 5558,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5557,
                  "mutability": "mutable",
                  "name": "numberOfBundles",
                  "nameLocation": "3817:15:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5559,
                  "src": "3809:23:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5556,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3809:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3808:25:25"
            },
            "scope": 5668,
            "src": "3768:66:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2d0821b7",
            "id": 5567,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBundle",
            "nameLocation": "3848:9:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5561,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3866:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5567,
                  "src": "3858:16:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5560,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3858:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3857:18:25"
            },
            "returnParameters": {
              "id": 5566,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5565,
                  "mutability": "mutable",
                  "name": "bundle",
                  "nameLocation": "3920:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5567,
                  "src": "3898:28:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 5564,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5563,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3528,
                      "src": "3898:14:25"
                    },
                    "referencedDeclaration": 3528,
                    "src": "3898:14:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$3528_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3897:30:25"
            },
            "scope": 5668,
            "src": "3839:89:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "c559783e",
            "id": 5574,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "unburntBundles",
            "nameLocation": "3942:14:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5569,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "3965:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5574,
                  "src": "3957:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5568,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3957:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3956:20:25"
            },
            "returnParameters": {
              "id": 5573,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5572,
                  "mutability": "mutable",
                  "name": "numberOfUnburntBundles",
                  "nameLocation": "4007:22:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5574,
                  "src": "3999:30:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5571,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3999:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3998:32:25"
            },
            "scope": 5668,
            "src": "3933:98:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a427056e",
            "id": 5579,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processIds",
            "nameLocation": "4060:10:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5575,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4070:2:25"
            },
            "returnParameters": {
              "id": 5578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5577,
                  "mutability": "mutable",
                  "name": "numberOfProcessIds",
                  "nameLocation": "4103:18:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5579,
                  "src": "4095:26:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5576,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4095:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4094:28:25"
            },
            "scope": 5668,
            "src": "4051:72:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a5961b4c",
            "id": 5587,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getMetadata",
            "nameLocation": "4137:11:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5581,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4157:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5587,
                  "src": "4149:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5580,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4149:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4148:19:25"
            },
            "returnParameters": {
              "id": 5586,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5585,
                  "mutability": "mutable",
                  "name": "metadata",
                  "nameLocation": "4214:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5587,
                  "src": "4190:32:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Metadata_$3773_memory_ptr",
                    "typeString": "struct IPolicy.Metadata"
                  },
                  "typeName": {
                    "id": 5584,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5583,
                      "name": "IPolicy.Metadata",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3773,
                      "src": "4190:16:25"
                    },
                    "referencedDeclaration": 3773,
                    "src": "4190:16:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Metadata_$3773_storage_ptr",
                      "typeString": "struct IPolicy.Metadata"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4189:34:25"
            },
            "scope": 5668,
            "src": "4128:96:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "bc506f64",
            "id": 5595,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getApplication",
            "nameLocation": "4238:14:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5589,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4261:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5595,
                  "src": "4253:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5588,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4253:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4252:19:25"
            },
            "returnParameters": {
              "id": 5594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5593,
                  "mutability": "mutable",
                  "name": "application",
                  "nameLocation": "4321:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5595,
                  "src": "4294:38:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Application_$3787_memory_ptr",
                    "typeString": "struct IPolicy.Application"
                  },
                  "typeName": {
                    "id": 5592,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5591,
                      "name": "IPolicy.Application",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3787,
                      "src": "4294:19:25"
                    },
                    "referencedDeclaration": 3787,
                    "src": "4294:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Application_$3787_storage_ptr",
                      "typeString": "struct IPolicy.Application"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4293:40:25"
            },
            "scope": 5668,
            "src": "4229:105:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a3f685f9",
            "id": 5603,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getPolicy",
            "nameLocation": "4348:9:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5597,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4366:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5603,
                  "src": "4358:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5596,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4358:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4357:19:25"
            },
            "returnParameters": {
              "id": 5602,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5601,
                  "mutability": "mutable",
                  "name": "policy",
                  "nameLocation": "4421:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5603,
                  "src": "4399:28:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Policy_$3807_memory_ptr",
                    "typeString": "struct IPolicy.Policy"
                  },
                  "typeName": {
                    "id": 5600,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5599,
                      "name": "IPolicy.Policy",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3807,
                      "src": "4399:14:25"
                    },
                    "referencedDeclaration": 3807,
                    "src": "4399:14:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Policy_$3807_storage_ptr",
                      "typeString": "struct IPolicy.Policy"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4398:30:25"
            },
            "scope": 5668,
            "src": "4339:90:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eff0f592",
            "id": 5610,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "claims",
            "nameLocation": "4443:6:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5605,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4458:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5610,
                  "src": "4450:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5604,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4450:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4449:19:25"
            },
            "returnParameters": {
              "id": 5609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5608,
                  "mutability": "mutable",
                  "name": "numberOfClaims",
                  "nameLocation": "4499:14:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5610,
                  "src": "4491:22:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5607,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4491:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4490:24:25"
            },
            "scope": 5668,
            "src": "4434:81:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "aeddb905",
            "id": 5617,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "payouts",
            "nameLocation": "4529:7:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5612,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4545:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5617,
                  "src": "4537:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5611,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4537:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4536:19:25"
            },
            "returnParameters": {
              "id": 5616,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5615,
                  "mutability": "mutable",
                  "name": "numberOfPayouts",
                  "nameLocation": "4586:15:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5617,
                  "src": "4578:23:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5614,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4578:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4577:25:25"
            },
            "scope": 5668,
            "src": "4520:83:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7f22c2d9",
            "id": 5627,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getClaim",
            "nameLocation": "4618:8:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5622,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5619,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4635:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5627,
                  "src": "4627:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5618,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4627:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5621,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4654:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5627,
                  "src": "4646:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5620,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4646:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4626:36:25"
            },
            "returnParameters": {
              "id": 5626,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5625,
                  "mutability": "mutable",
                  "name": "claim",
                  "nameLocation": "4707:5:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5627,
                  "src": "4686:26:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Claim_$3821_memory_ptr",
                    "typeString": "struct IPolicy.Claim"
                  },
                  "typeName": {
                    "id": 5624,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5623,
                      "name": "IPolicy.Claim",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3821,
                      "src": "4686:13:25"
                    },
                    "referencedDeclaration": 3821,
                    "src": "4686:13:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3821_storage_ptr",
                      "typeString": "struct IPolicy.Claim"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4685:28:25"
            },
            "scope": 5668,
            "src": "4609:105:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "cef58f13",
            "id": 5637,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getPayout",
            "nameLocation": "4728:9:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5632,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5629,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4746:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5637,
                  "src": "4738:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5628,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4738:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5631,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "4765:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5637,
                  "src": "4757:16:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5630,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4757:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4737:37:25"
            },
            "returnParameters": {
              "id": 5636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5635,
                  "mutability": "mutable",
                  "name": "payout",
                  "nameLocation": "4820:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5637,
                  "src": "4798:28:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Payout_$3835_memory_ptr",
                    "typeString": "struct IPolicy.Payout"
                  },
                  "typeName": {
                    "id": 5634,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5633,
                      "name": "IPolicy.Payout",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3835,
                      "src": "4798:14:25"
                    },
                    "referencedDeclaration": 3835,
                    "src": "4798:14:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Payout_$3835_storage_ptr",
                      "typeString": "struct IPolicy.Payout"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4797:30:25"
            },
            "scope": 5668,
            "src": "4719:109:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e0024604",
            "id": 5642,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTreasuryAddress",
            "nameLocation": "4859:18:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5638,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4877:2:25"
            },
            "returnParameters": {
              "id": 5641,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5640,
                  "mutability": "mutable",
                  "name": "treasuryAddress",
                  "nameLocation": "4910:15:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5642,
                  "src": "4902:23:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5639,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4902:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4901:25:25"
            },
            "scope": 5668,
            "src": "4850:77:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "a44330c4",
            "id": 5647,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getInstanceWallet",
            "nameLocation": "4943:17:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5643,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4960:2:25"
            },
            "returnParameters": {
              "id": 5646,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5645,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "4993:13:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5647,
                  "src": "4985:21:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5644,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4985:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4984:23:25"
            },
            "scope": 5668,
            "src": "4934:74:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "49081637",
            "id": 5654,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getRiskpoolWallet",
            "nameLocation": "5022:17:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5649,
                  "mutability": "mutable",
                  "name": "riskpoolId",
                  "nameLocation": "5048:10:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5654,
                  "src": "5040:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5648,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5040:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5039:20:25"
            },
            "returnParameters": {
              "id": 5653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5652,
                  "mutability": "mutable",
                  "name": "walletAddress",
                  "nameLocation": "5090:13:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5654,
                  "src": "5082:21:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5651,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5082:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5081:23:25"
            },
            "scope": 5668,
            "src": "5013:92:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "038696bb",
            "id": 5662,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getComponentToken",
            "nameLocation": "5121:17:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5656,
                  "mutability": "mutable",
                  "name": "componentId",
                  "nameLocation": "5147:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5662,
                  "src": "5139:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5655,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5139:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5138:21:25"
            },
            "returnParameters": {
              "id": 5661,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5660,
                  "mutability": "mutable",
                  "name": "token",
                  "nameLocation": "5189:5:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5662,
                  "src": "5182:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$4694",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 5659,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 5658,
                      "name": "IERC20",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 4694,
                      "src": "5182:6:25"
                    },
                    "referencedDeclaration": 4694,
                    "src": "5182:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$4694",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5181:14:25"
            },
            "scope": 5668,
            "src": "5112:84:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6319112b",
            "id": 5667,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeFractionFullUnit",
            "nameLocation": "5210:22:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5663,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5232:2:25"
            },
            "returnParameters": {
              "id": 5666,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5665,
                  "mutability": "mutable",
                  "name": "fullUnit",
                  "nameLocation": "5265:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5667,
                  "src": "5257:16:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5664,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5257:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5256:18:25"
            },
            "scope": 5668,
            "src": "5201:74:25",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 5669,
        "src": "530:4748:25"
      }
    ],
    "src": "39:5240:25"
  },
  "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.8.2/IERC165",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/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/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
  "type": "interface"
}