Skip to content

Instantly share code, notes, and snippets.

@SEEDALTAR
Created September 28, 2025 14:49
Show Gist options
  • Select an option

  • Save SEEDALTAR/a6cce7ead06fc486470218eb8aecfcc5 to your computer and use it in GitHub Desktop.

Select an option

Save SEEDALTAR/a6cce7ead06fc486470218eb8aecfcc5 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.30+commit.73712a01.js&optimize=false&runs=200&gist=
{
"id": "7782c7b4caa4798ea5c08513e123d070",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.30",
"solcLongVersion": "0.8.30+commit.73712a01",
"input": {
"language": "Solidity",
"sources": {
"contract-ad28860759.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.8.4;\n\n\ncontract Test {\n constructor() { b = hex\"12345678901234567890123456789012\"; }\n event Event(uint indexed a, bytes32 b);\n event Event2(uint indexed a, bytes32 b);\n error InsufficientBalance(uint256 available, uint256 required);\n function foo(uint a) public { emit Event(a, b); }\n bytes32 b;\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
},
"remappings": []
}
},
"output": {
"contracts": {
"contract-ad28860759.sol": {
"Test": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "available",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "required",
"type": "uint256"
}
],
"name": "InsufficientBalance",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "b",
"type": "bytes32"
}
],
"name": "Event",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "b",
"type": "bytes32"
}
],
"name": "Event2",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
}
],
"name": "foo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contract-ad28860759.sol\":62:370 contract Test {... */\n mstore(0x40, 0x80)\n /* \"contract-ad28860759.sol\":82:142 constructor() { b = hex\"12345678901234567890123456789012\"; } */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n revert(0x00, 0x00)\ntag_1:\n pop\n /* \"contract-ad28860759.sol\":98:139 b = hex\"12345678901234567890123456789012\" */\n 0x1234567890123456789012345678901200000000000000000000000000000000\n /* \"contract-ad28860759.sol\":98:99 b */\n 0x00\n /* \"contract-ad28860759.sol\":98:139 b = hex\"12345678901234567890123456789012\" */\n dup2\n swap1\n sstore\n pop\n /* \"contract-ad28860759.sol\":62:370 contract Test {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contract-ad28860759.sol\":62:370 contract Test {... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n revert(0x00, 0x00)\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x2fbebd38\n eq\n tag_3\n jumpi\n tag_2:\n revert(0x00, 0x00)\n /* \"contract-ad28860759.sol\":304:353 function foo(uint a) public { emit Event(a, b); } */\n tag_3:\n tag_4\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_5\n swap2\n swap1\n tag_6\n jump\t// in\n tag_5:\n tag_7\n jump\t// in\n tag_4:\n stop\n tag_7:\n /* \"contract-ad28860759.sol\":345:346 a */\n dup1\n /* \"contract-ad28860759.sol\":339:350 Event(a, b) */\n 0xb9b10fa6330336bee883557e906ab0d5e98ee503069e9c49689f95022db81399\n /* \"contract-ad28860759.sol\":348:349 b */\n sload(0x00)\n /* \"contract-ad28860759.sol\":339:350 Event(a, b) */\n mload(0x40)\n tag_9\n swap2\n swap1\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n log2\n /* \"contract-ad28860759.sol\":304:353 function foo(uint a) public { emit Event(a, b); } */\n pop\n jump\t// out\n /* \"#utility.yul\":88:205 */\n tag_12:\n /* \"#utility.yul\":197:198 */\n 0x00\n /* \"#utility.yul\":194:195 */\n 0x00\n /* \"#utility.yul\":187:199 */\n revert\n /* \"#utility.yul\":334:411 */\n tag_14:\n /* \"#utility.yul\":371:378 */\n 0x00\n /* \"#utility.yul\":400:405 */\n dup2\n /* \"#utility.yul\":389:405 */\n swap1\n pop\n /* \"#utility.yul\":334:411 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":417:539 */\n tag_15:\n /* \"#utility.yul\":490:514 */\n tag_25\n /* \"#utility.yul\":508:513 */\n dup2\n /* \"#utility.yul\":490:514 */\n tag_14\n jump\t// in\n tag_25:\n /* \"#utility.yul\":483:488 */\n dup2\n /* \"#utility.yul\":480:515 */\n eq\n /* \"#utility.yul\":470:533 */\n tag_26\n jumpi\n /* \"#utility.yul\":529:530 */\n 0x00\n /* \"#utility.yul\":526:527 */\n 0x00\n /* \"#utility.yul\":519:531 */\n revert\n /* \"#utility.yul\":470:533 */\n tag_26:\n /* \"#utility.yul\":417:539 */\n pop\n jump\t// out\n /* \"#utility.yul\":545:684 */\n tag_16:\n /* \"#utility.yul\":591:596 */\n 0x00\n /* \"#utility.yul\":629:635 */\n dup2\n /* \"#utility.yul\":616:636 */\n calldataload\n /* \"#utility.yul\":607:636 */\n swap1\n pop\n /* \"#utility.yul\":645:678 */\n tag_28\n /* \"#utility.yul\":672:677 */\n dup2\n /* \"#utility.yul\":645:678 */\n tag_15\n jump\t// in\n tag_28:\n /* \"#utility.yul\":545:684 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":690:1019 */\n tag_6:\n /* \"#utility.yul\":749:755 */\n 0x00\n /* \"#utility.yul\":798:800 */\n 0x20\n /* \"#utility.yul\":786:795 */\n dup3\n /* \"#utility.yul\":777:784 */\n dup5\n /* \"#utility.yul\":773:796 */\n sub\n /* \"#utility.yul\":769:801 */\n slt\n /* \"#utility.yul\":766:885 */\n iszero\n tag_30\n jumpi\n /* \"#utility.yul\":804:883 */\n tag_31\n tag_12\n jump\t// in\n tag_31:\n /* \"#utility.yul\":766:885 */\n tag_30:\n /* \"#utility.yul\":924:925 */\n 0x00\n /* \"#utility.yul\":949:1002 */\n tag_32\n /* \"#utility.yul\":994:1001 */\n dup5\n /* \"#utility.yul\":985:991 */\n dup3\n /* \"#utility.yul\":974:983 */\n dup6\n /* \"#utility.yul\":970:992 */\n add\n /* \"#utility.yul\":949:1002 */\n tag_16\n jump\t// in\n tag_32:\n /* \"#utility.yul\":939:1002 */\n swap2\n pop\n /* \"#utility.yul\":895:1012 */\n pop\n /* \"#utility.yul\":690:1019 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1025:1102 */\n tag_17:\n /* \"#utility.yul\":1062:1069 */\n 0x00\n /* \"#utility.yul\":1091:1096 */\n dup2\n /* \"#utility.yul\":1080:1096 */\n swap1\n pop\n /* \"#utility.yul\":1025:1102 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1108:1226 */\n tag_18:\n /* \"#utility.yul\":1195:1219 */\n tag_35\n /* \"#utility.yul\":1213:1218 */\n dup2\n /* \"#utility.yul\":1195:1219 */\n tag_17\n jump\t// in\n tag_35:\n /* \"#utility.yul\":1190:1193 */\n dup3\n /* \"#utility.yul\":1183:1220 */\n mstore\n /* \"#utility.yul\":1108:1226 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1232:1454 */\n tag_10:\n /* \"#utility.yul\":1325:1329 */\n 0x00\n /* \"#utility.yul\":1363:1365 */\n 0x20\n /* \"#utility.yul\":1352:1361 */\n dup3\n /* \"#utility.yul\":1348:1366 */\n add\n /* \"#utility.yul\":1340:1366 */\n swap1\n pop\n /* \"#utility.yul\":1376:1447 */\n tag_37\n /* \"#utility.yul\":1444:1445 */\n 0x00\n /* \"#utility.yul\":1433:1442 */\n dup4\n /* \"#utility.yul\":1429:1446 */\n add\n /* \"#utility.yul\":1420:1426 */\n dup5\n /* \"#utility.yul\":1376:1447 */\n tag_18\n jump\t// in\n tag_37:\n /* \"#utility.yul\":1232:1454 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122077943c269a57098fbc92cedcfa31945f36f7a5cff083cad4e81840c79aaf028964736f6c634300081e0033\n}\n",
"bytecode": {
"functionDebugData": {
"@_9": {
"entryPoint": null,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600e575f5ffd5b507f12345678901234567890123456789012000000000000000000000000000000005f8190555061014e806100425f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632fbebd381461002d575b5f5ffd5b610047600480360381019061004291906100bc565b610049565b005b807fb9b10fa6330336bee883557e906ab0d5e98ee503069e9c49689f95022db813995f5460405161007a91906100ff565b60405180910390a250565b5f5ffd5b5f819050919050565b61009b81610089565b81146100a5575f5ffd5b50565b5f813590506100b681610092565b92915050565b5f602082840312156100d1576100d0610085565b5b5f6100de848285016100a8565b91505092915050565b5f819050919050565b6100f9816100e7565b82525050565b5f6020820190506101125f8301846100f0565b9291505056fea264697066735822122077943c269a57098fbc92cedcfa31945f36f7a5cff083cad4e81840c79aaf028964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x1234567890123456789012345678901200000000000000000000000000000000 PUSH0 DUP2 SWAP1 SSTORE POP PUSH2 0x14E DUP1 PUSH2 0x42 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2FBEBD38 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x49 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH32 0xB9B10FA6330336BEE883557E906AB0D5E98EE503069E9C49689F95022DB81399 PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH2 0x7A SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B DUP2 PUSH2 0x89 JUMP JUMPDEST DUP2 EQ PUSH2 0xA5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1 JUMPI PUSH2 0xD0 PUSH2 0x85 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDE DUP5 DUP3 DUP6 ADD PUSH2 0xA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0xE7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x112 PUSH0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0x943C269A57098FBC92CEDCFA31945F36F7A5CFF083CAD4E8 XOR BLOCKHASH 0xC7 SWAP11 0xAF MUL DUP10 PUSH5 0x736F6C6343 STOP ADDMOD 0x1E STOP CALLER ",
"sourceMap": "62:308:0:-:0;;;82:60;;;;;;;;;;98:41;:1;:41;;;;62:308;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@foo_38": {
"entryPoint": 73,
"id": 38,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256": {
"entryPoint": 168,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 188,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 240,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 255,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 231,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 137,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 133,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 146,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:1457:1",
"nodeType": "YulBlock",
"src": "0:1457:1",
"statements": [
{
"body": {
"nativeSrc": "47:35:1",
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nativeSrc": "57:19:1",
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:1",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:1",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nativeSrc": "67:9:1",
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:1",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:1",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nativeSrc": "177:28:1",
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:1",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:1",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:1",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:1",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nativeSrc": "300:28:1",
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:1",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:1",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:1",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:1",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nativeSrc": "379:32:1",
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nativeSrc": "389:16:1",
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nativeSrc": "400:5:1",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "389:7:1",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "334:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "361:5:1",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "371:7:1",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nativeSrc": "460:79:1",
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nativeSrc": "517:16:1",
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "526:1:1",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "529:1:1",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "519:6:1",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nativeSrc": "519:12:1",
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nativeSrc": "519:12:1",
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "483:5:1",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "508:5:1",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "490:17:1",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nativeSrc": "490:24:1",
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "480:2:1",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nativeSrc": "480:35:1",
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "473:6:1",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nativeSrc": "473:43:1",
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nativeSrc": "470:63:1",
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "417:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "453:5:1",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nativeSrc": "597:87:1",
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nativeSrc": "607:29:1",
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "629:6:1",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "616:12:1",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nativeSrc": "616:20:1",
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "607:5:1",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "672:5:1",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "645:26:1",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nativeSrc": "645:33:1",
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nativeSrc": "645:33:1",
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "545:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "575:6:1",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "583:3:1",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "591:5:1",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nativeSrc": "756:263:1",
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nativeSrc": "802:83:1",
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "804:77:1",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nativeSrc": "804:79:1",
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nativeSrc": "804:79:1",
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "777:7:1",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nativeSrc": "786:9:1",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "773:3:1",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nativeSrc": "773:23:1",
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nativeSrc": "798:2:1",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "769:3:1",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nativeSrc": "769:32:1",
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nativeSrc": "766:119:1",
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nativeSrc": "895:117:1",
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nativeSrc": "910:15:1",
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nativeSrc": "924:1:1",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "914:6:1",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nativeSrc": "939:63:1",
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "974:9:1",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nativeSrc": "985:6:1",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "970:3:1",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nativeSrc": "970:22:1",
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "994:7:1",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "949:20:1",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nativeSrc": "949:53:1",
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "939:6:1",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nativeSrc": "690:329:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "726:9:1",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "737:7:1",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "749:6:1",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nativeSrc": "1070:32:1",
"nodeType": "YulBlock",
"src": "1070:32:1",
"statements": [
{
"nativeSrc": "1080:16:1",
"nodeType": "YulAssignment",
"src": "1080:16:1",
"value": {
"name": "value",
"nativeSrc": "1091:5:1",
"nodeType": "YulIdentifier",
"src": "1091:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1080:7:1",
"nodeType": "YulIdentifier",
"src": "1080:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "1025:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1052:5:1",
"nodeType": "YulTypedName",
"src": "1052:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1062:7:1",
"nodeType": "YulTypedName",
"src": "1062:7:1",
"type": ""
}
],
"src": "1025:77:1"
},
{
"body": {
"nativeSrc": "1173:53:1",
"nodeType": "YulBlock",
"src": "1173:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "1190:3:1",
"nodeType": "YulIdentifier",
"src": "1190:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1213:5:1",
"nodeType": "YulIdentifier",
"src": "1213:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "1195:17:1",
"nodeType": "YulIdentifier",
"src": "1195:17:1"
},
"nativeSrc": "1195:24:1",
"nodeType": "YulFunctionCall",
"src": "1195:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1183:6:1",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
},
"nativeSrc": "1183:37:1",
"nodeType": "YulFunctionCall",
"src": "1183:37:1"
},
"nativeSrc": "1183:37:1",
"nodeType": "YulExpressionStatement",
"src": "1183:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "1108:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1161:5:1",
"nodeType": "YulTypedName",
"src": "1161:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "1168:3:1",
"nodeType": "YulTypedName",
"src": "1168:3:1",
"type": ""
}
],
"src": "1108:118:1"
},
{
"body": {
"nativeSrc": "1330:124:1",
"nodeType": "YulBlock",
"src": "1330:124:1",
"statements": [
{
"nativeSrc": "1340:26:1",
"nodeType": "YulAssignment",
"src": "1340:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1352:9:1",
"nodeType": "YulIdentifier",
"src": "1352:9:1"
},
{
"kind": "number",
"nativeSrc": "1363:2:1",
"nodeType": "YulLiteral",
"src": "1363:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1348:3:1",
"nodeType": "YulIdentifier",
"src": "1348:3:1"
},
"nativeSrc": "1348:18:1",
"nodeType": "YulFunctionCall",
"src": "1348:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1340:4:1",
"nodeType": "YulIdentifier",
"src": "1340:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1420:6:1",
"nodeType": "YulIdentifier",
"src": "1420:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1433:9:1",
"nodeType": "YulIdentifier",
"src": "1433:9:1"
},
{
"kind": "number",
"nativeSrc": "1444:1:1",
"nodeType": "YulLiteral",
"src": "1444:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1429:3:1",
"nodeType": "YulIdentifier",
"src": "1429:3:1"
},
"nativeSrc": "1429:17:1",
"nodeType": "YulFunctionCall",
"src": "1429:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "1376:43:1",
"nodeType": "YulIdentifier",
"src": "1376:43:1"
},
"nativeSrc": "1376:71:1",
"nodeType": "YulFunctionCall",
"src": "1376:71:1"
},
"nativeSrc": "1376:71:1",
"nodeType": "YulExpressionStatement",
"src": "1376:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nativeSrc": "1232:222:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1302:9:1",
"nodeType": "YulTypedName",
"src": "1302:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1314:6:1",
"nodeType": "YulTypedName",
"src": "1314:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1325:4:1",
"nodeType": "YulTypedName",
"src": "1325:4:1",
"type": ""
}
],
"src": "1232:222: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_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_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 cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632fbebd381461002d575b5f5ffd5b610047600480360381019061004291906100bc565b610049565b005b807fb9b10fa6330336bee883557e906ab0d5e98ee503069e9c49689f95022db813995f5460405161007a91906100ff565b60405180910390a250565b5f5ffd5b5f819050919050565b61009b81610089565b81146100a5575f5ffd5b50565b5f813590506100b681610092565b92915050565b5f602082840312156100d1576100d0610085565b5b5f6100de848285016100a8565b91505092915050565b5f819050919050565b6100f9816100e7565b82525050565b5f6020820190506101125f8301846100f0565b9291505056fea264697066735822122077943c269a57098fbc92cedcfa31945f36f7a5cff083cad4e81840c79aaf028964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2FBEBD38 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x49 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH32 0xB9B10FA6330336BEE883557E906AB0D5E98EE503069E9C49689F95022DB81399 PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH2 0x7A SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B DUP2 PUSH2 0x89 JUMP JUMPDEST DUP2 EQ PUSH2 0xA5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1 JUMPI PUSH2 0xD0 PUSH2 0x85 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDE DUP5 DUP3 DUP6 ADD PUSH2 0xA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0xE7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x112 PUSH0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0x943C269A57098FBC92CEDCFA31945F36F7A5CFF083CAD4E8 XOR BLOCKHASH 0xC7 SWAP11 0xAF MUL DUP10 PUSH5 0x736F6C6343 STOP ADDMOD 0x1E STOP CALLER ",
"sourceMap": "62:308:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;345:1;339:11;348:1;;339:11;;;;;;:::i;:::-;;;;;;;;304:49;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:77::-;1062:7;1091:5;1080:16;;1025:77;;;:::o;1108:118::-;1195:24;1213:5;1195:24;:::i;:::-;1190:3;1183:37;1108:118;;:::o;1232:222::-;1325:4;1363:2;1352:9;1348:18;1340:26;;1376:71;1444:1;1433:9;1429:17;1420:6;1376:71;:::i;:::-;1232:222;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "66800",
"executionCost": "22228",
"totalCost": "89028"
},
"external": {
"foo(uint256)": "4044"
}
},
"legacyAssembly": {
".code": [
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 62,
"end": 370,
"name": "MSTORE",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "ISZERO",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 82,
"end": 142,
"name": "JUMPI",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 82,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 82,
"end": 142,
"name": "REVERT",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 82,
"end": 142,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 82,
"end": 142,
"name": "POP",
"source": 0
},
{
"begin": 98,
"end": 139,
"name": "PUSH",
"source": 0,
"value": "1234567890123456789012345678901200000000000000000000000000000000"
},
{
"begin": 98,
"end": 99,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 98,
"end": 139,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 139,
"name": "SWAP1",
"source": 0
},
{
"begin": 98,
"end": 139,
"name": "SSTORE",
"source": 0
},
{
"begin": 98,
"end": 139,
"name": "POP",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 62,
"end": 370,
"name": "DUP1",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "CODECOPY",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122077943c269a57098fbc92cedcfa31945f36f7a5cff083cad4e81840c79aaf028964736f6c634300081e0033",
".code": [
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 62,
"end": 370,
"name": "MSTORE",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "DUP1",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "ISZERO",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 62,
"end": 370,
"name": "JUMPI",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "REVERT",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 62,
"end": 370,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "POP",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 62,
"end": 370,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "LT",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 62,
"end": 370,
"name": "JUMPI",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 62,
"end": 370,
"name": "SHR",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "DUP1",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "2FBEBD38"
},
{
"begin": 62,
"end": 370,
"name": "EQ",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 62,
"end": 370,
"name": "JUMPI",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 62,
"end": 370,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 370,
"name": "REVERT",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 304,
"end": 353,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 304,
"end": 353,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 304,
"end": 353,
"name": "DUP1",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "SUB",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "DUP2",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "ADD",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "SWAP1",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 304,
"end": 353,
"name": "SWAP2",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "SWAP1",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 304,
"end": 353,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 304,
"end": 353,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 304,
"end": 353,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 304,
"end": 353,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "STOP",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 304,
"end": 353,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 345,
"end": 346,
"name": "DUP1",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "PUSH",
"source": 0,
"value": "B9B10FA6330336BEE883557E906AB0D5E98EE503069E9C49689F95022DB81399"
},
{
"begin": 348,
"end": 349,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 348,
"end": 349,
"name": "SLOAD",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 339,
"end": 350,
"name": "MLOAD",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 339,
"end": 350,
"name": "SWAP2",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "SWAP1",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 339,
"end": 350,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "tag",
"source": 0,
"value": "9"
},
{
"begin": 339,
"end": 350,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 339,
"end": 350,
"name": "MLOAD",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "DUP1",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "SWAP2",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "SUB",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "SWAP1",
"source": 0
},
{
"begin": 339,
"end": 350,
"name": "LOG2",
"source": 0
},
{
"begin": 304,
"end": 353,
"name": "POP",
"source": 0
},
{
"begin": 304,
"end": 353,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 88,
"end": 205,
"name": "tag",
"source": 1,
"value": "12"
},
{
"begin": 88,
"end": 205,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 197,
"end": 198,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 194,
"end": 195,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 187,
"end": 199,
"name": "REVERT",
"source": 1
},
{
"begin": 334,
"end": 411,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 334,
"end": 411,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 371,
"end": 378,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 400,
"end": 405,
"name": "DUP2",
"source": 1
},
{
"begin": 389,
"end": 405,
"name": "SWAP1",
"source": 1
},
{
"begin": 389,
"end": 405,
"name": "POP",
"source": 1
},
{
"begin": 334,
"end": 411,
"name": "SWAP2",
"source": 1
},
{
"begin": 334,
"end": 411,
"name": "SWAP1",
"source": 1
},
{
"begin": 334,
"end": 411,
"name": "POP",
"source": 1
},
{
"begin": 334,
"end": 411,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 417,
"end": 539,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 417,
"end": 539,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 490,
"end": 514,
"name": "PUSH [tag]",
"source": 1,
"value": "25"
},
{
"begin": 508,
"end": 513,
"name": "DUP2",
"source": 1
},
{
"begin": 490,
"end": 514,
"name": "PUSH [tag]",
"source": 1,
"value": "14"
},
{
"begin": 490,
"end": 514,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 490,
"end": 514,
"name": "tag",
"source": 1,
"value": "25"
},
{
"begin": 490,
"end": 514,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 483,
"end": 488,
"name": "DUP2",
"source": 1
},
{
"begin": 480,
"end": 515,
"name": "EQ",
"source": 1
},
{
"begin": 470,
"end": 533,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 470,
"end": 533,
"name": "JUMPI",
"source": 1
},
{
"begin": 529,
"end": 530,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 526,
"end": 527,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 519,
"end": 531,
"name": "REVERT",
"source": 1
},
{
"begin": 470,
"end": 533,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 470,
"end": 533,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 417,
"end": 539,
"name": "POP",
"source": 1
},
{
"begin": 417,
"end": 539,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 545,
"end": 684,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 545,
"end": 684,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 591,
"end": 596,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 629,
"end": 635,
"name": "DUP2",
"source": 1
},
{
"begin": 616,
"end": 636,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 607,
"end": 636,
"name": "SWAP1",
"source": 1
},
{
"begin": 607,
"end": 636,
"name": "POP",
"source": 1
},
{
"begin": 645,
"end": 678,
"name": "PUSH [tag]",
"source": 1,
"value": "28"
},
{
"begin": 672,
"end": 677,
"name": "DUP2",
"source": 1
},
{
"begin": 645,
"end": 678,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 645,
"end": 678,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 645,
"end": 678,
"name": "tag",
"source": 1,
"value": "28"
},
{
"begin": 645,
"end": 678,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 545,
"end": 684,
"name": "SWAP3",
"source": 1
},
{
"begin": 545,
"end": 684,
"name": "SWAP2",
"source": 1
},
{
"begin": 545,
"end": 684,
"name": "POP",
"source": 1
},
{
"begin": 545,
"end": 684,
"name": "POP",
"source": 1
},
{
"begin": 545,
"end": 684,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 690,
"end": 1019,
"name": "tag",
"source": 1,
"value": "6"
},
{
"begin": 690,
"end": 1019,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 749,
"end": 755,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 798,
"end": 800,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 786,
"end": 795,
"name": "DUP3",
"source": 1
},
{
"begin": 777,
"end": 784,
"name": "DUP5",
"source": 1
},
{
"begin": 773,
"end": 796,
"name": "SUB",
"source": 1
},
{
"begin": 769,
"end": 801,
"name": "SLT",
"source": 1
},
{
"begin": 766,
"end": 885,
"name": "ISZERO",
"source": 1
},
{
"begin": 766,
"end": 885,
"name": "PUSH [tag]",
"source": 1,
"value": "30"
},
{
"begin": 766,
"end": 885,
"name": "JUMPI",
"source": 1
},
{
"begin": 804,
"end": 883,
"name": "PUSH [tag]",
"source": 1,
"value": "31"
},
{
"begin": 804,
"end": 883,
"name": "PUSH [tag]",
"source": 1,
"value": "12"
},
{
"begin": 804,
"end": 883,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 804,
"end": 883,
"name": "tag",
"source": 1,
"value": "31"
},
{
"begin": 804,
"end": 883,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 766,
"end": 885,
"name": "tag",
"source": 1,
"value": "30"
},
{
"begin": 766,
"end": 885,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 924,
"end": 925,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 949,
"end": 1002,
"name": "PUSH [tag]",
"source": 1,
"value": "32"
},
{
"begin": 994,
"end": 1001,
"name": "DUP5",
"source": 1
},
{
"begin": 985,
"end": 991,
"name": "DUP3",
"source": 1
},
{
"begin": 974,
"end": 983,
"name": "DUP6",
"source": 1
},
{
"begin": 970,
"end": 992,
"name": "ADD",
"source": 1
},
{
"begin": 949,
"end": 1002,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 949,
"end": 1002,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 949,
"end": 1002,
"name": "tag",
"source": 1,
"value": "32"
},
{
"begin": 949,
"end": 1002,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 939,
"end": 1002,
"name": "SWAP2",
"source": 1
},
{
"begin": 939,
"end": 1002,
"name": "POP",
"source": 1
},
{
"begin": 895,
"end": 1012,
"name": "POP",
"source": 1
},
{
"begin": 690,
"end": 1019,
"name": "SWAP3",
"source": 1
},
{
"begin": 690,
"end": 1019,
"name": "SWAP2",
"source": 1
},
{
"begin": 690,
"end": 1019,
"name": "POP",
"source": 1
},
{
"begin": 690,
"end": 1019,
"name": "POP",
"source": 1
},
{
"begin": 690,
"end": 1019,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1025,
"end": 1102,
"name": "tag",
"source": 1,
"value": "17"
},
{
"begin": 1025,
"end": 1102,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1062,
"end": 1069,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1091,
"end": 1096,
"name": "DUP2",
"source": 1
},
{
"begin": 1080,
"end": 1096,
"name": "SWAP1",
"source": 1
},
{
"begin": 1080,
"end": 1096,
"name": "POP",
"source": 1
},
{
"begin": 1025,
"end": 1102,
"name": "SWAP2",
"source": 1
},
{
"begin": 1025,
"end": 1102,
"name": "SWAP1",
"source": 1
},
{
"begin": 1025,
"end": 1102,
"name": "POP",
"source": 1
},
{
"begin": 1025,
"end": 1102,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1108,
"end": 1226,
"name": "tag",
"source": 1,
"value": "18"
},
{
"begin": 1108,
"end": 1226,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1195,
"end": 1219,
"name": "PUSH [tag]",
"source": 1,
"value": "35"
},
{
"begin": 1213,
"end": 1218,
"name": "DUP2",
"source": 1
},
{
"begin": 1195,
"end": 1219,
"name": "PUSH [tag]",
"source": 1,
"value": "17"
},
{
"begin": 1195,
"end": 1219,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1195,
"end": 1219,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 1195,
"end": 1219,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1190,
"end": 1193,
"name": "DUP3",
"source": 1
},
{
"begin": 1183,
"end": 1220,
"name": "MSTORE",
"source": 1
},
{
"begin": 1108,
"end": 1226,
"name": "POP",
"source": 1
},
{
"begin": 1108,
"end": 1226,
"name": "POP",
"source": 1
},
{
"begin": 1108,
"end": 1226,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1232,
"end": 1454,
"name": "tag",
"source": 1,
"value": "10"
},
{
"begin": 1232,
"end": 1454,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1325,
"end": 1329,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1363,
"end": 1365,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 1352,
"end": 1361,
"name": "DUP3",
"source": 1
},
{
"begin": 1348,
"end": 1366,
"name": "ADD",
"source": 1
},
{
"begin": 1340,
"end": 1366,
"name": "SWAP1",
"source": 1
},
{
"begin": 1340,
"end": 1366,
"name": "POP",
"source": 1
},
{
"begin": 1376,
"end": 1447,
"name": "PUSH [tag]",
"source": 1,
"value": "37"
},
{
"begin": 1444,
"end": 1445,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1433,
"end": 1442,
"name": "DUP4",
"source": 1
},
{
"begin": 1429,
"end": 1446,
"name": "ADD",
"source": 1
},
{
"begin": 1420,
"end": 1426,
"name": "DUP5",
"source": 1
},
{
"begin": 1376,
"end": 1447,
"name": "PUSH [tag]",
"source": 1,
"value": "18"
},
{
"begin": 1376,
"end": 1447,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 1376,
"end": 1447,
"name": "tag",
"source": 1,
"value": "37"
},
{
"begin": 1376,
"end": 1447,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1232,
"end": 1454,
"name": "SWAP3",
"source": 1
},
{
"begin": 1232,
"end": 1454,
"name": "SWAP2",
"source": 1
},
{
"begin": 1232,
"end": 1454,
"name": "POP",
"source": 1
},
{
"begin": 1232,
"end": 1454,
"name": "POP",
"source": 1
},
{
"begin": 1232,
"end": 1454,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"contract-ad28860759.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"foo(uint256)": "2fbebd38"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"b\",\"type\":\"bytes32\"}],\"name\":\"Event\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"b\",\"type\":\"bytes32\"}],\"name\":\"Event2\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"name\":\"foo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contract-ad28860759.sol\":\"Test\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contract-ad28860759.sol\":{\"keccak256\":\"0x3b269ae7e2f85d053a11c430a6dd5c07b1e9c9015b157d193cbcd729c8b64bf5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://741eb46ffc900269f530b837926326a16cc49e193be3a2092d6380bfd65792f2\",\"dweb:/ipfs/QmWLdMbSPXpezAwBkMm4VLyfbC4xG11orMZMppNggXEsQE\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 40,
"contract": "contract-ad28860759.sol:Test",
"label": "b",
"offset": 0,
"slot": "0",
"type": "t_bytes32"
}
],
"types": {
"t_bytes32": {
"encoding": "inplace",
"label": "bytes32",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contract-ad28860759.sol": {
"ast": {
"absolutePath": "contract-ad28860759.sol",
"exportedSymbols": {
"Test": [
41
]
},
"id": 42,
"license": "GPL-3.0",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".4"
],
"nodeType": "PragmaDirective",
"src": "36:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "Test",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 41,
"linearizedBaseContracts": [
41
],
"name": "Test",
"nameLocation": "71:4:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 8,
"nodeType": "Block",
"src": "96:46:0",
"statements": [
{
"expression": {
"id": 6,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 4,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40,
"src": "98:1:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "12345678901234567890123456789012",
"id": 5,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "hexString",
"lValueRequested": false,
"nodeType": "Literal",
"src": "102:37:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b8cf7deaa7b606e07e5a6cb22b911da515b783b11d508521c2a53bfe264933c9",
"typeString": "literal_string hex\"12345678901234567890123456789012\""
}
},
"src": "98:41:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"id": 7,
"nodeType": "ExpressionStatement",
"src": "98:41:0"
}
]
},
"id": 9,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2,
"nodeType": "ParameterList",
"parameters": [],
"src": "93:2:0"
},
"returnParameters": {
"id": 3,
"nodeType": "ParameterList",
"parameters": [],
"src": "96:0:0"
},
"scope": 41,
"src": "82:60:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"anonymous": false,
"eventSelector": "b9b10fa6330336bee883557e906ab0d5e98ee503069e9c49689f95022db81399",
"id": 15,
"name": "Event",
"nameLocation": "153:5:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 14,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 11,
"indexed": true,
"mutability": "mutable",
"name": "a",
"nameLocation": "172:1:0",
"nodeType": "VariableDeclaration",
"scope": 15,
"src": "159:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 10,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "159:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 13,
"indexed": false,
"mutability": "mutable",
"name": "b",
"nameLocation": "183:1:0",
"nodeType": "VariableDeclaration",
"scope": 15,
"src": "175:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 12,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "175:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "158:27:0"
},
"src": "147:39:0"
},
{
"anonymous": false,
"eventSelector": "672d1aedf347b9d9982314a48e91caa3aad54cb8964e7694eb445a88f9723d0b",
"id": 21,
"name": "Event2",
"nameLocation": "197:6:0",
"nodeType": "EventDefinition",
"parameters": {
"id": 20,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 17,
"indexed": true,
"mutability": "mutable",
"name": "a",
"nameLocation": "217:1:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "204:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 16,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "204:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 19,
"indexed": false,
"mutability": "mutable",
"name": "b",
"nameLocation": "228:1:0",
"nodeType": "VariableDeclaration",
"scope": 21,
"src": "220:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "220:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "203:27:0"
},
"src": "191:40:0"
},
{
"errorSelector": "cf479181",
"id": 27,
"name": "InsufficientBalance",
"nameLocation": "242:19:0",
"nodeType": "ErrorDefinition",
"parameters": {
"id": 26,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 23,
"mutability": "mutable",
"name": "available",
"nameLocation": "270:9:0",
"nodeType": "VariableDeclaration",
"scope": 27,
"src": "262:17:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 22,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "262:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 25,
"mutability": "mutable",
"name": "required",
"nameLocation": "289:8:0",
"nodeType": "VariableDeclaration",
"scope": 27,
"src": "281:16:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "281:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "261:37:0"
},
"src": "236:63:0"
},
{
"body": {
"id": 37,
"nodeType": "Block",
"src": "332:21:0",
"statements": [
{
"eventCall": {
"arguments": [
{
"id": 33,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "345:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 34,
"name": "b",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40,
"src": "348:1:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 32,
"name": "Event",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 15,
"src": "339:5:0",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_bytes32_$returns$__$",
"typeString": "function (uint256,bytes32)"
}
},
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "339:11:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 36,
"nodeType": "EmitStatement",
"src": "334:16:0"
}
]
},
"functionSelector": "2fbebd38",
"id": 38,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "foo",
"nameLocation": "313:3:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 30,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 29,
"mutability": "mutable",
"name": "a",
"nameLocation": "322:1:0",
"nodeType": "VariableDeclaration",
"scope": 38,
"src": "317:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 28,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "317:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "316:8:0"
},
"returnParameters": {
"id": 31,
"nodeType": "ParameterList",
"parameters": [],
"src": "332:0:0"
},
"scope": 41,
"src": "304:49:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"constant": false,
"id": 40,
"mutability": "mutable",
"name": "b",
"nameLocation": "366:1:0",
"nodeType": "VariableDeclaration",
"scope": 41,
"src": "358:9:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 39,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "358:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"scope": 42,
"src": "62:308:0",
"usedErrors": [
27
],
"usedEvents": [
15,
21
]
}
],
"src": "36:334:0"
},
"id": 0
}
}
}
}
{
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_9": {
"entryPoint": null,
"id": 9,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052348015600e575f5ffd5b507f12345678901234567890123456789012000000000000000000000000000000005f8190555061014e806100425f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632fbebd381461002d575b5f5ffd5b610047600480360381019061004291906100bc565b610049565b005b807fb9b10fa6330336bee883557e906ab0d5e98ee503069e9c49689f95022db813995f5460405161007a91906100ff565b60405180910390a250565b5f5ffd5b5f819050919050565b61009b81610089565b81146100a5575f5ffd5b50565b5f813590506100b681610092565b92915050565b5f602082840312156100d1576100d0610085565b5b5f6100de848285016100a8565b91505092915050565b5f819050919050565b6100f9816100e7565b82525050565b5f6020820190506101125f8301846100f0565b9291505056fea264697066735822122077943c269a57098fbc92cedcfa31945f36f7a5cff083cad4e81840c79aaf028964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xE JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH32 0x1234567890123456789012345678901200000000000000000000000000000000 PUSH0 DUP2 SWAP1 SSTORE POP PUSH2 0x14E DUP1 PUSH2 0x42 PUSH0 CODECOPY PUSH0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2FBEBD38 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x49 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH32 0xB9B10FA6330336BEE883557E906AB0D5E98EE503069E9C49689F95022DB81399 PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH2 0x7A SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B DUP2 PUSH2 0x89 JUMP JUMPDEST DUP2 EQ PUSH2 0xA5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1 JUMPI PUSH2 0xD0 PUSH2 0x85 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDE DUP5 DUP3 DUP6 ADD PUSH2 0xA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0xE7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x112 PUSH0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0x943C269A57098FBC92CEDCFA31945F36F7A5CFF083CAD4E8 XOR BLOCKHASH 0xC7 SWAP11 0xAF MUL DUP10 PUSH5 0x736F6C6343 STOP ADDMOD 0x1E STOP CALLER ",
"sourceMap": "62:308:0:-:0;;;82:60;;;;;;;;;;98:41;:1;:41;;;;62:308;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@foo_38": {
"entryPoint": 73,
"id": 38,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256": {
"entryPoint": 168,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 188,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 240,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 255,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 231,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 137,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 133,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 146,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nativeSrc": "0:1457:1",
"nodeType": "YulBlock",
"src": "0:1457:1",
"statements": [
{
"body": {
"nativeSrc": "47:35:1",
"nodeType": "YulBlock",
"src": "47:35:1",
"statements": [
{
"nativeSrc": "57:19:1",
"nodeType": "YulAssignment",
"src": "57:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nativeSrc": "73:2:1",
"nodeType": "YulLiteral",
"src": "73:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nativeSrc": "67:5:1",
"nodeType": "YulIdentifier",
"src": "67:5:1"
},
"nativeSrc": "67:9:1",
"nodeType": "YulFunctionCall",
"src": "67:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nativeSrc": "57:6:1",
"nodeType": "YulIdentifier",
"src": "57:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nativeSrc": "7:75:1",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nativeSrc": "40:6:1",
"nodeType": "YulTypedName",
"src": "40:6:1",
"type": ""
}
],
"src": "7:75:1"
},
{
"body": {
"nativeSrc": "177:28:1",
"nodeType": "YulBlock",
"src": "177:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "194:1:1",
"nodeType": "YulLiteral",
"src": "194:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "197:1:1",
"nodeType": "YulLiteral",
"src": "197:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "187:6:1",
"nodeType": "YulIdentifier",
"src": "187:6:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulFunctionCall",
"src": "187:12:1"
},
"nativeSrc": "187:12:1",
"nodeType": "YulExpressionStatement",
"src": "187:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "88:117:1",
"nodeType": "YulFunctionDefinition",
"src": "88:117:1"
},
{
"body": {
"nativeSrc": "300:28:1",
"nodeType": "YulBlock",
"src": "300:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "317:1:1",
"nodeType": "YulLiteral",
"src": "317:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "320:1:1",
"nodeType": "YulLiteral",
"src": "320:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "310:6:1",
"nodeType": "YulIdentifier",
"src": "310:6:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulFunctionCall",
"src": "310:12:1"
},
"nativeSrc": "310:12:1",
"nodeType": "YulExpressionStatement",
"src": "310:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nativeSrc": "211:117:1",
"nodeType": "YulFunctionDefinition",
"src": "211:117:1"
},
{
"body": {
"nativeSrc": "379:32:1",
"nodeType": "YulBlock",
"src": "379:32:1",
"statements": [
{
"nativeSrc": "389:16:1",
"nodeType": "YulAssignment",
"src": "389:16:1",
"value": {
"name": "value",
"nativeSrc": "400:5:1",
"nodeType": "YulIdentifier",
"src": "400:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "389:7:1",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nativeSrc": "334:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "361:5:1",
"nodeType": "YulTypedName",
"src": "361:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "371:7:1",
"nodeType": "YulTypedName",
"src": "371:7:1",
"type": ""
}
],
"src": "334:77:1"
},
{
"body": {
"nativeSrc": "460:79:1",
"nodeType": "YulBlock",
"src": "460:79:1",
"statements": [
{
"body": {
"nativeSrc": "517:16:1",
"nodeType": "YulBlock",
"src": "517:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nativeSrc": "526:1:1",
"nodeType": "YulLiteral",
"src": "526:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nativeSrc": "529:1:1",
"nodeType": "YulLiteral",
"src": "529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nativeSrc": "519:6:1",
"nodeType": "YulIdentifier",
"src": "519:6:1"
},
"nativeSrc": "519:12:1",
"nodeType": "YulFunctionCall",
"src": "519:12:1"
},
"nativeSrc": "519:12:1",
"nodeType": "YulExpressionStatement",
"src": "519:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nativeSrc": "483:5:1",
"nodeType": "YulIdentifier",
"src": "483:5:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "508:5:1",
"nodeType": "YulIdentifier",
"src": "508:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nativeSrc": "490:17:1",
"nodeType": "YulIdentifier",
"src": "490:17:1"
},
"nativeSrc": "490:24:1",
"nodeType": "YulFunctionCall",
"src": "490:24:1"
}
],
"functionName": {
"name": "eq",
"nativeSrc": "480:2:1",
"nodeType": "YulIdentifier",
"src": "480:2:1"
},
"nativeSrc": "480:35:1",
"nodeType": "YulFunctionCall",
"src": "480:35:1"
}
],
"functionName": {
"name": "iszero",
"nativeSrc": "473:6:1",
"nodeType": "YulIdentifier",
"src": "473:6:1"
},
"nativeSrc": "473:43:1",
"nodeType": "YulFunctionCall",
"src": "473:43:1"
},
"nativeSrc": "470:63:1",
"nodeType": "YulIf",
"src": "470:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nativeSrc": "417:122:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "453:5:1",
"nodeType": "YulTypedName",
"src": "453:5:1",
"type": ""
}
],
"src": "417:122:1"
},
{
"body": {
"nativeSrc": "597:87:1",
"nodeType": "YulBlock",
"src": "597:87:1",
"statements": [
{
"nativeSrc": "607:29:1",
"nodeType": "YulAssignment",
"src": "607:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nativeSrc": "629:6:1",
"nodeType": "YulIdentifier",
"src": "629:6:1"
}
],
"functionName": {
"name": "calldataload",
"nativeSrc": "616:12:1",
"nodeType": "YulIdentifier",
"src": "616:12:1"
},
"nativeSrc": "616:20:1",
"nodeType": "YulFunctionCall",
"src": "616:20:1"
},
"variableNames": [
{
"name": "value",
"nativeSrc": "607:5:1",
"nodeType": "YulIdentifier",
"src": "607:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nativeSrc": "672:5:1",
"nodeType": "YulIdentifier",
"src": "672:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nativeSrc": "645:26:1",
"nodeType": "YulIdentifier",
"src": "645:26:1"
},
"nativeSrc": "645:33:1",
"nodeType": "YulFunctionCall",
"src": "645:33:1"
},
"nativeSrc": "645:33:1",
"nodeType": "YulExpressionStatement",
"src": "645:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nativeSrc": "545:139:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nativeSrc": "575:6:1",
"nodeType": "YulTypedName",
"src": "575:6:1",
"type": ""
},
{
"name": "end",
"nativeSrc": "583:3:1",
"nodeType": "YulTypedName",
"src": "583:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nativeSrc": "591:5:1",
"nodeType": "YulTypedName",
"src": "591:5:1",
"type": ""
}
],
"src": "545:139:1"
},
{
"body": {
"nativeSrc": "756:263:1",
"nodeType": "YulBlock",
"src": "756:263:1",
"statements": [
{
"body": {
"nativeSrc": "802:83:1",
"nodeType": "YulBlock",
"src": "802:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nativeSrc": "804:77:1",
"nodeType": "YulIdentifier",
"src": "804:77:1"
},
"nativeSrc": "804:79:1",
"nodeType": "YulFunctionCall",
"src": "804:79:1"
},
"nativeSrc": "804:79:1",
"nodeType": "YulExpressionStatement",
"src": "804:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nativeSrc": "777:7:1",
"nodeType": "YulIdentifier",
"src": "777:7:1"
},
{
"name": "headStart",
"nativeSrc": "786:9:1",
"nodeType": "YulIdentifier",
"src": "786:9:1"
}
],
"functionName": {
"name": "sub",
"nativeSrc": "773:3:1",
"nodeType": "YulIdentifier",
"src": "773:3:1"
},
"nativeSrc": "773:23:1",
"nodeType": "YulFunctionCall",
"src": "773:23:1"
},
{
"kind": "number",
"nativeSrc": "798:2:1",
"nodeType": "YulLiteral",
"src": "798:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nativeSrc": "769:3:1",
"nodeType": "YulIdentifier",
"src": "769:3:1"
},
"nativeSrc": "769:32:1",
"nodeType": "YulFunctionCall",
"src": "769:32:1"
},
"nativeSrc": "766:119:1",
"nodeType": "YulIf",
"src": "766:119:1"
},
{
"nativeSrc": "895:117:1",
"nodeType": "YulBlock",
"src": "895:117:1",
"statements": [
{
"nativeSrc": "910:15:1",
"nodeType": "YulVariableDeclaration",
"src": "910:15:1",
"value": {
"kind": "number",
"nativeSrc": "924:1:1",
"nodeType": "YulLiteral",
"src": "924:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nativeSrc": "914:6:1",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nativeSrc": "939:63:1",
"nodeType": "YulAssignment",
"src": "939:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "974:9:1",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"name": "offset",
"nativeSrc": "985:6:1",
"nodeType": "YulIdentifier",
"src": "985:6:1"
}
],
"functionName": {
"name": "add",
"nativeSrc": "970:3:1",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nativeSrc": "970:22:1",
"nodeType": "YulFunctionCall",
"src": "970:22:1"
},
{
"name": "dataEnd",
"nativeSrc": "994:7:1",
"nodeType": "YulIdentifier",
"src": "994:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nativeSrc": "949:20:1",
"nodeType": "YulIdentifier",
"src": "949:20:1"
},
"nativeSrc": "949:53:1",
"nodeType": "YulFunctionCall",
"src": "949:53:1"
},
"variableNames": [
{
"name": "value0",
"nativeSrc": "939:6:1",
"nodeType": "YulIdentifier",
"src": "939:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nativeSrc": "690:329:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "726:9:1",
"nodeType": "YulTypedName",
"src": "726:9:1",
"type": ""
},
{
"name": "dataEnd",
"nativeSrc": "737:7:1",
"nodeType": "YulTypedName",
"src": "737:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nativeSrc": "749:6:1",
"nodeType": "YulTypedName",
"src": "749:6:1",
"type": ""
}
],
"src": "690:329:1"
},
{
"body": {
"nativeSrc": "1070:32:1",
"nodeType": "YulBlock",
"src": "1070:32:1",
"statements": [
{
"nativeSrc": "1080:16:1",
"nodeType": "YulAssignment",
"src": "1080:16:1",
"value": {
"name": "value",
"nativeSrc": "1091:5:1",
"nodeType": "YulIdentifier",
"src": "1091:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nativeSrc": "1080:7:1",
"nodeType": "YulIdentifier",
"src": "1080:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nativeSrc": "1025:77:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1052:5:1",
"nodeType": "YulTypedName",
"src": "1052:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nativeSrc": "1062:7:1",
"nodeType": "YulTypedName",
"src": "1062:7:1",
"type": ""
}
],
"src": "1025:77:1"
},
{
"body": {
"nativeSrc": "1173:53:1",
"nodeType": "YulBlock",
"src": "1173:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nativeSrc": "1190:3:1",
"nodeType": "YulIdentifier",
"src": "1190:3:1"
},
{
"arguments": [
{
"name": "value",
"nativeSrc": "1213:5:1",
"nodeType": "YulIdentifier",
"src": "1213:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nativeSrc": "1195:17:1",
"nodeType": "YulIdentifier",
"src": "1195:17:1"
},
"nativeSrc": "1195:24:1",
"nodeType": "YulFunctionCall",
"src": "1195:24:1"
}
],
"functionName": {
"name": "mstore",
"nativeSrc": "1183:6:1",
"nodeType": "YulIdentifier",
"src": "1183:6:1"
},
"nativeSrc": "1183:37:1",
"nodeType": "YulFunctionCall",
"src": "1183:37:1"
},
"nativeSrc": "1183:37:1",
"nodeType": "YulExpressionStatement",
"src": "1183:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "1108:118:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nativeSrc": "1161:5:1",
"nodeType": "YulTypedName",
"src": "1161:5:1",
"type": ""
},
{
"name": "pos",
"nativeSrc": "1168:3:1",
"nodeType": "YulTypedName",
"src": "1168:3:1",
"type": ""
}
],
"src": "1108:118:1"
},
{
"body": {
"nativeSrc": "1330:124:1",
"nodeType": "YulBlock",
"src": "1330:124:1",
"statements": [
{
"nativeSrc": "1340:26:1",
"nodeType": "YulAssignment",
"src": "1340:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nativeSrc": "1352:9:1",
"nodeType": "YulIdentifier",
"src": "1352:9:1"
},
{
"kind": "number",
"nativeSrc": "1363:2:1",
"nodeType": "YulLiteral",
"src": "1363:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1348:3:1",
"nodeType": "YulIdentifier",
"src": "1348:3:1"
},
"nativeSrc": "1348:18:1",
"nodeType": "YulFunctionCall",
"src": "1348:18:1"
},
"variableNames": [
{
"name": "tail",
"nativeSrc": "1340:4:1",
"nodeType": "YulIdentifier",
"src": "1340:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nativeSrc": "1420:6:1",
"nodeType": "YulIdentifier",
"src": "1420:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nativeSrc": "1433:9:1",
"nodeType": "YulIdentifier",
"src": "1433:9:1"
},
{
"kind": "number",
"nativeSrc": "1444:1:1",
"nodeType": "YulLiteral",
"src": "1444:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nativeSrc": "1429:3:1",
"nodeType": "YulIdentifier",
"src": "1429:3:1"
},
"nativeSrc": "1429:17:1",
"nodeType": "YulFunctionCall",
"src": "1429:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nativeSrc": "1376:43:1",
"nodeType": "YulIdentifier",
"src": "1376:43:1"
},
"nativeSrc": "1376:71:1",
"nodeType": "YulFunctionCall",
"src": "1376:71:1"
},
"nativeSrc": "1376:71:1",
"nodeType": "YulExpressionStatement",
"src": "1376:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nativeSrc": "1232:222:1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nativeSrc": "1302:9:1",
"nodeType": "YulTypedName",
"src": "1302:9:1",
"type": ""
},
{
"name": "value0",
"nativeSrc": "1314:6:1",
"nodeType": "YulTypedName",
"src": "1314:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nativeSrc": "1325:4:1",
"nodeType": "YulTypedName",
"src": "1325:4:1",
"type": ""
}
],
"src": "1232:222: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_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_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 cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632fbebd381461002d575b5f5ffd5b610047600480360381019061004291906100bc565b610049565b005b807fb9b10fa6330336bee883557e906ab0d5e98ee503069e9c49689f95022db813995f5460405161007a91906100ff565b60405180910390a250565b5f5ffd5b5f819050919050565b61009b81610089565b81146100a5575f5ffd5b50565b5f813590506100b681610092565b92915050565b5f602082840312156100d1576100d0610085565b5b5f6100de848285016100a8565b91505092915050565b5f819050919050565b6100f9816100e7565b82525050565b5f6020820190506101125f8301846100f0565b9291505056fea264697066735822122077943c269a57098fbc92cedcfa31945f36f7a5cff083cad4e81840c79aaf028964736f6c634300081e0033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0xF JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2FBEBD38 EQ PUSH2 0x2D JUMPI JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH2 0x47 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x42 SWAP2 SWAP1 PUSH2 0xBC JUMP JUMPDEST PUSH2 0x49 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH32 0xB9B10FA6330336BEE883557E906AB0D5E98EE503069E9C49689F95022DB81399 PUSH0 SLOAD PUSH1 0x40 MLOAD PUSH2 0x7A SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP JUMP JUMPDEST PUSH0 PUSH0 REVERT JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9B DUP2 PUSH2 0x89 JUMP JUMPDEST DUP2 EQ PUSH2 0xA5 JUMPI PUSH0 PUSH0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB6 DUP2 PUSH2 0x92 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD1 JUMPI PUSH2 0xD0 PUSH2 0x85 JUMP JUMPDEST JUMPDEST PUSH0 PUSH2 0xDE DUP5 DUP3 DUP6 ADD PUSH2 0xA8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0xE7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x112 PUSH0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0x943C269A57098FBC92CEDCFA31945F36F7A5CFF083CAD4E8 XOR BLOCKHASH 0xC7 SWAP11 0xAF MUL DUP10 PUSH5 0x736F6C6343 STOP ADDMOD 0x1E STOP CALLER ",
"sourceMap": "62:308:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;345:1;339:11;348:1;;339:11;;;;;;:::i;:::-;;;;;;;;304:49;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:77::-;1062:7;1091:5;1080:16;;1025:77;;;:::o;1108:118::-;1195:24;1213:5;1195:24;:::i;:::-;1190:3;1183:37;1108:118;;:::o;1232:222::-;1325:4;1363:2;1352:9;1348:18;1340:26;;1376:71;1444:1;1433:9;1429:17;1420:6;1376:71;:::i;:::-;1232:222;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "66800",
"executionCost": "22228",
"totalCost": "89028"
},
"external": {
"foo(uint256)": "4044"
}
},
"methodIdentifiers": {
"foo(uint256)": "2fbebd38"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "available",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "required",
"type": "uint256"
}
],
"name": "InsufficientBalance",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "b",
"type": "bytes32"
}
],
"name": "Event",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "b",
"type": "bytes32"
}
],
"name": "Event2",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
}
],
"name": "foo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.30+commit.73712a01"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "available",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "required",
"type": "uint256"
}
],
"name": "InsufficientBalance",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "b",
"type": "bytes32"
}
],
"name": "Event",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "a",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "b",
"type": "bytes32"
}
],
"name": "Event2",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
}
],
"name": "foo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contract-ad28860759.sol": "Test"
},
"evmVersion": "prague",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contract-ad28860759.sol": {
"keccak256": "0x3b269ae7e2f85d053a11c430a6dd5c07b1e9c9015b157d193cbcd729c8b64bf5",
"license": "GPL-3.0",
"urls": [
"bzz-raw://741eb46ffc900269f530b837926326a16cc49e193be3a2092d6380bfd65792f2",
"dweb:/ipfs/QmWLdMbSPXpezAwBkMm4VLyfbC4xG11orMZMppNggXEsQE"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.4;
contract Test {
constructor() { b = hex"12345678901234567890123456789012"; }
event Event(uint indexed a, bytes32 b);
event Event2(uint indexed a, bytes32 b);
error InsufficientBalance(uint256 available, uint256 required);
function foo(uint a) public { emit Event(a, b); }
bytes32 b;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment