UNPKG

@etherisc/registry-contracts

Version:

Etherisc's smart contracts for the registry.

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