UNPKG

@etherisc/registry-contracts

Version:

Etherisc's smart contracts for the registry.

1,474 lines 51.9 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "Version", "name": "version", "type": "uint48" }, { "indexed": false, "internalType": "address", "name": "implementation", "type": "address" }, { "indexed": false, "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "LogVersionableActivated", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "idx", "type": "uint256" } ], "name": "getVersion", "outputs": [ { "internalType": "Version", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "getVersionInfo", "outputs": [ { "components": [ { "internalType": "Version", "name": "version", "type": "uint48" }, { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" }, { "internalType": "Blocknumber", "name": "activatedIn", "type": "uint32" }, { "internalType": "Timestamp", "name": "activatedAt", "type": "uint40" } ], "internalType": "struct IVersionable.VersionInfo", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "isActivated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "toVersionParts", "outputs": [ { "internalType": "VersionPart", "name": "major", "type": "uint16" }, { "internalType": "VersionPart", "name": "minor", "type": "uint16" }, { "internalType": "VersionPart", "name": "patch", "type": "uint16" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "Version", "name": "", "type": "uint48" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "versionParts", "outputs": [ { "internalType": "VersionPart", "name": "major", "type": "uint16" }, { "internalType": "VersionPart", "name": "minor", "type": "uint16" }, { "internalType": "VersionPart", "name": "patch", "type": "uint16" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "versions", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "allSourcePaths": { "43": "contracts/shared/IBaseTypes.sol", "44": "contracts/shared/IVersionType.sol", "45": "contracts/shared/IVersionable.sol" }, "ast": { "absolutePath": "contracts/shared/IVersionable.sol", "exportedSymbols": { "Blocknumber": [ 4713 ], "IVersionable": [ 4856 ], "Timestamp": [ 4530 ], "Version": [ 12269 ], "VersionPart": [ 12267 ] }, "id": 4857, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 4755, "literals": [ "solidity", "^", "0.8", ".19" ], "nodeType": "PragmaDirective", "src": "39:24:45" }, { "absolutePath": "contracts/shared/IBaseTypes.sol", "file": "./IBaseTypes.sol", "id": 4758, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4857, "sourceUnit": 4754, "src": "65:56:45", "symbolAliases": [ { "foreign": { "id": 4756, "name": "Blocknumber", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4713, "src": "73:11:45", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 4757, "name": "Timestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4530, "src": "86:9:45", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "absolutePath": "contracts/shared/IVersionType.sol", "file": "./IVersionType.sol", "id": 4761, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4857, "sourceUnit": 12455, "src": "122:56:45", "symbolAliases": [ { "foreign": { "id": 4759, "name": "Version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12269, "src": "130:7:45", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 4760, "name": "VersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12267, "src": "139:11:45", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [], "canonicalName": "IVersionable", "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, "id": 4856, "linearizedBaseContracts": [ 4856 ], "name": "IVersionable", "nameLocation": "190:12:45", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "IVersionable.VersionInfo", "id": 4775, "members": [ { "constant": false, "id": 4764, "mutability": "mutable", "name": "version", "nameLocation": "247:7:45", "nodeType": "VariableDeclaration", "scope": 4775, "src": "239:15:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4763, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4762, "name": "Version", "nameLocations": [ "239:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "239:7:45" }, "referencedDeclaration": 12269, "src": "239:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" }, { "constant": false, "id": 4766, "mutability": "mutable", "name": "implementation", "nameLocation": "272:14:45", "nodeType": "VariableDeclaration", "scope": 4775, "src": "264:22:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4765, "name": "address", "nodeType": "ElementaryTypeName", "src": "264:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4768, "mutability": "mutable", "name": "activatedBy", "nameLocation": "304:11:45", "nodeType": "VariableDeclaration", "scope": 4775, "src": "296:19:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4767, "name": "address", "nodeType": "ElementaryTypeName", "src": "296:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4771, "mutability": "mutable", "name": "activatedIn", "nameLocation": "337:11:45", "nodeType": "VariableDeclaration", "scope": 4775, "src": "325:23:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713", "typeString": "Blocknumber" }, "typeName": { "id": 4770, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4769, "name": "Blocknumber", "nameLocations": [ "325:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 4713, "src": "325:11:45" }, "referencedDeclaration": 4713, "src": "325:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Blocknumber_$4713", "typeString": "Blocknumber" } }, "visibility": "internal" }, { "constant": false, "id": 4774, "mutability": "mutable", "name": "activatedAt", "nameLocation": "368:11:45", "nodeType": "VariableDeclaration", "scope": 4775, "src": "358:21:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530", "typeString": "Timestamp" }, "typeName": { "id": 4773, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4772, "name": "Timestamp", "nameLocations": [ "358:9:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 4530, "src": "358:9:45" }, "referencedDeclaration": 4530, "src": "358:9:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Timestamp_$4530", "typeString": "Timestamp" } }, "visibility": "internal" } ], "name": "VersionInfo", "nameLocation": "217:11:45", "nodeType": "StructDefinition", "scope": 4856, "src": "210:176:45", "visibility": "public" }, { "anonymous": false, "eventSelector": "f7b17693e830f8b239607e857ac81b076450829d544c053d533d1b278d18cd89", "id": 4784, "name": "LogVersionableActivated", "nameLocation": "398:23:45", "nodeType": "EventDefinition", "parameters": { "id": 4783, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4778, "indexed": false, "mutability": "mutable", "name": "version", "nameLocation": "430:7:45", "nodeType": "VariableDeclaration", "scope": 4784, "src": "422:15:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4777, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4776, "name": "Version", "nameLocations": [ "422:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "422:7:45" }, "referencedDeclaration": 12269, "src": "422:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" }, { "constant": false, "id": 4780, "indexed": false, "mutability": "mutable", "name": "implementation", "nameLocation": "447:14:45", "nodeType": "VariableDeclaration", "scope": 4784, "src": "439:22:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4779, "name": "address", "nodeType": "ElementaryTypeName", "src": "439:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4782, "indexed": false, "mutability": "mutable", "name": "activatedBy", "nameLocation": "471:11:45", "nodeType": "VariableDeclaration", "scope": 4784, "src": "463:19:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4781, "name": "address", "nodeType": "ElementaryTypeName", "src": "463:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "421:62:45" }, "src": "392:92:45" }, { "documentation": { "id": 4785, "nodeType": "StructuredDocumentation", "src": "490:243:45", "text": " @dev IMPORTANT this function needs to be implemented by each new version\n any such activate implementation needs to call internal function call _activate() \n any new version needs to inherit from previous version" }, "functionSelector": "9555c4db", "id": 4792, "implemented": false, "kind": "function", "modifiers": [], "name": "activate", "nameLocation": "747:8:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4790, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4787, "mutability": "mutable", "name": "implementation", "nameLocation": "764:14:45", "nodeType": "VariableDeclaration", "scope": 4792, "src": "756:22:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4786, "name": "address", "nodeType": "ElementaryTypeName", "src": "756:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4789, "mutability": "mutable", "name": "activatedBy", "nameLocation": "788:11:45", "nodeType": "VariableDeclaration", "scope": 4792, "src": "780:19:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4788, "name": "address", "nodeType": "ElementaryTypeName", "src": "780:7:45", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "755:45:45" }, "returnParameters": { "id": 4791, "nodeType": "ParameterList", "parameters": [], "src": "809:0:45" }, "scope": 4856, "src": "738:72:45", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "functionSelector": "aa615ec8", "id": 4800, "implemented": false, "kind": "function", "modifiers": [], "name": "isActivated", "nameLocation": "824:11:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4796, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4795, "mutability": "mutable", "name": "_version", "nameLocation": "844:8:45", "nodeType": "VariableDeclaration", "scope": 4800, "src": "836:16:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4794, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4793, "name": "Version", "nameLocations": [ "836:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "836:7:45" }, "referencedDeclaration": 12269, "src": "836:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "835:18:45" }, "returnParameters": { "id": 4799, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4798, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4800, "src": "876:4:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4797, "name": "bool", "nodeType": "ElementaryTypeName", "src": "876:4:45", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "875:6:45" }, "scope": 4856, "src": "815:67:45", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "functionSelector": "c1f6a1b7", "id": 4815, "implemented": false, "kind": "function", "modifiers": [], "name": "toVersionParts", "nameLocation": "897:14:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4804, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4803, "mutability": "mutable", "name": "_version", "nameLocation": "920:8:45", "nodeType": "VariableDeclaration", "scope": 4815, "src": "912:16:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4802, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4801, "name": "Version", "nameLocations": [ "912:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "912:7:45" }, "referencedDeclaration": 12269, "src": "912:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "911:18:45" }, "returnParameters": { "id": 4814, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4807, "mutability": "mutable", "name": "major", "nameLocation": "1001:5:45", "nodeType": "VariableDeclaration", "scope": 4815, "src": "989:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, "typeName": { "id": 4806, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4805, "name": "VersionPart", "nameLocations": [ "989:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12267, "src": "989:11:45" }, "referencedDeclaration": 12267, "src": "989:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, "visibility": "internal" }, { "constant": false, "id": 4810, "mutability": "mutable", "name": "minor", "nameLocation": "1032:5:45", "nodeType": "VariableDeclaration", "scope": 4815, "src": "1020:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, "typeName": { "id": 4809, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4808, "name": "VersionPart", "nameLocations": [ "1020:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12267, "src": "1020:11:45" }, "referencedDeclaration": 12267, "src": "1020:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, "visibility": "internal" }, { "constant": false, "id": 4813, "mutability": "mutable", "name": "patch", "nameLocation": "1063:5:45", "nodeType": "VariableDeclaration", "scope": 4815, "src": "1051:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, "typeName": { "id": 4812, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4811, "name": "VersionPart", "nameLocations": [ "1051:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12267, "src": "1051:11:45" }, "referencedDeclaration": 12267, "src": "1051:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, "visibility": "internal" } ], "src": "975:103:45" }, "scope": 4856, "src": "888:191:45", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "functionSelector": "54fd4d50", "id": 4821, "implemented": false, "kind": "function", "modifiers": [], "name": "version", "nameLocation": "1149:7:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4816, "nodeType": "ParameterList", "parameters": [], "src": "1156:2:45" }, "returnParameters": { "id": 4820, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4819, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4821, "src": "1181:7:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4818, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4817, "name": "Version", "nameLocations": [ "1181:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "1181:7:45" }, "referencedDeclaration": 12269, "src": "1181:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "1180:9:45" }, "scope": 4856, "src": "1140:50:45", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "functionSelector": "bd4080ec", "id": 4833, "implemented": false, "kind": "function", "modifiers": [], "name": "versionParts", "nameLocation": "1204:12:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4822, "nodeType": "ParameterList", "parameters": [], "src": "1216:2:45" }, "returnParameters": { "id": 4832, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4825, "mutability": "mutable", "name": "major", "nameLocation": "1290:5:45", "nodeType": "VariableDeclaration", "scope": 4833, "src": "1278:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, "typeName": { "id": 4824, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4823, "name": "VersionPart", "nameLocations": [ "1278:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12267, "src": "1278:11:45" }, "referencedDeclaration": 12267, "src": "1278:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, "visibility": "internal" }, { "constant": false, "id": 4828, "mutability": "mutable", "name": "minor", "nameLocation": "1321:5:45", "nodeType": "VariableDeclaration", "scope": 4833, "src": "1309:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, "typeName": { "id": 4827, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4826, "name": "VersionPart", "nameLocations": [ "1309:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12267, "src": "1309:11:45" }, "referencedDeclaration": 12267, "src": "1309:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, "visibility": "internal" }, { "constant": false, "id": 4831, "mutability": "mutable", "name": "patch", "nameLocation": "1352:5:45", "nodeType": "VariableDeclaration", "scope": 4833, "src": "1340:17:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, "typeName": { "id": 4830, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4829, "name": "VersionPart", "nameLocations": [ "1340:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12267, "src": "1340:11:45" }, "referencedDeclaration": 12267, "src": "1340:11:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, "visibility": "internal" } ], "src": "1264:103:45" }, "scope": 4856, "src": "1195:173:45", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "functionSelector": "f8b1cb3c", "id": 4838, "implemented": false, "kind": "function", "modifiers": [], "name": "versions", "nameLocation": "1383:8:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4834, "nodeType": "ParameterList", "parameters": [], "src": "1391:2:45" }, "returnParameters": { "id": 4837, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4836, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4838, "src": "1416:7:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4835, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1416:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1415:9:45" }, "scope": 4856, "src": "1374:51:45", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "functionSelector": "b88da759", "id": 4846, "implemented": false, "kind": "function", "modifiers": [], "name": "getVersion", "nameLocation": "1439:10:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4841, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4840, "mutability": "mutable", "name": "idx", "nameLocation": "1458:3:45", "nodeType": "VariableDeclaration", "scope": 4846, "src": "1450:11:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4839, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1450:7:45", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1449:13:45" }, "returnParameters": { "id": 4845, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4844, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4846, "src": "1485:7:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4843, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4842, "name": "Version", "nameLocations": [ "1485:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "1485:7:45" }, "referencedDeclaration": 12269, "src": "1485:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "1484:9:45" }, "scope": 4856, "src": "1430:64:45", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "functionSelector": "de788b2c", "id": 4855, "implemented": false, "kind": "function", "modifiers": [], "name": "getVersionInfo", "nameLocation": "1508:14:45", "nodeType": "FunctionDefinition", "parameters": { "id": 4850, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4849, "mutability": "mutable", "name": "_version", "nameLocation": "1531:8:45", "nodeType": "VariableDeclaration", "scope": 4855, "src": "1523:16:45", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 4848, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4847, "name": "Version", "nameLocations": [ "1523:7:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "1523:7:45" }, "referencedDeclaration": 12269, "src": "1523:7:45", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "1522:18:45" }, "returnParameters": { "id": 4854, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4853, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 4855, "src": "1563:18:45", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_VersionInfo_$4775_memory_ptr", "typeString": "struct IVersionable.VersionInfo" }, "typeName": { "id": 4852, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 4851, "name": "VersionInfo", "nameLocations": [ "1563:11:45" ], "nodeType": "IdentifierPath", "referencedDeclaration": 4775, "src": "1563:11:45" }, "referencedDeclaration": 4775, "src": "1563:11:45", "typeDescriptions": { "typeIdentifier": "t_struct$_VersionInfo_$4775_storage_ptr", "typeString": "struct IVersionable.VersionInfo" } }, "visibility": "internal" } ], "src": "1562:20:45" }, "scope": 4856, "src": "1499:84:45", "stateMutability": "view", "virtual": false, "visibility": "external" } ], "scope": 4857, "src": "180:1405:45", "usedErrors": [] } ], "src": "39:1546:45" }, "bytecode": "", "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709", "compiler": { "evm_version": "istanbul", "optimizer": { "enabled": true, "runs": 200 }, "version": "0.8.19+commit.7dd6d404" }, "contractName": "IVersionable", "coverageMap": { "branches": {}, "statements": {} }, "dependencies": [], "deployedBytecode": "", "deployedSourceMap": "", "language": "Solidity", "natspec": { "kind": "dev", "methods": { "activate(address,address)": { "details": "IMPORTANT this function needs to be implemented by each new version any such activate implementation needs to call internal function call _activate() any new version needs to inherit from previous version