@etherisc/registry-contracts
Version:
Etherisc's smart contracts for the registry.
1,474 lines • 51.9 kB
JSON
{
"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