@etherisc/gif-contracts
Version:
This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.
1,902 lines • 2.57 MB
JSON
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "premiumAmount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "sumInsuredAmount",
"type": "uint256"
}
],
"name": "LogApplicationCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "LogApplicationDeclined",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "premiumAmountOld",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "premiumAmount",
"type": "uint256"
}
],
"name": "LogApplicationPremiumAdjusted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "LogApplicationRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "sumInsuredAmountOld",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "sumInsuredAmount",
"type": "uint256"
}
],
"name": "LogApplicationSumInsuredAdjusted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "LogApplicationUnderwritten",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
}
],
"name": "LogClaimClosed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "confirmedAmount",
"type": "uint256"
}
],
"name": "LogClaimConfirmed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimAmount",
"type": "uint256"
}
],
"name": "LogClaimCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
}
],
"name": "LogClaimDeclined",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "productId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "enum IPolicy.PolicyFlowState",
"name": "state",
"type": "uint8"
}
],
"name": "LogMetadataCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "enum IPolicy.PolicyFlowState",
"name": "state",
"type": "uint8"
}
],
"name": "LogMetadataStateChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "payoutId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "LogPayoutCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "payoutId",
"type": "uint256"
}
],
"name": "LogPayoutProcessed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "LogPolicyClosed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "LogPolicyCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "LogPolicyExpired",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "premiumExpectedAmountOld",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "premiumExpectedAmount",
"type": "uint256"
}
],
"name": "LogPolicyPremiumAdjusted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "LogPremiumCollected",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "expectedPremiumAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "sumInsuredAmount",
"type": "uint256"
}
],
"name": "adjustPremiumSumInsured",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "applications",
"outputs": [
{
"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"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "claims",
"outputs": [
{
"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"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
}
],
"name": "closeClaim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "closePolicy",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "collectPremium",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "confirmedAmount",
"type": "uint256"
}
],
"name": "confirmClaim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "premiumAmount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "sumInsuredAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "createApplication",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "claimAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "createClaim",
"outputs": [
{
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "payoutAmount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "createPayout",
"outputs": [
{
"internalType": "uint256",
"name": "payoutId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "createPolicy",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "productId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "createPolicyFlow",
"outputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "declineApplication",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "claimId",
"type": "uint256"
}
],
"name": "declineClaim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "expirePolicy",
"outputs": [],
"stateMutability": "nonpayable",
"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": "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": "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": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "getNumberOfClaims",
"outputs": [
{
"internalType": "uint256",
"name": "numberOfClaims",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "getNumberOfPayouts",
"outputs": [
{
"internalType": "uint256",
"name": "numberOfPayouts",
"type": "uint256"
}
],
"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": [
{
"internalType": "address",
"name": "registry",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "metadata",
"outputs": [
{
"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"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "payoutCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "payouts",
"outputs": [
{
"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"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "policies",
"outputs": [
{
"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"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "processIds",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "payoutId",
"type": "uint256"
}
],
"name": "processPayout",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "revokeApplication",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "processId",
"type": "bytes32"
}
],
"name": "underwriteApplication",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"allSourcePaths": {
"10": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/proxy/utils/Initializable.sol",
"21": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Address.sol",
"22": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/Context.sol",
"27": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/structs/EnumerableSet.sol",
"30": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
"32": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IProduct.sol",
"37": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol",
"39": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IComponentEvents.sol",
"41": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
"44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
"75": "contracts/modules/ComponentController.sol",
"77": "contracts/modules/PolicyController.sol",
"88": "contracts/shared/CoreController.sol"
},
"ast": {
"absolutePath": "contracts/modules/PolicyController.sol",
"exportedSymbols": {
"Address": [
26374
],
"ComponentController": [
6504
],
"Context": [
24074
],
"CoreController": [
14924
],
"EnumerableSet": [
19390
],
"IAccess": [
21938
],
"IBundle": [
20491
],
"IComponent": [
22099
],
"IComponentEvents": [
22419
],
"IOracle": [
22133
],
"IPolicy": [
20837
],
"IProduct": [
21995
],
"IRegistry": [
21750
],
"IRiskpool": [
22366
],
"Initializable": [
18432
],
"PolicyController": [
8529
]
},
"id": 8530,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 6620,
"literals": [
"solidity",
"0.8",
".2"
],
"nodeType": "PragmaDirective",
"src": "39:22:77"
},
{
"absolutePath": "contracts/shared/CoreController.sol",
"file": "../shared/CoreController.sol",
"id": 6621,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 8530,
"sourceUnit": 14925,
"src": "63:38:77",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "contracts/modules/ComponentController.sol",
"file": "./ComponentController.sol",
"id": 6622,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 8530,
"sourceUnit": 6505,
"src": "102:35:77",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
"file": "@etherisc/gif-interface/contracts/modules/IPolicy.sol",
"id": 6623,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 8530,
"sourceUnit": 20838,
"src": "138:63:77",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 6624,
"name": "IPolicy",
"nodeType": "IdentifierPath",
"referencedDeclaration": 20837,
"src": "237:7:77"
},
"id": 6625,
"nodeType": "InheritanceSpecifier",
"src": "237:7:77"
},
{
"baseName": {
"id": 6626,
"name": "CoreController",
"nodeType": "IdentifierPath",
"referencedDeclaration": 14924,
"src": "251:14:77"
},
"id": 6627,
"nodeType": "InheritanceSpecifier",
"src": "251:14:77"
}
],
"contractDependencies": [
14924,
18432,
20837,
24074
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 8529,
"linearizedBaseContracts": [
8529,
14924,
18432,
24074,
20837
],
"name": "PolicyController",
"nameLocation": "212:16:77",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "7122ba06",
"id": 6632,
"mutability": "mutable",
"name": "metadata",
"nameLocation": "399:8:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "347:60:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Metadata_$20652_storage_$",
"typeString": "mapping(bytes32 => struct IPolicy.Metadata)"
},
"typeName": {
"id": 6631,
"keyType": {
"id": 6628,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "355:7:77",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "347:44:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Metadata_$20652_storage_$",
"typeString": "mapping(bytes32 => struct IPolicy.Metadata)"
},
"valueType": {
"id": 6630,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6629,
"name": "Metadata",
"nodeType": "IdentifierPath",
"referencedDeclaration": 20652,
"src": "382:8:77"
},
"referencedDeclaration": 20652,
"src": "382:8:77",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Metadata_$20652_storage_ptr",
"typeString": "struct IPolicy.Metadata"
}
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "4cafa121",
"id": 6637,
"mutability": "mutable",
"name": "applications",
"nameLocation": "489:12:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "434:67:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Application_$20666_storage_$",
"typeString": "mapping(bytes32 => struct IPolicy.Application)"
},
"typeName": {
"id": 6636,
"keyType": {
"id": 6633,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "442:7:77",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "434:47:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Application_$20666_storage_$",
"typeString": "mapping(bytes32 => struct IPolicy.Application)"
},
"valueType": {
"id": 6635,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6634,
"name": "Application",
"nodeType": "IdentifierPath",
"referencedDeclaration": 20666,
"src": "469:11:77"
},
"referencedDeclaration": 20666,
"src": "469:11:77",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Application_$20666_storage_ptr",
"typeString": "struct IPolicy.Application"
}
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "ddbfd8ef",
"id": 6642,
"mutability": "mutable",
"name": "policies",
"nameLocation": "574:8:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "524:58:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Policy_$20686_storage_$",
"typeString": "mapping(bytes32 => struct IPolicy.Policy)"
},
"typeName": {
"id": 6641,
"keyType": {
"id": 6638,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "532:7:77",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "524:42:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Policy_$20686_storage_$",
"typeString": "mapping(bytes32 => struct IPolicy.Policy)"
},
"valueType": {
"id": 6640,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6639,
"name": "Policy",
"nodeType": "IdentifierPath",
"referencedDeclaration": 20686,
"src": "559:6:77"
},
"referencedDeclaration": 20686,
"src": "559:6:77",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Policy_$20686_storage_ptr",
"typeString": "struct IPolicy.Policy"
}
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "9e81f96a",
"id": 6649,
"mutability": "mutable",
"name": "claims",
"nameLocation": "686:6:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "603:89:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$20700_storage_$_$",
"typeString": "mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim))"
},
"typeName": {
"id": 6648,
"keyType": {
"id": 6643,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "611:7:77",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "603:75:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Claim_$20700_storage_$_$",
"typeString": "mapping(bytes32 => mapping(uint256 => struct IPolicy.Claim))"
},
"valueType": {
"id": 6647,
"keyType": {
"id": 6644,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "646:7:77",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "638:39:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Claim_$20700_storage_$",
"typeString": "mapping(uint256 => struct IPolicy.Claim)"
},
"valueType": {
"id": 6646,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6645,
"name": "Claim",
"nodeType": "IdentifierPath",
"referencedDeclaration": 20700,
"src": "671:5:77"
},
"referencedDeclaration": 20700,
"src": "671:5:77",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Claim_$20700_storage_ptr",
"typeString": "struct IPolicy.Claim"
}
}
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "80f2122c",
"id": 6656,
"mutability": "mutable",
"name": "payouts",
"nameLocation": "799:7:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "714:92:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$20714_storage_$_$",
"typeString": "mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout))"
},
"typeName": {
"id": 6655,
"keyType": {
"id": 6650,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "722:7:77",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "714:77:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_uint256_$_t_struct$_Payout_$20714_storage_$_$",
"typeString": "mapping(bytes32 => mapping(uint256 => struct IPolicy.Payout))"
},
"valueType": {
"id": 6654,
"keyType": {
"id": 6651,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "757:7:77",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "749:41:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Payout_$20714_storage_$",
"typeString": "mapping(uint256 => struct IPolicy.Payout)"
},
"valueType": {
"id": 6653,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6652,
"name": "Payout",
"nodeType": "IdentifierPath",
"referencedDeclaration": 20714,
"src": "783:6:77"
},
"referencedDeclaration": 20714,
"src": "783:6:77",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Payout_$20714_storage_ptr",
"typeString": "struct IPolicy.Payout"
}
}
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "357f030a",
"id": 6660,
"mutability": "mutable",
"name": "payoutCount",
"nameLocation": "863:11:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "812:62:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 6659,
"keyType": {
"id": 6657,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "820:7:77",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "812:43:77",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 6658,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "847:7:77",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "public"
},
{
"constant": false,
"id": 6662,
"mutability": "mutable",
"name": "_assigendProcessIds",
"nameLocation": "970:19:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "954:35:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 6661,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "954:7:77",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "private"
},
{
"constant": false,
"id": 6665,
"mutability": "mutable",
"name": "_component",
"nameLocation": "1024:10:77",
"nodeType": "VariableDeclaration",
"scope": 8529,
"src": "996:38:77",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ComponentController_$6504",
"typeString": "contract ComponentController"
},
"typeName": {
"id": 6664,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 6663,
"name": "ComponentController",
"nodeType": "IdentifierPath",
"referencedDeclaration": 6504,
"src": "996:19:77"
},
"referencedDeclaration": 6504,
"src": "996:19:77",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ComponentController_$6504",
"typeS