Skip to content

Instantly share code, notes, and snippets.

@ChaituVR
Created September 29, 2021 06:18
Show Gist options
  • Save ChaituVR/324c001e0e3402fa60794b8976856b4a to your computer and use it in GitHub Desktop.
Save ChaituVR/324c001e0e3402fa60794b8976856b4a to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"balanceOf(address)": "70a08231"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"author": "Michael Elliot <mike@makerdao.com>Joshua Levine <joshua@makerdao.com>Nick Johnson <arachnid@notdot.net>",
"kind": "dev",
"methods": {},
"title": "Multicall - Aggregate results from multiple read-only function calls",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/multicall.sol": "Balance"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/multicall.sol": {
"keccak256": "0x8292fdfba5ffa0c1b24422d46746e94cb313070a45603b6935dee2abd96c1126",
"license": "MIT",
"urls": [
"bzz-raw://b8643a674e69a5ba3aad193bebbbd67f02f88a92950563dd6d524391acf59a74",
"dweb:/ipfs/QmSVbmSKc4a5GAcY6axEbJHcCs8JzBx727J9P4A2oiubem"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506109e9806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630f28c97d14610051578063252dba421461006f5780634d2301cc146100a057806386d516e8146100d0575b600080fd5b6100596100ee565b604051610066919061069f565b60405180910390f35b610089600480360381019061008491906104e6565b6100f6565b6040516100979291906106ba565b60405180910390f35b6100ba60048036038101906100b591906104b9565b610249565b6040516100c7919061069f565b60405180910390f35b6100d86102ef565b6040516100e5919061069f565b60405180910390f35b600042905090565b60006060439150825167ffffffffffffffff81111561011857610117610922565b5b60405190808252806020026020018201604052801561014b57816020015b60608152602001906001900390816101365790505b50905060005b8351811015610243576000808583815181106101705761016f6108f3565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106101a5576101a46108f3565b5b6020026020010151602001516040516101be919061066d565b6000604051808303816000865af19150503d80600081146101fb576040519150601f19603f3d011682016040523d82523d6000602084013e610200565b606091505b50915091508161020f57600080fd5b80848481518110610223576102226108f3565b5b60200260200101819052505050808061023b9061087b565b915050610151565b50915091565b600073420000000000000000000000000000000000000673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016102989190610684565b60206040518083038186803b1580156102b057600080fd5b505afa1580156102c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e8919061052f565b9050919050565b600045905090565b600061030a6103058461070f565b6106ea565b9050808382526020820190508285602086028201111561032d5761032c610960565b5b60005b8581101561037b57813567ffffffffffffffff81111561035357610352610951565b5b8086016103608982610438565b85526020850194506020840193505050600181019050610330565b5050509392505050565b60006103986103938461073b565b6106ea565b9050828152602081018484840111156103b4576103b3610965565b5b6103bf848285610808565b509392505050565b6000813590506103d681610985565b92915050565b600082601f8301126103f1576103f0610951565b5b81356104018482602086016102f7565b91505092915050565b600082601f83011261041f5761041e610951565b5b813561042f848260208601610385565b91505092915050565b60006040828403121561044e5761044d610956565b5b61045860406106ea565b90506000610468848285016103c7565b600083015250602082013567ffffffffffffffff81111561048c5761048b61095b565b5b6104988482850161040a565b60208301525092915050565b6000815190506104b38161099c565b92915050565b6000602082840312156104cf576104ce61096f565b5b60006104dd848285016103c7565b91505092915050565b6000602082840312156104fc576104fb61096f565b5b600082013567ffffffffffffffff81111561051a5761051961096a565b5b610526848285016103dc565b91505092915050565b6000602082840312156105455761054461096f565b5b6000610553848285016104a4565b91505092915050565b600061056883836105f4565b905092915050565b610579816107cc565b82525050565b600061058a8261077c565b610594818561079f565b9350836020820285016105a68561076c565b8060005b858110156105e257848403895281516105c3858261055c565b94506105ce83610792565b925060208a019950506001810190506105aa565b50829750879550505050505092915050565b60006105ff82610787565b61060981856107b0565b9350610619818560208601610817565b61062281610974565b840191505092915050565b600061063882610787565b61064281856107c1565b9350610652818560208601610817565b80840191505092915050565b610667816107fe565b82525050565b6000610679828461062d565b915081905092915050565b60006020820190506106996000830184610570565b92915050565b60006020820190506106b4600083018461065e565b92915050565b60006040820190506106cf600083018561065e565b81810360208301526106e1818461057f565b90509392505050565b60006106f4610705565b9050610700828261084a565b919050565b6000604051905090565b600067ffffffffffffffff82111561072a57610729610922565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561075657610755610922565b5b61075f82610974565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006107d7826107de565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561083557808201518184015260208101905061081a565b83811115610844576000848401525b50505050565b61085382610974565b810181811067ffffffffffffffff8211171561087257610871610922565b5b80604052505050565b6000610886826107fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156108b9576108b86108c4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61098e816107cc565b811461099957600080fd5b50565b6109a5816107fe565b81146109b057600080fd5b5056fea2646970667358221220833e3d2dac267b72e3dd48ce2a2476f35e2c6d05f3a5847471e27cf00b5cd22864736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E9 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF28C97D EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x252DBA42 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x4D2301CC EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x86D516E8 EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x4E6 JUMP JUMPDEST PUSH2 0xF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP3 SWAP2 SWAP1 PUSH2 0x6BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x4B9 JUMP JUMPDEST PUSH2 0x249 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD8 PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 NUMBER SWAP2 POP DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x922 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14B JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x136 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x170 JUMPI PUSH2 0x16F PUSH2 0x8F3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1A5 JUMPI PUSH2 0x1A4 PUSH2 0x8F3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x66D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x200 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x8F3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP POP DUP1 DUP1 PUSH2 0x23B SWAP1 PUSH2 0x87B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x151 JUMP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0x4200000000000000000000000000000000000006 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E8 SWAP2 SWAP1 PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 GASLIMIT SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A PUSH2 0x305 DUP5 PUSH2 0x70F JUMP JUMPDEST PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x32D JUMPI PUSH2 0x32C PUSH2 0x960 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x37B JUMPI DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x353 JUMPI PUSH2 0x352 PUSH2 0x951 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x360 DUP10 DUP3 PUSH2 0x438 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x330 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x398 PUSH2 0x393 DUP5 PUSH2 0x73B JUMP JUMPDEST PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3B4 JUMPI PUSH2 0x3B3 PUSH2 0x965 JUMP JUMPDEST JUMPDEST PUSH2 0x3BF DUP5 DUP3 DUP6 PUSH2 0x808 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3D6 DUP2 PUSH2 0x985 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3F1 JUMPI PUSH2 0x3F0 PUSH2 0x951 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x401 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x41F JUMPI PUSH2 0x41E PUSH2 0x951 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x42F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x385 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44E JUMPI PUSH2 0x44D PUSH2 0x956 JUMP JUMPDEST JUMPDEST PUSH2 0x458 PUSH1 0x40 PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x468 DUP5 DUP3 DUP6 ADD PUSH2 0x3C7 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x48C JUMPI PUSH2 0x48B PUSH2 0x95B JUMP JUMPDEST JUMPDEST PUSH2 0x498 DUP5 DUP3 DUP6 ADD PUSH2 0x40A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4B3 DUP2 PUSH2 0x99C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CF JUMPI PUSH2 0x4CE PUSH2 0x96F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4DD DUP5 DUP3 DUP6 ADD PUSH2 0x3C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4FC JUMPI PUSH2 0x4FB PUSH2 0x96F JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51A JUMPI PUSH2 0x519 PUSH2 0x96A JUMP JUMPDEST JUMPDEST PUSH2 0x526 DUP5 DUP3 DUP6 ADD PUSH2 0x3DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x545 JUMPI PUSH2 0x544 PUSH2 0x96F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x553 DUP5 DUP3 DUP6 ADD PUSH2 0x4A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x568 DUP4 DUP4 PUSH2 0x5F4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x579 DUP2 PUSH2 0x7CC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58A DUP3 PUSH2 0x77C JUMP JUMPDEST PUSH2 0x594 DUP2 DUP6 PUSH2 0x79F JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x5A6 DUP6 PUSH2 0x76C JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x5E2 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x5C3 DUP6 DUP3 PUSH2 0x55C JUMP JUMPDEST SWAP5 POP PUSH2 0x5CE DUP4 PUSH2 0x792 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x5AA JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FF DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH2 0x609 DUP2 DUP6 PUSH2 0x7B0 JUMP JUMPDEST SWAP4 POP PUSH2 0x619 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x817 JUMP JUMPDEST PUSH2 0x622 DUP2 PUSH2 0x974 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x638 DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH2 0x642 DUP2 DUP6 PUSH2 0x7C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x652 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x817 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x667 DUP2 PUSH2 0x7FE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x679 DUP3 DUP5 PUSH2 0x62D JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x699 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x570 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x65E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x6CF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x65E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x6E1 DUP2 DUP5 PUSH2 0x57F JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F4 PUSH2 0x705 JUMP JUMPDEST SWAP1 POP PUSH2 0x700 DUP3 DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x72A JUMPI PUSH2 0x729 PUSH2 0x922 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x756 JUMPI PUSH2 0x755 PUSH2 0x922 JUMP JUMPDEST JUMPDEST PUSH2 0x75F DUP3 PUSH2 0x974 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D7 DUP3 PUSH2 0x7DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x835 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x81A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x844 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x853 DUP3 PUSH2 0x974 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x872 JUMPI PUSH2 0x871 PUSH2 0x922 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x886 DUP3 PUSH2 0x7FE JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x8B9 JUMPI PUSH2 0x8B8 PUSH2 0x8C4 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98E DUP2 PUSH2 0x7CC JUMP JUMPDEST DUP2 EQ PUSH2 0x999 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A5 DUP2 PUSH2 0x7FE JUMP JUMPDEST DUP2 EQ PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 RETURNDATACOPY RETURNDATASIZE 0x2D 0xAC 0x26 PUSH28 0x72E3DD48CE2A2476F35E2C6D05F3A5847471E27CF00B5CD22864736F PUSH13 0x63430008070033000000000000 ",
"sourceMap": "413:936:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@aggregate_81": {
"entryPoint": 246,
"id": 81,
"parameterSlots": 1,
"returnSlots": 2
},
"@getCurrentBlockGasLimit_123": {
"entryPoint": 751,
"id": 123,
"parameterSlots": 0,
"returnSlots": 1
},
"@getCurrentBlockTimestamp_112": {
"entryPoint": 238,
"id": 112,
"parameterSlots": 0,
"returnSlots": 1
},
"@getEthBalance_101": {
"entryPoint": 585,
"id": 101,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_available_length_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 759,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_available_length_t_bytes_memory_ptr": {
"entryPoint": 901,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 967,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 988,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_bytes_memory_ptr": {
"entryPoint": 1034,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_struct$_Call_$16_memory_ptr": {
"entryPoint": 1080,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 1188,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 1209,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1254,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 1327,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr": {
"entryPoint": 1372,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1392,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 1407,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr": {
"entryPoint": 1524,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 1581,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1630,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 1645,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1668,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1695,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_uint256_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 1722,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1770,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1797,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1807,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_allocation_size_t_bytes_memory_ptr": {
"entryPoint": 1851,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1900,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1916,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 1927,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr": {
"entryPoint": 1938,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack": {
"entryPoint": 1951,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr": {
"entryPoint": 1968,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 1985,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1996,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 2014,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2046,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 2056,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 2071,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"finalize_allocation": {
"entryPoint": 2122,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2171,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2244,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2291,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 2338,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 2385,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f": {
"entryPoint": 2390,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421": {
"entryPoint": 2395,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": {
"entryPoint": 2400,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 2405,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 2410,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2415,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 2420,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 2437,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2460,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:13031:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "160:865:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "170:110:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "272:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "195:76:1"
},
"nodeType": "YulFunctionCall",
"src": "195:84:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "179:15:1"
},
"nodeType": "YulFunctionCall",
"src": "179:101:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "170:5:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "289:16:1",
"value": {
"name": "array",
"nodeType": "YulIdentifier",
"src": "300:5:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "293:3:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "322:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "329:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "315:6:1"
},
"nodeType": "YulFunctionCall",
"src": "315:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "315:21:1"
},
{
"nodeType": "YulAssignment",
"src": "345:23:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "356:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "363:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "352:3:1"
},
"nodeType": "YulFunctionCall",
"src": "352:16:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "345:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "378:17:1",
"value": {
"name": "offset",
"nodeType": "YulIdentifier",
"src": "389:6:1"
},
"variables": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "382:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "444:103:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulIdentifier",
"src": "458:77:1"
},
"nodeType": "YulFunctionCall",
"src": "458:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "458:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "414:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "423:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "431:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "419:3:1"
},
"nodeType": "YulFunctionCall",
"src": "419:17:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "410:3:1"
},
"nodeType": "YulFunctionCall",
"src": "410:27:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "439:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "407:2:1"
},
"nodeType": "YulFunctionCall",
"src": "407:36:1"
},
"nodeType": "YulIf",
"src": "404:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "616:403:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "631:36:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "663:3:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "650:12:1"
},
"nodeType": "YulFunctionCall",
"src": "650:17:1"
},
"variables": [
{
"name": "innerOffset",
"nodeType": "YulTypedName",
"src": "635:11:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "719:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "721:77:1"
},
"nodeType": "YulFunctionCall",
"src": "721:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "721:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "innerOffset",
"nodeType": "YulIdentifier",
"src": "686:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "699:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "683:2:1"
},
"nodeType": "YulFunctionCall",
"src": "683:35:1"
},
"nodeType": "YulIf",
"src": "680:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "815:42:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "837:6:1"
},
{
"name": "innerOffset",
"nodeType": "YulIdentifier",
"src": "845:11:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "833:3:1"
},
"nodeType": "YulFunctionCall",
"src": "833:24:1"
},
"variables": [
{
"name": "elementPos",
"nodeType": "YulTypedName",
"src": "819:10:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "878:3:1"
},
{
"arguments": [
{
"name": "elementPos",
"nodeType": "YulIdentifier",
"src": "924:10:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "936:3:1"
}
],
"functionName": {
"name": "abi_decode_t_struct$_Call_$16_memory_ptr",
"nodeType": "YulIdentifier",
"src": "883:40:1"
},
"nodeType": "YulFunctionCall",
"src": "883:57:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "871:6:1"
},
"nodeType": "YulFunctionCall",
"src": "871:70:1"
},
"nodeType": "YulExpressionStatement",
"src": "871:70:1"
},
{
"nodeType": "YulAssignment",
"src": "954:21:1",
"value": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "965:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "970:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "961:3:1"
},
"nodeType": "YulFunctionCall",
"src": "961:14:1"
},
"variableNames": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "954:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "988:21:1",
"value": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "999:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1004:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "995:3:1"
},
"nodeType": "YulFunctionCall",
"src": "995:14:1"
},
"variableNames": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "988:3:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "578:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "581:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "575:2:1"
},
"nodeType": "YulFunctionCall",
"src": "575:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "589:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "591:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "600:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "603:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "596:3:1"
},
"nodeType": "YulFunctionCall",
"src": "596:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "591:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "560:14:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "562:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "571:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "566:1:1",
"type": ""
}
]
}
]
},
"src": "556:463:1"
}
]
},
"name": "abi_decode_available_length_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "130:6:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "138:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "146:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "154:5:1",
"type": ""
}
],
"src": "38:987:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1114:327:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1124:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1190:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1149:40:1"
},
"nodeType": "YulFunctionCall",
"src": "1149:48:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "1133:15:1"
},
"nodeType": "YulFunctionCall",
"src": "1133:65:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1124:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1214:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1221:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1207:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1207:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1207:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1237:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1252:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1259:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1248:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1248:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1241:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1302:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "1304:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1304:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1304:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1283:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1288:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1279:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1279:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1297:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1276:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1276:25:1"
},
"nodeType": "YulIf",
"src": "1273:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1418:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1423:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1428:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "1394:23:1"
},
"nodeType": "YulFunctionCall",
"src": "1394:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "1394:41:1"
}
]
},
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1087:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1092:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1100:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "1108:5:1",
"type": ""
}
],
"src": "1031:410:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1499:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1509:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1531:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1518:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1518:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1509:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1574:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "1547:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1547:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1547:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1477:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1485:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1493:5:1",
"type": ""
}
],
"src": "1447:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1720:313:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1769:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "1771:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1771:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1771:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1748:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1756:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1744:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1744:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1763:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1740:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1740:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1733:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1733:35:1"
},
"nodeType": "YulIf",
"src": "1730:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1861:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1888:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1875:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1875:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1865:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1904:123:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2000:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2008:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1996:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1996:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2015:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2023:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1913:82:1"
},
"nodeType": "YulFunctionCall",
"src": "1913:114:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1904:5:1"
}
]
}
]
},
"name": "abi_decode_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1698:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1706:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "1714:5:1",
"type": ""
}
],
"src": "1623:410:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2113:277:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2162:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2164:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2164:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2164:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2141:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2149:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2137:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2137:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2156:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2133:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2133:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2126:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2126:35:1"
},
"nodeType": "YulIf",
"src": "2123:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2254:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2281:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2268:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2268:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2258:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2297:87:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2357:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2365:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2353:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2353:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2372:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2380:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2306:46:1"
},
"nodeType": "YulFunctionCall",
"src": "2306:78:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2297:5:1"
}
]
}
]
},
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2091:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2099:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2107:5:1",
"type": ""
}
],
"src": "2052:338:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2500:669:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2544:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulIdentifier",
"src": "2546:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2546:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2546:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2521:3:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2526:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2517:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2517:19:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2538:4:1",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2513:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2513:30:1"
},
"nodeType": "YulIf",
"src": "2510:117:1"
},
{
"nodeType": "YulAssignment",
"src": "2636:30:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2661:4:1",
"type": "",
"value": "0x40"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2645:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2645:21:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2636:5:1"
}
]
},
{
"nodeType": "YulBlock",
"src": "2676:152:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2713:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2727:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2717:6:1",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2753:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2760:4:1",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2749:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2749:16:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2792:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2803:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2788:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2788:22:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2812:3:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "2767:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2767:49:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2742:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2742:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "2742:75:1"
}
]
},
{
"nodeType": "YulBlock",
"src": "2838:324:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2877:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2908:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2919:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2904:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2904:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2891:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2891:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2881:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2970:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulIdentifier",
"src": "2972:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2972:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2972:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2942:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2950:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2939:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2939:30:1"
},
"nodeType": "YulIf",
"src": "2936:117:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3078:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3085:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3074:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3074:16:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3126:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3137:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3122:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3122:22:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3146:3:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3092:29:1"
},
"nodeType": "YulFunctionCall",
"src": "3092:58:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3067:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3067:84:1"
},
"nodeType": "YulExpressionStatement",
"src": "3067:84:1"
}
]
}
]
},
"name": "abi_decode_t_struct$_Call_$16_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2475:9:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2486:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2494:5:1",
"type": ""
}
],
"src": "2425:744:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3238:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3248:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3263:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "3257:5:1"
},
"nodeType": "YulFunctionCall",
"src": "3257:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3248:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3306:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "3279:26:1"
},
"nodeType": "YulFunctionCall",
"src": "3279:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "3279:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3216:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3224:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3232:5:1",
"type": ""
}
],
"src": "3175:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3390:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3436:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3438:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3438:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3438:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3411:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3420:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3407:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3407:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3432:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3403:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3403:32:1"
},
"nodeType": "YulIf",
"src": "3400:119:1"
},
{
"nodeType": "YulBlock",
"src": "3529:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3544:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3558:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3548:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3573:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3608:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3619:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3604:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3604:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3628:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3583:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3583:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3573:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3360:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3371:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3383:6:1",
"type": ""
}
],
"src": "3324:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3770:468:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3816:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3818:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3818:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3818:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3791:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3800:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3787:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3787:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3812:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3783:32:1"
},
"nodeType": "YulIf",
"src": "3780:119:1"
},
{
"nodeType": "YulBlock",
"src": "3909:322:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3924:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3955:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3966:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3951:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3951:17:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3938:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3938:31:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3928:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4016:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "4018:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4018:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4018:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3988:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3996:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3985:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3985:30:1"
},
"nodeType": "YulIf",
"src": "3982:117:1"
},
{
"nodeType": "YulAssignment",
"src": "4113:108:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4193:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4204:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4189:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4189:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4213:7:1"
}
],
"functionName": {
"name": "abi_decode_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4123:65:1"
},
"nodeType": "YulFunctionCall",
"src": "4123:98:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4113:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3740:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3751:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3763:6:1",
"type": ""
}
],
"src": "3659:579:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4321:274:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4367:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4369:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4369:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4369:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4342:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4351:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4338:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4338:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4363:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4334:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4334:32:1"
},
"nodeType": "YulIf",
"src": "4331:119:1"
},
{
"nodeType": "YulBlock",
"src": "4460:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4475:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4489:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4479:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4504:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4550:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4561:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4546:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4546:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4570:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "4514:31:1"
},
"nodeType": "YulFunctionCall",
"src": "4514:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4504:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4291:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4302:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4314:6:1",
"type": ""
}
],
"src": "4244:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4699:94:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4709:78:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4775:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4783:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4723:51:1"
},
"nodeType": "YulFunctionCall",
"src": "4723:64:1"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "4709:10:1"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4672:6:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4680:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "4688:10:1",
"type": ""
}
],
"src": "4601:192:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4864:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4881:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4904:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4886:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4886:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4874:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4874:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "4874:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4852:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4859:3:1",
"type": ""
}
],
"src": "4799:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5091:841:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5101:77:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5172:5:1"
}
],
"functionName": {
"name": "array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5115:56:1"
},
"nodeType": "YulFunctionCall",
"src": "5115:63:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5105:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5187:102:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5277:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5282:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5194:82:1"
},
"nodeType": "YulFunctionCall",
"src": "5194:95:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5187:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5298:20:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5315:3:1"
},
"variables": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5302:9:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5327:39:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5343:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5352:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5360:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "5348:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5348:17:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5339:27:1"
},
"variables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5331:4:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5375:80:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5449:5:1"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5390:58:1"
},
"nodeType": "YulFunctionCall",
"src": "5390:65:1"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "5379:7:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5464:21:1",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "5478:7:1"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "5468:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5554:333:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5575:3:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5584:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5590:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5580:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5580:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5568:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5568:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "5568:33:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "5614:34:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "5641:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5635:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5635:13:1"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "5618:13:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5661:90:1",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "5731:13:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5746:4:1"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5669:61:1"
},
"nodeType": "YulFunctionCall",
"src": "5669:82:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5661:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5764:79:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "5836:6:1"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5774:61:1"
},
"nodeType": "YulFunctionCall",
"src": "5774:69:1"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "5764:6:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5856:21:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5867:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5872:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5863:14:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5856:3:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5516:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5519:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5513:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5513:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "5527:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5529:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5538:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5541:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5534:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5534:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5529:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "5498:14:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5500:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5509:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "5504:1:1",
"type": ""
}
]
}
]
},
"src": "5494:393:1"
},
{
"nodeType": "YulAssignment",
"src": "5896:11:1",
"value": {
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5903:4:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5896:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5916:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5923:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5916:3:1"
}
]
}
]
},
"name": "abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5070:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5077:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5086:3:1",
"type": ""
}
],
"src": "4949:983:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6018:260:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6028:52:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6074:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6042:31:1"
},
"nodeType": "YulFunctionCall",
"src": "6042:38:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6032:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6089:67:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6144:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6149:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6096:47:1"
},
"nodeType": "YulFunctionCall",
"src": "6096:60:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6089:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6191:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6198:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6187:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6187:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6205:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6210:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "6165:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6165:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "6165:52:1"
},
{
"nodeType": "YulAssignment",
"src": "6226:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6237:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6264:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6242:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6242:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6233:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6233:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6226:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5999:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6006:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6014:3:1",
"type": ""
}
],
"src": "5938:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6392:265:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6402:52:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6448:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6416:31:1"
},
"nodeType": "YulFunctionCall",
"src": "6416:38:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6406:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6463:95:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6546:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6551:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "6470:75:1"
},
"nodeType": "YulFunctionCall",
"src": "6470:88:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6463:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6593:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6600:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6589:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6589:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6607:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6612:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "6567:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6567:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "6567:52:1"
},
{
"nodeType": "YulAssignment",
"src": "6628:23:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6639:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6644:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6635:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6635:16:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6628:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6373:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6380:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6388:3:1",
"type": ""
}
],
"src": "6284:373:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6728:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6745:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6768:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6750:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6750:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6738:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6738:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "6738:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6716:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6723:3:1",
"type": ""
}
],
"src": "6663:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6921:137:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6932:100:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7019:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7028:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "6939:79:1"
},
"nodeType": "YulFunctionCall",
"src": "6939:93:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6932:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7042:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7049:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7042:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6900:3:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6906:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6917:3:1",
"type": ""
}
],
"src": "6787:271:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7162:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7172:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7184:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7195:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7180:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7180:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7172:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7252:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7265:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7276:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7261:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7261:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "7208:43:1"
},
"nodeType": "YulFunctionCall",
"src": "7208:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "7208:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7134:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7146:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7157:4:1",
"type": ""
}
],
"src": "7064:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7390:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7400:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7412:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7423:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7408:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7408:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7400:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7480:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7493:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7504:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7489:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7489:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "7436:43:1"
},
"nodeType": "YulFunctionCall",
"src": "7436:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "7436:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7362:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7374:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7385:4:1",
"type": ""
}
],
"src": "7292:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7714:325:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7724:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7736:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7747:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7732:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7732:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7724:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "7804:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7817:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7828:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7813:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7813:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "7760:43:1"
},
"nodeType": "YulFunctionCall",
"src": "7760:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "7760:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7852:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7863:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7848:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7848:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7872:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7878:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7868:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7868:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7841:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7841:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "7841:48:1"
},
{
"nodeType": "YulAssignment",
"src": "7898:134:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8018:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8027:4:1"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7906:111:1"
},
"nodeType": "YulFunctionCall",
"src": "7906:126:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7898:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_uint256_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_uint256_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7678:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "7690:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "7698:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7709:4:1",
"type": ""
}
],
"src": "7520:519:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8086:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8096:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "8106:18:1"
},
"nodeType": "YulFunctionCall",
"src": "8106:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8096:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8155:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8163:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "8135:19:1"
},
"nodeType": "YulFunctionCall",
"src": "8135:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "8135:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "8070:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "8079:6:1",
"type": ""
}
],
"src": "8045:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8220:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8230:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8246:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "8240:5:1"
},
"nodeType": "YulFunctionCall",
"src": "8240:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8230:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "8213:6:1",
"type": ""
}
],
"src": "8180:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8363:229:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8468:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "8470:16:1"
},
"nodeType": "YulFunctionCall",
"src": "8470:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "8470:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8440:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8448:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8437:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8437:30:1"
},
"nodeType": "YulIf",
"src": "8434:56:1"
},
{
"nodeType": "YulAssignment",
"src": "8500:25:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8512:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8520:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "8508:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8508:17:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8500:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8562:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8574:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8580:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8570:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8570:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8562:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "8347:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "8358:4:1",
"type": ""
}
],
"src": "8261:331:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8664:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8769:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "8771:16:1"
},
"nodeType": "YulFunctionCall",
"src": "8771:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "8771:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8741:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8749:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "8738:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8738:30:1"
},
"nodeType": "YulIf",
"src": "8735:56:1"
},
{
"nodeType": "YulAssignment",
"src": "8801:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "8831:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "8809:21:1"
},
"nodeType": "YulFunctionCall",
"src": "8809:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8801:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "8875:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8887:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8893:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8883:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8883:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "8875:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "8648:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "8659:4:1",
"type": ""
}
],
"src": "8598:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8992:60:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9002:11:1",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "9010:3:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9002:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "9023:22:1",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "9035:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9040:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9031:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9031:14:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "9023:4:1"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "8979:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "8987:4:1",
"type": ""
}
],
"src": "8911:141:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9141:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9152:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9168:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "9162:5:1"
},
"nodeType": "YulFunctionCall",
"src": "9162:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9152:6:1"
}
]
}
]
},
"name": "array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9124:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9134:6:1",
"type": ""
}
],
"src": "9058:123:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9245:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9256:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "9272:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "9266:5:1"
},
"nodeType": "YulFunctionCall",
"src": "9266:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9256:6:1"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9228:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9238:6:1",
"type": ""
}
],
"src": "9187:98:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9375:38:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9385:22:1",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "9397:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9402:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9393:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9393:14:1"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "9385:4:1"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "9362:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "9370:4:1",
"type": ""
}
],
"src": "9291:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9539:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9556:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9561:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9549:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9549:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "9549:19:1"
},
{
"nodeType": "YulAssignment",
"src": "9577:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9596:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9601:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9592:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9592:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "9577:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9511:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9516:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "9527:11:1",
"type": ""
}
],
"src": "9419:193:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9703:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9720:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "9725:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "9713:6:1"
},
"nodeType": "YulFunctionCall",
"src": "9713:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "9713:19:1"
},
{
"nodeType": "YulAssignment",
"src": "9741:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9760:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "9765:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "9756:3:1"
},
"nodeType": "YulFunctionCall",
"src": "9756:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "9741:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9675:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9680:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "9691:11:1",
"type": ""
}
],
"src": "9618:158:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9895:34:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9905:18:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "9920:3:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "9905:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "9867:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "9872:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "9883:11:1",
"type": ""
}
],
"src": "9782:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "9980:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "9990:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10019:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "10001:17:1"
},
"nodeType": "YulFunctionCall",
"src": "10001:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "9990:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "9962:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "9972:7:1",
"type": ""
}
],
"src": "9935:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10082:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10092:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "10107:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10114:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "10103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10103:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "10092:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10064:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "10074:7:1",
"type": ""
}
],
"src": "10037:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10214:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10224:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "10235:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "10224:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "10196:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "10206:7:1",
"type": ""
}
],
"src": "10169:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10303:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10326:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10331:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10336:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "10313:12:1"
},
"nodeType": "YulFunctionCall",
"src": "10313:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "10313:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10384:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10389:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10380:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10380:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10398:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10373:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10373:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "10373:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "10285:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "10290:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "10295:6:1",
"type": ""
}
],
"src": "10252:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10461:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10471:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "10480:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "10475:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10540:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10565:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10570:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10561:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10561:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "10584:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10589:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10580:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10580:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "10574:5:1"
},
"nodeType": "YulFunctionCall",
"src": "10574:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10554:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10554:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "10554:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10501:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10504:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "10498:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10498:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "10512:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "10514:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10523:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10526:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10519:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10519:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10514:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "10494:3:1",
"statements": []
},
"src": "10490:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10637:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "10687:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10692:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10683:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10683:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10701:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10676:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10676:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "10676:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "10618:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "10621:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10615:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10615:13:1"
},
"nodeType": "YulIf",
"src": "10612:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "10443:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "10448:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "10453:6:1",
"type": ""
}
],
"src": "10412:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "10768:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "10778:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10800:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "10830:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "10808:21:1"
},
"nodeType": "YulFunctionCall",
"src": "10808:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "10796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "10796:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "10782:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "10947:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "10949:16:1"
},
"nodeType": "YulFunctionCall",
"src": "10949:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "10949:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "10890:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10902:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "10887:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10887:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "10926:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "10938:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "10923:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10923:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "10884:2:1"
},
"nodeType": "YulFunctionCall",
"src": "10884:62:1"
},
"nodeType": "YulIf",
"src": "10881:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "10985:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "10989:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "10978:6:1"
},
"nodeType": "YulFunctionCall",
"src": "10978:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "10978:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "10754:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "10762:4:1",
"type": ""
}
],
"src": "10725:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11055:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "11065:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11092:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "11074:17:1"
},
"nodeType": "YulFunctionCall",
"src": "11074:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11065:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "11188:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "11190:16:1"
},
"nodeType": "YulFunctionCall",
"src": "11190:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "11190:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11113:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11120:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "11110:2:1"
},
"nodeType": "YulFunctionCall",
"src": "11110:77:1"
},
"nodeType": "YulIf",
"src": "11107:103:1"
},
{
"nodeType": "YulAssignment",
"src": "11219:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "11230:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11237:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "11226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "11226:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "11219:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "11041:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "11051:3:1",
"type": ""
}
],
"src": "11012:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11279:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11296:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11299:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11289:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11289:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "11289:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11393:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11396:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11386:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11386:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11386:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11417:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11420:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11410:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11410:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11410:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "11251:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11465:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11482:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11485:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11475:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11475:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "11475:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11579:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11582:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11572:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11572:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11572:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11603:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11606:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11596:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11596:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11596:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "11437:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11651:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11668:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11671:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11661:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11661:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "11661:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11765:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11768:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "11758:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11758:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11758:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11789:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11792:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11782:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11782:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "11782:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "11623:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "11898:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11915:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "11918:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "11908:6:1"
},
"nodeType": "YulFunctionCall",
"src": "11908:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "11908:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "11809:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12021:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12038:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12041:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12031:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12031:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12031:12:1"
}
]
},
"name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f",
"nodeType": "YulFunctionDefinition",
"src": "11932:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12144:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12161:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12164:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12154:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12154:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12154:12:1"
}
]
},
"name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421",
"nodeType": "YulFunctionDefinition",
"src": "12055:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12267:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12284:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12287:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12277:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12277:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12277:12:1"
}
]
},
"name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef",
"nodeType": "YulFunctionDefinition",
"src": "12178:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12390:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12407:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12410:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12400:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12400:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12400:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "12301:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12513:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12530:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12533:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12523:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12523:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12523:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "12424:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12636:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12653:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12656:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12646:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12646:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12646:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "12547:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12718:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "12728:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12746:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12753:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "12742:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12742:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12762:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "12758:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12758:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "12738:3:1"
},
"nodeType": "YulFunctionCall",
"src": "12738:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "12728:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12701:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "12711:6:1",
"type": ""
}
],
"src": "12670:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12821:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "12878:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12887:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "12890:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "12880:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12880:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "12880:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12844:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12869:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "12851:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12851:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "12841:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12841:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12834:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12834:43:1"
},
"nodeType": "YulIf",
"src": "12831:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12814:5:1",
"type": ""
}
],
"src": "12778:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "12949:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "13006:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13015:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "13018:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "13008:6:1"
},
"nodeType": "YulFunctionCall",
"src": "13008:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "13008:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12972:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "12997:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "12979:17:1"
},
"nodeType": "YulFunctionCall",
"src": "12979:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "12969:2:1"
},
"nodeType": "YulFunctionCall",
"src": "12969:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "12962:6:1"
},
"nodeType": "YulFunctionCall",
"src": "12962:43:1"
},
"nodeType": "YulIf",
"src": "12959:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "12942:5:1",
"type": ""
}
],
"src": "12906:122:1"
}
]
},
"contents": "{\n\n // struct Multicall.Call[]\n function abi_decode_available_length_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(length))\n let dst := array\n\n mstore(array, length)\n dst := add(array, 0x20)\n\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) {\n revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef()\n }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n\n let innerOffset := calldataload(src)\n if gt(innerOffset, 0xffffffffffffffff) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let elementPos := add(offset, innerOffset)\n\n mstore(dst, abi_decode_t_struct$_Call_$16_memory_ptr(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // struct Multicall.Call[]\n function abi_decode_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // struct Multicall.Call\n function abi_decode_t_struct$_Call_$16_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0x40)\n\n {\n // target\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_address(add(headStart, offset), end))\n\n }\n\n {\n // callData\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value0, pos) -> updatedPos {\n updatedPos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value0, pos)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n // bytes[] -> bytes[]\n function abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(pos, length)\n let headStart := pos\n let tail := add(pos, mul(length, 0x20))\n let baseRef := array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, sub(tail, headStart))\n let elementValue0 := mload(srcPtr)\n tail := abi_encodeUpdatedPos_t_bytes_memory_ptr_to_t_bytes_memory_ptr(elementValue0, tail)\n srcPtr := array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(srcPtr)\n pos := add(pos, 0x20)\n }\n pos := tail\n end := pos\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_uint256_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_to_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(value1, tail)\n\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_array$_t_struct$_Call_$16_memory_ptr_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80630f28c97d14610051578063252dba421461006f5780634d2301cc146100a057806386d516e8146100d0575b600080fd5b6100596100ee565b604051610066919061069f565b60405180910390f35b610089600480360381019061008491906104e6565b6100f6565b6040516100979291906106ba565b60405180910390f35b6100ba60048036038101906100b591906104b9565b610249565b6040516100c7919061069f565b60405180910390f35b6100d86102ef565b6040516100e5919061069f565b60405180910390f35b600042905090565b60006060439150825167ffffffffffffffff81111561011857610117610922565b5b60405190808252806020026020018201604052801561014b57816020015b60608152602001906001900390816101365790505b50905060005b8351811015610243576000808583815181106101705761016f6108f3565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168684815181106101a5576101a46108f3565b5b6020026020010151602001516040516101be919061066d565b6000604051808303816000865af19150503d80600081146101fb576040519150601f19603f3d011682016040523d82523d6000602084013e610200565b606091505b50915091508161020f57600080fd5b80848481518110610223576102226108f3565b5b60200260200101819052505050808061023b9061087b565b915050610151565b50915091565b600073420000000000000000000000000000000000000673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b81526004016102989190610684565b60206040518083038186803b1580156102b057600080fd5b505afa1580156102c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e8919061052f565b9050919050565b600045905090565b600061030a6103058461070f565b6106ea565b9050808382526020820190508285602086028201111561032d5761032c610960565b5b60005b8581101561037b57813567ffffffffffffffff81111561035357610352610951565b5b8086016103608982610438565b85526020850194506020840193505050600181019050610330565b5050509392505050565b60006103986103938461073b565b6106ea565b9050828152602081018484840111156103b4576103b3610965565b5b6103bf848285610808565b509392505050565b6000813590506103d681610985565b92915050565b600082601f8301126103f1576103f0610951565b5b81356104018482602086016102f7565b91505092915050565b600082601f83011261041f5761041e610951565b5b813561042f848260208601610385565b91505092915050565b60006040828403121561044e5761044d610956565b5b61045860406106ea565b90506000610468848285016103c7565b600083015250602082013567ffffffffffffffff81111561048c5761048b61095b565b5b6104988482850161040a565b60208301525092915050565b6000815190506104b38161099c565b92915050565b6000602082840312156104cf576104ce61096f565b5b60006104dd848285016103c7565b91505092915050565b6000602082840312156104fc576104fb61096f565b5b600082013567ffffffffffffffff81111561051a5761051961096a565b5b610526848285016103dc565b91505092915050565b6000602082840312156105455761054461096f565b5b6000610553848285016104a4565b91505092915050565b600061056883836105f4565b905092915050565b610579816107cc565b82525050565b600061058a8261077c565b610594818561079f565b9350836020820285016105a68561076c565b8060005b858110156105e257848403895281516105c3858261055c565b94506105ce83610792565b925060208a019950506001810190506105aa565b50829750879550505050505092915050565b60006105ff82610787565b61060981856107b0565b9350610619818560208601610817565b61062281610974565b840191505092915050565b600061063882610787565b61064281856107c1565b9350610652818560208601610817565b80840191505092915050565b610667816107fe565b82525050565b6000610679828461062d565b915081905092915050565b60006020820190506106996000830184610570565b92915050565b60006020820190506106b4600083018461065e565b92915050565b60006040820190506106cf600083018561065e565b81810360208301526106e1818461057f565b90509392505050565b60006106f4610705565b9050610700828261084a565b919050565b6000604051905090565b600067ffffffffffffffff82111561072a57610729610922565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561075657610755610922565b5b61075f82610974565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006107d7826107de565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561083557808201518184015260208101905061081a565b83811115610844576000848401525b50505050565b61085382610974565b810181811067ffffffffffffffff8211171561087257610871610922565b5b80604052505050565b6000610886826107fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156108b9576108b86108c4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61098e816107cc565b811461099957600080fd5b50565b6109a5816107fe565b81146109b057600080fd5b5056fea2646970667358221220833e3d2dac267b72e3dd48ce2a2476f35e2c6d05f3a5847471e27cf00b5cd22864736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF28C97D EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x252DBA42 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x4D2301CC EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x86D516E8 EQ PUSH2 0xD0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x89 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x4E6 JUMP JUMPDEST PUSH2 0xF6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP3 SWAP2 SWAP1 PUSH2 0x6BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xBA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB5 SWAP2 SWAP1 PUSH2 0x4B9 JUMP JUMPDEST PUSH2 0x249 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD8 PUSH2 0x2EF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x69F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 TIMESTAMP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 NUMBER SWAP2 POP DUP3 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x118 JUMPI PUSH2 0x117 PUSH2 0x922 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x14B JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x136 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x243 JUMPI PUSH1 0x0 DUP1 DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x170 JUMPI PUSH2 0x16F PUSH2 0x8F3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x1A5 JUMPI PUSH2 0x1A4 PUSH2 0x8F3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x66D JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1FB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x200 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x20F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 DUP5 DUP5 DUP2 MLOAD DUP2 LT PUSH2 0x223 JUMPI PUSH2 0x222 PUSH2 0x8F3 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 SWAP1 MSTORE POP POP POP DUP1 DUP1 PUSH2 0x23B SWAP1 PUSH2 0x87B JUMP JUMPDEST SWAP2 POP POP PUSH2 0x151 JUMP JUMPDEST POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH20 0x4200000000000000000000000000000000000006 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x70A08231 DUP4 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x298 SWAP2 SWAP1 PUSH2 0x684 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2C4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x2E8 SWAP2 SWAP1 PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 GASLIMIT SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x30A PUSH2 0x305 DUP5 PUSH2 0x70F JUMP JUMPDEST PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x32D JUMPI PUSH2 0x32C PUSH2 0x960 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x37B JUMPI DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x353 JUMPI PUSH2 0x352 PUSH2 0x951 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x360 DUP10 DUP3 PUSH2 0x438 JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP5 ADD SWAP4 POP POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x330 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x398 PUSH2 0x393 DUP5 PUSH2 0x73B JUMP JUMPDEST PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x3B4 JUMPI PUSH2 0x3B3 PUSH2 0x965 JUMP JUMPDEST JUMPDEST PUSH2 0x3BF DUP5 DUP3 DUP6 PUSH2 0x808 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3D6 DUP2 PUSH2 0x985 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3F1 JUMPI PUSH2 0x3F0 PUSH2 0x951 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x401 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x41F JUMPI PUSH2 0x41E PUSH2 0x951 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x42F DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x385 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x44E JUMPI PUSH2 0x44D PUSH2 0x956 JUMP JUMPDEST JUMPDEST PUSH2 0x458 PUSH1 0x40 PUSH2 0x6EA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x468 DUP5 DUP3 DUP6 ADD PUSH2 0x3C7 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x48C JUMPI PUSH2 0x48B PUSH2 0x95B JUMP JUMPDEST JUMPDEST PUSH2 0x498 DUP5 DUP3 DUP6 ADD PUSH2 0x40A JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4B3 DUP2 PUSH2 0x99C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4CF JUMPI PUSH2 0x4CE PUSH2 0x96F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4DD DUP5 DUP3 DUP6 ADD PUSH2 0x3C7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4FC JUMPI PUSH2 0x4FB PUSH2 0x96F JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x51A JUMPI PUSH2 0x519 PUSH2 0x96A JUMP JUMPDEST JUMPDEST PUSH2 0x526 DUP5 DUP3 DUP6 ADD PUSH2 0x3DC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x545 JUMPI PUSH2 0x544 PUSH2 0x96F JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x553 DUP5 DUP3 DUP6 ADD PUSH2 0x4A4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x568 DUP4 DUP4 PUSH2 0x5F4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x579 DUP2 PUSH2 0x7CC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x58A DUP3 PUSH2 0x77C JUMP JUMPDEST PUSH2 0x594 DUP2 DUP6 PUSH2 0x79F JUMP JUMPDEST SWAP4 POP DUP4 PUSH1 0x20 DUP3 MUL DUP6 ADD PUSH2 0x5A6 DUP6 PUSH2 0x76C JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x5E2 JUMPI DUP5 DUP5 SUB DUP10 MSTORE DUP2 MLOAD PUSH2 0x5C3 DUP6 DUP3 PUSH2 0x55C JUMP JUMPDEST SWAP5 POP PUSH2 0x5CE DUP4 PUSH2 0x792 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP11 ADD SWAP10 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x5AA JUMP JUMPDEST POP DUP3 SWAP8 POP DUP8 SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5FF DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH2 0x609 DUP2 DUP6 PUSH2 0x7B0 JUMP JUMPDEST SWAP4 POP PUSH2 0x619 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x817 JUMP JUMPDEST PUSH2 0x622 DUP2 PUSH2 0x974 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x638 DUP3 PUSH2 0x787 JUMP JUMPDEST PUSH2 0x642 DUP2 DUP6 PUSH2 0x7C1 JUMP JUMPDEST SWAP4 POP PUSH2 0x652 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x817 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x667 DUP2 PUSH2 0x7FE JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x679 DUP3 DUP5 PUSH2 0x62D JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x699 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x570 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x6B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x65E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x6CF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x65E JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x6E1 DUP2 DUP5 PUSH2 0x57F JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6F4 PUSH2 0x705 JUMP JUMPDEST SWAP1 POP PUSH2 0x700 DUP3 DUP3 PUSH2 0x84A JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x72A JUMPI PUSH2 0x729 PUSH2 0x922 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x756 JUMPI PUSH2 0x755 PUSH2 0x922 JUMP JUMPDEST JUMPDEST PUSH2 0x75F DUP3 PUSH2 0x974 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7D7 DUP3 PUSH2 0x7DE JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x835 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x81A JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x844 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x853 DUP3 PUSH2 0x974 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x872 JUMPI PUSH2 0x871 PUSH2 0x922 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x886 DUP3 PUSH2 0x7FE JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x8B9 JUMPI PUSH2 0x8B8 PUSH2 0x8C4 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x98E DUP2 PUSH2 0x7CC JUMP JUMPDEST DUP2 EQ PUSH2 0x999 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x9A5 DUP2 PUSH2 0x7FE JUMP JUMPDEST DUP2 EQ PUSH2 0x9B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP4 RETURNDATACOPY RETURNDATASIZE 0x2D 0xAC 0x26 PUSH28 0x72E3DD48CE2A2476F35E2C6D05F3A5847471E27CF00B5CD22864736F PUSH13 0x63430008070033000000000000 ",
"sourceMap": "413:936:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1106:120;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:408;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;923:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1231:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1106:120;1163:17;1204:15;1192:27;;1106:120;:::o;510:408::-;566:19;587:25;638:12;624:26;;685:5;:12;673:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:38;;712:9;708:204;731:5;:12;727:1;:16;708:204;;;765:12;779:16;799:5;805:1;799:8;;;;;;;;:::i;:::-;;;;;;;;:15;;;:20;;820:5;826:1;820:8;;;;;;;;:::i;:::-;;;;;;;;:17;;;799:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;764:74;;;;860:7;852:16;;;;;;898:3;882:10;893:1;882:13;;;;;;;;:::i;:::-;;;;;;;:19;;;;750:162;;745:3;;;;;:::i;:::-;;;;708:204;;;;510:408;;;:::o;923:178::-;981:15;1034:42;1018:70;;;1089:4;1018:76;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1008:86;;923:178;;;:::o;1231:116::-;1287:16;1326:14;1315:25;;1231:116;:::o;38:987:1:-;154:5;179:101;195:84;272:6;195:84;:::i;:::-;179:101;:::i;:::-;170:110;;300:5;329:6;322:5;315:21;363:4;356:5;352:16;345:23;;389:6;439:3;431:4;423:6;419:17;414:3;410:27;407:36;404:143;;;458:79;;:::i;:::-;404:143;571:1;556:463;581:6;578:1;575:13;556:463;;;663:3;650:17;699:18;686:11;683:35;680:122;;;721:79;;:::i;:::-;680:122;845:11;837:6;833:24;883:57;936:3;924:10;883:57;:::i;:::-;878:3;871:70;970:4;965:3;961:14;954:21;;1004:4;999:3;995:14;988:21;;616:403;;603:1;600;596:9;591:14;;556:463;;;560:14;160:865;;38:987;;;;;:::o;1031:410::-;1108:5;1133:65;1149:48;1190:6;1149:48;:::i;:::-;1133:65;:::i;:::-;1124:74;;1221:6;1214:5;1207:21;1259:4;1252:5;1248:16;1297:3;1288:6;1283:3;1279:16;1276:25;1273:112;;;1304:79;;:::i;:::-;1273:112;1394:41;1428:6;1423:3;1418;1394:41;:::i;:::-;1114:327;1031:410;;;;;:::o;1447:139::-;1493:5;1531:6;1518:20;1509:29;;1547:33;1574:5;1547:33;:::i;:::-;1447:139;;;;:::o;1623:410::-;1714:5;1763:3;1756:4;1748:6;1744:17;1740:27;1730:122;;1771:79;;:::i;:::-;1730:122;1888:6;1875:20;1913:114;2023:3;2015:6;2008:4;2000:6;1996:17;1913:114;:::i;:::-;1904:123;;1720:313;1623:410;;;;:::o;2052:338::-;2107:5;2156:3;2149:4;2141:6;2137:17;2133:27;2123:122;;2164:79;;:::i;:::-;2123:122;2281:6;2268:20;2306:78;2380:3;2372:6;2365:4;2357:6;2353:17;2306:78;:::i;:::-;2297:87;;2113:277;2052:338;;;;:::o;2425:744::-;2494:5;2538:4;2526:9;2521:3;2517:19;2513:30;2510:117;;;2546:79;;:::i;:::-;2510:117;2645:21;2661:4;2645:21;:::i;:::-;2636:30;;2727:1;2767:49;2812:3;2803:6;2792:9;2788:22;2767:49;:::i;:::-;2760:4;2753:5;2749:16;2742:75;2676:152;2919:2;2908:9;2904:18;2891:32;2950:18;2942:6;2939:30;2936:117;;;2972:79;;:::i;:::-;2936:117;3092:58;3146:3;3137:6;3126:9;3122:22;3092:58;:::i;:::-;3085:4;3078:5;3074:16;3067:84;2838:324;2425:744;;;;:::o;3175:143::-;3232:5;3263:6;3257:13;3248:22;;3279:33;3306:5;3279:33;:::i;:::-;3175:143;;;;:::o;3324:329::-;3383:6;3432:2;3420:9;3411:7;3407:23;3403:32;3400:119;;;3438:79;;:::i;:::-;3400:119;3558:1;3583:53;3628:7;3619:6;3608:9;3604:22;3583:53;:::i;:::-;3573:63;;3529:117;3324:329;;;;:::o;3659:579::-;3763:6;3812:2;3800:9;3791:7;3787:23;3783:32;3780:119;;;3818:79;;:::i;:::-;3780:119;3966:1;3955:9;3951:17;3938:31;3996:18;3988:6;3985:30;3982:117;;;4018:79;;:::i;:::-;3982:117;4123:98;4213:7;4204:6;4193:9;4189:22;4123:98;:::i;:::-;4113:108;;3909:322;3659:579;;;;:::o;4244:351::-;4314:6;4363:2;4351:9;4342:7;4338:23;4334:32;4331:119;;;4369:79;;:::i;:::-;4331:119;4489:1;4514:64;4570:7;4561:6;4550:9;4546:22;4514:64;:::i;:::-;4504:74;;4460:128;4244:351;;;;:::o;4601:192::-;4688:10;4723:64;4783:3;4775:6;4723:64;:::i;:::-;4709:78;;4601:192;;;;:::o;4799:118::-;4886:24;4904:5;4886:24;:::i;:::-;4881:3;4874:37;4799:118;;:::o;4949:983::-;5086:3;5115:63;5172:5;5115:63;:::i;:::-;5194:95;5282:6;5277:3;5194:95;:::i;:::-;5187:102;;5315:3;5360:4;5352:6;5348:17;5343:3;5339:27;5390:65;5449:5;5390:65;:::i;:::-;5478:7;5509:1;5494:393;5519:6;5516:1;5513:13;5494:393;;;5590:9;5584:4;5580:20;5575:3;5568:33;5641:6;5635:13;5669:82;5746:4;5731:13;5669:82;:::i;:::-;5661:90;;5774:69;5836:6;5774:69;:::i;:::-;5764:79;;5872:4;5867:3;5863:14;5856:21;;5554:333;5541:1;5538;5534:9;5529:14;;5494:393;;;5498:14;5903:4;5896:11;;5923:3;5916:10;;5091:841;;;;;4949:983;;;;:::o;5938:340::-;6014:3;6042:38;6074:5;6042:38;:::i;:::-;6096:60;6149:6;6144:3;6096:60;:::i;:::-;6089:67;;6165:52;6210:6;6205:3;6198:4;6191:5;6187:16;6165:52;:::i;:::-;6242:29;6264:6;6242:29;:::i;:::-;6237:3;6233:39;6226:46;;6018:260;5938:340;;;;:::o;6284:373::-;6388:3;6416:38;6448:5;6416:38;:::i;:::-;6470:88;6551:6;6546:3;6470:88;:::i;:::-;6463:95;;6567:52;6612:6;6607:3;6600:4;6593:5;6589:16;6567:52;:::i;:::-;6644:6;6639:3;6635:16;6628:23;;6392:265;6284:373;;;;:::o;6663:118::-;6750:24;6768:5;6750:24;:::i;:::-;6745:3;6738:37;6663:118;;:::o;6787:271::-;6917:3;6939:93;7028:3;7019:6;6939:93;:::i;:::-;6932:100;;7049:3;7042:10;;6787:271;;;;:::o;7064:222::-;7157:4;7195:2;7184:9;7180:18;7172:26;;7208:71;7276:1;7265:9;7261:17;7252:6;7208:71;:::i;:::-;7064:222;;;;:::o;7292:::-;7385:4;7423:2;7412:9;7408:18;7400:26;;7436:71;7504:1;7493:9;7489:17;7480:6;7436:71;:::i;:::-;7292:222;;;;:::o;7520:519::-;7709:4;7747:2;7736:9;7732:18;7724:26;;7760:71;7828:1;7817:9;7813:17;7804:6;7760:71;:::i;:::-;7878:9;7872:4;7868:20;7863:2;7852:9;7848:18;7841:48;7906:126;8027:4;8018:6;7906:126;:::i;:::-;7898:134;;7520:519;;;;;:::o;8045:129::-;8079:6;8106:20;;:::i;:::-;8096:30;;8135:33;8163:4;8155:6;8135:33;:::i;:::-;8045:129;;;:::o;8180:75::-;8213:6;8246:2;8240:9;8230:19;;8180:75;:::o;8261:331::-;8358:4;8448:18;8440:6;8437:30;8434:56;;;8470:18;;:::i;:::-;8434:56;8520:4;8512:6;8508:17;8500:25;;8580:4;8574;8570:15;8562:23;;8261:331;;;:::o;8598:307::-;8659:4;8749:18;8741:6;8738:30;8735:56;;;8771:18;;:::i;:::-;8735:56;8809:29;8831:6;8809:29;:::i;:::-;8801:37;;8893:4;8887;8883:15;8875:23;;8598:307;;;:::o;8911:141::-;8987:4;9010:3;9002:11;;9040:4;9035:3;9031:14;9023:22;;8911:141;;;:::o;9058:123::-;9134:6;9168:5;9162:12;9152:22;;9058:123;;;:::o;9187:98::-;9238:6;9272:5;9266:12;9256:22;;9187:98;;;:::o;9291:122::-;9370:4;9402;9397:3;9393:14;9385:22;;9291:122;;;:::o;9419:193::-;9527:11;9561:6;9556:3;9549:19;9601:4;9596:3;9592:14;9577:29;;9419:193;;;;:::o;9618:158::-;9691:11;9725:6;9720:3;9713:19;9765:4;9760:3;9756:14;9741:29;;9618:158;;;;:::o;9782:147::-;9883:11;9920:3;9905:18;;9782:147;;;;:::o;9935:96::-;9972:7;10001:24;10019:5;10001:24;:::i;:::-;9990:35;;9935:96;;;:::o;10037:126::-;10074:7;10114:42;10107:5;10103:54;10092:65;;10037:126;;;:::o;10169:77::-;10206:7;10235:5;10224:16;;10169:77;;;:::o;10252:154::-;10336:6;10331:3;10326;10313:30;10398:1;10389:6;10384:3;10380:16;10373:27;10252:154;;;:::o;10412:307::-;10480:1;10490:113;10504:6;10501:1;10498:13;10490:113;;;10589:1;10584:3;10580:11;10574:18;10570:1;10565:3;10561:11;10554:39;10526:2;10523:1;10519:10;10514:15;;10490:113;;;10621:6;10618:1;10615:13;10612:101;;;10701:1;10692:6;10687:3;10683:16;10676:27;10612:101;10461:258;10412:307;;;:::o;10725:281::-;10808:27;10830:4;10808:27;:::i;:::-;10800:6;10796:40;10938:6;10926:10;10923:22;10902:18;10890:10;10887:34;10884:62;10881:88;;;10949:18;;:::i;:::-;10881:88;10989:10;10985:2;10978:22;10768:238;10725:281;;:::o;11012:233::-;11051:3;11074:24;11092:5;11074:24;:::i;:::-;11065:33;;11120:66;11113:5;11110:77;11107:103;;;11190:18;;:::i;:::-;11107:103;11237:1;11230:5;11226:13;11219:20;;11012:233;;;:::o;11251:180::-;11299:77;11296:1;11289:88;11396:4;11393:1;11386:15;11420:4;11417:1;11410:15;11437:180;11485:77;11482:1;11475:88;11582:4;11579:1;11572:15;11606:4;11603:1;11596:15;11623:180;11671:77;11668:1;11661:88;11768:4;11765:1;11758:15;11792:4;11789:1;11782:15;11809:117;11918:1;11915;11908:12;11932:117;12041:1;12038;12031:12;12055:117;12164:1;12161;12154:12;12178:117;12287:1;12284;12277:12;12301:117;12410:1;12407;12400:12;12424:117;12533:1;12530;12523:12;12547:117;12656:1;12653;12646:12;12670:102;12711:6;12762:2;12758:7;12753:2;12746:5;12742:14;12738:28;12728:38;;12670:102;;;:::o;12778:122::-;12851:24;12869:5;12851:24;:::i;:::-;12844:5;12841:35;12831:63;;12890:1;12887;12880:12;12831:63;12778:122;:::o;12906:::-;12979:24;12997:5;12979:24;:::i;:::-;12972:5;12969:35;12959:63;;13018:1;13015;13008:12;12959:63;12906:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "507400",
"executionCost": "543",
"totalCost": "507943"
},
"external": {
"aggregate((address,bytes)[])": "infinite",
"getCurrentBlockGasLimit()": "380",
"getCurrentBlockTimestamp()": "314",
"getEthBalance(address)": "infinite"
}
},
"methodIdentifiers": {
"aggregate((address,bytes)[])": "252dba42",
"getCurrentBlockGasLimit()": "86d516e8",
"getCurrentBlockTimestamp()": "0f28c97d",
"getEthBalance(address)": "4d2301cc"
}
},
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"internalType": "struct Multicall.Call[]",
"name": "calls",
"type": "tuple[]"
}
],
"name": "aggregate",
"outputs": [
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
},
{
"internalType": "bytes[]",
"name": "returnData",
"type": "bytes[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentBlockGasLimit",
"outputs": [
{
"internalType": "uint256",
"name": "gaslimit",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentBlockTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "getEthBalance",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"internalType": "struct Multicall.Call[]",
"name": "calls",
"type": "tuple[]"
}
],
"name": "aggregate",
"outputs": [
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
},
{
"internalType": "bytes[]",
"name": "returnData",
"type": "bytes[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentBlockGasLimit",
"outputs": [
{
"internalType": "uint256",
"name": "gaslimit",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentBlockTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "getEthBalance",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/multicall.sol": "Multicall"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/multicall.sol": {
"keccak256": "0x8292fdfba5ffa0c1b24422d46746e94cb313070a45603b6935dee2abd96c1126",
"license": "MIT",
"urls": [
"bzz-raw://b8643a674e69a5ba3aad193bebbbd67f02f88a92950563dd6d524391acf59a74",
"dweb:/ipfs/QmSVbmSKc4a5GAcY6axEbJHcCs8JzBx727J9P4A2oiubem"
]
}
},
"version": 1
}
{
"accounts": {
"account{0}": "0x24F15402C6Bb870554489b2fd2049A85d75B982f"
},
"linkReferences": {},
"transactions": [
{
"timestamp": 1632830983683,
"record": {
"value": "0",
"parameters": [],
"abi": "0x11059d319d087a68d841d267dc206cd2782a57990b24e4534ea3536d61a23e35",
"contractName": "Multicall",
"bytecode": "60806040523480156100195760008061001661001f565b50505b5061008d565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561005a57808601518160408401015260208101905061003c565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b610ec78061009c6000396000f3fe608060405234801561001957600080610016610418565b50505b50600436106100555760003560e01c80630f28c97d14610063578063252dba42146100815780634d2301cc146100b257806386d516e8146100e2575b600080610060610418565b50505b61006b610100565b6040516100789190610bdf565b60405180910390f35b61009b60048036038101906100969190610a17565b610110565b6040516100a9929190610bfa565b60405180910390f35b6100cc60048036038101906100c791906109e5565b61033d565b6040516100d99190610bdf565b60405180910390f35b6100ea610408565b6040516100f79190610bdf565b60405180910390f35b60005a61010b610486565b905090565b600060605a61011d6104e3565b9150825167ffffffffffffffff811115610169577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000610166610418565b50505b60405190808252806020026020018201604052801561019c57816020015b60608152602001906001900390816101875790505b50905060005b8351811015610337576000808583815181106101f0577f4e487b71000000000000000000000000000000000000000000000000000000006000526032600452602460006101ed610418565b50505b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16868481518110610254577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000610251610418565b50505b60200260200101516020015160405161026d9190610bad565b6000604051808303816000865a610282610540565b5050505050509150503d80600081146102b7576040519150601f19603f3d011682016040523d82523d6000602084013e6102bc565b606091505b5091509150816102d4576000806102d1610418565b50505b80848481518110610317577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000610314610418565b50505b60200260200101819052505050808061032f90610dbb565b9150506101a2565b50915091565b600073420000000000000000000000000000000000000673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff1660e01b815260040161038c9190610bc4565b602060405180830381868061039f610640565b1580156103b4576000806103b1610418565b50505b505a6103be6106a3565b50505050501580156103dd573d6000803e3d60006103da610418565b50505b505050506040513d601f19601f820116820180604052508101906104019190610a6a565b9050919050565b60005a6104136107a3565b905090565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015610453578086015181604084010152602081019050610435565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156104de576000818301526020810190506104c4565b505050565b635a98c361598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561053b57600081830152602081019050610521565b505050565b6385979f76598160e01b815261057f565b600081905081831115610562578290505b92915050565b600081905081831015610579578290505b92915050565b836004820152846024820152606060448201528760648201526084810160005b898110156105ba57808901518183015260208101905061059f565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af1505961060f8e3d610568565b8d0161061b8187610551565b5b82811015610633576000815260208101905061061c565b50839e5050505050505050565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561069e57600081830152602081019050610684565b505050565b638540661f598160e01b81526106e2565b6000819050818311156106c5578290505b92915050565b6000819050818310156106dc578290505b92915050565b836004820152846024820152606060448201528660648201526084810160005b8881101561071d578088015181830152602081019050610702565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596107728d3d6106cb565b8c0161077e81876106b4565b5b82811015610796576000815260208101905061077f565b50839d5050505050505050565b6320160f3a598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156107fb576000818301526020810190506107e1565b505050565b600061081361080e84610c4f565b610c2a565b9050808382526020820190508285602086028201111561083b57600080610838610418565b50505b60005b8581101561088e57813567ffffffffffffffff81111561086657600080610863610418565b50505b808601610873898261095a565b8552602085019450602084019350505060018101905061083e565b5050509392505050565b60006108ab6108a684610c7b565b610c2a565b9050828152602081018484840111156108cc576000806108c9610418565b50505b6108d7848285610d48565b509392505050565b6000813590506108ee81610e87565b92915050565b600082601f83011261090e5760008061090b610418565b50505b813561091e848260208601610800565b91505092915050565b600082601f8301126109415760008061093e610418565b50505b8135610951848260208601610898565b91505092915050565b60006040828403121561097557600080610972610418565b50505b61097f6040610c2a565b9050600061098f848285016108df565b600083015250602082013567ffffffffffffffff8111156109b8576000806109b5610418565b50505b6109c484828501610927565b60208301525092915050565b6000815190506109df81610ea7565b92915050565b600060208284031215610a00576000806109fd610418565b50505b6000610a0e848285016108df565b91505092915050565b600060208284031215610a3257600080610a2f610418565b50505b600082013567ffffffffffffffff811115610a5557600080610a52610418565b50505b610a61848285016108f4565b91505092915050565b600060208284031215610a8557600080610a82610418565b50505b6000610a93848285016109d0565b91505092915050565b6000610aa88383610b34565b905092915050565b610ab981610d0c565b82525050565b6000610aca82610cbc565b610ad48185610cdf565b935083602082028501610ae685610cac565b8060005b85811015610b225784840389528151610b038582610a9c565b9450610b0e83610cd2565b925060208a01995050600181019050610aea565b50829750879550505050505092915050565b6000610b3f82610cc7565b610b498185610cf0565b9350610b59818560208601610d57565b610b6281610e76565b840191505092915050565b6000610b7882610cc7565b610b828185610d01565b9350610b92818560208601610d57565b80840191505092915050565b610ba781610d3e565b82525050565b6000610bb98284610b6d565b915081905092915050565b6000602082019050610bd96000830184610ab0565b92915050565b6000602082019050610bf46000830184610b9e565b92915050565b6000604082019050610c0f6000830185610b9e565b8181036020830152610c218184610abf565b90509392505050565b6000610c34610c45565b9050610c408282610d8a565b919050565b6000604051905090565b600067ffffffffffffffff821115610c6a57610c69610e3d565b5b602082029050602081019050919050565b600067ffffffffffffffff821115610c9657610c95610e3d565b5b610c9f82610e76565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000610d1782610d1e565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610d75578082015181840152602081019050610d5a565b83811115610d84576000848401525b50505050565b610d9382610e76565b810181811067ffffffffffffffff82111715610db257610db1610e3d565b5b80604052505050565b6000610dc682610d3e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610df957610df8610e04565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000610e39610418565b5050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000610e72610418565b5050565b6000601f19601f8301169050919050565b610e9081610d0c565b8114610ea457600080610ea1610418565b50505b50565b610eb081610d3e565b8114610ec457600080610ec1610418565b50505b5056",
"linkReferences": {},
"name": "",
"inputs": "()",
"type": "constructor",
"from": "account{0}"
}
}
],
"abis": {
"0x11059d319d087a68d841d267dc206cd2782a57990b24e4534ea3536d61a23e35": [
{
"inputs": [
{
"components": [
{
"internalType": "address",
"name": "target",
"type": "address"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"internalType": "struct Multicall.Call[]",
"name": "calls",
"type": "tuple[]"
}
],
"name": "aggregate",
"outputs": [
{
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
},
{
"internalType": "bytes[]",
"name": "returnData",
"type": "bytes[]"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentBlockGasLimit",
"outputs": [
{
"internalType": "uint256",
"name": "gaslimit",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getCurrentBlockTimestamp",
"outputs": [
{
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "addr",
"type": "address"
}
],
"name": "getEthBalance",
"outputs": [
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
}
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.0;
pragma experimental ABIEncoderV2;
/// @title Multicall - Aggregate results from multiple read-only function calls
/// @author Michael Elliot <mike@makerdao.com>
/// @author Joshua Levine <joshua@makerdao.com>
/// @author Nick Johnson <arachnid@notdot.net>
interface Balance {
function balanceOf(address account) external view returns (uint256);
}
contract Multicall {
struct Call {
address target;
bytes callData;
}
function aggregate(Call[] memory calls) public returns (uint256 blockNumber, bytes[] memory returnData) {
blockNumber = block.number;
returnData = new bytes[](calls.length);
for(uint256 i = 0; i < calls.length; i++) {
(bool success, bytes memory ret) = calls[i].target.call(calls[i].callData);
require(success);
returnData[i] = ret;
}
}
function getEthBalance(address addr) public view returns (uint256 balance) {
balance = Balance(address(0x4200000000000000000000000000000000000006)).balanceOf(addr);
}
function getCurrentBlockTimestamp() public view returns (uint256 timestamp) {
timestamp = block.timestamp;
}
function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) {
gaslimit = block.gaslimit;
}
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithWeb3 script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: constructorArgs
})
const newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log('Contract deployed at address: ', newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
@ChaituVR
Copy link
Author

Metadata of "multicall" was published successfully.
contracts/multicall.sol :
ipfs://QmSVbmSKc4a5GAcY6axEbJHcCs8JzBx727J9P4A2oiubem
metadata.json :
ipfs://QmY2Meakfa2K2sMbzNWe1uQEK5dXq46vkjPSPSaAZaY8r6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment