UNPKG

@0xged/hardhat-deploy

Version:

Hardhat Plugin For Replicable Deployments And Tests

1,025 lines (1,024 loc) 243 kB
{ "contractName": "EIP173Proxy", "sourceName": "solc_0.8/proxy/EIP173Proxy.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": "0x608060405260405162000ccc38038062000ccc8339810160408190526200002691620001fc565b62000032838262000046565b6200003d8262000128565b505050620002fa565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8054908390556040516001600160a01b0380851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a381511562000123576000836001600160a01b031683604051620000ca9190620002dc565b600060405180830381855af49150503d806000811462000107576040519150601f19603f3d011682016040523d82523d6000602084013e6200010c565b606091505b505090508062000121573d806000803e806000fd5b505b505050565b60006200014260008051602062000cac8339815191525490565b90508160008051602062000cac83398151915255816001600160a01b0316816001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80516001600160a01b0381168114620001b257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620001ea578181015183820152602001620001d0565b83811115620001215750506000910152565b6000806000606084860312156200021257600080fd5b6200021d846200019a565b92506200022d602085016200019a565b60408501519092506001600160401b03808211156200024b57600080fd5b818601915086601f8301126200026057600080fd5b815181811115620002755762000275620001b7565b604051601f8201601f19908116603f01168101908382118183101715620002a057620002a0620001b7565b81604052828152896020848701011115620002ba57600080fd5b620002cd836020830160208801620001cd565b80955050505050509250925092565b60008251620002f0818460208701620001cd565b9190910192915050565b6109a2806200030a6000396000f3fe60806040526004361061005e5760003560e01c80634f1ef286116100435780634f1ef286146101295780638da5cb5b1461013c578063f2fde38b14610176576100ca565b806301ffc9a7146100d45780633659cfe614610109576100ca565b366100ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f45544845525f52454a454354454400000000000000000000000000000000000060448201526064015b60405180910390fd5b6100d2610196565b005b3480156100e057600080fd5b506100f46100ef366004610806565b6101e1565b60405190151581526020015b60405180910390f35b34801561011557600080fd5b506100d2610124366004610871565b6103af565b6100d261013736600461088c565b610481565b34801561014857600080fd5b5061015161057c565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610100565b34801561018257600080fd5b506100d2610191366004610871565b6105ab565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e8280156101d7578183f35b8183fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061027457507f7f5828d0000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b1561028157506001919050565b7fffffffff0000000000000000000000000000000000000000000000000000000080831614156102b357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000008416600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa92505050801561039b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526103989181019061090f565b60015b6103a85750600092915050565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016100c1565b61047e816040518060200160405280600081525061066a565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016100c1565b6105778383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066a92505050565b505050565b60006105a67fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905090565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016100c1565b61047e81610759565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80549083905560405173ffffffffffffffffffffffffffffffffffffffff80851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a38151156105775760008373ffffffffffffffffffffffffffffffffffffffff16836040516107059190610931565b600060405180830381855af49150503d8060008114610740576040519150601f19603f3d011682016040523d82523d6000602084013e610745565b606091505b50509050806101db573d806000803e806000fd5b60006107837fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103558173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006020828403121561081857600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146103a857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461086c57600080fd5b919050565b60006020828403121561088357600080fd5b6103a882610848565b6000806000604084860312156108a157600080fd5b6108aa84610848565b9250602084013567ffffffffffffffff808211156108c757600080fd5b818601915086601f8301126108db57600080fd5b8135818111156108ea57600080fd5b8760208285010111156108fc57600080fd5b6020830194508093505050509250925092565b60006020828403121561092157600080fd5b815180151581146103a857600080fd5b6000825160005b818110156109525760208186018101518583015201610938565b81811115610961576000828501525b50919091019291505056fea2646970667358221220d2ec357659da93a66b21590e3c56e508e51e4de5703da4d1f7ba0b98d9e047f964736f6c634300080a0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", "deployedBytecode": "0x60806040526004361061005e5760003560e01c80634f1ef286116100435780634f1ef286146101295780638da5cb5b1461013c578063f2fde38b14610176576100ca565b806301ffc9a7146100d45780633659cfe614610109576100ca565b366100ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f45544845525f52454a454354454400000000000000000000000000000000000060448201526064015b60405180910390fd5b6100d2610196565b005b3480156100e057600080fd5b506100f46100ef366004610806565b6101e1565b60405190151581526020015b60405180910390f35b34801561011557600080fd5b506100d2610124366004610871565b6103af565b6100d261013736600461088c565b610481565b34801561014857600080fd5b5061015161057c565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610100565b34801561018257600080fd5b506100d2610191366004610871565b6105ab565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5460003681823780813683855af491503d8082833e8280156101d7578183f35b8183fd5b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061027457507f7f5828d0000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b1561028157506001919050565b7fffffffff0000000000000000000000000000000000000000000000000000000080831614156102b357506000919050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527fffffffff000000000000000000000000000000000000000000000000000000008416600482015273ffffffffffffffffffffffffffffffffffffffff8216906301ffc9a790602401602060405180830381865afa92505050801561039b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526103989181019061090f565b60015b6103a85750600092915050565b9392505050565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016100c1565b61047e816040518060200160405280600081525061066a565b50565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016100c1565b6105778383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066a92505050565b505050565b60006105a67fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905090565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016100c1565b61047e81610759565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80549083905560405173ffffffffffffffffffffffffffffffffffffffff80851691908316907f5570d70a002632a7b0b3c9304cc89efb62d8da9eca0dbd7752c83b737906829690600090a38151156105775760008373ffffffffffffffffffffffffffffffffffffffff16836040516107059190610931565b600060405180830381855af49150503d8060008114610740576040519150601f19603f3d011682016040523d82523d6000602084013e610745565b606091505b50509050806101db573d806000803e806000fd5b60006107837fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b9050817fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103558173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006020828403121561081857600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146103a857600080fd5b803573ffffffffffffffffffffffffffffffffffffffff8116811461086c57600080fd5b919050565b60006020828403121561088357600080fd5b6103a882610848565b6000806000604084860312156108a157600080fd5b6108aa84610848565b9250602084013567ffffffffffffffff808211156108c757600080fd5b818601915086601f8301126108db57600080fd5b8135818111156108ea57600080fd5b8760208285010111156108fc57600080fd5b6020830194508093505050509250925092565b60006020828403121561092157600080fd5b815180151581146103a857600080fd5b6000825160005b818110156109525760208186018101518583015201610938565b81811115610961576000828501525b50919091019291505056fea2646970667358221220d2ec357659da93a66b21590e3c56e508e51e4de5703da4d1f7ba0b98d9e047f964736f6c634300080a0033", "linkReferences": {}, "deployedLinkReferences": {}, "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "bytecode": { "functionDebugData": { "@_38": { "entryPoint": null, "id": 38, "parameterSlots": 3, "returnSlots": 0 }, "@_owner_154": { "entryPoint": null, "id": 154, "parameterSlots": 0, "returnSlots": 1 }, "@_setImplementation_263": { "entryPoint": 70, "id": 263, "parameterSlots": 2, "returnSlots": 0 }, "@_setOwner_171": { "entryPoint": 296, "id": 171, "parameterSlots": 1, "returnSlots": 0 }, "abi_decode_address_fromMemory": { "entryPoint": 410, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr_fromMemory": { "entryPoint": 508, "id": null, "parameterSlots": 2, "returnSlots": 3 }, "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { "entryPoint": 732, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "copy_memory_to_memory": { "entryPoint": 461, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "panic_error_0x41": { "entryPoint": 439, "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",