@etherisc/gif-contracts
Version:
This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.
1,575 lines • 1.34 MB
JSON
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentApproved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentArchived",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentDeclined",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentPaused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "bytes32",
"name": "componentName",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "enum IComponent.ComponentType",
"name": "componentType",
"type": "uint8"
},
{
"indexed": false,
"internalType": "address",
"name": "componentAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentResumed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"indexed": false,
"internalType": "enum IComponent.ComponentState",
"name": "stateOld",
"type": "uint8"
},
{
"indexed": false,
"internalType": "enum IComponent.ComponentState",
"name": "stateNew",
"type": "uint8"
}
],
"name": "LogComponentStateChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentSuspended",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "LogComponentUnpaused",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "archiveFromComponentOwner",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "archiveFromInstanceOperator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "components",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "decline",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "exists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"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": "id",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getComponentState",
"outputs": [
{
"internalType": "enum IComponent.ComponentState",
"name": "componentState",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "getComponentType",
"outputs": [
{
"internalType": "enum IComponent.ComponentType",
"name": "componentType",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idx",
"type": "uint256"
}
],
"name": "getOracleId",
"outputs": [
{
"internalType": "uint256",
"name": "oracleId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "productId",
"type": "uint256"
}
],
"name": "getPolicyFlow",
"outputs": [
{
"internalType": "address",
"name": "_policyFlow",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idx",
"type": "uint256"
}
],
"name": "getProductId",
"outputs": [
{
"internalType": "uint256",
"name": "productId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "enum IComponent.ComponentType",
"name": "componentType",
"type": "uint8"
}
],
"name": "getRequiredRole",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "idx",
"type": "uint256"
}
],
"name": "getRiskpoolId",
"outputs": [
{
"internalType": "uint256",
"name": "riskpoolId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "registry",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "isOracle",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "isProduct",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "isRiskpool",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "oracles",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "products",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract IComponent",
"name": "component",
"type": "address"
}
],
"name": "propose",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "resume",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "riskpools",
"outputs": [
{
"internalType": "uint256",
"name": "count",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "suspend",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "unpause",
"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",
"44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
"75": "contracts/modules/ComponentController.sol",
"88": "contracts/shared/CoreController.sol"
},
"ast": {
"absolutePath": "contracts/modules/ComponentController.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
]
},
"id": 6505,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 5506,
"literals": [
"solidity",
"0.8",
".2"
],
"nodeType": "PragmaDirective",
"src": "39:22:75"
},
{
"absolutePath": "contracts/shared/CoreController.sol",
"file": "../shared/CoreController.sol",
"id": 5507,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 14925,
"src": "63:38:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol",
"file": "@etherisc/gif-interface/contracts/components/IComponent.sol",
"id": 5508,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 22100,
"src": "102:69:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IOracle.sol",
"file": "@etherisc/gif-interface/contracts/components/IOracle.sol",
"id": 5509,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 22134,
"src": "172:66:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IProduct.sol",
"file": "@etherisc/gif-interface/contracts/components/IProduct.sol",
"id": 5510,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 21996,
"src": "239:67:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IRiskpool.sol",
"file": "@etherisc/gif-interface/contracts/components/IRiskpool.sol",
"id": 5511,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 22367,
"src": "307:68:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IComponentEvents.sol",
"file": "@etherisc/gif-interface/contracts/modules/IComponentEvents.sol",
"id": 5512,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 22420,
"src": "376:72:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/structs/EnumerableSet.sol",
"file": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol",
"id": 5513,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 6505,
"sourceUnit": 19391,
"src": "449:65:75",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 5514,
"name": "IComponentEvents",
"nodeType": "IdentifierPath",
"referencedDeclaration": 22419,
"src": "552:16:75"
},
"id": 5515,
"nodeType": "InheritanceSpecifier",
"src": "552:16:75"
},
{
"baseName": {
"id": 5516,
"name": "CoreController",
"nodeType": "IdentifierPath",
"referencedDeclaration": 14924,
"src": "574:14:75"
},
"id": 5517,
"nodeType": "InheritanceSpecifier",
"src": "574:14:75"
}
],
"contractDependencies": [
14924,
18432,
22419,
24074
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 6504,
"linearizedBaseContracts": [
6504,
14924,
18432,
24074,
22419
],
"name": "ComponentController",
"nameLocation": "525:19:75",
"nodeType": "ContractDefinition",
"nodes": [
{
"id": 5521,
"libraryName": {
"id": 5518,
"name": "EnumerableSet",
"nodeType": "IdentifierPath",
"referencedDeclaration": 19390,
"src": "603:13:75"
},
"nodeType": "UsingForDirective",
"src": "597:46:75",
"typeName": {
"id": 5520,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5519,
"name": "EnumerableSet.UintSet",
"nodeType": "IdentifierPath",
"referencedDeclaration": 19260,
"src": "621:21:75"
},
"referencedDeclaration": 19260,
"src": "621:21:75",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage_ptr",
"typeString": "struct EnumerableSet.UintSet"
}
}
},
{
"constant": false,
"id": 5526,
"mutability": "mutable",
"name": "_componentById",
"nameLocation": "688:14:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "649:53:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_IComponent_$22099_$",
"typeString": "mapping(uint256 => contract IComponent)"
},
"typeName": {
"id": 5525,
"keyType": {
"id": 5522,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "657:7:75",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "649:30:75",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_contract$_IComponent_$22099_$",
"typeString": "mapping(uint256 => contract IComponent)"
},
"valueType": {
"id": 5524,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5523,
"name": "IComponent",
"nodeType": "IdentifierPath",
"referencedDeclaration": 22099,
"src": "668:10:75"
},
"referencedDeclaration": 22099,
"src": "668:10:75",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IComponent_$22099",
"typeString": "contract IComponent"
}
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5530,
"mutability": "mutable",
"name": "_componentIdByName",
"nameLocation": "744:18:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "708:54:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"typeName": {
"id": 5529,
"keyType": {
"id": 5527,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "716:7:75",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Mapping",
"src": "708:27:75",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
"typeString": "mapping(bytes32 => uint256)"
},
"valueType": {
"id": 5528,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "727:7:75",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5534,
"mutability": "mutable",
"name": "_componentIdByAddress",
"nameLocation": "804:21:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "768:57:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 5533,
"keyType": {
"id": 5531,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "776:7:75",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "768:27:75",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 5532,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "787:7:75",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5539,
"mutability": "mutable",
"name": "_componentState",
"nameLocation": "886:15:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "832:69:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_ComponentState_$22010_$",
"typeString": "mapping(uint256 => enum IComponent.ComponentState)"
},
"typeName": {
"id": 5538,
"keyType": {
"id": 5535,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "840:7:75",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "832:45:75",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_enum$_ComponentState_$22010_$",
"typeString": "mapping(uint256 => enum IComponent.ComponentState)"
},
"valueType": {
"id": 5537,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5536,
"name": "IComponent.ComponentState",
"nodeType": "IdentifierPath",
"referencedDeclaration": 22010,
"src": "851:25:75"
},
"referencedDeclaration": 22010,
"src": "851:25:75",
"typeDescriptions": {
"typeIdentifier": "t_enum$_ComponentState_$22010",
"typeString": "enum IComponent.ComponentState"
}
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5542,
"mutability": "mutable",
"name": "_products",
"nameLocation": "938:9:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "908:39:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage",
"typeString": "struct EnumerableSet.UintSet"
},
"typeName": {
"id": 5541,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5540,
"name": "EnumerableSet.UintSet",
"nodeType": "IdentifierPath",
"referencedDeclaration": 19260,
"src": "908:21:75"
},
"referencedDeclaration": 19260,
"src": "908:21:75",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage_ptr",
"typeString": "struct EnumerableSet.UintSet"
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5545,
"mutability": "mutable",
"name": "_oracles",
"nameLocation": "983:8:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "953:38:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage",
"typeString": "struct EnumerableSet.UintSet"
},
"typeName": {
"id": 5544,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5543,
"name": "EnumerableSet.UintSet",
"nodeType": "IdentifierPath",
"referencedDeclaration": 19260,
"src": "953:21:75"
},
"referencedDeclaration": 19260,
"src": "953:21:75",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage_ptr",
"typeString": "struct EnumerableSet.UintSet"
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5548,
"mutability": "mutable",
"name": "_riskpools",
"nameLocation": "1027:10:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "997:40:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage",
"typeString": "struct EnumerableSet.UintSet"
},
"typeName": {
"id": 5547,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 5546,
"name": "EnumerableSet.UintSet",
"nodeType": "IdentifierPath",
"referencedDeclaration": 19260,
"src": "997:21:75"
},
"referencedDeclaration": 19260,
"src": "997:21:75",
"typeDescriptions": {
"typeIdentifier": "t_struct$_UintSet_$19260_storage_ptr",
"typeString": "struct EnumerableSet.UintSet"
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5550,
"mutability": "mutable",
"name": "_componentCount",
"nameLocation": "1059:15:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "1043:31:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 5549,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1043:7:75",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "private"
},
{
"constant": false,
"id": 5554,
"mutability": "mutable",
"name": "_policyFlowByProductId",
"nameLocation": "1160:22:75",
"nodeType": "VariableDeclaration",
"scope": 6504,
"src": "1081:101:75",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"typeName": {
"id": 5553,
"keyType": {
"id": 5551,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1089:7:75",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1081:70:75",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"valueType": {
"id": 5552,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1117:7:75",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"visibility": "private"
},
{
"body": {
"id": 5567,
"nodeType": "Block",
"src": "1226:167:75",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 5562,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 5557,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 24064,
"src": "1257:10:75",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 5558,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1257:12:75",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "436f6d706f6e656e744f776e657253657276696365",
"id": 5560,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1293:23:75",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675",
"typeString": "literal_string \"ComponentOwnerService\""
},
"value": "ComponentOwnerService"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_95855e0e8f5cd64ffc781762663437a44ef7554eea00fdb413a3a655c097a675",
"typeString": "literal_string \"ComponentOwnerService\""
}
],
"id": 5559,
"name": "_getContractAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 14923,
"src": "1273:19:75",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 5561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1273:44:75",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1257:60:75",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552524f523a4343522d3030313a4e4f545f434f4d504f4e454e545f4f574e45525f53455256494345",
"id": 5563,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1331:43:75",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707",
"typeString": "literal_string \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\""
},
"value": "ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_2b163f71e59f0a392de25481a553757716afafc14f2c0ddf4ef8779c20751707",
"typeString": "literal_string \"ERROR:CCR-001:NOT_COMPONENT_OWNER_SERVICE\""
}
],
"id": 5556,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1236:7:75",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5564,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1236:139:75",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5565,
"nodeType": "ExpressionStatement",
"src": "1236:139:75"
},
{
"id": 5566,
"nodeType": "PlaceholderStatement",
"src": "1385:1:75"
}
]
},
"id": 5568,
"name": "onlyComponentOwnerService",
"nameLocation": "1198:25:75",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 5555,
"nodeType": "ParameterList",
"parameters": [],
"src": "1223:2:75"
},
"src": "1189:204:75",
"virtual": false,
"visibility": "internal"
},
{
"body": {
"id": 5581,
"nodeType": "Block",
"src": "1438:171:75",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 5576,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 5571,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 24064,
"src": "1469:10:75",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 5572,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1469:12:75",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"hexValue": "496e7374616e63654f70657261746f7253657276696365",
"id": 5574,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1505:25:75",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544",
"typeString": "literal_string \"InstanceOperatorService\""
},
"value": "InstanceOperatorService"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_893eee863631637173ead46f1c66388136d13bfeb40cdedfb3bfe4f34f933544",
"typeString": "literal_string \"InstanceOperatorService\""
}
],
"id": 5573,
"name": "_getContractAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 14923,
"src": "1485:19:75",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
"typeString": "function (bytes32) view returns (address)"
}
},
"id": 5575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1485:46:75",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1469:62:75",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552524f523a4343522d3030323a4e4f545f494e5354414e43455f4f50455241544f525f53455256494345",
"id": 5577,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1545:45:75",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f",
"typeString": "literal_string \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\""
},
"value": "ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_130007efea4d49cc157bd5faf2f1c80f98e50627fe669a9a215b28142c1ee23f",
"typeString": "literal_string \"ERROR:CCR-002:NOT_INSTANCE_OPERATOR_SERVICE\""
}
],
"id": 5570,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1448:7:75",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 5578,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1448:143:75",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 5579,
"nodeType": "ExpressionStatement",
"src": "1448:143:75"
},
{
"id": 5580,
"nodeType": "PlaceholderStatement",
"src": "1601:1:75"
}
]
},
"id": 5582,
"name": "onlyInstanceOperatorService",
"nameLocation": "1408:27:75",
"nodeType": "M