UNPKG

hardhat-deploy

Version:

Hardhat Plugin For Replicable Deployments And Tests

943 lines 175 kB
{ "contractName": "UpgradeableBeacon", "sourceName": "solc_0.8/openzeppelin/proxy/beacon/UpgradeableBeacon.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "implementation_", "type": "address" }, { "internalType": "address", "name": "initialOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "implementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b5060405161072e38038061072e83398101604081905261002f91610170565b806100398161004a565b506100438261009a565b50506101a3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6100ad8161014560201b61038d1760201c565b6101235760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03163b151590565b80516001600160a01b038116811461016b57600080fd5b919050565b6000806040838503121561018357600080fd5b61018c83610154565b915061019a60208401610154565b90509250929050565b61057c806101b26000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c8063715018a611610050578063715018a6146100c45780638da5cb5b146100cc578063f2fde38b146100ea57600080fd5b80633659cfe61461006c5780635c60da1b14610081575b600080fd5b61007f61007a366004610509565b6100fd565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6101d0565b60005473ffffffffffffffffffffffffffffffffffffffff1661009b565b61007f6100f8366004610509565b61025d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61018c816103a9565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161017a565b61025b6000610494565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161017a565b73ffffffffffffffffffffffffffffffffffffffff8116610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161017a565b61038a81610494565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff81163b61044d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840161017a565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561051b57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461053f57600080fd5b939250505056fea2646970667358221220b869e7d8d8cb8b2b781046fe11187e41a3435b96fb1bee6210683d06a0d93b1464736f6c634300080a0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c8063715018a611610050578063715018a6146100c45780638da5cb5b146100cc578063f2fde38b146100ea57600080fd5b80633659cfe61461006c5780635c60da1b14610081575b600080fd5b61007f61007a366004610509565b6100fd565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b61007f6101d0565b60005473ffffffffffffffffffffffffffffffffffffffff1661009b565b61007f6100f8366004610509565b61025d565b60005473ffffffffffffffffffffffffffffffffffffffff163314610183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b61018c816103a9565b60405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60005473ffffffffffffffffffffffffffffffffffffffff163314610251576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161017a565b61025b6000610494565b565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161017a565b73ffffffffffffffffffffffffffffffffffffffff8116610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161017a565b61038a81610494565b50565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b73ffffffffffffffffffffffffffffffffffffffff81163b61044d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840161017a565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006020828403121561051b57600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461053f57600080fd5b939250505056fea2646970667358221220b869e7d8d8cb8b2b781046fe11187e41a3435b96fb1bee6210683d06a0d93b1464736f6c634300080a0033", "linkReferences": {}, "deployedLinkReferences": {}, "devdoc": { "details": "This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their implementation contract, which is where they will delegate all function calls. An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.", "events": { "Upgraded(address)": { "details": "Emitted when the implementation returned by the beacon is changed." } }, "kind": "dev", "methods": { "constructor": { "details": "Sets the address of the initial implementation, and the deployer account as the owner who can upgrade the beacon." }, "implementation()": { "details": "Returns the current implementation address." }, "owner()": { "details": "Returns the address of the current owner." }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." }, "upgradeTo(address)": { "details": "Upgrades the beacon to a new implementation. Emits an {Upgraded} event. Requirements: - msg.sender must be the owner of the contract. - `newImplementation` must be a contract." } }, "version": 1 }, "evm": { "bytecode": { "functionDebugData": { "@_24": { "entryPoint": null, "id": 24, "parameterSlots": 1, "returnSlots": 0 }, "@_663": { "entryPoint": null, "id": 663, "parameterSlots": 2, "returnSlots": 0 }, "@_setImplementation_709": { "entryPoint": 154, "id": 709, "parameterSlots": 1, "returnSlots": 0 }, "@_transferOwnership_104": { "entryPoint": 74, "id": 104, "parameterSlots": 1, "returnSlots": 0 }, "@isContract_1227": { "entryPoint": 325, "id": 1227, "parameterSlots": 1, "returnSlots": 1 }, "abi_decode_address_fromMemory": { "entryPoint": 340, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_address_fromMemory": { "entryPoint": 368, "id": null, "parameterSlots": 2, "returnSlots": 2 }, "abi_encode_tuple_t_stringliteral_5ccca6b0666a32006e874c0f8fc30910124098b6e8e91ea2ea1baa45ce41f1e6__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, "returnSlots": 1 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:911:16", "statements": [ { "nodeType": "YulBlock", "src": "6:3:16", "statements": [] }, { "body": { "nodeType": "YulBlock", "src": "74:117:16", "statements": [ { "nodeType": "YulAssignment", "src": "84:22:16", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "99:6:16" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "93:5:16" }, "nodeType": "YulFunctionCall", "src": "93:13:16" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "84:5:16" } ] }, { "body": { "nodeType": "YulBlock", "src": "169:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "178:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "181:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "171:6:16" }, "nodeType": "YulFunctionCall", "src": "171:12:16" }, "nodeType": "YulExpressionStatement", "src": "171:12:16" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "128:5:16" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "139:5:16" }, { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "154:3:16", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", "src": "159:1:16", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "150:3:16" }, "nodeType": "YulFunctionCall", "src": "150:11:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "163:1:16", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "146:3:16" }, "nodeType": "YulFunctionCall", "src": "146:19:16" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "135:3:16" }, "nodeType": "YulFunctionCall", "src": "135:31:16" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "125:2:16" }, "nodeType": "YulFunctionCall", "src": "125:42:16" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "118:6:16" }, "nodeType": "YulFunctionCall", "src": "118:50:16" }, "nodeType": "YulIf", "src": "115:70:16" } ] }, "name": "abi_decode_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "53:6:16", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "64:5:16", "type": "" } ], "src": "14:177:16" }, { "body": { "nodeType": "YulBlock", "src": "294:195:16", "statements": [ { "body": { "nodeType": "YulBlock", "src": "340:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "349:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "352:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "342:6:16" }, "nodeType": "YulFunctionCall", "src": "342:12:16" }, "nodeType": "YulExpressionStatement", "src": "342:12:16" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "315:7:16" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "324:9:16" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "311:3:16" }, "nodeType": "YulFunctionCall", "src": "311:23:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "336:2:16", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "307:3:16" }, "nodeType": "YulFunctionCall", "src": "307:32:16" }, "nodeType": "YulIf", "src": "304:52:16" }, { "nodeType": "YulAssignment", "src": "365:50:16", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "405:9:16" } ], "functionName": { "name": "abi_decode_address_fromMemory", "nodeType": "YulIdentifier", "src": "375:29:16" }, "nodeType": "YulFunctionCall", "src": "375:40:16" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "365:6:16" } ] }, { "nodeType": "YulAssignment", "src": "424:59:16", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "468:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "479:2:16", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "464:3:16" }, "nodeType": "YulFunctionCall", "src": "464:18:16" } ], "functionName": { "name": "abi_decode_address_fromMemory", "nodeType": "YulIdentifier", "src": "434:29:16" }, "nodeType": "YulFunctionCall", "src": "434:49:16" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "424:6:16" } ] } ] }, "name": "abi_decode_tuple_t_addresst_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "252:9:16", "type": "" }, { "name": "dataEnd", "nodeType": "YulTypedName", "src": "263:7:16", "type": "" } ], "returnVariables": [ { "name": "value0", "nodeType": "YulTypedName", "src": "275:6:16", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", "src": "283:6:16", "type": "" } ], "src": "196:293:16" }, { "body": { "nodeType": "YulBlock", "src": "668:241:16", "statements": [ { "expression": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "685:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "696:2:16", "type": "", "value": "32" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "678:6:16" }, "nodeType": "YulFunctionCall", "src": "678:21:16" }, "nodeType": "YulExpressionStatement", "src": "678:21:16" }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "719:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "730:2:16", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "715:3:16" }, "nodeType": "YulFunctionCall", "src": "715:18:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "735:2:16", "type": "", "value": "51" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "708:6:16" }, "nodeType": "YulFunctionCall", "src": "708:30:16" }, "nodeType": "YulExpressionStatement", "src": "708:30:16" }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "758:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "769:2:16", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "754:3:16" }, "nodeType": "YulFunctionCall", "src": "754:18:16" }, { "hexValue": "5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f", "kind": "string", "nodeType": "YulLiteral", "src": "774:34:16", "type": "", "value": "UpgradeableBeacon: implementatio" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "747:6:16" }, "nodeType": "YulFunctionCall", "src": "747:62:16" }, "nodeType": "YulExpressionStatement", "src": "747:62:16" }, { "expression": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "829:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "840:2:16", "type": "", "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "825:3:16" }, "nodeType": "YulFunctionCall", "src": "825:18:16" }, { "hexValue": "6e206973206e6f74206120636f6e7472616374", "kind": "string", "nodeType": "YulLiteral", "src": "845:21:16", "type": "", "value": "n is not a contract" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "818:6:16" }, "nodeType": "YulFunctionCall", "src": "818:49:16" }, "nodeType": "YulExpressionStatement", "src": "818:49:16" }, { "nodeType": "YulAssignment", "src": "876:27:16", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "888:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "899:3:16", "type": "", "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "884:3:16" }, "nodeType": "YulFunctionCall", "src": "884:19:16" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", "src": "876:4:16" } ] } ] }, "name": "abi_encode_tuple_t_stringliteral_5ccca6b0666a32006e874c0f8fc30910124098b6e8e91ea2ea1baa45ce41f1e6__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", "src": "645:9:16", "type": "" } ], "returnVariables": [ { "name": "tail", "nodeType": "YulTypedName", "src": "659:4:16", "type": "" } ], "src": "494:415:16" } ] }, "contents": "{\n { }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_address_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address_fromMemory(headStart)\n value1 := abi_decode_address_fromMemory(add(headStart, 32))\n }\n function abi_encode_tuple_t_stringliteral_5ccca6b0666a32006e874c0f8fc30910124098b6e8e91ea2ea1baa45ce41f1e6__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 51)\n mstore(add(headStart, 64), \"UpgradeableBeacon: implementatio\")\n mstore(add(headStart, 96), \"n is not a contract\")\n tail := add(headStart, 128)\n }\n}", "id": 16, "language": "Yul", "name": "#utility.yul" } ], "linkReferences": {}, "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x72E CODESIZE SUB DUP1 PUSH2 0x72E DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x170 JUMP JUMPDEST DUP1 PUSH2 0x39 DUP2 PUSH2 0x4A JUMP JUMPDEST POP PUSH2 0x43 DUP3 PUSH2 0x9A JUMP JUMPDEST POP POP PUSH2 0x1A3 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH2 0xAD DUP2 PUSH2 0x145 PUSH1 0x20 SHL PUSH2 0x38D OR PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x123 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5570677261646561626C65426561636F6E3A20696D706C656D656E746174696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E206973206E6F74206120636F6E747261637400000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x183 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x18C DUP4 PUSH2 0x154 JUMP JUMPDEST SWAP2 POP PUSH2 0x19A PUSH1 0x20 DUP5 ADD PUSH2 0x154 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x57C DUP1 PUSH2 0x1B2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x67 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x715018A6 GT PUSH2 0x50 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0xC4 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xCC JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0xEA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3659CFE6 EQ PUSH2 0x6C JUMPI DUP1 PUSH4 0x5C60DA1B EQ PUSH2 0x81 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7F PUSH2 0x7A CALLDATASIZE PUSH1 0x4 PUSH2 0x509 JUMP JUMPDEST PUSH2 0xFD JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7F PUSH2 0x1D0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x9B JUMP JUMPDEST PUSH2 0x7F PUSH2 0xF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x509 JUMP JUMPDEST PUSH2 0x25D JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x183 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x18C DUP2 PUSH2 0x3A9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 PUSH32 0xBC7CD75A20EE27FD9ADEBAB32041F755214DBC6BFFA90CC0225B39DA2E5C2D3B SWAP1 PUSH1 0x0 SWAP1 LOG2 POP JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x251 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17A JUMP JUMPDEST PUSH2 0x25B PUSH1 0x0 PUSH2 0x494 JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER EQ PUSH2 0x2DE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A2063616C6C6572206973206E6F7420746865206F776E6572 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17A JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND PUSH2 0x381 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x26 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F776E61626C653A206E6577206F776E657220697320746865207A65726F2061 PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x17A JUMP JUMPDEST PUSH2 0x38A DUP2 PUSH2 0x494 JUMP JUMPDEST POP JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND EXTCODESIZE PUSH2 0x44D JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x33 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5570677261646561626C65426561636F6E3A20696D706C656D656E746174696F PUSH1 0x44 DUP3 ADD MSTORE PUSH32 0x6E206973206E6F74206120636F6E747261637400000000000000000000000000 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x17A JUMP JUMPDEST PUSH1 0x1 DUP1 SLOAD PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 AND PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000000000000000 DUP4 AND DUP2 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP2 SWAP1 SWAP3 AND SWAP3 DUP4 SWAP2 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP2 SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x51B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x53F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 PUSH10 0xE7D8D8CB8B2B781046FE GT XOR PUSH31 0x41A3435B96FB1BEE6210683D06A0D93B1464736F6C634300080A0033000000 ", "sourceMap": "543:1541:7:-:0;;;932:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;999:12;942:32:0;999:12:7;942:18:0;:32::i;:::-;-1:-1:-1;1023:35:7::1;1042:15:::0;1023:18:::1;:35::i;:::-;932:133:::0;;543:1541;;2291:187:0;2364:16;2383:6;;-1:-1:-1;;;;;2399:17:0;;;-1:-1:-1;;;;;;2399:17:0;;;;;;2431:40;;2383:6;;;;;;;2431:40;;2364:16;2431:40;2354:124;2291:187;:::o;1856:226:7:-;1937:37;1956:17;1937:18;;;;;:37;;:::i;:::-;1929:101;;;;-1:-1:-1;;;1929:101:7;;696:2:16;1929:101:7;;;678:21:16;735:2;715:18;;;708:30;774:34;754:18;;;747:62;845:21;825:18;;;818:49;884:19;;1929:101:7;;;;;;;;2040:15;:35;;-1:-1:-1;;;;;;2040:35:7;-1:-1:-1;;;;;2040:35:7;;;;;;;;;;1856:226::o;1180:320:12:-;-1:-1:-1;;;;;1470:19:12;;:23;;;1180:320::o;14:177:16:-;93:13;;-1:-1:-1;;;;;135:31:16;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:293::-;275:6;283;336:2;324:9;315:7;311:23;307:32;304:52;;;352:1;349;342:12;304:52;375:40;405:9;375:40;:::i;:::-;365:50;;434:49;479:2;468:9;464:18;434:49;:::i;:::-;424:59;;196:293;;;;;:::o;494:415::-;543:1541:7;;;;;;" }, "deployedBytecode": { "functionDebugData": { "@_msgSender_1516": { "entryPoint": null, "id": 1516, "parameterSlots": 0, "returnSlots": 1 }, "@_setImplementation_709": { "entryPoint": 937, "id": 709, "parameterSlots": 1, "returnSlots": 0 }, "@_transferOwnership_104": { "entryPoint": 1172, "id": 104, "parameterSlots": 1, "returnSlots": 0 }, "@implementation_673": { "entryPoint": null, "id": 673, "parameterSlots": 0, "returnSlots": 1 }, "@isContract_1227": { "entryPoint": 909, "id": 1227, "parameterSlots": 1, "returnSlots": 1 }, "@owner_33": { "entryPoint": null, "id": 33, "parameterSlots": 0, "returnSlots": 1 }, "@renounceOwnership_61": { "entryPoint": 464, "id": 61, "parameterSlots": 0, "returnSlots": 0 }, "@transferOwnership_84": { "entryPoint": 605, "id": 84, "parameterSlots": 1, "returnSlots": 0 }, "@upgradeTo_690": { "entryPoint": 253, "id": 690, "parameterSlots": 1, "returnSlots": 0 }, "abi_decode_tuple_t_address": { "entryPoint": 1289, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_5ccca6b0666a32006e874c0f8fc30910124098b6e8e91ea2ea1baa45ce41f1e6__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, "returnSlots": 1 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1744:16", "statements": [ { "nodeType": "YulBlock", "src": "6:3:16", "statements": [] }, { "body": { "nodeType": "YulBlock", "src": "84:239:16", "statements": [ { "body": { "nodeType": "YulBlock", "src": "130:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "139:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "142:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulI