@etherisc/registry-contracts
Version:
Etherisc's smart contracts for the registry.
1,320 lines • 417 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": "value",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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",
"59": "contracts/test/DemoV11.sol"
},
"ast": {
"absolutePath": "contracts/test/DemoV11.sol",
"exportedSymbols": {
"DemoV10": [
10426
],
"DemoV11": [
10494
],
"Version": [
12269
],
"toVersion": [
12435
],
"toVersionPart": [
12383
]
},
"id": 10495,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 10428,
"literals": [
"solidity",
"^",
"0.8",
".19"
],
"nodeType": "PragmaDirective",
"src": "39:24:59"
},
{
"absolutePath": "contracts/shared/IVersionType.sol",
"file": "../shared/IVersionType.sol",
"id": 10432,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 10495,
"sourceUnit": 12455,
"src": "65:77:59",
"symbolAliases": [
{
"foreign": {
"id": 10429,
"name": "Version",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12269,
"src": "73:7:59",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 10430,
"name": "toVersion",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12435,
"src": "82:9:59",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 10431,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "93:13:59",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/test/DemoV10.sol",
"file": "./DemoV10.sol",
"id": 10434,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 10495,
"sourceUnit": 10427,
"src": "143:38:59",
"symbolAliases": [
{
"foreign": {
"id": 10433,
"name": "DemoV10",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10426,
"src": "151:7:59",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 10435,
"name": "DemoV10",
"nameLocations": [
"207:7:59"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 10426,
"src": "207:7:59"
},
"id": 10436,
"nodeType": "InheritanceSpecifier",
"src": "207:7:59"
}
],
"canonicalName": "DemoV11",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 10494,
"linearizedBaseContracts": [
10494,
10426,
5965,
13768,
17126,
17084,
5891,
4856,
4443,
4753
],
"name": "DemoV11",
"nameLocation": "192:7:59",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 10438,
"mutability": "mutable",
"name": "_value",
"nameLocation": "235:6:59",
"nodeType": "VariableDeclaration",
"scope": 10494,
"src": "222:19:59",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 10437,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "222:4:59",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "private"
},
{
"baseFunctions": [
10374
],
"body": {
"id": 10457,
"nodeType": "Block",
"src": "506:87:59",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "31",
"id": 10447,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "547:1:59",
"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": 10446,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "533:13:59",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$",
"typeString": "function (uint16) pure returns (VersionPart)"
}
},
"id": 10448,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "533:16:59",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267",
"typeString": "VersionPart"
}
},
{
"arguments": [
{
"hexValue": "31",
"id": 10450,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "565:1:59",
"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": 10449,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "551:13:59",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$",
"typeString": "function (uint16) pure returns (VersionPart)"
}
},
"id": 10451,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "551:16:59",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267",
"typeString": "VersionPart"
}
},
{
"arguments": [
{
"hexValue": "30",
"id": 10453,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "583:1:59",
"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": 10452,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "569:13:59",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$",
"typeString": "function (uint16) pure returns (VersionPart)"
}
},
"id": 10454,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "569:16:59",
"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": 10445,
"name": "toVersion",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12435,
"src": "523:9:59",
"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": 10455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "523:63:59",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
}
},
"functionReturnParameters": 10444,
"id": 10456,
"nodeType": "Return",
"src": "516:70:59"
}
]
},
"functionSelector": "54fd4d50",
"id": 10458,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "version",
"nameLocation": "450:7:59",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 10440,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "467:8:59"
},
"parameters": {
"id": 10439,
"nodeType": "ParameterList",
"parameters": [],
"src": "457:2:59"
},
"returnParameters": {
"id": 10444,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10443,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 10458,
"src": "497:7:59",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
},
"typeName": {
"id": 10442,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 10441,
"name": "Version",
"nameLocations": [
"497:7:59"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12269,
"src": "497:7:59"
},
"referencedDeclaration": 12269,
"src": "497:7:59",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
}
},
"visibility": "internal"
}
],
"src": "496:9:59"
},
"scope": 10494,
"src": "441:152:59",
"stateMutability": "pure",
"virtual": true,
"visibility": "public"
},
{
"baseFunctions": [
5924
],
"body": {
"id": 10475,
"nodeType": "Block",
"src": "793:158:59",
"statements": [
{
"expression": {
"arguments": [
{
"id": 10467,
"name": "implementation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10460,
"src": "855:14:59",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 10468,
"name": "activatedBy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10462,
"src": "871:11:59",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 10466,
"name": "_activate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5719,
"src": "845:9:59",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address)"
}
},
"id": 10469,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "845:38:59",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 10470,
"nodeType": "ExpressionStatement",
"src": "845:38:59"
},
{
"expression": {
"id": 10473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 10471,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10438,
"src": "933:6:59",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "3432",
"id": 10472,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "942:2:59",
"typeDescriptions": {
"typeIdentifier": "t_rational_42_by_1",
"typeString": "int_const 42"
},
"value": "42"
},
"src": "933:11:59",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 10474,
"nodeType": "ExpressionStatement",
"src": "933:11:59"
}
]
},
"functionSelector": "9555c4db",
"id": 10476,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "activate",
"nameLocation": "713:8:59",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 10464,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "784:8:59"
},
"parameters": {
"id": 10463,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10460,
"mutability": "mutable",
"name": "implementation",
"nameLocation": "730:14:59",
"nodeType": "VariableDeclaration",
"scope": 10476,
"src": "722:22:59",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 10459,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "722:7:59",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 10462,
"mutability": "mutable",
"name": "activatedBy",
"nameLocation": "754:11:59",
"nodeType": "VariableDeclaration",
"scope": 10476,
"src": "746:19:59",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 10461,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "746:7:59",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "721:45:59"
},
"returnParameters": {
"id": 10465,
"nodeType": "ParameterList",
"parameters": [],
"src": "793:0:59"
},
"scope": 10494,
"src": "704:247:59",
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "external"
},
{
"body": {
"id": 10483,
"nodeType": "Block",
"src": "1003:30:59",
"statements": [
{
"expression": {
"id": 10481,
"name": "_value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10438,
"src": "1020:6:59",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 10480,
"id": 10482,
"nodeType": "Return",
"src": "1013:13:59"
}
]
},
"functionSelector": "3fa4f245",
"id": 10484,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "value",
"nameLocation": "967:5:59",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10477,
"nodeType": "ParameterList",
"parameters": [],
"src": "972:2:59"
},
"returnParameters": {
"id": 10480,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10479,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 10484,
"src": "997:4:59",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 10478,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "997:4:59",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "996:6:59"
},
"scope": 10494,
"src": "958:75:59",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"baseFunctions": [
10425
],
"body": {
"id": 10492,
"nodeType": "Block",
"src": "1114:63:59",
"statements": [
{
"expression": {
"hexValue": "6865792066726f6d2075706772616461626c6544656d6f202d2044656d6f2076312e312e30",
"id": 10490,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1131:39:59",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4420ba4c76bb4a386fee31c04660523c5768e70904ec1693a7e96b7eb0fb5374",
"typeString": "literal_string \"hey from upgradableDemo - Demo v1.1.0\""
},
"value": "hey from upgradableDemo - Demo v1.1.0"
},
"functionReturnParameters": 10489,
"id": 10491,
"nodeType": "Return",
"src": "1124:46:59"
}
]
},
"functionSelector": "f4d26fec",
"id": 10493,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "upgradable",
"nameLocation": "1049:10:59",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 10486,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "1077:8:59"
},
"parameters": {
"id": 10485,
"nodeType": "ParameterList",
"parameters": [],
"src": "1059:2:59"
},
"returnParameters": {
"id": 10489,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10488,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 10493,
"src": "1099:13:59",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 10487,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1099:6:59",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "1098:15:59"
},
"scope": 10494,
"src": "1040:137:59",
"stateMutability": "view",
"virtual": true,
"visibility": "public"
}
],
"scope": 10495,
"src": "183:996:59",
"usedErrors": []
}
],
"src": "39:1141:59"
},
"bytecode": "60806040523480156200001157600080fd5b506200001e303362000140565b600254610100900460ff16158080156200003f5750600254600160ff909116105b806200005b5750303b1580156200005b575060025460ff166001145b620000c45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015620000e8576002805461ff0019166101001790555b620000f262000444565b801562000139576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000631565b60006200014c620004ac565b65ffffffffffff8116600090815260208190526040902060010154909150600160a01b900463ffffffff1615620001d65760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401620000bb565b6001541562000299576001805460009190620001f4908290620005ef565b8154811062000207576200020762000605565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff1690506200023d8282620004c2565b620002975760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401620000bb565b505b60018054808201825560009190915260058082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805465ffffffffffff808616600694909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101620003254390565b63ffffffff1681526020014264ffffffffff90811690915265ffffffffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166601000000000000026001600160d01b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c01b0264ffffffffff60c01b1963ffffffff909716600160a01b026001600160c01b031990961692909416919091179390931793909316179055517ff7b17693e830f8b239607e857ac81b076450829d544c053d533d1b278d18cd8990620004379083908690869065ffffffffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b600254610100900460ff16620004a05760405162461bcd60e51b815260206004820152602b6024820152600080516020620018e083398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000bb565b620004aa620004d7565b565b6000620004bd60018060006200053e565b905090565b65ffffffffffff808216908316115b92915050565b600254610100900460ff16620005335760405162461bcd60e51b815260206004820152602b6024820152600080516020620018e083398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000bb565b620004aa3362000587565b600061ffff84811690848116908416806200057063ffff0000601089901b1665ffff0000000060208b901b166200061b565b6200057c91906200061b565b979650505050505050565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052601160045260246000fd5b81810381811115620004d157620004d1620005d9565b634e487b7160e01b600052603260045260246000fd5b80820180821115620004d157620004d1620005d9565b61129f80620006416000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80639555c4db116100b8578063da09d4841161007c578063da09d484146102a9578063de788b2c146102c1578063e21f37ce14610334578063f2fde38b1461033c578063f4d26fec1461034f578063f8b1cb3c1461035757600080fd5b80639555c4db14610220578063aa615ec814610233578063b88da75914610256578063bd4080ec14610269578063c1f6a1b71461029657600080fd5b806366362612116100ff57806366362612146101bf5780636effeac4146101d3578063715018a6146101ea5780638da5cb5b146101f25780638e2586891461020d57600080fd5b80631080d8951461013c578063368b8772146101655780633fa4f2451461017a57806354fd4d501461018c57806357e871e7146101ab575b600080fd5b61014f61014a366004610d4e565b61035f565b60405161015c9190610dca565b60405180910390f35b610178610173366004610dfa565b610395565b005b6068545b60405190815260200161015c565b6101946103ad565b60405165ffffffffffff909116815260200161015c565b60405163ffffffff4316815260200161015c565b61017e6101cd366004610eab565b60d81c90565b61017e6101e1366004610ed5565b63ffffffff1690565b6101786103c1565b6035546040516001600160a01b03909116815260200161015c565b61017861021b366004610f17565b6103d5565b61017861022e366004610f5a565b6104f4565b610246610241366004610f8d565b610507565b604051901515815260200161015c565b610194610264366004610fb5565b610533565b6102716105c9565b6040805161ffff9485168152928416602084015292169181019190915260600161015c565b6102716102a4366004610f8d565b6105e4565b61017e6102b7366004610fce565b64ffffffffff1690565b6102d46102cf366004610f8d565b610626565b60408051825165ffffffffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015163ffffffff169082015260809182015164ffffffffff169181019190915260a00161015c565b61014f610723565b61017861034a366004610ff5565b6107b5565b61014f61082e565b60015461017e565b6040805160ff831684901b60f01b6001600160f01b03191660208201528151600281830301815260229091019091525b92915050565b61039d61084e565b60676103a98282611099565b5050565b60006103bc60018060006108a8565b905090565b6103c961084e565b6103d360006108ed565b565b600254610100900460ff16158080156103f55750600254600160ff909116105b8061040f5750303b15801561040f575060025460ff166001145b6104345760405162461bcd60e51b815260040161042b90611159565b60405180910390fd5b6002805460ff191660011790558015610457576002805461ff0019166101001790555b61046284848461093f565b6040518060400160405280602081526020017f7370656369616c206d657373616765202d20617320696e697469616c697a6564815250606790816104a69190611099565b5080156104ee576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050565b6104fe8282610a15565b5050602a606855565b65ffffffffffff16600090815260208190526040902060010154600160a01b900463ffffffff16151590565b60015460009082106105875760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3031303a494e4445585f544f4f5f4c41524745000000604482015260640161042b565b6001828154811061059a5761059a6111a7565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff169050919050565b60008060006105d96102a46103ad565b925092509250909192565b6000808065ffffffffffff841661ffff602086901c1661060483836111d3565b9150601082901c600061061781856111d3565b92989197509195509350505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915261065a82610507565b6106a65760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3032303a56455253494f4e5f554e4b4e4f574e000000604482015260640161042b565b5065ffffffffffff90811660009081526020818152604091829020825160a0810184528154948516815266010000000000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810463ffffffff166060830152600160c01b900464ffffffffff16608082015290565b60606067805461073290611010565b80601f016020809104026020016040519081016040528092919081815260200182805461075e90611010565b80156107ab5780601f10610780576101008083540402835291602001916107ab565b820191906000526020600020905b81548152906001019060200180831161078e57829003601f168201915b5050505050905090565b6107bd61084e565b6001600160a01b0381166108225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161042b565b61082b816108ed565b50565b606060405180606001604052806025815260200161124560259139905090565b6035546001600160a01b031633146103d35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161042b565b600061ffff84811690848116908416806108d863ffff0000601089901b1665ffff0000000060208b901b166111e6565b6108e291906111e6565b979650505050505050565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600254610100900460ff161580801561095f5750600254600160ff909116105b806109795750303b158015610979575060025460ff166001145b6109955760405162461bcd60e51b815260040161042b90611159565b6002805460ff1916600117905580156109b8576002805461ff0019166101001790555b6109c28483610a15565b6109ca610cf4565b6109d3836107b5565b80156104ee576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016104e5565b6000610a1f6103ad565b9050610a2a81610507565b15610a875760405162461bcd60e51b815260206004820152602760248201527f45525