@zjbtest/contracts
Version:
AcalaNetwork Smart Contract library for Solidity
988 lines (987 loc) • 493 kB
JSON
{
"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"