UNPKG

hardhat-deploy

Version:

Hardhat Plugin For Replicable Deployments And Tests

1,113 lines (1,112 loc) 274 kB
{ "contractName": "ERC1967Proxy", "sourceName": "solc_0.8/openzeppelin/proxy/ERC1967/ERC1967Proxy.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_logic", "type": "address" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "stateMutability": "payable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x608060405260405161084e38038061084e83398101604081905261002291610349565b61004d60017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd610417565b600080516020610807833981519152146100695761006961043c565b6100758282600061007c565b50506104a1565b610085836100b2565b6000825111806100925750805b156100ad576100ab83836100f260201b6100291760201c565b505b505050565b6100bb8161011e565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606101178383604051806060016040528060278152602001610827602791396101de565b9392505050565b610131816102bc60201b6100551760201c565b6101985760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101bd60008051602061080783398151915260001b6102cb60201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b60606001600160a01b0384163b6102465760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161018f565b600080856001600160a01b0316856040516102619190610452565b600060405180830381855af49150503d806000811461029c576040519150601f19603f3d011682016040523d82523d6000602084013e6102a1565b606091505b5090925090506102b28282866102ce565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102dd575081610117565b8251156102ed5782518084602001fd5b8160405162461bcd60e51b815260040161018f919061046e565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610338578181015183820152602001610320565b838111156100ab5750506000910152565b6000806040838503121561035c57600080fd5b82516001600160a01b038116811461037357600080fd5b60208401519092506001600160401b038082111561039057600080fd5b818501915085601f8301126103a457600080fd5b8151818111156103b6576103b6610307565b604051601f8201601f19908116603f011681019083821181831017156103de576103de610307565b816040528281528860208487010111156103f757600080fd5b61040883602083016020880161031d565b80955050505050509250929050565b60008282101561043757634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b6000825161046481846020870161031d565b9190910192915050565b602081526000825180602084015261048d81604085016020870161031d565b601f01601f19169190910160400192915050565b610357806104b06000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102fb602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b606073ffffffffffffffffffffffffffffffffffffffff84163b610188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516101b0919061028d565b600060405180830381855af49150503d80600081146101eb576040519150601f19603f3d011682016040523d82523d6000602084013e6101f0565b606091505b509150915061020082828661020a565b9695505050505050565b6060831561021957508161004e565b8251156102295782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017f91906102a9565b60005b83811015610278578181015183820152602001610260565b83811115610287576000848401525b50505050565b6000825161029f81846020870161025d565b9190910192915050565b60208152600082518060208401526102c881604085016020870161025d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201e3c9348ed6dd2f363e89451207bd8df182bc878dc80d47166301a510c8801e964736f6c634300080a0033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", "deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102fb602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b606073ffffffffffffffffffffffffffffffffffffffff84163b610188576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516101b0919061028d565b600060405180830381855af49150503d80600081146101eb576040519150601f19603f3d011682016040523d82523d6000602084013e6101f0565b606091505b509150915061020082828661020a565b9695505050505050565b6060831561021957508161004e565b8251156102295782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161017f91906102a9565b60005b83811015610278578181015183820152602001610260565b83811115610287576000848401525b50505050565b6000825161029f81846020870161025d565b9190910192915050565b60208152600082518060208401526102c881604085016020870161025d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201e3c9348ed6dd2f363e89451207bd8df182bc878dc80d47166301a510c8801e964736f6c634300080a0033", "linkReferences": {}, "deployedLinkReferences": {}, "devdoc": { "details": "This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.", "kind": "dev", "methods": { "constructor": { "details": "Initializes the upgradeable proxy with an initial implementation specified by `_logic`. If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor." } }, "version": 1 }, "evm": { "bytecode": { "functionDebugData": { "@_155": { "entryPoint": null, "id": 155, "parameterSlots": 2, "returnSlots": 0 }, "@_setImplementation_224": { "entryPoint": 286, "id": 224, "parameterSlots": 1, "returnSlots": 0 }, "@_upgradeToAndCall_269": { "entryPoint": 124, "id": 269, "parameterSlots": 3, "returnSlots": 0 }, "@_upgradeTo_239": { "entryPoint": 178, "id": 239, "parameterSlots": 1, "returnSlots": 0 }, "@functionDelegateCall_1437": { "entryPoint": 242, "id": 1437, "parameterSlots": 2, "returnSlots": 1 }, "@functionDelegateCall_1472": { "entryPoint": 478, "id": 1472, "parameterSlots": 3, "returnSlots": 1 }, "@getAddressSlot_1552": { "entryPoint": 715, "id": 1552, "parameterSlots": 1, "returnSlots": 1 }, "@isContract_1227": { "entryPoint": 700, "id": 1227, "parameterSlots": 1, "returnSlots": 1 }, "@verifyCallResult_1503": { "entryPoint": 718, "id": 1503, "parameterSlots": 3, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory": { "entryPoint": 841, "id": null, "parameterSlots": 2, "returnSlots": 2 }, "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { "entryPoint": 1106, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": 1134, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_972b7028e8de0bff0d553b3264eba2312ec98a552add05e58853b313f9f4ac65__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_encode_tuple_t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520__to_t_string_memory_ptr__fromStack_reversed": { "entryPoint": null, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "checked_sub_t_uint256": { "entryPoint": 1047, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "copy_memory_to_memory": { "entryPoint": 797, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "panic_error_0x01": { "entryPoint": 1084, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x41": { "entryPoint": 775, "id": null, "parameterSlots": 0, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:3308:16", "statements": [ { "nodeType": "YulBlock", "src": "6:3:16", "statements": [] }, { "body": { "nodeType": "YulBlock", "src": "46:95:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "63:1:16", "type": "", "value": "0" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "70:3:16", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", "src": "75:10:16", "type": "", "value": "0x4e487b71" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "66:3:16" }, "nodeType": "YulFunctionCall", "src": "66:20:16" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "56:6:16" }, "nodeType": "YulFunctionCall", "src": "56:31:16" }, "nodeType": "YulExpressionStatement", "src": "56:31:16" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "103:1:16", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "106:4:16", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "96:6:16" }, "nodeType": "YulFunctionCall", "src": "96:15:16" }, "nodeType": "YulExpressionStatement", "src": "96:15:16" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "127:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "130:4:16", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "120:6:16" }, "nodeType": "YulFunctionCall", "src": "120:15:16" }, "nodeType": "YulExpressionStatement", "src": "120:15:16" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "14:127:16" }, { "body": { "nodeType": "YulBlock", "src": "199:205:16", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "209:10:16", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "218:1:16", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "213:1:16", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "278:63:16", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "303:3:16" }, { "name": "i", "nodeType": "YulIdentifier", "src": "308:1:16" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "299:3:16" }, "nodeType": "YulFunctionCall", "src": "299:11:16" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "322:3:16" }, { "name": "i", "nodeType": "YulIdentifier", "src": "327:1:16" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "318:3:16" }, "nodeType": "YulFunctionCall", "src": "318:11:16" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "312:5:16" }, "nodeType": "YulFunctionCall", "src": "312:18:16" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "292:6:16" }, "nodeType": "YulFunctionCall", "src": "292:39:16" }, "nodeType": "YulExpressionStatement", "src": "292:39:16" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "239:1:16" }, { "name": "length", "nodeType": "YulIdentifier", "src": "242:6:16" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "236:2:16" }, "nodeType": "YulFunctionCall", "src": "236:13:16" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "250:19:16", "statements": [ { "nodeType": "YulAssignment", "src": "252:15:16", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "261:1:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "264:2:16", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "257:3:16" }, "nodeType": "YulFunctionCall", "src": "257:10:16" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "252:1:16" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "232:3:16", "statements": [] }, "src": "228:113:16" }, { "body": { "nodeType": "YulBlock", "src": "367:31:16", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "380:3:16" }, { "name": "length", "nodeType": "YulIdentifier", "src": "385:6:16" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "376:3:16" }, "nodeType": "YulFunctionCall", "src": "376:16:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "394:1:16", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "369:6:16" }, "nodeType": "YulFunctionCall", "src": "369:27:16" }, "nodeType": "YulExpressionStatement", "src": "369:27:16" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "356:1:16" }, { "name": "length", "nodeType": "YulIdentifier", "src": "359:6:16" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "353:2:16" }, "nodeType": "YulFunctionCall", "src": "353:13:16" }, "nodeType": "YulIf", "src": "350:48:16" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "177:3:16", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "182:3:16", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "187:6:16", "type": "" } ], "src": "146:258:16" }, { "body": { "nodeType": "YulBlock", "src": "516:943:16", "statements": [ { "body": { "nodeType": "YulBlock", "src": "562:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "571:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "574:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "564:6:16" }, "nodeType": "YulFunctionCall", "src": "564:12:16" }, "nodeType": "YulExpressionStatement", "src": "564:12:16" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "537:7:16" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "546:9:16" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "533:3:16" }, "nodeType": "YulFunctionCall", "src": "533:23:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "558:2:16", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "529:3:16" }, "nodeType": "YulFunctionCall", "src": "529:32:16" }, "nodeType": "YulIf", "src": "526:52:16" }, { "nodeType": "YulVariableDeclaration", "src": "587:29:16", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "606:9:16" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "600:5:16" }, "nodeType": "YulFunctionCall", "src": "600:16:16" }, "variables": [ { "name": "value", "nodeType": "YulTypedName", "src": "591:5:16", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "679:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "688:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "691:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "681:6:16" }, "nodeType": "YulFunctionCall", "src": "681:12:16" }, "nodeType": "YulExpressionStatement", "src": "681:12:16" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "638:5:16" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "649:5:16" }, { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "664:3:16", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", "src": "669:1:16", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "660:3:16" }, "nodeType": "YulFunctionCall", "src": "660:11:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "673:1:16", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "656:3:16" }, "nodeType": "YulFunctionCall", "src": "656:19:16" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "645:3:16" }, "nodeType": "YulFunctionCall", "src": "645:31:16" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "635:2:16" }, "nodeType": "YulFunctionCall", "src": "635:42:16" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "628:6:16" }, "nodeType": "YulFunctionCall", "src": "628:50:16" }, "nodeType": "YulIf", "src": "625:70:16" }, { "nodeType": "YulAssignment", "src": "704:15:16", "value": { "name": "value", "nodeType": "YulIdentifier", "src": "714:5:16" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "704:6:16" } ] }, { "nodeType": "YulVariableDeclaration", "src": "728:39:16", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "752:9:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "763:2:16", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "748:3:16" }, "nodeType": "YulFunctionCall", "src": "748:18:16" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "742:5:16" }, "nodeType": "YulFunctionCall", "src": "742:25:16" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "732:6:16", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", "src": "776:28:16", "value": { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "794:2:16", "type": "", "value": "64" }, { "kind": "number", "nodeType": "YulLiteral", "src": "798:1:16", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "790:3:16" }, "nodeType": "YulFunctionCall", "src": "790:10:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "802:1:16", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "786:3:16" }, "nodeType": "YulFunctionCall", "src": "786:18:16" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", "src": "780:2:16", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "831:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "840:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "843:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "833:6:16" }, "nodeType": "YulFunctionCall", "src": "833:12:16" }, "nodeType": "YulExpressionStatement", "src": "833:12:16" } ] }, "condition": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "819:6:16" }, { "name": "_1", "nodeType": "YulIdentifier", "src": "827:2:16" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "816:2:16" }, "nodeType": "YulFunctionCall", "src": "816:14:16" }, "nodeType": "YulIf", "src": "813:34:16" }, { "nodeType": "YulVariableDeclaration", "src": "856:32:16", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "870:9:16" }, { "name": "offset", "nodeType": "YulIdentifier", "src": "881:6:16" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "866:3:16" }, "nodeType": "YulFunctionCall", "src": "866:22:16" }, "variables": [ { "name": "_2", "nodeType": "YulTypedName", "src": "860:2:16", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "936:16:16", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "945:1:16", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "948:1:16", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "938:6:16" }, "nodeType": "YulFunctionCall", "src": "938:12:16" }, "nodeType": "YulExpressionStatement", "src": "938:12:16" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "_2", "nodeType": "YulIdentifier", "src": "915:2:16" }, { "kind": "number", "nodeType": "YulLiteral", "src": "919:4:16", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "911:3:16" }, "nodeType": "YulFunctionCall", "src": "911:13:16" }, { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "926:7:16" } ], "functionName": { "name": "slt",