Skip to content

Instantly share code, notes, and snippets.

@Saurabgami977
Created June 20, 2021 17:05
Show Gist options
  • Save Saurabgami977/ad29d2f1e09646f92d9c9655598439b1 to your computer and use it in GitHub Desktop.
Save Saurabgami977/ad29d2f1e09646f92d9c9655598439b1 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.5+commit.a4f2e591.js&optimize=false&runs=200&gist=
pragma solidity ^0.8.5;
contract Array {
uint[] public ids;
function addToArray (uint _id) public {
ids.push(_id);
}
function readArray (uint _position) view public returns(uint){
return ids[_position];
}
function readAll() view public returns(uint[] memory){
return ids;
}
function readSize() view public returns(uint){
return ids.length;
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506103c6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80630d56aa4f1461005c57806341f654f71461007a5780638737606114610098578063d15ec851146100c8578063fac333ac146100e4575b600080fd5b610064610114565b60405161007191906102e7565b60405180910390f35b610082610120565b60405161008f91906102c5565b60405180910390f35b6100b260048036038101906100ad9190610204565b610178565b6040516100bf91906102e7565b60405180910390f35b6100e260048036038101906100dd9190610204565b61019f565b005b6100fe60048036038101906100f99190610204565b6101cb565b60405161010b91906102e7565b60405180910390f35b60008080549050905090565b6060600080548060200260200160405190810160405280929190818152602001828054801561016e57602002820191906000526020600020905b81548152602001906001019080831161015a575b5050505050905090565b600080828154811061018d5761018c610345565b5b90600052602060002001549050919050565b600081908060018154018082558091505060019003906000526020600020016000909190919091505550565b600081815481106101db57600080fd5b906000526020600020016000915090505481565b6000813590506101fe81610379565b92915050565b60006020828403121561021a57610219610374565b5b6000610228848285016101ef565b91505092915050565b600061023d83836102a7565b60208301905092915050565b600061025482610312565b61025e818561032a565b935061026983610302565b8060005b8381101561029a5781516102818882610231565b975061028c8361031d565b92505060018101905061026d565b5085935050505092915050565b6102b08161033b565b82525050565b6102bf8161033b565b82525050565b600060208201905081810360008301526102df8184610249565b905092915050565b60006020820190506102fc60008301846102b6565b92915050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6103828161033b565b811461038d57600080fd5b5056fea2646970667358221220b89e77bb19235b6db49c6ac57569793feb7bda89051626c89a38d58b4d6965b564736f6c63430008050033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3C6 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD56AA4F EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x41F654F7 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x87376061 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0xD15EC851 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xFAC333AC EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x178 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF9 SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10B SWAP2 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x15A JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18D JUMPI PUSH2 0x18C PUSH2 0x345 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE DUP2 PUSH2 0x379 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21A JUMPI PUSH2 0x219 PUSH2 0x374 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP5 DUP3 DUP6 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23D DUP4 DUP4 PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x254 DUP3 PUSH2 0x312 JUMP JUMPDEST PUSH2 0x25E DUP2 DUP6 PUSH2 0x32A JUMP JUMPDEST SWAP4 POP PUSH2 0x269 DUP4 PUSH2 0x302 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x29A JUMPI DUP2 MLOAD PUSH2 0x281 DUP9 DUP3 PUSH2 0x231 JUMP JUMPDEST SWAP8 POP PUSH2 0x28C DUP4 PUSH2 0x31D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x26D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B0 DUP2 PUSH2 0x33B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2BF DUP2 PUSH2 0x33B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2DF DUP2 DUP5 PUSH2 0x249 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2FC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x382 DUP2 PUSH2 0x33B JUMP JUMPDEST DUP2 EQ PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 SWAP15 PUSH24 0xBB19235B6DB49C6AC57569793FEB7BDA89051626C89A38D5 DUP12 0x4D PUSH10 0x65B564736F6C63430008 SDIV STOP CALLER ",
"sourceMap": "25:412:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@addToArray_16": {
"entryPoint": 415,
"id": 16,
"parameterSlots": 1,
"returnSlots": 0
},
"@ids_4": {
"entryPoint": 459,
"id": 4,
"parameterSlots": 0,
"returnSlots": 0
},
"@readAll_37": {
"entryPoint": 288,
"id": 37,
"parameterSlots": 0,
"returnSlots": 1
},
"@readArray_28": {
"entryPoint": 376,
"id": 28,
"parameterSlots": 1,
"returnSlots": 1
},
"@readSize_46": {
"entryPoint": 276,
"id": 46,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 495,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 516,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encodeUpdatedPos_t_uint256_to_t_uint256": {
"entryPoint": 561,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 585,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256": {
"entryPoint": 679,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 694,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": {
"entryPoint": 709,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 743,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 770,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 786,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": {
"entryPoint": 797,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": {
"entryPoint": 810,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 827,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x32": {
"entryPoint": 837,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 884,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 889,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3573:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "266:77:1"
},
"nodeType": "YulFunctionCall",
"src": "266:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "266:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "235:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "231:32:1"
},
"nodeType": "YulIf",
"src": "228:2:1"
},
{
"nodeType": "YulBlock",
"src": "357:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "372:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "386:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "376:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "401:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "436:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "447:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "432:3:1"
},
"nodeType": "YulFunctionCall",
"src": "432:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "456:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "411:20:1"
},
"nodeType": "YulFunctionCall",
"src": "411:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "401:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:1",
"type": ""
}
],
"src": "152:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "567:99:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "611:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "619:3:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "577:33:1"
},
"nodeType": "YulFunctionCall",
"src": "577:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "577:46:1"
},
{
"nodeType": "YulAssignment",
"src": "632:28:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "650:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "655:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "646:3:1"
},
"nodeType": "YulFunctionCall",
"src": "646:14:1"
},
"variableNames": [
{
"name": "updatedPos",
"nodeType": "YulIdentifier",
"src": "632:10:1"
}
]
}
]
},
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "540:6:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "548:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updatedPos",
"nodeType": "YulTypedName",
"src": "556:10:1",
"type": ""
}
],
"src": "487:179:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "826:608:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "836:68:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "898:5:1"
}
],
"functionName": {
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "850:47:1"
},
"nodeType": "YulFunctionCall",
"src": "850:54:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "840:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "913:93:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "994:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "999:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "920:73:1"
},
"nodeType": "YulFunctionCall",
"src": "920:86:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "913:3:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1015:71:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1080:5:1"
}
],
"functionName": {
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1030:49:1"
},
"nodeType": "YulFunctionCall",
"src": "1030:56:1"
},
"variables": [
{
"name": "baseRef",
"nodeType": "YulTypedName",
"src": "1019:7:1",
"type": ""
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1095:21:1",
"value": {
"name": "baseRef",
"nodeType": "YulIdentifier",
"src": "1109:7:1"
},
"variables": [
{
"name": "srcPtr",
"nodeType": "YulTypedName",
"src": "1099:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1185:224:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1199:34:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "1226:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1220:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1220:13:1"
},
"variables": [
{
"name": "elementValue0",
"nodeType": "YulTypedName",
"src": "1203:13:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1246:70:1",
"value": {
"arguments": [
{
"name": "elementValue0",
"nodeType": "YulIdentifier",
"src": "1297:13:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1312:3:1"
}
],
"functionName": {
"name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "1253:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1253:63:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1246:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1329:70:1",
"value": {
"arguments": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "1392:6:1"
}
],
"functionName": {
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1339:52:1"
},
"nodeType": "YulFunctionCall",
"src": "1339:60:1"
},
"variableNames": [
{
"name": "srcPtr",
"nodeType": "YulIdentifier",
"src": "1329:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1147:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1150:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1144:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1144:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1158:18:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1160:14:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1169:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1172:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1165:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1165:9:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1160:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1129:14:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1131:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1140:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1135:1:1",
"type": ""
}
]
}
]
},
"src": "1125:284:1"
},
{
"nodeType": "YulAssignment",
"src": "1418:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1425:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1418:3:1"
}
]
}
]
},
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "805:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "812:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "821:3:1",
"type": ""
}
],
"src": "702:732:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1495:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1512:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1535:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1517:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1517:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1505:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1505:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1505:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1483:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1490:3:1",
"type": ""
}
],
"src": "1440:108:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1619:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1636:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1659:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1641:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1641:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1629:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1629:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1629:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1607:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1614:3:1",
"type": ""
}
],
"src": "1554:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1826:225:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1836:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1848:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1859:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1844:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1844:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1836:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1883:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1894:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1879:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1879:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1902:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1908:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1898:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1898:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1872:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1872:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "1872:47:1"
},
{
"nodeType": "YulAssignment",
"src": "1928:116:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2030:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2039:4:1"
}
],
"functionName": {
"name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1936:93:1"
},
"nodeType": "YulFunctionCall",
"src": "1936:108:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1928:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1798:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1810:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1821:4:1",
"type": ""
}
],
"src": "1678:373:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2155:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2165:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2177:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2188:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2173:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2173:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2165:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2245:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2269:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2254:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "2201:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2201:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2201:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2127:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2139:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2150:4:1",
"type": ""
}
],
"src": "2057:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2325:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2335:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2351:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2345:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2345:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2335:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2318:6:1",
"type": ""
}
],
"src": "2285:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2438:60:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2448:11:1",
"value": {
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "2456:3:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "2448:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2469:22:1",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "2481:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2486:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2477:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2477:14:1"
},
"variableNames": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "2469:4:1"
}
]
}
]
},
"name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "2425:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "2433:4:1",
"type": ""
}
],
"src": "2366:132:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2578:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2589:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2605:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2599:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2599:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2589:6:1"
}
]
}
]
},
"name": "array_length_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2561:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2571:6:1",
"type": ""
}
],
"src": "2504:114:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2699:38:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2709:22:1",
"value": {
"arguments": [
{
"name": "ptr",
"nodeType": "YulIdentifier",
"src": "2721:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2726:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2717:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2717:14:1"
},
"variableNames": [
{
"name": "next",
"nodeType": "YulIdentifier",
"src": "2709:4:1"
}
]
}
]
},
"name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "ptr",
"nodeType": "YulTypedName",
"src": "2686:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "next",
"nodeType": "YulTypedName",
"src": "2694:4:1",
"type": ""
}
],
"src": "2624:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2854:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2871:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2876:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2864:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2864:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "2864:19:1"
},
{
"nodeType": "YulAssignment",
"src": "2892:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2911:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2916:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2907:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2907:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "2892:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2826:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2831:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "2842:11:1",
"type": ""
}
],
"src": "2743:184:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2978:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2988:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2999:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2988:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2960:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2970:7:1",
"type": ""
}
],
"src": "2933:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3044:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3061:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3064:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3054:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3054:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3054:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3158:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3161:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3151:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3151:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3151:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3182:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3185:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3175:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3175:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3175:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3016:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3291:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3308:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3311:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3301:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3301:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3301:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "3202:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3414:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3431:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3434:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3424:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3424:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3424:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "3325:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3491:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3548:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3557:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3560:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3550:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3550:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3550:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3514:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3539:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3521:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3521:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3511:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3511:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3504:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3504:43:1"
},
"nodeType": "YulIf",
"src": "3501:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3484:5:1",
"type": ""
}
],
"src": "3448:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c80630d56aa4f1461005c57806341f654f71461007a5780638737606114610098578063d15ec851146100c8578063fac333ac146100e4575b600080fd5b610064610114565b60405161007191906102e7565b60405180910390f35b610082610120565b60405161008f91906102c5565b60405180910390f35b6100b260048036038101906100ad9190610204565b610178565b6040516100bf91906102e7565b60405180910390f35b6100e260048036038101906100dd9190610204565b61019f565b005b6100fe60048036038101906100f99190610204565b6101cb565b60405161010b91906102e7565b60405180910390f35b60008080549050905090565b6060600080548060200260200160405190810160405280929190818152602001828054801561016e57602002820191906000526020600020905b81548152602001906001019080831161015a575b5050505050905090565b600080828154811061018d5761018c610345565b5b90600052602060002001549050919050565b600081908060018154018082558091505060019003906000526020600020016000909190919091505550565b600081815481106101db57600080fd5b906000526020600020016000915090505481565b6000813590506101fe81610379565b92915050565b60006020828403121561021a57610219610374565b5b6000610228848285016101ef565b91505092915050565b600061023d83836102a7565b60208301905092915050565b600061025482610312565b61025e818561032a565b935061026983610302565b8060005b8381101561029a5781516102818882610231565b975061028c8361031d565b92505060018101905061026d565b5085935050505092915050565b6102b08161033b565b82525050565b6102bf8161033b565b82525050565b600060208201905081810360008301526102df8184610249565b905092915050565b60006020820190506102fc60008301846102b6565b92915050565b6000819050602082019050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6103828161033b565b811461038d57600080fd5b5056fea2646970667358221220b89e77bb19235b6db49c6ac57569793feb7bda89051626c89a38d58b4d6965b564736f6c63430008050033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD56AA4F EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x41F654F7 EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x87376061 EQ PUSH2 0x98 JUMPI DUP1 PUSH4 0xD15EC851 EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0xFAC333AC EQ PUSH2 0xE4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8F SWAP2 SWAP1 PUSH2 0x2C5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xAD SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x178 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xE2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDD SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x19F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF9 SWAP2 SWAP1 PUSH2 0x204 JUMP JUMPDEST PUSH2 0x1CB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x10B SWAP2 SWAP1 PUSH2 0x2E7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x16E JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x15A JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x18D JUMPI PUSH2 0x18C PUSH2 0x345 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1FE DUP2 PUSH2 0x379 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x21A JUMPI PUSH2 0x219 PUSH2 0x374 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x228 DUP5 DUP3 DUP6 ADD PUSH2 0x1EF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23D DUP4 DUP4 PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x254 DUP3 PUSH2 0x312 JUMP JUMPDEST PUSH2 0x25E DUP2 DUP6 PUSH2 0x32A JUMP JUMPDEST SWAP4 POP PUSH2 0x269 DUP4 PUSH2 0x302 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x29A JUMPI DUP2 MLOAD PUSH2 0x281 DUP9 DUP3 PUSH2 0x231 JUMP JUMPDEST SWAP8 POP PUSH2 0x28C DUP4 PUSH2 0x31D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x26D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B0 DUP2 PUSH2 0x33B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2BF DUP2 PUSH2 0x33B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2DF DUP2 DUP5 PUSH2 0x249 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2FC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2B6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x382 DUP2 PUSH2 0x33B JUMP JUMPDEST DUP2 EQ PUSH2 0x38D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB8 SWAP15 PUSH24 0xBB19235B6DB49C6AC57569793FEB7BDA89051626C89A38D5 DUP12 0x4D PUSH10 0x65B564736F6C63430008 SDIV STOP CALLER ",
"sourceMap": "25:412:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;351:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;261:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;152:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;74:68;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;46:17;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;351:79;391:4;413:3;:10;;;;406:17;;351:79;:::o;261:80::-;300:13;331:3;324:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;261:80;:::o;152:99::-;208:4;230:3;234:9;230:14;;;;;;;;:::i;:::-;;;;;;;;;;223:21;;152:99;;;:::o;74:68::-;122:3;131;122:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:68;:::o;46:17::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:329::-;211:6;260:2;248:9;239:7;235:23;231:32;228:2;;;266:79;;:::i;:::-;228:2;386:1;411:53;456:7;447:6;436:9;432:22;411:53;:::i;:::-;401:63;;357:117;218:263;;;;:::o;487:179::-;556:10;577:46;619:3;611:6;577:46;:::i;:::-;655:4;650:3;646:14;632:28;;567:99;;;;:::o;702:732::-;821:3;850:54;898:5;850:54;:::i;:::-;920:86;999:6;994:3;920:86;:::i;:::-;913:93;;1030:56;1080:5;1030:56;:::i;:::-;1109:7;1140:1;1125:284;1150:6;1147:1;1144:13;1125:284;;;1226:6;1220:13;1253:63;1312:3;1297:13;1253:63;:::i;:::-;1246:70;;1339:60;1392:6;1339:60;:::i;:::-;1329:70;;1185:224;1172:1;1169;1165:9;1160:14;;1125:284;;;1129:14;1425:3;1418:10;;826:608;;;;;;;:::o;1440:108::-;1517:24;1535:5;1517:24;:::i;:::-;1512:3;1505:37;1495:53;;:::o;1554:118::-;1641:24;1659:5;1641:24;:::i;:::-;1636:3;1629:37;1619:53;;:::o;1678:373::-;1821:4;1859:2;1848:9;1844:18;1836:26;;1908:9;1902:4;1898:20;1894:1;1883:9;1879:17;1872:47;1936:108;2039:4;2030:6;1936:108;:::i;:::-;1928:116;;1826:225;;;;:::o;2057:222::-;2150:4;2188:2;2177:9;2173:18;2165:26;;2201:71;2269:1;2258:9;2254:17;2245:6;2201:71;:::i;:::-;2155:124;;;;:::o;2366:132::-;2433:4;2456:3;2448:11;;2486:4;2481:3;2477:14;2469:22;;2438:60;;;:::o;2504:114::-;2571:6;2605:5;2599:12;2589:22;;2578:40;;;:::o;2624:113::-;2694:4;2726;2721:3;2717:14;2709:22;;2699:38;;;:::o;2743:184::-;2842:11;2876:6;2871:3;2864:19;2916:4;2911:3;2907:14;2892:29;;2854:73;;;;:::o;2933:77::-;2970:7;2999:5;2988:16;;2978:32;;;:::o;3016:180::-;3064:77;3061:1;3054:88;3161:4;3158:1;3151:15;3185:4;3182:1;3175:15;3325:117;3434:1;3431;3424:12;3448:122;3521:24;3539:5;3521:24;:::i;:::-;3514:5;3511:35;3501:2;;3560:1;3557;3550:12;3501:2;3491:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "193200",
"executionCost": "238",
"totalCost": "193438"
},
"external": {
"addToArray(uint256)": "46873",
"ids(uint256)": "infinite",
"readAll()": "infinite",
"readArray(uint256)": "infinite",
"readSize()": "2423"
}
},
"methodIdentifiers": {
"addToArray(uint256)": "d15ec851",
"ids(uint256)": "fac333ac",
"readAll()": "41f654f7",
"readArray(uint256)": "87376061",
"readSize()": "0d56aa4f"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "addToArray",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "ids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "readAll",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_position",
"type": "uint256"
}
],
"name": "readArray",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "readSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.5+commit.a4f2e591"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "addToArray",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "ids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "readAll",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_position",
"type": "uint256"
}
],
"name": "readArray",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "readSize",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"array.sol": "Array"
},
"evmVersion": "berlin",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"array.sol": {
"keccak256": "0x0ba3b3204581b5ba844424518218121293c3812aafe53eba4728ea3310ee1129",
"urls": [
"bzz-raw://e88c357e420a7daeaec5a6eb5751730b08a2d9eccc72d7a6be70ff6414c82a90",
"dweb:/ipfs/QmVcHVWiXonJ31VCtJcRkwjvMTkA5Sf96NtrTi49tSv3eR"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "60806040526001805534801561001457600080fd5b50610aa2806100246000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063365b98b21461005c57806346f81a871461008e5780639d118770146100aa578063ed2e5a97146100c6578063f745630f146100f8575b600080fd5b6100766004803603810190610071919061068f565b610114565b604051610085939291906107a3565b60405180910390f35b6100a860048036038101906100a39190610633565b6101d6565b005b6100c460048036038101906100bf919061068f565b61026d565b005b6100e060048036038101906100db919061068f565b6102c3565b6040516100ef939291906107a3565b60405180910390f35b610112600480360381019061010d91906106bc565b6103e0565b005b6000818154811061012457600080fd5b906000526020600020906003020160009150905080600001549080600101805461014d9061089f565b80601f01602080910402602001604051908101604052809291908181526020018280546101799061089f565b80156101c65780601f1061019b576101008083540402835291602001916101c6565b820191906000526020600020905b8154815290600101906020018083116101a957829003601f168201915b5050505050908060020154905083565b6000604051806060016040528060015481526020018481526020018381525090806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010190805190602001906102449291906104cb565b506040820151816002015550506001600081548092919061026490610902565b91905055505050565b60006102788261042c565b90506000818154811061028e5761028d6109a9565b5b90600052602060002090600302016000808201600090556001820160006102b59190610551565b600282016000905550505050565b600060606000806102d38561042c565b9050600081815481106102e9576102e86109a9565b5b9060005260206000209060030201600001546000828154811061030f5761030e6109a9565b5b906000526020600020906003020160010160008381548110610334576103336109a9565b5b9060005260206000209060030201600201548180546103529061089f565b80601f016020809104026020016040519081016040528092919081815260200182805461037e9061089f565b80156103cb5780601f106103a0576101008083540402835291602001916103cb565b820191906000526020600020905b8154815290600101906020018083116103ae57829003601f168201915b50505050509150935093509350509193909250565b60006103eb8361042c565b90508160008281548110610402576104016109a9565b5b906000526020600020906003020160010190805190602001906104269291906104cb565b50505050565b600080600090505b60008054905081101561048a578260008281548110610456576104556109a9565b5b906000526020600020906003020160000154141561047757809150506104c6565b808061048290610902565b915050610434565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bd90610783565b60405180910390fd5b919050565b8280546104d79061089f565b90600052602060002090601f0160209004810192826104f95760008555610540565b82601f1061051257805160ff1916838001178555610540565b82800160010185558215610540579182015b8281111561053f578251825591602001919060010190610524565b5b50905061054d9190610591565b5090565b50805461055d9061089f565b6000825580601f1061056f575061058e565b601f01602090049060005260206000209081019061058d9190610591565b5b50565b5b808211156105aa576000816000905550600101610592565b5090565b60006105c16105bc84610806565b6107e1565b9050828152602081018484840111156105dd576105dc610a0c565b5b6105e884828561085d565b509392505050565b600082601f83011261060557610604610a07565b5b81356106158482602086016105ae565b91505092915050565b60008135905061062d81610a55565b92915050565b6000806040838503121561064a57610649610a16565b5b600083013567ffffffffffffffff81111561066857610667610a11565b5b610674858286016105f0565b92505060206106858582860161061e565b9150509250929050565b6000602082840312156106a5576106a4610a16565b5b60006106b38482850161061e565b91505092915050565b600080604083850312156106d3576106d2610a16565b5b60006106e18582860161061e565b925050602083013567ffffffffffffffff81111561070257610701610a11565b5b61070e858286016105f0565b9150509250929050565b600061072382610837565b61072d8185610842565b935061073d81856020860161086c565b61074681610a1b565b840191505092915050565b600061075e601283610842565b915061076982610a2c565b602082019050919050565b61077d81610853565b82525050565b6000602082019050818103600083015261079c81610751565b9050919050565b60006060820190506107b86000830186610774565b81810360208301526107ca8185610718565b90506107d96040830184610774565b949350505050565b60006107eb6107fc565b90506107f782826108d1565b919050565b6000604051905090565b600067ffffffffffffffff821115610821576108206109d8565b5b61082a82610a1b565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050919050565b82818337600083830152505050565b60005b8381101561088a57808201518184015260208101905061086f565b83811115610899576000848401525b50505050565b600060028204905060018216806108b757607f821691505b602082108114156108cb576108ca61097a565b5b50919050565b6108da82610a1b565b810181811067ffffffffffffffff821117156108f9576108f86109d8565b5b80604052505050565b600061090d82610853565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156109405761093f61094b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5573657220646f65736e27742065786973740000000000000000000000000000600082015250565b610a5e81610853565b8114610a6957600080fd5b5056fea26469706673582212206dbc633b7e1a6dc496b57f55b518890be398ecbfaa53d655d487ee0b1694022264736f6c63430008050033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x1 DUP1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAA2 DUP1 PUSH2 0x24 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x365B98B2 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x46F81A87 EQ PUSH2 0x8E JUMPI DUP1 PUSH4 0x9D118770 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xED2E5A97 EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0xF745630F EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x68F JUMP JUMPDEST PUSH2 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x85 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA3 SWAP2 SWAP1 PUSH2 0x633 JUMP JUMPDEST PUSH2 0x1D6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x68F JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDB SWAP2 SWAP1 PUSH2 0x68F JUMP JUMPDEST PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0x6BC JUMP JUMPDEST PUSH2 0x3E0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x14D SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x179 SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1C6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1C6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x244 SWAP3 SWAP2 SWAP1 PUSH2 0x4CB JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x1 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x264 SWAP1 PUSH2 0x902 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278 DUP3 PUSH2 0x42C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x28E JUMPI PUSH2 0x28D PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x551 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x2D3 DUP6 PUSH2 0x42C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x2E9 JUMPI PUSH2 0x2E8 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x30F JUMPI PUSH2 0x30E PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x334 JUMPI PUSH2 0x333 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x2 ADD SLOAD DUP2 DUP1 SLOAD PUSH2 0x352 SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x37E SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3CB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3A0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3CB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3AE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP SWAP4 POP SWAP4 POP SWAP4 POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EB DUP4 PUSH2 0x42C JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x402 JUMPI PUSH2 0x401 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x426 SWAP3 SWAP2 SWAP1 PUSH2 0x4CB JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x48A JUMPI DUP3 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x456 JUMPI PUSH2 0x455 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x477 JUMPI DUP1 SWAP2 POP POP PUSH2 0x4C6 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x482 SWAP1 PUSH2 0x902 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x434 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4BD SWAP1 PUSH2 0x783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4D7 SWAP1 PUSH2 0x89F JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x540 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x512 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x540 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x540 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x53F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x524 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x54D SWAP2 SWAP1 PUSH2 0x591 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x55D SWAP1 PUSH2 0x89F JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x56F JUMPI POP PUSH2 0x58E JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x58D SWAP2 SWAP1 PUSH2 0x591 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x592 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C1 PUSH2 0x5BC DUP5 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x7E1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5DD JUMPI PUSH2 0x5DC PUSH2 0xA0C JUMP JUMPDEST JUMPDEST PUSH2 0x5E8 DUP5 DUP3 DUP6 PUSH2 0x85D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x605 JUMPI PUSH2 0x604 PUSH2 0xA07 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x615 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5AE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x62D DUP2 PUSH2 0xA55 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64A JUMPI PUSH2 0x649 PUSH2 0xA16 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x668 JUMPI PUSH2 0x667 PUSH2 0xA11 JUMP JUMPDEST JUMPDEST PUSH2 0x674 DUP6 DUP3 DUP7 ADD PUSH2 0x5F0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x685 DUP6 DUP3 DUP7 ADD PUSH2 0x61E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A5 JUMPI PUSH2 0x6A4 PUSH2 0xA16 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6B3 DUP5 DUP3 DUP6 ADD PUSH2 0x61E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6D3 JUMPI PUSH2 0x6D2 PUSH2 0xA16 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6E1 DUP6 DUP3 DUP7 ADD PUSH2 0x61E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x702 JUMPI PUSH2 0x701 PUSH2 0xA11 JUMP JUMPDEST JUMPDEST PUSH2 0x70E DUP6 DUP3 DUP7 ADD PUSH2 0x5F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x723 DUP3 PUSH2 0x837 JUMP JUMPDEST PUSH2 0x72D DUP2 DUP6 PUSH2 0x842 JUMP JUMPDEST SWAP4 POP PUSH2 0x73D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x86C JUMP JUMPDEST PUSH2 0x746 DUP2 PUSH2 0xA1B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x75E PUSH1 0x12 DUP4 PUSH2 0x842 JUMP JUMPDEST SWAP2 POP PUSH2 0x769 DUP3 PUSH2 0xA2C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x77D DUP2 PUSH2 0x853 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x79C DUP2 PUSH2 0x751 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x7B8 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x774 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7CA DUP2 DUP6 PUSH2 0x718 JUMP JUMPDEST SWAP1 POP PUSH2 0x7D9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x774 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EB PUSH2 0x7FC JUMP JUMPDEST SWAP1 POP PUSH2 0x7F7 DUP3 DUP3 PUSH2 0x8D1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x821 JUMPI PUSH2 0x820 PUSH2 0x9D8 JUMP JUMPDEST JUMPDEST PUSH2 0x82A DUP3 PUSH2 0xA1B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x88A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x86F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x899 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8B7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8CB JUMPI PUSH2 0x8CA PUSH2 0x97A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8DA DUP3 PUSH2 0xA1B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x8F9 JUMPI PUSH2 0x8F8 PUSH2 0x9D8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90D DUP3 PUSH2 0x853 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x940 JUMPI PUSH2 0x93F PUSH2 0x94B JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5573657220646F65736E27742065786973740000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0x853 JUMP JUMPDEST DUP2 EQ PUSH2 0xA69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xBC633B7E1A6DC496B57F55B51889 SIGNEXTEND 0xE3 SWAP9 0xEC 0xBF 0xAA MSTORE8 0xD6 SSTORE 0xD4 DUP8 0xEE SIGNEXTEND AND SWAP5 MUL 0x22 PUSH5 0x736F6C6343 STOP ADDMOD SDIV STOP CALLER ",
"sourceMap": "25:966:0:-:0;;;170:1;156:15;;25:966;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@create_36": {
"entryPoint": 470,
"id": 36,
"parameterSlots": 2,
"returnSlots": 0
},
"@destroy_106": {
"entryPoint": 621,
"id": 106,
"parameterSlots": 1,
"returnSlots": 0
},
"@find_141": {
"entryPoint": 1068,
"id": 141,
"parameterSlots": 1,
"returnSlots": 1
},
"@read_68": {
"entryPoint": 707,
"id": 68,
"parameterSlots": 1,
"returnSlots": 3
},
"@update_89": {
"entryPoint": 992,
"id": 89,
"parameterSlots": 2,
"returnSlots": 0
},
"@users_12": {
"entryPoint": 276,
"id": 12,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1454,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1520,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1566,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_string_memory_ptrt_uint256": {
"entryPoint": 1587,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1679,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptr": {
"entryPoint": 1724,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1816,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1873,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1908,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1923,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed": {
"entryPoint": 1955,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 2017,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 2044,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 2054,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 2103,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 2114,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 2131,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 2141,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 2156,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 2207,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"finalize_allocation": {
"entryPoint": 2257,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 2306,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 2379,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x22": {
"entryPoint": 2426,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 2473,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 2520,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 2567,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 2572,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 2577,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 2582,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 2587,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9": {
"entryPoint": 2604,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 2645,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:8276:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "91:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "101:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "168:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "126:41:1"
},
"nodeType": "YulFunctionCall",
"src": "126:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "110:15:1"
},
"nodeType": "YulFunctionCall",
"src": "110:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "101:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "192:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "199:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "185:6:1"
},
"nodeType": "YulFunctionCall",
"src": "185:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "185:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "215:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "230:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "237:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "226:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "219:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "280:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "282:77:1"
},
"nodeType": "YulFunctionCall",
"src": "282:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "282:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "261:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "266:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "257:3:1"
},
"nodeType": "YulFunctionCall",
"src": "257:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "275:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "254:2:1"
},
"nodeType": "YulFunctionCall",
"src": "254:25:1"
},
"nodeType": "YulIf",
"src": "251:2:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "396:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "401:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "406:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "372:23:1"
},
"nodeType": "YulFunctionCall",
"src": "372:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "372:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "64:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "69:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "77:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "85:5:1",
"type": ""
}
],
"src": "7:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "501:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "550:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "552:77:1"
},
"nodeType": "YulFunctionCall",
"src": "552:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "552:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "529:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "537:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "525:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "544:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "521:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "514:6:1"
},
"nodeType": "YulFunctionCall",
"src": "514:35:1"
},
"nodeType": "YulIf",
"src": "511:2:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "642:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "669:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "656:12:1"
},
"nodeType": "YulFunctionCall",
"src": "656:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "646:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "685:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "746:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "754:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "742:3:1"
},
"nodeType": "YulFunctionCall",
"src": "742:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "761:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "769:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "694:47:1"
},
"nodeType": "YulFunctionCall",
"src": "694:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "685:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "479:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "487:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "495:5:1",
"type": ""
}
],
"src": "439:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "837:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "847:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "869:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "856:12:1"
},
"nodeType": "YulFunctionCall",
"src": "856:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "847:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "912:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "885:26:1"
},
"nodeType": "YulFunctionCall",
"src": "885:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "885:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "815:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "823:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "831:5:1",
"type": ""
}
],
"src": "785:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1023:561:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1069:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1071:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1071:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1071:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1044:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1053:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1040:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1040:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1065:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1036:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:32:1"
},
"nodeType": "YulIf",
"src": "1033:2:1"
},
{
"nodeType": "YulBlock",
"src": "1162:287:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1177:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1208:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1219:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1204:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1204:17:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1191:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1191:31:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1181:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1269:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "1271:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1271:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1271:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1241:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1249:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1238:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1238:30:1"
},
"nodeType": "YulIf",
"src": "1235:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1366:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1411:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1422:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1407:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1407:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1431:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1376:30:1"
},
"nodeType": "YulFunctionCall",
"src": "1376:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1366:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1459:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1474:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1488:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1478:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1504:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1539:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1550:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1535:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1535:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1559:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1514:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1514:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1504:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "985:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "996:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1008:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1016:6:1",
"type": ""
}
],
"src": "930:654:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1656:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1702:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1704:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1704:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1704:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1677:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1686:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1673:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1673:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1698:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1669:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1669:32:1"
},
"nodeType": "YulIf",
"src": "1666:2:1"
},
{
"nodeType": "YulBlock",
"src": "1795:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1810:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1824:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1814:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1839:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1874:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1885:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1870:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1870:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1894:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1849:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1849:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1839:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1626:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1637:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1649:6:1",
"type": ""
}
],
"src": "1590:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:561:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2064:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2066:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2066:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2066:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2039:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2048:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2035:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2035:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2060:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2031:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2031:32:1"
},
"nodeType": "YulIf",
"src": "2028:2:1"
},
{
"nodeType": "YulBlock",
"src": "2157:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2172:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2186:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2176:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2201:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2236:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2247:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2232:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2232:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2256:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2211:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2211:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2201:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "2284:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2299:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2330:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2341:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2326:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2326:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2313:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2313:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2303:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2392:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "2394:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2394:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2394:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2364:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2372:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2361:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2361:30:1"
},
"nodeType": "YulIf",
"src": "2358:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2489:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2534:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2545:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2530:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2530:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2554:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2499:30:1"
},
"nodeType": "YulFunctionCall",
"src": "2499:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2489:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1980:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1991:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2003:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2011:6:1",
"type": ""
}
],
"src": "1925:654:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2677:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2687:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2734:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2701:32:1"
},
"nodeType": "YulFunctionCall",
"src": "2701:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2691:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2749:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2815:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2820:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2756:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2756:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2749:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2862:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2869:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2858:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2858:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2876:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2881:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2836:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2836:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2836:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2897:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2908:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2935:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2913:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2913:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2904:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2904:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2897:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2658:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2665:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2673:3:1",
"type": ""
}
],
"src": "2585:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3101:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3111:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3177:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3182:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3118:58:1"
},
"nodeType": "YulFunctionCall",
"src": "3118:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3111:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3283:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9",
"nodeType": "YulIdentifier",
"src": "3194:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3194:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3194:93:1"
},
{
"nodeType": "YulAssignment",
"src": "3296:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3307:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3312:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3303:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3303:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3296:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3089:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3097:3:1",
"type": ""
}
],
"src": "2955:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3392:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3409:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3432:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3414:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3414:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3402:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3402:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "3402:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3380:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3387:3:1",
"type": ""
}
],
"src": "3327:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3622:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3632:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3644:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3655:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3640:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3640:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3632:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3679:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3690:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3675:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3675:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3698:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3704:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3694:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3694:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3668:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3668:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3668:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3724:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3858:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3732:124:1"
},
"nodeType": "YulFunctionCall",
"src": "3732:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3724:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3602:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3617:4:1",
"type": ""
}
],
"src": "3451:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4050:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4060:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4072:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4083:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4068:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4068:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4060:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4140:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4153:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4164:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4149:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4149:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4096:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4096:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4096:71:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4188:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4199:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4184:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4184:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4208:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4214:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4204:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4204:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4177:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4177:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "4177:48:1"
},
{
"nodeType": "YulAssignment",
"src": "4234:86:1",
"value": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "4306:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4315:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4242:63:1"
},
"nodeType": "YulFunctionCall",
"src": "4242:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4234:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4374:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4387:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4398:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4383:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4383:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4330:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4330:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "4330:72:1"
}
]
},
"name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4006:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "4018:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4026:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4034:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4045:4:1",
"type": ""
}
],
"src": "3876:533:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4456:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4466:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "4476:18:1"
},
"nodeType": "YulFunctionCall",
"src": "4476:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4466:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4525:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4533:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "4505:19:1"
},
"nodeType": "YulFunctionCall",
"src": "4505:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4505:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4440:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4449:6:1",
"type": ""
}
],
"src": "4415:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4590:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4600:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4616:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4610:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4610:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4600:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4583:6:1",
"type": ""
}
],
"src": "4550:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4698:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4803:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "4805:16:1"
},
"nodeType": "YulFunctionCall",
"src": "4805:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "4805:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4775:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4783:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4772:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4772:30:1"
},
"nodeType": "YulIf",
"src": "4769:2:1"
},
{
"nodeType": "YulAssignment",
"src": "4835:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4865:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "4843:21:1"
},
"nodeType": "YulFunctionCall",
"src": "4843:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4835:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4909:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4921:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4927:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4917:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4917:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "4909:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4682:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "4693:4:1",
"type": ""
}
],
"src": "4631:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5004:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5015:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5031:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5025:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5025:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5015:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4987:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4997:6:1",
"type": ""
}
],
"src": "4945:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5146:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5163:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5168:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5156:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5156:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "5156:19:1"
},
{
"nodeType": "YulAssignment",
"src": "5184:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5203:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5208:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5199:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5199:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "5184:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5118:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5123:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "5134:11:1",
"type": ""
}
],
"src": "5050:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5270:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5280:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5291:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5280:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5252:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5262:7:1",
"type": ""
}
],
"src": "5225:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5359:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5382:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5387:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5392:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "5369:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5369:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "5369:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5440:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5445:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5436:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5436:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5454:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5429:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5429:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5429:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5341:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5346:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5351:6:1",
"type": ""
}
],
"src": "5308:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5517:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5527:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5536:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "5531:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5596:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5621:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5626:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5617:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5617:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5640:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5645:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5636:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5636:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5630:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5630:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5610:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5610:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "5610:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5557:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5560:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5554:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5554:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "5568:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5570:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5579:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5582:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5575:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5575:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5570:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "5550:3:1",
"statements": []
},
"src": "5546:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5693:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5743:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5748:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5739:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5739:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5757:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5732:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5732:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5732:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5674:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5677:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5671:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5671:13:1"
},
"nodeType": "YulIf",
"src": "5668:2:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5499:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5504:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5509:6:1",
"type": ""
}
],
"src": "5468:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5832:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5842:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5856:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5862:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "5852:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5852:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5842:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "5873:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "5903:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5909:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5899:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5899:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "5877:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5950:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5964:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5978:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5986:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5974:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5974:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5964:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "5930:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5923:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5923:26:1"
},
"nodeType": "YulIf",
"src": "5920:2:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6053:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "6067:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6067:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6067:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "6017:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6040:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6048:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6037:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6037:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6014:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6014:38:1"
},
"nodeType": "YulIf",
"src": "6011:2:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "5816:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5825:6:1",
"type": ""
}
],
"src": "5781:320:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6150:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6160:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6182:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "6212:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6190:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6190:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6178:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6178:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "6164:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6329:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "6331:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6331:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6331:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "6272:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6284:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "6269:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6269:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "6308:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6320:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "6305:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6305:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "6266:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6266:62:1"
},
"nodeType": "YulIf",
"src": "6263:2:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6367:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "6371:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6360:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6360:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "6360:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6136:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "6144:4:1",
"type": ""
}
],
"src": "6107:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6437:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6447:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6474:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6456:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6456:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6447:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "6570:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "6572:16:1"
},
"nodeType": "YulFunctionCall",
"src": "6572:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "6572:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6495:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6502:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6492:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6492:77:1"
},
"nodeType": "YulIf",
"src": "6489:2:1"
},
{
"nodeType": "YulAssignment",
"src": "6601:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6612:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6619:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6608:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6608:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "6601:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6423:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "6433:3:1",
"type": ""
}
],
"src": "6394:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6661:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6678:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6681:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6671:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6671:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6671:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6775:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6778:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6768:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6768:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6768:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6799:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6802:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6792:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6792:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6792:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "6633:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6847:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6864:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6867:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6857:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6857:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "6857:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6961:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6964:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6954:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6954:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6954:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6985:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6988:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6978:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6978:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "6978:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "6819:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7033:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7050:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7053:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7043:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7043:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "7043:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7147:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7150:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7140:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7140:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7140:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7171:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7174:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7164:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7164:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7164:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "7005:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7219:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7236:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7239:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7229:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7229:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "7229:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7333:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7336:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7326:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7326:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7326:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7357:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7360:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7350:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7350:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "7350:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "7191:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7466:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7483:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7486:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7476:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7476:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "7476:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "7377:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7589:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7606:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7609:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7599:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7599:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "7599:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "7500:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7712:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7729:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7732:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7722:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7722:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "7722:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "7623:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7835:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7852:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7855:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "7845:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7845:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "7845:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "7746:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7917:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7927:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "7945:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7952:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7941:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7941:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7961:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "7957:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7957:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "7937:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7937:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "7927:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "7900:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "7910:6:1",
"type": ""
}
],
"src": "7869:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8083:62:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "8105:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8113:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8101:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8101:14:1"
},
{
"hexValue": "5573657220646f65736e2774206578697374",
"kind": "string",
"nodeType": "YulLiteral",
"src": "8117:20:1",
"type": "",
"value": "User doesn't exist"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8094:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8094:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "8094:44:1"
}
]
},
"name": "store_literal_in_memory_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "8075:6:1",
"type": ""
}
],
"src": "7977:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8194:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "8251:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8260:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8263:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "8253:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8253:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "8253:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8217:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "8242:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "8224:17:1"
},
"nodeType": "YulFunctionCall",
"src": "8224:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "8214:2:1"
},
"nodeType": "YulFunctionCall",
"src": "8214:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "8207:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8207:43:1"
},
"nodeType": "YulIf",
"src": "8204:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "8187:5:1",
"type": ""
}
],
"src": "8151:122:1"
}
]
},
"contents": "{\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(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_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256(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_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(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 function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_uint256__to_t_uint256_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_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 array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function store_literal_in_memory_ca59ec674b9aba88d8dc100798860e267fba6f2d26f2efd0dda0be5ee0d979b9(memPtr) {\n\n mstore(add(memPtr, 0), \"User doesn't exist\")\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100575760003560e01c8063365b98b21461005c57806346f81a871461008e5780639d118770146100aa578063ed2e5a97146100c6578063f745630f146100f8575b600080fd5b6100766004803603810190610071919061068f565b610114565b604051610085939291906107a3565b60405180910390f35b6100a860048036038101906100a39190610633565b6101d6565b005b6100c460048036038101906100bf919061068f565b61026d565b005b6100e060048036038101906100db919061068f565b6102c3565b6040516100ef939291906107a3565b60405180910390f35b610112600480360381019061010d91906106bc565b6103e0565b005b6000818154811061012457600080fd5b906000526020600020906003020160009150905080600001549080600101805461014d9061089f565b80601f01602080910402602001604051908101604052809291908181526020018280546101799061089f565b80156101c65780601f1061019b576101008083540402835291602001916101c6565b820191906000526020600020905b8154815290600101906020018083116101a957829003601f168201915b5050505050908060020154905083565b6000604051806060016040528060015481526020018481526020018381525090806001815401808255809150506001900390600052602060002090600302016000909190919091506000820151816000015560208201518160010190805190602001906102449291906104cb565b506040820151816002015550506001600081548092919061026490610902565b91905055505050565b60006102788261042c565b90506000818154811061028e5761028d6109a9565b5b90600052602060002090600302016000808201600090556001820160006102b59190610551565b600282016000905550505050565b600060606000806102d38561042c565b9050600081815481106102e9576102e86109a9565b5b9060005260206000209060030201600001546000828154811061030f5761030e6109a9565b5b906000526020600020906003020160010160008381548110610334576103336109a9565b5b9060005260206000209060030201600201548180546103529061089f565b80601f016020809104026020016040519081016040528092919081815260200182805461037e9061089f565b80156103cb5780601f106103a0576101008083540402835291602001916103cb565b820191906000526020600020905b8154815290600101906020018083116103ae57829003601f168201915b50505050509150935093509350509193909250565b60006103eb8361042c565b90508160008281548110610402576104016109a9565b5b906000526020600020906003020160010190805190602001906104269291906104cb565b50505050565b600080600090505b60008054905081101561048a578260008281548110610456576104556109a9565b5b906000526020600020906003020160000154141561047757809150506104c6565b808061048290610902565b915050610434565b506040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bd90610783565b60405180910390fd5b919050565b8280546104d79061089f565b90600052602060002090601f0160209004810192826104f95760008555610540565b82601f1061051257805160ff1916838001178555610540565b82800160010185558215610540579182015b8281111561053f578251825591602001919060010190610524565b5b50905061054d9190610591565b5090565b50805461055d9061089f565b6000825580601f1061056f575061058e565b601f01602090049060005260206000209081019061058d9190610591565b5b50565b5b808211156105aa576000816000905550600101610592565b5090565b60006105c16105bc84610806565b6107e1565b9050828152602081018484840111156105dd576105dc610a0c565b5b6105e884828561085d565b509392505050565b600082601f83011261060557610604610a07565b5b81356106158482602086016105ae565b91505092915050565b60008135905061062d81610a55565b92915050565b6000806040838503121561064a57610649610a16565b5b600083013567ffffffffffffffff81111561066857610667610a11565b5b610674858286016105f0565b92505060206106858582860161061e565b9150509250929050565b6000602082840312156106a5576106a4610a16565b5b60006106b38482850161061e565b91505092915050565b600080604083850312156106d3576106d2610a16565b5b60006106e18582860161061e565b925050602083013567ffffffffffffffff81111561070257610701610a11565b5b61070e858286016105f0565b9150509250929050565b600061072382610837565b61072d8185610842565b935061073d81856020860161086c565b61074681610a1b565b840191505092915050565b600061075e601283610842565b915061076982610a2c565b602082019050919050565b61077d81610853565b82525050565b6000602082019050818103600083015261079c81610751565b9050919050565b60006060820190506107b86000830186610774565b81810360208301526107ca8185610718565b90506107d96040830184610774565b949350505050565b60006107eb6107fc565b90506107f782826108d1565b919050565b6000604051905090565b600067ffffffffffffffff821115610821576108206109d8565b5b61082a82610a1b565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050919050565b82818337600083830152505050565b60005b8381101561088a57808201518184015260208101905061086f565b83811115610899576000848401525b50505050565b600060028204905060018216806108b757607f821691505b602082108114156108cb576108ca61097a565b5b50919050565b6108da82610a1b565b810181811067ffffffffffffffff821117156108f9576108f86109d8565b5b80604052505050565b600061090d82610853565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156109405761093f61094b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f5573657220646f65736e27742065786973740000000000000000000000000000600082015250565b610a5e81610853565b8114610a6957600080fd5b5056fea26469706673582212206dbc633b7e1a6dc496b57f55b518890be398ecbfaa53d655d487ee0b1694022264736f6c63430008050033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x365B98B2 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x46F81A87 EQ PUSH2 0x8E JUMPI DUP1 PUSH4 0x9D118770 EQ PUSH2 0xAA JUMPI DUP1 PUSH4 0xED2E5A97 EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0xF745630F EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x68F JUMP JUMPDEST PUSH2 0x114 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x85 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA3 SWAP2 SWAP1 PUSH2 0x633 JUMP JUMPDEST PUSH2 0x1D6 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xBF SWAP2 SWAP1 PUSH2 0x68F JUMP JUMPDEST PUSH2 0x26D JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDB SWAP2 SWAP1 PUSH2 0x68F JUMP JUMPDEST PUSH2 0x2C3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x7A3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x112 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x10D SWAP2 SWAP1 PUSH2 0x6BC JUMP JUMPDEST PUSH2 0x3E0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x124 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD DUP1 SLOAD PUSH2 0x14D SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x179 SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1C6 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x19B JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1C6 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1A9 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 DUP1 PUSH1 0x2 ADD SLOAD SWAP1 POP DUP4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x244 SWAP3 SWAP2 SWAP1 PUSH2 0x4CB JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE POP POP PUSH1 0x1 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x264 SWAP1 PUSH2 0x902 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278 DUP3 PUSH2 0x42C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x28E JUMPI PUSH2 0x28D PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 DUP1 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 DUP3 ADD PUSH1 0x0 PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x551 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x2D3 DUP6 PUSH2 0x42C JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 DUP2 SLOAD DUP2 LT PUSH2 0x2E9 JUMPI PUSH2 0x2E8 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x30F JUMPI PUSH2 0x30E PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x1 ADD PUSH1 0x0 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x334 JUMPI PUSH2 0x333 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x2 ADD SLOAD DUP2 DUP1 SLOAD PUSH2 0x352 SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x37E SWAP1 PUSH2 0x89F JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3CB JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3A0 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3CB JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3AE JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP SWAP4 POP SWAP4 POP SWAP4 POP POP SWAP2 SWAP4 SWAP1 SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EB DUP4 PUSH2 0x42C JUMP JUMPDEST SWAP1 POP DUP2 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x402 JUMPI PUSH2 0x401 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x426 SWAP3 SWAP2 SWAP1 PUSH2 0x4CB JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP DUP2 LT ISZERO PUSH2 0x48A JUMPI DUP3 PUSH1 0x0 DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x456 JUMPI PUSH2 0x455 PUSH2 0x9A9 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD EQ ISZERO PUSH2 0x477 JUMPI DUP1 SWAP2 POP POP PUSH2 0x4C6 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x482 SWAP1 PUSH2 0x902 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x434 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x4BD SWAP1 PUSH2 0x783 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x4D7 SWAP1 PUSH2 0x89F JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x540 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x512 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x540 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x540 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x53F JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x524 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x54D SWAP2 SWAP1 PUSH2 0x591 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH2 0x55D SWAP1 PUSH2 0x89F JUMP JUMPDEST PUSH1 0x0 DUP3 SSTORE DUP1 PUSH1 0x1F LT PUSH2 0x56F JUMPI POP PUSH2 0x58E JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x58D SWAP2 SWAP1 PUSH2 0x591 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x5AA JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x592 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C1 PUSH2 0x5BC DUP5 PUSH2 0x806 JUMP JUMPDEST PUSH2 0x7E1 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5DD JUMPI PUSH2 0x5DC PUSH2 0xA0C JUMP JUMPDEST JUMPDEST PUSH2 0x5E8 DUP5 DUP3 DUP6 PUSH2 0x85D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x605 JUMPI PUSH2 0x604 PUSH2 0xA07 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x615 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5AE JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x62D DUP2 PUSH2 0xA55 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x64A JUMPI PUSH2 0x649 PUSH2 0xA16 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x668 JUMPI PUSH2 0x667 PUSH2 0xA11 JUMP JUMPDEST JUMPDEST PUSH2 0x674 DUP6 DUP3 DUP7 ADD PUSH2 0x5F0 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x685 DUP6 DUP3 DUP7 ADD PUSH2 0x61E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A5 JUMPI PUSH2 0x6A4 PUSH2 0xA16 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6B3 DUP5 DUP3 DUP6 ADD PUSH2 0x61E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x6D3 JUMPI PUSH2 0x6D2 PUSH2 0xA16 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x6E1 DUP6 DUP3 DUP7 ADD PUSH2 0x61E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x702 JUMPI PUSH2 0x701 PUSH2 0xA11 JUMP JUMPDEST JUMPDEST PUSH2 0x70E DUP6 DUP3 DUP7 ADD PUSH2 0x5F0 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x723 DUP3 PUSH2 0x837 JUMP JUMPDEST PUSH2 0x72D DUP2 DUP6 PUSH2 0x842 JUMP JUMPDEST SWAP4 POP PUSH2 0x73D DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x86C JUMP JUMPDEST PUSH2 0x746 DUP2 PUSH2 0xA1B JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x75E PUSH1 0x12 DUP4 PUSH2 0x842 JUMP JUMPDEST SWAP2 POP PUSH2 0x769 DUP3 PUSH2 0xA2C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x77D DUP2 PUSH2 0x853 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x79C DUP2 PUSH2 0x751 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x7B8 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x774 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x7CA DUP2 DUP6 PUSH2 0x718 JUMP JUMPDEST SWAP1 POP PUSH2 0x7D9 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x774 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7EB PUSH2 0x7FC JUMP JUMPDEST SWAP1 POP PUSH2 0x7F7 DUP3 DUP3 PUSH2 0x8D1 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x821 JUMPI PUSH2 0x820 PUSH2 0x9D8 JUMP JUMPDEST JUMPDEST PUSH2 0x82A DUP3 PUSH2 0xA1B JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x88A JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x86F JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x899 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x8B7 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x8CB JUMPI PUSH2 0x8CA PUSH2 0x97A JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8DA DUP3 PUSH2 0xA1B JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x8F9 JUMPI PUSH2 0x8F8 PUSH2 0x9D8 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x90D DUP3 PUSH2 0x853 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x940 JUMPI PUSH2 0x93F PUSH2 0x94B JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5573657220646F65736E27742065786973740000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0x853 JUMP JUMPDEST DUP2 EQ PUSH2 0xA69 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH14 0xBC633B7E1A6DC496B57F55B51889 SIGNEXTEND 0xE3 SWAP9 0xEC 0xBF 0xAA MSTORE8 0xD6 SSTORE 0xD4 DUP8 0xEE SIGNEXTEND AND SWAP5 MUL 0x22 PUSH5 0x736F6C6343 STOP ADDMOD SDIV STOP CALLER ",
"sourceMap": "25:966:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;131:19;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;182:131;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;655:94;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;323:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;520:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;131:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;182:131::-;249:5;260:27;;;;;;;;265:6;;260:27;;;;273:5;260:27;;;;280:6;260:27;;;249:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;298:6;;:8;;;;;;;;;:::i;:::-;;;;;;182:131;;:::o;655:94::-;699:6;708:9;713:3;708:4;:9::i;:::-;699:18;;734:5;740:1;734:8;;;;;;;;:::i;:::-;;;;;;;;;;;;;727:15;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;689:60;655:94;:::o;323:182::-;367:4;373:13;388:4;403:6;412:9;417:3;412:4;:9::i;:::-;403:18;;438:5;444:1;438:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:11;;;451:5;457:1;451:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:13;;466:5;472:1;466:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:14;;;431:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:182;;;;;:::o;520:120::-;584:6;593:9;598:3;593:4;:9::i;:::-;584:18;;628:5;612;618:1;612:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:13;;:21;;;;;;;;;;;;:::i;:::-;;574:66;520:120;;:::o;759:230::-;805:7;827:6;834:1;827:8;;823:121;839:5;:12;;;;837:1;:14;823:121;;;889:3;874:5;880:1;874:8;;;;;;;;:::i;:::-;;;;;;;;;;;;:11;;;:18;871:63;;;918:1;911:8;;;;;871:63;853:3;;;;;:::i;:::-;;;;823:121;;;;953:29;;;;;;;;;;:::i;:::-;;;;;;;;759:230;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:412:1:-;85:5;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:2;;;282:79;;:::i;:::-;251:2;372:41;406:6;401:3;396;372:41;:::i;:::-;91:328;;;;;;:::o;439:340::-;495:5;544:3;537:4;529:6;525:17;521:27;511:2;;552:79;;:::i;:::-;511:2;669:6;656:20;694:79;769:3;761:6;754:4;746:6;742:17;694:79;:::i;:::-;685:88;;501:278;;;;;:::o;785:139::-;831:5;869:6;856:20;847:29;;885:33;912:5;885:33;:::i;:::-;837:87;;;;:::o;930:654::-;1008:6;1016;1065:2;1053:9;1044:7;1040:23;1036:32;1033:2;;;1071:79;;:::i;:::-;1033:2;1219:1;1208:9;1204:17;1191:31;1249:18;1241:6;1238:30;1235:2;;;1271:79;;:::i;:::-;1235:2;1376:63;1431:7;1422:6;1411:9;1407:22;1376:63;:::i;:::-;1366:73;;1162:287;1488:2;1514:53;1559:7;1550:6;1539:9;1535:22;1514:53;:::i;:::-;1504:63;;1459:118;1023:561;;;;;:::o;1590:329::-;1649:6;1698:2;1686:9;1677:7;1673:23;1669:32;1666:2;;;1704:79;;:::i;:::-;1666:2;1824:1;1849:53;1894:7;1885:6;1874:9;1870:22;1849:53;:::i;:::-;1839:63;;1795:117;1656:263;;;;:::o;1925:654::-;2003:6;2011;2060:2;2048:9;2039:7;2035:23;2031:32;2028:2;;;2066:79;;:::i;:::-;2028:2;2186:1;2211:53;2256:7;2247:6;2236:9;2232:22;2211:53;:::i;:::-;2201:63;;2157:117;2341:2;2330:9;2326:18;2313:32;2372:18;2364:6;2361:30;2358:2;;;2394:79;;:::i;:::-;2358:2;2499:63;2554:7;2545:6;2534:9;2530:22;2499:63;:::i;:::-;2489:73;;2284:288;2018:561;;;;;:::o;2585:364::-;2673:3;2701:39;2734:5;2701:39;:::i;:::-;2756:71;2820:6;2815:3;2756:71;:::i;:::-;2749:78;;2836:52;2881:6;2876:3;2869:4;2862:5;2858:16;2836:52;:::i;:::-;2913:29;2935:6;2913:29;:::i;:::-;2908:3;2904:39;2897:46;;2677:272;;;;;:::o;2955:366::-;3097:3;3118:67;3182:2;3177:3;3118:67;:::i;:::-;3111:74;;3194:93;3283:3;3194:93;:::i;:::-;3312:2;3307:3;3303:12;3296:19;;3101:220;;;:::o;3327:118::-;3414:24;3432:5;3414:24;:::i;:::-;3409:3;3402:37;3392:53;;:::o;3451:419::-;3617:4;3655:2;3644:9;3640:18;3632:26;;3704:9;3698:4;3694:20;3690:1;3679:9;3675:17;3668:47;3732:131;3858:4;3732:131;:::i;:::-;3724:139;;3622:248;;;:::o;3876:533::-;4045:4;4083:2;4072:9;4068:18;4060:26;;4096:71;4164:1;4153:9;4149:17;4140:6;4096:71;:::i;:::-;4214:9;4208:4;4204:20;4199:2;4188:9;4184:18;4177:48;4242:78;4315:4;4306:6;4242:78;:::i;:::-;4234:86;;4330:72;4398:2;4387:9;4383:18;4374:6;4330:72;:::i;:::-;4050:359;;;;;;:::o;4415:129::-;4449:6;4476:20;;:::i;:::-;4466:30;;4505:33;4533:4;4525:6;4505:33;:::i;:::-;4456:88;;;:::o;4550:75::-;4583:6;4616:2;4610:9;4600:19;;4590:35;:::o;4631:308::-;4693:4;4783:18;4775:6;4772:30;4769:2;;;4805:18;;:::i;:::-;4769:2;4843:29;4865:6;4843:29;:::i;:::-;4835:37;;4927:4;4921;4917:15;4909:23;;4698:241;;;:::o;4945:99::-;4997:6;5031:5;5025:12;5015:22;;5004:40;;;:::o;5050:169::-;5134:11;5168:6;5163:3;5156:19;5208:4;5203:3;5199:14;5184:29;;5146:73;;;;:::o;5225:77::-;5262:7;5291:5;5280:16;;5270:32;;;:::o;5308:154::-;5392:6;5387:3;5382;5369:30;5454:1;5445:6;5440:3;5436:16;5429:27;5359:103;;;:::o;5468:307::-;5536:1;5546:113;5560:6;5557:1;5554:13;5546:113;;;5645:1;5640:3;5636:11;5630:18;5626:1;5621:3;5617:11;5610:39;5582:2;5579:1;5575:10;5570:15;;5546:113;;;5677:6;5674:1;5671:13;5668:2;;;5757:1;5748:6;5743:3;5739:16;5732:27;5668:2;5517:258;;;;:::o;5781:320::-;5825:6;5862:1;5856:4;5852:12;5842:22;;5909:1;5903:4;5899:12;5930:18;5920:2;;5986:4;5978:6;5974:17;5964:27;;5920:2;6048;6040:6;6037:14;6017:18;6014:38;6011:2;;;6067:18;;:::i;:::-;6011:2;5832:269;;;;:::o;6107:281::-;6190:27;6212:4;6190:27;:::i;:::-;6182:6;6178:40;6320:6;6308:10;6305:22;6284:18;6272:10;6269:34;6266:62;6263:2;;;6331:18;;:::i;:::-;6263:2;6371:10;6367:2;6360:22;6150:238;;;:::o;6394:233::-;6433:3;6456:24;6474:5;6456:24;:::i;:::-;6447:33;;6502:66;6495:5;6492:77;6489:2;;;6572:18;;:::i;:::-;6489:2;6619:1;6612:5;6608:13;6601:20;;6437:190;;;:::o;6633:180::-;6681:77;6678:1;6671:88;6778:4;6775:1;6768:15;6802:4;6799:1;6792:15;6819:180;6867:77;6864:1;6857:88;6964:4;6961:1;6954:15;6988:4;6985:1;6978:15;7005:180;7053:77;7050:1;7043:88;7150:4;7147:1;7140:15;7174:4;7171:1;7164:15;7191:180;7239:77;7236:1;7229:88;7336:4;7333:1;7326:15;7360:4;7357:1;7350:15;7377:117;7486:1;7483;7476:12;7500:117;7609:1;7606;7599:12;7623:117;7732:1;7729;7722:12;7746:117;7855:1;7852;7845:12;7869:102;7910:6;7961:2;7957:7;7952:2;7945:5;7941:14;7937:28;7927:38;;7917:54;;;:::o;7977:168::-;8117:20;8113:1;8105:6;8101:14;8094:44;8083:62;:::o;8151:122::-;8224:24;8242:5;8224:24;:::i;:::-;8217:5;8214:35;8204:2;;8263:1;8260;8253:12;8204:2;8194:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "544400",
"executionCost": "22687",
"totalCost": "567087"
},
"external": {
"create(string,uint256)": "infinite",
"destroy(uint256)": "infinite",
"read(uint256)": "infinite",
"update(uint256,string)": "infinite",
"users(uint256)": "infinite"
},
"internal": {
"find(uint256)": "infinite"
}
},
"methodIdentifiers": {
"create(string,uint256)": "46f81a87",
"destroy(uint256)": "9d118770",
"read(uint256)": "ed2e5a97",
"update(uint256,string)": "f745630f",
"users(uint256)": "365b98b2"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_grade",
"type": "uint256"
}
],
"name": "create",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "destroy",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "read",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"name": "update",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "users",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "uint256",
"name": "grade",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.5+commit.a4f2e591"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "uint256",
"name": "_grade",
"type": "uint256"
}
],
"name": "create",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "destroy",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "read",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "string",
"name": "",
"type": "string"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
}
],
"name": "update",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "users",
"outputs": [
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "uint256",
"name": "grade",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"CRUD.sol": "CRUD"
},
"evmVersion": "berlin",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"CRUD.sol": {
"keccak256": "0xe9f32217d8235e7c55a6d2471f7f950ad556d8482213aebf074ecde89bcb1453",
"urls": [
"bzz-raw://d271734be0ef6406a4a348570badc686f819c1e53fc72a6f5e8bdfeeeadc1c74",
"dweb:/ipfs/QmXDLF1uCJpp1qtLBkCP6noP7ujtRDWrVTkmvrNUdRBTHn"
]
}
},
"version": 1
}
pragma solidity ^0.8.5;
contract CRUD{
struct User {
uint id;
string name;
uint grade;
}
User[] public users;
uint nextId = 1;
function create(string memory _name, uint _grade) public {
users.push(User(nextId, _name, _grade));
nextId++;
}
function read(uint _id) view public returns(uint, string memory, uint){
uint i = find(_id);
return(users[i].id, users[i].name, users[i].grade);
}
function update(uint _id, string memory _name) public {
uint i = find(_id);
users[i].name = _name;
}
function destroy(uint _id) public {
uint i = find(_id);
delete users[i];
}
function find(uint _id) view internal returns(uint id){
for(uint i=0; i<users.length; i++){
if(users[i].id == _id){
return i;
}
}
revert('User doesn\'t exist');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment