Skip to content

Instantly share code, notes, and snippets.

@loadchange
Created January 25, 2023 08:16
Show Gist options
  • Save loadchange/0e05df275c80d3a21d885d03c0ec6019 to your computer and use it in GitHub Desktop.
Save loadchange/0e05df275c80d3a21d885d03c0ec6019 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
{
"overrides": [
{
"files": "*.sol",
"options": {
"printWidth": 80,
"tabWidth": 4,
"useTabs": false,
"singleQuote": false,
"bracketSpacing": false
}
},
{
"files": "*.yml",
"options": {}
},
{
"files": "*.yaml",
"options": {}
},
{
"files": "*.toml",
"options": {}
},
{
"files": "*.json",
"options": {}
},
{
"files": "*.js",
"options": {}
},
{
"files": "*.ts",
"options": {}
}
]
}
REMIX DEFAULT WORKSPACE
Remix default workspace is present when:
i. Remix loads for the very first time
ii. A new workspace is created with 'Default' template
iii. There are no files existing in the File Explorer
This workspace contains 3 directories:
1. 'contracts': Holds three contracts with increasing levels of complexity.
2. 'scripts': Contains four typescript files to deploy a contract. It is explained below.
3. 'tests': Contains one Solidity test file for 'Ballot' contract & one JS test file for 'Storage' contract.
SCRIPTS
The 'scripts' folder has four typescript files which help to deploy the 'Storage' contract using 'web3.js' and 'ethers.js' libraries.
For the deployment of any other contract, just update the contract's name from 'Storage' to the desired contract and provide constructor arguments accordingly
in the file `deploy_with_ethers.ts` or `deploy_with_web3.ts`
In the 'tests' folder there is a script containing Mocha-Chai unit tests for 'Storage' contract.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
Please note, require/import is supported in a limited manner for Remix supported modules.
For now, modules supported by Remix are ethers, web3, swarmgw, chai, multihashes, remix and hardhat only for hardhat.ethers object/plugin.
For unsupported modules, an error like this will be thrown: '<module_name> module require is not supported by Remix IDE' will be shown.
{
"id": "5ea410fc0219159514b9653a13ff7064",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.7",
"solcLongVersion": "0.8.7+commit.e28d00a7",
"input": {
"language": "Solidity",
"sources": {
"contracts/01.Solidity-8.0新特性/VendingMachine.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8;\r\n\r\n// custom error\r\n\r\ncontract VendingMachine {\r\n address payable owner = payable(msg.sender);\r\n\r\n error Unauthorized(address caller);\r\n\r\n function withdraw() public {\r\n if (msg.sender != owner)\r\n // 23642 gas\r\n // revert(\"error\");\r\n // 3000000\r\n // revert(\"error error error error error\");\r\n // 23388\r\n revert Unauthorized(msg.sender);\r\n \r\n\r\n owner.transfer(address(this).balance);\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/01.Solidity-8.0新特性/VendingMachine.sol": {
"VendingMachine": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "Unauthorized",
"type": "error"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":77:543 contract VendingMachine {\r... */\n mstore(0x40, 0x80)\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":140:150 msg.sender */\n caller\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":108:151 address payable owner = payable(msg.sender) */\n 0x00\n dup1\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":77:543 contract VendingMachine {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":77:543 contract VendingMachine {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x3ccfd60b\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":203:540 function withdraw() public {\r... */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n stop\n tag_5:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":259:264 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":245:264 msg.sender != owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":245:255 msg.sender */\n caller\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":245:264 msg.sender != owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":241:472 if (msg.sender != owner)\r... */\n tag_7\n jumpi\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":461:471 msg.sender */\n caller\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":448:472 Unauthorized(msg.sender) */\n mload(0x40)\n 0x8e4a23d600000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":241:472 if (msg.sender != owner)\r... */\n tag_7:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":495:500 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":495:509 owner.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":495:532 owner.transfer(address(this).balance) */\n 0x08fc\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":510:531 address(this).balance */\n selfbalance\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":495:532 owner.transfer(address(this).balance) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_11\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_11:\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/VendingMachine.sol\":203:540 function withdraw() public {\r... */\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_13:\n /* \"#utility.yul\":94:118 */\n tag_15\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_16\n jump\t// in\n tag_15:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_9:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_18\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_13\n jump\t// in\n tag_18:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:455 */\n tag_16:\n /* \"#utility.yul\":396:403 */\n 0x00\n /* \"#utility.yul\":425:449 */\n tag_20\n /* \"#utility.yul\":443:448 */\n dup3\n /* \"#utility.yul\":425:449 */\n tag_21\n jump\t// in\n tag_20:\n /* \"#utility.yul\":414:449 */\n swap1\n pop\n /* \"#utility.yul\":359:455 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":461:587 */\n tag_21:\n /* \"#utility.yul\":498:505 */\n 0x00\n /* \"#utility.yul\":538:580 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":531:536 */\n dup3\n /* \"#utility.yul\":527:581 */\n and\n /* \"#utility.yul\":516:581 */\n swap1\n pop\n /* \"#utility.yul\":461:587 */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa26469706673582212205924ac7f86e6df1bc3da8b037d2c1c5335fc2f637317796e3858b084cea8804464736f6c63430008070033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b506101c5806100606000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80633ccfd60b14610030575b600080fd5b61003861003a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ca57336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016100c19190610142565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610130573d6000803e3d6000fd5b50565b61013c8161015d565b82525050565b60006020820190506101576000830184610133565b92915050565b60006101688261016f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff8216905091905056fea26469706673582212205924ac7f86e6df1bc3da8b037d2c1c5335fc2f637317796e3858b084cea8804464736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 DUP1 PUSH2 0x60 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 0x3CCFD60B EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCA JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0x8E4A23D600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x130 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13C DUP2 PUSH2 0x15D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x157 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168 DUP3 PUSH2 0x16F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0x24 0xAC PUSH32 0x86E6DF1BC3DA8B037D2C1C5335FC2F637317796E3858B084CEA8804464736F6C PUSH4 0x43000807 STOP CALLER ",
"sourceMap": "77:466:0:-:0;;;140:10;108:43;;;;;;;;;;;;;;;;;;;;77:466;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@withdraw_36": {
"entryPoint": 58,
"id": 36,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 307,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 322,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 349,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 367,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:590:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "247:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:1"
},
"nodeType": "YulFunctionCall",
"src": "328:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:1"
},
"nodeType": "YulFunctionCall",
"src": "275:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:1",
"type": ""
}
],
"src": "131:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "404:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "414:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "443:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "425:17:1"
},
"nodeType": "YulFunctionCall",
"src": "425:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "414:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "386:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "396:7:1",
"type": ""
}
],
"src": "359:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "506:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "516:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "531:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "538:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "527:3:1"
},
"nodeType": "YulFunctionCall",
"src": "527:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "516:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "498:7:1",
"type": ""
}
],
"src": "461:126:1"
}
]
},
"contents": "{\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80633ccfd60b14610030575b600080fd5b61003861003a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ca57336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016100c19190610142565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610130573d6000803e3d6000fd5b50565b61013c8161015d565b82525050565b60006020820190506101576000830184610133565b92915050565b60006101688261016f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff8216905091905056fea26469706673582212205924ac7f86e6df1bc3da8b037d2c1c5335fc2f637317796e3858b084cea8804464736f6c63430008070033",
"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 0x3CCFD60B EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCA JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0x8E4A23D600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x130 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13C DUP2 PUSH2 0x15D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x157 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168 DUP3 PUSH2 0x16F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0x24 0xAC PUSH32 0x86E6DF1BC3DA8B037D2C1C5335FC2F637317796E3858B084CEA8804464736F6C PUSH4 0x43000807 STOP CALLER ",
"sourceMap": "77:466:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:337;;;:::i;:::-;;;259:5;;;;;;;;;;245:19;;:10;:19;;;241:231;;461:10;448:24;;;;;;;;;;;:::i;:::-;;;;;;;;241:231;495:5;;;;;;;;;;:14;;:37;510:21;495:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:337::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:96::-;396:7;425:24;443:5;425:24;:::i;:::-;414:35;;359:96;;;:::o;461:126::-;498:7;538:42;531:5;527:54;516:65;;461:126;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "90600",
"executionCost": "24407",
"totalCost": "115007"
},
"external": {
"withdraw()": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 77,
"end": 543,
"name": "MSTORE",
"source": 0
},
{
"begin": 140,
"end": 150,
"name": "CALLER",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 108,
"end": 151,
"name": "DUP1",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 108,
"end": 151,
"name": "EXP",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "DUP2",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "SLOAD",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "DUP2",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 108,
"end": 151,
"name": "MUL",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "NOT",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "AND",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "SWAP1",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "DUP4",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 108,
"end": 151,
"name": "AND",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "MUL",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "OR",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "SWAP1",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "SSTORE",
"source": 0
},
{
"begin": 108,
"end": 151,
"name": "POP",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "ISZERO",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 77,
"end": 543,
"name": "JUMPI",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "REVERT",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 77,
"end": 543,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "POP",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 77,
"end": 543,
"name": "CODECOPY",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 77,
"end": 543,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a26469706673582212205924ac7f86e6df1bc3da8b037d2c1c5335fc2f637317796e3858b084cea8804464736f6c63430008070033",
".code": [
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 77,
"end": 543,
"name": "MSTORE",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "ISZERO",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 77,
"end": 543,
"name": "JUMPI",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "REVERT",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 77,
"end": 543,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "POP",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 77,
"end": 543,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "LT",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 77,
"end": 543,
"name": "JUMPI",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 77,
"end": 543,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 77,
"end": 543,
"name": "SHR",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "3CCFD60B"
},
{
"begin": 77,
"end": 543,
"name": "EQ",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 77,
"end": 543,
"name": "JUMPI",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 77,
"end": 543,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 77,
"end": 543,
"name": "DUP1",
"source": 0
},
{
"begin": 77,
"end": 543,
"name": "REVERT",
"source": 0
},
{
"begin": 203,
"end": 540,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 203,
"end": 540,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 203,
"end": 540,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 203,
"end": 540,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 203,
"end": 540,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 203,
"end": 540,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 203,
"end": 540,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 203,
"end": 540,
"name": "STOP",
"source": 0
},
{
"begin": 203,
"end": 540,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 203,
"end": 540,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 259,
"end": 264,
"name": "DUP1",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "SLOAD",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "SWAP1",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 259,
"end": 264,
"name": "EXP",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "SWAP1",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "DIV",
"source": 0
},
{
"begin": 259,
"end": 264,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 259,
"end": 264,
"name": "AND",
"source": 0
},
{
"begin": 245,
"end": 264,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 245,
"end": 264,
"name": "AND",
"source": 0
},
{
"begin": 245,
"end": 255,
"name": "CALLER",
"source": 0
},
{
"begin": 245,
"end": 264,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 245,
"end": 264,
"name": "AND",
"source": 0
},
{
"begin": 245,
"end": 264,
"name": "EQ",
"source": 0
},
{
"begin": 241,
"end": 472,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 241,
"end": 472,
"name": "JUMPI",
"source": 0
},
{
"begin": 461,
"end": 471,
"name": "CALLER",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 448,
"end": 472,
"name": "MLOAD",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "PUSH",
"source": 0,
"value": "8E4A23D600000000000000000000000000000000000000000000000000000000"
},
{
"begin": 448,
"end": 472,
"name": "DUP2",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "MSTORE",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 448,
"end": 472,
"name": "ADD",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 448,
"end": 472,
"name": "SWAP2",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "SWAP1",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 448,
"end": 472,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 448,
"end": 472,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 448,
"end": 472,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 448,
"end": 472,
"name": "MLOAD",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "DUP1",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "SWAP2",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "SUB",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "SWAP1",
"source": 0
},
{
"begin": 448,
"end": 472,
"name": "REVERT",
"source": 0
},
{
"begin": 241,
"end": 472,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 241,
"end": 472,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 495,
"end": 500,
"name": "DUP1",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "SLOAD",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "SWAP1",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 495,
"end": 500,
"name": "EXP",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "SWAP1",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "DIV",
"source": 0
},
{
"begin": 495,
"end": 500,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 495,
"end": 500,
"name": "AND",
"source": 0
},
{
"begin": 495,
"end": 509,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 495,
"end": 509,
"name": "AND",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 510,
"end": 531,
"name": "SELFBALANCE",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "SWAP1",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP2",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "ISZERO",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "MUL",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "SWAP1",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 495,
"end": 532,
"name": "MLOAD",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 495,
"end": 532,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 495,
"end": 532,
"name": "MLOAD",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP1",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP4",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "SUB",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP2",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP6",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP9",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP9",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "CALL",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "SWAP4",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "POP",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "POP",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "POP",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "POP",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "ISZERO",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "DUP1",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "ISZERO",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 495,
"end": 532,
"name": "JUMPI",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 495,
"end": 532,
"name": "DUP1",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 495,
"end": 532,
"name": "REVERT",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 495,
"end": 532,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 495,
"end": 532,
"name": "POP",
"source": 0
},
{
"begin": 203,
"end": 540,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 7,
"end": 125,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 7,
"end": 125,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 112,
"end": 117,
"name": "DUP2",
"source": 1
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 94,
"end": 118,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 94,
"end": 118,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 94,
"end": 118,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 89,
"end": 92,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 119,
"name": "MSTORE",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 131,
"end": 353,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 131,
"end": 353,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 224,
"end": 228,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 262,
"end": 264,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 251,
"end": 260,
"name": "DUP3",
"source": 1
},
{
"begin": 247,
"end": 265,
"name": "ADD",
"source": 1
},
{
"begin": 239,
"end": 265,
"name": "SWAP1",
"source": 1
},
{
"begin": 239,
"end": 265,
"name": "POP",
"source": 1
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 1,
"value": "18"
},
{
"begin": 343,
"end": 344,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 332,
"end": 341,
"name": "DUP4",
"source": 1
},
{
"begin": 328,
"end": 345,
"name": "ADD",
"source": 1
},
{
"begin": 319,
"end": 325,
"name": "DUP5",
"source": 1
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 1,
"value": "13"
},
{
"begin": 275,
"end": 346,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 275,
"end": 346,
"name": "tag",
"source": 1,
"value": "18"
},
{
"begin": 275,
"end": 346,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "SWAP3",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "SWAP2",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 359,
"end": 455,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 359,
"end": 455,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 396,
"end": 403,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 425,
"end": 449,
"name": "PUSH [tag]",
"source": 1,
"value": "20"
},
{
"begin": 443,
"end": 448,
"name": "DUP3",
"source": 1
},
{
"begin": 425,
"end": 449,
"name": "PUSH [tag]",
"source": 1,
"value": "21"
},
{
"begin": 425,
"end": 449,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 425,
"end": 449,
"name": "tag",
"source": 1,
"value": "20"
},
{
"begin": 425,
"end": 449,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 414,
"end": 449,
"name": "SWAP1",
"source": 1
},
{
"begin": 414,
"end": 449,
"name": "POP",
"source": 1
},
{
"begin": 359,
"end": 455,
"name": "SWAP2",
"source": 1
},
{
"begin": 359,
"end": 455,
"name": "SWAP1",
"source": 1
},
{
"begin": 359,
"end": 455,
"name": "POP",
"source": 1
},
{
"begin": 359,
"end": 455,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 461,
"end": 587,
"name": "tag",
"source": 1,
"value": "21"
},
{
"begin": 461,
"end": 587,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 498,
"end": 505,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 538,
"end": 580,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 531,
"end": 536,
"name": "DUP3",
"source": 1
},
{
"begin": 527,
"end": 581,
"name": "AND",
"source": 1
},
{
"begin": 516,
"end": 581,
"name": "SWAP1",
"source": 1
},
{
"begin": 516,
"end": 581,
"name": "POP",
"source": 1
},
{
"begin": 461,
"end": 587,
"name": "SWAP2",
"source": 1
},
{
"begin": 461,
"end": 587,
"name": "SWAP1",
"source": 1
},
{
"begin": 461,
"end": 587,
"name": "POP",
"source": 1
},
{
"begin": 461,
"end": 587,
"name": "JUMP",
"source": 1,
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"withdraw()": "3ccfd60b"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/VendingMachine.sol\":\"VendingMachine\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/VendingMachine.sol\":{\"keccak256\":\"0x45d31ede5f97f9c55addc6609cca0a5ce2e545e1673632406a668b40ce0e7f3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78014aaf82f64236f84ae8a04102ad463378e02979468e3738595b5c4e8a1ba2\",\"dweb:/ipfs/QmWNYq5cwXvaN54zepL8J8yBqXGNmQ3TLksxjJmS5Twj6F\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 8,
"contract": "contracts/01.Solidity-8.0新特性/VendingMachine.sol:VendingMachine",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address_payable"
}
],
"types": {
"t_address_payable": {
"encoding": "inplace",
"label": "address payable",
"numberOfBytes": "20"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/01.Solidity-8.0新特性/VendingMachine.sol": {
"ast": {
"absolutePath": "contracts/01.Solidity-8.0新特性/VendingMachine.sol",
"exportedSymbols": {
"VendingMachine": [
37
]
},
"id": 38,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8"
],
"nodeType": "PragmaDirective",
"src": "33:21:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 37,
"linearizedBaseContracts": [
37
],
"name": "VendingMachine",
"nameLocation": "86:14:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 8,
"mutability": "mutable",
"name": "owner",
"nameLocation": "124:5:0",
"nodeType": "VariableDeclaration",
"scope": 37,
"src": "108:43:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "108:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": {
"arguments": [
{
"expression": {
"id": 5,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "140:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 6,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "140:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 4,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "132:8:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_payable_$",
"typeString": "type(address payable)"
},
"typeName": {
"id": 3,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "132:8:0",
"stateMutability": "payable",
"typeDescriptions": {}
}
},
"id": 7,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "132:19:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
},
{
"id": 12,
"name": "Unauthorized",
"nameLocation": "166:12:0",
"nodeType": "ErrorDefinition",
"parameters": {
"id": 11,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 10,
"mutability": "mutable",
"name": "caller",
"nameLocation": "187:6:0",
"nodeType": "VariableDeclaration",
"scope": 12,
"src": "179:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 9,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "179:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "178:16:0"
},
"src": "160:35:0"
},
{
"body": {
"id": 35,
"nodeType": "Block",
"src": "230:310:0",
"statements": [
{
"condition": {
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 18,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 15,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "245:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 16,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "245:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 17,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "259:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "245:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 24,
"nodeType": "IfStatement",
"src": "241:231:0",
"trueBody": {
"errorCall": {
"arguments": [
{
"expression": {
"id": 20,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "461:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 21,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "461:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 19,
"name": "Unauthorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12,
"src": "448:12:0",
"typeDescriptions": {
"typeIdentifier": "t_function_error_pure$_t_address_$returns$__$",
"typeString": "function (address) pure"
}
},
"id": 22,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "448:24:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 23,
"nodeType": "RevertStatement",
"src": "441:31:0"
}
},
{
"expression": {
"arguments": [
{
"expression": {
"arguments": [
{
"id": 30,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "518:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_VendingMachine_$37",
"typeString": "contract VendingMachine"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_VendingMachine_$37",
"typeString": "contract VendingMachine"
}
],
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "510:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 28,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "510:7:0",
"typeDescriptions": {}
}
},
"id": 31,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "510:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "balance",
"nodeType": "MemberAccess",
"src": "510:21:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 25,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "495:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 27,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "495:14:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 33,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "495:37:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 34,
"nodeType": "ExpressionStatement",
"src": "495:37:0"
}
]
},
"functionSelector": "3ccfd60b",
"id": 36,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "212:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 13,
"nodeType": "ParameterList",
"parameters": [],
"src": "220:2:0"
},
"returnParameters": {
"id": 14,
"nodeType": "ParameterList",
"parameters": [],
"src": "230:0:0"
},
"scope": 37,
"src": "203:337:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 38,
"src": "77:466:0",
"usedErrors": [
12
]
}
],
"src": "33:510:0"
},
"id": 0
}
}
}
}
{
"id": "863c86e192b2cc3910d142b482d0b42d",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.7",
"solcLongVersion": "0.8.7+commit.e28d00a7",
"input": {
"language": "Solidity",
"sources": {
"contracts/01.Solidity-8.0新特性/TestHelper.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8;\r\n\r\nimport { helper as h1 } from \"./Sol.sol\";\r\n\r\n// functions outside contract\r\n\r\nfunction helper(uint x) view returns (uint) {\r\n return h1(x);\r\n}\r\n\r\ncontract TestHelper {\r\n function test() external view returns (uint) {\r\n return helper(123);\r\n }\r\n}"
},
"contracts/01.Solidity-8.0新特性/Sol.sol": {
"content": "function helper(uint x) view returns (uint) {\r\n return x * 2;\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/01.Solidity-8.0新特性/TestHelper.sol": {
"TestHelper": {
"abi": [
{
"inputs": [],
"name": "test",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":207:319 contract TestHelper {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":207:319 contract TestHelper {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf8a8fd6d\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":234:316 function test() external view returns (uint) {\r... */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n mload(0x40)\n tag_6\n swap2\n swap1\n tag_7\n jump\t// in\n tag_6:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_5:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":273:277 uint */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":297:308 helper(123) */\n tag_9\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":304:307 123 */\n 0x7b\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":297:303 helper */\n tag_10\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":297:308 helper(123) */\n jump\t// in\n tag_9:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":290:308 return helper(123) */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":234:316 function test() external view returns (uint) {\r... */\n swap1\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":136:203 function helper(uint x) view returns (uint) {\r... */\n tag_10:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":174:178 uint */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":194:199 h1(x) */\n tag_12\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":197:198 x */\n dup3\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":194:196 h1 */\n tag_13\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":194:199 h1(x) */\n jump\t// in\n tag_12:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":187:199 return h1(x) */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/TestHelper.sol\":136:203 function helper(uint x) view returns (uint) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":0:67 function helper(uint x) view returns (uint) {\r... */\n tag_13:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":38:42 uint */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":62:63 2 */\n 0x02\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":58:59 x */\n dup3\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":58:63 x * 2 */\n tag_15\n swap2\n swap1\n tag_16\n jump\t// in\n tag_15:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":51:63 return x * 2 */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":0:67 function helper(uint x) view returns (uint) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_18:\n /* \"#utility.yul\":94:118 */\n tag_20\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_21\n jump\t// in\n tag_20:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_7:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_23\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_18\n jump\t// in\n tag_23:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:707 */\n tag_16:\n /* \"#utility.yul\":399:406 */\n 0x00\n /* \"#utility.yul\":422:442 */\n tag_25\n /* \"#utility.yul\":440:441 */\n dup3\n /* \"#utility.yul\":422:442 */\n tag_21\n jump\t// in\n tag_25:\n /* \"#utility.yul\":417:442 */\n swap2\n pop\n /* \"#utility.yul\":456:476 */\n tag_26\n /* \"#utility.yul\":474:475 */\n dup4\n /* \"#utility.yul\":456:476 */\n tag_21\n jump\t// in\n tag_26:\n /* \"#utility.yul\":451:476 */\n swap3\n pop\n /* \"#utility.yul\":644:645 */\n dup2\n /* \"#utility.yul\":576:642 */\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":572:646 */\n div\n /* \"#utility.yul\":569:570 */\n dup4\n /* \"#utility.yul\":566:647 */\n gt\n /* \"#utility.yul\":561:562 */\n dup3\n /* \"#utility.yul\":554:563 */\n iszero\n /* \"#utility.yul\":547:564 */\n iszero\n /* \"#utility.yul\":543:648 */\n and\n /* \"#utility.yul\":540:671 */\n iszero\n tag_27\n jumpi\n /* \"#utility.yul\":651:669 */\n tag_28\n tag_29\n jump\t// in\n tag_28:\n /* \"#utility.yul\":540:671 */\n tag_27:\n /* \"#utility.yul\":699:700 */\n dup3\n /* \"#utility.yul\":696:697 */\n dup3\n /* \"#utility.yul\":692:701 */\n mul\n /* \"#utility.yul\":681:701 */\n swap1\n pop\n /* \"#utility.yul\":359:707 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":713:790 */\n tag_21:\n /* \"#utility.yul\":750:757 */\n 0x00\n /* \"#utility.yul\":779:784 */\n dup2\n /* \"#utility.yul\":768:784 */\n swap1\n pop\n /* \"#utility.yul\":713:790 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":796:976 */\n tag_29:\n /* \"#utility.yul\":844:921 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":841:842 */\n 0x00\n /* \"#utility.yul\":834:922 */\n mstore\n /* \"#utility.yul\":941:945 */\n 0x11\n /* \"#utility.yul\":938:939 */\n 0x04\n /* \"#utility.yul\":931:946 */\n mstore\n /* \"#utility.yul\":965:969 */\n 0x24\n /* \"#utility.yul\":962:963 */\n 0x00\n /* \"#utility.yul\":955:970 */\n revert\n\n auxdata: 0xa264697066735822122054d0213278ca2d45e9603c0865626500e693dc309f38cf28f7c91b846d90801164736f6c63430008070033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061017a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861004e565b6040516100459190610096565b60405180910390f35b600061005a607b61005f565b905090565b600061006a82610071565b9050919050565b600060028261008091906100b1565b9050919050565b6100908161010b565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc8261010b565b91506100c78361010b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610100576100ff610115565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122054d0213278ca2d45e9603c0865626500e693dc309f38cf28f7c91b846d90801164736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A 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 0xF8A8FD6D EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x5A PUSH1 0x7B PUSH2 0x5F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A DUP3 PUSH2 0x71 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x10B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x10B JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x10B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x100 JUMPI PUSH2 0xFF PUSH2 0x115 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xD0 0x21 ORIGIN PUSH25 0xCA2D45E9603C0865626500E693DC309F38CF28F7C91B846D90 DUP1 GT PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "207:112:1:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@helper_12": {
"entryPoint": 113,
"id": 12,
"parameterSlots": 1,
"returnSlots": 1
},
"@helper_28": {
"entryPoint": 95,
"id": 28,
"parameterSlots": 1,
"returnSlots": 1
},
"@test_38": {
"entryPoint": 78,
"id": 38,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 135,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 150,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 177,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 267,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 277,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:979:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "94:17:2"
},
"nodeType": "YulFunctionCall",
"src": "94:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:2"
},
"nodeType": "YulFunctionCall",
"src": "82:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:2",
"type": ""
}
],
"src": "7:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:2"
},
"nodeType": "YulFunctionCall",
"src": "247:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:2"
},
"nodeType": "YulFunctionCall",
"src": "328:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:2"
},
"nodeType": "YulFunctionCall",
"src": "275:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:2",
"type": ""
}
],
"src": "131:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "407:300:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "417:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "440:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "422:17:2"
},
"nodeType": "YulFunctionCall",
"src": "422:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "417:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "451:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "474:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "456:17:2"
},
"nodeType": "YulFunctionCall",
"src": "456:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "451:1:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "649:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "651:16:2"
},
"nodeType": "YulFunctionCall",
"src": "651:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "651:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "561:1:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "554:6:2"
},
"nodeType": "YulFunctionCall",
"src": "554:9:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "547:6:2"
},
"nodeType": "YulFunctionCall",
"src": "547:17:2"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "569:1:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "644:1:2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "572:3:2"
},
"nodeType": "YulFunctionCall",
"src": "572:74:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "566:2:2"
},
"nodeType": "YulFunctionCall",
"src": "566:81:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "543:3:2"
},
"nodeType": "YulFunctionCall",
"src": "543:105:2"
},
"nodeType": "YulIf",
"src": "540:131:2"
},
{
"nodeType": "YulAssignment",
"src": "681:20:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "696:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "699:1:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "692:3:2"
},
"nodeType": "YulFunctionCall",
"src": "692:9:2"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "681:7:2"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "390:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "393:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "399:7:2",
"type": ""
}
],
"src": "359:348:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "758:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "768:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "779:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "768:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "740:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "750:7:2",
"type": ""
}
],
"src": "713:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "824:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "841:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "844:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "834:6:2"
},
"nodeType": "YulFunctionCall",
"src": "834:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "834:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "938:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "941:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "931:6:2"
},
"nodeType": "YulFunctionCall",
"src": "931:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "931:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "962:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "965:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "955:6:2"
},
"nodeType": "YulFunctionCall",
"src": "955:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "955:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "796:180:2"
}
]
},
"contents": "{\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 checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861004e565b6040516100459190610096565b60405180910390f35b600061005a607b61005f565b905090565b600061006a82610071565b9050919050565b600060028261008091906100b1565b9050919050565b6100908161010b565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc8261010b565b91506100c78361010b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610100576100ff610115565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122054d0213278ca2d45e9603c0865626500e693dc309f38cf28f7c91b846d90801164736f6c63430008070033",
"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 0xF8A8FD6D EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x5A PUSH1 0x7B PUSH2 0x5F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A DUP3 PUSH2 0x71 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x10B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x10B JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x10B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x100 JUMPI PUSH2 0xFF PUSH2 0x115 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xD0 0x21 ORIGIN PUSH25 0xCA2D45E9603C0865626500E693DC309F38CF28F7C91B846D90 DUP1 GT PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "207:112:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;273:4;297:11;304:3;297:6;:11::i;:::-;290:18;;234:82;:::o;136:67::-;174:4;194:5;197:1;194:2;:5::i;:::-;187:12;;136:67;;;:::o;0::0:-;38:4;62:1;58;:5;;;;:::i;:::-;51:12;;0:67;;;:::o;7:118:2:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:348::-;399:7;422:20;440:1;422:20;:::i;:::-;417:25;;456:20;474:1;456:20;:::i;:::-;451:25;;644:1;576:66;572:74;569:1;566:81;561:1;554:9;547:17;543:105;540:131;;;651:18;;:::i;:::-;540:131;699:1;696;692:9;681:20;;359:348;;;;:::o;713:77::-;750:7;779:5;768:16;;713:77;;;:::o;796:180::-;844:77;841:1;834:88;941:4;938:1;931:15;965:4;962:1;955:15"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "75600",
"executionCost": "123",
"totalCost": "75723"
},
"external": {
"test()": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 207,
"end": 319,
"name": "MSTORE",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "CALLVALUE",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "ISZERO",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH [tag]",
"source": 1,
"value": "1"
},
{
"begin": 207,
"end": 319,
"name": "JUMPI",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "REVERT",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "tag",
"source": 1,
"value": "1"
},
{
"begin": 207,
"end": 319,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "POP",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH #[$]",
"source": 1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH [$]",
"source": 1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 207,
"end": 319,
"name": "CODECOPY",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 207,
"end": 319,
"name": "RETURN",
"source": 1
}
],
".data": {
"0": {
".auxdata": "a264697066735822122054d0213278ca2d45e9603c0865626500e693dc309f38cf28f7c91b846d90801164736f6c63430008070033",
".code": [
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "80"
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 207,
"end": 319,
"name": "MSTORE",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "CALLVALUE",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "ISZERO",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH [tag]",
"source": 1,
"value": "1"
},
{
"begin": 207,
"end": 319,
"name": "JUMPI",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "REVERT",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "tag",
"source": 1,
"value": "1"
},
{
"begin": 207,
"end": 319,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "POP",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 207,
"end": 319,
"name": "CALLDATASIZE",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "LT",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH [tag]",
"source": 1,
"value": "2"
},
{
"begin": 207,
"end": 319,
"name": "JUMPI",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 207,
"end": 319,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 207,
"end": 319,
"name": "SHR",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "F8A8FD6D"
},
{
"begin": 207,
"end": 319,
"name": "EQ",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH [tag]",
"source": 1,
"value": "3"
},
{
"begin": 207,
"end": 319,
"name": "JUMPI",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "tag",
"source": 1,
"value": "2"
},
{
"begin": 207,
"end": 319,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 207,
"end": 319,
"name": "DUP1",
"source": 1
},
{
"begin": 207,
"end": 319,
"name": "REVERT",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "tag",
"source": 1,
"value": "3"
},
{
"begin": 234,
"end": 316,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "PUSH [tag]",
"source": 1,
"value": "4"
},
{
"begin": 234,
"end": 316,
"name": "PUSH [tag]",
"source": 1,
"value": "5"
},
{
"begin": 234,
"end": 316,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 234,
"end": 316,
"name": "tag",
"source": 1,
"value": "4"
},
{
"begin": 234,
"end": 316,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 234,
"end": 316,
"name": "MLOAD",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "PUSH [tag]",
"source": 1,
"value": "6"
},
{
"begin": 234,
"end": 316,
"name": "SWAP2",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "SWAP1",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "PUSH [tag]",
"source": 1,
"value": "7"
},
{
"begin": 234,
"end": 316,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 234,
"end": 316,
"name": "tag",
"source": 1,
"value": "6"
},
{
"begin": 234,
"end": 316,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 234,
"end": 316,
"name": "MLOAD",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "DUP1",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "SWAP2",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "SUB",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "SWAP1",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "RETURN",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "tag",
"source": 1,
"value": "5"
},
{
"begin": 234,
"end": 316,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 273,
"end": 277,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 297,
"end": 308,
"name": "PUSH [tag]",
"source": 1,
"value": "9"
},
{
"begin": 304,
"end": 307,
"name": "PUSH",
"source": 1,
"value": "7B"
},
{
"begin": 297,
"end": 303,
"name": "PUSH [tag]",
"source": 1,
"value": "10"
},
{
"begin": 297,
"end": 308,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 297,
"end": 308,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 297,
"end": 308,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 290,
"end": 308,
"name": "SWAP1",
"source": 1
},
{
"begin": 290,
"end": 308,
"name": "POP",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "SWAP1",
"source": 1
},
{
"begin": 234,
"end": 316,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 136,
"end": 203,
"name": "tag",
"source": 1,
"value": "10"
},
{
"begin": 136,
"end": 203,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 174,
"end": 178,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 194,
"end": 199,
"name": "PUSH [tag]",
"source": 1,
"value": "12"
},
{
"begin": 197,
"end": 198,
"name": "DUP3",
"source": 1
},
{
"begin": 194,
"end": 196,
"name": "PUSH [tag]",
"source": 1,
"value": "13"
},
{
"begin": 194,
"end": 199,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 194,
"end": 199,
"name": "tag",
"source": 1,
"value": "12"
},
{
"begin": 194,
"end": 199,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 187,
"end": 199,
"name": "SWAP1",
"source": 1
},
{
"begin": 187,
"end": 199,
"name": "POP",
"source": 1
},
{
"begin": 136,
"end": 203,
"name": "SWAP2",
"source": 1
},
{
"begin": 136,
"end": 203,
"name": "SWAP1",
"source": 1
},
{
"begin": 136,
"end": 203,
"name": "POP",
"source": 1
},
{
"begin": 136,
"end": 203,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 0,
"end": 67,
"name": "tag",
"source": 0,
"value": "13"
},
{
"begin": 0,
"end": 67,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 38,
"end": 42,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 62,
"end": 63,
"name": "PUSH",
"source": 0,
"value": "2"
},
{
"begin": 58,
"end": 59,
"name": "DUP3",
"source": 0
},
{
"begin": 58,
"end": 63,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 58,
"end": 63,
"name": "SWAP2",
"source": 0
},
{
"begin": 58,
"end": 63,
"name": "SWAP1",
"source": 0
},
{
"begin": 58,
"end": 63,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 58,
"end": 63,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 58,
"end": 63,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 58,
"end": 63,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 51,
"end": 63,
"name": "SWAP1",
"source": 0
},
{
"begin": 51,
"end": 63,
"name": "POP",
"source": 0
},
{
"begin": 0,
"end": 67,
"name": "SWAP2",
"source": 0
},
{
"begin": 0,
"end": 67,
"name": "SWAP1",
"source": 0
},
{
"begin": 0,
"end": 67,
"name": "POP",
"source": 0
},
{
"begin": 0,
"end": 67,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 7,
"end": 125,
"name": "tag",
"source": 2,
"value": "18"
},
{
"begin": 7,
"end": 125,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 2,
"value": "20"
},
{
"begin": 112,
"end": 117,
"name": "DUP2",
"source": 2
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 2,
"value": "21"
},
{
"begin": 94,
"end": 118,
"name": "JUMP",
"source": 2,
"value": "[in]"
},
{
"begin": 94,
"end": 118,
"name": "tag",
"source": 2,
"value": "20"
},
{
"begin": 94,
"end": 118,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 89,
"end": 92,
"name": "DUP3",
"source": 2
},
{
"begin": 82,
"end": 119,
"name": "MSTORE",
"source": 2
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 2
},
{
"begin": 7,
"end": 125,
"name": "JUMP",
"source": 2,
"value": "[out]"
},
{
"begin": 131,
"end": 353,
"name": "tag",
"source": 2,
"value": "7"
},
{
"begin": 131,
"end": 353,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 224,
"end": 228,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 262,
"end": 264,
"name": "PUSH",
"source": 2,
"value": "20"
},
{
"begin": 251,
"end": 260,
"name": "DUP3",
"source": 2
},
{
"begin": 247,
"end": 265,
"name": "ADD",
"source": 2
},
{
"begin": 239,
"end": 265,
"name": "SWAP1",
"source": 2
},
{
"begin": 239,
"end": 265,
"name": "POP",
"source": 2
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 2,
"value": "23"
},
{
"begin": 343,
"end": 344,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 332,
"end": 341,
"name": "DUP4",
"source": 2
},
{
"begin": 328,
"end": 345,
"name": "ADD",
"source": 2
},
{
"begin": 319,
"end": 325,
"name": "DUP5",
"source": 2
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 2,
"value": "18"
},
{
"begin": 275,
"end": 346,
"name": "JUMP",
"source": 2,
"value": "[in]"
},
{
"begin": 275,
"end": 346,
"name": "tag",
"source": 2,
"value": "23"
},
{
"begin": 275,
"end": 346,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 131,
"end": 353,
"name": "SWAP3",
"source": 2
},
{
"begin": 131,
"end": 353,
"name": "SWAP2",
"source": 2
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 2
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 2
},
{
"begin": 131,
"end": 353,
"name": "JUMP",
"source": 2,
"value": "[out]"
},
{
"begin": 359,
"end": 707,
"name": "tag",
"source": 2,
"value": "16"
},
{
"begin": 359,
"end": 707,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 399,
"end": 406,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 422,
"end": 442,
"name": "PUSH [tag]",
"source": 2,
"value": "25"
},
{
"begin": 440,
"end": 441,
"name": "DUP3",
"source": 2
},
{
"begin": 422,
"end": 442,
"name": "PUSH [tag]",
"source": 2,
"value": "21"
},
{
"begin": 422,
"end": 442,
"name": "JUMP",
"source": 2,
"value": "[in]"
},
{
"begin": 422,
"end": 442,
"name": "tag",
"source": 2,
"value": "25"
},
{
"begin": 422,
"end": 442,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 417,
"end": 442,
"name": "SWAP2",
"source": 2
},
{
"begin": 417,
"end": 442,
"name": "POP",
"source": 2
},
{
"begin": 456,
"end": 476,
"name": "PUSH [tag]",
"source": 2,
"value": "26"
},
{
"begin": 474,
"end": 475,
"name": "DUP4",
"source": 2
},
{
"begin": 456,
"end": 476,
"name": "PUSH [tag]",
"source": 2,
"value": "21"
},
{
"begin": 456,
"end": 476,
"name": "JUMP",
"source": 2,
"value": "[in]"
},
{
"begin": 456,
"end": 476,
"name": "tag",
"source": 2,
"value": "26"
},
{
"begin": 456,
"end": 476,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 451,
"end": 476,
"name": "SWAP3",
"source": 2
},
{
"begin": 451,
"end": 476,
"name": "POP",
"source": 2
},
{
"begin": 644,
"end": 645,
"name": "DUP2",
"source": 2
},
{
"begin": 576,
"end": 642,
"name": "PUSH",
"source": 2,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 572,
"end": 646,
"name": "DIV",
"source": 2
},
{
"begin": 569,
"end": 570,
"name": "DUP4",
"source": 2
},
{
"begin": 566,
"end": 647,
"name": "GT",
"source": 2
},
{
"begin": 561,
"end": 562,
"name": "DUP3",
"source": 2
},
{
"begin": 554,
"end": 563,
"name": "ISZERO",
"source": 2
},
{
"begin": 547,
"end": 564,
"name": "ISZERO",
"source": 2
},
{
"begin": 543,
"end": 648,
"name": "AND",
"source": 2
},
{
"begin": 540,
"end": 671,
"name": "ISZERO",
"source": 2
},
{
"begin": 540,
"end": 671,
"name": "PUSH [tag]",
"source": 2,
"value": "27"
},
{
"begin": 540,
"end": 671,
"name": "JUMPI",
"source": 2
},
{
"begin": 651,
"end": 669,
"name": "PUSH [tag]",
"source": 2,
"value": "28"
},
{
"begin": 651,
"end": 669,
"name": "PUSH [tag]",
"source": 2,
"value": "29"
},
{
"begin": 651,
"end": 669,
"name": "JUMP",
"source": 2,
"value": "[in]"
},
{
"begin": 651,
"end": 669,
"name": "tag",
"source": 2,
"value": "28"
},
{
"begin": 651,
"end": 669,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 540,
"end": 671,
"name": "tag",
"source": 2,
"value": "27"
},
{
"begin": 540,
"end": 671,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 699,
"end": 700,
"name": "DUP3",
"source": 2
},
{
"begin": 696,
"end": 697,
"name": "DUP3",
"source": 2
},
{
"begin": 692,
"end": 701,
"name": "MUL",
"source": 2
},
{
"begin": 681,
"end": 701,
"name": "SWAP1",
"source": 2
},
{
"begin": 681,
"end": 701,
"name": "POP",
"source": 2
},
{
"begin": 359,
"end": 707,
"name": "SWAP3",
"source": 2
},
{
"begin": 359,
"end": 707,
"name": "SWAP2",
"source": 2
},
{
"begin": 359,
"end": 707,
"name": "POP",
"source": 2
},
{
"begin": 359,
"end": 707,
"name": "POP",
"source": 2
},
{
"begin": 359,
"end": 707,
"name": "JUMP",
"source": 2,
"value": "[out]"
},
{
"begin": 713,
"end": 790,
"name": "tag",
"source": 2,
"value": "21"
},
{
"begin": 713,
"end": 790,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 750,
"end": 757,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 779,
"end": 784,
"name": "DUP2",
"source": 2
},
{
"begin": 768,
"end": 784,
"name": "SWAP1",
"source": 2
},
{
"begin": 768,
"end": 784,
"name": "POP",
"source": 2
},
{
"begin": 713,
"end": 790,
"name": "SWAP2",
"source": 2
},
{
"begin": 713,
"end": 790,
"name": "SWAP1",
"source": 2
},
{
"begin": 713,
"end": 790,
"name": "POP",
"source": 2
},
{
"begin": 713,
"end": 790,
"name": "JUMP",
"source": 2,
"value": "[out]"
},
{
"begin": 796,
"end": 976,
"name": "tag",
"source": 2,
"value": "29"
},
{
"begin": 796,
"end": 976,
"name": "JUMPDEST",
"source": 2
},
{
"begin": 844,
"end": 921,
"name": "PUSH",
"source": 2,
"value": "4E487B7100000000000000000000000000000000000000000000000000000000"
},
{
"begin": 841,
"end": 842,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 834,
"end": 922,
"name": "MSTORE",
"source": 2
},
{
"begin": 941,
"end": 945,
"name": "PUSH",
"source": 2,
"value": "11"
},
{
"begin": 938,
"end": 939,
"name": "PUSH",
"source": 2,
"value": "4"
},
{
"begin": 931,
"end": 946,
"name": "MSTORE",
"source": 2
},
{
"begin": 965,
"end": 969,
"name": "PUSH",
"source": 2,
"value": "24"
},
{
"begin": 962,
"end": 963,
"name": "PUSH",
"source": 2,
"value": "0"
},
{
"begin": 955,
"end": 970,
"name": "REVERT",
"source": 2
}
]
}
}
},
"methodIdentifiers": {
"test()": "f8a8fd6d"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"test\",\"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/01.Solidity-8.0\\u65b0\\u7279\\u6027/TestHelper.sol\":\"TestHelper\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/Sol.sol\":{\"keccak256\":\"0x3cddafa0a550b4d798c70e210ab5ecf8ad6db01c8e0e66ab2065484fbd6352b9\",\"urls\":[\"bzz-raw://4d7b487be386737b7b82f18e6f65d88014a1fd02f5bd6aeb6fbb4468318528dc\",\"dweb:/ipfs/QmVrh7Lnz2ENjHUKcGGVX26B9wbyaGFyFmmWSe1GQzksUr\"]},\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/TestHelper.sol\":{\"keccak256\":\"0xbdfc5a58b306dddfce3fb1c1ccb5b6e78aff66216c6ced32a09676bb15d52307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63795a3eacebb5be5a4f5f3211620da32a75ae7954ca3fc081d01a5e667fd4c5\",\"dweb:/ipfs/QmWHxFLxTTVJYcWWspE4jJh2ibGGAakEhEttP7UJiUkVRw\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"errors": [
{
"component": "general",
"errorCode": "1878",
"formattedMessage": "Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/01.Solidity-8.0新特性/Sol.sol\n\n",
"message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: <SPDX-License>\" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.",
"severity": "warning",
"sourceLocation": {
"end": -1,
"file": "contracts/01.Solidity-8.0新特性/Sol.sol",
"start": -1
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "3420",
"formattedMessage": "Warning: Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.7;\"\n--> contracts/01.Solidity-8.0新特性/Sol.sol\n\n",
"message": "Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.7;\"",
"severity": "warning",
"sourceLocation": {
"end": -1,
"file": "contracts/01.Solidity-8.0新特性/Sol.sol",
"start": -1
},
"type": "Warning"
},
{
"component": "general",
"errorCode": "2018",
"formattedMessage": "Warning: Function state mutability can be restricted to pure\n --> contracts/01.Solidity-8.0新特性/Sol.sol:1:1:\n |\n1 | function helper(uint x) view returns (uint) {\n | ^ (Relevant source part starts here and spans across multiple lines).\n\n",
"message": "Function state mutability can be restricted to pure",
"severity": "warning",
"sourceLocation": {
"end": 67,
"file": "contracts/01.Solidity-8.0新特性/Sol.sol",
"start": 0
},
"type": "Warning"
}
],
"sources": {
"contracts/01.Solidity-8.0新特性/Sol.sol": {
"ast": {
"absolutePath": "contracts/01.Solidity-8.0新特性/Sol.sol",
"exportedSymbols": {
"helper": [
12
]
},
"id": 13,
"nodeType": "SourceUnit",
"nodes": [
{
"body": {
"id": 11,
"nodeType": "Block",
"src": "44:23:0",
"statements": [
{
"expression": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 9,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 7,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2,
"src": "58:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"hexValue": "32",
"id": 8,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "62:1:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"src": "58:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 6,
"id": 10,
"nodeType": "Return",
"src": "51:12:0"
}
]
},
"id": 12,
"implemented": true,
"kind": "freeFunction",
"modifiers": [],
"name": "helper",
"nameLocation": "9:6:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 3,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2,
"mutability": "mutable",
"name": "x",
"nameLocation": "21:1:0",
"nodeType": "VariableDeclaration",
"scope": 12,
"src": "16:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "16:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "15:8:0"
},
"returnParameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 12,
"src": "38:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "38:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "37:6:0"
},
"scope": 13,
"src": "0:67:0",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
}
],
"src": "0:67:0"
},
"id": 0
},
"contracts/01.Solidity-8.0新特性/TestHelper.sol": {
"ast": {
"absolutePath": "contracts/01.Solidity-8.0新特性/TestHelper.sol",
"exportedSymbols": {
"TestHelper": [
39
],
"h1": [
12
],
"helper": [
28
]
},
"id": 40,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 14,
"literals": [
"solidity",
"^",
"0.8"
],
"nodeType": "PragmaDirective",
"src": "33:21:1"
},
{
"absolutePath": "contracts/01.Solidity-8.0新特性/Sol.sol",
"file": "./Sol.sol",
"id": 16,
"nameLocation": "-1:-1:-1",
"nodeType": "ImportDirective",
"scope": 40,
"sourceUnit": 13,
"src": "58:41:1",
"symbolAliases": [
{
"foreign": {
"id": 15,
"name": "helper",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"src": "67:6:1",
"typeDescriptions": {}
},
"local": "h1",
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"body": {
"id": 27,
"nodeType": "Block",
"src": "180:23:1",
"statements": [
{
"expression": {
"arguments": [
{
"id": 24,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 18,
"src": "197:1:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 23,
"name": "h1",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 12,
"src": "194:2:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 25,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "194:5:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 22,
"id": 26,
"nodeType": "Return",
"src": "187:12:1"
}
]
},
"id": 28,
"implemented": true,
"kind": "freeFunction",
"modifiers": [],
"name": "helper",
"nameLocation": "145:6:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 19,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 18,
"mutability": "mutable",
"name": "x",
"nameLocation": "157:1:1",
"nodeType": "VariableDeclaration",
"scope": 28,
"src": "152:6:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 17,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "152:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "151:8:1"
},
"returnParameters": {
"id": 22,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 21,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 28,
"src": "174:4:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 20,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "174:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "173:6:1"
},
"scope": 40,
"src": "136:67:1",
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 39,
"linearizedBaseContracts": [
39
],
"name": "TestHelper",
"nameLocation": "216:10:1",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 37,
"nodeType": "Block",
"src": "279:37:1",
"statements": [
{
"expression": {
"arguments": [
{
"hexValue": "313233",
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "304:3:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_123_by_1",
"typeString": "int_const 123"
},
"value": "123"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_123_by_1",
"typeString": "int_const 123"
}
],
"id": 33,
"name": "helper",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28,
"src": "297:6:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) view returns (uint256)"
}
},
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "297:11:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 32,
"id": 36,
"nodeType": "Return",
"src": "290:18:1"
}
]
},
"functionSelector": "f8a8fd6d",
"id": 38,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "test",
"nameLocation": "243:4:1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [],
"src": "247:2:1"
},
"returnParameters": {
"id": 32,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 31,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 38,
"src": "273:4:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 30,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "273:4:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "272:6:1"
},
"scope": 39,
"src": "234:82:1",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
}
],
"scope": 40,
"src": "207:112:1",
"usedErrors": []
}
],
"src": "33:286:1"
},
"id": 1
}
}
}
}
{
"id": "b4a3407ac1ed7bb8bf8a53c32abef6ce",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.7",
"solcLongVersion": "0.8.7+commit.e28d00a7",
"input": {
"language": "Solidity",
"sources": {
"contracts/01.Solidity-8.0新特性/Create2.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8;\r\n\r\n\r\ncontract D {\r\n uint public x;\r\n constructor(uint a) {\r\n x = a;\r\n }\r\n}\r\n\r\ncontract Create2 {\r\n function getBytes32(uint salt) external pure returns (bytes32) {\r\n return bytes32(salt);\r\n }\r\n\r\n function getAddress(bytes32 salt, uint arg) external view returns (address) {\r\n address addr = address(uint160(uint(keccak256(abi.encodePacked(\r\n bytes1(0xff),\r\n address(this),\r\n salt,\r\n keccak256(abi.encodePacked(\r\n type(D).creationCode,\r\n arg\r\n ))\r\n )))));\r\n \r\n return addr;\r\n }\r\n\r\n address public deployedAddr;\r\n\r\n function createDSalted(bytes32 salt, uint arg) public {\r\n D d = new D{salt: salt}(arg);\r\n deployedAddr = address(d);\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/01.Solidity-8.0新特性/Create2.sol": {
"Create2": {
"abi": [
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "arg",
"type": "uint256"
}
],
"name": "createDSalted",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deployedAddr",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "arg",
"type": "uint256"
}
],
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "salt",
"type": "uint256"
}
],
"name": "getBytes32",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":149:863 contract Create2 {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":149:863 contract Create2 {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x0bd38f2f\n eq\n tag_3\n jumpi\n dup1\n 0x24dfc9d7\n eq\n tag_4\n jumpi\n dup1\n 0xbbd6dd6b\n eq\n tag_5\n jumpi\n dup1\n 0xd1524f74\n eq\n tag_6\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":723:860 function createDSalted(bytes32 salt, uint arg) public {\r... */\n tag_3:\n tag_7\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n tag_10\n jump\t// in\n tag_7:\n stop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":173:275 function getBytes32(uint salt) external pure returns (bytes32) {\r... */\n tag_4:\n tag_11\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_12\n swap2\n swap1\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n mload(0x40)\n tag_15\n swap2\n swap1\n tag_16\n jump\t// in\n tag_15:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":283:679 function getAddress(bytes32 salt, uint arg) external view returns (address) {\r... */\n tag_5:\n tag_17\n 0x04\n dup1\n calldatasize\n sub\n dup2\n add\n swap1\n tag_18\n swap2\n swap1\n tag_9\n jump\t// in\n tag_18:\n tag_19\n jump\t// in\n tag_17:\n mload(0x40)\n tag_20\n swap2\n swap1\n tag_21\n jump\t// in\n tag_20:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":687:714 address public deployedAddr */\n tag_6:\n tag_22\n tag_23\n jump\t// in\n tag_22:\n mload(0x40)\n tag_24\n swap2\n swap1\n tag_21\n jump\t// in\n tag_24:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":723:860 function createDSalted(bytes32 salt, uint arg) public {\r... */\n tag_10:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":788:791 D d */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":806:810 salt */\n dup3\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":812:815 arg */\n dup3\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":794:816 new D{salt: salt}(arg) */\n mload(0x40)\n tag_26\n swap1\n tag_27\n jump\t// in\n tag_26:\n tag_28\n swap2\n swap1\n tag_29\n jump\t// in\n tag_28:\n dup2\n swap1\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n 0x00\n create2\n swap1\n pop\n dup1\n iszero\n dup1\n iszero\n tag_30\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_30:\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":788:816 D d = new D{salt: salt}(arg) */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":850:851 d */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":827:839 deployedAddr */\n 0x00\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":827:852 deployedAddr = address(d) */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":777:860 {\r... */\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":723:860 function createDSalted(bytes32 salt, uint arg) public {\r... */\n pop\n pop\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":173:275 function getBytes32(uint salt) external pure returns (bytes32) {\r... */\n tag_14:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":227:234 bytes32 */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":262:266 salt */\n dup2\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":254:267 bytes32(salt) */\n 0x00\n shl\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":247:267 return bytes32(salt) */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":173:275 function getBytes32(uint salt) external pure returns (bytes32) {\r... */\n swap2\n swap1\n pop\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":283:679 function getAddress(bytes32 salt, uint arg) external view returns (address) {\r... */\n tag_19:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":350:357 address */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":370:382 address addr */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":454:458 0xff */\n 0xff\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":447:459 bytes1(0xff) */\n 0xf8\n shl\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":482:486 this */\n address\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":502:506 salt */\n dup6\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":566:586 type(D).creationCode */\n mload(0x40)\n dup1\n 0x20\n add\n tag_33\n swap1\n tag_27\n jump\t// in\n tag_33:\n 0x20\n dup3\n add\n dup2\n sub\n dup3\n mstore\n not(0x1f)\n 0x1f\n dup3\n add\n and\n 0x40\n mstore\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":605:608 arg */\n dup7\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":531:623 abi.encodePacked(\r... */\n add(0x20, mload(0x40))\n tag_34\n swap3\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":521:624 keccak256(abi.encodePacked(\r... */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":416:635 abi.encodePacked(\r... */\n add(0x20, mload(0x40))\n tag_36\n swap5\n swap4\n swap3\n swap2\n swap1\n tag_37\n jump\t// in\n tag_36:\n mload(0x40)\n 0x20\n dup2\n dup4\n sub\n sub\n dup2\n mstore\n swap1\n 0x40\n mstore\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":406:636 keccak256(abi.encodePacked(\r... */\n dup1\n mload\n swap1\n 0x20\n add\n keccak256\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":401:637 uint(keccak256(abi.encodePacked(\r... */\n 0x00\n shr\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":370:639 address addr = address(uint160(uint(keccak256(abi.encodePacked(\r... */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":667:671 addr */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":660:671 return addr */\n swap2\n pop\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":283:679 function getAddress(bytes32 salt, uint arg) external view returns (address) {\r... */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":687:714 address public deployedAddr */\n tag_23:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n tag_27:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n dup4\n codecopy\n add\n swap1\n jump\t// out\n /* \"#utility.yul\":7:146 */\n tag_39:\n /* \"#utility.yul\":53:58 */\n 0x00\n /* \"#utility.yul\":91:97 */\n dup2\n /* \"#utility.yul\":78:98 */\n calldataload\n /* \"#utility.yul\":69:98 */\n swap1\n pop\n /* \"#utility.yul\":107:140 */\n tag_41\n /* \"#utility.yul\":134:139 */\n dup2\n /* \"#utility.yul\":107:140 */\n tag_42\n jump\t// in\n tag_41:\n /* \"#utility.yul\":7:146 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":152:291 */\n tag_43:\n /* \"#utility.yul\":198:203 */\n 0x00\n /* \"#utility.yul\":236:242 */\n dup2\n /* \"#utility.yul\":223:243 */\n calldataload\n /* \"#utility.yul\":214:243 */\n swap1\n pop\n /* \"#utility.yul\":252:285 */\n tag_45\n /* \"#utility.yul\":279:284 */\n dup2\n /* \"#utility.yul\":252:285 */\n tag_46\n jump\t// in\n tag_45:\n /* \"#utility.yul\":152:291 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":297:771 */\n tag_9:\n /* \"#utility.yul\":365:371 */\n 0x00\n /* \"#utility.yul\":373:379 */\n dup1\n /* \"#utility.yul\":422:424 */\n 0x40\n /* \"#utility.yul\":410:419 */\n dup4\n /* \"#utility.yul\":401:408 */\n dup6\n /* \"#utility.yul\":397:420 */\n sub\n /* \"#utility.yul\":393:425 */\n slt\n /* \"#utility.yul\":390:509 */\n iszero\n tag_48\n jumpi\n /* \"#utility.yul\":428:507 */\n tag_49\n tag_50\n jump\t// in\n tag_49:\n /* \"#utility.yul\":390:509 */\n tag_48:\n /* \"#utility.yul\":548:549 */\n 0x00\n /* \"#utility.yul\":573:626 */\n tag_51\n /* \"#utility.yul\":618:625 */\n dup6\n /* \"#utility.yul\":609:615 */\n dup3\n /* \"#utility.yul\":598:607 */\n dup7\n /* \"#utility.yul\":594:616 */\n add\n /* \"#utility.yul\":573:626 */\n tag_39\n jump\t// in\n tag_51:\n /* \"#utility.yul\":563:626 */\n swap3\n pop\n /* \"#utility.yul\":519:636 */\n pop\n /* \"#utility.yul\":675:677 */\n 0x20\n /* \"#utility.yul\":701:754 */\n tag_52\n /* \"#utility.yul\":746:753 */\n dup6\n /* \"#utility.yul\":737:743 */\n dup3\n /* \"#utility.yul\":726:735 */\n dup7\n /* \"#utility.yul\":722:744 */\n add\n /* \"#utility.yul\":701:754 */\n tag_43\n jump\t// in\n tag_52:\n /* \"#utility.yul\":691:754 */\n swap2\n pop\n /* \"#utility.yul\":646:764 */\n pop\n /* \"#utility.yul\":297:771 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":777:1106 */\n tag_13:\n /* \"#utility.yul\":836:842 */\n 0x00\n /* \"#utility.yul\":885:887 */\n 0x20\n /* \"#utility.yul\":873:882 */\n dup3\n /* \"#utility.yul\":864:871 */\n dup5\n /* \"#utility.yul\":860:883 */\n sub\n /* \"#utility.yul\":856:888 */\n slt\n /* \"#utility.yul\":853:972 */\n iszero\n tag_54\n jumpi\n /* \"#utility.yul\":891:970 */\n tag_55\n tag_50\n jump\t// in\n tag_55:\n /* \"#utility.yul\":853:972 */\n tag_54:\n /* \"#utility.yul\":1011:1012 */\n 0x00\n /* \"#utility.yul\":1036:1089 */\n tag_56\n /* \"#utility.yul\":1081:1088 */\n dup5\n /* \"#utility.yul\":1072:1078 */\n dup3\n /* \"#utility.yul\":1061:1070 */\n dup6\n /* \"#utility.yul\":1057:1079 */\n add\n /* \"#utility.yul\":1036:1089 */\n tag_43\n jump\t// in\n tag_56:\n /* \"#utility.yul\":1026:1089 */\n swap2\n pop\n /* \"#utility.yul\":982:1099 */\n pop\n /* \"#utility.yul\":777:1106 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1112:1230 */\n tag_57:\n /* \"#utility.yul\":1199:1223 */\n tag_59\n /* \"#utility.yul\":1217:1222 */\n dup2\n /* \"#utility.yul\":1199:1223 */\n tag_60\n jump\t// in\n tag_59:\n /* \"#utility.yul\":1194:1197 */\n dup3\n /* \"#utility.yul\":1187:1224 */\n mstore\n /* \"#utility.yul\":1112:1230 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1236:1393 */\n tag_61:\n /* \"#utility.yul\":1341:1386 */\n tag_63\n /* \"#utility.yul\":1361:1385 */\n tag_64\n /* \"#utility.yul\":1379:1384 */\n dup3\n /* \"#utility.yul\":1361:1385 */\n tag_60\n jump\t// in\n tag_64:\n /* \"#utility.yul\":1341:1386 */\n tag_65\n jump\t// in\n tag_63:\n /* \"#utility.yul\":1336:1339 */\n dup3\n /* \"#utility.yul\":1329:1387 */\n mstore\n /* \"#utility.yul\":1236:1393 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1399:1552 */\n tag_66:\n /* \"#utility.yul\":1502:1545 */\n tag_68\n /* \"#utility.yul\":1521:1544 */\n tag_69\n /* \"#utility.yul\":1538:1543 */\n dup3\n /* \"#utility.yul\":1521:1544 */\n tag_70\n jump\t// in\n tag_69:\n /* \"#utility.yul\":1502:1545 */\n tag_71\n jump\t// in\n tag_68:\n /* \"#utility.yul\":1497:1500 */\n dup3\n /* \"#utility.yul\":1490:1546 */\n mstore\n /* \"#utility.yul\":1399:1552 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1558:1676 */\n tag_72:\n /* \"#utility.yul\":1645:1669 */\n tag_74\n /* \"#utility.yul\":1663:1668 */\n dup2\n /* \"#utility.yul\":1645:1669 */\n tag_75\n jump\t// in\n tag_74:\n /* \"#utility.yul\":1640:1643 */\n dup3\n /* \"#utility.yul\":1633:1670 */\n mstore\n /* \"#utility.yul\":1558:1676 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1682:1839 */\n tag_76:\n /* \"#utility.yul\":1787:1832 */\n tag_78\n /* \"#utility.yul\":1807:1831 */\n tag_79\n /* \"#utility.yul\":1825:1830 */\n dup3\n /* \"#utility.yul\":1807:1831 */\n tag_75\n jump\t// in\n tag_79:\n /* \"#utility.yul\":1787:1832 */\n tag_80\n jump\t// in\n tag_78:\n /* \"#utility.yul\":1782:1785 */\n dup3\n /* \"#utility.yul\":1775:1833 */\n mstore\n /* \"#utility.yul\":1682:1839 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":1845:2218 */\n tag_81:\n /* \"#utility.yul\":1949:1952 */\n 0x00\n /* \"#utility.yul\":1977:2015 */\n tag_83\n /* \"#utility.yul\":2009:2014 */\n dup3\n /* \"#utility.yul\":1977:2015 */\n tag_84\n jump\t// in\n tag_83:\n /* \"#utility.yul\":2031:2119 */\n tag_85\n /* \"#utility.yul\":2112:2118 */\n dup2\n /* \"#utility.yul\":2107:2110 */\n dup6\n /* \"#utility.yul\":2031:2119 */\n tag_86\n jump\t// in\n tag_85:\n /* \"#utility.yul\":2024:2119 */\n swap4\n pop\n /* \"#utility.yul\":2128:2180 */\n tag_87\n /* \"#utility.yul\":2173:2179 */\n dup2\n /* \"#utility.yul\":2168:2171 */\n dup6\n /* \"#utility.yul\":2161:2165 */\n 0x20\n /* \"#utility.yul\":2154:2159 */\n dup7\n /* \"#utility.yul\":2150:2166 */\n add\n /* \"#utility.yul\":2128:2180 */\n tag_88\n jump\t// in\n tag_87:\n /* \"#utility.yul\":2205:2211 */\n dup1\n /* \"#utility.yul\":2200:2203 */\n dup5\n /* \"#utility.yul\":2196:2212 */\n add\n /* \"#utility.yul\":2189:2212 */\n swap2\n pop\n /* \"#utility.yul\":1953:2218 */\n pop\n /* \"#utility.yul\":1845:2218 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2224:2342 */\n tag_89:\n /* \"#utility.yul\":2311:2335 */\n tag_91\n /* \"#utility.yul\":2329:2334 */\n dup2\n /* \"#utility.yul\":2311:2335 */\n tag_92\n jump\t// in\n tag_91:\n /* \"#utility.yul\":2306:2309 */\n dup3\n /* \"#utility.yul\":2299:2336 */\n mstore\n /* \"#utility.yul\":2224:2342 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2348:2505 */\n tag_93:\n /* \"#utility.yul\":2453:2498 */\n tag_95\n /* \"#utility.yul\":2473:2497 */\n tag_96\n /* \"#utility.yul\":2491:2496 */\n dup3\n /* \"#utility.yul\":2473:2497 */\n tag_92\n jump\t// in\n tag_96:\n /* \"#utility.yul\":2453:2498 */\n tag_97\n jump\t// in\n tag_95:\n /* \"#utility.yul\":2448:2451 */\n dup3\n /* \"#utility.yul\":2441:2499 */\n mstore\n /* \"#utility.yul\":2348:2505 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":2511:3185 */\n tag_37:\n /* \"#utility.yul\":2705:2708 */\n 0x00\n /* \"#utility.yul\":2720:2793 */\n tag_99\n /* \"#utility.yul\":2789:2792 */\n dup3\n /* \"#utility.yul\":2780:2786 */\n dup8\n /* \"#utility.yul\":2720:2793 */\n tag_66\n jump\t// in\n tag_99:\n /* \"#utility.yul\":2818:2819 */\n 0x01\n /* \"#utility.yul\":2813:2816 */\n dup3\n /* \"#utility.yul\":2809:2820 */\n add\n /* \"#utility.yul\":2802:2820 */\n swap2\n pop\n /* \"#utility.yul\":2830:2905 */\n tag_100\n /* \"#utility.yul\":2901:2904 */\n dup3\n /* \"#utility.yul\":2892:2898 */\n dup7\n /* \"#utility.yul\":2830:2905 */\n tag_61\n jump\t// in\n tag_100:\n /* \"#utility.yul\":2930:2932 */\n 0x14\n /* \"#utility.yul\":2925:2928 */\n dup3\n /* \"#utility.yul\":2921:2933 */\n add\n /* \"#utility.yul\":2914:2933 */\n swap2\n pop\n /* \"#utility.yul\":2943:3018 */\n tag_101\n /* \"#utility.yul\":3014:3017 */\n dup3\n /* \"#utility.yul\":3005:3011 */\n dup6\n /* \"#utility.yul\":2943:3018 */\n tag_76\n jump\t// in\n tag_101:\n /* \"#utility.yul\":3043:3045 */\n 0x20\n /* \"#utility.yul\":3038:3041 */\n dup3\n /* \"#utility.yul\":3034:3046 */\n add\n /* \"#utility.yul\":3027:3046 */\n swap2\n pop\n /* \"#utility.yul\":3056:3131 */\n tag_102\n /* \"#utility.yul\":3127:3130 */\n dup3\n /* \"#utility.yul\":3118:3124 */\n dup5\n /* \"#utility.yul\":3056:3131 */\n tag_76\n jump\t// in\n tag_102:\n /* \"#utility.yul\":3156:3158 */\n 0x20\n /* \"#utility.yul\":3151:3154 */\n dup3\n /* \"#utility.yul\":3147:3159 */\n add\n /* \"#utility.yul\":3140:3159 */\n swap2\n pop\n /* \"#utility.yul\":3176:3179 */\n dup2\n /* \"#utility.yul\":3169:3179 */\n swap1\n pop\n /* \"#utility.yul\":2511:3185 */\n swap6\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3191:3603 */\n tag_35:\n /* \"#utility.yul\":3349:3352 */\n 0x00\n /* \"#utility.yul\":3371:3464 */\n tag_104\n /* \"#utility.yul\":3460:3463 */\n dup3\n /* \"#utility.yul\":3451:3457 */\n dup6\n /* \"#utility.yul\":3371:3464 */\n tag_81\n jump\t// in\n tag_104:\n /* \"#utility.yul\":3364:3464 */\n swap2\n pop\n /* \"#utility.yul\":3474:3549 */\n tag_105\n /* \"#utility.yul\":3545:3548 */\n dup3\n /* \"#utility.yul\":3536:3542 */\n dup5\n /* \"#utility.yul\":3474:3549 */\n tag_93\n jump\t// in\n tag_105:\n /* \"#utility.yul\":3574:3576 */\n 0x20\n /* \"#utility.yul\":3569:3572 */\n dup3\n /* \"#utility.yul\":3565:3577 */\n add\n /* \"#utility.yul\":3558:3577 */\n swap2\n pop\n /* \"#utility.yul\":3594:3597 */\n dup2\n /* \"#utility.yul\":3587:3597 */\n swap1\n pop\n /* \"#utility.yul\":3191:3603 */\n swap4\n swap3\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3609:3831 */\n tag_21:\n /* \"#utility.yul\":3702:3706 */\n 0x00\n /* \"#utility.yul\":3740:3742 */\n 0x20\n /* \"#utility.yul\":3729:3738 */\n dup3\n /* \"#utility.yul\":3725:3743 */\n add\n /* \"#utility.yul\":3717:3743 */\n swap1\n pop\n /* \"#utility.yul\":3753:3824 */\n tag_107\n /* \"#utility.yul\":3821:3822 */\n 0x00\n /* \"#utility.yul\":3810:3819 */\n dup4\n /* \"#utility.yul\":3806:3823 */\n add\n /* \"#utility.yul\":3797:3803 */\n dup5\n /* \"#utility.yul\":3753:3824 */\n tag_57\n jump\t// in\n tag_107:\n /* \"#utility.yul\":3609:3831 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":3837:4059 */\n tag_16:\n /* \"#utility.yul\":3930:3934 */\n 0x00\n /* \"#utility.yul\":3968:3970 */\n 0x20\n /* \"#utility.yul\":3957:3966 */\n dup3\n /* \"#utility.yul\":3953:3971 */\n add\n /* \"#utility.yul\":3945:3971 */\n swap1\n pop\n /* \"#utility.yul\":3981:4052 */\n tag_109\n /* \"#utility.yul\":4049:4050 */\n 0x00\n /* \"#utility.yul\":4038:4047 */\n dup4\n /* \"#utility.yul\":4034:4051 */\n add\n /* \"#utility.yul\":4025:4031 */\n dup5\n /* \"#utility.yul\":3981:4052 */\n tag_72\n jump\t// in\n tag_109:\n /* \"#utility.yul\":3837:4059 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4065:4287 */\n tag_29:\n /* \"#utility.yul\":4158:4162 */\n 0x00\n /* \"#utility.yul\":4196:4198 */\n 0x20\n /* \"#utility.yul\":4185:4194 */\n dup3\n /* \"#utility.yul\":4181:4199 */\n add\n /* \"#utility.yul\":4173:4199 */\n swap1\n pop\n /* \"#utility.yul\":4209:4280 */\n tag_111\n /* \"#utility.yul\":4277:4278 */\n 0x00\n /* \"#utility.yul\":4266:4275 */\n dup4\n /* \"#utility.yul\":4262:4279 */\n add\n /* \"#utility.yul\":4253:4259 */\n dup5\n /* \"#utility.yul\":4209:4280 */\n tag_89\n jump\t// in\n tag_111:\n /* \"#utility.yul\":4065:4287 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4374:4472 */\n tag_84:\n /* \"#utility.yul\":4425:4431 */\n 0x00\n /* \"#utility.yul\":4459:4464 */\n dup2\n /* \"#utility.yul\":4453:4465 */\n mload\n /* \"#utility.yul\":4443:4465 */\n swap1\n pop\n /* \"#utility.yul\":4374:4472 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4478:4625 */\n tag_86:\n /* \"#utility.yul\":4579:4590 */\n 0x00\n /* \"#utility.yul\":4616:4619 */\n dup2\n /* \"#utility.yul\":4601:4619 */\n swap1\n pop\n /* \"#utility.yul\":4478:4625 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":4631:4727 */\n tag_60:\n /* \"#utility.yul\":4668:4675 */\n 0x00\n /* \"#utility.yul\":4697:4721 */\n tag_117\n /* \"#utility.yul\":4715:4720 */\n dup3\n /* \"#utility.yul\":4697:4721 */\n tag_118\n jump\t// in\n tag_117:\n /* \"#utility.yul\":4686:4721 */\n swap1\n pop\n /* \"#utility.yul\":4631:4727 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4733:4882 */\n tag_70:\n /* \"#utility.yul\":4769:4776 */\n 0x00\n /* \"#utility.yul\":4809:4875 */\n 0xff00000000000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":4802:4807 */\n dup3\n /* \"#utility.yul\":4798:4876 */\n and\n /* \"#utility.yul\":4787:4876 */\n swap1\n pop\n /* \"#utility.yul\":4733:4882 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4888:4965 */\n tag_75:\n /* \"#utility.yul\":4925:4932 */\n 0x00\n /* \"#utility.yul\":4954:4959 */\n dup2\n /* \"#utility.yul\":4943:4959 */\n swap1\n pop\n /* \"#utility.yul\":4888:4965 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":4971:5097 */\n tag_118:\n /* \"#utility.yul\":5008:5015 */\n 0x00\n /* \"#utility.yul\":5048:5090 */\n 0xffffffffffffffffffffffffffffffffffffffff\n /* \"#utility.yul\":5041:5046 */\n dup3\n /* \"#utility.yul\":5037:5091 */\n and\n /* \"#utility.yul\":5026:5091 */\n swap1\n pop\n /* \"#utility.yul\":4971:5097 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5103:5180 */\n tag_92:\n /* \"#utility.yul\":5140:5147 */\n 0x00\n /* \"#utility.yul\":5169:5174 */\n dup2\n /* \"#utility.yul\":5158:5174 */\n swap1\n pop\n /* \"#utility.yul\":5103:5180 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5186:5493 */\n tag_88:\n /* \"#utility.yul\":5254:5255 */\n 0x00\n /* \"#utility.yul\":5264:5377 */\n tag_124:\n /* \"#utility.yul\":5278:5284 */\n dup4\n /* \"#utility.yul\":5275:5276 */\n dup2\n /* \"#utility.yul\":5272:5285 */\n lt\n /* \"#utility.yul\":5264:5377 */\n iszero\n tag_126\n jumpi\n /* \"#utility.yul\":5363:5364 */\n dup1\n /* \"#utility.yul\":5358:5361 */\n dup3\n /* \"#utility.yul\":5354:5365 */\n add\n /* \"#utility.yul\":5348:5366 */\n mload\n /* \"#utility.yul\":5344:5345 */\n dup2\n /* \"#utility.yul\":5339:5342 */\n dup5\n /* \"#utility.yul\":5335:5346 */\n add\n /* \"#utility.yul\":5328:5367 */\n mstore\n /* \"#utility.yul\":5300:5302 */\n 0x20\n /* \"#utility.yul\":5297:5298 */\n dup2\n /* \"#utility.yul\":5293:5303 */\n add\n /* \"#utility.yul\":5288:5303 */\n swap1\n pop\n /* \"#utility.yul\":5264:5377 */\n jump(tag_124)\n tag_126:\n /* \"#utility.yul\":5395:5401 */\n dup4\n /* \"#utility.yul\":5392:5393 */\n dup2\n /* \"#utility.yul\":5389:5402 */\n gt\n /* \"#utility.yul\":5386:5487 */\n iszero\n tag_127\n jumpi\n /* \"#utility.yul\":5475:5476 */\n 0x00\n /* \"#utility.yul\":5466:5472 */\n dup5\n /* \"#utility.yul\":5461:5464 */\n dup5\n /* \"#utility.yul\":5457:5473 */\n add\n /* \"#utility.yul\":5450:5477 */\n mstore\n /* \"#utility.yul\":5386:5487 */\n tag_127:\n /* \"#utility.yul\":5235:5493 */\n pop\n /* \"#utility.yul\":5186:5493 */\n pop\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":5499:5599 */\n tag_65:\n /* \"#utility.yul\":5538:5545 */\n 0x00\n /* \"#utility.yul\":5567:5593 */\n tag_129\n /* \"#utility.yul\":5587:5592 */\n dup3\n /* \"#utility.yul\":5567:5593 */\n tag_130\n jump\t// in\n tag_129:\n /* \"#utility.yul\":5556:5593 */\n swap1\n pop\n /* \"#utility.yul\":5499:5599 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5605:5683 */\n tag_71:\n /* \"#utility.yul\":5643:5650 */\n 0x00\n /* \"#utility.yul\":5672:5677 */\n dup2\n /* \"#utility.yul\":5661:5677 */\n swap1\n pop\n /* \"#utility.yul\":5605:5683 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5689:5768 */\n tag_80:\n /* \"#utility.yul\":5728:5735 */\n 0x00\n /* \"#utility.yul\":5757:5762 */\n dup2\n /* \"#utility.yul\":5746:5762 */\n swap1\n pop\n /* \"#utility.yul\":5689:5768 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5774:5868 */\n tag_130:\n /* \"#utility.yul\":5813:5820 */\n 0x00\n /* \"#utility.yul\":5842:5862 */\n tag_134\n /* \"#utility.yul\":5856:5861 */\n dup3\n /* \"#utility.yul\":5842:5862 */\n tag_135\n jump\t// in\n tag_134:\n /* \"#utility.yul\":5831:5862 */\n swap1\n pop\n /* \"#utility.yul\":5774:5868 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":5874:5953 */\n tag_97:\n /* \"#utility.yul\":5913:5920 */\n 0x00\n /* \"#utility.yul\":5942:5947 */\n dup2\n /* \"#utility.yul\":5931:5947 */\n swap1\n pop\n /* \"#utility.yul\":5874:5953 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6082:6199 */\n tag_50:\n /* \"#utility.yul\":6191:6192 */\n 0x00\n /* \"#utility.yul\":6188:6189 */\n dup1\n /* \"#utility.yul\":6181:6193 */\n revert\n /* \"#utility.yul\":6205:6299 */\n tag_135:\n /* \"#utility.yul\":6238:6246 */\n 0x00\n /* \"#utility.yul\":6286:6291 */\n dup2\n /* \"#utility.yul\":6282:6284 */\n 0x60\n /* \"#utility.yul\":6278:6292 */\n shl\n /* \"#utility.yul\":6257:6292 */\n swap1\n pop\n /* \"#utility.yul\":6205:6299 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":6305:6427 */\n tag_42:\n /* \"#utility.yul\":6378:6402 */\n tag_142\n /* \"#utility.yul\":6396:6401 */\n dup2\n /* \"#utility.yul\":6378:6402 */\n tag_75\n jump\t// in\n tag_142:\n /* \"#utility.yul\":6371:6376 */\n dup2\n /* \"#utility.yul\":6368:6403 */\n eq\n /* \"#utility.yul\":6358:6421 */\n tag_143\n jumpi\n /* \"#utility.yul\":6417:6418 */\n 0x00\n /* \"#utility.yul\":6414:6415 */\n dup1\n /* \"#utility.yul\":6407:6419 */\n revert\n /* \"#utility.yul\":6358:6421 */\n tag_143:\n /* \"#utility.yul\":6305:6427 */\n pop\n jump\t// out\n /* \"#utility.yul\":6433:6555 */\n tag_46:\n /* \"#utility.yul\":6506:6530 */\n tag_145\n /* \"#utility.yul\":6524:6529 */\n dup2\n /* \"#utility.yul\":6506:6530 */\n tag_92\n jump\t// in\n tag_145:\n /* \"#utility.yul\":6499:6504 */\n dup2\n /* \"#utility.yul\":6496:6531 */\n eq\n /* \"#utility.yul\":6486:6549 */\n tag_146\n jumpi\n /* \"#utility.yul\":6545:6546 */\n 0x00\n /* \"#utility.yul\":6542:6543 */\n dup1\n /* \"#utility.yul\":6535:6547 */\n revert\n /* \"#utility.yul\":6486:6549 */\n tag_146:\n /* \"#utility.yul\":6433:6555 */\n pop\n jump\t// out\n stop\n\n sub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n mstore(0x40, 0x80)\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":98:142 constructor(uint a) {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\n tag_2:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":133:134 a */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":129:130 x */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":129:134 x = a */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":98:142 constructor(uint a) {\r... */\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n jump(tag_6)\n /* \"#utility.yul\":7:150 */\n tag_8:\n /* \"#utility.yul\":64:69 */\n 0x00\n /* \"#utility.yul\":95:101 */\n dup2\n /* \"#utility.yul\":89:102 */\n mload\n /* \"#utility.yul\":80:102 */\n swap1\n pop\n /* \"#utility.yul\":111:144 */\n tag_10\n /* \"#utility.yul\":138:143 */\n dup2\n /* \"#utility.yul\":111:144 */\n tag_11\n jump\t// in\n tag_10:\n /* \"#utility.yul\":7:150 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":156:507 */\n tag_3:\n /* \"#utility.yul\":226:232 */\n 0x00\n /* \"#utility.yul\":275:277 */\n 0x20\n /* \"#utility.yul\":263:272 */\n dup3\n /* \"#utility.yul\":254:261 */\n dup5\n /* \"#utility.yul\":250:273 */\n sub\n /* \"#utility.yul\":246:278 */\n slt\n /* \"#utility.yul\":243:362 */\n iszero\n tag_13\n jumpi\n /* \"#utility.yul\":281:360 */\n tag_14\n tag_15\n jump\t// in\n tag_14:\n /* \"#utility.yul\":243:362 */\n tag_13:\n /* \"#utility.yul\":401:402 */\n 0x00\n /* \"#utility.yul\":426:490 */\n tag_16\n /* \"#utility.yul\":482:489 */\n dup5\n /* \"#utility.yul\":473:479 */\n dup3\n /* \"#utility.yul\":462:471 */\n dup6\n /* \"#utility.yul\":458:480 */\n add\n /* \"#utility.yul\":426:490 */\n tag_8\n jump\t// in\n tag_16:\n /* \"#utility.yul\":416:490 */\n swap2\n pop\n /* \"#utility.yul\":372:500 */\n pop\n /* \"#utility.yul\":156:507 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":594:671 */\n tag_19:\n /* \"#utility.yul\":631:638 */\n 0x00\n /* \"#utility.yul\":660:665 */\n dup2\n /* \"#utility.yul\":649:665 */\n swap1\n pop\n /* \"#utility.yul\":594:671 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":800:917 */\n tag_15:\n /* \"#utility.yul\":909:910 */\n 0x00\n /* \"#utility.yul\":906:907 */\n dup1\n /* \"#utility.yul\":899:911 */\n revert\n /* \"#utility.yul\":923:1045 */\n tag_11:\n /* \"#utility.yul\":996:1020 */\n tag_25\n /* \"#utility.yul\":1014:1019 */\n dup2\n /* \"#utility.yul\":996:1020 */\n tag_19\n jump\t// in\n tag_25:\n /* \"#utility.yul\":989:994 */\n dup2\n /* \"#utility.yul\":986:1021 */\n eq\n /* \"#utility.yul\":976:1039 */\n tag_26\n jumpi\n /* \"#utility.yul\":1035:1036 */\n 0x00\n /* \"#utility.yul\":1032:1033 */\n dup1\n /* \"#utility.yul\":1025:1037 */\n revert\n /* \"#utility.yul\":976:1039 */\n tag_26:\n /* \"#utility.yul\":923:1045 */\n pop\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n tag_6:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\n stop\n\n sub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x0c55699c\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":78:91 uint public x */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n mload(0x40)\n tag_6\n swap2\n swap1\n tag_7\n jump\t// in\n tag_6:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_5:\n sload(0x00)\n dup2\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_9:\n /* \"#utility.yul\":94:118 */\n tag_11\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_12\n jump\t// in\n tag_11:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_7:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_14\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_9\n jump\t// in\n tag_14:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:436 */\n tag_12:\n /* \"#utility.yul\":396:403 */\n 0x00\n /* \"#utility.yul\":425:430 */\n dup2\n /* \"#utility.yul\":414:430 */\n swap1\n pop\n /* \"#utility.yul\":359:436 */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033\n }\n }\n\n auxdata: 0xa2646970667358221220c323ecf1fc46d440633de43c5ea2bca82769caf1ff9e330985e76bffe322408064736f6c63430008070033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061072c806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630bd38f2f1461005157806324dfc9d71461006d578063bbd6dd6b1461009d578063d1524f74146100cd575b600080fd5b61006b60048036038101906100669190610263565b6100eb565b005b610087600480360381019061008291906102a3565b61016d565b604051610094919061041b565b60405180910390f35b6100b760048036038101906100b29190610263565b61017a565b6040516100c49190610400565b60405180910390f35b6100d5610208565b6040516100e29190610400565b60405180910390f35b600082826040516100fb9061022c565b6101059190610436565b8190604051809103906000f5905080158015610125573d6000803e3d6000fd5b509050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008160001b9050919050565b60008060ff60f81b3085604051806020016101949061022c565b6020820181038252601f19601f82011660405250866040516020016101ba9291906103d8565b604051602081830303815290604052805190602001206040516020016101e3949392919061038a565b6040516020818303038152906040528051906020012060001c90508091505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6101688061058f83390190565b60008135905061024881610560565b92915050565b60008135905061025d81610577565b92915050565b6000806040838503121561027a5761027961054e565b5b600061028885828601610239565b92505060206102998582860161024e565b9150509250929050565b6000602082840312156102b9576102b861054e565b5b60006102c78482850161024e565b91505092915050565b6102d981610467565b82525050565b6102f06102eb82610467565b61050c565b82525050565b61030761030282610479565b61051e565b82525050565b610316816104a5565b82525050565b61032d610328826104a5565b610528565b82525050565b600061033e82610451565b610348818561045c565b93506103588185602086016104d9565b80840191505092915050565b61036d816104cf565b82525050565b61038461037f826104cf565b610544565b82525050565b600061039682876102f6565b6001820191506103a682866102df565b6014820191506103b6828561031c565b6020820191506103c6828461031c565b60208201915081905095945050505050565b60006103e48285610333565b91506103f08284610373565b6020820191508190509392505050565b600060208201905061041560008301846102d0565b92915050565b6000602082019050610430600083018461030d565b92915050565b600060208201905061044b6000830184610364565b92915050565b600081519050919050565b600081905092915050565b6000610472826104af565b9050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156104f75780820151818401526020810190506104dc565b83811115610506576000848401525b50505050565b600061051782610532565b9050919050565b6000819050919050565b6000819050919050565b600061053d82610553565b9050919050565b6000819050919050565b600080fd5b60008160601b9050919050565b610569816104a5565b811461057457600080fd5b50565b610580816104cf565b811461058b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161016838038061016883398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b60b3806100b56000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033a2646970667358221220c323ecf1fc46d440633de43c5ea2bca82769caf1ff9e330985e76bffe322408064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x72C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBD38F2F EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x24DFC9D7 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xBBD6DD6B EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xD1524F74 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x16D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x94 SWAP2 SWAP1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB2 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0x17A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC4 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD5 PUSH2 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xFB SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x105 SWAP2 SWAP1 PUSH2 0x436 JUMP JUMPDEST DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x125 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP 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 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xFF PUSH1 0xF8 SHL ADDRESS DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x194 SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BA SWAP3 SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x168 DUP1 PUSH2 0x58F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x248 DUP2 PUSH2 0x560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25D DUP2 PUSH2 0x577 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A JUMPI PUSH2 0x279 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288 DUP6 DUP3 DUP7 ADD PUSH2 0x239 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x299 DUP6 DUP3 DUP7 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B9 JUMPI PUSH2 0x2B8 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C7 DUP5 DUP3 DUP6 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D9 DUP2 PUSH2 0x467 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2F0 PUSH2 0x2EB DUP3 PUSH2 0x467 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x307 PUSH2 0x302 DUP3 PUSH2 0x479 JUMP JUMPDEST PUSH2 0x51E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x316 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 DUP3 PUSH2 0x4A5 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E DUP3 PUSH2 0x451 JUMP JUMPDEST PUSH2 0x348 DUP2 DUP6 PUSH2 0x45C JUMP JUMPDEST SWAP4 POP PUSH2 0x358 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x36D DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x384 PUSH2 0x37F DUP3 PUSH2 0x4CF JUMP JUMPDEST PUSH2 0x544 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396 DUP3 DUP8 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x3A6 DUP3 DUP7 PUSH2 0x2DF JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x3B6 DUP3 DUP6 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3C6 DUP3 DUP5 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E4 DUP3 DUP6 PUSH2 0x333 JUMP JUMPDEST SWAP2 POP PUSH2 0x3F0 DUP3 DUP5 PUSH2 0x373 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x415 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x430 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x30D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x44B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x472 DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x517 DUP3 PUSH2 0x532 JUMP JUMPDEST 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 0x53D DUP3 PUSH2 0x553 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x569 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x580 DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP2 EQ PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x168 CODESIZE SUB DUP1 PUSH2 0x168 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4E DUP2 PUSH2 0x90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A JUMPI PUSH2 0x69 PUSH2 0x8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x78 DUP5 DUP3 DUP6 ADD PUSH2 0x3F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 DUP2 PUSH2 0x81 JUMP JUMPDEST DUP2 EQ PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xB3 DUP1 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0x23 0xEC CALL 0xFC CHAINID 0xD4 BLOCKHASH PUSH4 0x3DE43C5E LOG2 0xBC 0xA8 0x27 PUSH10 0xCAF1FF9E330985E76BFF 0xE3 0x22 BLOCKHASH DUP1 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "149:714:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@createDSalted_103": {
"entryPoint": 235,
"id": 103,
"parameterSlots": 2,
"returnSlots": 0
},
"@deployedAddr_77": {
"entryPoint": 520,
"id": 77,
"parameterSlots": 0,
"returnSlots": 0
},
"@getAddress_75": {
"entryPoint": 378,
"id": 75,
"parameterSlots": 2,
"returnSlots": 1
},
"@getBytes32_27": {
"entryPoint": 365,
"id": 27,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_t_bytes32": {
"entryPoint": 569,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes32t_uint256": {
"entryPoint": 611,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 675,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 720,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
"entryPoint": 735,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack": {
"entryPoint": 758,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 781,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": {
"entryPoint": 796,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 819,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 868,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack": {
"entryPoint": 883,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 906,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 984,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1024,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 1051,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1078,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 1105,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 1116,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1127,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes1": {
"entryPoint": 1145,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 1189,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1199,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1231,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1241,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"leftAlign_t_address": {
"entryPoint": 1292,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes1": {
"entryPoint": 1310,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes32": {
"entryPoint": 1320,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint160": {
"entryPoint": 1330,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint256": {
"entryPoint": 1348,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1358,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"shift_left_96": {
"entryPoint": 1363,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_bytes32": {
"entryPoint": 1376,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1399,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:6558:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:1"
},
"nodeType": "YulFunctionCall",
"src": "223:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "252:26:1"
},
"nodeType": "YulFunctionCall",
"src": "252:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:1",
"type": ""
}
],
"src": "152:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "380:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "426:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "428:77:1"
},
"nodeType": "YulFunctionCall",
"src": "428:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "428:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "401:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "410:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "397:3:1"
},
"nodeType": "YulFunctionCall",
"src": "397:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "422:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "393:3:1"
},
"nodeType": "YulFunctionCall",
"src": "393:32:1"
},
"nodeType": "YulIf",
"src": "390:119:1"
},
{
"nodeType": "YulBlock",
"src": "519:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "534:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "548:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "538:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "563:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "598:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "609:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "594:3:1"
},
"nodeType": "YulFunctionCall",
"src": "594:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "618:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nodeType": "YulIdentifier",
"src": "573:20:1"
},
"nodeType": "YulFunctionCall",
"src": "573:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "563:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "646:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "661:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "675:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "665:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "691:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "726:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "737:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "722:3:1"
},
"nodeType": "YulFunctionCall",
"src": "722:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "746:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "701:20:1"
},
"nodeType": "YulFunctionCall",
"src": "701:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "691:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "342:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "353:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "365:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "373:6:1",
"type": ""
}
],
"src": "297:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "843:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "889:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "891:77:1"
},
"nodeType": "YulFunctionCall",
"src": "891:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "891:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "864:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "873:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "860:3:1"
},
"nodeType": "YulFunctionCall",
"src": "860:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "885:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "856:3:1"
},
"nodeType": "YulFunctionCall",
"src": "856:32:1"
},
"nodeType": "YulIf",
"src": "853:119:1"
},
{
"nodeType": "YulBlock",
"src": "982:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "997:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1011:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1001:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1026:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1061:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1072:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1057:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1057:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1081:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1036:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1026:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "813:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "824:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "836:6:1",
"type": ""
}
],
"src": "777:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1177:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1194:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1217:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1199:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1199:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1187:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1187:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1165:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1172:3:1",
"type": ""
}
],
"src": "1112:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1319:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1336:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1379:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1361:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1361:24:1"
}
],
"functionName": {
"name": "leftAlign_t_address",
"nodeType": "YulIdentifier",
"src": "1341:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1341:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1329:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1329:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "1329:58:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1307:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1314:3:1",
"type": ""
}
],
"src": "1236:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1480:72:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1497:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1538:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes1",
"nodeType": "YulIdentifier",
"src": "1521:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1521:23:1"
}
],
"functionName": {
"name": "leftAlign_t_bytes1",
"nodeType": "YulIdentifier",
"src": "1502:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1502:43:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1490:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1490:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "1490:56:1"
}
]
},
"name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1468:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1475:3:1",
"type": ""
}
],
"src": "1399:153:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1623:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1640:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1663:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1645:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1645:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1633:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1633:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1633:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1611:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1618:3:1",
"type": ""
}
],
"src": "1558:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1765:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1825:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1807:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1807:24:1"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1787:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1787:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1775:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1775:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "1775:58:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1753:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1760:3:1",
"type": ""
}
],
"src": "1682:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1953:265:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1963:52:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2009:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1977:31:1"
},
"nodeType": "YulFunctionCall",
"src": "1977:38:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1967:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2024:95:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2107:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2112:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2031:75:1"
},
"nodeType": "YulFunctionCall",
"src": "2031:88:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2024:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2154:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2161:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2150:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2150:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2168:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2173:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2128:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2128:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2128:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2189:23:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2200:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2205:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2196:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2196:16:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2189:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1934:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1941:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1949:3:1",
"type": ""
}
],
"src": "1845:373:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2289:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2306:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2329:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2311:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2311:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2299:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2299:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2299:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2277:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2284:3:1",
"type": ""
}
],
"src": "2224:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2431:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2448:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2491:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2473:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2473:24:1"
}
],
"functionName": {
"name": "leftAlign_t_uint256",
"nodeType": "YulIdentifier",
"src": "2453:19:1"
},
"nodeType": "YulFunctionCall",
"src": "2453:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2441:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2441:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "2441:58:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2419:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2426:3:1",
"type": ""
}
],
"src": "2348:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2709:476:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2780:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2789:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2720:59:1"
},
"nodeType": "YulFunctionCall",
"src": "2720:73:1"
},
"nodeType": "YulExpressionStatement",
"src": "2720:73:1"
},
{
"nodeType": "YulAssignment",
"src": "2802:18:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2813:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2818:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2809:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2809:11:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2802:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2892:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2901:3:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2830:61:1"
},
"nodeType": "YulFunctionCall",
"src": "2830:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "2830:75:1"
},
{
"nodeType": "YulAssignment",
"src": "2914:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2925:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2930:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2921:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2921:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2914:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3005:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3014:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2943:61:1"
},
"nodeType": "YulFunctionCall",
"src": "2943:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "2943:75:1"
},
{
"nodeType": "YulAssignment",
"src": "3027:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3038:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3043:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3034:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3034:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3027:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3118:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3127:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3056:61:1"
},
"nodeType": "YulFunctionCall",
"src": "3056:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "3056:75:1"
},
{
"nodeType": "YulAssignment",
"src": "3140:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3151:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3156:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3147:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3147:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3140:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3169:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3176:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3169:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2664:3:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2670:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2678:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2686:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2694:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2705:3:1",
"type": ""
}
],
"src": "2511:674:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3353:250:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3364:100:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3451:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3460:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3371:79:1"
},
"nodeType": "YulFunctionCall",
"src": "3371:93:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3364:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3536:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3545:3:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3474:61:1"
},
"nodeType": "YulFunctionCall",
"src": "3474:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "3474:75:1"
},
{
"nodeType": "YulAssignment",
"src": "3558:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3569:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3574:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3565:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3565:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3558:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3587:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3594:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3587:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3324:3:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3330:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3338:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3349:3:1",
"type": ""
}
],
"src": "3191:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3707:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3717:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3729:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3740:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3725:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3725:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3717:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3797:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3810:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3821:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3806:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3806:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3753:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3753:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3753:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3679:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3691:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3702:4:1",
"type": ""
}
],
"src": "3609:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3935:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3945:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3957:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3968:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3953:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3953:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3945:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4025:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4038:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4049:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4034:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4034:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "3981:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3981:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3981:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3907:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3919:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3930:4:1",
"type": ""
}
],
"src": "3837:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4163:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4173:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4185:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4196:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4181:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4181:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4173:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4253:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4266:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4277:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4262:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4262:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4209:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4209:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4209:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4135:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4147:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4158:4:1",
"type": ""
}
],
"src": "4065:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4333:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4343:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4359:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4353:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4353:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4343:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4326:6:1",
"type": ""
}
],
"src": "4293:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4432:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4443:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4459:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4453:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4453:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4443:6:1"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4415:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4425:6:1",
"type": ""
}
],
"src": "4374:98:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4591:34:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4601:18:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4616:3:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4601:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4563:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4568:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4579:11:1",
"type": ""
}
],
"src": "4478:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4676:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4686:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4715:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4697:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4697:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4686:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4658:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4668:7:1",
"type": ""
}
],
"src": "4631:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4777:105:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4787:89:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4802:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4809:66:1",
"type": "",
"value": "0xff00000000000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4798:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4798:78:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4787:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4759:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4769:7:1",
"type": ""
}
],
"src": "4733:149:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4933:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4943:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4954:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4943:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4915:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4925:7:1",
"type": ""
}
],
"src": "4888:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5016:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5026:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5041:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5048:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5037:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5037:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5026:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4998:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5008:7:1",
"type": ""
}
],
"src": "4971:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5148:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5158:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5169:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5158:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5130:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5140:7:1",
"type": ""
}
],
"src": "5103:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5235:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5245:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5254:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "5249:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5314:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5339:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5344:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5335:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5335:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5358:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5363:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5354:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5354:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5348:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5348:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5328:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5328:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "5328:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5275:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5278:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5272:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5272:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "5286:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5288:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5297:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5300:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5293:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5288:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "5268:3:1",
"statements": []
},
"src": "5264:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5411:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5461:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5466:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5457:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5475:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5450:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5450:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5450:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5392:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5395:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5389:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5389:13:1"
},
"nodeType": "YulIf",
"src": "5386:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5217:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5222:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5227:6:1",
"type": ""
}
],
"src": "5186:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5546:53:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5556:37:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5587:5:1"
}
],
"functionName": {
"name": "leftAlign_t_uint160",
"nodeType": "YulIdentifier",
"src": "5567:19:1"
},
"nodeType": "YulFunctionCall",
"src": "5567:26:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5556:7:1"
}
]
}
]
},
"name": "leftAlign_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5528:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5538:7:1",
"type": ""
}
],
"src": "5499:100:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5651:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5661:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5672:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5661:7:1"
}
]
}
]
},
"name": "leftAlign_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5633:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5643:7:1",
"type": ""
}
],
"src": "5605:78:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5736:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5746:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5757:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5746:7:1"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5718:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5728:7:1",
"type": ""
}
],
"src": "5689:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5821:47:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5831:31:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5856:5:1"
}
],
"functionName": {
"name": "shift_left_96",
"nodeType": "YulIdentifier",
"src": "5842:13:1"
},
"nodeType": "YulFunctionCall",
"src": "5842:20:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5831:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5803:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5813:7:1",
"type": ""
}
],
"src": "5774:94:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5921:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5931:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5942:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5931:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5903:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5913:7:1",
"type": ""
}
],
"src": "5874:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6048:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6065:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6068:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6058:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6058:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6058:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "5959:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6171:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6188:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6191:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6181:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6181:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6181:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "6082:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6247:52:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6257:35:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6282:2:1",
"type": "",
"value": "96"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6286:5:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "6278:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6278:14:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "6257:8:1"
}
]
}
]
},
"name": "shift_left_96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6228:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "6238:8:1",
"type": ""
}
],
"src": "6205:94:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6348:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6405:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6414:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6417:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6407:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6407:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6407:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6371:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6396:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "6378:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6378:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6368:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6368:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6361:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6361:43:1"
},
"nodeType": "YulIf",
"src": "6358:63:1"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6341:5:1",
"type": ""
}
],
"src": "6305:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6476:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6533:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6542:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6535:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6535:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6535:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6499:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6524:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6506:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6506:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6496:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6496:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6489:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6489:43:1"
},
"nodeType": "YulIf",
"src": "6486:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6469:5:1",
"type": ""
}
],
"src": "6433:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\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_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes1(cleanup_t_bytes1(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_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_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 function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\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 cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bytes1(value) -> cleaned {\n cleaned := and(value, 0xff00000000000000000000000000000000000000000000000000000000000000)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_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 leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function leftAlign_t_bytes1(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80630bd38f2f1461005157806324dfc9d71461006d578063bbd6dd6b1461009d578063d1524f74146100cd575b600080fd5b61006b60048036038101906100669190610263565b6100eb565b005b610087600480360381019061008291906102a3565b61016d565b604051610094919061041b565b60405180910390f35b6100b760048036038101906100b29190610263565b61017a565b6040516100c49190610400565b60405180910390f35b6100d5610208565b6040516100e29190610400565b60405180910390f35b600082826040516100fb9061022c565b6101059190610436565b8190604051809103906000f5905080158015610125573d6000803e3d6000fd5b509050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008160001b9050919050565b60008060ff60f81b3085604051806020016101949061022c565b6020820181038252601f19601f82011660405250866040516020016101ba9291906103d8565b604051602081830303815290604052805190602001206040516020016101e3949392919061038a565b6040516020818303038152906040528051906020012060001c90508091505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6101688061058f83390190565b60008135905061024881610560565b92915050565b60008135905061025d81610577565b92915050565b6000806040838503121561027a5761027961054e565b5b600061028885828601610239565b92505060206102998582860161024e565b9150509250929050565b6000602082840312156102b9576102b861054e565b5b60006102c78482850161024e565b91505092915050565b6102d981610467565b82525050565b6102f06102eb82610467565b61050c565b82525050565b61030761030282610479565b61051e565b82525050565b610316816104a5565b82525050565b61032d610328826104a5565b610528565b82525050565b600061033e82610451565b610348818561045c565b93506103588185602086016104d9565b80840191505092915050565b61036d816104cf565b82525050565b61038461037f826104cf565b610544565b82525050565b600061039682876102f6565b6001820191506103a682866102df565b6014820191506103b6828561031c565b6020820191506103c6828461031c565b60208201915081905095945050505050565b60006103e48285610333565b91506103f08284610373565b6020820191508190509392505050565b600060208201905061041560008301846102d0565b92915050565b6000602082019050610430600083018461030d565b92915050565b600060208201905061044b6000830184610364565b92915050565b600081519050919050565b600081905092915050565b6000610472826104af565b9050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156104f75780820151818401526020810190506104dc565b83811115610506576000848401525b50505050565b600061051782610532565b9050919050565b6000819050919050565b6000819050919050565b600061053d82610553565b9050919050565b6000819050919050565b600080fd5b60008160601b9050919050565b610569816104a5565b811461057457600080fd5b50565b610580816104cf565b811461058b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161016838038061016883398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b60b3806100b56000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033a2646970667358221220c323ecf1fc46d440633de43c5ea2bca82769caf1ff9e330985e76bffe322408064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBD38F2F EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x24DFC9D7 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xBBD6DD6B EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xD1524F74 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x16D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x94 SWAP2 SWAP1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB2 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0x17A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC4 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD5 PUSH2 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xFB SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x105 SWAP2 SWAP1 PUSH2 0x436 JUMP JUMPDEST DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x125 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP 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 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xFF PUSH1 0xF8 SHL ADDRESS DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x194 SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BA SWAP3 SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x168 DUP1 PUSH2 0x58F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x248 DUP2 PUSH2 0x560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25D DUP2 PUSH2 0x577 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A JUMPI PUSH2 0x279 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288 DUP6 DUP3 DUP7 ADD PUSH2 0x239 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x299 DUP6 DUP3 DUP7 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B9 JUMPI PUSH2 0x2B8 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C7 DUP5 DUP3 DUP6 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D9 DUP2 PUSH2 0x467 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2F0 PUSH2 0x2EB DUP3 PUSH2 0x467 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x307 PUSH2 0x302 DUP3 PUSH2 0x479 JUMP JUMPDEST PUSH2 0x51E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x316 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 DUP3 PUSH2 0x4A5 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E DUP3 PUSH2 0x451 JUMP JUMPDEST PUSH2 0x348 DUP2 DUP6 PUSH2 0x45C JUMP JUMPDEST SWAP4 POP PUSH2 0x358 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x36D DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x384 PUSH2 0x37F DUP3 PUSH2 0x4CF JUMP JUMPDEST PUSH2 0x544 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396 DUP3 DUP8 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x3A6 DUP3 DUP7 PUSH2 0x2DF JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x3B6 DUP3 DUP6 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3C6 DUP3 DUP5 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E4 DUP3 DUP6 PUSH2 0x333 JUMP JUMPDEST SWAP2 POP PUSH2 0x3F0 DUP3 DUP5 PUSH2 0x373 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x415 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x430 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x30D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x44B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x472 DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x517 DUP3 PUSH2 0x532 JUMP JUMPDEST 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 0x53D DUP3 PUSH2 0x553 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x569 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x580 DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP2 EQ PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x168 CODESIZE SUB DUP1 PUSH2 0x168 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4E DUP2 PUSH2 0x90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A JUMPI PUSH2 0x69 PUSH2 0x8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x78 DUP5 DUP3 DUP6 ADD PUSH2 0x3F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 DUP2 PUSH2 0x81 JUMP JUMPDEST DUP2 EQ PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xB3 DUP1 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0x23 0xEC CALL 0xFC CHAINID 0xD4 BLOCKHASH PUSH4 0x3DE43C5E LOG2 0xBC 0xA8 0x27 PUSH10 0xCAF1FF9E330985E76BFF 0xE3 0x22 BLOCKHASH DUP1 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "149:714:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;723:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;173:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;283:396;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;687:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;723:137;788:3;806:4;812:3;794:22;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;788:28;;850:1;827:12;;:25;;;;;;;;;;;;;;;;;;777:83;723:137;;:::o;173:102::-;227:7;262:4;254:13;;247:20;;173:102;;;:::o;283:396::-;350:7;370:12;454:4;447:12;;482:4;502;566:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;605:3;531:92;;;;;;;;;:::i;:::-;;;;;;;;;;;;;521:103;;;;;;416:219;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;406:230;;;;;;401:236;;370:269;;667:4;660:11;;;283:396;;;;:::o;687:27::-;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:474::-;365:6;373;422:2;410:9;401:7;397:23;393:32;390:119;;;428:79;;:::i;:::-;390:119;548:1;573:53;618:7;609:6;598:9;594:22;573:53;:::i;:::-;563:63;;519:117;675:2;701:53;746:7;737:6;726:9;722:22;701:53;:::i;:::-;691:63;;646:118;297:474;;;;;:::o;777:329::-;836:6;885:2;873:9;864:7;860:23;856:32;853:119;;;891:79;;:::i;:::-;853:119;1011:1;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;982:117;777:329;;;;:::o;1112:118::-;1199:24;1217:5;1199:24;:::i;:::-;1194:3;1187:37;1112:118;;:::o;1236:157::-;1341:45;1361:24;1379:5;1361:24;:::i;:::-;1341:45;:::i;:::-;1336:3;1329:58;1236:157;;:::o;1399:153::-;1502:43;1521:23;1538:5;1521:23;:::i;:::-;1502:43;:::i;:::-;1497:3;1490:56;1399:153;;:::o;1558:118::-;1645:24;1663:5;1645:24;:::i;:::-;1640:3;1633:37;1558:118;;:::o;1682:157::-;1787:45;1807:24;1825:5;1807:24;:::i;:::-;1787:45;:::i;:::-;1782:3;1775:58;1682:157;;:::o;1845:373::-;1949:3;1977:38;2009:5;1977:38;:::i;:::-;2031:88;2112:6;2107:3;2031:88;:::i;:::-;2024:95;;2128:52;2173:6;2168:3;2161:4;2154:5;2150:16;2128:52;:::i;:::-;2205:6;2200:3;2196:16;2189:23;;1953:265;1845:373;;;;:::o;2224:118::-;2311:24;2329:5;2311:24;:::i;:::-;2306:3;2299:37;2224:118;;:::o;2348:157::-;2453:45;2473:24;2491:5;2473:24;:::i;:::-;2453:45;:::i;:::-;2448:3;2441:58;2348:157;;:::o;2511:674::-;2705:3;2720:73;2789:3;2780:6;2720:73;:::i;:::-;2818:1;2813:3;2809:11;2802:18;;2830:75;2901:3;2892:6;2830:75;:::i;:::-;2930:2;2925:3;2921:12;2914:19;;2943:75;3014:3;3005:6;2943:75;:::i;:::-;3043:2;3038:3;3034:12;3027:19;;3056:75;3127:3;3118:6;3056:75;:::i;:::-;3156:2;3151:3;3147:12;3140:19;;3176:3;3169:10;;2511:674;;;;;;;:::o;3191:412::-;3349:3;3371:93;3460:3;3451:6;3371:93;:::i;:::-;3364:100;;3474:75;3545:3;3536:6;3474:75;:::i;:::-;3574:2;3569:3;3565:12;3558:19;;3594:3;3587:10;;3191:412;;;;;:::o;3609:222::-;3702:4;3740:2;3729:9;3725:18;3717:26;;3753:71;3821:1;3810:9;3806:17;3797:6;3753:71;:::i;:::-;3609:222;;;;:::o;3837:::-;3930:4;3968:2;3957:9;3953:18;3945:26;;3981:71;4049:1;4038:9;4034:17;4025:6;3981:71;:::i;:::-;3837:222;;;;:::o;4065:::-;4158:4;4196:2;4185:9;4181:18;4173:26;;4209:71;4277:1;4266:9;4262:17;4253:6;4209:71;:::i;:::-;4065:222;;;;:::o;4374:98::-;4425:6;4459:5;4453:12;4443:22;;4374:98;;;:::o;4478:147::-;4579:11;4616:3;4601:18;;4478:147;;;;:::o;4631:96::-;4668:7;4697:24;4715:5;4697:24;:::i;:::-;4686:35;;4631:96;;;:::o;4733:149::-;4769:7;4809:66;4802:5;4798:78;4787:89;;4733:149;;;:::o;4888:77::-;4925:7;4954:5;4943:16;;4888:77;;;:::o;4971:126::-;5008:7;5048:42;5041:5;5037:54;5026:65;;4971:126;;;:::o;5103:77::-;5140:7;5169:5;5158:16;;5103:77;;;:::o;5186:307::-;5254:1;5264:113;5278:6;5275:1;5272:13;5264:113;;;5363:1;5358:3;5354:11;5348:18;5344:1;5339:3;5335:11;5328:39;5300:2;5297:1;5293:10;5288:15;;5264:113;;;5395:6;5392:1;5389:13;5386:101;;;5475:1;5466:6;5461:3;5457:16;5450:27;5386:101;5235:258;5186:307;;;:::o;5499:100::-;5538:7;5567:26;5587:5;5567:26;:::i;:::-;5556:37;;5499:100;;;:::o;5605:78::-;5643:7;5672:5;5661:16;;5605:78;;;:::o;5689:79::-;5728:7;5757:5;5746:16;;5689:79;;;:::o;5774:94::-;5813:7;5842:20;5856:5;5842:20;:::i;:::-;5831:31;;5774:94;;;:::o;5874:79::-;5913:7;5942:5;5931:16;;5874:79;;;:::o;6082:117::-;6191:1;6188;6181:12;6205:94;6238:8;6286:5;6282:2;6278:14;6257:35;;6205:94;;;:::o;6305:122::-;6378:24;6396:5;6378:24;:::i;:::-;6371:5;6368:35;6358:63;;6417:1;6414;6407:12;6358:63;6305:122;:::o;6433:::-;6506:24;6524:5;6506:24;:::i;:::-;6499:5;6496:35;6486:63;;6545:1;6542;6535:12;6486:63;6433:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "367200",
"executionCost": "405",
"totalCost": "367605"
},
"external": {
"createDSalted(bytes32,uint256)": "infinite",
"deployedAddr()": "2555",
"getAddress(bytes32,uint256)": "infinite",
"getBytes32(uint256)": "608"
}
},
"legacyAssembly": {
".code": [
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 149,
"end": 863,
"name": "MSTORE",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "ISZERO",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "REVERT",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 149,
"end": 863,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "POP",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 149,
"end": 863,
"name": "CODECOPY",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 149,
"end": 863,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220c323ecf1fc46d440633de43c5ea2bca82769caf1ff9e330985e76bffe322408064736f6c63430008070033",
".code": [
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 149,
"end": 863,
"name": "MSTORE",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "ISZERO",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "REVERT",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 149,
"end": 863,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "POP",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 149,
"end": 863,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "LT",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 149,
"end": 863,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 149,
"end": 863,
"name": "SHR",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "BD38F2F"
},
{
"begin": 149,
"end": 863,
"name": "EQ",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "24DFC9D7"
},
{
"begin": 149,
"end": 863,
"name": "EQ",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "BBD6DD6B"
},
{
"begin": 149,
"end": 863,
"name": "EQ",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "D1524F74"
},
{
"begin": 149,
"end": 863,
"name": "EQ",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 149,
"end": 863,
"name": "JUMPI",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 149,
"end": 863,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 149,
"end": 863,
"name": "DUP1",
"source": 0
},
{
"begin": 149,
"end": 863,
"name": "REVERT",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 723,
"end": 860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 723,
"end": 860,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 723,
"end": 860,
"name": "DUP1",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "SUB",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "DUP2",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "ADD",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "SWAP1",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 723,
"end": 860,
"name": "SWAP2",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "SWAP1",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 723,
"end": 860,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 723,
"end": 860,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 723,
"end": 860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 723,
"end": 860,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 723,
"end": 860,
"name": "tag",
"source": 0,
"value": "7"
},
{
"begin": 723,
"end": 860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "STOP",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 173,
"end": 275,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 173,
"end": 275,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 173,
"end": 275,
"name": "DUP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SUB",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "DUP2",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "ADD",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 173,
"end": 275,
"name": "SWAP2",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 173,
"end": 275,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 173,
"end": 275,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 173,
"end": 275,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 173,
"end": 275,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 173,
"end": 275,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 173,
"end": 275,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 173,
"end": 275,
"name": "MLOAD",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 173,
"end": 275,
"name": "SWAP2",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 173,
"end": 275,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 173,
"end": 275,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 173,
"end": 275,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 173,
"end": 275,
"name": "MLOAD",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "DUP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP2",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SUB",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "RETURN",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 283,
"end": 679,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH [tag]",
"source": 0,
"value": "17"
},
{
"begin": 283,
"end": 679,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 283,
"end": 679,
"name": "DUP1",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SUB",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "DUP2",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "ADD",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 283,
"end": 679,
"name": "SWAP2",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 283,
"end": 679,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 283,
"end": 679,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 283,
"end": 679,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH [tag]",
"source": 0,
"value": "19"
},
{
"begin": 283,
"end": 679,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 283,
"end": 679,
"name": "tag",
"source": 0,
"value": "17"
},
{
"begin": 283,
"end": 679,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 283,
"end": 679,
"name": "MLOAD",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 283,
"end": 679,
"name": "SWAP2",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 283,
"end": 679,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 283,
"end": 679,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 283,
"end": 679,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 283,
"end": 679,
"name": "MLOAD",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "DUP1",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP2",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SUB",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP1",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "RETURN",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 687,
"end": 714,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH [tag]",
"source": 0,
"value": "22"
},
{
"begin": 687,
"end": 714,
"name": "PUSH [tag]",
"source": 0,
"value": "23"
},
{
"begin": 687,
"end": 714,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 687,
"end": 714,
"name": "tag",
"source": 0,
"value": "22"
},
{
"begin": 687,
"end": 714,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 687,
"end": 714,
"name": "MLOAD",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH [tag]",
"source": 0,
"value": "24"
},
{
"begin": 687,
"end": 714,
"name": "SWAP2",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SWAP1",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 687,
"end": 714,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 687,
"end": 714,
"name": "tag",
"source": 0,
"value": "24"
},
{
"begin": 687,
"end": 714,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 687,
"end": 714,
"name": "MLOAD",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "DUP1",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SWAP2",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SUB",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SWAP1",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "RETURN",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 723,
"end": 860,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 788,
"end": 791,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 806,
"end": 810,
"name": "DUP3",
"source": 0
},
{
"begin": 812,
"end": 815,
"name": "DUP3",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 794,
"end": 816,
"name": "MLOAD",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 794,
"end": 816,
"name": "SWAP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 794,
"end": 816,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 794,
"end": 816,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 794,
"end": 816,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH [tag]",
"source": 0,
"value": "28"
},
{
"begin": 794,
"end": 816,
"name": "SWAP2",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "SWAP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 794,
"end": 816,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 794,
"end": 816,
"name": "tag",
"source": 0,
"value": "28"
},
{
"begin": 794,
"end": 816,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "DUP2",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "SWAP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 794,
"end": 816,
"name": "MLOAD",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "SWAP2",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "SUB",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "SWAP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 816,
"name": "CREATE2",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "SWAP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "POP",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "ISZERO",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "ISZERO",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH [tag]",
"source": 0,
"value": "30"
},
{
"begin": 794,
"end": 816,
"name": "JUMPI",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 816,
"name": "DUP1",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 794,
"end": 816,
"name": "REVERT",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "tag",
"source": 0,
"value": "30"
},
{
"begin": 794,
"end": 816,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 794,
"end": 816,
"name": "POP",
"source": 0
},
{
"begin": 788,
"end": 816,
"name": "SWAP1",
"source": 0
},
{
"begin": 788,
"end": 816,
"name": "POP",
"source": 0
},
{
"begin": 850,
"end": 851,
"name": "DUP1",
"source": 0
},
{
"begin": 827,
"end": 839,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 827,
"end": 839,
"name": "DUP1",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 827,
"end": 852,
"name": "EXP",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "DUP2",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "SLOAD",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "DUP2",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 827,
"end": 852,
"name": "MUL",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "NOT",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "AND",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "SWAP1",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "DUP4",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 827,
"end": 852,
"name": "AND",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "MUL",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "OR",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "SWAP1",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "SSTORE",
"source": 0
},
{
"begin": 827,
"end": 852,
"name": "POP",
"source": 0
},
{
"begin": 777,
"end": 860,
"name": "POP",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "POP",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "POP",
"source": 0
},
{
"begin": 723,
"end": 860,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 173,
"end": 275,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 173,
"end": 275,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 227,
"end": 234,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 262,
"end": 266,
"name": "DUP2",
"source": 0
},
{
"begin": 254,
"end": 267,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 254,
"end": 267,
"name": "SHL",
"source": 0
},
{
"begin": 247,
"end": 267,
"name": "SWAP1",
"source": 0
},
{
"begin": 247,
"end": 267,
"name": "POP",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP2",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "SWAP1",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "POP",
"source": 0
},
{
"begin": 173,
"end": 275,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 283,
"end": 679,
"name": "tag",
"source": 0,
"value": "19"
},
{
"begin": 283,
"end": 679,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 350,
"end": 357,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 370,
"end": 382,
"name": "DUP1",
"source": 0
},
{
"begin": 454,
"end": 458,
"name": "PUSH",
"source": 0,
"value": "FF"
},
{
"begin": 447,
"end": 459,
"name": "PUSH",
"source": 0,
"value": "F8"
},
{
"begin": 447,
"end": 459,
"name": "SHL",
"source": 0
},
{
"begin": 482,
"end": 486,
"name": "ADDRESS",
"source": 0
},
{
"begin": 502,
"end": 506,
"name": "DUP6",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 566,
"end": 586,
"name": "MLOAD",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "DUP1",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 566,
"end": 586,
"name": "ADD",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 566,
"end": 586,
"name": "SWAP1",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 566,
"end": 586,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 566,
"end": 586,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 566,
"end": 586,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 566,
"end": 586,
"name": "DUP3",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "ADD",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "DUP2",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "SUB",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "DUP3",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "MSTORE",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 566,
"end": 586,
"name": "NOT",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH",
"source": 0,
"value": "1F"
},
{
"begin": 566,
"end": 586,
"name": "DUP3",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "ADD",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "AND",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 566,
"end": 586,
"name": "MSTORE",
"source": 0
},
{
"begin": 566,
"end": 586,
"name": "POP",
"source": 0
},
{
"begin": 605,
"end": 608,
"name": "DUP7",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 531,
"end": 623,
"name": "MLOAD",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 531,
"end": 623,
"name": "ADD",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 531,
"end": 623,
"name": "SWAP3",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "SWAP2",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "SWAP1",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 531,
"end": 623,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 531,
"end": 623,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 531,
"end": 623,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 531,
"end": 623,
"name": "MLOAD",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 531,
"end": 623,
"name": "DUP2",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "DUP4",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "SUB",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "SUB",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "DUP2",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "MSTORE",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "SWAP1",
"source": 0
},
{
"begin": 531,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 531,
"end": 623,
"name": "MSTORE",
"source": 0
},
{
"begin": 521,
"end": 624,
"name": "DUP1",
"source": 0
},
{
"begin": 521,
"end": 624,
"name": "MLOAD",
"source": 0
},
{
"begin": 521,
"end": 624,
"name": "SWAP1",
"source": 0
},
{
"begin": 521,
"end": 624,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 521,
"end": 624,
"name": "ADD",
"source": 0
},
{
"begin": 521,
"end": 624,
"name": "KECCAK256",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 416,
"end": 635,
"name": "MLOAD",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 416,
"end": 635,
"name": "ADD",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH [tag]",
"source": 0,
"value": "36"
},
{
"begin": 416,
"end": 635,
"name": "SWAP5",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SWAP4",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SWAP3",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SWAP2",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SWAP1",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH [tag]",
"source": 0,
"value": "37"
},
{
"begin": 416,
"end": 635,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 416,
"end": 635,
"name": "tag",
"source": 0,
"value": "36"
},
{
"begin": 416,
"end": 635,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 416,
"end": 635,
"name": "MLOAD",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 416,
"end": 635,
"name": "DUP2",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "DUP4",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SUB",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SUB",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "DUP2",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "MSTORE",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "SWAP1",
"source": 0
},
{
"begin": 416,
"end": 635,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 416,
"end": 635,
"name": "MSTORE",
"source": 0
},
{
"begin": 406,
"end": 636,
"name": "DUP1",
"source": 0
},
{
"begin": 406,
"end": 636,
"name": "MLOAD",
"source": 0
},
{
"begin": 406,
"end": 636,
"name": "SWAP1",
"source": 0
},
{
"begin": 406,
"end": 636,
"name": "PUSH",
"source": 0,
"value": "20"
},
{
"begin": 406,
"end": 636,
"name": "ADD",
"source": 0
},
{
"begin": 406,
"end": 636,
"name": "KECCAK256",
"source": 0
},
{
"begin": 401,
"end": 637,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 401,
"end": 637,
"name": "SHR",
"source": 0
},
{
"begin": 370,
"end": 639,
"name": "SWAP1",
"source": 0
},
{
"begin": 370,
"end": 639,
"name": "POP",
"source": 0
},
{
"begin": 667,
"end": 671,
"name": "DUP1",
"source": 0
},
{
"begin": 660,
"end": 671,
"name": "SWAP2",
"source": 0
},
{
"begin": 660,
"end": 671,
"name": "POP",
"source": 0
},
{
"begin": 660,
"end": 671,
"name": "POP",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP3",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "SWAP2",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "POP",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "POP",
"source": 0
},
{
"begin": 283,
"end": 679,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 687,
"end": 714,
"name": "tag",
"source": 0,
"value": "23"
},
{
"begin": 687,
"end": 714,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 687,
"end": 714,
"name": "DUP1",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SLOAD",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SWAP1",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH",
"source": 0,
"value": "100"
},
{
"begin": 687,
"end": 714,
"name": "EXP",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "SWAP1",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "DIV",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "PUSH",
"source": 0,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 687,
"end": 714,
"name": "AND",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "DUP2",
"source": 0
},
{
"begin": 687,
"end": 714,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": -1,
"end": -1,
"name": "tag",
"source": -1,
"value": "27"
},
{
"begin": -1,
"end": -1,
"name": "JUMPDEST",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH #[$]",
"source": -1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": -1,
"end": -1,
"name": "DUP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "PUSH [$]",
"source": -1,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": -1,
"end": -1,
"name": "DUP4",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "CODECOPY",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "ADD",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SWAP1",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "JUMP",
"source": -1,
"value": "[out]"
},
{
"begin": 7,
"end": 146,
"name": "tag",
"source": 1,
"value": "39"
},
{
"begin": 7,
"end": 146,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 53,
"end": 58,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 91,
"end": 97,
"name": "DUP2",
"source": 1
},
{
"begin": 78,
"end": 98,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 69,
"end": 98,
"name": "SWAP1",
"source": 1
},
{
"begin": 69,
"end": 98,
"name": "POP",
"source": 1
},
{
"begin": 107,
"end": 140,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 134,
"end": 139,
"name": "DUP2",
"source": 1
},
{
"begin": 107,
"end": 140,
"name": "PUSH [tag]",
"source": 1,
"value": "42"
},
{
"begin": 107,
"end": 140,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 107,
"end": 140,
"name": "tag",
"source": 1,
"value": "41"
},
{
"begin": 107,
"end": 140,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 7,
"end": 146,
"name": "SWAP3",
"source": 1
},
{
"begin": 7,
"end": 146,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 146,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 146,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 146,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 152,
"end": 291,
"name": "tag",
"source": 1,
"value": "43"
},
{
"begin": 152,
"end": 291,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 198,
"end": 203,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 236,
"end": 242,
"name": "DUP2",
"source": 1
},
{
"begin": 223,
"end": 243,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 214,
"end": 243,
"name": "SWAP1",
"source": 1
},
{
"begin": 214,
"end": 243,
"name": "POP",
"source": 1
},
{
"begin": 252,
"end": 285,
"name": "PUSH [tag]",
"source": 1,
"value": "45"
},
{
"begin": 279,
"end": 284,
"name": "DUP2",
"source": 1
},
{
"begin": 252,
"end": 285,
"name": "PUSH [tag]",
"source": 1,
"value": "46"
},
{
"begin": 252,
"end": 285,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 252,
"end": 285,
"name": "tag",
"source": 1,
"value": "45"
},
{
"begin": 252,
"end": 285,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 152,
"end": 291,
"name": "SWAP3",
"source": 1
},
{
"begin": 152,
"end": 291,
"name": "SWAP2",
"source": 1
},
{
"begin": 152,
"end": 291,
"name": "POP",
"source": 1
},
{
"begin": 152,
"end": 291,
"name": "POP",
"source": 1
},
{
"begin": 152,
"end": 291,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 297,
"end": 771,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 297,
"end": 771,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 365,
"end": 371,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 373,
"end": 379,
"name": "DUP1",
"source": 1
},
{
"begin": 422,
"end": 424,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 410,
"end": 419,
"name": "DUP4",
"source": 1
},
{
"begin": 401,
"end": 408,
"name": "DUP6",
"source": 1
},
{
"begin": 397,
"end": 420,
"name": "SUB",
"source": 1
},
{
"begin": 393,
"end": 425,
"name": "SLT",
"source": 1
},
{
"begin": 390,
"end": 509,
"name": "ISZERO",
"source": 1
},
{
"begin": 390,
"end": 509,
"name": "PUSH [tag]",
"source": 1,
"value": "48"
},
{
"begin": 390,
"end": 509,
"name": "JUMPI",
"source": 1
},
{
"begin": 428,
"end": 507,
"name": "PUSH [tag]",
"source": 1,
"value": "49"
},
{
"begin": 428,
"end": 507,
"name": "PUSH [tag]",
"source": 1,
"value": "50"
},
{
"begin": 428,
"end": 507,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 428,
"end": 507,
"name": "tag",
"source": 1,
"value": "49"
},
{
"begin": 428,
"end": 507,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 390,
"end": 509,
"name": "tag",
"source": 1,
"value": "48"
},
{
"begin": 390,
"end": 509,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 548,
"end": 549,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 573,
"end": 626,
"name": "PUSH [tag]",
"source": 1,
"value": "51"
},
{
"begin": 618,
"end": 625,
"name": "DUP6",
"source": 1
},
{
"begin": 609,
"end": 615,
"name": "DUP3",
"source": 1
},
{
"begin": 598,
"end": 607,
"name": "DUP7",
"source": 1
},
{
"begin": 594,
"end": 616,
"name": "ADD",
"source": 1
},
{
"begin": 573,
"end": 626,
"name": "PUSH [tag]",
"source": 1,
"value": "39"
},
{
"begin": 573,
"end": 626,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 573,
"end": 626,
"name": "tag",
"source": 1,
"value": "51"
},
{
"begin": 573,
"end": 626,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 563,
"end": 626,
"name": "SWAP3",
"source": 1
},
{
"begin": 563,
"end": 626,
"name": "POP",
"source": 1
},
{
"begin": 519,
"end": 636,
"name": "POP",
"source": 1
},
{
"begin": 675,
"end": 677,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 701,
"end": 754,
"name": "PUSH [tag]",
"source": 1,
"value": "52"
},
{
"begin": 746,
"end": 753,
"name": "DUP6",
"source": 1
},
{
"begin": 737,
"end": 743,
"name": "DUP3",
"source": 1
},
{
"begin": 726,
"end": 735,
"name": "DUP7",
"source": 1
},
{
"begin": 722,
"end": 744,
"name": "ADD",
"source": 1
},
{
"begin": 701,
"end": 754,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 701,
"end": 754,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 701,
"end": 754,
"name": "tag",
"source": 1,
"value": "52"
},
{
"begin": 701,
"end": 754,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 691,
"end": 754,
"name": "SWAP2",
"source": 1
},
{
"begin": 691,
"end": 754,
"name": "POP",
"source": 1
},
{
"begin": 646,
"end": 764,
"name": "POP",
"source": 1
},
{
"begin": 297,
"end": 771,
"name": "SWAP3",
"source": 1
},
{
"begin": 297,
"end": 771,
"name": "POP",
"source": 1
},
{
"begin": 297,
"end": 771,
"name": "SWAP3",
"source": 1
},
{
"begin": 297,
"end": 771,
"name": "SWAP1",
"source": 1
},
{
"begin": 297,
"end": 771,
"name": "POP",
"source": 1
},
{
"begin": 297,
"end": 771,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 777,
"end": 1106,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 777,
"end": 1106,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 836,
"end": 842,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 885,
"end": 887,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 873,
"end": 882,
"name": "DUP3",
"source": 1
},
{
"begin": 864,
"end": 871,
"name": "DUP5",
"source": 1
},
{
"begin": 860,
"end": 883,
"name": "SUB",
"source": 1
},
{
"begin": 856,
"end": 888,
"name": "SLT",
"source": 1
},
{
"begin": 853,
"end": 972,
"name": "ISZERO",
"source": 1
},
{
"begin": 853,
"end": 972,
"name": "PUSH [tag]",
"source": 1,
"value": "54"
},
{
"begin": 853,
"end": 972,
"name": "JUMPI",
"source": 1
},
{
"begin": 891,
"end": 970,
"name": "PUSH [tag]",
"source": 1,
"value": "55"
},
{
"begin": 891,
"end": 970,
"name": "PUSH [tag]",
"source": 1,
"value": "50"
},
{
"begin": 891,
"end": 970,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 891,
"end": 970,
"name": "tag",
"source": 1,
"value": "55"
},
{
"begin": 891,
"end": 970,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 853,
"end": 972,
"name": "tag",
"source": 1,
"value": "54"
},
{
"begin": 853,
"end": 972,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1011,
"end": 1012,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1036,
"end": 1089,
"name": "PUSH [tag]",
"source": 1,
"value": "56"
},
{
"begin": 1081,
"end": 1088,
"name": "DUP5",
"source": 1
},
{
"begin": 1072,
"end": 1078,
"name": "DUP3",
"source": 1
},
{
"begin": 1061,
"end": 1070,
"name": "DUP6",
"source": 1
},
{
"begin": 1057,
"end": 1079,
"name": "ADD",
"source": 1
},
{
"begin": 1036,
"end": 1089,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 1036,
"end": 1089,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1036,
"end": 1089,
"name": "tag",
"source": 1,
"value": "56"
},
{
"begin": 1036,
"end": 1089,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1026,
"end": 1089,
"name": "SWAP2",
"source": 1
},
{
"begin": 1026,
"end": 1089,
"name": "POP",
"source": 1
},
{
"begin": 982,
"end": 1099,
"name": "POP",
"source": 1
},
{
"begin": 777,
"end": 1106,
"name": "SWAP3",
"source": 1
},
{
"begin": 777,
"end": 1106,
"name": "SWAP2",
"source": 1
},
{
"begin": 777,
"end": 1106,
"name": "POP",
"source": 1
},
{
"begin": 777,
"end": 1106,
"name": "POP",
"source": 1
},
{
"begin": 777,
"end": 1106,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1112,
"end": 1230,
"name": "tag",
"source": 1,
"value": "57"
},
{
"begin": 1112,
"end": 1230,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1199,
"end": 1223,
"name": "PUSH [tag]",
"source": 1,
"value": "59"
},
{
"begin": 1217,
"end": 1222,
"name": "DUP2",
"source": 1
},
{
"begin": 1199,
"end": 1223,
"name": "PUSH [tag]",
"source": 1,
"value": "60"
},
{
"begin": 1199,
"end": 1223,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1199,
"end": 1223,
"name": "tag",
"source": 1,
"value": "59"
},
{
"begin": 1199,
"end": 1223,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1194,
"end": 1197,
"name": "DUP3",
"source": 1
},
{
"begin": 1187,
"end": 1224,
"name": "MSTORE",
"source": 1
},
{
"begin": 1112,
"end": 1230,
"name": "POP",
"source": 1
},
{
"begin": 1112,
"end": 1230,
"name": "POP",
"source": 1
},
{
"begin": 1112,
"end": 1230,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1236,
"end": 1393,
"name": "tag",
"source": 1,
"value": "61"
},
{
"begin": 1236,
"end": 1393,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1341,
"end": 1386,
"name": "PUSH [tag]",
"source": 1,
"value": "63"
},
{
"begin": 1361,
"end": 1385,
"name": "PUSH [tag]",
"source": 1,
"value": "64"
},
{
"begin": 1379,
"end": 1384,
"name": "DUP3",
"source": 1
},
{
"begin": 1361,
"end": 1385,
"name": "PUSH [tag]",
"source": 1,
"value": "60"
},
{
"begin": 1361,
"end": 1385,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1361,
"end": 1385,
"name": "tag",
"source": 1,
"value": "64"
},
{
"begin": 1361,
"end": 1385,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1341,
"end": 1386,
"name": "PUSH [tag]",
"source": 1,
"value": "65"
},
{
"begin": 1341,
"end": 1386,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1341,
"end": 1386,
"name": "tag",
"source": 1,
"value": "63"
},
{
"begin": 1341,
"end": 1386,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1336,
"end": 1339,
"name": "DUP3",
"source": 1
},
{
"begin": 1329,
"end": 1387,
"name": "MSTORE",
"source": 1
},
{
"begin": 1236,
"end": 1393,
"name": "POP",
"source": 1
},
{
"begin": 1236,
"end": 1393,
"name": "POP",
"source": 1
},
{
"begin": 1236,
"end": 1393,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1399,
"end": 1552,
"name": "tag",
"source": 1,
"value": "66"
},
{
"begin": 1399,
"end": 1552,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1502,
"end": 1545,
"name": "PUSH [tag]",
"source": 1,
"value": "68"
},
{
"begin": 1521,
"end": 1544,
"name": "PUSH [tag]",
"source": 1,
"value": "69"
},
{
"begin": 1538,
"end": 1543,
"name": "DUP3",
"source": 1
},
{
"begin": 1521,
"end": 1544,
"name": "PUSH [tag]",
"source": 1,
"value": "70"
},
{
"begin": 1521,
"end": 1544,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1521,
"end": 1544,
"name": "tag",
"source": 1,
"value": "69"
},
{
"begin": 1521,
"end": 1544,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1502,
"end": 1545,
"name": "PUSH [tag]",
"source": 1,
"value": "71"
},
{
"begin": 1502,
"end": 1545,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1502,
"end": 1545,
"name": "tag",
"source": 1,
"value": "68"
},
{
"begin": 1502,
"end": 1545,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1497,
"end": 1500,
"name": "DUP3",
"source": 1
},
{
"begin": 1490,
"end": 1546,
"name": "MSTORE",
"source": 1
},
{
"begin": 1399,
"end": 1552,
"name": "POP",
"source": 1
},
{
"begin": 1399,
"end": 1552,
"name": "POP",
"source": 1
},
{
"begin": 1399,
"end": 1552,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1558,
"end": 1676,
"name": "tag",
"source": 1,
"value": "72"
},
{
"begin": 1558,
"end": 1676,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1645,
"end": 1669,
"name": "PUSH [tag]",
"source": 1,
"value": "74"
},
{
"begin": 1663,
"end": 1668,
"name": "DUP2",
"source": 1
},
{
"begin": 1645,
"end": 1669,
"name": "PUSH [tag]",
"source": 1,
"value": "75"
},
{
"begin": 1645,
"end": 1669,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1645,
"end": 1669,
"name": "tag",
"source": 1,
"value": "74"
},
{
"begin": 1645,
"end": 1669,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1640,
"end": 1643,
"name": "DUP3",
"source": 1
},
{
"begin": 1633,
"end": 1670,
"name": "MSTORE",
"source": 1
},
{
"begin": 1558,
"end": 1676,
"name": "POP",
"source": 1
},
{
"begin": 1558,
"end": 1676,
"name": "POP",
"source": 1
},
{
"begin": 1558,
"end": 1676,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1682,
"end": 1839,
"name": "tag",
"source": 1,
"value": "76"
},
{
"begin": 1682,
"end": 1839,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1787,
"end": 1832,
"name": "PUSH [tag]",
"source": 1,
"value": "78"
},
{
"begin": 1807,
"end": 1831,
"name": "PUSH [tag]",
"source": 1,
"value": "79"
},
{
"begin": 1825,
"end": 1830,
"name": "DUP3",
"source": 1
},
{
"begin": 1807,
"end": 1831,
"name": "PUSH [tag]",
"source": 1,
"value": "75"
},
{
"begin": 1807,
"end": 1831,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1807,
"end": 1831,
"name": "tag",
"source": 1,
"value": "79"
},
{
"begin": 1807,
"end": 1831,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1787,
"end": 1832,
"name": "PUSH [tag]",
"source": 1,
"value": "80"
},
{
"begin": 1787,
"end": 1832,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1787,
"end": 1832,
"name": "tag",
"source": 1,
"value": "78"
},
{
"begin": 1787,
"end": 1832,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1782,
"end": 1785,
"name": "DUP3",
"source": 1
},
{
"begin": 1775,
"end": 1833,
"name": "MSTORE",
"source": 1
},
{
"begin": 1682,
"end": 1839,
"name": "POP",
"source": 1
},
{
"begin": 1682,
"end": 1839,
"name": "POP",
"source": 1
},
{
"begin": 1682,
"end": 1839,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 1845,
"end": 2218,
"name": "tag",
"source": 1,
"value": "81"
},
{
"begin": 1845,
"end": 2218,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1949,
"end": 1952,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1977,
"end": 2015,
"name": "PUSH [tag]",
"source": 1,
"value": "83"
},
{
"begin": 2009,
"end": 2014,
"name": "DUP3",
"source": 1
},
{
"begin": 1977,
"end": 2015,
"name": "PUSH [tag]",
"source": 1,
"value": "84"
},
{
"begin": 1977,
"end": 2015,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 1977,
"end": 2015,
"name": "tag",
"source": 1,
"value": "83"
},
{
"begin": 1977,
"end": 2015,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2031,
"end": 2119,
"name": "PUSH [tag]",
"source": 1,
"value": "85"
},
{
"begin": 2112,
"end": 2118,
"name": "DUP2",
"source": 1
},
{
"begin": 2107,
"end": 2110,
"name": "DUP6",
"source": 1
},
{
"begin": 2031,
"end": 2119,
"name": "PUSH [tag]",
"source": 1,
"value": "86"
},
{
"begin": 2031,
"end": 2119,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2031,
"end": 2119,
"name": "tag",
"source": 1,
"value": "85"
},
{
"begin": 2031,
"end": 2119,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2024,
"end": 2119,
"name": "SWAP4",
"source": 1
},
{
"begin": 2024,
"end": 2119,
"name": "POP",
"source": 1
},
{
"begin": 2128,
"end": 2180,
"name": "PUSH [tag]",
"source": 1,
"value": "87"
},
{
"begin": 2173,
"end": 2179,
"name": "DUP2",
"source": 1
},
{
"begin": 2168,
"end": 2171,
"name": "DUP6",
"source": 1
},
{
"begin": 2161,
"end": 2165,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 2154,
"end": 2159,
"name": "DUP7",
"source": 1
},
{
"begin": 2150,
"end": 2166,
"name": "ADD",
"source": 1
},
{
"begin": 2128,
"end": 2180,
"name": "PUSH [tag]",
"source": 1,
"value": "88"
},
{
"begin": 2128,
"end": 2180,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2128,
"end": 2180,
"name": "tag",
"source": 1,
"value": "87"
},
{
"begin": 2128,
"end": 2180,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2205,
"end": 2211,
"name": "DUP1",
"source": 1
},
{
"begin": 2200,
"end": 2203,
"name": "DUP5",
"source": 1
},
{
"begin": 2196,
"end": 2212,
"name": "ADD",
"source": 1
},
{
"begin": 2189,
"end": 2212,
"name": "SWAP2",
"source": 1
},
{
"begin": 2189,
"end": 2212,
"name": "POP",
"source": 1
},
{
"begin": 1953,
"end": 2218,
"name": "POP",
"source": 1
},
{
"begin": 1845,
"end": 2218,
"name": "SWAP3",
"source": 1
},
{
"begin": 1845,
"end": 2218,
"name": "SWAP2",
"source": 1
},
{
"begin": 1845,
"end": 2218,
"name": "POP",
"source": 1
},
{
"begin": 1845,
"end": 2218,
"name": "POP",
"source": 1
},
{
"begin": 1845,
"end": 2218,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 2224,
"end": 2342,
"name": "tag",
"source": 1,
"value": "89"
},
{
"begin": 2224,
"end": 2342,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2311,
"end": 2335,
"name": "PUSH [tag]",
"source": 1,
"value": "91"
},
{
"begin": 2329,
"end": 2334,
"name": "DUP2",
"source": 1
},
{
"begin": 2311,
"end": 2335,
"name": "PUSH [tag]",
"source": 1,
"value": "92"
},
{
"begin": 2311,
"end": 2335,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2311,
"end": 2335,
"name": "tag",
"source": 1,
"value": "91"
},
{
"begin": 2311,
"end": 2335,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2306,
"end": 2309,
"name": "DUP3",
"source": 1
},
{
"begin": 2299,
"end": 2336,
"name": "MSTORE",
"source": 1
},
{
"begin": 2224,
"end": 2342,
"name": "POP",
"source": 1
},
{
"begin": 2224,
"end": 2342,
"name": "POP",
"source": 1
},
{
"begin": 2224,
"end": 2342,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 2348,
"end": 2505,
"name": "tag",
"source": 1,
"value": "93"
},
{
"begin": 2348,
"end": 2505,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2453,
"end": 2498,
"name": "PUSH [tag]",
"source": 1,
"value": "95"
},
{
"begin": 2473,
"end": 2497,
"name": "PUSH [tag]",
"source": 1,
"value": "96"
},
{
"begin": 2491,
"end": 2496,
"name": "DUP3",
"source": 1
},
{
"begin": 2473,
"end": 2497,
"name": "PUSH [tag]",
"source": 1,
"value": "92"
},
{
"begin": 2473,
"end": 2497,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2473,
"end": 2497,
"name": "tag",
"source": 1,
"value": "96"
},
{
"begin": 2473,
"end": 2497,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2453,
"end": 2498,
"name": "PUSH [tag]",
"source": 1,
"value": "97"
},
{
"begin": 2453,
"end": 2498,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2453,
"end": 2498,
"name": "tag",
"source": 1,
"value": "95"
},
{
"begin": 2453,
"end": 2498,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2448,
"end": 2451,
"name": "DUP3",
"source": 1
},
{
"begin": 2441,
"end": 2499,
"name": "MSTORE",
"source": 1
},
{
"begin": 2348,
"end": 2505,
"name": "POP",
"source": 1
},
{
"begin": 2348,
"end": 2505,
"name": "POP",
"source": 1
},
{
"begin": 2348,
"end": 2505,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 2511,
"end": 3185,
"name": "tag",
"source": 1,
"value": "37"
},
{
"begin": 2511,
"end": 3185,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2705,
"end": 2708,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 2720,
"end": 2793,
"name": "PUSH [tag]",
"source": 1,
"value": "99"
},
{
"begin": 2789,
"end": 2792,
"name": "DUP3",
"source": 1
},
{
"begin": 2780,
"end": 2786,
"name": "DUP8",
"source": 1
},
{
"begin": 2720,
"end": 2793,
"name": "PUSH [tag]",
"source": 1,
"value": "66"
},
{
"begin": 2720,
"end": 2793,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2720,
"end": 2793,
"name": "tag",
"source": 1,
"value": "99"
},
{
"begin": 2720,
"end": 2793,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2818,
"end": 2819,
"name": "PUSH",
"source": 1,
"value": "1"
},
{
"begin": 2813,
"end": 2816,
"name": "DUP3",
"source": 1
},
{
"begin": 2809,
"end": 2820,
"name": "ADD",
"source": 1
},
{
"begin": 2802,
"end": 2820,
"name": "SWAP2",
"source": 1
},
{
"begin": 2802,
"end": 2820,
"name": "POP",
"source": 1
},
{
"begin": 2830,
"end": 2905,
"name": "PUSH [tag]",
"source": 1,
"value": "100"
},
{
"begin": 2901,
"end": 2904,
"name": "DUP3",
"source": 1
},
{
"begin": 2892,
"end": 2898,
"name": "DUP7",
"source": 1
},
{
"begin": 2830,
"end": 2905,
"name": "PUSH [tag]",
"source": 1,
"value": "61"
},
{
"begin": 2830,
"end": 2905,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2830,
"end": 2905,
"name": "tag",
"source": 1,
"value": "100"
},
{
"begin": 2830,
"end": 2905,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 2930,
"end": 2932,
"name": "PUSH",
"source": 1,
"value": "14"
},
{
"begin": 2925,
"end": 2928,
"name": "DUP3",
"source": 1
},
{
"begin": 2921,
"end": 2933,
"name": "ADD",
"source": 1
},
{
"begin": 2914,
"end": 2933,
"name": "SWAP2",
"source": 1
},
{
"begin": 2914,
"end": 2933,
"name": "POP",
"source": 1
},
{
"begin": 2943,
"end": 3018,
"name": "PUSH [tag]",
"source": 1,
"value": "101"
},
{
"begin": 3014,
"end": 3017,
"name": "DUP3",
"source": 1
},
{
"begin": 3005,
"end": 3011,
"name": "DUP6",
"source": 1
},
{
"begin": 2943,
"end": 3018,
"name": "PUSH [tag]",
"source": 1,
"value": "76"
},
{
"begin": 2943,
"end": 3018,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 2943,
"end": 3018,
"name": "tag",
"source": 1,
"value": "101"
},
{
"begin": 2943,
"end": 3018,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3043,
"end": 3045,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 3038,
"end": 3041,
"name": "DUP3",
"source": 1
},
{
"begin": 3034,
"end": 3046,
"name": "ADD",
"source": 1
},
{
"begin": 3027,
"end": 3046,
"name": "SWAP2",
"source": 1
},
{
"begin": 3027,
"end": 3046,
"name": "POP",
"source": 1
},
{
"begin": 3056,
"end": 3131,
"name": "PUSH [tag]",
"source": 1,
"value": "102"
},
{
"begin": 3127,
"end": 3130,
"name": "DUP3",
"source": 1
},
{
"begin": 3118,
"end": 3124,
"name": "DUP5",
"source": 1
},
{
"begin": 3056,
"end": 3131,
"name": "PUSH [tag]",
"source": 1,
"value": "76"
},
{
"begin": 3056,
"end": 3131,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 3056,
"end": 3131,
"name": "tag",
"source": 1,
"value": "102"
},
{
"begin": 3056,
"end": 3131,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3156,
"end": 3158,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 3151,
"end": 3154,
"name": "DUP3",
"source": 1
},
{
"begin": 3147,
"end": 3159,
"name": "ADD",
"source": 1
},
{
"begin": 3140,
"end": 3159,
"name": "SWAP2",
"source": 1
},
{
"begin": 3140,
"end": 3159,
"name": "POP",
"source": 1
},
{
"begin": 3176,
"end": 3179,
"name": "DUP2",
"source": 1
},
{
"begin": 3169,
"end": 3179,
"name": "SWAP1",
"source": 1
},
{
"begin": 3169,
"end": 3179,
"name": "POP",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "SWAP6",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "SWAP5",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "POP",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "POP",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "POP",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "POP",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "POP",
"source": 1
},
{
"begin": 2511,
"end": 3185,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 3191,
"end": 3603,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 3191,
"end": 3603,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3349,
"end": 3352,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 3371,
"end": 3464,
"name": "PUSH [tag]",
"source": 1,
"value": "104"
},
{
"begin": 3460,
"end": 3463,
"name": "DUP3",
"source": 1
},
{
"begin": 3451,
"end": 3457,
"name": "DUP6",
"source": 1
},
{
"begin": 3371,
"end": 3464,
"name": "PUSH [tag]",
"source": 1,
"value": "81"
},
{
"begin": 3371,
"end": 3464,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 3371,
"end": 3464,
"name": "tag",
"source": 1,
"value": "104"
},
{
"begin": 3371,
"end": 3464,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3364,
"end": 3464,
"name": "SWAP2",
"source": 1
},
{
"begin": 3364,
"end": 3464,
"name": "POP",
"source": 1
},
{
"begin": 3474,
"end": 3549,
"name": "PUSH [tag]",
"source": 1,
"value": "105"
},
{
"begin": 3545,
"end": 3548,
"name": "DUP3",
"source": 1
},
{
"begin": 3536,
"end": 3542,
"name": "DUP5",
"source": 1
},
{
"begin": 3474,
"end": 3549,
"name": "PUSH [tag]",
"source": 1,
"value": "93"
},
{
"begin": 3474,
"end": 3549,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 3474,
"end": 3549,
"name": "tag",
"source": 1,
"value": "105"
},
{
"begin": 3474,
"end": 3549,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3574,
"end": 3576,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 3569,
"end": 3572,
"name": "DUP3",
"source": 1
},
{
"begin": 3565,
"end": 3577,
"name": "ADD",
"source": 1
},
{
"begin": 3558,
"end": 3577,
"name": "SWAP2",
"source": 1
},
{
"begin": 3558,
"end": 3577,
"name": "POP",
"source": 1
},
{
"begin": 3594,
"end": 3597,
"name": "DUP2",
"source": 1
},
{
"begin": 3587,
"end": 3597,
"name": "SWAP1",
"source": 1
},
{
"begin": 3587,
"end": 3597,
"name": "POP",
"source": 1
},
{
"begin": 3191,
"end": 3603,
"name": "SWAP4",
"source": 1
},
{
"begin": 3191,
"end": 3603,
"name": "SWAP3",
"source": 1
},
{
"begin": 3191,
"end": 3603,
"name": "POP",
"source": 1
},
{
"begin": 3191,
"end": 3603,
"name": "POP",
"source": 1
},
{
"begin": 3191,
"end": 3603,
"name": "POP",
"source": 1
},
{
"begin": 3191,
"end": 3603,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 3609,
"end": 3831,
"name": "tag",
"source": 1,
"value": "21"
},
{
"begin": 3609,
"end": 3831,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3702,
"end": 3706,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 3740,
"end": 3742,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 3729,
"end": 3738,
"name": "DUP3",
"source": 1
},
{
"begin": 3725,
"end": 3743,
"name": "ADD",
"source": 1
},
{
"begin": 3717,
"end": 3743,
"name": "SWAP1",
"source": 1
},
{
"begin": 3717,
"end": 3743,
"name": "POP",
"source": 1
},
{
"begin": 3753,
"end": 3824,
"name": "PUSH [tag]",
"source": 1,
"value": "107"
},
{
"begin": 3821,
"end": 3822,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 3810,
"end": 3819,
"name": "DUP4",
"source": 1
},
{
"begin": 3806,
"end": 3823,
"name": "ADD",
"source": 1
},
{
"begin": 3797,
"end": 3803,
"name": "DUP5",
"source": 1
},
{
"begin": 3753,
"end": 3824,
"name": "PUSH [tag]",
"source": 1,
"value": "57"
},
{
"begin": 3753,
"end": 3824,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 3753,
"end": 3824,
"name": "tag",
"source": 1,
"value": "107"
},
{
"begin": 3753,
"end": 3824,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3609,
"end": 3831,
"name": "SWAP3",
"source": 1
},
{
"begin": 3609,
"end": 3831,
"name": "SWAP2",
"source": 1
},
{
"begin": 3609,
"end": 3831,
"name": "POP",
"source": 1
},
{
"begin": 3609,
"end": 3831,
"name": "POP",
"source": 1
},
{
"begin": 3609,
"end": 3831,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 3837,
"end": 4059,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 3837,
"end": 4059,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3930,
"end": 3934,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 3968,
"end": 3970,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 3957,
"end": 3966,
"name": "DUP3",
"source": 1
},
{
"begin": 3953,
"end": 3971,
"name": "ADD",
"source": 1
},
{
"begin": 3945,
"end": 3971,
"name": "SWAP1",
"source": 1
},
{
"begin": 3945,
"end": 3971,
"name": "POP",
"source": 1
},
{
"begin": 3981,
"end": 4052,
"name": "PUSH [tag]",
"source": 1,
"value": "109"
},
{
"begin": 4049,
"end": 4050,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4038,
"end": 4047,
"name": "DUP4",
"source": 1
},
{
"begin": 4034,
"end": 4051,
"name": "ADD",
"source": 1
},
{
"begin": 4025,
"end": 4031,
"name": "DUP5",
"source": 1
},
{
"begin": 3981,
"end": 4052,
"name": "PUSH [tag]",
"source": 1,
"value": "72"
},
{
"begin": 3981,
"end": 4052,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 3981,
"end": 4052,
"name": "tag",
"source": 1,
"value": "109"
},
{
"begin": 3981,
"end": 4052,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 3837,
"end": 4059,
"name": "SWAP3",
"source": 1
},
{
"begin": 3837,
"end": 4059,
"name": "SWAP2",
"source": 1
},
{
"begin": 3837,
"end": 4059,
"name": "POP",
"source": 1
},
{
"begin": 3837,
"end": 4059,
"name": "POP",
"source": 1
},
{
"begin": 3837,
"end": 4059,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4065,
"end": 4287,
"name": "tag",
"source": 1,
"value": "29"
},
{
"begin": 4065,
"end": 4287,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4158,
"end": 4162,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4196,
"end": 4198,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 4185,
"end": 4194,
"name": "DUP3",
"source": 1
},
{
"begin": 4181,
"end": 4199,
"name": "ADD",
"source": 1
},
{
"begin": 4173,
"end": 4199,
"name": "SWAP1",
"source": 1
},
{
"begin": 4173,
"end": 4199,
"name": "POP",
"source": 1
},
{
"begin": 4209,
"end": 4280,
"name": "PUSH [tag]",
"source": 1,
"value": "111"
},
{
"begin": 4277,
"end": 4278,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4266,
"end": 4275,
"name": "DUP4",
"source": 1
},
{
"begin": 4262,
"end": 4279,
"name": "ADD",
"source": 1
},
{
"begin": 4253,
"end": 4259,
"name": "DUP5",
"source": 1
},
{
"begin": 4209,
"end": 4280,
"name": "PUSH [tag]",
"source": 1,
"value": "89"
},
{
"begin": 4209,
"end": 4280,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 4209,
"end": 4280,
"name": "tag",
"source": 1,
"value": "111"
},
{
"begin": 4209,
"end": 4280,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4065,
"end": 4287,
"name": "SWAP3",
"source": 1
},
{
"begin": 4065,
"end": 4287,
"name": "SWAP2",
"source": 1
},
{
"begin": 4065,
"end": 4287,
"name": "POP",
"source": 1
},
{
"begin": 4065,
"end": 4287,
"name": "POP",
"source": 1
},
{
"begin": 4065,
"end": 4287,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4374,
"end": 4472,
"name": "tag",
"source": 1,
"value": "84"
},
{
"begin": 4374,
"end": 4472,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4425,
"end": 4431,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4459,
"end": 4464,
"name": "DUP2",
"source": 1
},
{
"begin": 4453,
"end": 4465,
"name": "MLOAD",
"source": 1
},
{
"begin": 4443,
"end": 4465,
"name": "SWAP1",
"source": 1
},
{
"begin": 4443,
"end": 4465,
"name": "POP",
"source": 1
},
{
"begin": 4374,
"end": 4472,
"name": "SWAP2",
"source": 1
},
{
"begin": 4374,
"end": 4472,
"name": "SWAP1",
"source": 1
},
{
"begin": 4374,
"end": 4472,
"name": "POP",
"source": 1
},
{
"begin": 4374,
"end": 4472,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4478,
"end": 4625,
"name": "tag",
"source": 1,
"value": "86"
},
{
"begin": 4478,
"end": 4625,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4579,
"end": 4590,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4616,
"end": 4619,
"name": "DUP2",
"source": 1
},
{
"begin": 4601,
"end": 4619,
"name": "SWAP1",
"source": 1
},
{
"begin": 4601,
"end": 4619,
"name": "POP",
"source": 1
},
{
"begin": 4478,
"end": 4625,
"name": "SWAP3",
"source": 1
},
{
"begin": 4478,
"end": 4625,
"name": "SWAP2",
"source": 1
},
{
"begin": 4478,
"end": 4625,
"name": "POP",
"source": 1
},
{
"begin": 4478,
"end": 4625,
"name": "POP",
"source": 1
},
{
"begin": 4478,
"end": 4625,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4631,
"end": 4727,
"name": "tag",
"source": 1,
"value": "60"
},
{
"begin": 4631,
"end": 4727,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4668,
"end": 4675,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4697,
"end": 4721,
"name": "PUSH [tag]",
"source": 1,
"value": "117"
},
{
"begin": 4715,
"end": 4720,
"name": "DUP3",
"source": 1
},
{
"begin": 4697,
"end": 4721,
"name": "PUSH [tag]",
"source": 1,
"value": "118"
},
{
"begin": 4697,
"end": 4721,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 4697,
"end": 4721,
"name": "tag",
"source": 1,
"value": "117"
},
{
"begin": 4697,
"end": 4721,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4686,
"end": 4721,
"name": "SWAP1",
"source": 1
},
{
"begin": 4686,
"end": 4721,
"name": "POP",
"source": 1
},
{
"begin": 4631,
"end": 4727,
"name": "SWAP2",
"source": 1
},
{
"begin": 4631,
"end": 4727,
"name": "SWAP1",
"source": 1
},
{
"begin": 4631,
"end": 4727,
"name": "POP",
"source": 1
},
{
"begin": 4631,
"end": 4727,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4733,
"end": 4882,
"name": "tag",
"source": 1,
"value": "70"
},
{
"begin": 4733,
"end": 4882,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4769,
"end": 4776,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4809,
"end": 4875,
"name": "PUSH",
"source": 1,
"value": "FF00000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 4802,
"end": 4807,
"name": "DUP3",
"source": 1
},
{
"begin": 4798,
"end": 4876,
"name": "AND",
"source": 1
},
{
"begin": 4787,
"end": 4876,
"name": "SWAP1",
"source": 1
},
{
"begin": 4787,
"end": 4876,
"name": "POP",
"source": 1
},
{
"begin": 4733,
"end": 4882,
"name": "SWAP2",
"source": 1
},
{
"begin": 4733,
"end": 4882,
"name": "SWAP1",
"source": 1
},
{
"begin": 4733,
"end": 4882,
"name": "POP",
"source": 1
},
{
"begin": 4733,
"end": 4882,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4888,
"end": 4965,
"name": "tag",
"source": 1,
"value": "75"
},
{
"begin": 4888,
"end": 4965,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 4925,
"end": 4932,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 4954,
"end": 4959,
"name": "DUP2",
"source": 1
},
{
"begin": 4943,
"end": 4959,
"name": "SWAP1",
"source": 1
},
{
"begin": 4943,
"end": 4959,
"name": "POP",
"source": 1
},
{
"begin": 4888,
"end": 4965,
"name": "SWAP2",
"source": 1
},
{
"begin": 4888,
"end": 4965,
"name": "SWAP1",
"source": 1
},
{
"begin": 4888,
"end": 4965,
"name": "POP",
"source": 1
},
{
"begin": 4888,
"end": 4965,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 4971,
"end": 5097,
"name": "tag",
"source": 1,
"value": "118"
},
{
"begin": 4971,
"end": 5097,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5008,
"end": 5015,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5048,
"end": 5090,
"name": "PUSH",
"source": 1,
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 5041,
"end": 5046,
"name": "DUP3",
"source": 1
},
{
"begin": 5037,
"end": 5091,
"name": "AND",
"source": 1
},
{
"begin": 5026,
"end": 5091,
"name": "SWAP1",
"source": 1
},
{
"begin": 5026,
"end": 5091,
"name": "POP",
"source": 1
},
{
"begin": 4971,
"end": 5097,
"name": "SWAP2",
"source": 1
},
{
"begin": 4971,
"end": 5097,
"name": "SWAP1",
"source": 1
},
{
"begin": 4971,
"end": 5097,
"name": "POP",
"source": 1
},
{
"begin": 4971,
"end": 5097,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5103,
"end": 5180,
"name": "tag",
"source": 1,
"value": "92"
},
{
"begin": 5103,
"end": 5180,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5140,
"end": 5147,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5169,
"end": 5174,
"name": "DUP2",
"source": 1
},
{
"begin": 5158,
"end": 5174,
"name": "SWAP1",
"source": 1
},
{
"begin": 5158,
"end": 5174,
"name": "POP",
"source": 1
},
{
"begin": 5103,
"end": 5180,
"name": "SWAP2",
"source": 1
},
{
"begin": 5103,
"end": 5180,
"name": "SWAP1",
"source": 1
},
{
"begin": 5103,
"end": 5180,
"name": "POP",
"source": 1
},
{
"begin": 5103,
"end": 5180,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5186,
"end": 5493,
"name": "tag",
"source": 1,
"value": "88"
},
{
"begin": 5186,
"end": 5493,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5254,
"end": 5255,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5264,
"end": 5377,
"name": "tag",
"source": 1,
"value": "124"
},
{
"begin": 5264,
"end": 5377,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5278,
"end": 5284,
"name": "DUP4",
"source": 1
},
{
"begin": 5275,
"end": 5276,
"name": "DUP2",
"source": 1
},
{
"begin": 5272,
"end": 5285,
"name": "LT",
"source": 1
},
{
"begin": 5264,
"end": 5377,
"name": "ISZERO",
"source": 1
},
{
"begin": 5264,
"end": 5377,
"name": "PUSH [tag]",
"source": 1,
"value": "126"
},
{
"begin": 5264,
"end": 5377,
"name": "JUMPI",
"source": 1
},
{
"begin": 5363,
"end": 5364,
"name": "DUP1",
"source": 1
},
{
"begin": 5358,
"end": 5361,
"name": "DUP3",
"source": 1
},
{
"begin": 5354,
"end": 5365,
"name": "ADD",
"source": 1
},
{
"begin": 5348,
"end": 5366,
"name": "MLOAD",
"source": 1
},
{
"begin": 5344,
"end": 5345,
"name": "DUP2",
"source": 1
},
{
"begin": 5339,
"end": 5342,
"name": "DUP5",
"source": 1
},
{
"begin": 5335,
"end": 5346,
"name": "ADD",
"source": 1
},
{
"begin": 5328,
"end": 5367,
"name": "MSTORE",
"source": 1
},
{
"begin": 5300,
"end": 5302,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 5297,
"end": 5298,
"name": "DUP2",
"source": 1
},
{
"begin": 5293,
"end": 5303,
"name": "ADD",
"source": 1
},
{
"begin": 5288,
"end": 5303,
"name": "SWAP1",
"source": 1
},
{
"begin": 5288,
"end": 5303,
"name": "POP",
"source": 1
},
{
"begin": 5264,
"end": 5377,
"name": "PUSH [tag]",
"source": 1,
"value": "124"
},
{
"begin": 5264,
"end": 5377,
"name": "JUMP",
"source": 1
},
{
"begin": 5264,
"end": 5377,
"name": "tag",
"source": 1,
"value": "126"
},
{
"begin": 5264,
"end": 5377,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5395,
"end": 5401,
"name": "DUP4",
"source": 1
},
{
"begin": 5392,
"end": 5393,
"name": "DUP2",
"source": 1
},
{
"begin": 5389,
"end": 5402,
"name": "GT",
"source": 1
},
{
"begin": 5386,
"end": 5487,
"name": "ISZERO",
"source": 1
},
{
"begin": 5386,
"end": 5487,
"name": "PUSH [tag]",
"source": 1,
"value": "127"
},
{
"begin": 5386,
"end": 5487,
"name": "JUMPI",
"source": 1
},
{
"begin": 5475,
"end": 5476,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5466,
"end": 5472,
"name": "DUP5",
"source": 1
},
{
"begin": 5461,
"end": 5464,
"name": "DUP5",
"source": 1
},
{
"begin": 5457,
"end": 5473,
"name": "ADD",
"source": 1
},
{
"begin": 5450,
"end": 5477,
"name": "MSTORE",
"source": 1
},
{
"begin": 5386,
"end": 5487,
"name": "tag",
"source": 1,
"value": "127"
},
{
"begin": 5386,
"end": 5487,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5235,
"end": 5493,
"name": "POP",
"source": 1
},
{
"begin": 5186,
"end": 5493,
"name": "POP",
"source": 1
},
{
"begin": 5186,
"end": 5493,
"name": "POP",
"source": 1
},
{
"begin": 5186,
"end": 5493,
"name": "POP",
"source": 1
},
{
"begin": 5186,
"end": 5493,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5499,
"end": 5599,
"name": "tag",
"source": 1,
"value": "65"
},
{
"begin": 5499,
"end": 5599,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5538,
"end": 5545,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5567,
"end": 5593,
"name": "PUSH [tag]",
"source": 1,
"value": "129"
},
{
"begin": 5587,
"end": 5592,
"name": "DUP3",
"source": 1
},
{
"begin": 5567,
"end": 5593,
"name": "PUSH [tag]",
"source": 1,
"value": "130"
},
{
"begin": 5567,
"end": 5593,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 5567,
"end": 5593,
"name": "tag",
"source": 1,
"value": "129"
},
{
"begin": 5567,
"end": 5593,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5556,
"end": 5593,
"name": "SWAP1",
"source": 1
},
{
"begin": 5556,
"end": 5593,
"name": "POP",
"source": 1
},
{
"begin": 5499,
"end": 5599,
"name": "SWAP2",
"source": 1
},
{
"begin": 5499,
"end": 5599,
"name": "SWAP1",
"source": 1
},
{
"begin": 5499,
"end": 5599,
"name": "POP",
"source": 1
},
{
"begin": 5499,
"end": 5599,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5605,
"end": 5683,
"name": "tag",
"source": 1,
"value": "71"
},
{
"begin": 5605,
"end": 5683,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5643,
"end": 5650,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5672,
"end": 5677,
"name": "DUP2",
"source": 1
},
{
"begin": 5661,
"end": 5677,
"name": "SWAP1",
"source": 1
},
{
"begin": 5661,
"end": 5677,
"name": "POP",
"source": 1
},
{
"begin": 5605,
"end": 5683,
"name": "SWAP2",
"source": 1
},
{
"begin": 5605,
"end": 5683,
"name": "SWAP1",
"source": 1
},
{
"begin": 5605,
"end": 5683,
"name": "POP",
"source": 1
},
{
"begin": 5605,
"end": 5683,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5689,
"end": 5768,
"name": "tag",
"source": 1,
"value": "80"
},
{
"begin": 5689,
"end": 5768,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5728,
"end": 5735,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5757,
"end": 5762,
"name": "DUP2",
"source": 1
},
{
"begin": 5746,
"end": 5762,
"name": "SWAP1",
"source": 1
},
{
"begin": 5746,
"end": 5762,
"name": "POP",
"source": 1
},
{
"begin": 5689,
"end": 5768,
"name": "SWAP2",
"source": 1
},
{
"begin": 5689,
"end": 5768,
"name": "SWAP1",
"source": 1
},
{
"begin": 5689,
"end": 5768,
"name": "POP",
"source": 1
},
{
"begin": 5689,
"end": 5768,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5774,
"end": 5868,
"name": "tag",
"source": 1,
"value": "130"
},
{
"begin": 5774,
"end": 5868,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5813,
"end": 5820,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5842,
"end": 5862,
"name": "PUSH [tag]",
"source": 1,
"value": "134"
},
{
"begin": 5856,
"end": 5861,
"name": "DUP3",
"source": 1
},
{
"begin": 5842,
"end": 5862,
"name": "PUSH [tag]",
"source": 1,
"value": "135"
},
{
"begin": 5842,
"end": 5862,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 5842,
"end": 5862,
"name": "tag",
"source": 1,
"value": "134"
},
{
"begin": 5842,
"end": 5862,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5831,
"end": 5862,
"name": "SWAP1",
"source": 1
},
{
"begin": 5831,
"end": 5862,
"name": "POP",
"source": 1
},
{
"begin": 5774,
"end": 5868,
"name": "SWAP2",
"source": 1
},
{
"begin": 5774,
"end": 5868,
"name": "SWAP1",
"source": 1
},
{
"begin": 5774,
"end": 5868,
"name": "POP",
"source": 1
},
{
"begin": 5774,
"end": 5868,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 5874,
"end": 5953,
"name": "tag",
"source": 1,
"value": "97"
},
{
"begin": 5874,
"end": 5953,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 5913,
"end": 5920,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 5942,
"end": 5947,
"name": "DUP2",
"source": 1
},
{
"begin": 5931,
"end": 5947,
"name": "SWAP1",
"source": 1
},
{
"begin": 5931,
"end": 5947,
"name": "POP",
"source": 1
},
{
"begin": 5874,
"end": 5953,
"name": "SWAP2",
"source": 1
},
{
"begin": 5874,
"end": 5953,
"name": "SWAP1",
"source": 1
},
{
"begin": 5874,
"end": 5953,
"name": "POP",
"source": 1
},
{
"begin": 5874,
"end": 5953,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 6082,
"end": 6199,
"name": "tag",
"source": 1,
"value": "50"
},
{
"begin": 6082,
"end": 6199,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6191,
"end": 6192,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 6188,
"end": 6189,
"name": "DUP1",
"source": 1
},
{
"begin": 6181,
"end": 6193,
"name": "REVERT",
"source": 1
},
{
"begin": 6205,
"end": 6299,
"name": "tag",
"source": 1,
"value": "135"
},
{
"begin": 6205,
"end": 6299,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6238,
"end": 6246,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 6286,
"end": 6291,
"name": "DUP2",
"source": 1
},
{
"begin": 6282,
"end": 6284,
"name": "PUSH",
"source": 1,
"value": "60"
},
{
"begin": 6278,
"end": 6292,
"name": "SHL",
"source": 1
},
{
"begin": 6257,
"end": 6292,
"name": "SWAP1",
"source": 1
},
{
"begin": 6257,
"end": 6292,
"name": "POP",
"source": 1
},
{
"begin": 6205,
"end": 6299,
"name": "SWAP2",
"source": 1
},
{
"begin": 6205,
"end": 6299,
"name": "SWAP1",
"source": 1
},
{
"begin": 6205,
"end": 6299,
"name": "POP",
"source": 1
},
{
"begin": 6205,
"end": 6299,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 6305,
"end": 6427,
"name": "tag",
"source": 1,
"value": "42"
},
{
"begin": 6305,
"end": 6427,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6378,
"end": 6402,
"name": "PUSH [tag]",
"source": 1,
"value": "142"
},
{
"begin": 6396,
"end": 6401,
"name": "DUP2",
"source": 1
},
{
"begin": 6378,
"end": 6402,
"name": "PUSH [tag]",
"source": 1,
"value": "75"
},
{
"begin": 6378,
"end": 6402,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 6378,
"end": 6402,
"name": "tag",
"source": 1,
"value": "142"
},
{
"begin": 6378,
"end": 6402,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6371,
"end": 6376,
"name": "DUP2",
"source": 1
},
{
"begin": 6368,
"end": 6403,
"name": "EQ",
"source": 1
},
{
"begin": 6358,
"end": 6421,
"name": "PUSH [tag]",
"source": 1,
"value": "143"
},
{
"begin": 6358,
"end": 6421,
"name": "JUMPI",
"source": 1
},
{
"begin": 6417,
"end": 6418,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 6414,
"end": 6415,
"name": "DUP1",
"source": 1
},
{
"begin": 6407,
"end": 6419,
"name": "REVERT",
"source": 1
},
{
"begin": 6358,
"end": 6421,
"name": "tag",
"source": 1,
"value": "143"
},
{
"begin": 6358,
"end": 6421,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6305,
"end": 6427,
"name": "POP",
"source": 1
},
{
"begin": 6305,
"end": 6427,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 6433,
"end": 6555,
"name": "tag",
"source": 1,
"value": "46"
},
{
"begin": 6433,
"end": 6555,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6506,
"end": 6530,
"name": "PUSH [tag]",
"source": 1,
"value": "145"
},
{
"begin": 6524,
"end": 6529,
"name": "DUP2",
"source": 1
},
{
"begin": 6506,
"end": 6530,
"name": "PUSH [tag]",
"source": 1,
"value": "92"
},
{
"begin": 6506,
"end": 6530,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 6506,
"end": 6530,
"name": "tag",
"source": 1,
"value": "145"
},
{
"begin": 6506,
"end": 6530,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6499,
"end": 6504,
"name": "DUP2",
"source": 1
},
{
"begin": 6496,
"end": 6531,
"name": "EQ",
"source": 1
},
{
"begin": 6486,
"end": 6549,
"name": "PUSH [tag]",
"source": 1,
"value": "146"
},
{
"begin": 6486,
"end": 6549,
"name": "JUMPI",
"source": 1
},
{
"begin": 6545,
"end": 6546,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 6542,
"end": 6543,
"name": "DUP1",
"source": 1
},
{
"begin": 6535,
"end": 6547,
"name": "REVERT",
"source": 1
},
{
"begin": 6486,
"end": 6549,
"name": "tag",
"source": 1,
"value": "146"
},
{
"begin": 6486,
"end": 6549,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 6433,
"end": 6555,
"name": "POP",
"source": 1
},
{
"begin": 6433,
"end": 6555,
"name": "JUMP",
"source": 1,
"value": "[out]"
}
],
".data": {
"0": {
".code": [
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 60,
"end": 145,
"name": "MSTORE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "ISZERO",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 98,
"end": 142,
"name": "JUMPI",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 98,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "REVERT",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 98,
"end": 142,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "POP",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 98,
"end": 142,
"name": "MLOAD",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "CODESIZE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "SUB",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP4",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "CODECOPY",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "ADD",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 98,
"end": 142,
"name": "MSTORE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "ADD",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "SWAP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 98,
"end": 142,
"name": "SWAP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "SWAP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 98,
"end": 142,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 98,
"end": 142,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 98,
"end": 142,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 133,
"end": 134,
"name": "DUP1",
"source": 0
},
{
"begin": 129,
"end": 130,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 129,
"end": 134,
"name": "DUP2",
"source": 0
},
{
"begin": 129,
"end": 134,
"name": "SWAP1",
"source": 0
},
{
"begin": 129,
"end": 134,
"name": "SSTORE",
"source": 0
},
{
"begin": 129,
"end": 134,
"name": "POP",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "POP",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 60,
"end": 145,
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 150,
"name": "tag",
"source": 1,
"value": "8"
},
{
"begin": 7,
"end": 150,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 64,
"end": 69,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 95,
"end": 101,
"name": "DUP2",
"source": 1
},
{
"begin": 89,
"end": 102,
"name": "MLOAD",
"source": 1
},
{
"begin": 80,
"end": 102,
"name": "SWAP1",
"source": 1
},
{
"begin": 80,
"end": 102,
"name": "POP",
"source": 1
},
{
"begin": 111,
"end": 144,
"name": "PUSH [tag]",
"source": 1,
"value": "10"
},
{
"begin": 138,
"end": 143,
"name": "DUP2",
"source": 1
},
{
"begin": 111,
"end": 144,
"name": "PUSH [tag]",
"source": 1,
"value": "11"
},
{
"begin": 111,
"end": 144,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 111,
"end": 144,
"name": "tag",
"source": 1,
"value": "10"
},
{
"begin": 111,
"end": 144,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "SWAP3",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 156,
"end": 507,
"name": "tag",
"source": 1,
"value": "3"
},
{
"begin": 156,
"end": 507,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 226,
"end": 232,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 275,
"end": 277,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 263,
"end": 272,
"name": "DUP3",
"source": 1
},
{
"begin": 254,
"end": 261,
"name": "DUP5",
"source": 1
},
{
"begin": 250,
"end": 273,
"name": "SUB",
"source": 1
},
{
"begin": 246,
"end": 278,
"name": "SLT",
"source": 1
},
{
"begin": 243,
"end": 362,
"name": "ISZERO",
"source": 1
},
{
"begin": 243,
"end": 362,
"name": "PUSH [tag]",
"source": 1,
"value": "13"
},
{
"begin": 243,
"end": 362,
"name": "JUMPI",
"source": 1
},
{
"begin": 281,
"end": 360,
"name": "PUSH [tag]",
"source": 1,
"value": "14"
},
{
"begin": 281,
"end": 360,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 281,
"end": 360,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 281,
"end": 360,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 281,
"end": 360,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 243,
"end": 362,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 243,
"end": 362,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 401,
"end": 402,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 490,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 482,
"end": 489,
"name": "DUP5",
"source": 1
},
{
"begin": 473,
"end": 479,
"name": "DUP3",
"source": 1
},
{
"begin": 462,
"end": 471,
"name": "DUP6",
"source": 1
},
{
"begin": 458,
"end": 480,
"name": "ADD",
"source": 1
},
{
"begin": 426,
"end": 490,
"name": "PUSH [tag]",
"source": 1,
"value": "8"
},
{
"begin": 426,
"end": 490,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 426,
"end": 490,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 426,
"end": 490,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 416,
"end": 490,
"name": "SWAP2",
"source": 1
},
{
"begin": 416,
"end": 490,
"name": "POP",
"source": 1
},
{
"begin": 372,
"end": 500,
"name": "POP",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "SWAP3",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "SWAP2",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "POP",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "POP",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 594,
"end": 671,
"name": "tag",
"source": 1,
"value": "19"
},
{
"begin": 594,
"end": 671,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 631,
"end": 638,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 660,
"end": 665,
"name": "DUP2",
"source": 1
},
{
"begin": 649,
"end": 665,
"name": "SWAP1",
"source": 1
},
{
"begin": 649,
"end": 665,
"name": "POP",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "SWAP2",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "SWAP1",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "POP",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 800,
"end": 917,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 800,
"end": 917,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 909,
"end": 910,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 906,
"end": 907,
"name": "DUP1",
"source": 1
},
{
"begin": 899,
"end": 911,
"name": "REVERT",
"source": 1
},
{
"begin": 923,
"end": 1045,
"name": "tag",
"source": 1,
"value": "11"
},
{
"begin": 923,
"end": 1045,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 996,
"end": 1020,
"name": "PUSH [tag]",
"source": 1,
"value": "25"
},
{
"begin": 1014,
"end": 1019,
"name": "DUP2",
"source": 1
},
{
"begin": 996,
"end": 1020,
"name": "PUSH [tag]",
"source": 1,
"value": "19"
},
{
"begin": 996,
"end": 1020,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 996,
"end": 1020,
"name": "tag",
"source": 1,
"value": "25"
},
{
"begin": 996,
"end": 1020,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 989,
"end": 994,
"name": "DUP2",
"source": 1
},
{
"begin": 986,
"end": 1021,
"name": "EQ",
"source": 1
},
{
"begin": 976,
"end": 1039,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 976,
"end": 1039,
"name": "JUMPI",
"source": 1
},
{
"begin": 1035,
"end": 1036,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1032,
"end": 1033,
"name": "DUP1",
"source": 1
},
{
"begin": 1025,
"end": 1037,
"name": "REVERT",
"source": 1
},
{
"begin": 976,
"end": 1039,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 976,
"end": 1039,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 923,
"end": 1045,
"name": "POP",
"source": 1
},
{
"begin": 923,
"end": 1045,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 60,
"end": 145,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 60,
"end": 145,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "CODECOPY",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033",
".code": [
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 60,
"end": 145,
"name": "MSTORE",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "ISZERO",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 60,
"end": 145,
"name": "JUMPI",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "REVERT",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 60,
"end": 145,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "POP",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 60,
"end": 145,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "LT",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 60,
"end": 145,
"name": "JUMPI",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 60,
"end": 145,
"name": "SHR",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "C55699C"
},
{
"begin": 60,
"end": 145,
"name": "EQ",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 60,
"end": 145,
"name": "JUMPI",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 60,
"end": 145,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "REVERT",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 78,
"end": 91,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 78,
"end": 91,
"name": "MLOAD",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 78,
"end": 91,
"name": "SWAP2",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SWAP1",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 78,
"end": 91,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 78,
"end": 91,
"name": "MLOAD",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "DUP1",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SWAP2",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SUB",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SWAP1",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "RETURN",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 78,
"end": 91,
"name": "SLOAD",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "DUP2",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 7,
"end": 125,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 7,
"end": 125,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 1,
"value": "11"
},
{
"begin": 112,
"end": 117,
"name": "DUP2",
"source": 1
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 1,
"value": "12"
},
{
"begin": 94,
"end": 118,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 94,
"end": 118,
"name": "tag",
"source": 1,
"value": "11"
},
{
"begin": 94,
"end": 118,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 89,
"end": 92,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 119,
"name": "MSTORE",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 131,
"end": 353,
"name": "tag",
"source": 1,
"value": "7"
},
{
"begin": 131,
"end": 353,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 224,
"end": 228,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 262,
"end": 264,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 251,
"end": 260,
"name": "DUP3",
"source": 1
},
{
"begin": 247,
"end": 265,
"name": "ADD",
"source": 1
},
{
"begin": 239,
"end": 265,
"name": "SWAP1",
"source": 1
},
{
"begin": 239,
"end": 265,
"name": "POP",
"source": 1
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 1,
"value": "14"
},
{
"begin": 343,
"end": 344,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 332,
"end": 341,
"name": "DUP4",
"source": 1
},
{
"begin": 328,
"end": 345,
"name": "ADD",
"source": 1
},
{
"begin": 319,
"end": 325,
"name": "DUP5",
"source": 1
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 1,
"value": "9"
},
{
"begin": 275,
"end": 346,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 275,
"end": 346,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 275,
"end": 346,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "SWAP3",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "SWAP2",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 359,
"end": 436,
"name": "tag",
"source": 1,
"value": "12"
},
{
"begin": 359,
"end": 436,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 396,
"end": 403,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 425,
"end": 430,
"name": "DUP2",
"source": 1
},
{
"begin": 414,
"end": 430,
"name": "SWAP1",
"source": 1
},
{
"begin": 414,
"end": 430,
"name": "POP",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "SWAP2",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "SWAP1",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "JUMP",
"source": 1,
"value": "[out]"
}
]
}
}
}
}
}
}
},
"methodIdentifiers": {
"createDSalted(bytes32,uint256)": "0bd38f2f",
"deployedAddr()": "d1524f74",
"getAddress(bytes32,uint256)": "bbd6dd6b",
"getBytes32(uint256)": "24dfc9d7"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"arg\",\"type\":\"uint256\"}],\"name\":\"createDSalted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deployedAddr\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"arg\",\"type\":\"uint256\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"salt\",\"type\":\"uint256\"}],\"name\":\"getBytes32\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/Create2.sol\":\"Create2\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/Create2.sol\":{\"keccak256\":\"0xad2340075a9562b04c5b9ac7b8815b66c7d06eaa513d1d2a07754b32591f2dd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39e44f65cc32c5014c1e5daafad38a1a60399efce19815a2f67a59a2837e9a7\",\"dweb:/ipfs/QmcN2sUHYpZozEjXZxtKGs3bWhbRCKJtMxcUNeqpXDG5tS\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 77,
"contract": "contracts/01.Solidity-8.0新特性/Create2.sol:Create2",
"label": "deployedAddr",
"offset": 0,
"slot": "0",
"type": "t_address"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"D": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n mstore(0x40, 0x80)\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":98:142 constructor(uint a) {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n mload(0x40)\n sub(codesize, bytecodeSize)\n dup1\n bytecodeSize\n dup4\n codecopy\n dup2\n dup2\n add\n 0x40\n mstore\n dup2\n add\n swap1\n tag_2\n swap2\n swap1\n tag_3\n jump\t// in\ntag_2:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":133:134 a */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":129:130 x */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":129:134 x = a */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":98:142 constructor(uint a) {\r... */\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n jump(tag_6)\n /* \"#utility.yul\":7:150 */\ntag_8:\n /* \"#utility.yul\":64:69 */\n 0x00\n /* \"#utility.yul\":95:101 */\n dup2\n /* \"#utility.yul\":89:102 */\n mload\n /* \"#utility.yul\":80:102 */\n swap1\n pop\n /* \"#utility.yul\":111:144 */\n tag_10\n /* \"#utility.yul\":138:143 */\n dup2\n /* \"#utility.yul\":111:144 */\n tag_11\n jump\t// in\ntag_10:\n /* \"#utility.yul\":7:150 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":156:507 */\ntag_3:\n /* \"#utility.yul\":226:232 */\n 0x00\n /* \"#utility.yul\":275:277 */\n 0x20\n /* \"#utility.yul\":263:272 */\n dup3\n /* \"#utility.yul\":254:261 */\n dup5\n /* \"#utility.yul\":250:273 */\n sub\n /* \"#utility.yul\":246:278 */\n slt\n /* \"#utility.yul\":243:362 */\n iszero\n tag_13\n jumpi\n /* \"#utility.yul\":281:360 */\n tag_14\n tag_15\n jump\t// in\ntag_14:\n /* \"#utility.yul\":243:362 */\ntag_13:\n /* \"#utility.yul\":401:402 */\n 0x00\n /* \"#utility.yul\":426:490 */\n tag_16\n /* \"#utility.yul\":482:489 */\n dup5\n /* \"#utility.yul\":473:479 */\n dup3\n /* \"#utility.yul\":462:471 */\n dup6\n /* \"#utility.yul\":458:480 */\n add\n /* \"#utility.yul\":426:490 */\n tag_8\n jump\t// in\ntag_16:\n /* \"#utility.yul\":416:490 */\n swap2\n pop\n /* \"#utility.yul\":372:500 */\n pop\n /* \"#utility.yul\":156:507 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":594:671 */\ntag_19:\n /* \"#utility.yul\":631:638 */\n 0x00\n /* \"#utility.yul\":660:665 */\n dup2\n /* \"#utility.yul\":649:665 */\n swap1\n pop\n /* \"#utility.yul\":594:671 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":800:917 */\ntag_15:\n /* \"#utility.yul\":909:910 */\n 0x00\n /* \"#utility.yul\":906:907 */\n dup1\n /* \"#utility.yul\":899:911 */\n revert\n /* \"#utility.yul\":923:1045 */\ntag_11:\n /* \"#utility.yul\":996:1020 */\n tag_25\n /* \"#utility.yul\":1014:1019 */\n dup2\n /* \"#utility.yul\":996:1020 */\n tag_19\n jump\t// in\ntag_25:\n /* \"#utility.yul\":989:994 */\n dup2\n /* \"#utility.yul\":986:1021 */\n eq\n /* \"#utility.yul\":976:1039 */\n tag_26\n jumpi\n /* \"#utility.yul\":1035:1036 */\n 0x00\n /* \"#utility.yul\":1032:1033 */\n dup1\n /* \"#utility.yul\":1025:1037 */\n revert\n /* \"#utility.yul\":976:1039 */\ntag_26:\n /* \"#utility.yul\":923:1045 */\n pop\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\ntag_6:\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":60:145 contract D {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x0c55699c\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Create2.sol\":78:91 uint public x */\n tag_3:\n tag_4\n tag_5\n jump\t// in\n tag_4:\n mload(0x40)\n tag_6\n swap2\n swap1\n tag_7\n jump\t// in\n tag_6:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_5:\n sload(0x00)\n dup2\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_9:\n /* \"#utility.yul\":94:118 */\n tag_11\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_12\n jump\t// in\n tag_11:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_7:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_14\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_9\n jump\t// in\n tag_14:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:436 */\n tag_12:\n /* \"#utility.yul\":396:403 */\n 0x00\n /* \"#utility.yul\":425:430 */\n dup2\n /* \"#utility.yul\":414:430 */\n swap1\n pop\n /* \"#utility.yul\":359:436 */\n swap2\n swap1\n pop\n jump\t// out\n\n auxdata: 0xa264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033\n}\n",
"bytecode": {
"functionDebugData": {
"@_13": {
"entryPoint": null,
"id": 13,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 63,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 84,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 129,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 139,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 144,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1048:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "70:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "80:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "89:5:1"
},
"nodeType": "YulFunctionCall",
"src": "89:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "80:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "138:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "111:26:1"
},
"nodeType": "YulFunctionCall",
"src": "111:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "111:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "48:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "56:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "64:5:1",
"type": ""
}
],
"src": "7:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:274:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "279:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "281:77:1"
},
"nodeType": "YulFunctionCall",
"src": "281:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "281:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "254:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "263:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "250:3:1"
},
"nodeType": "YulFunctionCall",
"src": "250:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "275:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "246:3:1"
},
"nodeType": "YulFunctionCall",
"src": "246:32:1"
},
"nodeType": "YulIf",
"src": "243:119:1"
},
{
"nodeType": "YulBlock",
"src": "372:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "387:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "391:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "416:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "462:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "473:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "458:3:1"
},
"nodeType": "YulFunctionCall",
"src": "458:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "482:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "426:31:1"
},
"nodeType": "YulFunctionCall",
"src": "426:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "416:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "203:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "214:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "156:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "553:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "563:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "579:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "573:5:1"
},
"nodeType": "YulFunctionCall",
"src": "573:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "563:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "546:6:1",
"type": ""
}
],
"src": "513:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "639:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "649:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "660:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "649:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "621:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "631:7:1",
"type": ""
}
],
"src": "594:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "766:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "783:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "786:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "776:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "776:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "677:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "889:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "906:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "909:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "899:6:1"
},
"nodeType": "YulFunctionCall",
"src": "899:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "899:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "800:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "966:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1023:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1032:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1035:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1025:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1025:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1025:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "989:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1014:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "996:17:1"
},
"nodeType": "YulFunctionCall",
"src": "996:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "986:2:1"
},
"nodeType": "YulFunctionCall",
"src": "986:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "979:6:1"
},
"nodeType": "YulFunctionCall",
"src": "979:43:1"
},
"nodeType": "YulIf",
"src": "976:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "959:5:1",
"type": ""
}
],
"src": "923:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060405161016838038061016883398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b60b3806100b56000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x168 CODESIZE SUB DUP1 PUSH2 0x168 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4E DUP2 PUSH2 0x90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A JUMPI PUSH2 0x69 PUSH2 0x8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x78 DUP5 DUP3 DUP6 ADD PUSH2 0x3F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 DUP2 PUSH2 0x81 JUMP JUMPDEST DUP2 EQ PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xB3 DUP1 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER ",
"sourceMap": "60:85:0:-:0;;;98:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;133:1;129;:5;;;;98:44;60:85;;7:143:1;64:5;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;7:143;;;;:::o;156:351::-;226:6;275:2;263:9;254:7;250:23;246:32;243:119;;;281:79;;:::i;:::-;243:119;401:1;426:64;482:7;473:6;462:9;458:22;426:64;:::i;:::-;416:74;;372:128;156:351;;;;:::o;594:77::-;631:7;660:5;649:16;;594:77;;;:::o;800:117::-;909:1;906;899:12;923:122;996:24;1014:5;996:24;:::i;:::-;989:5;986:35;976:63;;1035:1;1032;1025:12;976:63;923:122;:::o;60:85:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@x_3": {
"entryPoint": 71,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 77,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 90,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 115,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:439:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "247:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:1"
},
"nodeType": "YulFunctionCall",
"src": "328:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:1"
},
"nodeType": "YulFunctionCall",
"src": "275:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:1",
"type": ""
}
],
"src": "131:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "404:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "414:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "425:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "414:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "386:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "396:7:1",
"type": ""
}
],
"src": "359:77:1"
}
]
},
"contents": "{\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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER ",
"sourceMap": "60:85:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:77::-;396:7;425:5;414:16;;359:77;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "35800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"x()": "2407"
}
},
"legacyAssembly": {
".code": [
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 60,
"end": 145,
"name": "MSTORE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "ISZERO",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 98,
"end": 142,
"name": "JUMPI",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 98,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "REVERT",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 98,
"end": 142,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "POP",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 98,
"end": 142,
"name": "MLOAD",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "CODESIZE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "SUB",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSHSIZE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP4",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "CODECOPY",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "ADD",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 98,
"end": 142,
"name": "MSTORE",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "DUP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "ADD",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "SWAP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 98,
"end": 142,
"name": "SWAP2",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "SWAP1",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 98,
"end": 142,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 98,
"end": 142,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 98,
"end": 142,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 133,
"end": 134,
"name": "DUP1",
"source": 0
},
{
"begin": 129,
"end": 130,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 129,
"end": 134,
"name": "DUP2",
"source": 0
},
{
"begin": 129,
"end": 134,
"name": "SWAP1",
"source": 0
},
{
"begin": 129,
"end": 134,
"name": "SSTORE",
"source": 0
},
{
"begin": 129,
"end": 134,
"name": "POP",
"source": 0
},
{
"begin": 98,
"end": 142,
"name": "POP",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 60,
"end": 145,
"name": "JUMP",
"source": 0
},
{
"begin": 7,
"end": 150,
"name": "tag",
"source": 1,
"value": "8"
},
{
"begin": 7,
"end": 150,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 64,
"end": 69,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 95,
"end": 101,
"name": "DUP2",
"source": 1
},
{
"begin": 89,
"end": 102,
"name": "MLOAD",
"source": 1
},
{
"begin": 80,
"end": 102,
"name": "SWAP1",
"source": 1
},
{
"begin": 80,
"end": 102,
"name": "POP",
"source": 1
},
{
"begin": 111,
"end": 144,
"name": "PUSH [tag]",
"source": 1,
"value": "10"
},
{
"begin": 138,
"end": 143,
"name": "DUP2",
"source": 1
},
{
"begin": 111,
"end": 144,
"name": "PUSH [tag]",
"source": 1,
"value": "11"
},
{
"begin": 111,
"end": 144,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 111,
"end": 144,
"name": "tag",
"source": 1,
"value": "10"
},
{
"begin": 111,
"end": 144,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "SWAP3",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "SWAP2",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 150,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 156,
"end": 507,
"name": "tag",
"source": 1,
"value": "3"
},
{
"begin": 156,
"end": 507,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 226,
"end": 232,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 275,
"end": 277,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 263,
"end": 272,
"name": "DUP3",
"source": 1
},
{
"begin": 254,
"end": 261,
"name": "DUP5",
"source": 1
},
{
"begin": 250,
"end": 273,
"name": "SUB",
"source": 1
},
{
"begin": 246,
"end": 278,
"name": "SLT",
"source": 1
},
{
"begin": 243,
"end": 362,
"name": "ISZERO",
"source": 1
},
{
"begin": 243,
"end": 362,
"name": "PUSH [tag]",
"source": 1,
"value": "13"
},
{
"begin": 243,
"end": 362,
"name": "JUMPI",
"source": 1
},
{
"begin": 281,
"end": 360,
"name": "PUSH [tag]",
"source": 1,
"value": "14"
},
{
"begin": 281,
"end": 360,
"name": "PUSH [tag]",
"source": 1,
"value": "15"
},
{
"begin": 281,
"end": 360,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 281,
"end": 360,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 281,
"end": 360,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 243,
"end": 362,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 243,
"end": 362,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 401,
"end": 402,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 490,
"name": "PUSH [tag]",
"source": 1,
"value": "16"
},
{
"begin": 482,
"end": 489,
"name": "DUP5",
"source": 1
},
{
"begin": 473,
"end": 479,
"name": "DUP3",
"source": 1
},
{
"begin": 462,
"end": 471,
"name": "DUP6",
"source": 1
},
{
"begin": 458,
"end": 480,
"name": "ADD",
"source": 1
},
{
"begin": 426,
"end": 490,
"name": "PUSH [tag]",
"source": 1,
"value": "8"
},
{
"begin": 426,
"end": 490,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 426,
"end": 490,
"name": "tag",
"source": 1,
"value": "16"
},
{
"begin": 426,
"end": 490,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 416,
"end": 490,
"name": "SWAP2",
"source": 1
},
{
"begin": 416,
"end": 490,
"name": "POP",
"source": 1
},
{
"begin": 372,
"end": 500,
"name": "POP",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "SWAP3",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "SWAP2",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "POP",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "POP",
"source": 1
},
{
"begin": 156,
"end": 507,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 594,
"end": 671,
"name": "tag",
"source": 1,
"value": "19"
},
{
"begin": 594,
"end": 671,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 631,
"end": 638,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 660,
"end": 665,
"name": "DUP2",
"source": 1
},
{
"begin": 649,
"end": 665,
"name": "SWAP1",
"source": 1
},
{
"begin": 649,
"end": 665,
"name": "POP",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "SWAP2",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "SWAP1",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "POP",
"source": 1
},
{
"begin": 594,
"end": 671,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 800,
"end": 917,
"name": "tag",
"source": 1,
"value": "15"
},
{
"begin": 800,
"end": 917,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 909,
"end": 910,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 906,
"end": 907,
"name": "DUP1",
"source": 1
},
{
"begin": 899,
"end": 911,
"name": "REVERT",
"source": 1
},
{
"begin": 923,
"end": 1045,
"name": "tag",
"source": 1,
"value": "11"
},
{
"begin": 923,
"end": 1045,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 996,
"end": 1020,
"name": "PUSH [tag]",
"source": 1,
"value": "25"
},
{
"begin": 1014,
"end": 1019,
"name": "DUP2",
"source": 1
},
{
"begin": 996,
"end": 1020,
"name": "PUSH [tag]",
"source": 1,
"value": "19"
},
{
"begin": 996,
"end": 1020,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 996,
"end": 1020,
"name": "tag",
"source": 1,
"value": "25"
},
{
"begin": 996,
"end": 1020,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 989,
"end": 994,
"name": "DUP2",
"source": 1
},
{
"begin": 986,
"end": 1021,
"name": "EQ",
"source": 1
},
{
"begin": 976,
"end": 1039,
"name": "PUSH [tag]",
"source": 1,
"value": "26"
},
{
"begin": 976,
"end": 1039,
"name": "JUMPI",
"source": 1
},
{
"begin": 1035,
"end": 1036,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 1032,
"end": 1033,
"name": "DUP1",
"source": 1
},
{
"begin": 1025,
"end": 1037,
"name": "REVERT",
"source": 1
},
{
"begin": 976,
"end": 1039,
"name": "tag",
"source": 1,
"value": "26"
},
{
"begin": 976,
"end": 1039,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 923,
"end": 1045,
"name": "POP",
"source": 1
},
{
"begin": 923,
"end": 1045,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 60,
"end": 145,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 60,
"end": 145,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "CODECOPY",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033",
".code": [
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 60,
"end": 145,
"name": "MSTORE",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "ISZERO",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 60,
"end": 145,
"name": "JUMPI",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "REVERT",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 60,
"end": 145,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "POP",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 60,
"end": 145,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "LT",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 60,
"end": 145,
"name": "JUMPI",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 60,
"end": 145,
"name": "SHR",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "C55699C"
},
{
"begin": 60,
"end": 145,
"name": "EQ",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 60,
"end": 145,
"name": "JUMPI",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 60,
"end": 145,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 60,
"end": 145,
"name": "DUP1",
"source": 0
},
{
"begin": 60,
"end": 145,
"name": "REVERT",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 78,
"end": 91,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 78,
"end": 91,
"name": "MLOAD",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "6"
},
{
"begin": 78,
"end": 91,
"name": "SWAP2",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SWAP1",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH [tag]",
"source": 0,
"value": "7"
},
{
"begin": 78,
"end": 91,
"name": "JUMP",
"source": 0,
"value": "[in]"
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "6"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 78,
"end": 91,
"name": "MLOAD",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "DUP1",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SWAP2",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SUB",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "SWAP1",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "RETURN",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 78,
"end": 91,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 78,
"end": 91,
"name": "SLOAD",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "DUP2",
"source": 0
},
{
"begin": 78,
"end": 91,
"name": "JUMP",
"source": 0,
"value": "[out]"
},
{
"begin": 7,
"end": 125,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 7,
"end": 125,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 1,
"value": "11"
},
{
"begin": 112,
"end": 117,
"name": "DUP2",
"source": 1
},
{
"begin": 94,
"end": 118,
"name": "PUSH [tag]",
"source": 1,
"value": "12"
},
{
"begin": 94,
"end": 118,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 94,
"end": 118,
"name": "tag",
"source": 1,
"value": "11"
},
{
"begin": 94,
"end": 118,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 89,
"end": 92,
"name": "DUP3",
"source": 1
},
{
"begin": 82,
"end": 119,
"name": "MSTORE",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "POP",
"source": 1
},
{
"begin": 7,
"end": 125,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 131,
"end": 353,
"name": "tag",
"source": 1,
"value": "7"
},
{
"begin": 131,
"end": 353,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 224,
"end": 228,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 262,
"end": 264,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 251,
"end": 260,
"name": "DUP3",
"source": 1
},
{
"begin": 247,
"end": 265,
"name": "ADD",
"source": 1
},
{
"begin": 239,
"end": 265,
"name": "SWAP1",
"source": 1
},
{
"begin": 239,
"end": 265,
"name": "POP",
"source": 1
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 1,
"value": "14"
},
{
"begin": 343,
"end": 344,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 332,
"end": 341,
"name": "DUP4",
"source": 1
},
{
"begin": 328,
"end": 345,
"name": "ADD",
"source": 1
},
{
"begin": 319,
"end": 325,
"name": "DUP5",
"source": 1
},
{
"begin": 275,
"end": 346,
"name": "PUSH [tag]",
"source": 1,
"value": "9"
},
{
"begin": 275,
"end": 346,
"name": "JUMP",
"source": 1,
"value": "[in]"
},
{
"begin": 275,
"end": 346,
"name": "tag",
"source": 1,
"value": "14"
},
{
"begin": 275,
"end": 346,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "SWAP3",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "SWAP2",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "POP",
"source": 1
},
{
"begin": 131,
"end": 353,
"name": "JUMP",
"source": 1,
"value": "[out]"
},
{
"begin": 359,
"end": 436,
"name": "tag",
"source": 1,
"value": "12"
},
{
"begin": 359,
"end": 436,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 396,
"end": 403,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 425,
"end": 430,
"name": "DUP2",
"source": 1
},
{
"begin": 414,
"end": 430,
"name": "SWAP1",
"source": 1
},
{
"begin": 414,
"end": 430,
"name": "POP",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "SWAP2",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "SWAP1",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "POP",
"source": 1
},
{
"begin": 359,
"end": 436,
"name": "JUMP",
"source": 1,
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"x()": "0c55699c"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"a\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"x\",\"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/01.Solidity-8.0\\u65b0\\u7279\\u6027/Create2.sol\":\"D\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/01.Solidity-8.0\\u65b0\\u7279\\u6027/Create2.sol\":{\"keccak256\":\"0xad2340075a9562b04c5b9ac7b8815b66c7d06eaa513d1d2a07754b32591f2dd9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a39e44f65cc32c5014c1e5daafad38a1a60399efce19815a2f67a59a2837e9a7\",\"dweb:/ipfs/QmcN2sUHYpZozEjXZxtKGs3bWhbRCKJtMxcUNeqpXDG5tS\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "contracts/01.Solidity-8.0新特性/Create2.sol:D",
"label": "x",
"offset": 0,
"slot": "0",
"type": "t_uint256"
}
],
"types": {
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"contracts/01.Solidity-8.0新特性/Create2.sol": {
"ast": {
"absolutePath": "contracts/01.Solidity-8.0新特性/Create2.sol",
"exportedSymbols": {
"Create2": [
104
],
"D": [
14
]
},
"id": 105,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8"
],
"nodeType": "PragmaDirective",
"src": "33:21:0"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 14,
"linearizedBaseContracts": [
14
],
"name": "D",
"nameLocation": "69:1:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "0c55699c",
"id": 3,
"mutability": "mutable",
"name": "x",
"nameLocation": "90:1:0",
"nodeType": "VariableDeclaration",
"scope": 14,
"src": "78:13:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "78:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"body": {
"id": 12,
"nodeType": "Block",
"src": "118:24:0",
"statements": [
{
"expression": {
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "129:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 9,
"name": "a",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "133:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "129:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11,
"nodeType": "ExpressionStatement",
"src": "129:5:0"
}
]
},
"id": 13,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5,
"mutability": "mutable",
"name": "a",
"nameLocation": "115:1:0",
"nodeType": "VariableDeclaration",
"scope": 13,
"src": "110:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "110:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "109:8:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "118:0:0"
},
"scope": 14,
"src": "98:44:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 105,
"src": "60:85:0",
"usedErrors": []
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [
14
],
"contractKind": "contract",
"fullyImplemented": true,
"id": 104,
"linearizedBaseContracts": [
104
],
"name": "Create2",
"nameLocation": "158:7:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 26,
"nodeType": "Block",
"src": "236:39:0",
"statements": [
{
"expression": {
"arguments": [
{
"id": 23,
"name": "salt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16,
"src": "262:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 22,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "254:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes32_$",
"typeString": "type(bytes32)"
},
"typeName": {
"id": 21,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "254:7:0",
"typeDescriptions": {}
}
},
"id": 24,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "254:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"functionReturnParameters": 20,
"id": 25,
"nodeType": "Return",
"src": "247:20:0"
}
]
},
"functionSelector": "24dfc9d7",
"id": 27,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getBytes32",
"nameLocation": "182:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 17,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16,
"mutability": "mutable",
"name": "salt",
"nameLocation": "198:4:0",
"nodeType": "VariableDeclaration",
"scope": 27,
"src": "193:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 15,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "193:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "192:11:0"
},
"returnParameters": {
"id": 20,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 19,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 27,
"src": "227:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 18,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "227:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
}
],
"src": "226:9:0"
},
"scope": 104,
"src": "173:102:0",
"stateMutability": "pure",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 74,
"nodeType": "Block",
"src": "359:320:0",
"statements": [
{
"assignments": [
37
],
"declarations": [
{
"constant": false,
"id": 37,
"mutability": "mutable",
"name": "addr",
"nameLocation": "378:4:0",
"nodeType": "VariableDeclaration",
"scope": 74,
"src": "370:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 36,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "370:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 71,
"initialValue": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"arguments": [
{
"hexValue": "30786666",
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "454:4:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
},
"value": "0xff"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_255_by_1",
"typeString": "int_const 255"
}
],
"id": 48,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "447:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes1_$",
"typeString": "type(bytes1)"
},
"typeName": {
"id": 47,
"name": "bytes1",
"nodeType": "ElementaryTypeName",
"src": "447:6:0",
"typeDescriptions": {}
}
},
"id": 50,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "447:12:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
{
"arguments": [
{
"id": 53,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967268,
"src": "482:4:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Create2_$104",
"typeString": "contract Create2"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Create2_$104",
"typeString": "contract Create2"
}
],
"id": 52,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "474:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 51,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "474:7:0",
"typeDescriptions": {}
}
},
"id": 54,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "474:13:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 55,
"name": "salt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29,
"src": "502:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"arguments": [
{
"arguments": [
{
"expression": {
"arguments": [
{
"id": 60,
"name": "D",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 14,
"src": "571:1:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_D_$14_$",
"typeString": "type(contract D)"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_type$_t_contract$_D_$14_$",
"typeString": "type(contract D)"
}
],
"id": 59,
"name": "type",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967269,
"src": "566:4:0",
"typeDescriptions": {
"typeIdentifier": "t_function_metatype_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 61,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "566:7:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_magic_meta_type_t_contract$_D_$14",
"typeString": "type(contract D)"
}
},
"id": 62,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "creationCode",
"nodeType": "MemberAccess",
"src": "566:20:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"id": 63,
"name": "arg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 31,
"src": "605:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 57,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "531:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "531:16:0",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "531:92:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 56,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967288,
"src": "521:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 65,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "521:103:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"expression": {
"id": 45,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967295,
"src": "416:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 46,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "416:16:0",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 66,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "416:219:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 44,
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967288,
"src": "406:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (bytes memory) pure returns (bytes32)"
}
},
"id": 67,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "406:230:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
],
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "401:4:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 42,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "401:4:0",
"typeDescriptions": {}
}
},
"id": 68,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "401:236:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "393:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 40,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "393:7:0",
"typeDescriptions": {}
}
},
"id": 69,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "393:245:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 39,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "385:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 38,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "385:7:0",
"typeDescriptions": {}
}
},
"id": 70,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "385:254:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "370:269:0"
},
{
"expression": {
"id": 72,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 37,
"src": "667:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"functionReturnParameters": 35,
"id": 73,
"nodeType": "Return",
"src": "660:11:0"
}
]
},
"functionSelector": "bbd6dd6b",
"id": 75,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "getAddress",
"nameLocation": "292:10:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 32,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 29,
"mutability": "mutable",
"name": "salt",
"nameLocation": "311:4:0",
"nodeType": "VariableDeclaration",
"scope": 75,
"src": "303:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 28,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "303:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 31,
"mutability": "mutable",
"name": "arg",
"nameLocation": "322:3:0",
"nodeType": "VariableDeclaration",
"scope": 75,
"src": "317:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 30,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "317:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "302:24:0"
},
"returnParameters": {
"id": 35,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 34,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 75,
"src": "350:7:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 33,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "350:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "349:9:0"
},
"scope": 104,
"src": "283:396:0",
"stateMutability": "view",
"virtual": false,
"visibility": "external"
},
{
"constant": false,
"functionSelector": "d1524f74",
"id": 77,
"mutability": "mutable",
"name": "deployedAddr",
"nameLocation": "702:12:0",
"nodeType": "VariableDeclaration",
"scope": 104,
"src": "687:27:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 76,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "687:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"body": {
"id": 102,
"nodeType": "Block",
"src": "777:83:0",
"statements": [
{
"assignments": [
86
],
"declarations": [
{
"constant": false,
"id": 86,
"mutability": "mutable",
"name": "d",
"nameLocation": "790:1:0",
"nodeType": "VariableDeclaration",
"scope": 102,
"src": "788:3:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_D_$14",
"typeString": "contract D"
},
"typeName": {
"id": 85,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 84,
"name": "D",
"nodeType": "IdentifierPath",
"referencedDeclaration": 14,
"src": "788:1:0"
},
"referencedDeclaration": 14,
"src": "788:1:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_D_$14",
"typeString": "contract D"
}
},
"visibility": "internal"
}
],
"id": 94,
"initialValue": {
"arguments": [
{
"id": 92,
"name": "arg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 81,
"src": "812:3:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 89,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "NewExpression",
"src": "794:5:0",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_D_$14_$",
"typeString": "function (uint256) returns (contract D)"
},
"typeName": {
"id": 88,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 87,
"name": "D",
"nodeType": "IdentifierPath",
"referencedDeclaration": 14,
"src": "798:1:0"
},
"referencedDeclaration": 14,
"src": "798:1:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_D_$14",
"typeString": "contract D"
}
}
},
"id": 91,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"names": [
"salt"
],
"nodeType": "FunctionCallOptions",
"options": [
{
"id": 90,
"name": "salt",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 79,
"src": "806:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
}
],
"src": "794:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$returns$_t_contract$_D_$14_$salt",
"typeString": "function (uint256) returns (contract D)"
}
},
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "794:22:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_D_$14",
"typeString": "contract D"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "788:28:0"
},
{
"expression": {
"id": 100,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 95,
"name": "deployedAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 77,
"src": "827:12:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 98,
"name": "d",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 86,
"src": "850:1:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_D_$14",
"typeString": "contract D"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_D_$14",
"typeString": "contract D"
}
],
"id": 97,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "842:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 96,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "842:7:0",
"typeDescriptions": {}
}
},
"id": 99,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "842:10:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "827:25:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 101,
"nodeType": "ExpressionStatement",
"src": "827:25:0"
}
]
},
"functionSelector": "0bd38f2f",
"id": 103,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "createDSalted",
"nameLocation": "732:13:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 82,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 79,
"mutability": "mutable",
"name": "salt",
"nameLocation": "754:4:0",
"nodeType": "VariableDeclaration",
"scope": 103,
"src": "746:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
"id": 78,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "746:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 81,
"mutability": "mutable",
"name": "arg",
"nameLocation": "765:3:0",
"nodeType": "VariableDeclaration",
"scope": 103,
"src": "760:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 80,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "760:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "745:24:0"
},
"returnParameters": {
"id": 83,
"nodeType": "ParameterList",
"parameters": [],
"src": "777:0:0"
},
"scope": 104,
"src": "723:137:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 105,
"src": "149:714:0",
"usedErrors": []
}
],
"src": "33:830: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": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061072c806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630bd38f2f1461005157806324dfc9d71461006d578063bbd6dd6b1461009d578063d1524f74146100cd575b600080fd5b61006b60048036038101906100669190610263565b6100eb565b005b610087600480360381019061008291906102a3565b61016d565b604051610094919061041b565b60405180910390f35b6100b760048036038101906100b29190610263565b61017a565b6040516100c49190610400565b60405180910390f35b6100d5610208565b6040516100e29190610400565b60405180910390f35b600082826040516100fb9061022c565b6101059190610436565b8190604051809103906000f5905080158015610125573d6000803e3d6000fd5b509050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008160001b9050919050565b60008060ff60f81b3085604051806020016101949061022c565b6020820181038252601f19601f82011660405250866040516020016101ba9291906103d8565b604051602081830303815290604052805190602001206040516020016101e3949392919061038a565b6040516020818303038152906040528051906020012060001c90508091505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6101688061058f83390190565b60008135905061024881610560565b92915050565b60008135905061025d81610577565b92915050565b6000806040838503121561027a5761027961054e565b5b600061028885828601610239565b92505060206102998582860161024e565b9150509250929050565b6000602082840312156102b9576102b861054e565b5b60006102c78482850161024e565b91505092915050565b6102d981610467565b82525050565b6102f06102eb82610467565b61050c565b82525050565b61030761030282610479565b61051e565b82525050565b610316816104a5565b82525050565b61032d610328826104a5565b610528565b82525050565b600061033e82610451565b610348818561045c565b93506103588185602086016104d9565b80840191505092915050565b61036d816104cf565b82525050565b61038461037f826104cf565b610544565b82525050565b600061039682876102f6565b6001820191506103a682866102df565b6014820191506103b6828561031c565b6020820191506103c6828461031c565b60208201915081905095945050505050565b60006103e48285610333565b91506103f08284610373565b6020820191508190509392505050565b600060208201905061041560008301846102d0565b92915050565b6000602082019050610430600083018461030d565b92915050565b600060208201905061044b6000830184610364565b92915050565b600081519050919050565b600081905092915050565b6000610472826104af565b9050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156104f75780820151818401526020810190506104dc565b83811115610506576000848401525b50505050565b600061051782610532565b9050919050565b6000819050919050565b6000819050919050565b600061053d82610553565b9050919050565b6000819050919050565b600080fd5b60008160601b9050919050565b610569816104a5565b811461057457600080fd5b50565b610580816104cf565b811461058b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161016838038061016883398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b60b3806100b56000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033a2646970667358221220c323ecf1fc46d440633de43c5ea2bca82769caf1ff9e330985e76bffe322408064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x72C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBD38F2F EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x24DFC9D7 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xBBD6DD6B EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xD1524F74 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x16D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x94 SWAP2 SWAP1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB2 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0x17A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC4 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD5 PUSH2 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xFB SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x105 SWAP2 SWAP1 PUSH2 0x436 JUMP JUMPDEST DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x125 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP 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 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xFF PUSH1 0xF8 SHL ADDRESS DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x194 SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BA SWAP3 SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x168 DUP1 PUSH2 0x58F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x248 DUP2 PUSH2 0x560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25D DUP2 PUSH2 0x577 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A JUMPI PUSH2 0x279 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288 DUP6 DUP3 DUP7 ADD PUSH2 0x239 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x299 DUP6 DUP3 DUP7 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B9 JUMPI PUSH2 0x2B8 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C7 DUP5 DUP3 DUP6 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D9 DUP2 PUSH2 0x467 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2F0 PUSH2 0x2EB DUP3 PUSH2 0x467 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x307 PUSH2 0x302 DUP3 PUSH2 0x479 JUMP JUMPDEST PUSH2 0x51E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x316 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 DUP3 PUSH2 0x4A5 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E DUP3 PUSH2 0x451 JUMP JUMPDEST PUSH2 0x348 DUP2 DUP6 PUSH2 0x45C JUMP JUMPDEST SWAP4 POP PUSH2 0x358 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x36D DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x384 PUSH2 0x37F DUP3 PUSH2 0x4CF JUMP JUMPDEST PUSH2 0x544 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396 DUP3 DUP8 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x3A6 DUP3 DUP7 PUSH2 0x2DF JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x3B6 DUP3 DUP6 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3C6 DUP3 DUP5 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E4 DUP3 DUP6 PUSH2 0x333 JUMP JUMPDEST SWAP2 POP PUSH2 0x3F0 DUP3 DUP5 PUSH2 0x373 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x415 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x430 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x30D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x44B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x472 DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x517 DUP3 PUSH2 0x532 JUMP JUMPDEST 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 0x53D DUP3 PUSH2 0x553 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x569 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x580 DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP2 EQ PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x168 CODESIZE SUB DUP1 PUSH2 0x168 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4E DUP2 PUSH2 0x90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A JUMPI PUSH2 0x69 PUSH2 0x8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x78 DUP5 DUP3 DUP6 ADD PUSH2 0x3F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 DUP2 PUSH2 0x81 JUMP JUMPDEST DUP2 EQ PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xB3 DUP1 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0x23 0xEC CALL 0xFC CHAINID 0xD4 BLOCKHASH PUSH4 0x3DE43C5E LOG2 0xBC 0xA8 0x27 PUSH10 0xCAF1FF9E330985E76BFF 0xE3 0x22 BLOCKHASH DUP1 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "149:714:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@createDSalted_103": {
"entryPoint": 235,
"id": 103,
"parameterSlots": 2,
"returnSlots": 0
},
"@deployedAddr_77": {
"entryPoint": 520,
"id": 77,
"parameterSlots": 0,
"returnSlots": 0
},
"@getAddress_75": {
"entryPoint": 378,
"id": 75,
"parameterSlots": 2,
"returnSlots": 1
},
"@getBytes32_27": {
"entryPoint": 365,
"id": 27,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_decode_t_bytes32": {
"entryPoint": 569,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 590,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_bytes32t_uint256": {
"entryPoint": 611,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_decode_tuple_t_uint256": {
"entryPoint": 675,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 720,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack": {
"entryPoint": 735,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack": {
"entryPoint": 758,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_fromStack": {
"entryPoint": 781,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack": {
"entryPoint": 796,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 819,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 868,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack": {
"entryPoint": 883,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 906,
"id": null,
"parameterSlots": 5,
"returnSlots": 1
},
"abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed": {
"entryPoint": 984,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 1024,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": {
"entryPoint": 1051,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1078,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_length_t_bytes_memory_ptr": {
"entryPoint": 1105,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": {
"entryPoint": 1116,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 1127,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes1": {
"entryPoint": 1145,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_bytes32": {
"entryPoint": 1189,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 1199,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1231,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 1241,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"leftAlign_t_address": {
"entryPoint": 1292,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes1": {
"entryPoint": 1310,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_bytes32": {
"entryPoint": 1320,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint160": {
"entryPoint": 1330,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"leftAlign_t_uint256": {
"entryPoint": 1348,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1358,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"shift_left_96": {
"entryPoint": 1363,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_bytes32": {
"entryPoint": 1376,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 1399,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:6558:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bytes32",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "204:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "214:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "236:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "223:12:1"
},
"nodeType": "YulFunctionCall",
"src": "223:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "214:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "279:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "252:26:1"
},
"nodeType": "YulFunctionCall",
"src": "252:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "252:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "182:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "190:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "198:5:1",
"type": ""
}
],
"src": "152:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "380:391:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "426:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "428:77:1"
},
"nodeType": "YulFunctionCall",
"src": "428:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "428:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "401:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "410:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "397:3:1"
},
"nodeType": "YulFunctionCall",
"src": "397:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "422:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "393:3:1"
},
"nodeType": "YulFunctionCall",
"src": "393:32:1"
},
"nodeType": "YulIf",
"src": "390:119:1"
},
{
"nodeType": "YulBlock",
"src": "519:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "534:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "548:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "538:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "563:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "598:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "609:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "594:3:1"
},
"nodeType": "YulFunctionCall",
"src": "594:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "618:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bytes32",
"nodeType": "YulIdentifier",
"src": "573:20:1"
},
"nodeType": "YulFunctionCall",
"src": "573:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "563:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "646:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "661:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "675:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "665:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "691:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "726:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "737:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "722:3:1"
},
"nodeType": "YulFunctionCall",
"src": "722:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "746:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "701:20:1"
},
"nodeType": "YulFunctionCall",
"src": "701:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "691:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bytes32t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "342:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "353:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "365:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "373:6:1",
"type": ""
}
],
"src": "297:474:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "843:263:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "889:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "891:77:1"
},
"nodeType": "YulFunctionCall",
"src": "891:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "891:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "864:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "873:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "860:3:1"
},
"nodeType": "YulFunctionCall",
"src": "860:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "885:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "856:3:1"
},
"nodeType": "YulFunctionCall",
"src": "856:32:1"
},
"nodeType": "YulIf",
"src": "853:119:1"
},
{
"nodeType": "YulBlock",
"src": "982:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "997:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1011:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1001:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1026:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1061:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1072:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1057:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1057:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1081:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1036:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1026:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "813:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "824:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "836:6:1",
"type": ""
}
],
"src": "777:329:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1177:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1194:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1217:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1199:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1199:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1187:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1187:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1187:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1165:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1172:3:1",
"type": ""
}
],
"src": "1112:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1319:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1336:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1379:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1361:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1361:24:1"
}
],
"functionName": {
"name": "leftAlign_t_address",
"nodeType": "YulIdentifier",
"src": "1341:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1341:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1329:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1329:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "1329:58:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1307:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1314:3:1",
"type": ""
}
],
"src": "1236:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1480:72:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1497:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1538:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes1",
"nodeType": "YulIdentifier",
"src": "1521:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1521:23:1"
}
],
"functionName": {
"name": "leftAlign_t_bytes1",
"nodeType": "YulIdentifier",
"src": "1502:18:1"
},
"nodeType": "YulFunctionCall",
"src": "1502:43:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1490:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1490:56:1"
},
"nodeType": "YulExpressionStatement",
"src": "1490:56:1"
}
]
},
"name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1468:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1475:3:1",
"type": ""
}
],
"src": "1399:153:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1623:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1640:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1663:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1645:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1645:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1633:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1633:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1633:37:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1611:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1618:3:1",
"type": ""
}
],
"src": "1558:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1765:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1825:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1807:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1807:24:1"
}
],
"functionName": {
"name": "leftAlign_t_bytes32",
"nodeType": "YulIdentifier",
"src": "1787:19:1"
},
"nodeType": "YulFunctionCall",
"src": "1787:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1775:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1775:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "1775:58:1"
}
]
},
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1753:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1760:3:1",
"type": ""
}
],
"src": "1682:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1953:265:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1963:52:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2009:5:1"
}
],
"functionName": {
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1977:31:1"
},
"nodeType": "YulFunctionCall",
"src": "1977:38:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1967:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "2024:95:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2107:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2112:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2031:75:1"
},
"nodeType": "YulFunctionCall",
"src": "2031:88:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2024:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2154:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2161:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2150:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2150:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2168:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2173:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "2128:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2128:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "2128:52:1"
},
{
"nodeType": "YulAssignment",
"src": "2189:23:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2200:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2205:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2196:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2196:16:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2189:3:1"
}
]
}
]
},
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1934:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1941:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1949:3:1",
"type": ""
}
],
"src": "1845:373:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2289:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2306:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2329:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2311:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2311:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2299:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2299:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2299:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2277:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2284:3:1",
"type": ""
}
],
"src": "2224:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2431:74:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2448:3:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2491:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2473:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2473:24:1"
}
],
"functionName": {
"name": "leftAlign_t_uint256",
"nodeType": "YulIdentifier",
"src": "2453:19:1"
},
"nodeType": "YulFunctionCall",
"src": "2453:45:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2441:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2441:58:1"
},
"nodeType": "YulExpressionStatement",
"src": "2441:58:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2419:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2426:3:1",
"type": ""
}
],
"src": "2348:157:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2709:476:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2780:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2789:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2720:59:1"
},
"nodeType": "YulFunctionCall",
"src": "2720:73:1"
},
"nodeType": "YulExpressionStatement",
"src": "2720:73:1"
},
{
"nodeType": "YulAssignment",
"src": "2802:18:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2813:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2818:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2809:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2809:11:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2802:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "2892:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2901:3:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2830:61:1"
},
"nodeType": "YulFunctionCall",
"src": "2830:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "2830:75:1"
},
{
"nodeType": "YulAssignment",
"src": "2914:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2925:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2930:2:1",
"type": "",
"value": "20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2921:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2921:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2914:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "3005:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3014:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "2943:61:1"
},
"nodeType": "YulFunctionCall",
"src": "2943:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "2943:75:1"
},
{
"nodeType": "YulAssignment",
"src": "3027:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3038:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3043:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3034:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3034:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3027:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value3",
"nodeType": "YulIdentifier",
"src": "3118:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3127:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3056:61:1"
},
"nodeType": "YulFunctionCall",
"src": "3056:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "3056:75:1"
},
{
"nodeType": "YulAssignment",
"src": "3140:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3151:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3156:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3147:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3147:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3140:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3169:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3176:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3169:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2664:3:1",
"type": ""
},
{
"name": "value3",
"nodeType": "YulTypedName",
"src": "2670:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "2678:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "2686:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2694:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "2705:3:1",
"type": ""
}
],
"src": "2511:674:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3353:250:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3364:100:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3451:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3460:3:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3371:79:1"
},
"nodeType": "YulFunctionCall",
"src": "3371:93:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3364:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "3536:6:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3545:3:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack",
"nodeType": "YulIdentifier",
"src": "3474:61:1"
},
"nodeType": "YulFunctionCall",
"src": "3474:75:1"
},
"nodeType": "YulExpressionStatement",
"src": "3474:75:1"
},
{
"nodeType": "YulAssignment",
"src": "3558:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3569:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3574:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3565:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3565:12:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3558:3:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "3587:10:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "3594:3:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "3587:3:1"
}
]
}
]
},
"name": "abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "3324:3:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "3330:6:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3338:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "3349:3:1",
"type": ""
}
],
"src": "3191:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3707:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3717:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3729:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3740:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3725:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3725:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3717:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "3797:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3810:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3821:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3806:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3806:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "3753:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3753:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3753:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3679:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3691:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3702:4:1",
"type": ""
}
],
"src": "3609:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3935:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3945:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3957:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3968:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3953:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3953:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3945:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4025:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4038:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4049:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4034:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4034:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bytes32_to_t_bytes32_fromStack",
"nodeType": "YulIdentifier",
"src": "3981:43:1"
},
"nodeType": "YulFunctionCall",
"src": "3981:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "3981:71:1"
}
]
},
"name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3907:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "3919:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3930:4:1",
"type": ""
}
],
"src": "3837:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4163:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4173:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4185:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4196:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4181:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4181:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4173:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4253:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4266:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4277:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4262:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4262:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4209:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4209:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4209:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4135:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4147:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4158:4:1",
"type": ""
}
],
"src": "4065:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4333:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4343:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4359:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4353:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4353:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "4343:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "4326:6:1",
"type": ""
}
],
"src": "4293:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4432:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4443:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4459:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "4453:5:1"
},
"nodeType": "YulFunctionCall",
"src": "4453:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4443:6:1"
}
]
}
]
},
"name": "array_length_t_bytes_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4415:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4425:6:1",
"type": ""
}
],
"src": "4374:98:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4591:34:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4601:18:1",
"value": {
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4616:3:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4601:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4563:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4568:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4579:11:1",
"type": ""
}
],
"src": "4478:147:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4676:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4686:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4715:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4697:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4697:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4686:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4658:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4668:7:1",
"type": ""
}
],
"src": "4631:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4777:105:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4787:89:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4802:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4809:66:1",
"type": "",
"value": "0xff00000000000000000000000000000000000000000000000000000000000000"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4798:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4798:78:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4787:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4759:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4769:7:1",
"type": ""
}
],
"src": "4733:149:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4933:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4943:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "4954:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4943:7:1"
}
]
}
]
},
"name": "cleanup_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4915:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4925:7:1",
"type": ""
}
],
"src": "4888:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5016:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5026:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5041:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5048:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5037:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5037:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5026:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4998:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5008:7:1",
"type": ""
}
],
"src": "4971:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5148:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5158:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5169:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5158:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5130:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5140:7:1",
"type": ""
}
],
"src": "5103:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5235:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "5245:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "5254:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "5249:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "5314:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5339:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5344:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5335:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5335:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "5358:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5363:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5354:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5354:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "5348:5:1"
},
"nodeType": "YulFunctionCall",
"src": "5348:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5328:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5328:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "5328:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5275:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5278:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "5272:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5272:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "5286:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5288:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5297:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5300:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5293:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5288:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "5268:3:1",
"statements": []
},
"src": "5264:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5411:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "5461:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5466:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5457:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5457:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5475:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5450:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5450:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "5450:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "5392:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "5395:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "5389:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5389:13:1"
},
"nodeType": "YulIf",
"src": "5386:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "5217:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "5222:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "5227:6:1",
"type": ""
}
],
"src": "5186:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5546:53:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5556:37:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5587:5:1"
}
],
"functionName": {
"name": "leftAlign_t_uint160",
"nodeType": "YulIdentifier",
"src": "5567:19:1"
},
"nodeType": "YulFunctionCall",
"src": "5567:26:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5556:7:1"
}
]
}
]
},
"name": "leftAlign_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5528:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5538:7:1",
"type": ""
}
],
"src": "5499:100:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5651:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5661:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5672:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5661:7:1"
}
]
}
]
},
"name": "leftAlign_t_bytes1",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5633:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5643:7:1",
"type": ""
}
],
"src": "5605:78:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5736:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5746:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5757:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5746:7:1"
}
]
}
]
},
"name": "leftAlign_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5718:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5728:7:1",
"type": ""
}
],
"src": "5689:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5821:47:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5831:31:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5856:5:1"
}
],
"functionName": {
"name": "shift_left_96",
"nodeType": "YulIdentifier",
"src": "5842:13:1"
},
"nodeType": "YulFunctionCall",
"src": "5842:20:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5831:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5803:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5813:7:1",
"type": ""
}
],
"src": "5774:94:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5921:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5931:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5942:5:1"
},
"variableNames": [
{
"name": "aligned",
"nodeType": "YulIdentifier",
"src": "5931:7:1"
}
]
}
]
},
"name": "leftAlign_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5903:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "aligned",
"nodeType": "YulTypedName",
"src": "5913:7:1",
"type": ""
}
],
"src": "5874:79:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6048:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6065:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6068:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6058:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6058:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6058:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "5959:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6171:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6188:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6191:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6181:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6181:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6181:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "6082:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6247:52:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "6257:35:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6282:2:1",
"type": "",
"value": "96"
},
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6286:5:1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "6278:3:1"
},
"nodeType": "YulFunctionCall",
"src": "6278:14:1"
},
"variableNames": [
{
"name": "newValue",
"nodeType": "YulIdentifier",
"src": "6257:8:1"
}
]
}
]
},
"name": "shift_left_96",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6228:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "newValue",
"nodeType": "YulTypedName",
"src": "6238:8:1",
"type": ""
}
],
"src": "6205:94:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6348:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6405:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6414:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6417:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6407:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6407:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6407:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6371:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6396:5:1"
}
],
"functionName": {
"name": "cleanup_t_bytes32",
"nodeType": "YulIdentifier",
"src": "6378:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6378:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6368:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6368:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6361:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6361:43:1"
},
"nodeType": "YulIf",
"src": "6358:63:1"
}
]
},
"name": "validator_revert_t_bytes32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6341:5:1",
"type": ""
}
],
"src": "6305:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "6476:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6533:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6542:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6545:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6535:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6535:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6535:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6499:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6524:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "6506:17:1"
},
"nodeType": "YulFunctionCall",
"src": "6506:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "6496:2:1"
},
"nodeType": "YulFunctionCall",
"src": "6496:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "6489:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6489:43:1"
},
"nodeType": "YulIf",
"src": "6486:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "6469:5:1",
"type": ""
}
],
"src": "6433:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\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_bytes32t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes1(cleanup_t_bytes1(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_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_bytes1_t_address_t_bytes32_t_bytes32__to_t_bytes1_t_address_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value3, value2, value1, value0) -> end {\n\n abi_encode_t_bytes1_to_t_bytes1_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 1)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr_t_uint256__to_t_bytes_memory_ptr_t_uint256__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_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 function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\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 cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bytes1(value) -> cleaned {\n cleaned := and(value, 0xff00000000000000000000000000000000000000000000000000000000000000)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_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 leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function leftAlign_t_bytes1(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80630bd38f2f1461005157806324dfc9d71461006d578063bbd6dd6b1461009d578063d1524f74146100cd575b600080fd5b61006b60048036038101906100669190610263565b6100eb565b005b610087600480360381019061008291906102a3565b61016d565b604051610094919061041b565b60405180910390f35b6100b760048036038101906100b29190610263565b61017a565b6040516100c49190610400565b60405180910390f35b6100d5610208565b6040516100e29190610400565b60405180910390f35b600082826040516100fb9061022c565b6101059190610436565b8190604051809103906000f5905080158015610125573d6000803e3d6000fd5b509050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60008160001b9050919050565b60008060ff60f81b3085604051806020016101949061022c565b6020820181038252601f19601f82011660405250866040516020016101ba9291906103d8565b604051602081830303815290604052805190602001206040516020016101e3949392919061038a565b6040516020818303038152906040528051906020012060001c90508091505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6101688061058f83390190565b60008135905061024881610560565b92915050565b60008135905061025d81610577565b92915050565b6000806040838503121561027a5761027961054e565b5b600061028885828601610239565b92505060206102998582860161024e565b9150509250929050565b6000602082840312156102b9576102b861054e565b5b60006102c78482850161024e565b91505092915050565b6102d981610467565b82525050565b6102f06102eb82610467565b61050c565b82525050565b61030761030282610479565b61051e565b82525050565b610316816104a5565b82525050565b61032d610328826104a5565b610528565b82525050565b600061033e82610451565b610348818561045c565b93506103588185602086016104d9565b80840191505092915050565b61036d816104cf565b82525050565b61038461037f826104cf565b610544565b82525050565b600061039682876102f6565b6001820191506103a682866102df565b6014820191506103b6828561031c565b6020820191506103c6828461031c565b60208201915081905095945050505050565b60006103e48285610333565b91506103f08284610373565b6020820191508190509392505050565b600060208201905061041560008301846102d0565b92915050565b6000602082019050610430600083018461030d565b92915050565b600060208201905061044b6000830184610364565b92915050565b600081519050919050565b600081905092915050565b6000610472826104af565b9050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b838110156104f75780820151818401526020810190506104dc565b83811115610506576000848401525b50505050565b600061051782610532565b9050919050565b6000819050919050565b6000819050919050565b600061053d82610553565b9050919050565b6000819050919050565b600080fd5b60008160601b9050919050565b610569816104a5565b811461057457600080fd5b50565b610580816104cf565b811461058b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161016838038061016883398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b60b3806100b56000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033a2646970667358221220c323ecf1fc46d440633de43c5ea2bca82769caf1ff9e330985e76bffe322408064736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xBD38F2F EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x24DFC9D7 EQ PUSH2 0x6D JUMPI DUP1 PUSH4 0xBBD6DD6B EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xD1524F74 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0xEB JUMP JUMPDEST STOP JUMPDEST PUSH2 0x87 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x82 SWAP2 SWAP1 PUSH2 0x2A3 JUMP JUMPDEST PUSH2 0x16D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x94 SWAP2 SWAP1 PUSH2 0x41B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB7 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xB2 SWAP2 SWAP1 PUSH2 0x263 JUMP JUMPDEST PUSH2 0x17A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC4 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD5 PUSH2 0x208 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE2 SWAP2 SWAP1 PUSH2 0x400 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH2 0xFB SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH2 0x105 SWAP2 SWAP1 PUSH2 0x436 JUMP JUMPDEST DUP2 SWAP1 PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE2 SWAP1 POP DUP1 ISZERO DUP1 ISZERO PUSH2 0x125 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP 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 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x0 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0xFF PUSH1 0xF8 SHL ADDRESS DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH2 0x194 SWAP1 PUSH2 0x22C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD DUP2 SUB DUP3 MSTORE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND PUSH1 0x40 MSTORE POP DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1BA SWAP3 SWAP2 SWAP1 PUSH2 0x3D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1E3 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH1 0x0 SHR SWAP1 POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH2 0x168 DUP1 PUSH2 0x58F DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x248 DUP2 PUSH2 0x560 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x25D DUP2 PUSH2 0x577 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27A JUMPI PUSH2 0x279 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288 DUP6 DUP3 DUP7 ADD PUSH2 0x239 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x299 DUP6 DUP3 DUP7 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B9 JUMPI PUSH2 0x2B8 PUSH2 0x54E JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C7 DUP5 DUP3 DUP6 ADD PUSH2 0x24E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2D9 DUP2 PUSH2 0x467 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2F0 PUSH2 0x2EB DUP3 PUSH2 0x467 JUMP JUMPDEST PUSH2 0x50C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x307 PUSH2 0x302 DUP3 PUSH2 0x479 JUMP JUMPDEST PUSH2 0x51E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x316 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 DUP3 PUSH2 0x4A5 JUMP JUMPDEST PUSH2 0x528 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x33E DUP3 PUSH2 0x451 JUMP JUMPDEST PUSH2 0x348 DUP2 DUP6 PUSH2 0x45C JUMP JUMPDEST SWAP4 POP PUSH2 0x358 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x4D9 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x36D DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x384 PUSH2 0x37F DUP3 PUSH2 0x4CF JUMP JUMPDEST PUSH2 0x544 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x396 DUP3 DUP8 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH2 0x3A6 DUP3 DUP7 PUSH2 0x2DF JUMP JUMPDEST PUSH1 0x14 DUP3 ADD SWAP2 POP PUSH2 0x3B6 DUP3 DUP6 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH2 0x3C6 DUP3 DUP5 PUSH2 0x31C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3E4 DUP3 DUP6 PUSH2 0x333 JUMP JUMPDEST SWAP2 POP PUSH2 0x3F0 DUP3 DUP5 PUSH2 0x373 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP2 POP DUP2 SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x415 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x430 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x30D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x44B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x364 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x472 DUP3 PUSH2 0x4AF JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F7 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4DC JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x506 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x517 DUP3 PUSH2 0x532 JUMP JUMPDEST 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 0x53D DUP3 PUSH2 0x553 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x60 SHL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x569 DUP2 PUSH2 0x4A5 JUMP JUMPDEST DUP2 EQ PUSH2 0x574 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x580 DUP2 PUSH2 0x4CF JUMP JUMPDEST DUP2 EQ PUSH2 0x58B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x168 CODESIZE SUB DUP1 PUSH2 0x168 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4E DUP2 PUSH2 0x90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A JUMPI PUSH2 0x69 PUSH2 0x8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x78 DUP5 DUP3 DUP6 ADD PUSH2 0x3F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 DUP2 PUSH2 0x81 JUMP JUMPDEST DUP2 EQ PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xB3 DUP1 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0x23 0xEC CALL 0xFC CHAINID 0xD4 BLOCKHASH PUSH4 0x3DE43C5E LOG2 0xBC 0xA8 0x27 PUSH10 0xCAF1FF9E330985E76BFF 0xE3 0x22 BLOCKHASH DUP1 PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "149:714:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;723:137;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;173:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;283:396;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;687:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;723:137;788:3;806:4;812:3;794:22;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;788:28;;850:1;827:12;;:25;;;;;;;;;;;;;;;;;;777:83;723:137;;:::o;173:102::-;227:7;262:4;254:13;;247:20;;173:102;;;:::o;283:396::-;350:7;370:12;454:4;447:12;;482:4;502;566:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;605:3;531:92;;;;;;;;;:::i;:::-;;;;;;;;;;;;;521:103;;;;;;416:219;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;406:230;;;;;;401:236;;370:269;;667:4;660:11;;;283:396;;;;:::o;687:27::-;;;;;;;;;;;;:::o;-1:-1:-1:-;;;;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:474::-;365:6;373;422:2;410:9;401:7;397:23;393:32;390:119;;;428:79;;:::i;:::-;390:119;548:1;573:53;618:7;609:6;598:9;594:22;573:53;:::i;:::-;563:63;;519:117;675:2;701:53;746:7;737:6;726:9;722:22;701:53;:::i;:::-;691:63;;646:118;297:474;;;;;:::o;777:329::-;836:6;885:2;873:9;864:7;860:23;856:32;853:119;;;891:79;;:::i;:::-;853:119;1011:1;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;982:117;777:329;;;;:::o;1112:118::-;1199:24;1217:5;1199:24;:::i;:::-;1194:3;1187:37;1112:118;;:::o;1236:157::-;1341:45;1361:24;1379:5;1361:24;:::i;:::-;1341:45;:::i;:::-;1336:3;1329:58;1236:157;;:::o;1399:153::-;1502:43;1521:23;1538:5;1521:23;:::i;:::-;1502:43;:::i;:::-;1497:3;1490:56;1399:153;;:::o;1558:118::-;1645:24;1663:5;1645:24;:::i;:::-;1640:3;1633:37;1558:118;;:::o;1682:157::-;1787:45;1807:24;1825:5;1807:24;:::i;:::-;1787:45;:::i;:::-;1782:3;1775:58;1682:157;;:::o;1845:373::-;1949:3;1977:38;2009:5;1977:38;:::i;:::-;2031:88;2112:6;2107:3;2031:88;:::i;:::-;2024:95;;2128:52;2173:6;2168:3;2161:4;2154:5;2150:16;2128:52;:::i;:::-;2205:6;2200:3;2196:16;2189:23;;1953:265;1845:373;;;;:::o;2224:118::-;2311:24;2329:5;2311:24;:::i;:::-;2306:3;2299:37;2224:118;;:::o;2348:157::-;2453:45;2473:24;2491:5;2473:24;:::i;:::-;2453:45;:::i;:::-;2448:3;2441:58;2348:157;;:::o;2511:674::-;2705:3;2720:73;2789:3;2780:6;2720:73;:::i;:::-;2818:1;2813:3;2809:11;2802:18;;2830:75;2901:3;2892:6;2830:75;:::i;:::-;2930:2;2925:3;2921:12;2914:19;;2943:75;3014:3;3005:6;2943:75;:::i;:::-;3043:2;3038:3;3034:12;3027:19;;3056:75;3127:3;3118:6;3056:75;:::i;:::-;3156:2;3151:3;3147:12;3140:19;;3176:3;3169:10;;2511:674;;;;;;;:::o;3191:412::-;3349:3;3371:93;3460:3;3451:6;3371:93;:::i;:::-;3364:100;;3474:75;3545:3;3536:6;3474:75;:::i;:::-;3574:2;3569:3;3565:12;3558:19;;3594:3;3587:10;;3191:412;;;;;:::o;3609:222::-;3702:4;3740:2;3729:9;3725:18;3717:26;;3753:71;3821:1;3810:9;3806:17;3797:6;3753:71;:::i;:::-;3609:222;;;;:::o;3837:::-;3930:4;3968:2;3957:9;3953:18;3945:26;;3981:71;4049:1;4038:9;4034:17;4025:6;3981:71;:::i;:::-;3837:222;;;;:::o;4065:::-;4158:4;4196:2;4185:9;4181:18;4173:26;;4209:71;4277:1;4266:9;4262:17;4253:6;4209:71;:::i;:::-;4065:222;;;;:::o;4374:98::-;4425:6;4459:5;4453:12;4443:22;;4374:98;;;:::o;4478:147::-;4579:11;4616:3;4601:18;;4478:147;;;;:::o;4631:96::-;4668:7;4697:24;4715:5;4697:24;:::i;:::-;4686:35;;4631:96;;;:::o;4733:149::-;4769:7;4809:66;4802:5;4798:78;4787:89;;4733:149;;;:::o;4888:77::-;4925:7;4954:5;4943:16;;4888:77;;;:::o;4971:126::-;5008:7;5048:42;5041:5;5037:54;5026:65;;4971:126;;;:::o;5103:77::-;5140:7;5169:5;5158:16;;5103:77;;;:::o;5186:307::-;5254:1;5264:113;5278:6;5275:1;5272:13;5264:113;;;5363:1;5358:3;5354:11;5348:18;5344:1;5339:3;5335:11;5328:39;5300:2;5297:1;5293:10;5288:15;;5264:113;;;5395:6;5392:1;5389:13;5386:101;;;5475:1;5466:6;5461:3;5457:16;5450:27;5386:101;5235:258;5186:307;;;:::o;5499:100::-;5538:7;5567:26;5587:5;5567:26;:::i;:::-;5556:37;;5499:100;;;:::o;5605:78::-;5643:7;5672:5;5661:16;;5605:78;;;:::o;5689:79::-;5728:7;5757:5;5746:16;;5689:79;;;:::o;5774:94::-;5813:7;5842:20;5856:5;5842:20;:::i;:::-;5831:31;;5774:94;;;:::o;5874:79::-;5913:7;5942:5;5931:16;;5874:79;;;:::o;6082:117::-;6191:1;6188;6181:12;6205:94;6238:8;6286:5;6282:2;6278:14;6257:35;;6205:94;;;:::o;6305:122::-;6378:24;6396:5;6378:24;:::i;:::-;6371:5;6368:35;6358:63;;6417:1;6414;6407:12;6358:63;6305:122;:::o;6433:::-;6506:24;6524:5;6506:24;:::i;:::-;6499:5;6496:35;6486:63;;6545:1;6542;6535:12;6486:63;6433:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "367200",
"executionCost": "405",
"totalCost": "367605"
},
"external": {
"createDSalted(bytes32,uint256)": "infinite",
"deployedAddr()": "2555",
"getAddress(bytes32,uint256)": "infinite",
"getBytes32(uint256)": "608"
}
},
"methodIdentifiers": {
"createDSalted(bytes32,uint256)": "0bd38f2f",
"deployedAddr()": "d1524f74",
"getAddress(bytes32,uint256)": "bbd6dd6b",
"getBytes32(uint256)": "24dfc9d7"
}
},
"abi": [
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "arg",
"type": "uint256"
}
],
"name": "createDSalted",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deployedAddr",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "arg",
"type": "uint256"
}
],
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "salt",
"type": "uint256"
}
],
"name": "getBytes32",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "arg",
"type": "uint256"
}
],
"name": "createDSalted",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "deployedAddr",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "salt",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "arg",
"type": "uint256"
}
],
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "salt",
"type": "uint256"
}
],
"name": "getBytes32",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/01.Solidity-8.0新特性/Create2.sol": "Create2"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/01.Solidity-8.0新特性/Create2.sol": {
"keccak256": "0xad2340075a9562b04c5b9ac7b8815b66c7d06eaa513d1d2a07754b32591f2dd9",
"license": "MIT",
"urls": [
"bzz-raw://a39e44f65cc32c5014c1e5daafad38a1a60399efce19815a2f67a59a2837e9a7",
"dweb:/ipfs/QmcN2sUHYpZozEjXZxtKGs3bWhbRCKJtMxcUNeqpXDG5tS"
]
}
},
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_13": {
"entryPoint": null,
"id": 13,
"parameterSlots": 1,
"returnSlots": 0
},
"abi_decode_t_uint256_fromMemory": {
"entryPoint": 63,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256_fromMemory": {
"entryPoint": 84,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 129,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": null,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 139,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"validator_revert_t_uint256": {
"entryPoint": 144,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1048:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "70:80:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "80:22:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "89:5:1"
},
"nodeType": "YulFunctionCall",
"src": "89:13:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "80:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "138:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "111:26:1"
},
"nodeType": "YulFunctionCall",
"src": "111:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "111:33:1"
}
]
},
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "48:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "56:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "64:5:1",
"type": ""
}
],
"src": "7:143:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "233:274:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "279:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "281:77:1"
},
"nodeType": "YulFunctionCall",
"src": "281:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "281:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "254:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "263:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "250:3:1"
},
"nodeType": "YulFunctionCall",
"src": "250:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "275:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "246:3:1"
},
"nodeType": "YulFunctionCall",
"src": "246:32:1"
},
"nodeType": "YulIf",
"src": "243:119:1"
},
{
"nodeType": "YulBlock",
"src": "372:128:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "387:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "401:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "391:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "416:74:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "462:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "473:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "458:3:1"
},
"nodeType": "YulFunctionCall",
"src": "458:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "482:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256_fromMemory",
"nodeType": "YulIdentifier",
"src": "426:31:1"
},
"nodeType": "YulFunctionCall",
"src": "426:64:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "416:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256_fromMemory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "203:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "214:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "226:6:1",
"type": ""
}
],
"src": "156:351:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "553:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "563:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "579:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "573:5:1"
},
"nodeType": "YulFunctionCall",
"src": "573:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "563:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "546:6:1",
"type": ""
}
],
"src": "513:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "639:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "649:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "660:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "649:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "621:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "631:7:1",
"type": ""
}
],
"src": "594:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "766:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "783:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "786:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "776:6:1"
},
"nodeType": "YulFunctionCall",
"src": "776:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "776:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "677:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "889:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "906:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "909:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "899:6:1"
},
"nodeType": "YulFunctionCall",
"src": "899:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "899:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "800:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "966:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1023:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1032:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1035:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1025:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1025:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1025:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "989:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1014:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "996:17:1"
},
"nodeType": "YulFunctionCall",
"src": "996:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "986:2:1"
},
"nodeType": "YulFunctionCall",
"src": "986:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "979:6:1"
},
"nodeType": "YulFunctionCall",
"src": "979:43:1"
},
"nodeType": "YulIf",
"src": "976:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "959:5:1",
"type": ""
}
],
"src": "923:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5060405161016838038061016883398181016040528101906100329190610054565b80600081905550506100a7565b60008151905061004e81610090565b92915050565b60006020828403121561006a5761006961008b565b5b60006100788482850161003f565b91505092915050565b6000819050919050565b600080fd5b61009981610081565b81146100a457600080fd5b50565b60b3806100b56000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x168 CODESIZE SUB DUP1 PUSH2 0x168 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x54 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP PUSH2 0xA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4E DUP2 PUSH2 0x90 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6A JUMPI PUSH2 0x69 PUSH2 0x8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x78 DUP5 DUP3 DUP6 ADD PUSH2 0x3F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x99 DUP2 PUSH2 0x81 JUMP JUMPDEST DUP2 EQ PUSH2 0xA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0xB3 DUP1 PUSH2 0xB5 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER ",
"sourceMap": "60:85:0:-:0;;;98:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;133:1;129;:5;;;;98:44;60:85;;7:143:1;64:5;95:6;89:13;80:22;;111:33;138:5;111:33;:::i;:::-;7:143;;;;:::o;156:351::-;226:6;275:2;263:9;254:7;250:23;246:32;243:119;;;281:79;;:::i;:::-;243:119;401:1;426:64;482:7;473:6;462:9;458:22;426:64;:::i;:::-;416:74;;372:128;156:351;;;;:::o;594:77::-;631:7;660:5;649:16;;594:77;;;:::o;800:117::-;909:1;906;899:12;923:122;996:24;1014:5;996:24;:::i;:::-;989:5;986:35;976:63;;1035:1;1032;1025:12;976:63;923:122;:::o;60:85:0:-;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@x_3": {
"entryPoint": 71,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 77,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 90,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 115,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:439:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "247:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:1"
},
"nodeType": "YulFunctionCall",
"src": "328:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:1"
},
"nodeType": "YulFunctionCall",
"src": "275:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:1",
"type": ""
}
],
"src": "131:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "404:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "414:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "425:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "414:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "386:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "396:7:1",
"type": ""
}
],
"src": "359:77:1"
}
]
},
"contents": "{\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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b506004361060285760003560e01c80630c55699c14602d575b600080fd5b60336047565b604051603e9190605a565b60405180910390f35b60005481565b6054816073565b82525050565b6000602082019050606d6000830184604d565b92915050565b600081905091905056fea264697066735822122006fd1a3462cce14e23b6f1ae7b2f1e1b9f70f789a501d64dc0f512840fdf3c8c64736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC55699C EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x54 DUP2 PUSH1 0x73 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x6D PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x4D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MOD REVERT BYTE CALLVALUE PUSH3 0xCCE14E 0x23 0xB6 CALL 0xAE PUSH28 0x2F1E1B9F70F789A501D64DC0F512840FDF3C8C64736F6C6343000807 STOP CALLER ",
"sourceMap": "60:85:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78:13;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:77::-;396:7;425:5;414:16;;359:77;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "35800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"x()": "2407"
}
},
"methodIdentifiers": {
"x()": "0c55699c"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "x",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "a",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "x",
"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/01.Solidity-8.0新特性/Create2.sol": "D"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/01.Solidity-8.0新特性/Create2.sol": {
"keccak256": "0xad2340075a9562b04c5b9ac7b8815b66c7d06eaa513d1d2a07754b32591f2dd9",
"license": "MIT",
"urls": [
"bzz-raw://a39e44f65cc32c5014c1e5daafad38a1a60399efce19815a2f67a59a2837e9a7",
"dweb:/ipfs/QmcN2sUHYpZozEjXZxtKGs3bWhbRCKJtMxcUNeqpXDG5tS"
]
}
},
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061016d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637f3f6a731461003b578063a9a3e61114610059575b600080fd5b610043610077565b60405161005091906100b9565b60405180910390f35b610061610093565b60405161006e91906100b9565b60405180910390f35b600080600090508080610089906100de565b9150508091505090565b600080600090508080600190039150508091505090565b6100b3816100d4565b82525050565b60006020820190506100ce60008301846100aa565b92915050565b6000819050919050565b60006100e9826100d4565b915060008214156100fd576100fc610108565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220e9c853b66f40ced323f95fd0de9cda09452ef2e8925eaf635602cc32455c9a0864736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16D 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 0x7F3F6A73 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA9A3E611 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x93 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP DUP1 DUP1 PUSH2 0x89 SWAP1 PUSH2 0xDE JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0xB3 DUP2 PUSH2 0xD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 DUP3 PUSH2 0xD4 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0xFD JUMPI PUSH2 0xFC PUSH2 0x108 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xC8 MSTORE8 0xB6 PUSH16 0x40CED323F95FD0DE9CDA09452EF2E892 0x5E 0xAF PUSH4 0x5602CC32 GASLIMIT 0x5C SWAP11 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "72:358:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@testUncheckedUnderflow_32": {
"entryPoint": 147,
"id": 32,
"parameterSlots": 0,
"returnSlots": 1
},
"@testUnderflow_16": {
"entryPoint": 119,
"id": 16,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 170,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 185,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 212,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"decrement_t_uint256": {
"entryPoint": 222,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 264,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:802:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "247:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:1"
},
"nodeType": "YulFunctionCall",
"src": "328:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:1"
},
"nodeType": "YulFunctionCall",
"src": "275:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:1",
"type": ""
}
],
"src": "131:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "404:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "414:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "425:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "414:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "386:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "396:7:1",
"type": ""
}
],
"src": "359:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "485:128:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "495:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "522:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "504:17:1"
},
"nodeType": "YulFunctionCall",
"src": "504:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "495:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "556:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "558:16:1"
},
"nodeType": "YulFunctionCall",
"src": "558:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "558:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "543:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "550:4:1",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "540:2:1"
},
"nodeType": "YulFunctionCall",
"src": "540:15:1"
},
"nodeType": "YulIf",
"src": "537:41:1"
},
{
"nodeType": "YulAssignment",
"src": "587:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "598:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "605:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "594:3:1"
},
"nodeType": "YulFunctionCall",
"src": "594:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "587:3:1"
}
]
}
]
},
"name": "decrement_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "471:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "481:3:1",
"type": ""
}
],
"src": "442:171:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "647:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "664:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "667:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "657:6:1"
},
"nodeType": "YulFunctionCall",
"src": "657:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "657:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "761:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "764:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "754:6:1"
},
"nodeType": "YulFunctionCall",
"src": "754:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "754:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "785:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "788:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "778:6:1"
},
"nodeType": "YulFunctionCall",
"src": "778:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "778:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "619:180:1"
}
]
},
"contents": "{\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 cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function decrement_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0x00) { panic_error_0x11() }\n ret := sub(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80637f3f6a731461003b578063a9a3e61114610059575b600080fd5b610043610077565b60405161005091906100b9565b60405180910390f35b610061610093565b60405161006e91906100b9565b60405180910390f35b600080600090508080610089906100de565b9150508091505090565b600080600090508080600190039150508091505090565b6100b3816100d4565b82525050565b60006020820190506100ce60008301846100aa565b92915050565b6000819050919050565b60006100e9826100d4565b915060008214156100fd576100fc610108565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220e9c853b66f40ced323f95fd0de9cda09452ef2e8925eaf635602cc32455c9a0864736f6c63430008070033",
"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 0x7F3F6A73 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA9A3E611 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x93 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP DUP1 DUP1 PUSH2 0x89 SWAP1 PUSH2 0xDE JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0xB3 DUP2 PUSH2 0xD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 DUP3 PUSH2 0xD4 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0xFD JUMPI PUSH2 0xFC PUSH2 0x108 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xC8 MSTORE8 0xB6 PUSH16 0x40CED323F95FD0DE9CDA09452EF2E892 0x5E 0xAF PUSH4 0x5602CC32 GASLIMIT 0x5C SWAP11 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "72:358:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;97:114;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;290:137;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;97:114;143:4;160:6;169:1;160:10;;181:3;;;;;:::i;:::-;;;;202:1;195:8;;;97:114;:::o;290:137::-;345:4;362:6;371:1;362:10;;395:3;;;;;;;;418:1;411:8;;;290:137;:::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:77::-;396:7;425:5;414:16;;359:77;;;:::o;442:171::-;481:3;504:24;522:5;504:24;:::i;:::-;495:33;;550:4;543:5;540:15;537:41;;;558:18;;:::i;:::-;537:41;605:1;598:5;594:13;587:20;;442:171;;;:::o;619:180::-;667:77;664:1;657:88;764:4;761:1;754:15;788:4;785:1;778:15"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "73000",
"executionCost": "123",
"totalCost": "73123"
},
"external": {
"testUncheckedUnderflow()": "372",
"testUnderflow()": "269"
}
},
"methodIdentifiers": {
"testUncheckedUnderflow()": "a9a3e611",
"testUnderflow()": "7f3f6a73"
}
},
"abi": [
{
"inputs": [],
"name": "testUncheckedUnderflow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testUnderflow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "testUncheckedUnderflow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testUnderflow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/01.Solidity-8.0新特性/Sol.sol": "SafeMath"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/01.Solidity-8.0新特性/Sol.sol": {
"keccak256": "0x28eed03bdb54ce39fc9ca66ae96ae880952d670f12fc077af1cd95250a49752a",
"license": "MIT",
"urls": [
"bzz-raw://7944dbc7a395a509fe0b17fab5252741e18cce28c56b3ca00850c2933a86aa96",
"dweb:/ipfs/QmVYV3KiNXkaZzBhF7t2S5ZV2UMJcpkEaz5iidMw3EYiNA"
]
}
},
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061017a806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861004e565b6040516100459190610096565b60405180910390f35b600061005a607b61005f565b905090565b600061006a82610071565b9050919050565b600060028261008091906100b1565b9050919050565b6100908161010b565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc8261010b565b91506100c78361010b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610100576100ff610115565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122054d0213278ca2d45e9603c0865626500e693dc309f38cf28f7c91b846d90801164736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x17A 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 0xF8A8FD6D EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x5A PUSH1 0x7B PUSH2 0x5F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A DUP3 PUSH2 0x71 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x10B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x10B JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x10B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x100 JUMPI PUSH2 0xFF PUSH2 0x115 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xD0 0x21 ORIGIN PUSH25 0xCA2D45E9603C0865626500E693DC309F38CF28F7C91B846D90 DUP1 GT PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "207:112:1:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@helper_12": {
"entryPoint": 113,
"id": 12,
"parameterSlots": 1,
"returnSlots": 1
},
"@helper_28": {
"entryPoint": 95,
"id": 28,
"parameterSlots": 1,
"returnSlots": 1
},
"@test_38": {
"entryPoint": 78,
"id": 38,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 135,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 150,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_mul_t_uint256": {
"entryPoint": 177,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 267,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 277,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:979:2",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:2",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:2"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "94:17:2"
},
"nodeType": "YulFunctionCall",
"src": "94:24:2"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:2"
},
"nodeType": "YulFunctionCall",
"src": "82:37:2"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:2"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:2",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:2",
"type": ""
}
],
"src": "7:118:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:2",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:2",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:2"
},
"nodeType": "YulFunctionCall",
"src": "247:18:2"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:2"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:2"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:2"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:2",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:2"
},
"nodeType": "YulFunctionCall",
"src": "328:17:2"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:2"
},
"nodeType": "YulFunctionCall",
"src": "275:71:2"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:2"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:2",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:2",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:2",
"type": ""
}
],
"src": "131:222:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "407:300:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "417:25:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "440:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "422:17:2"
},
"nodeType": "YulFunctionCall",
"src": "422:20:2"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "417:1:2"
}
]
},
{
"nodeType": "YulAssignment",
"src": "451:25:2",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "474:1:2"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "456:17:2"
},
"nodeType": "YulFunctionCall",
"src": "456:20:2"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "451:1:2"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "649:22:2",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "651:16:2"
},
"nodeType": "YulFunctionCall",
"src": "651:18:2"
},
"nodeType": "YulExpressionStatement",
"src": "651:18:2"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "561:1:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "554:6:2"
},
"nodeType": "YulFunctionCall",
"src": "554:9:2"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "547:6:2"
},
"nodeType": "YulFunctionCall",
"src": "547:17:2"
},
{
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "569:1:2"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:66:2",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "644:1:2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "572:3:2"
},
"nodeType": "YulFunctionCall",
"src": "572:74:2"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "566:2:2"
},
"nodeType": "YulFunctionCall",
"src": "566:81:2"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "543:3:2"
},
"nodeType": "YulFunctionCall",
"src": "543:105:2"
},
"nodeType": "YulIf",
"src": "540:131:2"
},
{
"nodeType": "YulAssignment",
"src": "681:20:2",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "696:1:2"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "699:1:2"
}
],
"functionName": {
"name": "mul",
"nodeType": "YulIdentifier",
"src": "692:3:2"
},
"nodeType": "YulFunctionCall",
"src": "692:9:2"
},
"variableNames": [
{
"name": "product",
"nodeType": "YulIdentifier",
"src": "681:7:2"
}
]
}
]
},
"name": "checked_mul_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "390:1:2",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "393:1:2",
"type": ""
}
],
"returnVariables": [
{
"name": "product",
"nodeType": "YulTypedName",
"src": "399:7:2",
"type": ""
}
],
"src": "359:348:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "758:32:2",
"statements": [
{
"nodeType": "YulAssignment",
"src": "768:16:2",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "779:5:2"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "768:7:2"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "740:5:2",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "750:7:2",
"type": ""
}
],
"src": "713:77:2"
},
{
"body": {
"nodeType": "YulBlock",
"src": "824:152:2",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "841:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "844:77:2",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "834:6:2"
},
"nodeType": "YulFunctionCall",
"src": "834:88:2"
},
"nodeType": "YulExpressionStatement",
"src": "834:88:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "938:1:2",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "941:4:2",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "931:6:2"
},
"nodeType": "YulFunctionCall",
"src": "931:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "931:15:2"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "962:1:2",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "965:4:2",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "955:6:2"
},
"nodeType": "YulFunctionCall",
"src": "955:15:2"
},
"nodeType": "YulExpressionStatement",
"src": "955:15:2"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "796:180:2"
}
]
},
"contents": "{\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 checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n",
"id": 2,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8a8fd6d14610030575b600080fd5b61003861004e565b6040516100459190610096565b60405180910390f35b600061005a607b61005f565b905090565b600061006a82610071565b9050919050565b600060028261008091906100b1565b9050919050565b6100908161010b565b82525050565b60006020820190506100ab6000830184610087565b92915050565b60006100bc8261010b565b91506100c78361010b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610100576100ff610115565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea264697066735822122054d0213278ca2d45e9603c0865626500e693dc309f38cf28f7c91b846d90801164736f6c63430008070033",
"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 0xF8A8FD6D EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x96 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x5A PUSH1 0x7B PUSH2 0x5F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6A DUP3 PUSH2 0x71 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 PUSH2 0x80 SWAP2 SWAP1 PUSH2 0xB1 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x90 DUP2 PUSH2 0x10B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xAB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x87 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBC DUP3 PUSH2 0x10B JUMP JUMPDEST SWAP2 POP PUSH2 0xC7 DUP4 PUSH2 0x10B JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP4 GT DUP3 ISZERO ISZERO AND ISZERO PUSH2 0x100 JUMPI PUSH2 0xFF PUSH2 0x115 JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SLOAD 0xD0 0x21 ORIGIN PUSH25 0xCA2D45E9603C0865626500E693DC309F38CF28F7C91B846D90 DUP1 GT PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "207:112:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:82;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;273:4;297:11;304:3;297:6;:11::i;:::-;290:18;;234:82;:::o;136:67::-;174:4;194:5;197:1;194:2;:5::i;:::-;187:12;;136:67;;;:::o;0::0:-;38:4;62:1;58;:5;;;;:::i;:::-;51:12;;0:67;;;:::o;7:118:2:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:348::-;399:7;422:20;440:1;422:20;:::i;:::-;417:25;;456:20;474:1;456:20;:::i;:::-;451:25;;644:1;576:66;572:74;569:1;566:81;561:1;554:9;547:17;543:105;540:131;;;651:18;;:::i;:::-;540:131;699:1;696;692:9;681:20;;359:348;;;;:::o;713:77::-;750:7;779:5;768:16;;713:77;;;:::o;796:180::-;844:77;841:1;834:88;941:4;938:1;931:15;965:4;962:1;955:15"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "75600",
"executionCost": "123",
"totalCost": "75723"
},
"external": {
"test()": "infinite"
}
},
"methodIdentifiers": {
"test()": "f8a8fd6d"
}
},
"abi": [
{
"inputs": [],
"name": "test",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "test",
"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/01.Solidity-8.0新特性/TestHelper.sol": "TestHelper"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/01.Solidity-8.0新特性/Sol.sol": {
"keccak256": "0x3cddafa0a550b4d798c70e210ab5ecf8ad6db01c8e0e66ab2065484fbd6352b9",
"urls": [
"bzz-raw://4d7b487be386737b7b82f18e6f65d88014a1fd02f5bd6aeb6fbb4468318528dc",
"dweb:/ipfs/QmVrh7Lnz2ENjHUKcGGVX26B9wbyaGFyFmmWSe1GQzksUr"
]
},
"contracts/01.Solidity-8.0新特性/TestHelper.sol": {
"keccak256": "0xbdfc5a58b306dddfce3fb1c1ccb5b6e78aff66216c6ced32a09676bb15d52307",
"license": "MIT",
"urls": [
"bzz-raw://63795a3eacebb5be5a4f5f3211620da32a75ae7954ca3fc081d01a5e667fd4c5",
"dweb:/ipfs/QmWHxFLxTTVJYcWWspE4jJh2ibGGAakEhEttP7UJiUkVRw"
]
}
},
"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
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b506101c5806100606000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80633ccfd60b14610030575b600080fd5b61003861003a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ca57336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016100c19190610142565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610130573d6000803e3d6000fd5b50565b61013c8161015d565b82525050565b60006020820190506101576000830184610133565b92915050565b60006101688261016f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff8216905091905056fea26469706673582212205924ac7f86e6df1bc3da8b037d2c1c5335fc2f637317796e3858b084cea8804464736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1C5 DUP1 PUSH2 0x60 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 0x3CCFD60B EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCA JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0x8E4A23D600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x130 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13C DUP2 PUSH2 0x15D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x157 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168 DUP3 PUSH2 0x16F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0x24 0xAC PUSH32 0x86E6DF1BC3DA8B037D2C1C5335FC2F637317796E3858B084CEA8804464736F6C PUSH4 0x43000807 STOP CALLER ",
"sourceMap": "77:466:0:-:0;;;140:10;108:43;;;;;;;;;;;;;;;;;;;;77:466;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@withdraw_36": {
"entryPoint": 58,
"id": 36,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_address_to_t_address_fromStack": {
"entryPoint": 307,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": 322,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_address": {
"entryPoint": 349,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint160": {
"entryPoint": 367,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:590:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "247:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:1"
},
"nodeType": "YulFunctionCall",
"src": "328:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:1"
},
"nodeType": "YulFunctionCall",
"src": "275:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:1",
"type": ""
}
],
"src": "131:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "404:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "414:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "443:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "425:17:1"
},
"nodeType": "YulFunctionCall",
"src": "425:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "414:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "386:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "396:7:1",
"type": ""
}
],
"src": "359:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "506:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "516:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "531:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "538:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "527:3:1"
},
"nodeType": "YulFunctionCall",
"src": "527:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "516:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "498:7:1",
"type": ""
}
],
"src": "461:126:1"
}
]
},
"contents": "{\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80633ccfd60b14610030575b600080fd5b61003861003a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146100ca57336040517f8e4a23d60000000000000000000000000000000000000000000000000000000081526004016100c19190610142565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610130573d6000803e3d6000fd5b50565b61013c8161015d565b82525050565b60006020820190506101576000830184610133565b92915050565b60006101688261016f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff8216905091905056fea26469706673582212205924ac7f86e6df1bc3da8b037d2c1c5335fc2f637317796e3858b084cea8804464736f6c63430008070033",
"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 0x3CCFD60B EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xCA JUMPI CALLER PUSH1 0x40 MLOAD PUSH32 0x8E4A23D600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1 SWAP2 SWAP1 PUSH2 0x142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x130 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x13C DUP2 PUSH2 0x15D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x157 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x168 DUP3 PUSH2 0x16F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0x24 0xAC PUSH32 0x86E6DF1BC3DA8B037D2C1C5335FC2F637317796E3858B084CEA8804464736F6C PUSH4 0x43000807 STOP CALLER ",
"sourceMap": "77:466:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:337;;;:::i;:::-;;;259:5;;;;;;;;;;245:19;;:10;:19;;;241:231;;461:10;448:24;;;;;;;;;;;:::i;:::-;;;;;;;;241:231;495:5;;;;;;;;;;:14;;:37;510:21;495:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;203:337::o;7:118:1:-;94:24;112:5;94:24;:::i;:::-;89:3;82:37;7:118;;:::o;131:222::-;224:4;262:2;251:9;247:18;239:26;;275:71;343:1;332:9;328:17;319:6;275:71;:::i;:::-;131:222;;;;:::o;359:96::-;396:7;425:24;443:5;425:24;:::i;:::-;414:35;;359:96;;;:::o;461:126::-;498:7;538:42;531:5;527:54;516:65;;461:126;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "90600",
"executionCost": "24407",
"totalCost": "115007"
},
"external": {
"withdraw()": "infinite"
}
},
"methodIdentifiers": {
"withdraw()": "3ccfd60b"
}
},
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "Unauthorized",
"type": "error"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "caller",
"type": "address"
}
],
"name": "Unauthorized",
"type": "error"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/01.Solidity-8.0新特性/VendingMachine.sol": "VendingMachine"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/01.Solidity-8.0新特性/VendingMachine.sol": {
"keccak256": "0x45d31ede5f97f9c55addc6609cca0a5ce2e545e1673632406a668b40ce0e7f3f",
"license": "MIT",
"urls": [
"bzz-raw://78014aaf82f64236f84ae8a04102ad463378e02979468e3738595b5c4e8a1ba2",
"dweb:/ipfs/QmWNYq5cwXvaN54zepL8J8yBqXGNmQ3TLksxjJmS5Twj6F"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;
contract D {
uint public x;
constructor(uint a) {
x = a;
}
}
contract Create2 {
function getBytes32(uint salt) external pure returns (bytes32) {
return bytes32(salt);
}
function getAddress(bytes32 salt, uint arg) external view returns (address) {
address addr = address(uint160(uint(keccak256(abi.encodePacked(
bytes1(0xff),
address(this),
salt,
keccak256(abi.encodePacked(
type(D).creationCode,
arg
))
)))));
return addr;
}
address public deployedAddr;
function createDSalted(bytes32 salt, uint arg) public {
D d = new D{salt: salt}(arg);
deployedAddr = address(d);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;
// safe math
contract SafeMath {
function testUnderflow() public pure returns (uint) {
uint x = 0;
x--;
return x;
}
// 不检查时会得到一个溢出的是结果,uint 最大值
function testUncheckedUnderflow() public pure returns (uint) {
uint x = 0;
unchecked { x--; }
return x;
}
}
function helper(uint x) view returns (uint) {
return x * 2;
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;
import { helper as h1 } from "./Sol.sol";
// functions outside contract
function helper(uint x) view returns (uint) {
return h1(x);
}
contract TestHelper {
function test() external view returns (uint) {
return helper(123);
}
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8;
// custom error
contract VendingMachine {
address payable owner = payable(msg.sender);
error Unauthorized(address caller);
function withdraw() public {
if (msg.sender != owner)
// 23642 gas
// revert("error");
// 3000000
// revert("error error error error error");
// 23388
revert Unauthorized(msg.sender);
owner.transfer(address(this).balance);
}
}
This file has been truncated, but you can view the full file.
{
"id": "f8c6c533db4a1b6c98f2424a51707b2b",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.7",
"solcLongVersion": "0.8.7+commit.e28d00a7",
"input": {
"language": "Solidity",
"sources": {
"contracts/01.Solidity-8.0新特性/Sol.sol": {
"content": "// SPDX-License-Identifier: MIT\r\npragma solidity ^0.8;\r\n\r\n// safe math\r\ncontract SafeMath {\r\n function testUnderflow() public pure returns (uint) {\r\n uint x = 0;\r\n x--;\r\n return x;\r\n }\r\n\r\n // 不检查时会得到一个溢出的是结果,uint 最大值\r\n function testUncheckedUnderflow() public pure returns (uint) {\r\n uint x = 0;\r\n unchecked { x--; }\r\n return x;\r\n }\r\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/01.Solidity-8.0新特性/Sol.sol": {
"SafeMath": {
"abi": [
{
"inputs": [],
"name": "testUncheckedUnderflow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "testUnderflow",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":72:430 contract SafeMath {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":72:430 contract SafeMath {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x7f3f6a73\n eq\n tag_3\n jumpi\n dup1\n 0xa9a3e611\n eq\n tag_4\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":97:211 function testUnderflow() public pure returns (uint) {\r... */\n tag_3:\n tag_5\n tag_6\n jump\t// in\n tag_5:\n mload(0x40)\n tag_7\n swap2\n swap1\n tag_8\n jump\t// in\n tag_7:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":290:427 function testUncheckedUnderflow() public pure returns (uint) {\r... */\n tag_4:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n mload(0x40)\n tag_11\n swap2\n swap1\n tag_8\n jump\t// in\n tag_11:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":97:211 function testUnderflow() public pure returns (uint) {\r... */\n tag_6:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":143:147 uint */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":160:166 uint x */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":169:170 0 */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":160:170 uint x = 0 */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":181:184 x-- */\n dup1\n dup1\n tag_13\n swap1\n tag_14\n jump\t// in\n tag_13:\n swap2\n pop\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":202:203 x */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":195:203 return x */\n swap2\n pop\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":97:211 function testUnderflow() public pure returns (uint) {\r... */\n swap1\n jump\t// out\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":290:427 function testUncheckedUnderflow() public pure returns (uint) {\r... */\n tag_10:\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":345:349 uint */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":362:368 uint x */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":371:372 0 */\n 0x00\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":362:372 uint x = 0 */\n swap1\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":395:398 x-- */\n dup1\n dup1\n 0x01\n swap1\n sub\n swap2\n pop\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":418:419 x */\n dup1\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":411:419 return x */\n swap2\n pop\n pop\n /* \"contracts/01.Solidity-8.0\\xe6\\x96\\xb0\\xe7\\x89\\xb9\\xe6\\x80\\xa7/Sol.sol\":290:427 function testUncheckedUnderflow() public pure returns (uint) {\r... */\n swap1\n jump\t// out\n /* \"#utility.yul\":7:125 */\n tag_17:\n /* \"#utility.yul\":94:118 */\n tag_19\n /* \"#utility.yul\":112:117 */\n dup2\n /* \"#utility.yul\":94:118 */\n tag_20\n jump\t// in\n tag_19:\n /* \"#utility.yul\":89:92 */\n dup3\n /* \"#utility.yul\":82:119 */\n mstore\n /* \"#utility.yul\":7:125 */\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":131:353 */\n tag_8:\n /* \"#utility.yul\":224:228 */\n 0x00\n /* \"#utility.yul\":262:264 */\n 0x20\n /* \"#utility.yul\":251:260 */\n dup3\n /* \"#utility.yul\":247:265 */\n add\n /* \"#utility.yul\":239:265 */\n swap1\n pop\n /* \"#utility.yul\":275:346 */\n tag_22\n /* \"#utility.yul\":343:344 */\n 0x00\n /* \"#utility.yul\":332:341 */\n dup4\n /* \"#utility.yul\":328:345 */\n add\n /* \"#utility.yul\":319:325 */\n dup5\n /* \"#utility.yul\":275:346 */\n tag_17\n jump\t// in\n tag_22:\n /* \"#utility.yul\":131:353 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":359:436 */\n tag_20:\n /* \"#utility.yul\":396:403 */\n 0x00\n /* \"#utility.yul\":425:430 */\n dup2\n /* \"#utility.yul\":414:430 */\n swap1\n pop\n /* \"#utility.yul\":359:436 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":442:613 */\n tag_14:\n /* \"#utility.yul\":481:484 */\n 0x00\n /* \"#utility.yul\":504:528 */\n tag_25\n /* \"#utility.yul\":522:527 */\n dup3\n /* \"#utility.yul\":504:528 */\n tag_20\n jump\t// in\n tag_25:\n /* \"#utility.yul\":495:528 */\n swap2\n pop\n /* \"#utility.yul\":550:554 */\n 0x00\n /* \"#utility.yul\":543:548 */\n dup3\n /* \"#utility.yul\":540:555 */\n eq\n /* \"#utility.yul\":537:578 */\n iszero\n tag_26\n jumpi\n /* \"#utility.yul\":558:576 */\n tag_27\n tag_28\n jump\t// in\n tag_27:\n /* \"#utility.yul\":537:578 */\n tag_26:\n /* \"#utility.yul\":605:606 */\n 0x01\n /* \"#utility.yul\":598:603 */\n dup3\n /* \"#utility.yul\":594:607 */\n sub\n /* \"#utility.yul\":587:607 */\n swap1\n pop\n /* \"#utility.yul\":442:613 */\n swap2\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":619:799 */\n tag_28:\n /* \"#utility.yul\":667:744 */\n 0x4e487b7100000000000000000000000000000000000000000000000000000000\n /* \"#utility.yul\":664:665 */\n 0x00\n /* \"#utility.yul\":657:745 */\n mstore\n /* \"#utility.yul\":764:768 */\n 0x11\n /* \"#utility.yul\":761:762 */\n 0x04\n /* \"#utility.yul\":754:769 */\n mstore\n /* \"#utility.yul\":788:792 */\n 0x24\n /* \"#utility.yul\":785:786 */\n 0x00\n /* \"#utility.yul\":778:793 */\n revert\n\n auxdata: 0xa2646970667358221220e9c853b66f40ced323f95fd0de9cda09452ef2e8925eaf635602cc32455c9a0864736f6c63430008070033\n}\n",
"bytecode": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061016d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80637f3f6a731461003b578063a9a3e61114610059575b600080fd5b610043610077565b60405161005091906100b9565b60405180910390f35b610061610093565b60405161006e91906100b9565b60405180910390f35b600080600090508080610089906100de565b9150508091505090565b600080600090508080600190039150508091505090565b6100b3816100d4565b82525050565b60006020820190506100ce60008301846100aa565b92915050565b6000819050919050565b60006100e9826100d4565b915060008214156100fd576100fc610108565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea2646970667358221220e9c853b66f40ced323f95fd0de9cda09452ef2e8925eaf635602cc32455c9a0864736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x16D 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 0x7F3F6A73 EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xA9A3E611 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x61 PUSH2 0x93 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xB9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP DUP1 DUP1 PUSH2 0x89 SWAP1 PUSH2 0xDE JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP DUP1 SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH2 0xB3 DUP2 PUSH2 0xD4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCE PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xAA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 DUP3 PUSH2 0xD4 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 EQ ISZERO PUSH2 0xFD JUMPI PUSH2 0xFC PUSH2 0x108 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 SUB SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE9 0xC8 MSTORE8 0xB6 PUSH16 0x40CED323F95FD0DE9CDA09452EF2E892 0x5E 0xAF PUSH4 0x5602CC32 GASLIMIT 0x5C SWAP11 ADDMOD PUSH5 0x736F6C6343 STOP ADDMOD SMOD STOP CALLER ",
"sourceMap": "72:358:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@testUncheckedUnderflow_32": {
"entryPoint": 147,
"id": 32,
"parameterSlots": 0,
"returnSlots": 1
},
"@testUnderflow_16": {
"entryPoint": 119,
"id": 16,
"parameterSlots": 0,
"returnSlots": 1
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 170,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 185,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 212,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"decrement_t_uint256": {
"entryPoint": 222,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 264,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:802:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "72:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "89:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "112:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "94:17:1"
},
"nodeType": "YulFunctionCall",
"src": "94:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "82:6:1"
},
"nodeType": "YulFunctionCall",
"src": "82:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "82:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "60:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "67:3:1",
"type": ""
}
],
"src": "7:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "229:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "239:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "251:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "262:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "247:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "239:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "319:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "332:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "343:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "328:3:1"
},
"nodeType": "YulFunctionCall",
"src": "328:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "275:43:1"
},
"nodeType": "YulFunctionCall",
"src": "275:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "275:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "201:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "213:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "224:4:1",
"type": ""
}
],
"src": "131:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "404:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "414:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "425:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "414:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "386:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "396:7:1",
"type": ""
}
],
"src": "359:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "485:128:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "495:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "522:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "504:17:1"
},
"nodeType": "YulFunctionCall",
"src": "504:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "495:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "556:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "558:16:1"
},
"nodeType": "YulFunctionCall",
"src": "558:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "558:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "543:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "550:4:1",
"type": "",
"value": "0x00"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "540:2:1"
},
"nodeType": "YulFunctionCall",
"src": "540:15:1"
},
"nodeType": "YulIf",
"src": "537:41:1"
},
{
"nodeType": "YulAssignment",
"src": "587:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "598:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "605:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "594:3:1"
},
"nodeType": "YulFunctionCall",
"src": "594:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "587:3:1"
}
]
}
]
},
"name": "decrement_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "471:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "481:3:1",
"type": ""
}
],
"src": "442:171:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "647:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "664:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "667:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

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