UNPKG

@zjbtest/contracts

Version:
988 lines (987 loc) 493 kB
{ "contractName": "Schedule", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "task_id", "type": "bytes" } ], "name": "CanceledCall", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "task_id", "type": "bytes" } ], "name": "RescheduledCall", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "contract_address", "type": "address" }, { "indexed": false, "internalType": "bytes", "name": "task_id", "type": "bytes" } ], "name": "ScheduledCall", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "contract_address", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "gas_limit", "type": "uint256" }, { "internalType": "uint256", "name": "storage_limit", "type": "uint256" }, { "internalType": "uint256", "name": "min_delay", "type": "uint256" }, { "internalType": "bytes", "name": "input_data", "type": "bytes" } ], "name": "scheduleCall", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "task_id", "type": "bytes" } ], "name": "cancelCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "min_delay", "type": "uint256" }, { "internalType": "bytes", "name": "task_id", "type": "bytes" } ], "name": "rescheduleCall", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"task_id\",\"type\":\"bytes\"}],\"name\":\"CanceledCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"task_id\",\"type\":\"bytes\"}],\"name\":\"RescheduledCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"contract_address\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"task_id\",\"type\":\"bytes\"}],\"name\":\"ScheduledCall\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"task_id\",\"type\":\"bytes\"}],\"name\":\"cancelCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min_delay\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"task_id\",\"type\":\"bytes\"}],\"name\":\"rescheduleCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"contract_address\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gas_limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"storage_limit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_delay\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"input_data\",\"type\":\"bytes\"}],\"name\":\"scheduleCall\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"cancelCall(bytes)\":{\"details\":\"Cancel schedule call the contract. Returns a boolean value indicating whether the operation succeeded.\"},\"rescheduleCall(uint256,bytes)\":{\"details\":\"Reschedule call the contract. Returns a boolean value indicating whether the operation succeeded.\"},\"scheduleCall(address,uint256,uint256,uint256,uint256,bytes)\":{\"details\":\"Schedule call the contract. Returns a bytes value equal to the task_id of the task created.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/schedule/Schedule.sol\":\"Schedule\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/schedule/ISchedule.sol\":{\"keccak256\":\"0x871eb05dac41eb5b73a56b6bd6664bf72ba5b958c1716c95af8dd30ddd002925\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://176d17b237a55e8e6a44e2894f50ab93238d85adae3df61ae7316dc14c4d7a47\",\"dweb:/ipfs/QmdgHaL5AJYoi5EMfRPuNPBMiKEvMdHCw9wsDkwKfDfXre\"]},\"/home/runner/work/predeploy-contracts/predeploy-contracts/contracts/schedule/Schedule.sol\":{\"keccak256\":\"0xad70ed461ee52878147ac94f49116fefcb4584d04cbbadfd997c85110f1b3ffc\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c739c711be1e39535d802cdb1b739fa31c6973e87dc73d97f4225cbfb1ea55d5\",\"dweb:/ipfs/QmQFYWqMiEGhzp8vYoYP9CpwuDd55KBe2zkc3qZYZezcZB\"]}},\"version\":1}", "bytecode": "0x608060405234801561001057600080fd5b50610cf9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063168d560d1461004657806380770aa214610076578063ed67982b146100a6575b600080fd5b610060600480360381019061005b9190610706565b6100d6565b60405161006d9190610ad0565b60405180910390f35b610090600480360381019061008b9190610829565b610333565b60405161009d9190610ab5565b60405180910390f35b6100c060048036038101906100bb91906107a7565b6104a1565b6040516100cd9190610ab5565b60405180910390f35b6060600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013f90610b12565b60405180910390fd5b600082511161018c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018390610af2565b60405180910390fd5b60008061040473ffffffffffffffffffffffffffffffffffffffff16338a8a8a8a8a8a6040516024016101c597969594939291906109d1565b6040516020818303038152906040527f64c91905000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161024f91906109ba565b6000604051808303816000865af19150503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b509150915060008214156102a6573d60208201fd5b6000818060200190518101906102bc91906107e8565b90508973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff50ab0aa329811f23150e5490fc00ea0baf136a55280b7e88703b4753d4097ce8360405161031b9190610ad0565b60405180910390a38093505050509695505050505050565b600080600061040473ffffffffffffffffffffffffffffffffffffffff1633868660405160240161036693929190610a77565b6040516020818303038152906040527f28302f34000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103f091906109ba565b6000604051808303816000865af19150503d806000811461042d576040519150601f19603f3d011682016040523d82523d6000602084013e610432565b606091505b50915091506000821415610447573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f3d7c2a1f4334df8f13c937065d5a5505918af3e28136cf2ac1273b96d1ed996a8560405161048d9190610ad0565b60405180910390a260019250505092915050565b600080600061040473ffffffffffffffffffffffffffffffffffffffff1633856040516024016104d2929190610a47565b6040516020818303038152906040527f93e32661000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161055c91906109ba565b6000604051808303816000865af19150503d8060008114610599576040519150601f19603f3d011682016040523d82523d6000602084013e61059e565b606091505b509150915060008214156105b3573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167fe53347c2cd79d58390b73e62c658e8893996a9f82a3be212c9971859c79a9644856040516105f99190610ad0565b60405180910390a2600192505050919050565b600061061f61061a84610b63565b610b32565b90508281526020810184848401111561063757600080fd5b610642848285610c13565b509392505050565b600061065d61065884610b63565b610b32565b90508281526020810184848401111561067557600080fd5b610680848285610c22565b509392505050565b60008135905061069781610c95565b92915050565b600082601f8301126106ae57600080fd5b81356106be84826020860161060c565b91505092915050565b600082601f8301126106d857600080fd5b81516106e884826020860161064a565b91505092915050565b60008135905061070081610cac565b92915050565b60008060008060008060c0878903121561071f57600080fd5b600061072d89828a01610688565b965050602061073e89828a016106f1565b955050604061074f89828a016106f1565b945050606061076089828a016106f1565b935050608061077189828a016106f1565b92505060a087013567ffffffffffffffff81111561078e57600080fd5b61079a89828a0161069d565b9150509295509295509295565b6000602082840312156107b957600080fd5b600082013567ffffffffffffffff8111156107d357600080fd5b6107df8482850161069d565b91505092915050565b6000602082840312156107fa57600080fd5b600082015167ffffffffffffffff81111561081457600080fd5b610820848285016106c7565b91505092915050565b6000806040838503121561083c57600080fd5b600061084a858286016106f1565b925050602083013567ffffffffffffffff81111561086757600080fd5b6108738582860161069d565b9150509250929050565b61088681610bcb565b82525050565b61089581610bdd565b82525050565b60006108a682610b93565b6108b08185610b9e565b93506108c0818560208601610c22565b6108c981610c84565b840191505092915050565b60006108df82610b93565b6108e98185610baf565b93506108f9818560208601610c22565b80840191505092915050565b6000610912601b83610bba565b91507f5363686564756c6543616c6c3a20696e707574206973206e756c6c00000000006000830152602082019050919050565b6000610952603683610bba565b91507f5363686564756c6543616c6c3a2074686520636f6e74726163745f616464726560008301527f737320697320746865207a65726f2061646472657373000000000000000000006020830152604082019050919050565b6109b481610c09565b82525050565b60006109c682846108d4565b915081905092915050565b600060e0820190506109e6600083018a61087d565b6109f3602083018961087d565b610a0060408301886109ab565b610a0d60608301876109ab565b610a1a60808301866109ab565b610a2760a08301856109ab565b81810360c0830152610a39818461089b565b905098975050505050505050565b6000604082019050610a5c600083018561087d565b8181036020830152610a6e818461089b565b90509392505050565b6000606082019050610a8c600083018661087d565b610a9960208301856109ab565b8181036040830152610aab818461089b565b9050949350505050565b6000602082019050610aca600083018461088c565b92915050565b60006020820190508181036000830152610aea818461089b565b905092915050565b60006020820190508181036000830152610b0b81610905565b9050919050565b60006020820190508181036000830152610b2b81610945565b9050919050565b6000604051905081810181811067ffffffffffffffff82111715610b5957610b58610c55565b5b8060405250919050565b600067ffffffffffffffff821115610b7e57610b7d610c55565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610bd682610be9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610c40578082015181840152602081019050610c25565b83811115610c4f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610c9e81610bcb565b8114610ca957600080fd5b50565b610cb581610c09565b8114610cc057600080fd5b5056fea26469706673582212202e964050bfec77bf126c6ff64222efb03bf9c3546452e92d4e0935b62c5f32f964736f6c63430008000033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063168d560d1461004657806380770aa214610076578063ed67982b146100a6575b600080fd5b610060600480360381019061005b9190610706565b6100d6565b60405161006d9190610ad0565b60405180910390f35b610090600480360381019061008b9190610829565b610333565b60405161009d9190610ab5565b60405180910390f35b6100c060048036038101906100bb91906107a7565b6104a1565b6040516100cd9190610ab5565b60405180910390f35b6060600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610148576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013f90610b12565b60405180910390fd5b600082511161018c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018390610af2565b60405180910390fd5b60008061040473ffffffffffffffffffffffffffffffffffffffff16338a8a8a8a8a8a6040516024016101c597969594939291906109d1565b6040516020818303038152906040527f64c91905000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161024f91906109ba565b6000604051808303816000865af19150503d806000811461028c576040519150601f19603f3d011682016040523d82523d6000602084013e610291565b606091505b509150915060008214156102a6573d60208201fd5b6000818060200190518101906102bc91906107e8565b90508973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff50ab0aa329811f23150e5490fc00ea0baf136a55280b7e88703b4753d4097ce8360405161031b9190610ad0565b60405180910390a38093505050509695505050505050565b600080600061040473ffffffffffffffffffffffffffffffffffffffff1633868660405160240161036693929190610a77565b6040516020818303038152906040527f28302f34000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516103f091906109ba565b6000604051808303816000865af19150503d806000811461042d576040519150601f19603f3d011682016040523d82523d6000602084013e610432565b606091505b50915091506000821415610447573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167f3d7c2a1f4334df8f13c937065d5a5505918af3e28136cf2ac1273b96d1ed996a8560405161048d9190610ad0565b60405180910390a260019250505092915050565b600080600061040473ffffffffffffffffffffffffffffffffffffffff1633856040516024016104d2929190610a47565b6040516020818303038152906040527f93e32661000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405161055c91906109ba565b6000604051808303816000865af19150503d8060008114610599576040519150601f19603f3d011682016040523d82523d6000602084013e61059e565b606091505b509150915060008214156105b3573d60208201fd5b3373ffffffffffffffffffffffffffffffffffffffff167fe53347c2cd79d58390b73e62c658e8893996a9f82a3be212c9971859c79a9644856040516105f99190610ad0565b60405180910390a2600192505050919050565b600061061f61061a84610b63565b610b32565b90508281526020810184848401111561063757600080fd5b610642848285610c13565b509392505050565b600061065d61065884610b63565b610b32565b90508281526020810184848401111561067557600080fd5b610680848285610c22565b509392505050565b60008135905061069781610c95565b92915050565b600082601f8301126106ae57600080fd5b81356106be84826020860161060c565b91505092915050565b600082601f8301126106d857600080fd5b81516106e884826020860161064a565b91505092915050565b60008135905061070081610cac565b92915050565b60008060008060008060c0878903121561071f57600080fd5b600061072d89828a01610688565b965050602061073e89828a016106f1565b955050604061074f89828a016106f1565b945050606061076089828a016106f1565b935050608061077189828a016106f1565b92505060a087013567ffffffffffffffff81111561078e57600080fd5b61079a89828a0161069d565b9150509295509295509295565b6000602082840312156107b957600080fd5b600082013567ffffffffffffffff8111156107d357600080fd5b6107df8482850161069d565b91505092915050565b6000602082840312156107fa57600080fd5b600082015167ffffffffffffffff81111561081457600080fd5b610820848285016106c7565b91505092915050565b6000806040838503121561083c57600080fd5b600061084a858286016106f1565b925050602083013567ffffffffffffffff81111561086757600080fd5b6108738582860161069d565b9150509250929050565b61088681610bcb565b82525050565b61089581610bdd565b82525050565b60006108a682610b93565b6108b08185610b9e565b93506108c0818560208601610c22565b6108c981610c84565b840191505092915050565b60006108df82610b93565b6108e98185610baf565b93506108f9818560208601610c22565b80840191505092915050565b6000610912601b83610bba565b91507f5363686564756c6543616c6c3a20696e707574206973206e756c6c00000000006000830152602082019050919050565b6000610952603683610bba565b91507f5363686564756c6543616c6c3a2074686520636f6e74726163745f616464726560008301527f737320697320746865207a65726f2061646472657373000000000000000000006020830152604082019050919050565b6109b481610c09565b82525050565b60006109c682846108d4565b915081905092915050565b600060e0820190506109e6600083018a61087d565b6109f3602083018961087d565b610a0060408301886109ab565b610a0d60608301876109ab565b610a1a60808301866109ab565b610a2760a08301856109ab565b81810360c0830152610a39818461089b565b905098975050505050505050565b6000604082019050610a5c600083018561087d565b8181036020830152610a6e818461089b565b90509392505050565b6000606082019050610a8c600083018661087d565b610a9960208301856109ab565b8181036040830152610aab818461089b565b9050949350505050565b6000602082019050610aca600083018461088c565b92915050565b60006020820190508181036000830152610aea818461089b565b905092915050565b60006020820190508181036000830152610b0b81610905565b9050919050565b60006020820190508181036000830152610b2b81610945565b9050919050565b6000604051905081810181811067ffffffffffffffff82111715610b5957610b58610c55565b5b8060405250919050565b600067ffffffffffffffff821115610b7e57610b7d610c55565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000610bd682610be9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610c40578082015181840152602081019050610c25565b83811115610c4f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610c9e81610bcb565b8114610ca957600080fd5b50565b610cb581610c09565b8114610cc057600080fd5b5056fea26469706673582212202e964050bfec77bf126c6ff64222efb03bf9c3546452e92d4e0935b62c5f32f964736f6c63430008000033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nodeType": "YulBlock", "src": "0:12094:20", "statements": [ { "body": { "nodeType": "YulBlock", "src": "90:259:20", "statements": [ { "nodeType": "YulAssignment", "src": "100:73:20", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "165:6:20" } ], "functionName": { "name": "array_allocation_size_t_bytes_memory_ptr", "nodeType": "YulIdentifier", "src": "124:40:20" }, "nodeType": "YulFunctionCall", "src": "124:48:20" } ], "functionName": { "name": "allocateMemory", "nodeType": "YulIdentifier", "src": "109:14:20" }, "nodeType": "YulFunctionCall", "src": "109:64:20" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "100:5:20" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "189:5:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "196:6:20" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "182:6:20" }, "nodeType": "YulFunctionCall", "src": "182:21:20" }, "nodeType": "YulExpressionStatement", "src": "182:21:20" }, { "nodeType": "YulVariableDeclaration", "src": "212:27:20", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "227:5:20" }, { "kind": "number", "nodeType": "YulLiteral", "src": "234:4:20", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "223:3:20" }, "nodeType": "YulFunctionCall", "src": "223:16:20" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "216:3:20", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "277:16:20", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "286:1:20", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "289:1:20", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "279:6:20" }, "nodeType": "YulFunctionCall", "src": "279:12:20" }, "nodeType": "YulExpressionStatement", "src": "279:12:20" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "258:3:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "263:6:20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "254:3:20" }, "nodeType": "YulFunctionCall", "src": "254:16:20" }, { "name": "end", "nodeType": "YulIdentifier", "src": "272:3:20" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "251:2:20" }, "nodeType": "YulFunctionCall", "src": "251:25:20" }, "nodeType": "YulIf", "src": "248:2:20" }, { "expression": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "326:3:20" }, { "name": "dst", "nodeType": "YulIdentifier", "src": "331:3:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "336:6:20" } ], "functionName": { "name": "copy_calldata_to_memory", "nodeType": "YulIdentifier", "src": "302:23:20" }, "nodeType": "YulFunctionCall", "src": "302:41:20" }, "nodeType": "YulExpressionStatement", "src": "302:41:20" } ] }, "name": "abi_decode_available_length_t_bytes_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "63:3:20", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "68:6:20", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "76:3:20", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "84:5:20", "type": "" } ], "src": "7:342:20" }, { "body": { "nodeType": "YulBlock", "src": "449:257:20", "statements": [ { "nodeType": "YulAssignment", "src": "459:73:20", "value": { "arguments": [ { "arguments": [ { "name": "length", "nodeType": "YulIdentifier", "src": "524:6:20" } ], "functionName": { "name": "array_allocation_size_t_bytes_memory_ptr", "nodeType": "YulIdentifier", "src": "483:40:20" }, "nodeType": "YulFunctionCall", "src": "483:48:20" } ], "functionName": { "name": "allocateMemory", "nodeType": "YulIdentifier", "src": "468:14:20" }, "nodeType": "YulFunctionCall", "src": "468:64:20" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "459:5:20" } ] }, { "expression": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "548:5:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "555:6:20" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", "src": "541:6:20" }, "nodeType": "YulFunctionCall", "src": "541:21:20" }, "nodeType": "YulExpressionStatement", "src": "541:21:20" }, { "nodeType": "YulVariableDeclaration", "src": "571:27:20", "value": { "arguments": [ { "name": "array", "nodeType": "YulIdentifier", "src": "586:5:20" }, { "kind": "number", "nodeType": "YulLiteral", "src": "593:4:20", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "582:3:20" }, "nodeType": "YulFunctionCall", "src": "582:16:20" }, "variables": [ { "name": "dst", "nodeType": "YulTypedName", "src": "575:3:20", "type": "" } ] }, { "body": { "nodeType": "YulBlock", "src": "636:16:20", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "645:1:20", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "648:1:20", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "638:6:20" }, "nodeType": "YulFunctionCall", "src": "638:12:20" }, "nodeType": "YulExpressionStatement", "src": "638:12:20" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "617:3:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "622:6:20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "613:3:20" }, "nodeType": "YulFunctionCall", "src": "613:16:20" }, { "name": "end", "nodeType": "YulIdentifier", "src": "631:3:20" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", "src": "610:2:20" }, "nodeType": "YulFunctionCall", "src": "610:25:20" }, "nodeType": "YulIf", "src": "607:2:20" }, { "expression": { "arguments": [ { "name": "src", "nodeType": "YulIdentifier", "src": "683:3:20" }, { "name": "dst", "nodeType": "YulIdentifier", "src": "688:3:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "693:6:20" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", "src": "661:21:20" }, "nodeType": "YulFunctionCall", "src": "661:39:20" }, "nodeType": "YulExpressionStatement", "src": "661:39:20" } ] }, "name": "abi_decode_available_length_t_bytes_memory_ptr_fromMemory", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nodeType": "YulTypedName", "src": "422:3:20", "type": "" }, { "name": "length", "nodeType": "YulTypedName", "src": "427:6:20", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "435:3:20", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "443:5:20", "type": "" } ], "src": "355:351:20" }, { "body": { "nodeType": "YulBlock", "src": "764:87:20", "statements": [ { "nodeType": "YulAssignment", "src": "774:29:20", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "796:6:20" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "783:12:20" }, "nodeType": "YulFunctionCall", "src": "783:20:20" }, "variableNames": [ { "name": "value", "nodeType": "YulIdentifier", "src": "774:5:20" } ] }, { "expression": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", "src": "839:5:20" } ], "functionName": { "name": "validator_revert_t_address", "nodeType": "YulIdentifier", "src": "812:26:20" }, "nodeType": "YulFunctionCall", "src": "812:33:20" }, "nodeType": "YulExpressionStatement", "src": "812:33:20" } ] }, "name": "abi_decode_t_address", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "742:6:20", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "750:3:20", "type": "" } ], "returnVariables": [ { "name": "value", "nodeType": "YulTypedName", "src": "758:5:20", "type": "" } ], "src": "712:139:20" }, { "body": { "nodeType": "YulBlock", "src": "931:210:20", "statements": [ { "body": { "nodeType": "YulBlock", "src": "980:16:20", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "989:1:20", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "992:1:20", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "982:6:20" }, "nodeType": "YulFunctionCall", "src": "982:12:20" }, "nodeType": "YulExpressionStatement", "src": "982:12:20" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "959:6:20" }, { "kind": "number", "nodeType": "YulLiteral", "src": "967:4:20", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "955:3:20" }, "nodeType": "YulFunctionCall", "src": "955:17:20" }, { "name": "end", "nodeType": "YulIdentifier", "src": "974:3:20" } ], "functionName": { "name": "slt", "nodeType": "YulIdentifier", "src": "951:3:20" }, "nodeType": "YulFunctionCall", "src": "951:27:20" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", "src": "944:6:20" }, "nodeType": "YulFunctionCall", "src": "944:35:20" }, "nodeType": "YulIf", "src": "941:2:20" }, { "nodeType": "YulVariableDeclaration", "src": "1005:34:20", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1032:6:20" } ], "functionName": { "name": "calldataload", "nodeType": "YulIdentifier", "src": "1019:12:20" }, "nodeType": "YulFunctionCall", "src": "1019:20:20" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", "src": "1009:6:20", "type": "" } ] }, { "nodeType": "YulAssignment", "src": "1048:87:20", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1108:6:20" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1116:4:20", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "1104:3:20" }, "nodeType": "YulFunctionCall", "src": "1104:17:20" }, { "name": "length", "nodeType": "YulIdentifier", "src": "1123:6:20" }, { "name": "end", "nodeType": "YulIdentifier", "src": "1131:3:20" } ], "functionName": { "name": "abi_decode_available_length_t_bytes_memory_ptr", "nodeType": "YulIdentifier", "src": "1057:46:20" }, "nodeType": "YulFunctionCall", "src": "1057:78:20" }, "variableNames": [ { "name": "array", "nodeType": "YulIdentifier", "src": "1048:5:20" } ] } ] }, "name": "abi_decode_t_bytes_memory_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nodeType": "YulTypedName", "src": "909:6:20", "type": "" }, { "name": "end", "nodeType": "YulTypedName", "src": "917:3:20", "type": "" } ], "returnVariables": [ { "name": "array", "nodeType": "YulTypedName", "src": "925:5:20", "type": "" } ], "src": "870:271:20" }, { "body": { "nodeType": "YulBlock", "src": "1232:214:20", "statements": [ { "body": { "nodeType": "YulBlock", "src": "1281:16:20", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "1290:1:20", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", "src": "1293:1:20", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "1283:6:20" }, "nodeType": "YulFunctionCall", "src": "1283:12:20" }, "nodeType": "YulExpressionStatement", "src": "1283:12:20" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", "src": "1260:6:20"