UNPKG

@etherisc/registry-contracts

Version:

Etherisc's smart contracts for the registry.

1,479 lines 422 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "newOwner", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activateAndSetOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "blockNumber", "outputs": [ { "internalType": "Blocknumber", "name": "", "type": "uint32" } ], "stateMutability": "view", "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": "uint256", "name": "x", "type": "uint256" }, { "internalType": "uint8", "name": "shift", "type": "uint8" } ], "name": "intToBytes", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "isActivated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "message", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newMessage", "type": "string" } ], "name": "setMessage", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "ChainId", "name": "x", "type": "bytes5" } ], "name": "toInt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Blocknumber", "name": "x", "type": "uint32" } ], "name": "toInt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Timestamp", "name": "x", "type": "uint40" } ], "name": "toInt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "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": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradable", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "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": { "0": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/contracts/access/OwnableUpgradeable.sol", "1": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/contracts/proxy/utils/Initializable.sol", "3": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts-upgradeable@4.8.2/contracts/utils/ContextUpgradeable.sol", "42": "contracts/shared/BaseTypes.sol", "43": "contracts/shared/IBaseTypes.sol", "44": "contracts/shared/IVersionType.sol", "45": "contracts/shared/IVersionable.sol", "48": "contracts/shared/Versionable.sol", "49": "contracts/shared/VersionedOwnable.sol", "58": "contracts/test/DemoV10.sol" }, "ast": { "absolutePath": "contracts/test/DemoV10.sol", "exportedSymbols": { "DemoV10": [ 10426 ], "Version": [ 12269 ], "VersionedOwnable": [ 5965 ], "toVersion": [ 12435 ], "toVersionPart": [ 12383 ] }, "id": 10427, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { "id": 10344, "literals": [ "solidity", "^", "0.8", ".19" ], "nodeType": "PragmaDirective", "src": "39:24:58" }, { "absolutePath": "contracts/shared/IVersionType.sol", "file": "../shared/IVersionType.sol", "id": 10348, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10427, "sourceUnit": 12455, "src": "65:77:58", "symbolAliases": [ { "foreign": { "id": 10345, "name": "Version", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12269, "src": "73:7:58", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 10346, "name": "toVersion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12435, "src": "82:9:58", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 10347, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "93:13:58", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "absolutePath": "contracts/shared/VersionedOwnable.sol", "file": "../shared/VersionedOwnable.sol", "id": 10350, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 10427, "sourceUnit": 5966, "src": "144:64:58", "symbolAliases": [ { "foreign": { "id": 10349, "name": "VersionedOwnable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5965, "src": "152:16:58", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 10351, "name": "VersionedOwnable", "nameLocations": [ "234:16:58" ], "nodeType": "IdentifierPath", "referencedDeclaration": 5965, "src": "234:16:58" }, "id": 10352, "nodeType": "InheritanceSpecifier", "src": "234:16:58" } ], "canonicalName": "DemoV10", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "id": 10426, "linearizedBaseContracts": [ 10426, 5965, 13768, 17126, 17084, 5891, 4856, 4443, 4753 ], "name": "DemoV10", "nameLocation": "219:7:58", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "id": 10354, "mutability": "mutable", "name": "_message", "nameLocation": "273:8:58", "nodeType": "VariableDeclaration", "scope": 10426, "src": "258:23:58", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 10353, "name": "string", "nodeType": "ElementaryTypeName", "src": "258:6:58", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "baseFunctions": [ 5818 ], "body": { "id": 10373, "nodeType": "Block", "src": "546:87:58", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "hexValue": "31", "id": 10363, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "587:1:58", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 10362, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "573:13:58", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$", "typeString": "function (uint16) pure returns (VersionPart)" } }, "id": 10364, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "573:16:58", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, { "arguments": [ { "hexValue": "30", "id": 10366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "605:1:58", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 10365, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "591:13:58", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$", "typeString": "function (uint16) pure returns (VersionPart)" } }, "id": 10367, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "591:16:58", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } }, { "arguments": [ { "hexValue": "30", "id": 10369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "623:1:58", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 10368, "name": "toVersionPart", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12383, "src": "609:13:58", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$", "typeString": "function (uint16) pure returns (VersionPart)" } }, "id": 10370, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "609:16:58", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" }, { "typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267", "typeString": "VersionPart" } ], "id": 10361, "name": "toVersion", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12435, "src": "563:9:58", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_VersionPart_$12267_$_t_userDefinedValueType$_VersionPart_$12267_$_t_userDefinedValueType$_VersionPart_$12267_$returns$_t_userDefinedValueType$_Version_$12269_$", "typeString": "function (VersionPart,VersionPart,VersionPart) pure returns (Version)" } }, "id": 10371, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "563:63:58", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "functionReturnParameters": 10360, "id": 10372, "nodeType": "Return", "src": "556:70:58" } ] }, "functionSelector": "54fd4d50", "id": 10374, "implemented": true, "kind": "function", "modifiers": [], "name": "version", "nameLocation": "490:7:58", "nodeType": "FunctionDefinition", "overrides": { "id": 10356, "nodeType": "OverrideSpecifier", "overrides": [], "src": "507:8:58" }, "parameters": { "id": 10355, "nodeType": "ParameterList", "parameters": [], "src": "497:2:58" }, "returnParameters": { "id": 10360, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10359, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 10374, "src": "537:7:58", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" }, "typeName": { "id": 10358, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 10357, "name": "Version", "nameLocations": [ "537:7:58" ], "nodeType": "IdentifierPath", "referencedDeclaration": 12269, "src": "537:7:58" }, "referencedDeclaration": 12269, "src": "537:7:58", "typeDescriptions": { "typeIdentifier": "t_userDefinedValueType$_Version_$12269", "typeString": "Version" } }, "visibility": "internal" } ], "src": "536:9:58" }, "scope": 10426, "src": "481:152:58", "stateMutability": "pure", "virtual": true, "visibility": "public" }, { "baseFunctions": [ 5940 ], "body": { "id": 10396, "nodeType": "Block", "src": "903:212:58", "statements": [ { "expression": { "arguments": [ { "id": 10387, "name": "implementation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10376, "src": "975:14:58", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 10388, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10378, "src": "991:8:58", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 10389, "name": "activatedBy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10380, "src": "1001:11:58", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 10386, "name": "_activateAndSetOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5964, "src": "954:20:58", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", "typeString": "function (address,address,address)" } }, "id": 10390, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "954:59:58", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 10391, "nodeType": "ExpressionStatement", "src": "954:59:58" }, { "expression": { "id": 10394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 10392, "name": "_message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10354, "src": "1063:8:58", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "7370656369616c206d657373616765202d20617320696e697469616c697a6564", "id": 10393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1074:34:58", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7f77d117ffc4f7b8e5239435171fbee11d4ce27f5e8f6186dd2d0d1ef219cd28", "typeString": "literal_string \"special message - as initialized\"" }, "value": "special message - as initialized" }, "src": "1063:45:58", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 10395, "nodeType": "ExpressionStatement", "src": "1063:45:58" } ] }, "functionSelector": "8e258689", "id": 10397, "implemented": true, "kind": "function", "modifiers": [ { "id": 10384, "kind": "modifierInvocation", "modifierName": { "id": 10383, "name": "initializer", "nameLocations": [ "887:11:58" ], "nodeType": "IdentifierPath", "referencedDeclaration": 16986, "src": "887:11:58" }, "nodeType": "ModifierInvocation", "src": "887:11:58" } ], "name": "activateAndSetOwner", "nameLocation": "754:19:58", "nodeType": "FunctionDefinition", "overrides": { "id": 10382, "nodeType": "OverrideSpecifier", "overrides": [], "src": "870:8:58" }, "parameters": { "id": 10381, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10376, "mutability": "mutable", "name": "implementation", "nameLocation": "782:14:58", "nodeType": "VariableDeclaration", "scope": 10397, "src": "774:22:58", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 10375, "name": "address", "nodeType": "ElementaryTypeName", "src": "774:7:58", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 10378, "mutability": "mutable", "name": "newOwner", "nameLocation": "806:8:58", "nodeType": "VariableDeclaration", "scope": 10397, "src": "798:16:58", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 10377, "name": "address", "nodeType": "ElementaryTypeName", "src": "798:7:58", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 10380, "mutability": "mutable", "name": "activatedBy", "nameLocation": "824:11:58", "nodeType": "VariableDeclaration", "scope": 10397, "src": "816:19:58", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 10379, "name": "address", "nodeType": "ElementaryTypeName", "src": "816:7:58", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "773:63:58" }, "returnParameters": { "id": 10385, "nodeType": "ParameterList", "parameters": [], "src": "903:0:58" }, "scope": 10426, "src": "745:370:58", "stateMutability": "nonpayable", "virtual": true, "visibility": "external" }, { "body": { "id": 10408, "nodeType": "Block", "src": "1187:38:58", "statements": [ { "expression": { "id": 10406, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 10404, "name": "_message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10354, "src": "1197:8:58", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 10405, "name": "newMessage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10399, "src": "1208:10:58", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "1197:21:58", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 10407, "nodeType": "ExpressionStatement", "src": "1197:21:58" } ] }, "functionSelector": "368b8772", "id": 10409, "implemented": true, "kind": "function", "modifiers": [ { "id": 10402, "kind": "modifierInvocation", "modifierName": { "id": 10401, "name": "onlyOwner", "nameLocations": [ "1177:9:58" ], "nodeType": "IdentifierPath", "referencedDeclaration": 13682, "src": "1177:9:58" }, "nodeType": "ModifierInvocation", "src": "1177:9:58" } ], "name": "setMessage", "nameLocation": "1131:10:58", "nodeType": "FunctionDefinition", "parameters": { "id": 10400, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10399, "mutability": "mutable", "name": "newMessage", "nameLocation": "1156:10:58", "nodeType": "VariableDeclaration", "scope": 10409, "src": "1142:24:58", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 10398, "name": "string", "nodeType": "ElementaryTypeName", "src": "1142:6:58", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1141:26:58" }, "returnParameters": { "id": 10403, "nodeType": "ParameterList", "parameters": [], "src": "1187:0:58" }, "scope": 10426, "src": "1122:103:58", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { "id": 10416, "nodeType": "Block", "src": "1287:32:58", "statements": [ { "expression": { "id": 10414, "name": "_message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 10354, "src": "1304:8:58", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 10413, "id": 10415, "nodeType": "Return", "src": "1297:15:58" } ] }, "functionSelector": "e21f37ce", "id": 10417, "implemented": true, "kind": "function", "modifiers": [], "name": "message", "nameLocation": "1240:7:58", "nodeType": "FunctionDefinition", "parameters": { "id": 10410, "nodeType": "ParameterList", "parameters": [], "src": "1247:2:58" }, "returnParameters": { "id": 10413, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10412, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 10417, "src": "1272:13:58", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 10411, "name": "string", "nodeType": "ElementaryTypeName", "src": "1272:6:58", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1271:15:58" }, "scope": 10426, "src": "1231:88:58", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { "id": 10424, "nodeType": "Block", "src": "1390:63:58", "statements": [ { "expression": { "hexValue": "6865792066726f6d2075706772616461626c6544656d6f202d2044656d6f2076312e302e30", "id": 10422, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1407:39:58", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b4d373686da6fcc007174062e9b04e2707d4e30eb760f6000f7ea1ba610081ad", "typeString": "literal_string \"hey from upgradableDemo - Demo v1.0.0\"" }, "value": "hey from upgradableDemo - Demo v1.0.0" }, "functionReturnParameters": 10421, "id": 10423, "nodeType": "Return", "src": "1400:46:58" } ] }, "functionSelector": "f4d26fec", "id": 10425, "implemented": true, "kind": "function", "modifiers": [], "name": "upgradable", "nameLocation": "1334:10:58", "nodeType": "FunctionDefinition", "parameters": { "id": 10418, "nodeType": "ParameterList", "parameters": [], "src": "1344:2:58" }, "returnParameters": { "id": 10421, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 10420, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 10425, "src": "1375:13:58", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 10419, "name": "string", "nodeType": "ElementaryTypeName", "src": "1375:6:58", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1374:15:58" }, "scope": 10426, "src": "1325:128:58", "stateMutability": "view", "virtual": true, "visibility": "public" } ], "scope": 10427, "src": "210:1245:58", "usedErrors": [] } ], "src": "39:1417:58" }, "bytecode": "60806040523480156200001157600080fd5b506200001e303362000140565b600254610100900460ff16158080156200003f5750600254600160ff909116105b806200005b5750303b1580156200005b575060025460ff166001145b620000c45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015620000e8576002805461ff0019166101001790555b620000f262000444565b801562000139576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000631565b60006200014c620004ac565b65ffffffffffff8116600090815260208190526040902060010154909150600160a01b900463ffffffff1615620001d65760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401620000bb565b6001541562000299576001805460009190620001f4908290620005ef565b8154811062000207576200020762000605565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff1690506200023d8282620004c2565b620002975760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401620000bb565b505b60018054808201825560009190915260058082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805465ffffffffffff808616600694909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101620003254390565b63ffffffff1681526020014264ffffffffff90811690915265ffffffffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166601000000000000026001600160d01b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c01b0264ffffffffff60c01b1963ffffffff909716