@0xged/hardhat-deploy
Version:
Hardhat Plugin For Replicable Deployments And Tests
1,037 lines (1,036 loc) • 235 kB
JSON
{
"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",