hardhat-deploy
Version:
Hardhat Plugin For Replicable Deployments And Tests
1,087 lines (1,086 loc) • 308 kB
JSON
{
"contractName": "BeaconProxy",
"sourceName": "solc_0.8/openzeppelin/proxy/beacon/BeaconProxy.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "beacon",
"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": "0x608060405260405162000a9338038062000a938339810160408190526200002691620004c6565b6200005360017fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5162000594565b60008051602062000a4c83398151915214620000735762000073620005ba565b620000818282600062000089565b505062000641565b62000094836200015e565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a2600082511180620000d65750805b15620001595762000157836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200011f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001459190620005d0565b83620002ff60201b620000291760201c565b505b505050565b62000174816200032e60201b620000551760201c565b620001d45760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6200024e816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d9190620005d0565b6200032e60201b620000551760201c565b620002b55760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401620001cb565b80620002de60008051602062000a4c83398151915260001b6200033d60201b620000711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b606062000327838360405180606001604052806027815260200162000a6c6027913962000340565b9392505050565b6001600160a01b03163b151590565b90565b60606001600160a01b0384163b620003aa5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001cb565b600080856001600160a01b031685604051620003c79190620005ee565b600060405180830381855af49150503d806000811462000404576040519150601f19603f3d011682016040523d82523d6000602084013e62000409565b606091505b5090925090506200041c82828662000426565b9695505050505050565b606083156200043757508162000327565b825115620004485782518084602001fd5b8160405162461bcd60e51b8152600401620001cb91906200060c565b80516001600160a01b03811681146200047c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004b45781810151838201526020016200049a565b83811115620001575750506000910152565b60008060408385031215620004da57600080fd5b620004e58362000464565b60208401519092506001600160401b03808211156200050357600080fd5b818501915085601f8301126200051857600080fd5b8151818111156200052d576200052d62000481565b604051601f8201601f19908116603f0116810190838211818310171562000558576200055862000481565b816040528281528860208487010111156200057257600080fd5b6200058583602083016020880162000497565b80955050505050509250929050565b600082821015620005b557634e487b7160e01b600052601160045260246000fd5b500390565b634e487b7160e01b600052600160045260246000fd5b600060208284031215620005e357600080fd5b620003278262000464565b600082516200060281846020870162000497565b9190910192915050565b60208152600082518060208401526200062d81604085016020870162000497565b601f01601f19169190910160400192915050565b6103fb80620006516000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b610127565b565b606061004e838360405180606001604052806027815260200161039f6027913961014b565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d505473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906102cb565b905090565b3660008037600080366000845af43d6000803e808015610146573d6000f35b3d6000fd5b606073ffffffffffffffffffffffffffffffffffffffff84163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161021e9190610331565b600060405180830381855af49150503d8060008114610259576040519150601f19603f3d011682016040523d82523d6000602084013e61025e565b606091505b509150915061026e828286610278565b9695505050505050565b6060831561028757508161004e565b8251156102975782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061034d565b6000602082840312156102dd57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461004e57600080fd5b60005b8381101561031c578181015183820152602001610304565b8381111561032b576000848401525b50505050565b60008251610343818460208701610301565b9190910192915050565b602081526000825180602084015261036c816040850160208701610301565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220744bcc0768461f75b2be5663808bceb137cf5b1106770132a21a570e5decafc064736f6c634300080a0033a3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564",
"deployedBytecode": "0x60806040523661001357610011610017565b005b6100115b610027610022610074565b610127565b565b606061004e838360405180606001604052806027815260200161039f6027913961014b565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d505473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061012291906102cb565b905090565b3660008037600080366000845af43d6000803e808015610146573d6000f35b3d6000fd5b606073ffffffffffffffffffffffffffffffffffffffff84163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168560405161021e9190610331565b600060405180830381855af49150503d8060008114610259576040519150601f19603f3d011682016040523d82523d6000602084013e61025e565b606091505b509150915061026e828286610278565b9695505050505050565b6060831561028757508161004e565b8251156102975782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed919061034d565b6000602082840312156102dd57600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461004e57600080fd5b60005b8381101561031c578181015183820152602001610304565b8381111561032b576000848401525b50505050565b60008251610343818460208701610301565b9190910192915050565b602081526000825180602084015261036c816040850160208701610301565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220744bcc0768461f75b2be5663808bceb137cf5b1106770132a21a570e5decafc064736f6c634300080a0033",
"linkReferences": {},
"deployedLinkReferences": {},
"devdoc": {
"details": "This contract implements a proxy that gets the implementation address for each call from a {UpgradeableBeacon}. The beacon address is stored in storage slot `uint256(keccak256('eip1967.proxy.beacon')) - 1`, so that it doesn't conflict with the storage layout of the implementation behind the proxy. _Available since v3.4._",
"kind": "dev",
"methods": {
"constructor": {
"details": "Initializes the proxy with `beacon`. If `data` is nonempty, it's used as data in a delegate call to the implementation returned by the beacon. This will typically be an encoded function call, and allows initializating the storage of the proxy like a Solidity constructor. Requirements: - `beacon` must be a contract with the interface {IBeacon}."
}
},
"version": 1
},
"evm": {
"bytecode": {
"functionDebugData": {
"@_579": {
"entryPoint": null,
"id": 579,
"parameterSlots": 2,
"returnSlots": 0
},
"@_setBeacon_447": {
"entryPoint": 350,
"id": 447,
"parameterSlots": 1,
"returnSlots": 0
},
"@_upgradeBeaconToAndCall_485": {
"entryPoint": 137,
"id": 485,
"parameterSlots": 3,
"returnSlots": 0
},
"@functionDelegateCall_1437": {
"entryPoint": 767,
"id": 1437,
"parameterSlots": 2,
"returnSlots": 1
},
"@functionDelegateCall_1472": {
"entryPoint": 832,
"id": 1472,
"parameterSlots": 3,
"returnSlots": 1
},
"@getAddressSlot_1552": {
"entryPoint": 829,
"id": 1552,
"parameterSlots": 1,
"returnSlots": 1
},
"@isContract_1227": {
"entryPoint": 814,
"id": 1227,
"parameterSlots": 1,
"returnSlots": 1
},
"@verifyCallResult_1503": {
"entryPoint": 1062,
"id": 1503,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_address_fromMemory": {
"entryPoint": 1124,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_tuple_t_address_fromMemory": {
"entryPoint": 1488,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_bytes_memory_ptr_fromMemory": {
"entryPoint": 1222,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 1518,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1548,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_9589b7809634e4928033de18bb696e9af4ef71b703652af5245f2dbebf2f4470__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
},
"abi_encode_tuple_t_stringliteral_f95fd1f5b5578816eb23f6ca0f2439b4b5e4094dc16e99c3b8e91603a83f93c8__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 1428,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1175,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"panic_error_0x01": {
"entryPoint": 1466,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1153,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4030: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": "228:95:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "245:1:16",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "252:3:16",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "257:10:16",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "248:3:16"
},
"nodeType": "YulFunctionCall",
"src": "248:20:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "238:6:16"
},
"nodeType": "YulFunctionCall",
"src": "238:31:16"
},
"nodeType": "YulExpressionStatement",
"src": "238:31:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "285:1:16",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "288:4:16",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "278:6:16"
},
"nodeType": "YulFunctionCall",
"src": "278:15:16"
},
"nodeType": "YulExpressionStatement",
"src": "278:15:16"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "309:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "312:4:16",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "302:6:16"
},
"nodeType": "YulFunctionCall",
"src": "302:15:16"
},
"nodeType": "YulExpressionStatement",
"src": "302:15:16"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "196:127:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "381:205:16",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "391:10:16",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "400:1:16",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "395:1:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "460:63:16",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "485:3:16"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "490:1:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "481:3:16"
},
"nodeType": "YulFunctionCall",
"src": "481:11:16"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "504:3:16"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "509:1:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "500:3:16"
},
"nodeType": "YulFunctionCall",
"src": "500:11:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "494:5:16"
},
"nodeType": "YulFunctionCall",
"src": "494:18:16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "474:6:16"
},
"nodeType": "YulFunctionCall",
"src": "474:39:16"
},
"nodeType": "YulExpressionStatement",
"src": "474:39:16"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "421:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "424:6:16"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "418:2:16"
},
"nodeType": "YulFunctionCall",
"src": "418:13:16"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "432:19:16",
"statements": [
{
"nodeType": "YulAssignment",
"src": "434:15:16",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "443:1:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "446:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "439:3:16"
},
"nodeType": "YulFunctionCall",
"src": "439:10:16"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "434:1:16"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "414:3:16",
"statements": []
},
"src": "410:113:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "549:31:16",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "562:3:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "567:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "558:3:16"
},
"nodeType": "YulFunctionCall",
"src": "558:16:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "551:6:16"
},
"nodeType": "YulFunctionCall",
"src": "551:27:16"
},
"nodeType": "YulExpressionStatement",
"src": "551:27:16"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "538:1:16"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "541:6:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "535:2:16"
},
"nodeType": "YulFunctionCall",
"src": "535:13:16"
},
"nodeType": "YulIf",
"src": "532:48:16"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "359:3:16",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "364:3:16",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "369:6:16",
"type": ""
}
],
"src": "328:258:16"
},
{
"body": {
"nodeType": "YulBlock",
"src": "698:861:16",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "744:16:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "753:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "756:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "746:6:16"
},
"nodeType": "YulFunctionCall",
"src": "746:12:16"
},
"nodeType": "YulExpressionStatement",
"src": "746:12:16"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "719:7:16"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "728:9:16"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "715:3:16"
},
"nodeType": "YulFunctionCall",
"src": "715:23:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "740:2:16",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "711:3:16"
},
"nodeType": "YulFunctionCall",
"src": "711:32:16"
},
"nodeType": "YulIf",
"src": "708:52:16"
},
{
"nodeType": "YulAssignment",
"src": "769:50:16",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "809:9:16"
}
],
"functionName": {
"name": "abi_decode_address_fromMemory",
"nodeType": "YulIdentifier",
"src": "779:29:16"
},
"nodeType": "YulFunctionCall",
"src": "779:40:16"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "769:6:16"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "828:39:16",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "852:9:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "863:2:16",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "848:3:16"
},
"nodeType": "YulFunctionCall",
"src": "848:18:16"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "842:5:16"
},
"nodeType": "YulFunctionCall",
"src": "842:25:16"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "832:6:16",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "876:28:16",
"value": {
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "894:2:16",
"type": "",
"value": "64"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "898:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "890:3:16"
},
"nodeType": "YulFunctionCall",
"src": "890:10:16"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "902:1:16",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "886:3:16"
},
"nodeType": "YulFunctionCall",
"src": "886:18:16"
},
"variables": [
{
"name": "_1",
"nodeType": "YulTypedName",
"src": "880:2:16",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "931:16:16",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "940:1:16",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "943:1:16",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "933:6:16"
},
"nodeType": "YulFunctionCall",
"src": "933:12:16"
},
"nodeType": "YulExpressionStatement",
"src": "933:12:16"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "919:6:16"
},
{
"name": "_1",
"nodeType": "YulIdentifier",
"src": "927:2:16"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "916:2:16"
},
"nodeType": "YulFunctionCall",
"src": "916:14:16"
},
"nodeType": "YulIf",
"src": "913:34:16"
},
{
"nodeType": "YulVariableDeclaration",
"src": "956:32:16",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "970:9:16"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "981:6:16"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "966:3:16"
},
"nodeType": "YulFunctionCall",
"src": "966:22:16"
},
"variables": [
{
"name": "_2",
"nodeType": "YulTypedName",
"src": "960:2:16",