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