@etherisc/registry-contracts
Version:
Etherisc's smart contracts for the registry.
1,230 lines • 414 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": "ping",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"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",
"60": "contracts/test/DemoV111.sol"
},
"ast": {
"absolutePath": "contracts/test/DemoV111.sol",
"exportedSymbols": {
"DemoV11": [
10494
],
"DemoV111": [
10547
],
"Version": [
12269
],
"toVersion": [
12435
],
"toVersionPart": [
12383
]
},
"id": 10548,
"license": "Apache-2.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 10496,
"literals": [
"solidity",
"^",
"0.8",
".19"
],
"nodeType": "PragmaDirective",
"src": "39:24:60"
},
{
"absolutePath": "contracts/shared/IVersionType.sol",
"file": "../shared/IVersionType.sol",
"id": 10500,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 10548,
"sourceUnit": 12455,
"src": "65:77:60",
"symbolAliases": [
{
"foreign": {
"id": 10497,
"name": "Version",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12269,
"src": "73:7:60",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 10498,
"name": "toVersion",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12435,
"src": "82:9:60",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
},
{
"foreign": {
"id": 10499,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "93:13:60",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"absolutePath": "contracts/test/DemoV11.sol",
"file": "./DemoV11.sol",
"id": 10502,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 10548,
"sourceUnit": 10495,
"src": "143:38:60",
"symbolAliases": [
{
"foreign": {
"id": 10501,
"name": "DemoV11",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10494,
"src": "151:7:60",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 10503,
"name": "DemoV11",
"nameLocations": [
"208:7:60"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 10494,
"src": "208:7:60"
},
"id": 10504,
"nodeType": "InheritanceSpecifier",
"src": "208:7:60"
}
],
"canonicalName": "DemoV111",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 10547,
"linearizedBaseContracts": [
10547,
10494,
10426,
5965,
13768,
17126,
17084,
5891,
4856,
4443,
4753
],
"name": "DemoV111",
"nameLocation": "192:8:60",
"nodeType": "ContractDefinition",
"nodes": [
{
"baseFunctions": [
10458
],
"body": {
"id": 10523,
"nodeType": "Block",
"src": "481:87:60",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"hexValue": "31",
"id": 10513,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "522:1:60",
"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": 10512,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "508:13:60",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$",
"typeString": "function (uint16) pure returns (VersionPart)"
}
},
"id": 10514,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "508:16:60",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267",
"typeString": "VersionPart"
}
},
{
"arguments": [
{
"hexValue": "31",
"id": 10516,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "540:1:60",
"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": 10515,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "526:13:60",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$",
"typeString": "function (uint16) pure returns (VersionPart)"
}
},
"id": 10517,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "526:16:60",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_VersionPart_$12267",
"typeString": "VersionPart"
}
},
{
"arguments": [
{
"hexValue": "31",
"id": 10519,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "558:1:60",
"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": 10518,
"name": "toVersionPart",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12383,
"src": "544:13:60",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_userDefinedValueType$_VersionPart_$12267_$",
"typeString": "function (uint16) pure returns (VersionPart)"
}
},
"id": 10520,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "544:16:60",
"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": 10511,
"name": "toVersion",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12435,
"src": "498:9:60",
"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": 10521,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "498:63:60",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
}
},
"functionReturnParameters": 10510,
"id": 10522,
"nodeType": "Return",
"src": "491:70:60"
}
]
},
"functionSelector": "54fd4d50",
"id": 10524,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "version",
"nameLocation": "425:7:60",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 10506,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "442:8:60"
},
"parameters": {
"id": 10505,
"nodeType": "ParameterList",
"parameters": [],
"src": "432:2:60"
},
"returnParameters": {
"id": 10510,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10509,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 10524,
"src": "472:7:60",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
},
"typeName": {
"id": 10508,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 10507,
"name": "Version",
"nameLocations": [
"472:7:60"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 12269,
"src": "472:7:60"
},
"referencedDeclaration": 12269,
"src": "472:7:60",
"typeDescriptions": {
"typeIdentifier": "t_userDefinedValueType$_Version_$12269",
"typeString": "Version"
}
},
"visibility": "internal"
}
],
"src": "471:9:60"
},
"scope": 10547,
"src": "416:152:60",
"stateMutability": "pure",
"virtual": true,
"visibility": "public"
},
{
"baseFunctions": [
10476
],
"body": {
"id": 10537,
"nodeType": "Block",
"src": "768:97:60",
"statements": [
{
"expression": {
"arguments": [
{
"id": 10533,
"name": "implementation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10526,
"src": "830:14:60",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 10534,
"name": "activatedBy",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10528,
"src": "846:11:60",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 10532,
"name": "_activate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5719,
"src": "820:9:60",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
"typeString": "function (address,address)"
}
},
"id": 10535,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "820:38:60",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 10536,
"nodeType": "ExpressionStatement",
"src": "820:38:60"
}
]
},
"functionSelector": "9555c4db",
"id": 10538,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "activate",
"nameLocation": "688:8:60",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 10530,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "759:8:60"
},
"parameters": {
"id": 10529,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10526,
"mutability": "mutable",
"name": "implementation",
"nameLocation": "705:14:60",
"nodeType": "VariableDeclaration",
"scope": 10538,
"src": "697:22:60",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 10525,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "697:7:60",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 10528,
"mutability": "mutable",
"name": "activatedBy",
"nameLocation": "729:11:60",
"nodeType": "VariableDeclaration",
"scope": 10538,
"src": "721:19:60",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 10527,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "721:7:60",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "696:45:60"
},
"returnParameters": {
"id": 10531,
"nodeType": "ParameterList",
"parameters": [],
"src": "768:0:60"
},
"scope": 10547,
"src": "679:186:60",
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "external"
},
{
"body": {
"id": 10545,
"nodeType": "Block",
"src": "923:30:60",
"statements": [
{
"expression": {
"hexValue": "706f6e67",
"id": 10543,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "940:6:60",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_188fcd5cf9ef16dcca9118fafa7971df7a86f5b5762c15c204d6a3d29f4e6e8d",
"typeString": "literal_string \"pong\""
},
"value": "pong"
},
"functionReturnParameters": 10542,
"id": 10544,
"nodeType": "Return",
"src": "933:13:60"
}
]
},
"functionSelector": "5c36b186",
"id": 10546,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "ping",
"nameLocation": "881:4:60",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 10539,
"nodeType": "ParameterList",
"parameters": [],
"src": "885:2:60"
},
"returnParameters": {
"id": 10542,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10541,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 10546,
"src": "908:13:60",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 10540,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "908:6:60",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "907:15:60"
},
"scope": 10547,
"src": "872:81:60",
"stateMutability": "pure",
"virtual": false,
"visibility": "public"
}
],
"scope": 10548,
"src": "183:772:60",
"usedErrors": []
}
],
"src": "39:917:60"
},
"bytecode": "60806040523480156200001157600080fd5b506200001e303362000140565b600254610100900460ff16158080156200003f5750600254600160ff909116105b806200005b5750303b1580156200005b575060025460ff166001145b620000c45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6002805460ff191660011790558015620000e8576002805461ff0019166101001790555b620000f262000444565b801562000139576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5062000631565b60006200014c620004ac565b65ffffffffffff8116600090815260208190526040902060010154909150600160a01b900463ffffffff1615620001d65760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401620000bb565b6001541562000299576001805460009190620001f4908290620005ef565b8154811062000207576200020762000605565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff1690506200023d8282620004c2565b620002975760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401620000bb565b505b60018054808201825560009190915260058082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805465ffffffffffff808616600694909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101620003254390565b63ffffffff1681526020014264ffffffffff90811690915265ffffffffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166601000000000000026001600160d01b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c01b0264ffffffffff60c01b1963ffffffff909716600160a01b026001600160c01b031990961692909416919091179390931793909316179055517ff7b17693e830f8b239607e857ac81b076450829d544c053d533d1b278d18cd8990620004379083908690869065ffffffffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b600254610100900460ff16620004a05760405162461bcd60e51b815260206004820152602b60248201526000805160206200190283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000bb565b620004aa620004d7565b565b6000620004bd60018060016200053e565b905090565b65ffffffffffff808216908316115b92915050565b600254610100900460ff16620005335760405162461bcd60e51b815260206004820152602b60248201526000805160206200190283398151915260448201526a6e697469616c697a696e6760a81b6064820152608401620000bb565b620004aa3362000587565b600061ffff84811690848116908416806200057063ffff0000601089901b1665ffff0000000060208b901b166200061b565b6200057c91906200061b565b979650505050505050565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052601160045260246000fd5b81810381811115620004d157620004d1620005d9565b634e487b7160e01b600052603260045260246000fd5b80820180821115620004d157620004d1620005d9565b6112c180620006416000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80639555c4db116100b8578063da09d4841161007c578063da09d484146102d4578063de788b2c146102ec578063e21f37ce1461035f578063f2fde38b14610367578063f4d26fec1461037a578063f8b1cb3c1461038257600080fd5b80639555c4db1461024b578063aa615ec81461025e578063b88da75914610281578063bd4080ec14610294578063c1f6a1b7146102c157600080fd5b80635c36b1861161010a5780635c36b186146101ca57806366362612146101ea5780636effeac4146101fe578063715018a6146102155780638da5cb5b1461021d5780638e2586891461023857600080fd5b80631080d89514610147578063368b8772146101705780633fa4f2451461018557806354fd4d501461019757806357e871e7146101b6575b600080fd5b61015a610155366004610d70565b61038a565b6040516101679190610dec565b60405180910390f35b61018361017e366004610e1c565b6103c0565b005b6068545b604051908152602001610167565b61019f6103d8565b60405165ffffffffffff9091168152602001610167565b60405163ffffffff43168152602001610167565b604080518082019091526004815263706f6e6760e01b602082015261015a565b6101896101f8366004610ecd565b60d81c90565b61018961020c366004610ef7565b63ffffffff1690565b6101836103ec565b6035546040516001600160a01b039091168152602001610167565b610183610246366004610f39565b610400565b610183610259366004610f7c565b61051f565b61027161026c366004610faf565b610529565b6040519015158152602001610167565b61019f61028f366004610fd7565b610555565b61029c6105eb565b6040805161ffff94851681529284166020840152921691810191909152606001610167565b61029c6102cf366004610faf565b610606565b6101896102e2366004610ff0565b64ffffffffff1690565b6102ff6102fa366004610faf565b610648565b60408051825165ffffffffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015163ffffffff169082015260809182015164ffffffffff169181019190915260a001610167565b61015a610745565b610183610375366004611017565b6107d7565b61015a610850565b600154610189565b6040805160ff831684901b60f01b6001600160f01b03191660208201528151600281830301815260229091019091525b92915050565b6103c8610870565b60676103d482826110bb565b5050565b60006103e760018060016108ca565b905090565b6103f4610870565b6103fe600061090f565b565b600254610100900460ff16158080156104205750600254600160ff909116105b8061043a5750303b15801561043a575060025460ff166001145b61045f5760405162461bcd60e51b81526004016104569061117b565b60405180910390fd5b6002805460ff191660011790558015610482576002805461ff0019166101001790555b61048d848484610961565b6040518060400160405280602081526020017f7370656369616c206d657373616765202d20617320696e697469616c697a6564815250606790816104d191906110bb565b508015610519576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050565b6103d48282610a37565b65ffffffffffff16600090815260208190526040902060010154600160a01b900463ffffffff16151590565b60015460009082106105a95760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3031303a494e4445585f544f4f5f4c415247450000006044820152606401610456565b600182815481106105bc576105bc6111c9565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff169050919050565b60008060006105fb6102cf6103d8565b925092509250909192565b6000808065ffffffffffff841661ffff602086901c1661062683836111f5565b9150601082901c600061063981856111f5565b92989197509195509350505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915261067c82610529565b6106c85760405162461bcd60e51b815260206004820152601d60248201527f4552524f523a56524e2d3032303a56455253494f4e5f554e4b4e4f574e0000006044820152606401610456565b5065ffffffffffff90811660009081526020818152604091829020825160a0810184528154948516815266010000000000009094046001600160a01b03908116928501929092526001015490811691830191909152600160a01b810463ffffffff166060830152600160c01b900464ffffffffff16608082015290565b60606067805461075490611032565b80601f016020809104026020016040519081016040528092919081815260200182805461078090611032565b80156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b5050505050905090565b6107df610870565b6001600160a01b0381166108445760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610456565b61084d8161090f565b50565b606060405180606001604052806025815260200161126760259139905090565b6035546001600160a01b031633146103fe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610456565b600061ffff84811690848116908416806108fa63ffff0000601089901b1665ffff0000000060208b901b16611208565b6109049190611208565b979650505050505050565b603580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600254610100900460ff16158080156109815750600254600160ff909116105b8061099b5750303b15801561099b575060025460ff166001145b6109b75760405162461bcd60e51b81526004016104569061117b565b6002805460ff1916600117905580156109da576002805461ff0019166101001790555b6109e48483610a37565b6109ec610d16565b6109f5836107d7565b8015610519576002805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602001610510565b6000610a416103d8565b9050610a4c81610529565b15610aa95760405162461bcd60e51b815260206004820152602760248201527f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f41436044820152661512559055115160ca1b6064820152608401610456565b60015415610b6d576001805460009190610ac49082906111f5565b81548110610ad457610ad46111c9565b90600052602060002090600591828204019190066006029054906101000a900465ffffffffffff169050610b13828265ffffffffffff90811691161190565b610b6b5760405162461bcd60e51b8152602060048201526024808201527f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160448201526353494e4760e01b6064820152608401610456565b505b60018054808201825560009190915260058082047fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805465ffffffffffff808616600694909506939093026101000a848102930219169190911790556040805160a0810182529182526001600160a01b03808616602084015284169082015260608101610bf84390565b63ffffffff1681526020014264ffffffffff90811690915265ffffffffffff8084166000908152602081815260409182902085518154928701516001600160a01b039081166601000000000000026001600160d01b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c01b0264ffffffffff60c01b1963ffffffff909716600160a01b026001600160c01b031990961692909416919091179390931793909316179055517ff7b17693e830f8b239607e857ac81b076450829d544c053d533d1b278d18cd8990610d099083908690869065ffffffffffff9390931683526001600160a01b03918216602084015216604082015260600190565b60405180910390a1505050565b600254610100900460ff16610d3d5760405162461bcd60e51b81526004016104569061121b565b6103fe600254610100900460ff16610d675760405162461bcd60e51b81526004016104569061121b565b6103fe3361090f565b60008060408385031215610d8357600080fd5b82359150602083013560ff81168114610d9b57600080fd5b809150509250929050565b6000815180845260005b81811015610dcc57602081850181015186830182015201610db0565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610dff6020830184610da6565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215610e2e57600080fd5b813567ffffffffffffffff80821115610e4657600080fd5b818401915084601f830112610e5a57600080fd5b813581811115610e6c57610e6c610e06565b604051601f8201601f19908116603f01168101908382118183101715610e9457610e94610e06565b81604052828152876020848701011115610ead57600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215610edf57600080fd5b81356001600160d81b031981168114610dff57600080fd5b600060208284031215610f0957600080fd5b813563ffffffff81168114610dff57600080fd5b80356001600160a01b0381168114610f3457600080fd5b919050565b600080600060608486031215610f4e57600080fd5b610f5784610f1d565b9250610f6560208501610f1d565b9150610f7360408501610f1d565b90509250925092565b60008060408385031215610f8f57600080fd5b610f9883610f1d565b9150610fa660208401610f1d565b90509250929050565b600060208284031215610fc157600080fd5b813565ffffffffffff81168114610dff57600080fd5b600060208284031215610fe957600080fd5b5035919050565b60006020828403121561100257600080fd5b813564ffffffffff81168114610dff57600080fd5b60006020828403121561102957600080fd5b610dff82610f1d565b600181811c9082168061104657607f821691505b60208210810361106657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156110b657600081815260208120601f850160051c810160208610156110935750805b601f850160051c820191505b818110156110b25782815560010161109f565b5050505b505050565b815167ffffffffffffffff8111156110d5576110d5610e06565b6110e9816110e38454611032565b8461106c565b602080601f83116001811461111e57600084156111065750858301515b600019600386901b1c1916600185901b1785556110b2565b600085815260208120601f198616915b8281101561114d5788860151825594840194600190910190840161112e565b508582101561116b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156103ba576103ba6111df565b808201808211156103ba576103ba6111df565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b60608201526080019056fe6865792066726f6d2075706772616461626c6544656d6f202d2044656d6f2076312e312e30a2646970667358221220dd3906485b8d1a6a96de0b69535ed204563ec0453f6d7eec365eded080901ec064736f6c63430008130033496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069",
"bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"compiler": {
"evm_version": "istanbul",
"optimizer": {
"enabled": true,
"runs": 200
},
"version": "0.8.19+commit.7dd6d404"
},
"contractName": "DemoV111",
"coverageMap": {
"branches": {
"0": {
"OwnableUpgradeable._checkOwner": {
"48": [
1662,
1685,
true
]
},
"OwnableUpgradeable.transferOwnership": {
"47": [
2409,
2431,
true
]
}
},
"1": {
"OwnableUpgradeable.__Ownable_init": {
"46": [
5363,
5376,
true
]
}
},
"3": {},
"42": {},
"43": {},
"44": {},
"45": {},
"48": {
"Versionable._activate": {
"51": [
1217,
1242,
true
],
"52": [
1374,
1394,
false
],
"53": [
1502,
1527,
tru