hardhat-deploy
Version:
Hardhat Plugin For Replicable Deployments And Tests
1,113 lines (1,112 loc) • 274 kB
JSON
{
"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",