UNPKG

@0xged/hardhat-deploy

Version:

Hardhat Plugin For Replicable Deployments And Tests

1,037 lines (1,036 loc) 235 kB
{ "contractName": "EIP173ProxyWithReceive", "sourceName": "solc_0.8/proxy/EIP173ProxyWithReceive.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "implementationAddress", "type": "address" }, { "internalType": "address", "name": "ownerAddress", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "stateMutability": "payable", "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": "previousImplementation", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "ProxyImplementationUpdated", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "id", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ], "bytecode": "0x608060405260405162000c7238038062000c72833981016040819052620000269162000202565b8282826200003583826200004c565b62000040826200012e565b50505050505062000300565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511562000129576000836001600160a01b031683604051620000d09190620002e2565b600060405180830381855af49150503d80600081146200010d576040519150601f19603f3d011682016040523d82523d6000602084013e62000112565b606091505b505090508062000127573d806000803e806000fd5b505b505050565b60006200014860008051602062000c528339815191525490565b90508160008051602062000c5283398151915255816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80516001600160a01b0381168114620001b857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620001f0578181015183820152602001620001d6565b83811115620001275750506000910152565b6000806000606084860312156200021857600080fd5b6200022384620001a0565b92506200023360208501620001a0565b60408501519092506001600160401b03808211156200025157600080fd5b818601915086601f8301126200026657600080fd5b8151818111156200027b576200027b620001bd565b604051601f8201601f19908116603f01168101908382118183101715620002a657620002a6620001bd565b81604052828152896020848701011115620002c057600080fd5b620002d3836020830160208801620001d3565b80955050505050509250925092565b60008251620002f6818460208701620001d3565b9190910192915050565b61094280620003106000396000f3fe60806040526004361061005e5760003560e01c80634f1ef286116100435780634f1ef286146100c45780638da5cb5b146100d7578063f2fde38b1461011157610065565b806301ffc9a71461006f5780633659cfe6146100a457610065565b3661006557005b61006d610131565b005b34801561007b57600080fd5b5061008f61008a3660046107a6565b61017c565b60405190151581526020015b60405180910390f35b3480156100b057600080fd5b5061006d6100bf366004610811565b61034a565b61006d6100d236600461082c565b610421565b3480156100e357600080fd5b506100ec61051c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009b565b34801561011d57600080fd5b5061006d61012c366004610811565b61054b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610172578183f35b8183fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061020f57507f7f5828d0000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b1561021c57506001919050565b7fffffffff00000000000000000000000000000000000000000000000000000000808316141561024e57506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000008416600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa925050508015610336575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610333918101906108af565b60015b6103435750600092915050565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b61041e816040518060200160405280600081525061060a565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016103fc565b6105178383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061060a92505050565b505050565b60006105467fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905090565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610601576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016103fc565b61041e816106f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80549083905560405173ffffffffffffffffffffffffffffffffffffffff80851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a38151156105175760008373ffffffffffffffffffffffffffffffffffffffff16836040516106a591906108d1565b600060405180830381855af49150503d80600081146106e0576040519150601f19603f3d011682016040523d82523d6000602084013e6106e5565b606091505b5050905080610176573d806000803e806000fd5b60006107237fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103558173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000602082840312156107b857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034357600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461080c57600080fd5b919050565b60006020828403121561082357600080fd5b610343826107e8565b60008060006040848603121561084157600080fd5b61084a846107e8565b9250602084013567ffffffffffffffff8082111561086757600080fd5b818601915086601f83011261087b57600080fd5b81358181111561088a57600080fd5b87602082850101111561089c57600080fd5b6020830194508093505050509250925092565b6000602082840312156108c157600080fd5b8151801515811461034357600080fd5b6000825160005b818110156108f257602081860181015185830152016108d8565b81811115610901576000828501525b50919091019291505056fea264697066735822122051bcaa9438510b4a395002144ebfc9c44089297347bdb504ed9e0aae04634cba64736f6c634300080a0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", "deployedBytecode": "0x60806040526004361061005e5760003560e01c80634f1ef286116100435780634f1ef286146100c45780638da5cb5b146100d7578063f2fde38b1461011157610065565b806301ffc9a71461006f5780633659cfe6146100a457610065565b3661006557005b61006d610131565b005b34801561007b57600080fd5b5061008f61008a3660046107a6565b61017c565b60405190151581526020015b60405180910390f35b3480156100b057600080fd5b5061006d6100bf366004610811565b61034a565b61006d6100d236600461082c565b610421565b3480156100e357600080fd5b506100ec61051c565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161009b565b34801561011d57600080fd5b5061006d61012c366004610811565b61054b565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e828015610172578183f35b8183fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061020f57507f7f5828d0000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b1561021c57506001919050565b7fffffffff00000000000000000000000000000000000000000000000000000000808316141561024e57506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000008416600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa925050508015610336575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610333918101906108af565b60015b6103435750600092915050565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b61041e816040518060200160405280600081525061060a565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016103fc565b6105178383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061060a92505050565b505050565b60006105467fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905090565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610601576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016103fc565b61041e816106f9565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80549083905560405173ffffffffffffffffffffffffffffffffffffffff80851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a38151156105175760008373ffffffffffffffffffffffffffffffffffffffff16836040516106a591906108d1565b600060405180830381855af49150503d80600081146106e0576040519150601f19603f3d011682016040523d82523d6000602084013e6106e5565b606091505b5050905080610176573d806000803e806000fd5b60006107237fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103558173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000602082840312156107b857600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034357600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461080c57600080fd5b919050565b60006020828403121561082357600080fd5b610343826107e8565b60008060006040848603121561084157600080fd5b61084a846107e8565b9250602084013567ffffffffffffffff8082111561086757600080fd5b818601915086601f83011261087b57600080fd5b81358181111561088a57600080fd5b87602082850101111561089c57600080fd5b6020830194508093505050509250925092565b6000602082840312156108c157600080fd5b8151801515811461034357600080fd5b6000825160005b818110156108f257602081860181015185830152016108d8565b81811115610901576000828501525b50919091019291505056fea264697066735822122051bcaa9438510b4a395002144ebfc9c44089297347bdb504ed9e0aae04634cba64736f6c634300080a0033", "linkReferences": {}, "deployedLinkReferences": {}, "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "bytecode": { "functionDebugData": { "@_193": { "entryPoint": null, "id": 193, "parameterSlots": 3, "returnSlots": 0 }, "@_38": { "entryPoint": null, "id": 38, "parameterSlots": 3, "returnSlots": 0 }, "@_owner_154": { "entryPoint": null, "id": 154, "parameterSlots": 0, "returnSlots": 1 }, "@_setImplementation_263": { "entryPoint": 76, "id": 263, "parameterSlots": 2, "returnSlots": 0 }, "@_setOwner_171": { "entryPoint": 302, "id": 171, "parameterSlots": 1, "returnSlots": 0 }, "abi_decode_address_fromMemory": { "entryPoint": 416, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory": { "entryPoint": 514, "id": null, "parameterSlots": 2, "returnSlots": 3 }, "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { "entryPoint": 738, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "copy_memory_to_memory": { "entryPoint": 467, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "panic_error_0x41": { "entryPoint": 445, "id": null, "parameterSlots": 0, "returnSlots": 0 } }, "generatedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:1925:3", "statements": [ { "nodeType": "YulBlock", "src": "6:3:3", "statements": [] }, { "body": { "nodeType": "YulBlock", "src": "74:117:3", "statements": [ { "nodeType": "YulAssignment", "src": "84:22:3", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "99:6:3" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "93:5:3" }, "nodeType": "YulFunctionCall", "src": "93:13:3" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "84:5:3" } ] }, { "body": { "nodeType": "YulBlock", "src": "169:16:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "178:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "181:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "171:6:3" }, "nodeType": "YulFunctionCall", "src": "171:12:3" }, "nodeType": "YulExpressionStatement", "src": "171:12:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "128:5:3" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "139:5:3" }, { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "154:3:3", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", "src": "159:1:3", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "150:3:3" }, "nodeType": "YulFunctionCall", "src": "150:11:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "163:1:3", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "146:3:3" }, "nodeType": "YulFunctionCall", "src": "146:19:3" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", "src": "135:3:3" }, "nodeType": "YulFunctionCall", "src": "135:31:3" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", "src": "125:2:3" }, "nodeType": "YulFunctionCall", "src": "125:42:3" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "118:6:3" }, "nodeType": "YulFunctionCall", "src": "118:50:3" }, "nodeType": "YulIf", "src": "115:70:3" } ] }, "name": "abi_decode_address_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "53:6:3", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "64:5:3", "type": "" } ], "src": "14:177:3" }, { "body": { "nodeType": "YulBlock", "src": "228:95:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "245:1:3", "type": "", "value": "0" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "252:3:3", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", "src": "257:10:3", "type": "", "value": "0x4e487b71" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "248:3:3" }, "nodeType": "YulFunctionCall", "src": "248:20:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "238:6:3" }, "nodeType": "YulFunctionCall", "src": "238:31:3" }, "nodeType": "YulExpressionStatement", "src": "238:31:3" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "285:1:3", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", "src": "288:4:3", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "278:6:3" }, "nodeType": "YulFunctionCall", "src": "278:15:3" }, "nodeType": "YulExpressionStatement", "src": "278:15:3" }, { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "309:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "312:4:3", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "302:6:3" }, "nodeType": "YulFunctionCall", "src": "302:15:3" }, "nodeType": "YulExpressionStatement", "src": "302:15:3" } ] }, "name": "panic_error_0x41", "nodeType": "YulFunctionDefinition", "src": "196:127:3" }, { "body": { "nodeType": "YulBlock", "src": "381:205:3", "statements": [ { "nodeType": "YulVariableDeclaration", "src": "391:10:3", "value": { "kind": "number", "nodeType": "YulLiteral", "src": "400:1:3", "type": "", "value": "0" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", "src": "395:1:3", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "460:63:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "485:3:3" }, { "name": "i", "nodeType": "YulIdentifier", "src": "490:1:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "481:3:3" }, "nodeType": "YulFunctionCall", "src": "481:11:3" }, { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "504:3:3" }, { "name": "i", "nodeType": "YulIdentifier", "src": "509:1:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "500:3:3" }, "nodeType": "YulFunctionCall", "src": "500:11:3" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "494:5:3" }, "nodeType": "YulFunctionCall", "src": "494:18:3" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "474:6:3" }, "nodeType": "YulFunctionCall", "src": "474:39:3" }, "nodeType": "YulExpressionStatement", "src": "474:39:3" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "421:1:3" }, { "name": "length", "nodeType": "YulIdentifier", "src": "424:6:3" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", "src": "418:2:3" }, "nodeType": "YulFunctionCall", "src": "418:13:3" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", "src": "432:19:3", "statements": [ { "nodeType": "YulAssignment", "src": "434:15:3", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "443:1:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "446:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "439:3:3" }, "nodeType": "YulFunctionCall", "src": "439:10:3" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", "src": "434:1:3" } ] } ] }, "pre": { "nodeType": "YulBlock", "src": "414:3:3", "statements": [] }, "src": "410:113:3" }, { "body": { "nodeType": "YulBlock", "src": "549:31:3", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nodeType": "YulIdentifier", "src": "562:3:3" }, { "name": "length", "nodeType": "YulIdentifier", "src": "567:6:3" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "558:3:3" }, "nodeType": "YulFunctionCall", "src": "558:16:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "576:1:3", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "551:6:3" }, "nodeType": "YulFunctionCall", "src": "551:27:3" }, "nodeType": "YulExpressionStatement", "src": "551:27:3" } ] }, "condition": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", "src": "538:1:3" }, { "name": "length", "nodeType": "YulIdentifier", "src": "541:6:3" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "535:2:3" }, "nodeType": "YulFunctionCall", "src": "535:13:3" }, "nodeType": "YulIf", "src": "532:48:3" } ] }, "name": "copy_memory_to_memory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "359:3:3", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", "src": "364:3:3", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "369:6:3", "type": "" } ], "src": "328:258:3" }, { "body": { "nodeType": "YulBlock", "src": "715:929:3", "statements": [ { "body": { "nodeType": "YulBlock", "src": "761:16:3", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "770:1:3", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "773:1:3", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "763:6:3" }, "nodeType": "YulFunctionCall", "src": "763:12:3" }, "nodeType": "YulExpressionStatement", "src": "763:12:3" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nodeType": "YulIdentifier", "src": "736:7:3" }, { "name": "headStart", "nodeType": "YulIdentifier", "src": "745:9:3" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", "src": "732:3:3" }, "nodeType": "YulFunctionCall", "src": "732:23:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "757:2:3", "type": "", "value": "96" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "728:3:3" }, "nodeType": "YulFunctionCall", "src": "728:32:3" }, "nodeType": "YulIf", "src": "725:52:3" }, { "nodeType": "YulAssignment", "src": "786:50:3", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "826:9:3" } ], "functionName": { "name": "abi_decode_address_fromMemory", "nodeType": "YulIdentifier", "src": "796:29:3" }, "nodeType": "YulFunctionCall", "src": "796:40:3" }, "variableNames": [ { "name": "value0", "nodeType": "YulIdentifier", "src": "786:6:3" } ] }, { "nodeType": "YulAssignment", "src": "845:59:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "889:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "900:2:3", "type": "", "value": "32" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "885:3:3" }, "nodeType": "YulFunctionCall", "src": "885:18:3" } ], "functionName": { "name": "abi_decode_address_fromMemory", "nodeType": "YulIdentifier", "src": "855:29:3" }, "nodeType": "YulFunctionCall", "src": "855:49:3" }, "variableNames": [ { "name": "value1", "nodeType": "YulIdentifier", "src": "845:6:3" } ] }, { "nodeType": "YulVariableDeclaration", "src": "913:39:3", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", "src": "937:9:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "948:2:3", "type": "", "value": "64" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "933:3:3" }, "nodeType": "YulFunctionCall", "src": "933:18:3" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "927:5:3" }, "nodeType": "YulFunctionCall", "src": "927:25:3" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", "src": "917:6:3", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", "src": "961:28:3", "value": { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "979:2:3", "type": "", "value": "64" }, { "kind": "number", "nodeType": "YulLiteral", "src": "983:1:3", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", "src": "975:3:3" }, "nodeType": "YulFunctionCall", "src": "975:10:3" }, { "kind": "number", "nodeType": "YulLiteral", "src": "987:1:3", "type": "", "value": "1" } ], "functionName": { "name": "sub",