UNPKG

@etherisc/registry-contracts

Version:

Etherisc's smart contracts for the registry.

1,230 lines 414 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "Version", "name": "version", "type": "uint48" }, { "indexed": false, "internalType": "address", "name": "implementation", "type": "address" }, { "indexed": false, "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "LogVersionableActivated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "newOwner", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" } ], "name": "activateAndSetOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "blockNumber", "outputs": [ { "internalType": "Blocknumber", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "idx", "type": "uint256" } ], "name": "getVersion", "outputs": [ { "internalType": "Version", "name": "", "type": "uint48" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "getVersionInfo", "outputs": [ { "components": [ { "internalType": "Version", "name": "version", "type": "uint48" }, { "internalType": "address", "name": "implementation", "type": "address" }, { "internalType": "address", "name": "activatedBy", "type": "address" }, { "internalType": "Blocknumber", "name": "activatedIn", "type": "uint32" }, { "internalType": "Timestamp", "name": "activatedAt", "type": "uint40" } ], "internalType": "struct IVersionable.VersionInfo", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "x", "type": "uint256" }, { "internalType": "uint8", "name": "shift", "type": "uint8" } ], "name": "intToBytes", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "Version", "name": "_version", "type": "uint48" } ], "name": "isActivated", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "message", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "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