Skip to main content
Glama

LayerZero OFT MCP Server

by thomasfevre
Create2Factory.json141 kB
{ "compilerInput": "{\"language\":\"Solidity\",\"sources\":{\"Create2Factory.sol\":{\"content\":\"// SPDX-License-Identifier: MIT\\r\\npragma solidity ^0.8.29;\\r\\n\\r\\ncontract Create2Factory {\\r\\n event Deploy(address addr);\\r\\n // store the last deployed address\\r\\n address public lastDeployedAddress;\\r\\n\\r\\n function deploy(\\r\\n bytes memory bytecode,\\r\\n string memory _salt\\r\\n ) external returns (address) {\\r\\n address addr;\\r\\n assembly {\\r\\n addr := create2(0, add(bytecode, 0x20), mload(bytecode), _salt)\\r\\n if iszero(extcodesize(addr)) {\\r\\n revert(0, 0)\\r\\n }\\r\\n }\\r\\n\\r\\n lastDeployedAddress = addr;\\r\\n emit Deploy(addr);\\r\\n return addr;\\r\\n }\\r\\n}\\r\\n// This contract can be deployed on multiple EVM Chains. However, it MUST be deployed using the same nonce; the nonce will impact the address at which this contract will get deployed. The address of this factory contract will impact the address of any other contract that this factory contract deploys using the \\\"deployUsingCreate2\\\"\\r\\n\"}},\"settings\":{\"optimizer\":{\"enabled\":false,\"runs\":200},\"outputSelection\":{\"*\":{\"\":[\"ast\"],\"*\":[\"abi\",\"metadata\",\"devdoc\",\"userdoc\",\"storageLayout\",\"evm.legacyAssembly\",\"evm.bytecode\",\"evm.deployedBytecode\",\"evm.methodIdentifiers\",\"evm.gasEstimates\",\"evm.assembly\"]}},\"remappings\":[],\"evmVersion\":\"cancun\"}}", "name": "Create2Factory", "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"Deploy\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastDeployedAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"Create2Factory.sol\":\"Create2Factory\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"Create2Factory.sol\":{\"keccak256\":\"0xbd1950446eab761dddb4d5d5cff8f3a96ac770297dc4f15383c0a1b4f6b70706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://676e9ebe16c531802d9107ae1fc60fde11a998f0b53efbaad1923512b4e637a2\",\"dweb:/ipfs/QmRKtr3hYYuMuFEUYf1SncNfFfNTM4ARBzwr4tAjDYmfnz\"]}},\"version\":1}", "bytecode": { "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, "object": "6080604052348015600e575f5ffd5b506104308061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806334537c8814610038578063d0c3587314610056575b5f5ffd5b610040610086565b60405161004d9190610180565b60405180910390f35b610070600480360381019061006b9190610384565b6100aa565b60405161007d9190610180565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f828451602086015ff59050803b6100c1575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd848488160405161012f9190610180565b60405180910390a18091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016a82610141565b9050919050565b61017a81610160565b82525050565b5f6020820190506101935f830184610171565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f8826101b2565b810181811067ffffffffffffffff82111715610217576102166101c2565b5b80604052505050565b5f610229610199565b905061023582826101ef565b919050565b5f67ffffffffffffffff821115610254576102536101c2565b5b61025d826101b2565b9050602081019050919050565b828183375f83830152505050565b5f61028a6102858461023a565b610220565b9050828152602081018484840111156102a6576102a56101ae565b5b6102b184828561026a565b509392505050565b5f82601f8301126102cd576102cc6101aa565b5b81356102dd848260208601610278565b91505092915050565b5f67ffffffffffffffff821115610300576102ff6101c2565b5b610309826101b2565b9050602081019050919050565b5f610328610323846102e6565b610220565b905082815260208101848484011115610344576103436101ae565b5b61034f84828561026a565b509392505050565b5f82601f83011261036b5761036a6101aa565b5b813561037b848260208601610316565b91505092915050565b5f5f6040838503121561039a576103996101a2565b5b5f83013567ffffffffffffffff8111156103b7576103b66101a6565b5b6103c3858286016102b9565b925050602083013567ffffffffffffffff8111156103e4576103e36101a6565b5b6103f085828601610357565b915050925092905056fea2646970667358221220173661ea5614e218b4a695b694e192207832815a7432fb1822bee946259ab50964736f6c634300081e0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH2 0x430 DUP1 PUSH2 0x1C PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x34537C88 EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0xD0C35873 EQ PUSH2 0x56 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x40 PUSH2 0x86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4D SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x70 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B SWAP2 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH2 0xAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH0 DUP3 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH0 CREATE2 SWAP1 POP DUP1 EXTCODESIZE PUSH2 0xC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH0 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x55EA6C6B31543D8E2EC6A72F71A79C0F4B72ED0D4757172B043D8F4F4CD84848 DUP2 PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x16A DUP3 PUSH2 0x141 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17A DUP2 PUSH2 0x160 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x193 PUSH0 DUP4 ADD DUP5 PUSH2 0x171 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1F8 DUP3 PUSH2 0x1B2 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x217 JUMPI PUSH2 0x216 PUSH2 0x1C2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x229 PUSH2 0x199 JUMP JUMPDEST SWAP1 POP PUSH2 0x235 DUP3 DUP3 PUSH2 0x1EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x254 JUMPI PUSH2 0x253 PUSH2 0x1C2 JUMP JUMPDEST JUMPDEST PUSH2 0x25D DUP3 PUSH2 0x1B2 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x28A PUSH2 0x285 DUP5 PUSH2 0x23A JUMP JUMPDEST PUSH2 0x220 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0x1AE JUMP JUMPDEST JUMPDEST PUSH2 0x2B1 DUP5 DUP3 DUP6 PUSH2 0x26A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CD JUMPI PUSH2 0x2CC PUSH2 0x1AA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2DD DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x278 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x300 JUMPI PUSH2 0x2FF PUSH2 0x1C2 JUMP JUMPDEST JUMPDEST PUSH2 0x309 DUP3 PUSH2 0x1B2 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x328 PUSH2 0x323 DUP5 PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0x220 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x344 JUMPI PUSH2 0x343 PUSH2 0x1AE JUMP JUMPDEST JUMPDEST PUSH2 0x34F DUP5 DUP3 DUP6 PUSH2 0x26A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x36B JUMPI PUSH2 0x36A PUSH2 0x1AA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x37B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x316 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39A JUMPI PUSH2 0x399 PUSH2 0x1A2 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B7 JUMPI PUSH2 0x3B6 PUSH2 0x1A6 JUMP JUMPDEST JUMPDEST PUSH2 0x3C3 DUP6 DUP3 DUP7 ADD PUSH2 0x2B9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E4 JUMPI PUSH2 0x3E3 PUSH2 0x1A6 JUMP JUMPDEST JUMPDEST PUSH2 0x3F0 DUP6 DUP3 DUP7 ADD PUSH2 0x357 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CALLDATASIZE PUSH2 0xEA56 EQ 0xE2 XOR 0xB4 0xA6 SWAP6 0xB6 SWAP5 RJUMPI 0x9220 PUSH25 0x32815A7432FB1822BEE946259AB50964736F6C634300081E00 CALLER ", "sourceMap": "61:579:0:-:0;;;;;;;;;;;;;;;;;;;" }, "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "addr", "type": "address" } ], "name": "Deploy", "type": "event" }, { "inputs": [ { "internalType": "bytes", "name": "bytecode", "type": "bytes" }, { "internalType": "string", "name": "_salt", "type": "string" } ], "name": "deploy", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lastDeployedAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "storageLayout": { "storage": [ { "astId": 7, "contract": "Create2Factory.sol:Create2Factory", "label": "lastDeployedAddress", "offset": 0, "slot": "0", "type": "t_address" } ], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" } } }, "web3Deploy": "var create2factoryContract = new web3.eth.Contract([{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"Deploy\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"},{\"internalType\":\"string\",\"name\":\"_salt\",\"type\":\"string\"}],\"name\":\"deploy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastDeployedAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]);\nvar create2factory = create2factoryContract.deploy({\n data: '0x6080604052348015600e575f5ffd5b506104308061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806334537c8814610038578063d0c3587314610056575b5f5ffd5b610040610086565b60405161004d9190610180565b60405180910390f35b610070600480360381019061006b9190610384565b6100aa565b60405161007d9190610180565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f828451602086015ff59050803b6100c1575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd848488160405161012f9190610180565b60405180910390a18091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016a82610141565b9050919050565b61017a81610160565b82525050565b5f6020820190506101935f830184610171565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f8826101b2565b810181811067ffffffffffffffff82111715610217576102166101c2565b5b80604052505050565b5f610229610199565b905061023582826101ef565b919050565b5f67ffffffffffffffff821115610254576102536101c2565b5b61025d826101b2565b9050602081019050919050565b828183375f83830152505050565b5f61028a6102858461023a565b610220565b9050828152602081018484840111156102a6576102a56101ae565b5b6102b184828561026a565b509392505050565b5f82601f8301126102cd576102cc6101aa565b5b81356102dd848260208601610278565b91505092915050565b5f67ffffffffffffffff821115610300576102ff6101c2565b5b610309826101b2565b9050602081019050919050565b5f610328610323846102e6565b610220565b905082815260208101848484011115610344576103436101ae565b5b61034f84828561026a565b509392505050565b5f82601f83011261036b5761036a6101aa565b5b813561037b848260208601610316565b91505092915050565b5f5f6040838503121561039a576103996101a2565b5b5f83013567ffffffffffffffff8111156103b7576103b66101a6565b5b6103c3858286016102b9565b925050602083013567ffffffffffffffff8111156103e4576103e36101a6565b5b6103f085828601610357565b915050925092905056fea2646970667358221220173661ea5614e218b4a695b694e192207832815a7432fb1822bee946259ab50964736f6c634300081e0033', \n arguments: [\n ]\n}).send({\n from: web3.eth.accounts[0], \n gas: '4700000'\n }, function (e, contract){\n console.log(e, contract);\n if (typeof contract.address !== 'undefined') {\n console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);\n }\n })", "functionHashes": { "d0c35873": "deploy(bytes,string)", "34537c88": "lastDeployedAddress()" }, "gasEstimates": { "Creation": { "codeDepositCost": "214400", "executionCost": "255", "totalCost": "214655" }, "External": { "deploy(bytes,string)": "infinite", "lastDeployedAddress()": "2485" } }, "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 }, "Runtime Bytecode": { "functionDebugData": { "@deploy_31": { "entryPoint": 170, "id": 31, "parameterSlots": 2, "returnSlots": 1 }, "@lastDeployedAddress_7": { "entryPoint": 134, "id": 7, "parameterSlots": 0, "returnSlots": 0 }, "abi_decode_available_length_t_bytes_memory_ptr": { "entryPoint": 632, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_decode_available_length_t_string_memory_ptr": { "entryPoint": 790, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "abi_decode_t_bytes_memory_ptr": { "entryPoint": 697, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_t_string_memory_ptr": { "entryPoint": 855, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "abi_decode_tuple_t_bytes_memory_ptrt_string_memory_ptr": { "entryPoint": 900, "id": null, "parameterSlots": 2, "returnSlots": 2 }, "abi_encode_t_address_to_t_address_fromStack": { "entryPoint": 369, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { "entryPoint": 384, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "allocate_memory": { "entryPoint": 544, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "allocate_unbounded": { "entryPoint": 409, "id": null, "parameterSlots": 0, "returnSlots": 1 }, "array_allocation_size_t_bytes_memory_ptr": { "entryPoint": 570, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_allocation_size_t_string_memory_ptr": { "entryPoint": 742, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_address": { "entryPoint": 352, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "cleanup_t_uint160": { "entryPoint": 321, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_calldata_to_memory_with_cleanup": { "entryPoint": 618, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "finalize_allocation": { "entryPoint": 495, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "panic_error_0x41": { "entryPoint": 450, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { "entryPoint": 426, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { "entryPoint": 430, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { "entryPoint": 422, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { "entryPoint": 418, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "round_up_to_mul_of_32": { "entryPoint": 434, "id": null, "parameterSlots": 1, "returnSlots": 1 } }, "generatedSources": [ { "ast": { "nativeSrc": "0:5075:1", "nodeType": "YulBlock", "src": "0:5075:1", "statements": [ { "body": { "nativeSrc": "52:81:1", "nodeType": "YulBlock", "src": "52:81:1", "statements": [ { "nativeSrc": "62:65:1", "nodeType": "YulAssignment", "src": "62:65:1", "value": { "arguments": [ { "name": "value", "nativeSrc": "77:5:1", "nodeType": "YulIdentifier", "src": "77:5:1" }, { "kind": "number", "nativeSrc": "84:42:1", "nodeType": "YulLiteral", "src": "84:42:1", "type": "", "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { "name": "and", "nativeSrc": "73:3:1", "nodeType": "YulIdentifier", "src": "73:3:1" }, "nativeSrc": "73:54:1", "nodeType": "YulFunctionCall", "src": "73:54:1" }, "variableNames": [ { "name": "cleaned", "nativeSrc": "62:7:1", "nodeType": "YulIdentifier", "src": "62:7:1" } ] } ] }, "name": "cleanup_t_uint160", "nativeSrc": "7:126:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nativeSrc": "34:5:1", "nodeType": "YulTypedName", "src": "34:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nativeSrc": "44:7:1", "nodeType": "YulTypedName", "src": "44:7:1", "type": "" } ], "src": "7:126:1" }, { "body": { "nativeSrc": "184:51:1", "nodeType": "YulBlock", "src": "184:51:1", "statements": [ { "nativeSrc": "194:35:1", "nodeType": "YulAssignment", "src": "194:35:1", "value": { "arguments": [ { "name": "value", "nativeSrc": "223:5:1", "nodeType": "YulIdentifier", "src": "223:5:1" } ], "functionName": { "name": "cleanup_t_uint160", "nativeSrc": "205:17:1", "nodeType": "YulIdentifier", "src": "205:17:1" }, "nativeSrc": "205:24:1", "nodeType": "YulFunctionCall", "src": "205:24:1" }, "variableNames": [ { "name": "cleaned", "nativeSrc": "194:7:1", "nodeType": "YulIdentifier", "src": "194:7:1" } ] } ] }, "name": "cleanup_t_address", "nativeSrc": "139:96:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nativeSrc": "166:5:1", "nodeType": "YulTypedName", "src": "166:5:1", "type": "" } ], "returnVariables": [ { "name": "cleaned", "nativeSrc": "176:7:1", "nodeType": "YulTypedName", "src": "176:7:1", "type": "" } ], "src": "139:96:1" }, { "body": { "nativeSrc": "306:53:1", "nodeType": "YulBlock", "src": "306:53:1", "statements": [ { "expression": { "arguments": [ { "name": "pos", "nativeSrc": "323:3:1", "nodeType": "YulIdentifier", "src": "323:3:1" }, { "arguments": [ { "name": "value", "nativeSrc": "346:5:1", "nodeType": "YulIdentifier", "src": "346:5:1" } ], "functionName": { "name": "cleanup_t_address", "nativeSrc": "328:17:1", "nodeType": "YulIdentifier", "src": "328:17:1" }, "nativeSrc": "328:24:1", "nodeType": "YulFunctionCall", "src": "328:24:1" } ], "functionName": { "name": "mstore", "nativeSrc": "316:6:1", "nodeType": "YulIdentifier", "src": "316:6:1" }, "nativeSrc": "316:37:1", "nodeType": "YulFunctionCall", "src": "316:37:1" }, "nativeSrc": "316:37:1", "nodeType": "YulExpressionStatement", "src": "316:37:1" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", "nativeSrc": "241:118:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nativeSrc": "294:5:1", "nodeType": "YulTypedName", "src": "294:5:1", "type": "" }, { "name": "pos", "nativeSrc": "301:3:1", "nodeType": "YulTypedName", "src": "301:3:1", "type": "" } ], "src": "241:118:1" }, { "body": { "nativeSrc": "463:124:1", "nodeType": "YulBlock", "src": "463:124:1", "statements": [ { "nativeSrc": "473:26:1", "nodeType": "YulAssignment", "src": "473:26:1", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "485:9:1", "nodeType": "YulIdentifier", "src": "485:9:1" }, { "kind": "number", "nativeSrc": "496:2:1", "nodeType": "YulLiteral", "src": "496:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "481:3:1", "nodeType": "YulIdentifier", "src": "481:3:1" }, "nativeSrc": "481:18:1", "nodeType": "YulFunctionCall", "src": "481:18:1" }, "variableNames": [ { "name": "tail", "nativeSrc": "473:4:1", "nodeType": "YulIdentifier", "src": "473:4:1" } ] }, { "expression": { "arguments": [ { "name": "value0", "nativeSrc": "553:6:1", "nodeType": "YulIdentifier", "src": "553:6:1" }, { "arguments": [ { "name": "headStart", "nativeSrc": "566:9:1", "nodeType": "YulIdentifier", "src": "566:9:1" }, { "kind": "number", "nativeSrc": "577:1:1", "nodeType": "YulLiteral", "src": "577:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nativeSrc": "562:3:1", "nodeType": "YulIdentifier", "src": "562:3:1" }, "nativeSrc": "562:17:1", "nodeType": "YulFunctionCall", "src": "562:17:1" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", "nativeSrc": "509:43:1", "nodeType": "YulIdentifier", "src": "509:43:1" }, "nativeSrc": "509:71:1", "nodeType": "YulFunctionCall", "src": "509:71:1" }, "nativeSrc": "509:71:1", "nodeType": "YulExpressionStatement", "src": "509:71:1" } ] }, "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", "nativeSrc": "365:222:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "435:9:1", "nodeType": "YulTypedName", "src": "435:9:1", "type": "" }, { "name": "value0", "nativeSrc": "447:6:1", "nodeType": "YulTypedName", "src": "447:6:1", "type": "" } ], "returnVariables": [ { "name": "tail", "nativeSrc": "458:4:1", "nodeType": "YulTypedName", "src": "458:4:1", "type": "" } ], "src": "365:222:1" }, { "body": { "nativeSrc": "633:35:1", "nodeType": "YulBlock", "src": "633:35:1", "statements": [ { "nativeSrc": "643:19:1", "nodeType": "YulAssignment", "src": "643:19:1", "value": { "arguments": [ { "kind": "number", "nativeSrc": "659:2:1", "nodeType": "YulLiteral", "src": "659:2:1", "type": "", "value": "64" } ], "functionName": { "name": "mload", "nativeSrc": "653:5:1", "nodeType": "YulIdentifier", "src": "653:5:1" }, "nativeSrc": "653:9:1", "nodeType": "YulFunctionCall", "src": "653:9:1" }, "variableNames": [ { "name": "memPtr", "nativeSrc": "643:6:1", "nodeType": "YulIdentifier", "src": "643:6:1" } ] } ] }, "name": "allocate_unbounded", "nativeSrc": "593:75:1", "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", "nativeSrc": "626:6:1", "nodeType": "YulTypedName", "src": "626:6:1", "type": "" } ], "src": "593:75:1" }, { "body": { "nativeSrc": "763:28:1", "nodeType": "YulBlock", "src": "763:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "780:1:1", "nodeType": "YulLiteral", "src": "780:1:1", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "783:1:1", "nodeType": "YulLiteral", "src": "783:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "773:6:1", "nodeType": "YulIdentifier", "src": "773:6:1" }, "nativeSrc": "773:12:1", "nodeType": "YulFunctionCall", "src": "773:12:1" }, "nativeSrc": "773:12:1", "nodeType": "YulExpressionStatement", "src": "773:12:1" } ] }, "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nativeSrc": "674:117:1", "nodeType": "YulFunctionDefinition", "src": "674:117:1" }, { "body": { "nativeSrc": "886:28:1", "nodeType": "YulBlock", "src": "886:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "903:1:1", "nodeType": "YulLiteral", "src": "903:1:1", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "906:1:1", "nodeType": "YulLiteral", "src": "906:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "896:6:1", "nodeType": "YulIdentifier", "src": "896:6:1" }, "nativeSrc": "896:12:1", "nodeType": "YulFunctionCall", "src": "896:12:1" }, "nativeSrc": "896:12:1", "nodeType": "YulExpressionStatement", "src": "896:12:1" } ] }, "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nativeSrc": "797:117:1", "nodeType": "YulFunctionDefinition", "src": "797:117:1" }, { "body": { "nativeSrc": "1009:28:1", "nodeType": "YulBlock", "src": "1009:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "1026:1:1", "nodeType": "YulLiteral", "src": "1026:1:1", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "1029:1:1", "nodeType": "YulLiteral", "src": "1029:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "1019:6:1", "nodeType": "YulIdentifier", "src": "1019:6:1" }, "nativeSrc": "1019:12:1", "nodeType": "YulFunctionCall", "src": "1019:12:1" }, "nativeSrc": "1019:12:1", "nodeType": "YulExpressionStatement", "src": "1019:12:1" } ] }, "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nativeSrc": "920:117:1", "nodeType": "YulFunctionDefinition", "src": "920:117:1" }, { "body": { "nativeSrc": "1132:28:1", "nodeType": "YulBlock", "src": "1132:28:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "1149:1:1", "nodeType": "YulLiteral", "src": "1149:1:1", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "1152:1:1", "nodeType": "YulLiteral", "src": "1152:1:1", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "1142:6:1", "nodeType": "YulIdentifier", "src": "1142:6:1" }, "nativeSrc": "1142:12:1", "nodeType": "YulFunctionCall", "src": "1142:12:1" }, "nativeSrc": "1142:12:1", "nodeType": "YulExpressionStatement", "src": "1142:12:1" } ] }, "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nativeSrc": "1043:117:1", "nodeType": "YulFunctionDefinition", "src": "1043:117:1" }, { "body": { "nativeSrc": "1214:54:1", "nodeType": "YulBlock", "src": "1214:54:1", "statements": [ { "nativeSrc": "1224:38:1", "nodeType": "YulAssignment", "src": "1224:38:1", "value": { "arguments": [ { "arguments": [ { "name": "value", "nativeSrc": "1242:5:1", "nodeType": "YulIdentifier", "src": "1242:5:1" }, { "kind": "number", "nativeSrc": "1249:2:1", "nodeType": "YulLiteral", "src": "1249:2:1", "type": "", "value": "31" } ], "functionName": { "name": "add", "nativeSrc": "1238:3:1", "nodeType": "YulIdentifier", "src": "1238:3:1" }, "nativeSrc": "1238:14:1", "nodeType": "YulFunctionCall", "src": "1238:14:1" }, { "arguments": [ { "kind": "number", "nativeSrc": "1258:2:1", "nodeType": "YulLiteral", "src": "1258:2:1", "type": "", "value": "31" } ], "functionName": { "name": "not", "nativeSrc": "1254:3:1", "nodeType": "YulIdentifier", "src": "1254:3:1" }, "nativeSrc": "1254:7:1", "nodeType": "YulFunctionCall", "src": "1254:7:1" } ], "functionName": { "name": "and", "nativeSrc": "1234:3:1", "nodeType": "YulIdentifier", "src": "1234:3:1" }, "nativeSrc": "1234:28:1", "nodeType": "YulFunctionCall", "src": "1234:28:1" }, "variableNames": [ { "name": "result", "nativeSrc": "1224:6:1", "nodeType": "YulIdentifier", "src": "1224:6:1" } ] } ] }, "name": "round_up_to_mul_of_32", "nativeSrc": "1166:102:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", "nativeSrc": "1197:5:1", "nodeType": "YulTypedName", "src": "1197:5:1", "type": "" } ], "returnVariables": [ { "name": "result", "nativeSrc": "1207:6:1", "nodeType": "YulTypedName", "src": "1207:6:1", "type": "" } ], "src": "1166:102:1" }, { "body": { "nativeSrc": "1302:152:1", "nodeType": "YulBlock", "src": "1302:152:1", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "1319:1:1", "nodeType": "YulLiteral", "src": "1319:1:1", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "1322:77:1", "nodeType": "YulLiteral", "src": "1322:77:1", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", "nativeSrc": "1312:6:1", "nodeType": "YulIdentifier", "src": "1312:6:1" }, "nativeSrc": "1312:88:1", "nodeType": "YulFunctionCall", "src": "1312:88:1" }, "nativeSrc": "1312:88:1", "nodeType": "YulExpressionStatement", "src": "1312:88:1" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "1416:1:1", "nodeType": "YulLiteral", "src": "1416:1:1", "type": "", "value": "4" }, { "kind": "number", "nativeSrc": "1419:4:1", "nodeType": "YulLiteral", "src": "1419:4:1", "type": "", "value": "0x41" } ], "functionName": { "name": "mstore", "nativeSrc": "1409:6:1", "nodeType": "YulIdentifier", "src": "1409:6:1" }, "nativeSrc": "1409:15:1", "nodeType": "YulFunctionCall", "src": "1409:15:1" }, "nativeSrc": "1409:15:1", "nodeType": "YulExpressionStatement", "src": "1409:15:1" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "1440:1:1", "nodeType": "YulLiteral", "src": "1440:1:1", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "1443:4:1", "nodeType": "YulLiteral", "src": "1443:4:1", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", "nativeSrc": "1433:6:1", "nodeType": "YulIdentifier", "src": "1433:6:1" }, "nativeSrc": "1433:15:1", "nodeType": "YulFunctionCall", "src": "1433:15:1" }, "nativeSrc": "1433:15:1", "nodeType": "YulExpressionStatement", "src": "1433:15:1" } ] }, "name": "panic_error_0x41", "nativeSrc": "1274:180:1", "nodeType": "YulFunctionDefinition", "src": "1274:180:1" }, { "body": { "nativeSrc": "1503:238:1", "nodeType": "YulBlock", "src": "1503:238:1", "statements": [ { "nativeSrc": "1513:58:1", "nodeType": "YulVariableDeclaration", "src": "1513:58:1", "value": { "arguments": [ { "name": "memPtr", "nativeSrc": "1535:6:1", "nodeType": "YulIdentifier", "src": "1535:6:1" }, { "arguments": [ { "name": "size", "nativeSrc": "1565:4:1", "nodeType": "YulIdentifier", "src": "1565:4:1" } ], "functionName": { "name": "round_up_to_mul_of_32", "nativeSrc": "1543:21:1", "nodeType": "YulIdentifier", "src": "1543:21:1" }, "nativeSrc": "1543:27:1", "nodeType": "YulFunctionCall", "src": "1543:27:1" } ], "functionName": { "name": "add", "nativeSrc": "1531:3:1", "nodeType": "YulIdentifier", "src": "1531:3:1" }, "nativeSrc": "1531:40:1", "nodeType": "YulFunctionCall", "src": "1531:40:1" }, "variables": [ { "name": "newFreePtr", "nativeSrc": "1517:10:1", "nodeType": "YulTypedName", "src": "1517:10:1", "type": "" } ] }, { "body": { "nativeSrc": "1682:22:1", "nodeType": "YulBlock", "src": "1682:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nativeSrc": "1684:16:1", "nodeType": "YulIdentifier", "src": "1684:16:1" }, "nativeSrc": "1684:18:1", "nodeType": "YulFunctionCall", "src": "1684:18:1" }, "nativeSrc": "1684:18:1", "nodeType": "YulExpressionStatement", "src": "1684:18:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "newFreePtr", "nativeSrc": "1625:10:1", "nodeType": "YulIdentifier", "src": "1625:10:1" }, { "kind": "number", "nativeSrc": "1637:18:1", "nodeType": "YulLiteral", "src": "1637:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "1622:2:1", "nodeType": "YulIdentifier", "src": "1622:2:1" }, "nativeSrc": "1622:34:1", "nodeType": "YulFunctionCall", "src": "1622:34:1" }, { "arguments": [ { "name": "newFreePtr", "nativeSrc": "1661:10:1", "nodeType": "YulIdentifier", "src": "1661:10:1" }, { "name": "memPtr", "nativeSrc": "1673:6:1", "nodeType": "YulIdentifier", "src": "1673:6:1" } ], "functionName": { "name": "lt", "nativeSrc": "1658:2:1", "nodeType": "YulIdentifier", "src": "1658:2:1" }, "nativeSrc": "1658:22:1", "nodeType": "YulFunctionCall", "src": "1658:22:1" } ], "functionName": { "name": "or", "nativeSrc": "1619:2:1", "nodeType": "YulIdentifier", "src": "1619:2:1" }, "nativeSrc": "1619:62:1", "nodeType": "YulFunctionCall", "src": "1619:62:1" }, "nativeSrc": "1616:88:1", "nodeType": "YulIf", "src": "1616:88:1" }, { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "1720:2:1", "nodeType": "YulLiteral", "src": "1720:2:1", "type": "", "value": "64" }, { "name": "newFreePtr", "nativeSrc": "1724:10:1", "nodeType": "YulIdentifier", "src": "1724:10:1" } ], "functionName": { "name": "mstore", "nativeSrc": "1713:6:1", "nodeType": "YulIdentifier", "src": "1713:6:1" }, "nativeSrc": "1713:22:1", "nodeType": "YulFunctionCall", "src": "1713:22:1" }, "nativeSrc": "1713:22:1", "nodeType": "YulExpressionStatement", "src": "1713:22:1" } ] }, "name": "finalize_allocation", "nativeSrc": "1460:281:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", "nativeSrc": "1489:6:1", "nodeType": "YulTypedName", "src": "1489:6:1", "type": "" }, { "name": "size", "nativeSrc": "1497:4:1", "nodeType": "YulTypedName", "src": "1497:4:1", "type": "" } ], "src": "1460:281:1" }, { "body": { "nativeSrc": "1788:88:1", "nodeType": "YulBlock", "src": "1788:88:1", "statements": [ { "nativeSrc": "1798:30:1", "nodeType": "YulAssignment", "src": "1798:30:1", "value": { "arguments": [], "functionName": { "name": "allocate_unbounded", "nativeSrc": "1808:18:1", "nodeType": "YulIdentifier", "src": "1808:18:1" }, "nativeSrc": "1808:20:1", "nodeType": "YulFunctionCall", "src": "1808:20:1" }, "variableNames": [ { "name": "memPtr", "nativeSrc": "1798:6:1", "nodeType": "YulIdentifier", "src": "1798:6:1" } ] }, { "expression": { "arguments": [ { "name": "memPtr", "nativeSrc": "1857:6:1", "nodeType": "YulIdentifier", "src": "1857:6:1" }, { "name": "size", "nativeSrc": "1865:4:1", "nodeType": "YulIdentifier", "src": "1865:4:1" } ], "functionName": { "name": "finalize_allocation", "nativeSrc": "1837:19:1", "nodeType": "YulIdentifier", "src": "1837:19:1" }, "nativeSrc": "1837:33:1", "nodeType": "YulFunctionCall", "src": "1837:33:1" }, "nativeSrc": "1837:33:1", "nodeType": "YulExpressionStatement", "src": "1837:33:1" } ] }, "name": "allocate_memory", "nativeSrc": "1747:129:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "size", "nativeSrc": "1772:4:1", "nodeType": "YulTypedName", "src": "1772:4:1", "type": "" } ], "returnVariables": [ { "name": "memPtr", "nativeSrc": "1781:6:1", "nodeType": "YulTypedName", "src": "1781:6:1", "type": "" } ], "src": "1747:129:1" }, { "body": { "nativeSrc": "1948:241:1", "nodeType": "YulBlock", "src": "1948:241:1", "statements": [ { "body": { "nativeSrc": "2053:22:1", "nodeType": "YulBlock", "src": "2053:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nativeSrc": "2055:16:1", "nodeType": "YulIdentifier", "src": "2055:16:1" }, "nativeSrc": "2055:18:1", "nodeType": "YulFunctionCall", "src": "2055:18:1" }, "nativeSrc": "2055:18:1", "nodeType": "YulExpressionStatement", "src": "2055:18:1" } ] }, "condition": { "arguments": [ { "name": "length", "nativeSrc": "2025:6:1", "nodeType": "YulIdentifier", "src": "2025:6:1" }, { "kind": "number", "nativeSrc": "2033:18:1", "nodeType": "YulLiteral", "src": "2033:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "2022:2:1", "nodeType": "YulIdentifier", "src": "2022:2:1" }, "nativeSrc": "2022:30:1", "nodeType": "YulFunctionCall", "src": "2022:30:1" }, "nativeSrc": "2019:56:1", "nodeType": "YulIf", "src": "2019:56:1" }, { "nativeSrc": "2085:37:1", "nodeType": "YulAssignment", "src": "2085:37:1", "value": { "arguments": [ { "name": "length", "nativeSrc": "2115:6:1", "nodeType": "YulIdentifier", "src": "2115:6:1" } ], "functionName": { "name": "round_up_to_mul_of_32", "nativeSrc": "2093:21:1", "nodeType": "YulIdentifier", "src": "2093:21:1" }, "nativeSrc": "2093:29:1", "nodeType": "YulFunctionCall", "src": "2093:29:1" }, "variableNames": [ { "name": "size", "nativeSrc": "2085:4:1", "nodeType": "YulIdentifier", "src": "2085:4:1" } ] }, { "nativeSrc": "2159:23:1", "nodeType": "YulAssignment", "src": "2159:23:1", "value": { "arguments": [ { "name": "size", "nativeSrc": "2171:4:1", "nodeType": "YulIdentifier", "src": "2171:4:1" }, { "kind": "number", "nativeSrc": "2177:4:1", "nodeType": "YulLiteral", "src": "2177:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nativeSrc": "2167:3:1", "nodeType": "YulIdentifier", "src": "2167:3:1" }, "nativeSrc": "2167:15:1", "nodeType": "YulFunctionCall", "src": "2167:15:1" }, "variableNames": [ { "name": "size", "nativeSrc": "2159:4:1", "nodeType": "YulIdentifier", "src": "2159:4:1" } ] } ] }, "name": "array_allocation_size_t_bytes_memory_ptr", "nativeSrc": "1882:307:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nativeSrc": "1932:6:1", "nodeType": "YulTypedName", "src": "1932:6:1", "type": "" } ], "returnVariables": [ { "name": "size", "nativeSrc": "1943:4:1", "nodeType": "YulTypedName", "src": "1943:4:1", "type": "" } ], "src": "1882:307:1" }, { "body": { "nativeSrc": "2259:84:1", "nodeType": "YulBlock", "src": "2259:84:1", "statements": [ { "expression": { "arguments": [ { "name": "dst", "nativeSrc": "2283:3:1", "nodeType": "YulIdentifier", "src": "2283:3:1" }, { "name": "src", "nativeSrc": "2288:3:1", "nodeType": "YulIdentifier", "src": "2288:3:1" }, { "name": "length", "nativeSrc": "2293:6:1", "nodeType": "YulIdentifier", "src": "2293:6:1" } ], "functionName": { "name": "calldatacopy", "nativeSrc": "2270:12:1", "nodeType": "YulIdentifier", "src": "2270:12:1" }, "nativeSrc": "2270:30:1", "nodeType": "YulFunctionCall", "src": "2270:30:1" }, "nativeSrc": "2270:30:1", "nodeType": "YulExpressionStatement", "src": "2270:30:1" }, { "expression": { "arguments": [ { "arguments": [ { "name": "dst", "nativeSrc": "2320:3:1", "nodeType": "YulIdentifier", "src": "2320:3:1" }, { "name": "length", "nativeSrc": "2325:6:1", "nodeType": "YulIdentifier", "src": "2325:6:1" } ], "functionName": { "name": "add", "nativeSrc": "2316:3:1", "nodeType": "YulIdentifier", "src": "2316:3:1" }, "nativeSrc": "2316:16:1", "nodeType": "YulFunctionCall", "src": "2316:16:1" }, { "kind": "number", "nativeSrc": "2334:1:1", "nodeType": "YulLiteral", "src": "2334:1:1", "type": "", "value": "0" } ], "functionName": { "name": "mstore", "nativeSrc": "2309:6:1", "nodeType": "YulIdentifier", "src": "2309:6:1" }, "nativeSrc": "2309:27:1", "nodeType": "YulFunctionCall", "src": "2309:27:1" }, "nativeSrc": "2309:27:1", "nodeType": "YulExpressionStatement", "src": "2309:27:1" } ] }, "name": "copy_calldata_to_memory_with_cleanup", "nativeSrc": "2195:148:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nativeSrc": "2241:3:1", "nodeType": "YulTypedName", "src": "2241:3:1", "type": "" }, { "name": "dst", "nativeSrc": "2246:3:1", "nodeType": "YulTypedName", "src": "2246:3:1", "type": "" }, { "name": "length", "nativeSrc": "2251:6:1", "nodeType": "YulTypedName", "src": "2251:6:1", "type": "" } ], "src": "2195:148:1" }, { "body": { "nativeSrc": "2432:340:1", "nodeType": "YulBlock", "src": "2432:340:1", "statements": [ { "nativeSrc": "2442:74:1", "nodeType": "YulAssignment", "src": "2442:74:1", "value": { "arguments": [ { "arguments": [ { "name": "length", "nativeSrc": "2508:6:1", "nodeType": "YulIdentifier", "src": "2508:6:1" } ], "functionName": { "name": "array_allocation_size_t_bytes_memory_ptr", "nativeSrc": "2467:40:1", "nodeType": "YulIdentifier", "src": "2467:40:1" }, "nativeSrc": "2467:48:1", "nodeType": "YulFunctionCall", "src": "2467:48:1" } ], "functionName": { "name": "allocate_memory", "nativeSrc": "2451:15:1", "nodeType": "YulIdentifier", "src": "2451:15:1" }, "nativeSrc": "2451:65:1", "nodeType": "YulFunctionCall", "src": "2451:65:1" }, "variableNames": [ { "name": "array", "nativeSrc": "2442:5:1", "nodeType": "YulIdentifier", "src": "2442:5:1" } ] }, { "expression": { "arguments": [ { "name": "array", "nativeSrc": "2532:5:1", "nodeType": "YulIdentifier", "src": "2532:5:1" }, { "name": "length", "nativeSrc": "2539:6:1", "nodeType": "YulIdentifier", "src": "2539:6:1" } ], "functionName": { "name": "mstore", "nativeSrc": "2525:6:1", "nodeType": "YulIdentifier", "src": "2525:6:1" }, "nativeSrc": "2525:21:1", "nodeType": "YulFunctionCall", "src": "2525:21:1" }, "nativeSrc": "2525:21:1", "nodeType": "YulExpressionStatement", "src": "2525:21:1" }, { "nativeSrc": "2555:27:1", "nodeType": "YulVariableDeclaration", "src": "2555:27:1", "value": { "arguments": [ { "name": "array", "nativeSrc": "2570:5:1", "nodeType": "YulIdentifier", "src": "2570:5:1" }, { "kind": "number", "nativeSrc": "2577:4:1", "nodeType": "YulLiteral", "src": "2577:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nativeSrc": "2566:3:1", "nodeType": "YulIdentifier", "src": "2566:3:1" }, "nativeSrc": "2566:16:1", "nodeType": "YulFunctionCall", "src": "2566:16:1" }, "variables": [ { "name": "dst", "nativeSrc": "2559:3:1", "nodeType": "YulTypedName", "src": "2559:3:1", "type": "" } ] }, { "body": { "nativeSrc": "2620:83:1", "nodeType": "YulBlock", "src": "2620:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nativeSrc": "2622:77:1", "nodeType": "YulIdentifier", "src": "2622:77:1" }, "nativeSrc": "2622:79:1", "nodeType": "YulFunctionCall", "src": "2622:79:1" }, "nativeSrc": "2622:79:1", "nodeType": "YulExpressionStatement", "src": "2622:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nativeSrc": "2601:3:1", "nodeType": "YulIdentifier", "src": "2601:3:1" }, { "name": "length", "nativeSrc": "2606:6:1", "nodeType": "YulIdentifier", "src": "2606:6:1" } ], "functionName": { "name": "add", "nativeSrc": "2597:3:1", "nodeType": "YulIdentifier", "src": "2597:3:1" }, "nativeSrc": "2597:16:1", "nodeType": "YulFunctionCall", "src": "2597:16:1" }, { "name": "end", "nativeSrc": "2615:3:1", "nodeType": "YulIdentifier", "src": "2615:3:1" } ], "functionName": { "name": "gt", "nativeSrc": "2594:2:1", "nodeType": "YulIdentifier", "src": "2594:2:1" }, "nativeSrc": "2594:25:1", "nodeType": "YulFunctionCall", "src": "2594:25:1" }, "nativeSrc": "2591:112:1", "nodeType": "YulIf", "src": "2591:112:1" }, { "expression": { "arguments": [ { "name": "src", "nativeSrc": "2749:3:1", "nodeType": "YulIdentifier", "src": "2749:3:1" }, { "name": "dst", "nativeSrc": "2754:3:1", "nodeType": "YulIdentifier", "src": "2754:3:1" }, { "name": "length", "nativeSrc": "2759:6:1", "nodeType": "YulIdentifier", "src": "2759:6:1" } ], "functionName": { "name": "copy_calldata_to_memory_with_cleanup", "nativeSrc": "2712:36:1", "nodeType": "YulIdentifier", "src": "2712:36:1" }, "nativeSrc": "2712:54:1", "nodeType": "YulFunctionCall", "src": "2712:54:1" }, "nativeSrc": "2712:54:1", "nodeType": "YulExpressionStatement", "src": "2712:54:1" } ] }, "name": "abi_decode_available_length_t_bytes_memory_ptr", "nativeSrc": "2349:423:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nativeSrc": "2405:3:1", "nodeType": "YulTypedName", "src": "2405:3:1", "type": "" }, { "name": "length", "nativeSrc": "2410:6:1", "nodeType": "YulTypedName", "src": "2410:6:1", "type": "" }, { "name": "end", "nativeSrc": "2418:3:1", "nodeType": "YulTypedName", "src": "2418:3:1", "type": "" } ], "returnVariables": [ { "name": "array", "nativeSrc": "2426:5:1", "nodeType": "YulTypedName", "src": "2426:5:1", "type": "" } ], "src": "2349:423:1" }, { "body": { "nativeSrc": "2852:277:1", "nodeType": "YulBlock", "src": "2852:277:1", "statements": [ { "body": { "nativeSrc": "2901:83:1", "nodeType": "YulBlock", "src": "2901:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nativeSrc": "2903:77:1", "nodeType": "YulIdentifier", "src": "2903:77:1" }, "nativeSrc": "2903:79:1", "nodeType": "YulFunctionCall", "src": "2903:79:1" }, "nativeSrc": "2903:79:1", "nodeType": "YulExpressionStatement", "src": "2903:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nativeSrc": "2880:6:1", "nodeType": "YulIdentifier", "src": "2880:6:1" }, { "kind": "number", "nativeSrc": "2888:4:1", "nodeType": "YulLiteral", "src": "2888:4:1", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nativeSrc": "2876:3:1", "nodeType": "YulIdentifier", "src": "2876:3:1" }, "nativeSrc": "2876:17:1", "nodeType": "YulFunctionCall", "src": "2876:17:1" }, { "name": "end", "nativeSrc": "2895:3:1", "nodeType": "YulIdentifier", "src": "2895:3:1" } ], "functionName": { "name": "slt", "nativeSrc": "2872:3:1", "nodeType": "YulIdentifier", "src": "2872:3:1" }, "nativeSrc": "2872:27:1", "nodeType": "YulFunctionCall", "src": "2872:27:1" } ], "functionName": { "name": "iszero", "nativeSrc": "2865:6:1", "nodeType": "YulIdentifier", "src": "2865:6:1" }, "nativeSrc": "2865:35:1", "nodeType": "YulFunctionCall", "src": "2865:35:1" }, "nativeSrc": "2862:122:1", "nodeType": "YulIf", "src": "2862:122:1" }, { "nativeSrc": "2993:34:1", "nodeType": "YulVariableDeclaration", "src": "2993:34:1", "value": { "arguments": [ { "name": "offset", "nativeSrc": "3020:6:1", "nodeType": "YulIdentifier", "src": "3020:6:1" } ], "functionName": { "name": "calldataload", "nativeSrc": "3007:12:1", "nodeType": "YulIdentifier", "src": "3007:12:1" }, "nativeSrc": "3007:20:1", "nodeType": "YulFunctionCall", "src": "3007:20:1" }, "variables": [ { "name": "length", "nativeSrc": "2997:6:1", "nodeType": "YulTypedName", "src": "2997:6:1", "type": "" } ] }, { "nativeSrc": "3036:87:1", "nodeType": "YulAssignment", "src": "3036:87:1", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nativeSrc": "3096:6:1", "nodeType": "YulIdentifier", "src": "3096:6:1" }, { "kind": "number", "nativeSrc": "3104:4:1", "nodeType": "YulLiteral", "src": "3104:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nativeSrc": "3092:3:1", "nodeType": "YulIdentifier", "src": "3092:3:1" }, "nativeSrc": "3092:17:1", "nodeType": "YulFunctionCall", "src": "3092:17:1" }, { "name": "length", "nativeSrc": "3111:6:1", "nodeType": "YulIdentifier", "src": "3111:6:1" }, { "name": "end", "nativeSrc": "3119:3:1", "nodeType": "YulIdentifier", "src": "3119:3:1" } ], "functionName": { "name": "abi_decode_available_length_t_bytes_memory_ptr", "nativeSrc": "3045:46:1", "nodeType": "YulIdentifier", "src": "3045:46:1" }, "nativeSrc": "3045:78:1", "nodeType": "YulFunctionCall", "src": "3045:78:1" }, "variableNames": [ { "name": "array", "nativeSrc": "3036:5:1", "nodeType": "YulIdentifier", "src": "3036:5:1" } ] } ] }, "name": "abi_decode_t_bytes_memory_ptr", "nativeSrc": "2791:338:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nativeSrc": "2830:6:1", "nodeType": "YulTypedName", "src": "2830:6:1", "type": "" }, { "name": "end", "nativeSrc": "2838:3:1", "nodeType": "YulTypedName", "src": "2838:3:1", "type": "" } ], "returnVariables": [ { "name": "array", "nativeSrc": "2846:5:1", "nodeType": "YulTypedName", "src": "2846:5:1", "type": "" } ], "src": "2791:338:1" }, { "body": { "nativeSrc": "3202:241:1", "nodeType": "YulBlock", "src": "3202:241:1", "statements": [ { "body": { "nativeSrc": "3307:22:1", "nodeType": "YulBlock", "src": "3307:22:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "panic_error_0x41", "nativeSrc": "3309:16:1", "nodeType": "YulIdentifier", "src": "3309:16:1" }, "nativeSrc": "3309:18:1", "nodeType": "YulFunctionCall", "src": "3309:18:1" }, "nativeSrc": "3309:18:1", "nodeType": "YulExpressionStatement", "src": "3309:18:1" } ] }, "condition": { "arguments": [ { "name": "length", "nativeSrc": "3279:6:1", "nodeType": "YulIdentifier", "src": "3279:6:1" }, { "kind": "number", "nativeSrc": "3287:18:1", "nodeType": "YulLiteral", "src": "3287:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "3276:2:1", "nodeType": "YulIdentifier", "src": "3276:2:1" }, "nativeSrc": "3276:30:1", "nodeType": "YulFunctionCall", "src": "3276:30:1" }, "nativeSrc": "3273:56:1", "nodeType": "YulIf", "src": "3273:56:1" }, { "nativeSrc": "3339:37:1", "nodeType": "YulAssignment", "src": "3339:37:1", "value": { "arguments": [ { "name": "length", "nativeSrc": "3369:6:1", "nodeType": "YulIdentifier", "src": "3369:6:1" } ], "functionName": { "name": "round_up_to_mul_of_32", "nativeSrc": "3347:21:1", "nodeType": "YulIdentifier", "src": "3347:21:1" }, "nativeSrc": "3347:29:1", "nodeType": "YulFunctionCall", "src": "3347:29:1" }, "variableNames": [ { "name": "size", "nativeSrc": "3339:4:1", "nodeType": "YulIdentifier", "src": "3339:4:1" } ] }, { "nativeSrc": "3413:23:1", "nodeType": "YulAssignment", "src": "3413:23:1", "value": { "arguments": [ { "name": "size", "nativeSrc": "3425:4:1", "nodeType": "YulIdentifier", "src": "3425:4:1" }, { "kind": "number", "nativeSrc": "3431:4:1", "nodeType": "YulLiteral", "src": "3431:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nativeSrc": "3421:3:1", "nodeType": "YulIdentifier", "src": "3421:3:1" }, "nativeSrc": "3421:15:1", "nodeType": "YulFunctionCall", "src": "3421:15:1" }, "variableNames": [ { "name": "size", "nativeSrc": "3413:4:1", "nodeType": "YulIdentifier", "src": "3413:4:1" } ] } ] }, "name": "array_allocation_size_t_string_memory_ptr", "nativeSrc": "3135:308:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "length", "nativeSrc": "3186:6:1", "nodeType": "YulTypedName", "src": "3186:6:1", "type": "" } ], "returnVariables": [ { "name": "size", "nativeSrc": "3197:4:1", "nodeType": "YulTypedName", "src": "3197:4:1", "type": "" } ], "src": "3135:308:1" }, { "body": { "nativeSrc": "3533:341:1", "nodeType": "YulBlock", "src": "3533:341:1", "statements": [ { "nativeSrc": "3543:75:1", "nodeType": "YulAssignment", "src": "3543:75:1", "value": { "arguments": [ { "arguments": [ { "name": "length", "nativeSrc": "3610:6:1", "nodeType": "YulIdentifier", "src": "3610:6:1" } ], "functionName": { "name": "array_allocation_size_t_string_memory_ptr", "nativeSrc": "3568:41:1", "nodeType": "YulIdentifier", "src": "3568:41:1" }, "nativeSrc": "3568:49:1", "nodeType": "YulFunctionCall", "src": "3568:49:1" } ], "functionName": { "name": "allocate_memory", "nativeSrc": "3552:15:1", "nodeType": "YulIdentifier", "src": "3552:15:1" }, "nativeSrc": "3552:66:1", "nodeType": "YulFunctionCall", "src": "3552:66:1" }, "variableNames": [ { "name": "array", "nativeSrc": "3543:5:1", "nodeType": "YulIdentifier", "src": "3543:5:1" } ] }, { "expression": { "arguments": [ { "name": "array", "nativeSrc": "3634:5:1", "nodeType": "YulIdentifier", "src": "3634:5:1" }, { "name": "length", "nativeSrc": "3641:6:1", "nodeType": "YulIdentifier", "src": "3641:6:1" } ], "functionName": { "name": "mstore", "nativeSrc": "3627:6:1", "nodeType": "YulIdentifier", "src": "3627:6:1" }, "nativeSrc": "3627:21:1", "nodeType": "YulFunctionCall", "src": "3627:21:1" }, "nativeSrc": "3627:21:1", "nodeType": "YulExpressionStatement", "src": "3627:21:1" }, { "nativeSrc": "3657:27:1", "nodeType": "YulVariableDeclaration", "src": "3657:27:1", "value": { "arguments": [ { "name": "array", "nativeSrc": "3672:5:1", "nodeType": "YulIdentifier", "src": "3672:5:1" }, { "kind": "number", "nativeSrc": "3679:4:1", "nodeType": "YulLiteral", "src": "3679:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nativeSrc": "3668:3:1", "nodeType": "YulIdentifier", "src": "3668:3:1" }, "nativeSrc": "3668:16:1", "nodeType": "YulFunctionCall", "src": "3668:16:1" }, "variables": [ { "name": "dst", "nativeSrc": "3661:3:1", "nodeType": "YulTypedName", "src": "3661:3:1", "type": "" } ] }, { "body": { "nativeSrc": "3722:83:1", "nodeType": "YulBlock", "src": "3722:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", "nativeSrc": "3724:77:1", "nodeType": "YulIdentifier", "src": "3724:77:1" }, "nativeSrc": "3724:79:1", "nodeType": "YulFunctionCall", "src": "3724:79:1" }, "nativeSrc": "3724:79:1", "nodeType": "YulExpressionStatement", "src": "3724:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "src", "nativeSrc": "3703:3:1", "nodeType": "YulIdentifier", "src": "3703:3:1" }, { "name": "length", "nativeSrc": "3708:6:1", "nodeType": "YulIdentifier", "src": "3708:6:1" } ], "functionName": { "name": "add", "nativeSrc": "3699:3:1", "nodeType": "YulIdentifier", "src": "3699:3:1" }, "nativeSrc": "3699:16:1", "nodeType": "YulFunctionCall", "src": "3699:16:1" }, { "name": "end", "nativeSrc": "3717:3:1", "nodeType": "YulIdentifier", "src": "3717:3:1" } ], "functionName": { "name": "gt", "nativeSrc": "3696:2:1", "nodeType": "YulIdentifier", "src": "3696:2:1" }, "nativeSrc": "3696:25:1", "nodeType": "YulFunctionCall", "src": "3696:25:1" }, "nativeSrc": "3693:112:1", "nodeType": "YulIf", "src": "3693:112:1" }, { "expression": { "arguments": [ { "name": "src", "nativeSrc": "3851:3:1", "nodeType": "YulIdentifier", "src": "3851:3:1" }, { "name": "dst", "nativeSrc": "3856:3:1", "nodeType": "YulIdentifier", "src": "3856:3:1" }, { "name": "length", "nativeSrc": "3861:6:1", "nodeType": "YulIdentifier", "src": "3861:6:1" } ], "functionName": { "name": "copy_calldata_to_memory_with_cleanup", "nativeSrc": "3814:36:1", "nodeType": "YulIdentifier", "src": "3814:36:1" }, "nativeSrc": "3814:54:1", "nodeType": "YulFunctionCall", "src": "3814:54:1" }, "nativeSrc": "3814:54:1", "nodeType": "YulExpressionStatement", "src": "3814:54:1" } ] }, "name": "abi_decode_available_length_t_string_memory_ptr", "nativeSrc": "3449:425:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "src", "nativeSrc": "3506:3:1", "nodeType": "YulTypedName", "src": "3506:3:1", "type": "" }, { "name": "length", "nativeSrc": "3511:6:1", "nodeType": "YulTypedName", "src": "3511:6:1", "type": "" }, { "name": "end", "nativeSrc": "3519:3:1", "nodeType": "YulTypedName", "src": "3519:3:1", "type": "" } ], "returnVariables": [ { "name": "array", "nativeSrc": "3527:5:1", "nodeType": "YulTypedName", "src": "3527:5:1", "type": "" } ], "src": "3449:425:1" }, { "body": { "nativeSrc": "3956:278:1", "nodeType": "YulBlock", "src": "3956:278:1", "statements": [ { "body": { "nativeSrc": "4005:83:1", "nodeType": "YulBlock", "src": "4005:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", "nativeSrc": "4007:77:1", "nodeType": "YulIdentifier", "src": "4007:77:1" }, "nativeSrc": "4007:79:1", "nodeType": "YulFunctionCall", "src": "4007:79:1" }, "nativeSrc": "4007:79:1", "nodeType": "YulExpressionStatement", "src": "4007:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "offset", "nativeSrc": "3984:6:1", "nodeType": "YulIdentifier", "src": "3984:6:1" }, { "kind": "number", "nativeSrc": "3992:4:1", "nodeType": "YulLiteral", "src": "3992:4:1", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nativeSrc": "3980:3:1", "nodeType": "YulIdentifier", "src": "3980:3:1" }, "nativeSrc": "3980:17:1", "nodeType": "YulFunctionCall", "src": "3980:17:1" }, { "name": "end", "nativeSrc": "3999:3:1", "nodeType": "YulIdentifier", "src": "3999:3:1" } ], "functionName": { "name": "slt", "nativeSrc": "3976:3:1", "nodeType": "YulIdentifier", "src": "3976:3:1" }, "nativeSrc": "3976:27:1", "nodeType": "YulFunctionCall", "src": "3976:27:1" } ], "functionName": { "name": "iszero", "nativeSrc": "3969:6:1", "nodeType": "YulIdentifier", "src": "3969:6:1" }, "nativeSrc": "3969:35:1", "nodeType": "YulFunctionCall", "src": "3969:35:1" }, "nativeSrc": "3966:122:1", "nodeType": "YulIf", "src": "3966:122:1" }, { "nativeSrc": "4097:34:1", "nodeType": "YulVariableDeclaration", "src": "4097:34:1", "value": { "arguments": [ { "name": "offset", "nativeSrc": "4124:6:1", "nodeType": "YulIdentifier", "src": "4124:6:1" } ], "functionName": { "name": "calldataload", "nativeSrc": "4111:12:1", "nodeType": "YulIdentifier", "src": "4111:12:1" }, "nativeSrc": "4111:20:1", "nodeType": "YulFunctionCall", "src": "4111:20:1" }, "variables": [ { "name": "length", "nativeSrc": "4101:6:1", "nodeType": "YulTypedName", "src": "4101:6:1", "type": "" } ] }, { "nativeSrc": "4140:88:1", "nodeType": "YulAssignment", "src": "4140:88:1", "value": { "arguments": [ { "arguments": [ { "name": "offset", "nativeSrc": "4201:6:1", "nodeType": "YulIdentifier", "src": "4201:6:1" }, { "kind": "number", "nativeSrc": "4209:4:1", "nodeType": "YulLiteral", "src": "4209:4:1", "type": "", "value": "0x20" } ], "functionName": { "name": "add", "nativeSrc": "4197:3:1", "nodeType": "YulIdentifier", "src": "4197:3:1" }, "nativeSrc": "4197:17:1", "nodeType": "YulFunctionCall", "src": "4197:17:1" }, { "name": "length", "nativeSrc": "4216:6:1", "nodeType": "YulIdentifier", "src": "4216:6:1" }, { "name": "end", "nativeSrc": "4224:3:1", "nodeType": "YulIdentifier", "src": "4224:3:1" } ], "functionName": { "name": "abi_decode_available_length_t_string_memory_ptr", "nativeSrc": "4149:47:1", "nodeType": "YulIdentifier", "src": "4149:47:1" }, "nativeSrc": "4149:79:1", "nodeType": "YulFunctionCall", "src": "4149:79:1" }, "variableNames": [ { "name": "array", "nativeSrc": "4140:5:1", "nodeType": "YulIdentifier", "src": "4140:5:1" } ] } ] }, "name": "abi_decode_t_string_memory_ptr", "nativeSrc": "3894:340:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", "nativeSrc": "3934:6:1", "nodeType": "YulTypedName", "src": "3934:6:1", "type": "" }, { "name": "end", "nativeSrc": "3942:3:1", "nodeType": "YulTypedName", "src": "3942:3:1", "type": "" } ], "returnVariables": [ { "name": "array", "nativeSrc": "3950:5:1", "nodeType": "YulTypedName", "src": "3950:5:1", "type": "" } ], "src": "3894:340:1" }, { "body": { "nativeSrc": "4342:730:1", "nodeType": "YulBlock", "src": "4342:730:1", "statements": [ { "body": { "nativeSrc": "4388:83:1", "nodeType": "YulBlock", "src": "4388:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", "nativeSrc": "4390:77:1", "nodeType": "YulIdentifier", "src": "4390:77:1" }, "nativeSrc": "4390:79:1", "nodeType": "YulFunctionCall", "src": "4390:79:1" }, "nativeSrc": "4390:79:1", "nodeType": "YulExpressionStatement", "src": "4390:79:1" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "4363:7:1", "nodeType": "YulIdentifier", "src": "4363:7:1" }, { "name": "headStart", "nativeSrc": "4372:9:1", "nodeType": "YulIdentifier", "src": "4372:9:1" } ], "functionName": { "name": "sub", "nativeSrc": "4359:3:1", "nodeType": "YulIdentifier", "src": "4359:3:1" }, "nativeSrc": "4359:23:1", "nodeType": "YulFunctionCall", "src": "4359:23:1" }, { "kind": "number", "nativeSrc": "4384:2:1", "nodeType": "YulLiteral", "src": "4384:2:1", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nativeSrc": "4355:3:1", "nodeType": "YulIdentifier", "src": "4355:3:1" }, "nativeSrc": "4355:32:1", "nodeType": "YulFunctionCall", "src": "4355:32:1" }, "nativeSrc": "4352:119:1", "nodeType": "YulIf", "src": "4352:119:1" }, { "nativeSrc": "4481:286:1", "nodeType": "YulBlock", "src": "4481:286:1", "statements": [ { "nativeSrc": "4496:45:1", "nodeType": "YulVariableDeclaration", "src": "4496:45:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "4527:9:1", "nodeType": "YulIdentifier", "src": "4527:9:1" }, { "kind": "number", "nativeSrc": "4538:1:1", "nodeType": "YulLiteral", "src": "4538:1:1", "type": "", "value": "0" } ], "functionName": { "name": "add", "nativeSrc": "4523:3:1", "nodeType": "YulIdentifier", "src": "4523:3:1" }, "nativeSrc": "4523:17:1", "nodeType": "YulFunctionCall", "src": "4523:17:1" } ], "functionName": { "name": "calldataload", "nativeSrc": "4510:12:1", "nodeType": "YulIdentifier", "src": "4510:12:1" }, "nativeSrc": "4510:31:1", "nodeType": "YulFunctionCall", "src": "4510:31:1" }, "variables": [ { "name": "offset", "nativeSrc": "4500:6:1", "nodeType": "YulTypedName", "src": "4500:6:1", "type": "" } ] }, { "body": { "nativeSrc": "4588:83:1", "nodeType": "YulBlock", "src": "4588:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nativeSrc": "4590:77:1", "nodeType": "YulIdentifier", "src": "4590:77:1" }, "nativeSrc": "4590:79:1", "nodeType": "YulFunctionCall", "src": "4590:79:1" }, "nativeSrc": "4590:79:1", "nodeType": "YulExpressionStatement", "src": "4590:79:1" } ] }, "condition": { "arguments": [ { "name": "offset", "nativeSrc": "4560:6:1", "nodeType": "YulIdentifier", "src": "4560:6:1" }, { "kind": "number", "nativeSrc": "4568:18:1", "nodeType": "YulLiteral", "src": "4568:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "4557:2:1", "nodeType": "YulIdentifier", "src": "4557:2:1" }, "nativeSrc": "4557:30:1", "nodeType": "YulFunctionCall", "src": "4557:30:1" }, "nativeSrc": "4554:117:1", "nodeType": "YulIf", "src": "4554:117:1" }, { "nativeSrc": "4685:72:1", "nodeType": "YulAssignment", "src": "4685:72:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "4729:9:1", "nodeType": "YulIdentifier", "src": "4729:9:1" }, { "name": "offset", "nativeSrc": "4740:6:1", "nodeType": "YulIdentifier", "src": "4740:6:1" } ], "functionName": { "name": "add", "nativeSrc": "4725:3:1", "nodeType": "YulIdentifier", "src": "4725:3:1" }, "nativeSrc": "4725:22:1", "nodeType": "YulFunctionCall", "src": "4725:22:1" }, { "name": "dataEnd", "nativeSrc": "4749:7:1", "nodeType": "YulIdentifier", "src": "4749:7:1" } ], "functionName": { "name": "abi_decode_t_bytes_memory_ptr", "nativeSrc": "4695:29:1", "nodeType": "YulIdentifier", "src": "4695:29:1" }, "nativeSrc": "4695:62:1", "nodeType": "YulFunctionCall", "src": "4695:62:1" }, "variableNames": [ { "name": "value0", "nativeSrc": "4685:6:1", "nodeType": "YulIdentifier", "src": "4685:6:1" } ] } ] }, { "nativeSrc": "4777:288:1", "nodeType": "YulBlock", "src": "4777:288:1", "statements": [ { "nativeSrc": "4792:46:1", "nodeType": "YulVariableDeclaration", "src": "4792:46:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "4823:9:1", "nodeType": "YulIdentifier", "src": "4823:9:1" }, { "kind": "number", "nativeSrc": "4834:2:1", "nodeType": "YulLiteral", "src": "4834:2:1", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "4819:3:1", "nodeType": "YulIdentifier", "src": "4819:3:1" }, "nativeSrc": "4819:18:1", "nodeType": "YulFunctionCall", "src": "4819:18:1" } ], "functionName": { "name": "calldataload", "nativeSrc": "4806:12:1", "nodeType": "YulIdentifier", "src": "4806:12:1" }, "nativeSrc": "4806:32:1", "nodeType": "YulFunctionCall", "src": "4806:32:1" }, "variables": [ { "name": "offset", "nativeSrc": "4796:6:1", "nodeType": "YulTypedName", "src": "4796:6:1", "type": "" } ] }, { "body": { "nativeSrc": "4885:83:1", "nodeType": "YulBlock", "src": "4885:83:1", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", "nativeSrc": "4887:77:1", "nodeType": "YulIdentifier", "src": "4887:77:1" }, "nativeSrc": "4887:79:1", "nodeType": "YulFunctionCall", "src": "4887:79:1" }, "nativeSrc": "4887:79:1", "nodeType": "YulExpressionStatement", "src": "4887:79:1" } ] }, "condition": { "arguments": [ { "name": "offset", "nativeSrc": "4857:6:1", "nodeType": "YulIdentifier", "src": "4857:6:1" }, { "kind": "number", "nativeSrc": "4865:18:1", "nodeType": "YulLiteral", "src": "4865:18:1", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", "nativeSrc": "4854:2:1", "nodeType": "YulIdentifier", "src": "4854:2:1" }, "nativeSrc": "4854:30:1", "nodeType": "YulFunctionCall", "src": "4854:30:1" }, "nativeSrc": "4851:117:1", "nodeType": "YulIf", "src": "4851:117:1" }, { "nativeSrc": "4982:73:1", "nodeType": "YulAssignment", "src": "4982:73:1", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "5027:9:1", "nodeType": "YulIdentifier", "src": "5027:9:1" }, { "name": "offset", "nativeSrc": "5038:6:1", "nodeType": "YulIdentifier", "src": "5038:6:1" } ], "functionName": { "name": "add", "nativeSrc": "5023:3:1", "nodeType": "YulIdentifier", "src": "5023:3:1" }, "nativeSrc": "5023:22:1", "nodeType": "YulFunctionCall", "src": "5023:22:1" }, { "name": "dataEnd", "nativeSrc": "5047:7:1", "nodeType": "YulIdentifier", "src": "5047:7:1" } ], "functionName": { "name": "abi_decode_t_string_memory_ptr", "nativeSrc": "4992:30:1", "nodeType": "YulIdentifier", "src": "4992:30:1" }, "nativeSrc": "4992:63:1", "nodeType": "YulFunctionCall", "src": "4992:63:1" }, "variableNames": [ { "name": "value1", "nativeSrc": "4982:6:1", "nodeType": "YulIdentifier", "src": "4982:6:1" } ] } ] } ] }, "name": "abi_decode_tuple_t_bytes_memory_ptrt_string_memory_ptr", "nativeSrc": "4240:832:1", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "4304:9:1", "nodeType": "YulTypedName", "src": "4304:9:1", "type": "" }, { "name": "dataEnd", "nativeSrc": "4315:7:1", "nodeType": "YulTypedName", "src": "4315:7:1", "type": "" } ], "returnVariables": [ { "name": "value0", "nativeSrc": "4327:6:1", "nodeType": "YulTypedName", "src": "4327:6:1", "type": "" }, { "name": "value1", "nativeSrc": "4335:6:1", "nodeType": "YulTypedName", "src": "4335:6:1", "type": "" } ], "src": "4240:832:1" } ] }, "contents": "{\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\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 allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\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 panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\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 allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\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 copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\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_with_cleanup(src, dst, length)\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 function array_allocation_size_t_string_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 abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_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_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_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_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_bytes_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { 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_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", "id": 1, "language": "Yul", "name": "#utility.yul" } ], "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806334537c8814610038578063d0c3587314610056575b5f5ffd5b610040610086565b60405161004d9190610180565b60405180910390f35b610070600480360381019061006b9190610384565b6100aa565b60405161007d9190610180565b60405180910390f35b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f828451602086015ff59050803b6100c1575f5ffd5b805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f55ea6c6b31543d8e2ec6a72f71a79c0f4b72ed0d4757172b043d8f4f4cd848488160405161012f9190610180565b60405180910390a18091505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61016a82610141565b9050919050565b61017a81610160565b82525050565b5f6020820190506101935f830184610171565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6101f8826101b2565b810181811067ffffffffffffffff82111715610217576102166101c2565b5b80604052505050565b5f610229610199565b905061023582826101ef565b919050565b5f67ffffffffffffffff821115610254576102536101c2565b5b61025d826101b2565b9050602081019050919050565b828183375f83830152505050565b5f61028a6102858461023a565b610220565b9050828152602081018484840111156102a6576102a56101ae565b5b6102b184828561026a565b509392505050565b5f82601f8301126102cd576102cc6101aa565b5b81356102dd848260208601610278565b91505092915050565b5f67ffffffffffffffff821115610300576102ff6101c2565b5b610309826101b2565b9050602081019050919050565b5f610328610323846102e6565b610220565b905082815260208101848484011115610344576103436101ae565b5b61034f84828561026a565b509392505050565b5f82601f83011261036b5761036a6101aa565b5b813561037b848260208601610316565b91505092915050565b5f5f6040838503121561039a576103996101a2565b5b5f83013567ffffffffffffffff8111156103b7576103b66101a6565b5b6103c3858286016102b9565b925050602083013567ffffffffffffffff8111156103e4576103e36101a6565b5b6103f085828601610357565b915050925092905056fea2646970667358221220173661ea5614e218b4a695b694e192207832815a7432fb1822bee946259ab50964736f6c634300081e0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x34537C88 EQ PUSH2 0x38 JUMPI DUP1 PUSH4 0xD0C35873 EQ PUSH2 0x56 JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x40 PUSH2 0x86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4D SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x70 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6B SWAP2 SWAP1 PUSH2 0x384 JUMP JUMPDEST PUSH2 0xAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7D SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH0 PUSH0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH0 PUSH0 DUP3 DUP5 MLOAD PUSH1 0x20 DUP7 ADD PUSH0 CREATE2 SWAP1 POP DUP1 EXTCODESIZE PUSH2 0xC1 JUMPI PUSH0 PUSH0 REVERT JUMPDEST DUP1 PUSH0 PUSH0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH32 0x55EA6C6B31543D8E2EC6A72F71A79C0F4B72ED0D4757172B043D8F4F4CD84848 DUP2 PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x16A DUP3 PUSH2 0x141 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x17A DUP2 PUSH2 0x160 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x193 PUSH0 DUP4 ADD DUP5 PUSH2 0x171 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH0 REVERT JUMPDEST PUSH2 0x1F8 DUP3 PUSH2 0x1B2 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x217 JUMPI PUSH2 0x216 PUSH2 0x1C2 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x229 PUSH2 0x199 JUMP JUMPDEST SWAP1 POP PUSH2 0x235 DUP3 DUP3 PUSH2 0x1EF JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x254 JUMPI PUSH2 0x253 PUSH2 0x1C2 JUMP JUMPDEST JUMPDEST PUSH2 0x25D DUP3 PUSH2 0x1B2 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH0 PUSH2 0x28A PUSH2 0x285 DUP5 PUSH2 0x23A JUMP JUMPDEST PUSH2 0x220 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A6 JUMPI PUSH2 0x2A5 PUSH2 0x1AE JUMP JUMPDEST JUMPDEST PUSH2 0x2B1 DUP5 DUP3 DUP6 PUSH2 0x26A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2CD JUMPI PUSH2 0x2CC PUSH2 0x1AA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2DD DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x278 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x300 JUMPI PUSH2 0x2FF PUSH2 0x1C2 JUMP JUMPDEST JUMPDEST PUSH2 0x309 DUP3 PUSH2 0x1B2 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH0 PUSH2 0x328 PUSH2 0x323 DUP5 PUSH2 0x2E6 JUMP JUMPDEST PUSH2 0x220 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x344 JUMPI PUSH2 0x343 PUSH2 0x1AE JUMP JUMPDEST JUMPDEST PUSH2 0x34F DUP5 DUP3 DUP6 PUSH2 0x26A JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x36B JUMPI PUSH2 0x36A PUSH2 0x1AA JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x37B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x316 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH0 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39A JUMPI PUSH2 0x399 PUSH2 0x1A2 JUMP JUMPDEST JUMPDEST PUSH0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B7 JUMPI PUSH2 0x3B6 PUSH2 0x1A6 JUMP JUMPDEST JUMPDEST PUSH2 0x3C3 DUP6 DUP3 DUP7 ADD PUSH2 0x2B9 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E4 JUMPI PUSH2 0x3E3 PUSH2 0x1A6 JUMP JUMPDEST JUMPDEST PUSH2 0x3F0 DUP6 DUP3 DUP7 ADD PUSH2 0x357 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 OR CALLDATASIZE PUSH2 0xEA56 EQ 0xE2 XOR 0xB4 0xA6 SWAP6 0xB6 SWAP5 RJUMPI 0x9220 PUSH25 0x32815A7432FB1822BEE946259AB50964736F6C634300081E00 CALLER ", "sourceMap": "61:579:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;165:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;208:429;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;165:34;;;;;;;;;;;;;:::o;208:429::-;311:7;331:12;435:5;424:8;418:15;411:4;401:8;397:19;394:1;386:55;378:63;;477:4;465:17;455:75;;513:1;510;503:12;455:75;575:4;553:19;;:26;;;;;;;;;;;;;;;;;;595:12;602:4;595:12;;;;;;:::i;:::-;;;;;;;;625:4;618:11;;;208:429;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:75::-;626:6;659:2;653:9;643:19;;593:75;:::o;674:117::-;783:1;780;773:12;797:117;906:1;903;896:12;920:117;1029:1;1026;1019:12;1043:117;1152:1;1149;1142:12;1166:102;1207:6;1258:2;1254:7;1249:2;1242:5;1238:14;1234:28;1224:38;;1166:102;;;:::o;1274:180::-;1322:77;1319:1;1312:88;1419:4;1416:1;1409:15;1443:4;1440:1;1433:15;1460:281;1543:27;1565:4;1543:27;:::i;:::-;1535:6;1531:40;1673:6;1661:10;1658:22;1637:18;1625:10;1622:34;1619:62;1616:88;;;1684:18;;:::i;:::-;1616:88;1724:10;1720:2;1713:22;1503:238;1460:281;;:::o;1747:129::-;1781:6;1808:20;;:::i;:::-;1798:30;;1837:33;1865:4;1857:6;1837:33;:::i;:::-;1747:129;;;:::o;1882:307::-;1943:4;2033:18;2025:6;2022:30;2019:56;;;2055:18;;:::i;:::-;2019:56;2093:29;2115:6;2093:29;:::i;:::-;2085:37;;2177:4;2171;2167:15;2159:23;;1882:307;;;:::o;2195:148::-;2293:6;2288:3;2283;2270:30;2334:1;2325:6;2320:3;2316:16;2309:27;2195:148;;;:::o;2349:423::-;2426:5;2451:65;2467:48;2508:6;2467:48;:::i;:::-;2451:65;:::i;:::-;2442:74;;2539:6;2532:5;2525:21;2577:4;2570:5;2566:16;2615:3;2606:6;2601:3;2597:16;2594:25;2591:112;;;2622:79;;:::i;:::-;2591:112;2712:54;2759:6;2754:3;2749;2712:54;:::i;:::-;2432:340;2349:423;;;;;:::o;2791:338::-;2846:5;2895:3;2888:4;2880:6;2876:17;2872:27;2862:122;;2903:79;;:::i;:::-;2862:122;3020:6;3007:20;3045:78;3119:3;3111:6;3104:4;3096:6;3092:17;3045:78;:::i;:::-;3036:87;;2852:277;2791:338;;;;:::o;3135:308::-;3197:4;3287:18;3279:6;3276:30;3273:56;;;3309:18;;:::i;:::-;3273:56;3347:29;3369:6;3347:29;:::i;:::-;3339:37;;3431:4;3425;3421:15;3413:23;;3135:308;;;:::o;3449:425::-;3527:5;3552:66;3568:49;3610:6;3568:49;:::i;:::-;3552:66;:::i;:::-;3543:75;;3641:6;3634:5;3627:21;3679:4;3672:5;3668:16;3717:3;3708:6;3703:3;3699:16;3696:25;3693:112;;;3724:79;;:::i;:::-;3693:112;3814:54;3861:6;3856:3;3851;3814:54;:::i;:::-;3533:341;3449:425;;;;;:::o;3894:340::-;3950:5;3999:3;3992:4;3984:6;3980:17;3976:27;3966:122;;4007:79;;:::i;:::-;3966:122;4124:6;4111:20;4149:79;4224:3;4216:6;4209:4;4201:6;4197:17;4149:79;:::i;:::-;4140:88;;3956:278;3894:340;;;;:::o;4240:832::-;4327:6;4335;4384:2;4372:9;4363:7;4359:23;4355:32;4352:119;;;4390:79;;:::i;:::-;4352:119;4538:1;4527:9;4523:17;4510:31;4568:18;4560:6;4557:30;4554:117;;;4590:79;;:::i;:::-;4554:117;4695:62;4749:7;4740:6;4729:9;4725:22;4695:62;:::i;:::-;4685:72;;4481:286;4834:2;4823:9;4819:18;4806:32;4865:18;4857:6;4854:30;4851:117;;;4887:79;;:::i;:::-;4851:117;4992:63;5047:7;5038:6;5027:9;5023:22;4992:63;:::i;:::-;4982:73;;4777:288;4240:832;;;;;:::o" }, "Assembly": ".code\n PUSH 80\t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 40\t\t\tcontract Create2Factory {\\r\\n ...\n MSTORE \t\t\tcontract Create2Factory {\\r\\n ...\n CALLVALUE \t\t\tcontract Create2Factory {\\r\\n ...\n DUP1 \t\t\tcontract Create2Factory {\\r\\n ...\n ISZERO \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH [tag] 1\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPI \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n REVERT \t\t\tcontract Create2Factory {\\r\\n ...\ntag 1\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPDEST \t\t\tcontract Create2Factory {\\r\\n ...\n POP \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000\t\t\tcontract Create2Factory {\\r\\n ...\n DUP1 \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH [$] 0000000000000000000000000000000000000000000000000000000000000000\t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n CODECOPY \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n RETURN \t\t\tcontract Create2Factory {\\r\\n ...\n.data\n 0:\n .code\n PUSH 80\t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 40\t\t\tcontract Create2Factory {\\r\\n ...\n MSTORE \t\t\tcontract Create2Factory {\\r\\n ...\n CALLVALUE \t\t\tcontract Create2Factory {\\r\\n ...\n DUP1 \t\t\tcontract Create2Factory {\\r\\n ...\n ISZERO \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH [tag] 1\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPI \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n REVERT \t\t\tcontract Create2Factory {\\r\\n ...\n tag 1\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPDEST \t\t\tcontract Create2Factory {\\r\\n ...\n POP \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 4\t\t\tcontract Create2Factory {\\r\\n ...\n CALLDATASIZE \t\t\tcontract Create2Factory {\\r\\n ...\n LT \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH [tag] 2\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPI \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n CALLDATALOAD \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH E0\t\t\tcontract Create2Factory {\\r\\n ...\n SHR \t\t\tcontract Create2Factory {\\r\\n ...\n DUP1 \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 34537C88\t\t\tcontract Create2Factory {\\r\\n ...\n EQ \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH [tag] 3\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPI \t\t\tcontract Create2Factory {\\r\\n ...\n DUP1 \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH D0C35873\t\t\tcontract Create2Factory {\\r\\n ...\n EQ \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH [tag] 4\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPI \t\t\tcontract Create2Factory {\\r\\n ...\n tag 2\t\t\tcontract Create2Factory {\\r\\n ...\n JUMPDEST \t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n PUSH 0\t\t\tcontract Create2Factory {\\r\\n ...\n REVERT \t\t\tcontract Create2Factory {\\r\\n ...\n tag 3\t\t\taddress public lastDeployedAdd...\n JUMPDEST \t\t\taddress public lastDeployedAdd...\n PUSH [tag] 5\t\t\taddress public lastDeployedAdd...\n PUSH [tag] 6\t\t\taddress public lastDeployedAdd...\n JUMP \t\t\taddress public lastDeployedAdd...\n tag 5\t\t\taddress public lastDeployedAdd...\n JUMPDEST \t\t\taddress public lastDeployedAdd...\n PUSH 40\t\t\taddress public lastDeployedAdd...\n MLOAD \t\t\taddress public lastDeployedAdd...\n PUSH [tag] 7\t\t\taddress public lastDeployedAdd...\n SWAP2 \t\t\taddress public lastDeployedAdd...\n SWAP1 \t\t\taddress public lastDeployedAdd...\n PUSH [tag] 8\t\t\taddress public lastDeployedAdd...\n JUMP \t\t\taddress public lastDeployedAdd...\n tag 7\t\t\taddress public lastDeployedAdd...\n JUMPDEST \t\t\taddress public lastDeployedAdd...\n PUSH 40\t\t\taddress public lastDeployedAdd...\n MLOAD \t\t\taddress public lastDeployedAdd...\n DUP1 \t\t\taddress public lastDeployedAdd...\n SWAP2 \t\t\taddress public lastDeployedAdd...\n SUB \t\t\taddress public lastDeployedAdd...\n SWAP1 \t\t\taddress public lastDeployedAdd...\n RETURN \t\t\taddress public lastDeployedAdd...\n tag 4\t\t\tfunction deploy(\\r\\n by...\n JUMPDEST \t\t\tfunction deploy(\\r\\n by...\n PUSH [tag] 9\t\t\tfunction deploy(\\r\\n by...\n PUSH 4\t\t\tfunction deploy(\\r\\n by...\n DUP1 \t\t\tfunction deploy(\\r\\n by...\n CALLDATASIZE \t\t\tfunction deploy(\\r\\n by...\n SUB \t\t\tfunction deploy(\\r\\n by...\n DUP2 \t\t\tfunction deploy(\\r\\n by...\n ADD \t\t\tfunction deploy(\\r\\n by...\n SWAP1 \t\t\tfunction deploy(\\r\\n by...\n PUSH [tag] 10\t\t\tfunction deploy(\\r\\n by...\n SWAP2 \t\t\tfunction deploy(\\r\\n by...\n SWAP1 \t\t\tfunction deploy(\\r\\n by...\n PUSH [tag] 11\t\t\tfunction deploy(\\r\\n by...\n JUMP \t\t\tfunction deploy(\\r\\n by...\n tag 10\t\t\tfunction deploy(\\r\\n by...\n JUMPDEST \t\t\tfunction deploy(\\r\\n by...\n PUSH [tag] 12\t\t\tfunction deploy(\\r\\n by...\n JUMP \t\t\tfunction deploy(\\r\\n by...\n tag 9\t\t\tfunction deploy(\\r\\n by...\n JUMPDEST \t\t\tfunction deploy(\\r\\n by...\n PUSH 40\t\t\tfunction deploy(\\r\\n by...\n MLOAD \t\t\tfunction deploy(\\r\\n by...\n PUSH [tag] 13\t\t\tfunction deploy(\\r\\n by...\n SWAP2 \t\t\tfunction deploy(\\r\\n by...\n SWAP1 \t\t\tfunction deploy(\\r\\n by...\n PUSH [tag] 8\t\t\tfunction deploy(\\r\\n by...\n JUMP \t\t\tfunction deploy(\\r\\n by...\n tag 13\t\t\tfunction deploy(\\r\\n by...\n JUMPDEST \t\t\tfunction deploy(\\r\\n by...\n PUSH 40\t\t\tfunction deploy(\\r\\n by...\n MLOAD \t\t\tfunction deploy(\\r\\n by...\n DUP1 \t\t\tfunction deploy(\\r\\n by...\n SWAP2 \t\t\tfunction deploy(\\r\\n by...\n SUB \t\t\tfunction deploy(\\r\\n by...\n SWAP1 \t\t\tfunction deploy(\\r\\n by...\n RETURN \t\t\tfunction deploy(\\r\\n by...\n tag 6\t\t\taddress public lastDeployedAdd...\n JUMPDEST \t\t\taddress public lastDeployedAdd...\n PUSH 0\t\t\taddress public lastDeployedAdd...\n PUSH 0\t\t\taddress public lastDeployedAdd...\n SWAP1 \t\t\taddress public lastDeployedAdd...\n SLOAD \t\t\taddress public lastDeployedAdd...\n SWAP1 \t\t\taddress public lastDeployedAdd...\n PUSH 100\t\t\taddress public lastDeployedAdd...\n EXP \t\t\taddress public lastDeployedAdd...\n SWAP1 \t\t\taddress public lastDeployedAdd...\n DIV \t\t\taddress public lastDeployedAdd...\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\taddress public lastDeployedAdd...\n AND \t\t\taddress public lastDeployedAdd...\n DUP2 \t\t\taddress public lastDeployedAdd...\n JUMP \t\t\taddress public lastDeployedAdd...\n tag 12\t\t\tfunction deploy(\\r\\n by...\n JUMPDEST \t\t\tfunction deploy(\\r\\n by...\n PUSH 0\t\t\taddress\n PUSH 0\t\t\taddress addr\n DUP3 \t\t\t_salt\n DUP5 \t\t\tbytecode\n MLOAD \t\t\tmload(bytecode)\n PUSH 20\t\t\t0x20\n DUP7 \t\t\tbytecode\n ADD \t\t\tadd(bytecode, 0x20)\n PUSH 0\t\t\t0\n CREATE2 \t\t\tcreate2(0, add(bytecode, 0x20)...\n SWAP1 \t\t\taddr := create2(0, add(bytecod...\n POP \t\t\taddr := create2(0, add(bytecod...\n DUP1 \t\t\taddr\n EXTCODESIZE \t\t\textcodesize(addr)\n PUSH [tag] 15\t\t\tif iszero(extcodesize(addr)) {...\n JUMPI \t\t\tif iszero(extcodesize(addr)) {...\n PUSH 0\t\t\t0\n PUSH 0\t\t\t0\n REVERT \t\t\trevert(0, 0)\n tag 15\t\t\tif iszero(extcodesize(addr)) {...\n JUMPDEST \t\t\tif iszero(extcodesize(addr)) {...\n DUP1 \t\t\taddr\n PUSH 0\t\t\tlastDeployedAddress\n PUSH 0\t\t\tlastDeployedAddress\n PUSH 100\t\t\tlastDeployedAddress = addr\n EXP \t\t\tlastDeployedAddress = addr\n DUP2 \t\t\tlastDeployedAddress = addr\n SLOAD \t\t\tlastDeployedAddress = addr\n DUP2 \t\t\tlastDeployedAddress = addr\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\tlastDeployedAddress = addr\n MUL \t\t\tlastDeployedAddress = addr\n NOT \t\t\tlastDeployedAddress = addr\n AND \t\t\tlastDeployedAddress = addr\n SWAP1 \t\t\tlastDeployedAddress = addr\n DUP4 \t\t\tlastDeployedAddress = addr\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\tlastDeployedAddress = addr\n AND \t\t\tlastDeployedAddress = addr\n MUL \t\t\tlastDeployedAddress = addr\n OR \t\t\tlastDeployedAddress = addr\n SWAP1 \t\t\tlastDeployedAddress = addr\n SSTORE \t\t\tlastDeployedAddress = addr\n POP \t\t\tlastDeployedAddress = addr\n PUSH 55EA6C6B31543D8E2EC6A72F71A79C0F4B72ED0D4757172B043D8F4F4CD84848\t\t\tDeploy(addr)\n DUP2 \t\t\taddr\n PUSH 40\t\t\tDeploy(addr)\n MLOAD \t\t\tDeploy(addr)\n PUSH [tag] 16\t\t\tDeploy(addr)\n SWAP2 \t\t\tDeploy(addr)\n SWAP1 \t\t\tDeploy(addr)\n PUSH [tag] 8\t\t\tDeploy(addr)\n JUMP \t\t\tDeploy(addr)\n tag 16\t\t\tDeploy(addr)\n JUMPDEST \t\t\tDeploy(addr)\n PUSH 40\t\t\tDeploy(addr)\n MLOAD \t\t\tDeploy(addr)\n DUP1 \t\t\tDeploy(addr)\n SWAP2 \t\t\tDeploy(addr)\n SUB \t\t\tDeploy(addr)\n SWAP1 \t\t\tDeploy(addr)\n LOG1 \t\t\tDeploy(addr)\n DUP1 \t\t\taddr\n SWAP2 \t\t\treturn addr\n POP \t\t\treturn addr\n POP \t\t\treturn addr\n SWAP3 \t\t\tfunction deploy(\\r\\n by...\n SWAP2 \t\t\tfunction deploy(\\r\\n by...\n POP \t\t\tfunction deploy(\\r\\n by...\n POP \t\t\tfunction deploy(\\r\\n by...\n JUMP \t\t\tfunction deploy(\\r\\n by...\n tag 17\t\t\t-License-Identifier: MIT\\r\\npr...\n JUMPDEST \t\t\t-License-Identifier: MIT\\r\\npr...\n PUSH 0\t\t\tdity ^0\n PUSH FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\t\t\t {\\r\\n event Deploy(address...\n DUP3 \t\t\tFacto\n AND \t\t\tate2Factory {\\r\\n event Dep...\n SWAP1 \t\t\tontract Create2Factory {\\r\\n ...\n POP \t\t\tontract Create2Factory {\\r\\n ...\n SWAP2 \t\t\t-License-Identifier: MIT\\r\\npr...\n SWAP1 \t\t\t-License-Identifier: MIT\\r\\npr...\n POP \t\t\t-License-Identifier: MIT\\r\\npr...\n JUMP \t\t\t-License-Identifier: MIT\\r\\npr...\n tag 18\t\t\tast deployed address\\r\\n ad...\n JUMPDEST \t\t\tast deployed address\\r\\n ad...\n PUSH 0\t\t\tlic las\n PUSH [tag] 39\t\t\t function deploy(\\r\\n \n DUP3 \t\t\t(\\r\\n \n PUSH [tag] 17\t\t\t function deploy(\\r\\n \n JUMP \t\t\t function deploy(\\r\\n \n tag 39\t\t\t function deploy(\\r\\n \n JUMPDEST \t\t\t function deploy(\\r\\n \n SWAP1 \t\t\tdress;\\r\\n\\r\\n function dep...\n POP \t\t\tdress;\\r\\n\\r\\n function dep...\n SWAP2 \t\t\tast deployed address\\r\\n ad...\n SWAP1 \t\t\tast deployed address\\r\\n ad...\n POP \t\t\tast deployed address\\r\\n ad...\n JUMP \t\t\tast deployed address\\r\\n ad...\n tag 19\t\t\temory bytecode,\\r\\n str...\n JUMPDEST \t\t\temory bytecode,\\r\\n str...\n PUSH [tag] 41\t\t\t address addr;\\r\\n \n DUP2 \t\t\t \n PUSH [tag] 18\t\t\t address addr;\\r\\n \n JUMP \t\t\t address addr;\\r\\n \n tag 41\t\t\t address addr;\\r\\n \n JUMPDEST \t\t\t address addr;\\r\\n \n DUP3 \t\t\t \n MSTORE \t\t\tss) {\\r\\n address addr;...\n POP \t\t\temory bytecode,\\r\\n str...\n POP \t\t\temory bytecode,\\r\\n str...\n JUMP \t\t\temory bytecode,\\r\\n str...\n tag 8\t\t\t\\n addr := create2(...\n JUMPDEST \t\t\t\\n addr := create2(...\n PUSH 0\t\t\tisze\n PUSH 20\t\t\t \n DUP3 \t\t\t\\r\\n \n ADD \t\t\t)) {\\r\\n \n SWAP1 \t\t\tize(addr)) {\\r\\n \n POP \t\t\tize(addr)) {\\r\\n \n PUSH [tag] 43\t\t\t(0, 0)\\r\\n }\\r\\n ...\n PUSH 0\t\t\td\n DUP4 \t\t\tddress = \n ADD \t\t\tyedAddress = addr\n DUP5 \t\t\tlastDe\n PUSH [tag] 19\t\t\t(0, 0)\\r\\n }\\r\\n ...\n JUMP \t\t\t(0, 0)\\r\\n }\\r\\n ...\n tag 43\t\t\t(0, 0)\\r\\n }\\r\\n ...\n JUMPDEST \t\t\t(0, 0)\\r\\n }\\r\\n ...\n SWAP3 \t\t\t\\n addr := create2(...\n SWAP2 \t\t\t\\n addr := create2(...\n POP \t\t\t\\n addr := create2(...\n POP \t\t\t\\n addr := create2(...\n JUMP \t\t\t\\n addr := create2(...\n tag 20\t\t\tt Deploy(addr);\\r\\n ret...\n JUMPDEST \t\t\tt Deploy(addr);\\r\\n ret...\n PUSH 0\t\t\tddr;\\r\\n\n PUSH 40\t\t\tca\n MLOAD \t\t\ttract can\n SWAP1 \t\t\t/ This contract can\n POP \t\t\t/ This contract can\n SWAP1 \t\t\tt Deploy(addr);\\r\\n ret...\n JUMP \t\t\tt Deploy(addr);\\r\\n ret...\n tag 21\t\t\t on multiple EVM Chains. Howe...\n JUMPDEST \t\t\t on multiple EVM Chains. Howe...\n PUSH 0\t\t\ts\n PUSH 0\t\t\tr\n REVERT \t\t\tthe address \n tag 22\t\t\ts contract will get deployed. ...\n JUMPDEST \t\t\ts contract will get deployed. ...\n PUSH 0\t\t\tr\n PUSH 0\t\t\to\n REVERT \t\t\tother contra\n tag 23\t\t\t factory contract deploys usin...\n JUMPDEST \t\t\t factory contract deploys usin...\n PUSH 0\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 24\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 25\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 1F\t\t\t\n NOT \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n AND \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 26\t\t\t\n JUMPDEST \t\t\t\n PUSH 4E487B7100000000000000000000000000000000000000000000000000000000\t\t\t\n PUSH 0\t\t\t\n MSTORE \t\t\t\n PUSH 41\t\t\t\n PUSH 4\t\t\t\n MSTORE \t\t\t\n PUSH 24\t\t\t\n PUSH 0\t\t\t\n REVERT \t\t\t\n tag 27\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 52\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 25\t\t\t\n JUMP \t\t\t\n tag 52\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP2 \t\t\t\n DUP2 \t\t\t\n LT \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n OR \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 53\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 54\t\t\t\n PUSH [tag] 26\t\t\t\n JUMP \t\t\t\n tag 54\t\t\t\n JUMPDEST \t\t\t\n tag 53\t\t\t\n JUMPDEST \t\t\t\n DUP1 \t\t\t\n PUSH 40\t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 28\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 56\t\t\t\n PUSH [tag] 20\t\t\t\n JUMP \t\t\t\n tag 56\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH [tag] 57\t\t\t\n DUP3 \t\t\t\n DUP3 \t\t\t\n PUSH [tag] 27\t\t\t\n JUMP \t\t\t\n tag 57\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 29\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 59\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 60\t\t\t\n PUSH [tag] 26\t\t\t\n JUMP \t\t\t\n tag 60\t\t\t\n JUMPDEST \t\t\t\n tag 59\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 61\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 25\t\t\t\n JUMP \t\t\t\n tag 61\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 30\t\t\t\n JUMPDEST \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n DUP4 \t\t\t\n CALLDATACOPY \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n MSTORE \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 31\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 64\t\t\t\n PUSH [tag] 65\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 29\t\t\t\n JUMP \t\t\t\n tag 65\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 28\t\t\t\n JUMP \t\t\t\n tag 64\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 66\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 67\t\t\t\n PUSH [tag] 24\t\t\t\n JUMP \t\t\t\n tag 67\t\t\t\n JUMPDEST \t\t\t\n tag 66\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 68\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 30\t\t\t\n JUMP \t\t\t\n tag 68\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 32\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 70\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 71\t\t\t\n PUSH [tag] 23\t\t\t\n JUMP \t\t\t\n tag 71\t\t\t\n JUMPDEST \t\t\t\n tag 70\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 72\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 31\t\t\t\n JUMP \t\t\t\n tag 72\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 33\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP3 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 74\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 75\t\t\t\n PUSH [tag] 26\t\t\t\n JUMP \t\t\t\n tag 75\t\t\t\n JUMPDEST \t\t\t\n tag 74\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 76\t\t\t\n DUP3 \t\t\t\n PUSH [tag] 25\t\t\t\n JUMP \t\t\t\n tag 76\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n SWAP2 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 34\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH [tag] 78\t\t\t\n PUSH [tag] 79\t\t\t\n DUP5 \t\t\t\n PUSH [tag] 33\t\t\t\n JUMP \t\t\t\n tag 79\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 28\t\t\t\n JUMP \t\t\t\n tag 78\t\t\t\n JUMPDEST \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n DUP3 \t\t\t\n DUP2 \t\t\t\n MSTORE \t\t\t\n PUSH 20\t\t\t\n DUP2 \t\t\t\n ADD \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n DUP5 \t\t\t\n ADD \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 80\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 81\t\t\t\n PUSH [tag] 24\t\t\t\n JUMP \t\t\t\n tag 81\t\t\t\n JUMPDEST \t\t\t\n tag 80\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 82\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n DUP6 \t\t\t\n PUSH [tag] 30\t\t\t\n JUMP \t\t\t\n tag 82\t\t\t\n JUMPDEST \t\t\t\n POP \t\t\t\n SWAP4 \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 35\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP3 \t\t\t\n PUSH 1F\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n SLT \t\t\t\n PUSH [tag] 84\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 85\t\t\t\n PUSH [tag] 23\t\t\t\n JUMP \t\t\t\n tag 85\t\t\t\n JUMPDEST \t\t\t\n tag 84\t\t\t\n JUMPDEST \t\t\t\n DUP2 \t\t\t\n CALLDATALOAD \t\t\t\n PUSH [tag] 86\t\t\t\n DUP5 \t\t\t\n DUP3 \t\t\t\n PUSH 20\t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 34\t\t\t\n JUMP \t\t\t\n tag 86\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n tag 11\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n PUSH 0\t\t\t\n PUSH 40\t\t\t\n DUP4 \t\t\t\n DUP6 \t\t\t\n SUB \t\t\t\n SLT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 88\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 89\t\t\t\n PUSH [tag] 21\t\t\t\n JUMP \t\t\t\n tag 89\t\t\t\n JUMPDEST \t\t\t\n tag 88\t\t\t\n JUMPDEST \t\t\t\n PUSH 0\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 90\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 91\t\t\t\n PUSH [tag] 22\t\t\t\n JUMP \t\t\t\n tag 91\t\t\t\n JUMPDEST \t\t\t\n tag 90\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 92\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 32\t\t\t\n JUMP \t\t\t\n tag 92\t\t\t\n JUMPDEST \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n POP \t\t\t\n PUSH 20\t\t\t\n DUP4 \t\t\t\n ADD \t\t\t\n CALLDATALOAD \t\t\t\n PUSH FFFFFFFFFFFFFFFF\t\t\t\n DUP2 \t\t\t\n GT \t\t\t\n ISZERO \t\t\t\n PUSH [tag] 93\t\t\t\n JUMPI \t\t\t\n PUSH [tag] 94\t\t\t\n PUSH [tag] 22\t\t\t\n JUMP \t\t\t\n tag 94\t\t\t\n JUMPDEST \t\t\t\n tag 93\t\t\t\n JUMPDEST \t\t\t\n PUSH [tag] 95\t\t\t\n DUP6 \t\t\t\n DUP3 \t\t\t\n DUP7 \t\t\t\n ADD \t\t\t\n PUSH [tag] 35\t\t\t\n JUMP \t\t\t\n tag 95\t\t\t\n JUMPDEST \t\t\t\n SWAP2 \t\t\t\n POP \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n POP \t\t\t\n SWAP3 \t\t\t\n SWAP1 \t\t\t\n POP \t\t\t\n JUMP \t\t\t\n .data\n" }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/thomasfevre/layerzero_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server