Created
April 2, 2021 15:27
-
-
Save adityaghule123/8d9e926d1e0cf1a05aad8a7807393122 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.0+commit.c7dfd78e.js&optimize=false&runs=200&gist=
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| REMIX EXAMPLE PROJECT | |
| Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer. | |
| It contains 3 directories: | |
| 1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name. | |
| 2. 'scripts': Holds two scripts to deploy a contract. It is explained below. | |
| 3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity. | |
| SCRIPTS | |
| The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract. | |
| For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required). | |
| Scripts have full access to the web3.js and ethers.js libraries. | |
| 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b5060b68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f834130914602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006064905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea264697066735822122077d51a416a4b268177591d6383c1c0315097bf15b49c7134bca56b3450557b0064736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xB6 DUP1 PUSH2 0x1F 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 0xF8341309 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x57 DUP2 PUSH1 0x76 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0xD51A416A4B268177591D6383C1C0315097BF15B49C7134BC 0xA5 PUSH12 0x3450557B0064736F6C634300 ADDMOD STOP STOP CALLER ", | |
| "sourceMap": "60:226:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:431:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "70:52:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "87:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "109:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "92:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "92:23:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "80:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "80:36:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "80:36:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_int256_to_t_int256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "58:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "65:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:115:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "224:122:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "234:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "246:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "257:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "242:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "242:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "234:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "312:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "325:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "336:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "321:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "321:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_int256_to_t_int256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "270:41:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "270:69:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "270:69:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "196:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "208:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "219:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "128:218:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "396:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "406:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "417:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "406:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "378:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "388:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "352:76:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "6080604052348015600f57600080fd5b506004361060285760003560e01c8063f834130914602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006064905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea264697066735822122077d51a416a4b268177591d6383c1c0315097bf15b49c7134bca56b3450557b0064736f6c63430008000033", | |
| "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 0xF8341309 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x57 DUP2 PUSH1 0x76 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0xD51A416A4B268177591D6383C1C0315097BF15B49C7134BC 0xA5 PUSH12 0x3450557B0064736F6C634300 ADDMOD STOP STOP CALLER ", | |
| "sourceMap": "60:226:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;76:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;110:3;131;124:10;;76:65;:::o;7:115:1:-;92:23;109:5;92:23;:::i;:::-;87:3;80:36;70:52;;:::o;128:218::-;;257:2;246:9;242:18;234:26;;270:69;336:1;325:9;321:17;312:6;270:69;:::i;:::-;224:122;;;;:::o;352:76::-;;417:5;406:16;;396:32;;;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "36400", | |
| "executionCost": "87", | |
| "totalCost": "36487" | |
| }, | |
| "external": { | |
| "A1()": "315" | |
| }, | |
| "internal": { | |
| "A2()": "infinite", | |
| "A3()": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "A1()": "f8341309" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "A1", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "A1", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/visib.sol": "A" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/visib.sol": { | |
| "keccak256": "0x4bf2b2178e515dd261fc4e14f102e61a0bed442e347174f4a1d31c46dac8c338", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://a332c3ac12873dff6479878b914f5c74e77da079a90598bb6718a51a45a99bca", | |
| "dweb:/ipfs/QmaabYz2D3EFb2Miq2SUNbqEW9mVHc6JYmBYqeaaBQ2Tx3" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b5061025f806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f6bcc11814610030575b600080fd5b61003861003a565b005b6000604051610048906100e9565b604051809103906000f080158015610064573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663f83413096040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ad57600080fd5b505afa1580156100c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e5919061010a565b5050565b60d58061015583390190565b6000815190506101048161013d565b92915050565b60006020828403121561011c57600080fd5b600061012a848285016100f5565b91505092915050565b6000819050919050565b61014681610133565b811461015157600080fd5b5056fe608060405234801561001057600080fd5b5060b68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f834130914602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006064905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea264697066735822122077d51a416a4b268177591d6383c1c0315097bf15b49c7134bca56b3450557b0064736f6c63430008000033a2646970667358221220af4b13add2654959d65c041ee25bac1ef8eba2a5bd05bfeecd2df0f542fb1c9f64736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x25F 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 0xF6BCC118 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x48 SWAP1 PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x64 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF8341309 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xD5 DUP1 PUSH2 0x155 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x104 DUP2 PUSH2 0x13D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12A DUP5 DUP3 DUP6 ADD PUSH2 0xF5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146 DUP2 PUSH2 0x133 JUMP JUMPDEST DUP2 EQ PUSH2 0x151 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 0xB6 DUP1 PUSH2 0x1F 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 0xF8341309 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x57 DUP2 PUSH1 0x76 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0xD51A416A4B268177591D6383C1C0315097BF15B49C7134BC 0xA5 PUSH12 0x3450557B0064736F6C634300 ADDMOD STOP STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x4B SGT 0xAD 0xD2 PUSH6 0x4959D65C041E 0xE2 JUMPDEST 0xAC 0x1E 0xF8 0xEB LOG2 0xA5 0xBD SDIV 0xBF 0xEE 0xCD 0x2D CREATE CREATE2 TIMESTAMP 0xFB SHR SWAP16 PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", | |
| "sourceMap": "288:250:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:647:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "69:79:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "79:22:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "94:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "88:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "88:13:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "79:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "136:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "110:25:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "110:32:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "110:32:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_int256_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "47:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "55:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "63:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:141:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "230:206:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "276:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "285:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "288:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "278:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "278:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "278:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "251:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "260:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "247:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "247:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "272:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "243:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "243:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "240:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "302:127:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "317:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "331:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "321:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "346:73:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "391:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "402:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "387:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "387:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "411:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_int256_fromMemory", | |
| "nodeType": "YulIdentifier", | |
| "src": "356:30:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "356:63:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "346:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_int256_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "200:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "211:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "223:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "154:282:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "486:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "496:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "507:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "496:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "468:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "478:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "442:76:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "566:78:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "622:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "631:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "634:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "624:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "624:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "624:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "589:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "613:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "596:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "596:23:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "586:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "586:34:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "579:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "579:42:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "576:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "559:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "524:120:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_decode_t_int256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_int256(value)\n }\n\n function abi_decode_tuple_t_int256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_int256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_int256(value) {\n if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f6bcc11814610030575b600080fd5b61003861003a565b005b6000604051610048906100e9565b604051809103906000f080158015610064573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663f83413096040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ad57600080fd5b505afa1580156100c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e5919061010a565b5050565b60d58061015583390190565b6000815190506101048161013d565b92915050565b60006020828403121561011c57600080fd5b600061012a848285016100f5565b91505092915050565b6000819050919050565b61014681610133565b811461015157600080fd5b5056fe608060405234801561001057600080fd5b5060b68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f834130914602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006064905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea264697066735822122077d51a416a4b268177591d6383c1c0315097bf15b49c7134bca56b3450557b0064736f6c63430008000033a2646970667358221220af4b13add2654959d65c041ee25bac1ef8eba2a5bd05bfeecd2df0f542fb1c9f64736f6c63430008000033", | |
| "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 0xF6BCC118 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x3A JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x48 SWAP1 PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0x64 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF8341309 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xC1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xE5 SWAP2 SWAP1 PUSH2 0x10A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0xD5 DUP1 PUSH2 0x155 DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x104 DUP2 PUSH2 0x13D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x12A DUP5 DUP3 DUP6 ADD PUSH2 0xF5 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x146 DUP2 PUSH2 0x133 JUMP JUMPDEST DUP2 EQ PUSH2 0x151 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 0xB6 DUP1 PUSH2 0x1F 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 0xF8341309 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x57 DUP2 PUSH1 0x76 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0xD51A416A4B268177591D6383C1C0315097BF15B49C7134BC 0xA5 PUSH12 0x3450557B0064736F6C634300 ADDMOD STOP STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAF 0x4B SGT 0xAD 0xD2 PUSH6 0x4959D65C041E 0xE2 JUMPDEST 0xAC 0x1E 0xF8 0xEB LOG2 0xA5 0xBD SDIV 0xBF 0xEE 0xCD 0x2D CREATE CREATE2 TIMESTAMP 0xFB SHR SWAP16 PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ", | |
| "sourceMap": "288:250:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;304:66;;;:::i;:::-;;;334:3;340:7;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;334:13;;357:1;:4;;;:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;304:66;:::o;-1:-1:-1:-;;;;;;;;:::o;7:141:1:-;;94:6;88:13;79:22;;110:32;136:5;110:32;:::i;:::-;69:79;;;;:::o;154:282::-;;272:2;260:9;251:7;247:23;243:32;240:2;;;288:1;285;278:12;240:2;331:1;356:63;411:7;402:6;391:9;387:22;356:63;:::i;:::-;346:73;;302:127;230:206;;;;:::o;442:76::-;;507:5;496:16;;486:32;;;:::o;524:120::-;596:23;613:5;596:23;:::i;:::-;589:5;586:34;576:2;;634:1;631;624:12;576:2;566:78;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "121400", | |
| "executionCost": "165", | |
| "totalCost": "121565" | |
| }, | |
| "external": { | |
| "B1()": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "B1()": "f6bcc118" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "B1", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "B1", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/visib.sol": "B" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/visib.sol": { | |
| "keccak256": "0x4bf2b2178e515dd261fc4e14f102e61a0bed442e347174f4a1d31c46dac8c338", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://a332c3ac12873dff6479878b914f5c74e77da079a90598bb6718a51a45a99bca", | |
| "dweb:/ipfs/QmaabYz2D3EFb2Miq2SUNbqEW9mVHc6JYmBYqeaaBQ2Tx3" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50600560008190555061024b806100286000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806381b2d07b1461004657806393ae006d14610064578063b6b55f2514610080575b600080fd5b61004e61009c565b60405161005b9190610120565b60405180910390f35b61007e600480360381019061007991906100e8565b6100a5565b005b61009a600480360381019061009591906100e8565b6100bc565b005b60008054905090565b806000546100b39190610191565b60008190555050565b806000546100ca919061013b565b60008190555050565b6000813590506100e2816101fe565b92915050565b6000602082840312156100fa57600080fd5b6000610108848285016100d3565b91505092915050565b61011a816101c5565b82525050565b60006020820190506101356000830184610111565b92915050565b6000610146826101c5565b9150610151836101c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610186576101856101cf565b5b828201905092915050565b600061019c826101c5565b91506101a7836101c5565b9250828210156101ba576101b96101cf565b5b828203905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b610207816101c5565b811461021257600080fd5b5056fea2646970667358221220610629b78a71aad4885aa1bf1aad440d027a197a129ba2b0e69a126b2f0fdc2264736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x5 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH2 0x24B DUP1 PUSH2 0x28 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81B2D07B EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x93AE006D EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x79 SWAP2 SWAP1 PUSH2 0xE8 JUMP JUMPDEST PUSH2 0xA5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x95 SWAP2 SWAP1 PUSH2 0xE8 JUMP JUMPDEST PUSH2 0xBC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 SLOAD PUSH2 0xB3 SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 SLOAD PUSH2 0xCA SWAP2 SWAP1 PUSH2 0x13B JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE2 DUP2 PUSH2 0x1FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x108 DUP5 DUP3 DUP6 ADD PUSH2 0xD3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11A DUP2 PUSH2 0x1C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x135 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x111 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x146 DUP3 PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x151 DUP4 PUSH2 0x1C5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x186 JUMPI PUSH2 0x185 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19C DUP3 PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A7 DUP4 PUSH2 0x1C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x1BA JUMPI PUSH2 0x1B9 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB 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 JUMPDEST PUSH2 0x207 DUP2 PUSH2 0x1C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x629 0xB7 DUP11 PUSH18 0xAAD4885AA1BF1AAD440D027A197A129BA2B0 0xE6 SWAP11 SLT PUSH12 0x2F0FDC2264736F6C63430008 STOP STOP CALLER ", | |
| "sourceMap": "60:317:0:-:0;;;98:44;;;;;;;;;;134:1;128:3;:7;;;;60:317;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:1674:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "59:87:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "69:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "91:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "78:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "78:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "69:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "134:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "107:26:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "107:33:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "107:33:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "37:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "45:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "53:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:139:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "218:196:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "264:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "273:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "276:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "266:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "266:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "266:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "248:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "235:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "235:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "260:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "231:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "231:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "228:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "290:117:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "305:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "319:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "309:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "334:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "369:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "380:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "365:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "365:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "389:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "344:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "344:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "334:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "188:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "199:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "211:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "152:262:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "485:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "502:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "525:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "507:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "507:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "495:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "495:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "495:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "473:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "480:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "420:118:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "642:124:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "652:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "664:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "675:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "660:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "660:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "652:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "732:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "745:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "756:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "741:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "741:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "688:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "688:71:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "688:71:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "614:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "626:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "637:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "544:222:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "816:261:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "826:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "849:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "831:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "831:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "826:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "860:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "883:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "865:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "865:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "860:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1023:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "1025:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1025:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1025:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "944:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "951:66:1", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1019:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "947:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "947:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "941:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "941:81:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "938:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1055:16:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1066:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1069:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1062:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1062:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulIdentifier", | |
| "src": "1055:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_add_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "803:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "806:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulTypedName", | |
| "src": "812:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "772:305:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1128:146:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1138:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1161:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1143:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1143:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1138:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1172:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1195:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1177:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1177:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1172:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1219:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "1221:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1221:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1221:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1213:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1216:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1210:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1210:8:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1207:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1251:17:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1263:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1266:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "1259:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1259:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulIdentifier", | |
| "src": "1251:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_sub_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "1114:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "1117:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulTypedName", | |
| "src": "1123:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1083:191:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1325:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1335:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1346:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "1335:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1307:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "1317:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1280:77:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1391:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1408:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1411:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1401:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1401:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1401:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1505:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1508:4:1", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1498:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1498:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1498:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1529:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1532:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1522:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1522:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1522:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1363:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1592:79:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1649:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1658:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1661:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1651:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1651:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1651:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1615:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1640:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1622:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1622:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "1612:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1612:35:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "1605:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1605:43:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1602:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1585:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1549:122:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\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_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_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function 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 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": "608060405234801561001057600080fd5b50600436106100415760003560e01c806381b2d07b1461004657806393ae006d14610064578063b6b55f2514610080575b600080fd5b61004e61009c565b60405161005b9190610120565b60405180910390f35b61007e600480360381019061007991906100e8565b6100a5565b005b61009a600480360381019061009591906100e8565b6100bc565b005b60008054905090565b806000546100b39190610191565b60008190555050565b806000546100ca919061013b565b60008190555050565b6000813590506100e2816101fe565b92915050565b6000602082840312156100fa57600080fd5b6000610108848285016100d3565b91505092915050565b61011a816101c5565b82525050565b60006020820190506101356000830184610111565b92915050565b6000610146826101c5565b9150610151836101c5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610186576101856101cf565b5b828201905092915050565b600061019c826101c5565b91506101a7836101c5565b9250828210156101ba576101b96101cf565b5b828203905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b610207816101c5565b811461021257600080fd5b5056fea2646970667358221220610629b78a71aad4885aa1bf1aad440d027a197a129ba2b0e69a126b2f0fdc2264736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x81B2D07B EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x93AE006D EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xB6B55F25 EQ PUSH2 0x80 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x9C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x120 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x7E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x79 SWAP2 SWAP1 PUSH2 0xE8 JUMP JUMPDEST PUSH2 0xA5 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x9A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x95 SWAP2 SWAP1 PUSH2 0xE8 JUMP JUMPDEST PUSH2 0xBC JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 SLOAD PUSH2 0xB3 SWAP2 SWAP1 PUSH2 0x191 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 SLOAD PUSH2 0xCA SWAP2 SWAP1 PUSH2 0x13B JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xE2 DUP2 PUSH2 0x1FE JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x108 DUP5 DUP3 DUP6 ADD PUSH2 0xD3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x11A DUP2 PUSH2 0x1C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x135 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x111 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x146 DUP3 PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x151 DUP4 PUSH2 0x1C5 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x186 JUMPI PUSH2 0x185 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x19C DUP3 PUSH2 0x1C5 JUMP JUMPDEST SWAP2 POP PUSH2 0x1A7 DUP4 PUSH2 0x1C5 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x1BA JUMPI PUSH2 0x1B9 PUSH2 0x1CF JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB 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 JUMPDEST PUSH2 0x207 DUP2 PUSH2 0x1C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x212 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH2 0x629 0xB7 DUP11 PUSH18 0xAAD4885AA1BF1AAD440D027A197A129BA2B0 0xE6 SWAP11 SLT PUSH12 0x2F0FDC2264736F6C63430008 STOP STOP CALLER ", | |
| "sourceMap": "60:317:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;152:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;237:62;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;309:61;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;152:75;195:4;217:3;;210:10;;152:75;:::o;237:62::-;291:1;285:3;;:7;;;;:::i;:::-;279:3;:13;;;;237:62;:::o;309:61::-;362:1;356:3;;:7;;;;:::i;:::-;350:3;:13;;;;309:61;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:222::-;;675:2;664:9;660:18;652:26;;688:71;756:1;745:9;741:17;732:6;688:71;:::i;:::-;642:124;;;;:::o;772:305::-;;831:20;849:1;831:20;:::i;:::-;826:25;;865:20;883:1;865:20;:::i;:::-;860:25;;1019:1;951:66;947:74;944:1;941:81;938:2;;;1025:18;;:::i;:::-;938:2;1069:1;1066;1062:9;1055:16;;816:261;;;;:::o;1083:191::-;;1143:20;1161:1;1143:20;:::i;:::-;1138:25;;1177:20;1195:1;1177:20;:::i;:::-;1172:25;;1216:1;1213;1210:8;1207:2;;;1221:18;;:::i;:::-;1207:2;1266:1;1263;1259:9;1251:17;;1128:146;;;;:::o;1280:77::-;;1346:5;1335:16;;1325:32;;;:::o;1363:180::-;1411:77;1408:1;1401:88;1508:4;1505:1;1498:15;1532:4;1529:1;1522:15;1549:122;1622:24;1640:5;1622:24;:::i;:::-;1615:5;1612:35;1602:2;;1661:1;1658;1651:12;1602:2;1592:79;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "117400", | |
| "executionCost": "20179", | |
| "totalCost": "137579" | |
| }, | |
| "external": { | |
| "deposit(uint256)": "infinite", | |
| "showBalance()": "1115", | |
| "withdrow(uint256)": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "deposit(uint256)": "b6b55f25", | |
| "showBalance()": "81b2d07b", | |
| "withdrow(uint256)": "93ae006d" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "deposit", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "showBalance", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "withdrow", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "deposit", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "showBalance", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "withdrow", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/bank.sol": "Bank" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/bank.sol": { | |
| "keccak256": "0xefcea242553b509f2d6dee5aab1f778662cada08900a3ff221c55b2f55714b9f", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://5b235403ce7d1dfaf835632f3103e7a4d75f6083b4cef5e1ff5e1583022ec75b", | |
| "dweb:/ipfs/QmX8H9NTyTbzYUYDDh5aN8cwwQSFcdTKBW4CePhoVDLrT5" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b506102e5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f354d161461004657806373ee9cd714610050578063f83413091461005a575b600080fd5b61004e610078565b005b610058610127565b005b610062610132565b60405161006f919061019e565b60405180910390f35b600060405161008690610145565b604051809103906000f0801580156100a2573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663f83413096040518163ffffffff1660e01b815260040160206040518083038186803b1580156100eb57600080fd5b505afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610166565b5050565b61012f61013b565b50565b60006064905090565b600061012c905090565b60d5806101db83390190565b600081519050610160816101c3565b92915050565b60006020828403121561017857600080fd5b600061018684828501610151565b91505092915050565b610198816101b9565b82525050565b60006020820190506101b3600083018461018f565b92915050565b6000819050919050565b6101cc816101b9565b81146101d757600080fd5b5056fe608060405234801561001057600080fd5b5060b68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f834130914602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006064905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea264697066735822122077d51a416a4b268177591d6383c1c0315097bf15b49c7134bca56b3450557b0064736f6c63430008000033a2646970667358221220ae5e6875fbf2a8fd4c06440d36f49ad27f2d65fdb5b30a3883417dc13ee425c664736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF354D16 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x73EE9CD7 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF8341309 EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x127 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x62 PUSH2 0x132 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP2 SWAP1 PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x86 SWAP1 PUSH2 0x145 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF8341309 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x123 SWAP2 SWAP1 PUSH2 0x166 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x12F PUSH2 0x13B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12C SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0xD5 DUP1 PUSH2 0x1DB DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x160 DUP2 PUSH2 0x1C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x186 DUP5 DUP3 DUP6 ADD PUSH2 0x151 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x198 DUP2 PUSH2 0x1B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CC DUP2 PUSH2 0x1B9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D7 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 0xB6 DUP1 PUSH2 0x1F 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 0xF8341309 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x57 DUP2 PUSH1 0x76 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0xD51A416A4B268177591D6383C1C0315097BF15B49C7134BC 0xA5 PUSH12 0x3450557B0064736F6C634300 ADDMOD STOP STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAE 0x5E PUSH9 0x75FBF2A8FD4C06440D CALLDATASIZE DELEGATECALL SWAP11 0xD2 PUSH32 0x2D65FDB5B30A3883417DC13EE425C664736F6C63430008000033000000000000 ", | |
| "sourceMap": "540:223:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:992:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "69:79:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "79:22:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "94:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "88:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "88:13:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "79:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "136:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "110:25:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "110:32:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "110:32:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_int256_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "47:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "55:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "63:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:141:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "230:206:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "276:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "285:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "288:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "278:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "278:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "278:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "251:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "260:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "247:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "247:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "272:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "243:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "243:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "240:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "302:127:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "317:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "331:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "321:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "346:73:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "391:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "402:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "387:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "387:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "411:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_int256_fromMemory", | |
| "nodeType": "YulIdentifier", | |
| "src": "356:30:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "356:63:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "346:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_int256_fromMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "200:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "211:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "223:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "154:282:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "505:52:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "522:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "544:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "527:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "527:23:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "515:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "515:36:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "515:36:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_int256_to_t_int256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "493:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "500:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "442:115:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "659:122:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "669:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "681:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "692:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "677:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "677:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "669:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "747:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "760:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "771:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "756:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "756:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_int256_to_t_int256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "705:41:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "705:69:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "705:69:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "631:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "643:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "654:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "563:218:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "831:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "841:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "852:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "841:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "813:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "823:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "787:76:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "911:78:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "967:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "976:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "979:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "969:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "969:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "969:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "934:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "958:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "941:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "941:23:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "931:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "931:34:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "924:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "924:42:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "921:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "904:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "869:120:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_decode_t_int256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_int256(value)\n }\n\n function abi_decode_tuple_t_int256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_int256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_int256(value) {\n if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80630f354d161461004657806373ee9cd714610050578063f83413091461005a575b600080fd5b61004e610078565b005b610058610127565b005b610062610132565b60405161006f919061019e565b60405180910390f35b600060405161008690610145565b604051809103906000f0801580156100a2573d6000803e3d6000fd5b5090508073ffffffffffffffffffffffffffffffffffffffff1663f83413096040518163ffffffff1660e01b815260040160206040518083038186803b1580156100eb57600080fd5b505afa1580156100ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101239190610166565b5050565b61012f61013b565b50565b60006064905090565b600061012c905090565b60d5806101db83390190565b600081519050610160816101c3565b92915050565b60006020828403121561017857600080fd5b600061018684828501610151565b91505092915050565b610198816101b9565b82525050565b60006020820190506101b3600083018461018f565b92915050565b6000819050919050565b6101cc816101b9565b81146101d757600080fd5b5056fe608060405234801561001057600080fd5b5060b68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063f834130914602d575b600080fd5b60336047565b604051603e9190605d565b60405180910390f35b60006064905090565b6057816076565b82525050565b6000602082019050607060008301846050565b92915050565b600081905091905056fea264697066735822122077d51a416a4b268177591d6383c1c0315097bf15b49c7134bca56b3450557b0064736f6c63430008000033a2646970667358221220ae5e6875fbf2a8fd4c06440d36f49ad27f2d65fdb5b30a3883417dc13ee425c664736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF354D16 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x73EE9CD7 EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xF8341309 EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0x127 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x62 PUSH2 0x132 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP2 SWAP1 PUSH2 0x19E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD PUSH2 0x86 SWAP1 PUSH2 0x145 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 PUSH1 0x0 CREATE DUP1 ISZERO DUP1 ISZERO PUSH2 0xA2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF8341309 PUSH1 0x40 MLOAD DUP2 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xFF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x123 SWAP2 SWAP1 PUSH2 0x166 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x12F PUSH2 0x13B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12C SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0xD5 DUP1 PUSH2 0x1DB DUP4 CODECOPY ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x160 DUP2 PUSH2 0x1C3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x178 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x186 DUP5 DUP3 DUP6 ADD PUSH2 0x151 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x198 DUP2 PUSH2 0x1B9 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x18F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1CC DUP2 PUSH2 0x1B9 JUMP JUMPDEST DUP2 EQ PUSH2 0x1D7 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 0xB6 DUP1 PUSH2 0x1F 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 0xF8341309 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x47 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x3E SWAP2 SWAP1 PUSH1 0x5D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x64 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x57 DUP2 PUSH1 0x76 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0x70 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0x50 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH24 0xD51A416A4B268177591D6383C1C0315097BF15B49C7134BC 0xA5 PUSH12 0x3450557B0064736F6C634300 ADDMOD STOP STOP CALLER LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAE 0x5E PUSH9 0x75FBF2A8FD4C06440D CALLDATASIZE DELEGATECALL SWAP11 0xD2 PUSH32 0x2D65FDB5B30A3883417DC13EE425C664736F6C63430008000033000000000000 ", | |
| "sourceMap": "540:223:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;561:66;;;:::i;:::-;;715:46;;;:::i;:::-;;76:65;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;561:66;591:3;597:7;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;591:13;;614:1;:4;;;:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;561:66;:::o;715:46::-;750:4;:2;:4::i;:::-;;715:46::o;76:65::-;110:3;131;124:10;;76:65;:::o;217:67::-;253:3;274;267:10;;217:67;:::o;-1:-1:-1:-;;;;;;;;:::o;7:141:1:-;;94:6;88:13;79:22;;110:32;136:5;110:32;:::i;:::-;69:79;;;;:::o;154:282::-;;272:2;260:9;251:7;247:23;243:32;240:2;;;288:1;285;278:12;240:2;331:1;356:63;411:7;402:6;391:9;387:22;356:63;:::i;:::-;346:73;;302:127;230:206;;;;:::o;442:115::-;527:23;544:5;527:23;:::i;:::-;522:3;515:36;505:52;;:::o;563:218::-;;692:2;681:9;677:18;669:26;;705:69;771:1;760:9;756:17;747:6;705:69;:::i;:::-;659:122;;;;:::o;787:76::-;;852:5;841:16;;831:32;;;:::o;869:120::-;941:23;958:5;941:23;:::i;:::-;934:5;931:34;921:2;;979:1;976;969:12;921:2;911:78;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "148200", | |
| "executionCost": "196", | |
| "totalCost": "148396" | |
| }, | |
| "external": { | |
| "A1()": "359", | |
| "C1()": "infinite", | |
| "C3()": "184" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "A1()": "f8341309", | |
| "C1()": "0f354d16", | |
| "C3()": "73ee9cd7" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "A1", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "C1", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "C3", | |
| "outputs": [], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "A1", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "C1", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "C3", | |
| "outputs": [], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/visib.sol": "C" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/visib.sol": { | |
| "keccak256": "0x4bf2b2178e515dd261fc4e14f102e61a0bed442e347174f4a1d31c46dac8c338", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://a332c3ac12873dff6479878b914f5c74e77da079a90598bb6718a51a45a99bca", | |
| "dweb:/ipfs/QmaabYz2D3EFb2Miq2SUNbqEW9mVHc6JYmBYqeaaBQ2Tx3" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50610bc0806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631a48e8d71461004657806336661d3614610076578063bc3f060014610092575b600080fd5b610060600480360381019061005b91906106ca565b6100c2565b60405161006d9190610833565b60405180910390f35b610090600480360381019061008b9190610663565b6102af565b005b6100ac60048036038101906100a791906106ca565b610323565b6040516100b99190610855565b60405180910390f35b60606000806000848152602001908152602001600020600201600380602002604051908101604052809291908260038015610112576020028201915b8154815260200190600101908083116100fe575b505050505090506000805b60038110156101845782816003811061015f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518261016f9190610958565b9150808061017c90610a5d565b91505061011d565b50600060038261019491906109ae565b9050605081106101de576040518060400160405280600181526020017f410000000000000000000000000000000000000000000000000000000000000081525093505050506102aa565b603c8110610226576040518060400160405280600181526020017f420000000000000000000000000000000000000000000000000000000000000081525093505050506102aa565b6028811061026e576040518060400160405280600181526020017f430000000000000000000000000000000000000000000000000000000000000081525093505050506102aa565b6040518060400160405280600181526020017f440000000000000000000000000000000000000000000000000000000000000081525093505050505b919050565b60405180606001604052808481526020018381526020018281525060008084815260200190815260200160002060008201518160000190805190602001906102f8929190610430565b506020820151816001015560408201518160020190600361031a9291906104b6565b50905050505050565b61032b6104f6565b60008083815260200190815260200160002060405180606001604052908160008201805461035890610a2b565b80601f016020809104026020016040519081016040528092919081815260200182805461038490610a2b565b80156103d15780601f106103a6576101008083540402835291602001916103d1565b820191906000526020600020905b8154815290600101906020018083116103b457829003601f168201915b505050505081526020016001820154815260200160028201600380602002604051908101604052809291908260038015610420576020028201915b81548152602001906001019080831161040c575b5050505050815250509050919050565b82805461043c90610a2b565b90600052602060002090601f01602090048101928261045e57600085556104a5565b82601f1061047757805160ff19168380011785556104a5565b828001600101855582156104a5579182015b828111156104a4578251825591602001919060010190610489565b5b5090506104b2919061051d565b5090565b82600381019282156104e5579160200282015b828111156104e45782518255916020019190600101906104c9565b5b5090506104f2919061051d565b5090565b6040518060600160405280606081526020016000815260200161051761053a565b81525090565b5b8082111561053657600081600090555060010161051e565b5090565b6040518060600160405280600390602082028036833780820191505090505090565b600061056f61056a846108a8565b610877565b9050808285602086028201111561058557600080fd5b60005b858110156105b5578161059b888261064e565b845260208401935060208301925050600181019050610588565b5050509392505050565b60006105d26105cd846108ce565b610877565b9050828152602081018484840111156105ea57600080fd5b6105f58482856109e9565b509392505050565b600082601f83011261060e57600080fd5b600361061b84828561055c565b91505092915050565b600082601f83011261063557600080fd5b81356106458482602086016105bf565b91505092915050565b60008135905061065d81610b73565b92915050565b600080600060a0848603121561067857600080fd5b600084013567ffffffffffffffff81111561069257600080fd5b61069e86828701610624565b93505060206106af8682870161064e565b92505060406106c0868287016105fd565b9150509250925092565b6000602082840312156106dc57600080fd5b60006106ea8482850161064e565b91505092915050565b60006106ff8383610824565b60208301905092915050565b61071481610908565b61071e818461092b565b9250610729826108fe565b8060005b8381101561075a57815161074187826106f3565b965061074c8361091e565b92505060018101905061072d565b505050505050565b600061076d82610913565b6107778185610936565b93506107878185602086016109f8565b61079081610b62565b840191505092915050565b60006107a682610913565b6107b08185610947565b93506107c08185602086016109f8565b6107c981610b62565b840191505092915050565b600060a08301600083015184820360008601526107f18282610762565b91505060208301516108066020860182610824565b506040830151610819604086018261070b565b508091505092915050565b61082d816109df565b82525050565b6000602082019050818103600083015261084d818461079b565b905092915050565b6000602082019050818103600083015261086f81846107d4565b905092915050565b6000604051905081810181811067ffffffffffffffff8211171561089e5761089d610b33565b5b8060405250919050565b600067ffffffffffffffff8211156108c3576108c2610b33565b5b602082029050919050565b600067ffffffffffffffff8211156108e9576108e8610b33565b5b601f19601f8301169050602081019050919050565b6000819050919050565b600060039050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610963826109df565b915061096e836109df565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156109a3576109a2610aa6565b5b828201905092915050565b60006109b9826109df565b91506109c4836109df565b9250826109d4576109d3610ad5565b5b828204905092915050565b6000819050919050565b82818337600083830152505050565b60005b83811015610a165780820151818401526020810190506109fb565b83811115610a25576000848401525b50505050565b60006002820490506001821680610a4357607f821691505b60208210811415610a5757610a56610b04565b5b50919050565b6000610a68826109df565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610a9b57610a9a610aa6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610b7c816109df565b8114610b8757600080fd5b5056fea26469706673582212206635cb3742d46c4906e3b4092c6894ef1fce038940d5baaa026e18f7eb9d644064736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBC0 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 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1A48E8D7 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x36661D36 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xBC3F0600 EQ PUSH2 0x92 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x833 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x663 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA7 SWAP2 SWAP1 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB9 SWAP2 SWAP1 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x3 DUP1 PUSH1 0x20 MUL PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP3 PUSH1 0x3 DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xFE JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x184 JUMPI DUP3 DUP2 PUSH1 0x3 DUP2 LT PUSH2 0x15F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0x958 JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x17C SWAP1 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11D JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x3 DUP3 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0x9AE JUMP JUMPDEST SWAP1 POP PUSH1 0x50 DUP2 LT PUSH2 0x1DE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4100000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x3C DUP2 LT PUSH2 0x226 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4200000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x28 DUP2 LT PUSH2 0x26E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4300000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x2F8 SWAP3 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 PUSH1 0x3 PUSH2 0x31A SWAP3 SWAP2 SWAP1 PUSH2 0x4B6 JUMP JUMPDEST POP SWAP1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x32B PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x358 SWAP1 PUSH2 0xA2B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x384 SWAP1 PUSH2 0xA2B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3A6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x3 DUP1 PUSH1 0x20 MUL PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP3 PUSH1 0x3 DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x40C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x43C SWAP1 PUSH2 0xA2B JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x45E JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x4A5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x477 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4A5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4A5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4A4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x489 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x51D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x3 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x4E5 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4E4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4C9 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x51D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x517 PUSH2 0x53A JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x536 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x51E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56F PUSH2 0x56A DUP5 PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x5B5 JUMPI DUP2 PUSH2 0x59B DUP9 DUP3 PUSH2 0x64E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x588 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D2 PUSH2 0x5CD DUP5 PUSH2 0x8CE JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5F5 DUP5 DUP3 DUP6 PUSH2 0x9E9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x60E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x61B DUP5 DUP3 DUP6 PUSH2 0x55C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x635 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x645 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65D DUP2 PUSH2 0xB73 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x678 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x69E DUP7 DUP3 DUP8 ADD PUSH2 0x624 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x6AF DUP7 DUP3 DUP8 ADD PUSH2 0x64E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6C0 DUP7 DUP3 DUP8 ADD PUSH2 0x5FD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6EA DUP5 DUP3 DUP6 ADD PUSH2 0x64E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP4 DUP4 PUSH2 0x824 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x714 DUP2 PUSH2 0x908 JUMP JUMPDEST PUSH2 0x71E DUP2 DUP5 PUSH2 0x92B JUMP JUMPDEST SWAP3 POP PUSH2 0x729 DUP3 PUSH2 0x8FE JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x75A JUMPI DUP2 MLOAD PUSH2 0x741 DUP8 DUP3 PUSH2 0x6F3 JUMP JUMPDEST SWAP7 POP PUSH2 0x74C DUP4 PUSH2 0x91E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x72D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76D DUP3 PUSH2 0x913 JUMP JUMPDEST PUSH2 0x777 DUP2 DUP6 PUSH2 0x936 JUMP JUMPDEST SWAP4 POP PUSH2 0x787 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9F8 JUMP JUMPDEST PUSH2 0x790 DUP2 PUSH2 0xB62 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A6 DUP3 PUSH2 0x913 JUMP JUMPDEST PUSH2 0x7B0 DUP2 DUP6 PUSH2 0x947 JUMP JUMPDEST SWAP4 POP PUSH2 0x7C0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9F8 JUMP JUMPDEST PUSH2 0x7C9 DUP2 PUSH2 0xB62 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x7F1 DUP3 DUP3 PUSH2 0x762 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x806 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x824 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x819 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x70B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x9DF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x84D DUP2 DUP5 PUSH2 0x79B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x86F DUP2 DUP5 PUSH2 0x7D4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x89E JUMPI PUSH2 0x89D PUSH2 0xB33 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0xB33 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x8E9 JUMPI PUSH2 0x8E8 PUSH2 0xB33 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x963 DUP3 PUSH2 0x9DF JUMP JUMPDEST SWAP2 POP PUSH2 0x96E DUP4 PUSH2 0x9DF JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x9A3 JUMPI PUSH2 0x9A2 PUSH2 0xAA6 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B9 DUP3 PUSH2 0x9DF JUMP JUMPDEST SWAP2 POP PUSH2 0x9C4 DUP4 PUSH2 0x9DF JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x9D4 JUMPI PUSH2 0x9D3 PUSH2 0xAD5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA16 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9FB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xA43 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xA57 JUMPI PUSH2 0xA56 PUSH2 0xB04 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA68 DUP3 PUSH2 0x9DF JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0xA9B JUMPI PUSH2 0xA9A PUSH2 0xAA6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB7C DUP2 PUSH2 0x9DF JUMP JUMPDEST DUP2 EQ PUSH2 0xB87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x35CB3742D46C49 MOD 0xE3 0xB4 MULMOD 0x2C PUSH9 0x94EF1FCE038940D5BA 0xAA MUL PUSH15 0x18F7EB9D644064736F6C6343000800 STOP CALLER ", | |
| "sourceMap": "60:901:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:10394:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "125:465:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "135:87:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "214:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_allocation_size_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "159:54:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "159:62:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "allocateMemory", | |
| "nodeType": "YulIdentifier", | |
| "src": "144:14:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "144:78:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "135:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "231:16:1", | |
| "value": { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "242:5:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulTypedName", | |
| "src": "235:3:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "257:17:1", | |
| "value": { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "268:6:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulTypedName", | |
| "src": "261:3:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "323:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "332:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "335:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "325:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "325:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "325:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "293:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "302:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "310:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "298:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "298:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "289:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "289:27:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "318:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "286:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "286:36:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "283:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "408:176:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "422:21:1", | |
| "value": { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "440:3:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "elementPos", | |
| "nodeType": "YulTypedName", | |
| "src": "426:10:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "463:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "elementPos", | |
| "nodeType": "YulIdentifier", | |
| "src": "489:10:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "501:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "468:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "468:37:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "456:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "456:50:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "456:50:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "519:21:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "530:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "535:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "526:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "526:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "519:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "553:21:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "564:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "569:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "560:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "560:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "553:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "370:1:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "373:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "367:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "367:13:1" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "381:18:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "383:14:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "392:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "395:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "388:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "388:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "383:1:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "352:14:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "354:10:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "363:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulTypedName", | |
| "src": "358:1:1", | |
| "type": "" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "src": "348:236:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_available_length_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "95:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "103:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "111:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulTypedName", | |
| "src": "119:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "25:565:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "680:260:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "690:74:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "756:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_allocation_size_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "714:41:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "714:49:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "allocateMemory", | |
| "nodeType": "YulIdentifier", | |
| "src": "699:14:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "699:65:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "690:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "780:5:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "787:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "773:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "773:21:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "773:21:1" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "803:27:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "818:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "825:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "814:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "814:16:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulTypedName", | |
| "src": "807:3:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "868:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "877:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "880:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "870:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "870:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "870:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "849:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "854:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "845:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "845:16:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "863:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "842:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "842:25:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "839:2:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "917:3:1" | |
| }, | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "922:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "927:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_calldata_to_memory", | |
| "nodeType": "YulIdentifier", | |
| "src": "893:23:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "893:41:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "893:41:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_available_length_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulTypedName", | |
| "src": "653:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "658:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "666:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulTypedName", | |
| "src": "674:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "596:344:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1039:197:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1088:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1097:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1100:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1090:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1090:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1090:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1067:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1075:4:1", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1063:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1063:17:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1082:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1059:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1059:27:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "1052:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1052:35:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1049:2:1" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1113:18:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1127:4:1", | |
| "type": "", | |
| "value": "0x03" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1117:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1140:90:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1210:6:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1218:6:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1226:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_available_length_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1149:60:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1149:81:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "1140:5:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "1017:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1025:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulTypedName", | |
| "src": "1033:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "964:272:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1318:211:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1367:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1376:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1379:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1369:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1369:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1369:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1346:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1354:4:1", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1342:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1342:17:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1361:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1338:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1338:27:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "1331:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1331:35:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1328:2:1" | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1392:34:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1419:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "1406:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1406:20:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "1396:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1435:88:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1496:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1504:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1492:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1492:17:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "1511:6:1" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "1519:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_available_length_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "1444:47:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1444:79:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulIdentifier", | |
| "src": "1435:5:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "1296:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1304:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "array", | |
| "nodeType": "YulTypedName", | |
| "src": "1312:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1256:273:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1587:87:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1597:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1619:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "1606:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1606:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1597:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1662:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1635:26:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1635:33:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1635:33:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "1565:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "1573:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1581:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1535:139:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1813:579:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1860:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1869:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1872:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1862:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1862:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1862:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "1834:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1843:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "1830:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1830:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1855:3:1", | |
| "type": "", | |
| "value": "160" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1826:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1826:33:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1823:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "1886:220:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "1901:45:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1932:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1943:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1928:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1928:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "1915:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1915:31:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "1905:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1993:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2002:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2005:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1995:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1995:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1995:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "1965:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1973:18:1", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1962:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1962:30:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1959:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2023:73:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "2068:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "2079:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2064:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2064:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "2088:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2033:30:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2033:63:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "2023:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "2116:118:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2131:16:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2145:2:1", | |
| "type": "", | |
| "value": "32" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "2135:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2161:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "2196:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "2207:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2192:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2192:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "2216:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "2171:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2171:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nodeType": "YulIdentifier", | |
| "src": "2161:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "2244:141:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2259:16:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2273:2:1", | |
| "type": "", | |
| "value": "64" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "2263:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2289:86:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "2347:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "2358:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2343:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2343:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "2367:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "2299:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2299:76:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value2", | |
| "nodeType": "YulIdentifier", | |
| "src": "2289:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_string_memory_ptrt_uint256t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1767:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "1778:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "1790:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulTypedName", | |
| "src": "1798:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value2", | |
| "nodeType": "YulTypedName", | |
| "src": "1806:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1680:712:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2464:196:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2510:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2519:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2522:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "2512:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2512:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2512:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "2485:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "2494:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "2481:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2481:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2506:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2477:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2477:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2474:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "2536:117:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2551:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2565:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "2555:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2580:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "2615:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "2626:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2611:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2611:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "2635:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "2590:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2590:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "2580:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "2434:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "2445:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "2457:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2398:262:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2746:99:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "2790:6:1" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2798:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "2756:33:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2756:46:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2756:46:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2811:28:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2829:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2834:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2825:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2825:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updatedPos", | |
| "nodeType": "YulIdentifier", | |
| "src": "2811:10:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "2719:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "2727:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updatedPos", | |
| "nodeType": "YulTypedName", | |
| "src": "2735:10:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2666:179:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2985:572:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "2995:66:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3055:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_length_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3009:45:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3009:52:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "2999:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3070:81:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3139:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "3144:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3077:61:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3077:74:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3070:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3160:69:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3223:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_dataslot_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3175:47:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3175:54:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "baseRef", | |
| "nodeType": "YulTypedName", | |
| "src": "3164:7:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3238:21:1", | |
| "value": { | |
| "name": "baseRef", | |
| "nodeType": "YulIdentifier", | |
| "src": "3252:7:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "3242:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3328:222:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3342:34:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3369:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "3363:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3363:13:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "elementValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "3346:13:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3389:70:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "elementValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "3440:13:1" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3455:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "3396:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3396:63:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3389:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3472:68:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3533:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_nextElement_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3482:50:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3482:58:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "srcPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3472:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "3290:1:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "3293:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "3287:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3287:13:1" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "3301:18:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3303:14:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "3312:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3315:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3308:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3308:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "3303:1:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "3272:14:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3274:10:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3283:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulTypedName", | |
| "src": "3278:1:1", | |
| "type": "" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "src": "3268:282:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_array$_t_uint256_$3_memory_ptr_to_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "2972:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "2979:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2883:674:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3645:262:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "3655:53:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3702:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_length_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3669:32:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3669:39:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "3659:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3717:68:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3773:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "3778:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "3724:48:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3724:61:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3717:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "3820:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3827:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3816:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3816:16:1" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3834:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "3839:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory", | |
| "nodeType": "YulIdentifier", | |
| "src": "3794:21:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3794:52:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "3794:52:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3855:46:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "3866:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "3893:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nodeType": "YulIdentifier", | |
| "src": "3871:21:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3871:29:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "3862:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3862:39:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "3855:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "3626:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "3633:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "3641:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3563:344:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4005:272:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4015:53:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4062:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_length_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "4029:32:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4029:39:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "4019:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4077:78:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4143:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "4148:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "4084:58:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4084:71:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4077:3:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4190:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4197:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4186:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4186:16:1" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4204:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "4209:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "copy_memory_to_memory", | |
| "nodeType": "YulIdentifier", | |
| "src": "4164:21:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4164:52:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4164:52:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4225:46:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4236:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "4263:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "round_up_to_mul_of_32", | |
| "nodeType": "YulIdentifier", | |
| "src": "4241:21:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4241:29:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4232:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4232:39:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "4225:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "3986:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "3993:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "4001:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3913:364:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4475:704:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4485:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4501:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4506:4:1", | |
| "type": "", | |
| "value": "0xa0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4497:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4497:14:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "4489:4:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "4521:235:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4556:43:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4586:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4593:4:1", | |
| "type": "", | |
| "value": "0x00" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4582:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4582:16:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "4576:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4576:23:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "4560:12:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4624:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4629:4:1", | |
| "type": "", | |
| "value": "0x00" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4620:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4620:14:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4640:4:1" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4646:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "4636:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4636:14:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "4613:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4613:38:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4613:38:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4664:81:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "4726:12:1" | |
| }, | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4740:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "4672:53:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4672:73:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "4664:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "4766:162:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4799:43:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "4829:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4836:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4825:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4825:16:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "4819:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4819:23:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "4803:12:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "4889:12:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "4907:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4912:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "4903:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4903:14:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "4855:33:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4855:63:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4855:63:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "4938:214:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "4977:43:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "5007:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5014:4:1", | |
| "type": "", | |
| "value": "0x40" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5003:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5003:16:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "4997:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4997:23:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulTypedName", | |
| "src": "4981:12:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "memberValue0", | |
| "nodeType": "YulIdentifier", | |
| "src": "5113:12:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "5131:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5136:4:1", | |
| "type": "", | |
| "value": "0x40" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5127:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5127:14:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_array$_t_uint256_$3_memory_ptr_to_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "5033:79:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5033:109:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5033:109:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5162:11:1", | |
| "value": { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5169:4:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulIdentifier", | |
| "src": "5162:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_struct$_Marksheet_$10_memory_ptr_to_t_struct$_Marksheet_$10_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "4454:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "4461:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "4470:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4351:828:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5240:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "5257:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "5280:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "5262:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5262:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "5250:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5250:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5250:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "5228:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "5235:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5185:108:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5417:195:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5427:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5439:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5450:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5435:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5435:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5427:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5474:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5485:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5470:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5470:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5493:4:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5499:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "5489:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5489:20:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "5463:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5463:47:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5463:47:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5519:86:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "5591:6:1" | |
| }, | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5600:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "5527:63:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5527:78:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5519:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "5389:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "5401:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "5412:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5299:313:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5766:225:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5776:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5788:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5799:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5784:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5784:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5776:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5823:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5834:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "5819:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5819:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5842:4:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "5848:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "5838:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5838:20:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "5812:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5812:47:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5812:47:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5868:116:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "5970:6:1" | |
| }, | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5979:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_struct$_Marksheet_$10_memory_ptr_to_t_struct$_Marksheet_$10_memory_ptr_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "5876:93:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5876:108:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "5868:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_struct$_Marksheet_$10_memory_ptr__to_t_struct$_Marksheet_$10_memory_ptr__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "5738:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "5750:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "5761:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5618:373:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6037:243:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6047:19:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6063:2:1", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "6057:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6057:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6047:6:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "6075:35:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6097:6:1" | |
| }, | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "6105:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6093:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6093:17:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "newFreePtr", | |
| "nodeType": "YulTypedName", | |
| "src": "6079:10:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6221:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulIdentifier", | |
| "src": "6223:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6223:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6223:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "newFreePtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6164:10:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6176:18:1", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6161:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6161:34:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "newFreePtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6200:10:1" | |
| }, | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6212:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6197:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6197:22:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "or", | |
| "nodeType": "YulIdentifier", | |
| "src": "6158:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6158:62:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "6155:2:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6259:2:1", | |
| "type": "", | |
| "value": "64" | |
| }, | |
| { | |
| "name": "newFreePtr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6263:10:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "6252:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6252:22:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6252:22:1" | |
| } | |
| ] | |
| }, | |
| "name": "allocateMemory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulTypedName", | |
| "src": "6021:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "memPtr", | |
| "nodeType": "YulTypedName", | |
| "src": "6030:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5997:283:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6366:169:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6471:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulIdentifier", | |
| "src": "6473:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6473:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6473:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "6443:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6451:18:1", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6440:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6440:30:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "6437:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6503:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "6515:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6523:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "6511:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6511:17:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "6503:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_allocation_size_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "6350:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulTypedName", | |
| "src": "6361:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6286:249:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6608:265:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6713:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulIdentifier", | |
| "src": "6715:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6715:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6715:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "6685:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6693:18:1", | |
| "type": "", | |
| "value": "0xffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6682:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6682:30:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "6679:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6765:41:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "6781:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6789:4:1", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6777:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6777:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6800:4:1", | |
| "type": "", | |
| "value": "0x1f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nodeType": "YulIdentifier", | |
| "src": "6796:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6796:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "6773:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6773:33:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "6765:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6843:23:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "6855:4:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6861:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6851:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6851:15:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulIdentifier", | |
| "src": "6843:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_allocation_size_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "6592:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "size", | |
| "nodeType": "YulTypedName", | |
| "src": "6603:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6541:332:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6949:28:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6959:11:1", | |
| "value": { | |
| "name": "ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "6967:3:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "6959:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_dataslot_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulTypedName", | |
| "src": "6936:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulTypedName", | |
| "src": "6944:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6879:98:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7055:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7066:14:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7076:4:1", | |
| "type": "", | |
| "value": "0x03" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "7066:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_length_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "7038:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "7048:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6983:104:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7152:40:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7163:22:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "7179:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "7173:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7173:12:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "7163:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_length_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "7135:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "7145:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7093:99:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7271:38:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7281:22:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulIdentifier", | |
| "src": "7293:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7298:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "7289:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7289:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "next", | |
| "nodeType": "YulIdentifier", | |
| "src": "7281:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_nextElement_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "ptr", | |
| "nodeType": "YulTypedName", | |
| "src": "7258:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "next", | |
| "nodeType": "YulTypedName", | |
| "src": "7266:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7198:111:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7414:34:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7424:18:1", | |
| "value": { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7439:3:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7424:11:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_array$_t_uint256_$3_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7386:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "7391:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7402:11:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7315:133:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7540:73:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7557:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "7562:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "7550:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7550:19:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7550:19:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7578:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7597:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7602:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "7593:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7593:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7578:11:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7512:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "7517:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7528:11:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7454:159:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7715:73:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7732:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "7737:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "7725:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7725:19:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7725:19:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7753:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7772:3:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7777:4:1", | |
| "type": "", | |
| "value": "0x20" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "7768:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7768:14:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "7753:11:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7687:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "7692:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "updated_pos", | |
| "nodeType": "YulTypedName", | |
| "src": "7703:11:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7619:169:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7838:261:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7848:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7871:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7853:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7853:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7848:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7882:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7905:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7887:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7887:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "7882:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8045:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "8047:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8047:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8047:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "7966:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7973:66:1", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8041:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "7969:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7969:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "7963:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7963:81:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "7960:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8077:16:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8088:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8091:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "8084:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8084:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulIdentifier", | |
| "src": "8077:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_add_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "7825:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "7828:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulTypedName", | |
| "src": "7834:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7794:305:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8147:143:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8157:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8180:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "8162:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8162:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8157:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8191:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8214:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "8196:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8196:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8191:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8238:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulIdentifier", | |
| "src": "8240:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8240:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8240:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8235:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "8228:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8228:9:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "8225:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8270:14:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "8279:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "8282:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "8275:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8275:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulIdentifier", | |
| "src": "8270:1:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_div_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "8136:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "8139:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulTypedName", | |
| "src": "8145:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8105:185:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8341:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8351:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "8362:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "8351:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "8323:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "8333:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8296:77:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8430:103:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "8453:3:1" | |
| }, | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "8458:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "8463:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldatacopy", | |
| "nodeType": "YulIdentifier", | |
| "src": "8440:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8440:30:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8440:30:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "8511:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "8516:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "8507:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8507:16:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8525:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "8500:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8500:27:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8500:27:1" | |
| } | |
| ] | |
| }, | |
| "name": "copy_calldata_to_memory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulTypedName", | |
| "src": "8412:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dst", | |
| "nodeType": "YulTypedName", | |
| "src": "8417:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "8422:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8379:154:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8588:258:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "8598:10:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8607:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulTypedName", | |
| "src": "8602:1:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8667:63:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "8692:3:1" | |
| }, | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "8697:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "8688:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8688:11:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulIdentifier", | |
| "src": "8711:3:1" | |
| }, | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "8716:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "8707:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8707:11:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mload", | |
| "nodeType": "YulIdentifier", | |
| "src": "8701:5:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8701:18:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "8681:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8681:39:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8681:39:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "8628:1:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "8631:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "8625:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8625:13:1" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "8639:19:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8641:15:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "8650:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8653:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "8646:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8646:10:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "8641:1:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "8621:3:1", | |
| "statements": [] | |
| }, | |
| "src": "8617:113:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8764:76:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dst", | |
| "nodeType": "YulIdentifier", | |
| "src": "8814:3:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "8819:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "8810:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8810:16:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8828:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "8803:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8803:27:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "8803:27:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "i", | |
| "nodeType": "YulIdentifier", | |
| "src": "8745:1:1" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "8748:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "8742:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8742:13:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "8739:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "copy_memory_to_memory", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "src", | |
| "nodeType": "YulTypedName", | |
| "src": "8570:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dst", | |
| "nodeType": "YulTypedName", | |
| "src": "8575:3:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "8580:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8539:307:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "8903:269:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "8913:22:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "8927:4:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8933:1:1", | |
| "type": "", | |
| "value": "2" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "8923:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8923:12:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "8913:6:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "8944:38:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulIdentifier", | |
| "src": "8974:4:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "8980:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "8970:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8970:12:1" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "outOfPlaceEncoding", | |
| "nodeType": "YulTypedName", | |
| "src": "8948:18:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9021:51:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "9035:27:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "9049:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9057:4:1", | |
| "type": "", | |
| "value": "0x7f" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "9045:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9045:17:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "9035:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "outOfPlaceEncoding", | |
| "nodeType": "YulIdentifier", | |
| "src": "9001:18:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "8994:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "8994:26:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "8991:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9124:42:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x22", | |
| "nodeType": "YulIdentifier", | |
| "src": "9138:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9138:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9138:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "outOfPlaceEncoding", | |
| "nodeType": "YulIdentifier", | |
| "src": "9088:18:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulIdentifier", | |
| "src": "9111:6:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9119:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "9108:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9108:14:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "9085:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9085:38:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "9082:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "extract_byte_array_length", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "data", | |
| "nodeType": "YulTypedName", | |
| "src": "8887:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "length", | |
| "nodeType": "YulTypedName", | |
| "src": "8896:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "8852:320:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9221:190:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "9231:33:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "9258:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "9240:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9240:24:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "9231:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9354:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "9356:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9356:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9356:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "9279:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9286:66:1", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "9276:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9276:77:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "9273:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "9385:20:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "9396:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9403:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "9392:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9392:13:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "ret", | |
| "nodeType": "YulIdentifier", | |
| "src": "9385:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "increment_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "9207:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "ret", | |
| "nodeType": "YulTypedName", | |
| "src": "9217:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "9178:233:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9445:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9462:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9465:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9455:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9455:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9455:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9559:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9562:4:1", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9552:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9552:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9552:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9583:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9586:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "9576:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9576:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9576:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9417:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9631:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9648:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9651:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9641:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9641:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9641:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9745:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9748:4:1", | |
| "type": "", | |
| "value": "0x12" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9738:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9738:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9738:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9769:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9772:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "9762:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9762:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9762:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9603:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "9817:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9834:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9837:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9827:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9827:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9827:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9931:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9934:4:1", | |
| "type": "", | |
| "value": "0x22" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "9924:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9924:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9924:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9955:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "9958:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "9948:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "9948:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "9948:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x22", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9789:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10003:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10020:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10023:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10013:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10013:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10013:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10117:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10120:4:1", | |
| "type": "", | |
| "value": "0x41" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "10110:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10110:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10110:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10141:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10144:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "10134:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10134:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10134:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x41", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "9975:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10209:54:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "10219:38:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "10237:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10244:2:1", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "10233:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10233:14:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10253:2:1", | |
| "type": "", | |
| "value": "31" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "not", | |
| "nodeType": "YulIdentifier", | |
| "src": "10249:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10249:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "10229:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10229:28:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "result", | |
| "nodeType": "YulIdentifier", | |
| "src": "10219:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "round_up_to_mul_of_32", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "10192:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "result", | |
| "nodeType": "YulTypedName", | |
| "src": "10202:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10161:102:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10312:79:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "10369:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10378:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "10381:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "10371:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10371:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "10371:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "10335:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "10360:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "10342:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10342:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "10332:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10332:35:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "10325:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "10325:43:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "10322:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "10305:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "10269:122:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n // uint256[3]\n function abi_decode_available_length_t_array$_t_uint256_$3_memory_ptr(offset, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_array$_t_uint256_$3_memory_ptr(length))\n let dst := array\n\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_uint256(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // uint256[3]\n function abi_decode_t_array$_t_uint256_$3_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := 0x03\n array := abi_decode_available_length_t_array$_t_uint256_$3_memory_ptr(offset, length, end)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_uint256t_array$_t_uint256_$3_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_array$_t_uint256_$3_memory_ptr(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(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n // uint256[3] -> uint256[3]\n function abi_encode_t_array$_t_uint256_$3_memory_ptr_to_t_array$_t_uint256_$3_memory_ptr(value, pos) {\n let length := array_length_t_array$_t_uint256_$3_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$3_memory_ptr(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$3_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$3_memory_ptr(srcPtr)\n }\n\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n // struct ClassReport.Marksheet -> struct ClassReport.Marksheet\n function abi_encode_t_struct$_Marksheet_$10_memory_ptr_to_t_struct$_Marksheet_$10_memory_ptr_fromStack(value, pos) -> end {\n let tail := add(pos, 0xa0)\n\n {\n // name\n\n let memberValue0 := mload(add(value, 0x00))\n\n mstore(add(pos, 0x00), sub(tail, pos))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n }\n\n {\n // id\n\n let memberValue0 := mload(add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n {\n // subjects\n\n let memberValue0 := mload(add(value, 0x40))\n abi_encode_t_array$_t_uint256_$3_memory_ptr_to_t_array$_t_uint256_$3_memory_ptr(memberValue0, add(pos, 0x40))\n }\n\n end := tail\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_struct$_Marksheet_$10_memory_ptr__to_t_struct$_Marksheet_$10_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_struct$_Marksheet_$10_memory_ptr_to_t_struct$_Marksheet_$10_memory_ptr_fromStack(value0, tail)\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_array$_t_uint256_$3_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$3_memory_ptr(ptr) -> data {\n data := ptr\n\n }\n\n function array_length_t_array$_t_uint256_$3_memory_ptr(value) -> length {\n\n length := 0x03\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$3_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$3_memory_ptr(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\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": "608060405234801561001057600080fd5b50600436106100415760003560e01c80631a48e8d71461004657806336661d3614610076578063bc3f060014610092575b600080fd5b610060600480360381019061005b91906106ca565b6100c2565b60405161006d9190610833565b60405180910390f35b610090600480360381019061008b9190610663565b6102af565b005b6100ac60048036038101906100a791906106ca565b610323565b6040516100b99190610855565b60405180910390f35b60606000806000848152602001908152602001600020600201600380602002604051908101604052809291908260038015610112576020028201915b8154815260200190600101908083116100fe575b505050505090506000805b60038110156101845782816003811061015f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200201518261016f9190610958565b9150808061017c90610a5d565b91505061011d565b50600060038261019491906109ae565b9050605081106101de576040518060400160405280600181526020017f410000000000000000000000000000000000000000000000000000000000000081525093505050506102aa565b603c8110610226576040518060400160405280600181526020017f420000000000000000000000000000000000000000000000000000000000000081525093505050506102aa565b6028811061026e576040518060400160405280600181526020017f430000000000000000000000000000000000000000000000000000000000000081525093505050506102aa565b6040518060400160405280600181526020017f440000000000000000000000000000000000000000000000000000000000000081525093505050505b919050565b60405180606001604052808481526020018381526020018281525060008084815260200190815260200160002060008201518160000190805190602001906102f8929190610430565b506020820151816001015560408201518160020190600361031a9291906104b6565b50905050505050565b61032b6104f6565b60008083815260200190815260200160002060405180606001604052908160008201805461035890610a2b565b80601f016020809104026020016040519081016040528092919081815260200182805461038490610a2b565b80156103d15780601f106103a6576101008083540402835291602001916103d1565b820191906000526020600020905b8154815290600101906020018083116103b457829003601f168201915b505050505081526020016001820154815260200160028201600380602002604051908101604052809291908260038015610420576020028201915b81548152602001906001019080831161040c575b5050505050815250509050919050565b82805461043c90610a2b565b90600052602060002090601f01602090048101928261045e57600085556104a5565b82601f1061047757805160ff19168380011785556104a5565b828001600101855582156104a5579182015b828111156104a4578251825591602001919060010190610489565b5b5090506104b2919061051d565b5090565b82600381019282156104e5579160200282015b828111156104e45782518255916020019190600101906104c9565b5b5090506104f2919061051d565b5090565b6040518060600160405280606081526020016000815260200161051761053a565b81525090565b5b8082111561053657600081600090555060010161051e565b5090565b6040518060600160405280600390602082028036833780820191505090505090565b600061056f61056a846108a8565b610877565b9050808285602086028201111561058557600080fd5b60005b858110156105b5578161059b888261064e565b845260208401935060208301925050600181019050610588565b5050509392505050565b60006105d26105cd846108ce565b610877565b9050828152602081018484840111156105ea57600080fd5b6105f58482856109e9565b509392505050565b600082601f83011261060e57600080fd5b600361061b84828561055c565b91505092915050565b600082601f83011261063557600080fd5b81356106458482602086016105bf565b91505092915050565b60008135905061065d81610b73565b92915050565b600080600060a0848603121561067857600080fd5b600084013567ffffffffffffffff81111561069257600080fd5b61069e86828701610624565b93505060206106af8682870161064e565b92505060406106c0868287016105fd565b9150509250925092565b6000602082840312156106dc57600080fd5b60006106ea8482850161064e565b91505092915050565b60006106ff8383610824565b60208301905092915050565b61071481610908565b61071e818461092b565b9250610729826108fe565b8060005b8381101561075a57815161074187826106f3565b965061074c8361091e565b92505060018101905061072d565b505050505050565b600061076d82610913565b6107778185610936565b93506107878185602086016109f8565b61079081610b62565b840191505092915050565b60006107a682610913565b6107b08185610947565b93506107c08185602086016109f8565b6107c981610b62565b840191505092915050565b600060a08301600083015184820360008601526107f18282610762565b91505060208301516108066020860182610824565b506040830151610819604086018261070b565b508091505092915050565b61082d816109df565b82525050565b6000602082019050818103600083015261084d818461079b565b905092915050565b6000602082019050818103600083015261086f81846107d4565b905092915050565b6000604051905081810181811067ffffffffffffffff8211171561089e5761089d610b33565b5b8060405250919050565b600067ffffffffffffffff8211156108c3576108c2610b33565b5b602082029050919050565b600067ffffffffffffffff8211156108e9576108e8610b33565b5b601f19601f8301169050602081019050919050565b6000819050919050565b600060039050919050565b600081519050919050565b6000602082019050919050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610963826109df565b915061096e836109df565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156109a3576109a2610aa6565b5b828201905092915050565b60006109b9826109df565b91506109c4836109df565b9250826109d4576109d3610ad5565b5b828204905092915050565b6000819050919050565b82818337600083830152505050565b60005b83811015610a165780820151818401526020810190506109fb565b83811115610a25576000848401525b50505050565b60006002820490506001821680610a4357607f821691505b60208210811415610a5757610a56610b04565b5b50919050565b6000610a68826109df565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610a9b57610a9a610aa6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610b7c816109df565b8114610b8757600080fd5b5056fea26469706673582212206635cb3742d46c4906e3b4092c6894ef1fce038940d5baaa026e18f7eb9d644064736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1A48E8D7 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x36661D36 EQ PUSH2 0x76 JUMPI DUP1 PUSH4 0xBC3F0600 EQ PUSH2 0x92 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x60 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6D SWAP2 SWAP1 PUSH2 0x833 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x8B SWAP2 SWAP1 PUSH2 0x663 JUMP JUMPDEST PUSH2 0x2AF JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xA7 SWAP2 SWAP1 PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x323 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB9 SWAP2 SWAP1 PUSH2 0x855 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x3 DUP1 PUSH1 0x20 MUL PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP3 PUSH1 0x3 DUP1 ISZERO PUSH2 0x112 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0xFE JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x184 JUMPI DUP3 DUP2 PUSH1 0x3 DUP2 LT PUSH2 0x15F JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP3 PUSH2 0x16F SWAP2 SWAP1 PUSH2 0x958 JUMP JUMPDEST SWAP2 POP DUP1 DUP1 PUSH2 0x17C SWAP1 PUSH2 0xA5D JUMP JUMPDEST SWAP2 POP POP PUSH2 0x11D JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x3 DUP3 PUSH2 0x194 SWAP2 SWAP1 PUSH2 0x9AE JUMP JUMPDEST SWAP1 POP PUSH1 0x50 DUP2 LT PUSH2 0x1DE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4100000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x3C DUP2 LT PUSH2 0x226 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4200000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x28 DUP2 LT PUSH2 0x26E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4300000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP PUSH2 0x2AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4400000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP4 POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x2F8 SWAP3 SWAP2 SWAP1 PUSH2 0x430 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SWAP1 PUSH1 0x3 PUSH2 0x31A SWAP3 SWAP2 SWAP1 PUSH2 0x4B6 JUMP JUMPDEST POP SWAP1 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x32B PUSH2 0x4F6 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD DUP1 SLOAD PUSH2 0x358 SWAP1 PUSH2 0xA2B JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x384 SWAP1 PUSH2 0xA2B JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3D1 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3A6 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3D1 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3B4 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x3 DUP1 PUSH1 0x20 MUL PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP3 PUSH1 0x3 DUP1 ISZERO PUSH2 0x420 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x40C JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x43C SWAP1 PUSH2 0xA2B JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x45E JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x4A5 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x477 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4A5 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4A5 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4A4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x489 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4B2 SWAP2 SWAP1 PUSH2 0x51D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST DUP3 PUSH1 0x3 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x4E5 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4E4 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4C9 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x4F2 SWAP2 SWAP1 PUSH2 0x51D JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x517 PUSH2 0x53A JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x536 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x51E JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 SWAP1 PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x56F PUSH2 0x56A DUP5 PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x585 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x5B5 JUMPI DUP2 PUSH2 0x59B DUP9 DUP3 PUSH2 0x64E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x588 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5D2 PUSH2 0x5CD DUP5 PUSH2 0x8CE JUMP JUMPDEST PUSH2 0x877 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x5EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5F5 DUP5 DUP3 DUP6 PUSH2 0x9E9 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x60E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x3 PUSH2 0x61B DUP5 DUP3 DUP6 PUSH2 0x55C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x635 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x645 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x5BF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x65D DUP2 PUSH2 0xB73 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x678 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x692 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x69E DUP7 DUP3 DUP8 ADD PUSH2 0x624 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x6AF DUP7 DUP3 DUP8 ADD PUSH2 0x64E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x6C0 DUP7 DUP3 DUP8 ADD PUSH2 0x5FD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6EA DUP5 DUP3 DUP6 ADD PUSH2 0x64E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6FF DUP4 DUP4 PUSH2 0x824 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x714 DUP2 PUSH2 0x908 JUMP JUMPDEST PUSH2 0x71E DUP2 DUP5 PUSH2 0x92B JUMP JUMPDEST SWAP3 POP PUSH2 0x729 DUP3 PUSH2 0x8FE JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x75A JUMPI DUP2 MLOAD PUSH2 0x741 DUP8 DUP3 PUSH2 0x6F3 JUMP JUMPDEST SWAP7 POP PUSH2 0x74C DUP4 PUSH2 0x91E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x72D JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x76D DUP3 PUSH2 0x913 JUMP JUMPDEST PUSH2 0x777 DUP2 DUP6 PUSH2 0x936 JUMP JUMPDEST SWAP4 POP PUSH2 0x787 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9F8 JUMP JUMPDEST PUSH2 0x790 DUP2 PUSH2 0xB62 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7A6 DUP3 PUSH2 0x913 JUMP JUMPDEST PUSH2 0x7B0 DUP2 DUP6 PUSH2 0x947 JUMP JUMPDEST SWAP4 POP PUSH2 0x7C0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x9F8 JUMP JUMPDEST PUSH2 0x7C9 DUP2 PUSH2 0xB62 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x7F1 DUP3 DUP3 PUSH2 0x762 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x806 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x824 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x819 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x70B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x82D DUP2 PUSH2 0x9DF JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x84D DUP2 DUP5 PUSH2 0x79B JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x86F DUP2 DUP5 PUSH2 0x7D4 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP DUP2 DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x89E JUMPI PUSH2 0x89D PUSH2 0xB33 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x8C3 JUMPI PUSH2 0x8C2 PUSH2 0xB33 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x8E9 JUMPI PUSH2 0x8E8 PUSH2 0xB33 JUMP JUMPDEST JUMPDEST PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x963 DUP3 PUSH2 0x9DF JUMP JUMPDEST SWAP2 POP PUSH2 0x96E DUP4 PUSH2 0x9DF JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x9A3 JUMPI PUSH2 0x9A2 PUSH2 0xAA6 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9B9 DUP3 PUSH2 0x9DF JUMP JUMPDEST SWAP2 POP PUSH2 0x9C4 DUP4 PUSH2 0x9DF JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x9D4 JUMPI PUSH2 0x9D3 PUSH2 0xAD5 JUMP JUMPDEST JUMPDEST DUP3 DUP3 DIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xA16 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x9FB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xA25 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xA43 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xA57 JUMPI PUSH2 0xA56 PUSH2 0xB04 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA68 DUP3 PUSH2 0x9DF JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0xA9B JUMPI PUSH2 0xA9A PUSH2 0xAA6 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB7C DUP2 PUSH2 0x9DF JUMP JUMPDEST DUP2 EQ PUSH2 0xB87 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH7 0x35CB3742D46C49 MOD 0xE3 0xB4 MULMOD 0x2C PUSH9 0x94EF1FCE038940D5BA 0xAA MUL PUSH15 0x18F7EB9D644064736F6C6343000800 STOP CALLER ", | |
| "sourceMap": "60:901:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;469:485;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;231:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;358:101;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;469:485;517:13;550:16;569:7;:11;577:2;569:11;;;;;;;;;;;:20;;550:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;599:8;632:6;628:56;647:8;645:1;:10;628:56;;;680:1;682;680:4;;;;;;;;;;;;;;;;;;;675:9;;;;;:::i;:::-;;;658:3;;;;;:::i;:::-;;;;628:56;;;;703:8;718:1;714:3;:5;;;;:::i;:::-;703:16;;742:2;737:3;:7;734:214;;759:10;;;;;;;;;;;;;;;;;;;;;;;;734:214;802:2;797:3;:7;794:154;;819:10;;;;;;;;;;;;;;;;;;;;;;;;794:154;862:2;857:3;:7;854:94;;879:10;;;;;;;;;;;;;;;;;;;;;;;;854:94;927:10;;;;;;;;;;;;;;;;;;;;;;469:485;;;;:::o;231:117::-;323:18;;;;;;;;333:1;323:18;;;;335:1;323:18;;;;337:3;323:18;;;310:7;:10;318:1;310:10;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;231:117;;;:::o;358:101::-;407:16;;:::i;:::-;441:7;:11;449:2;441:11;;;;;;;;;;;434:18;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;358:101;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25:565:1:-;;144:78;159:62;214:6;159:62;:::i;:::-;144:78;:::i;:::-;135:87;;242:5;268:6;318:3;310:4;302:6;298:17;293:3;289:27;286:36;283:2;;;335:1;332;325:12;283:2;363:1;348:236;373:6;370:1;367:13;348:236;;;440:3;468:37;501:3;489:10;468:37;:::i;:::-;463:3;456:50;535:4;530:3;526:14;519:21;;569:4;564:3;560:14;553:21;;408:176;395:1;392;388:9;383:14;;348:236;;;352:14;125:465;;;;;;;:::o;596:344::-;;699:65;714:49;756:6;714:49;:::i;:::-;699:65;:::i;:::-;690:74;;787:6;780:5;773:21;825:4;818:5;814:16;863:3;854:6;849:3;845:16;842:25;839:2;;;880:1;877;870:12;839:2;893:41;927:6;922:3;917;893:41;:::i;:::-;680:260;;;;;;:::o;964:272::-;;1082:3;1075:4;1067:6;1063:17;1059:27;1049:2;;1100:1;1097;1090:12;1049:2;1127:4;1149:81;1226:3;1218:6;1210;1149:81;:::i;:::-;1140:90;;1039:197;;;;;:::o;1256:273::-;;1361:3;1354:4;1346:6;1342:17;1338:27;1328:2;;1379:1;1376;1369:12;1328:2;1419:6;1406:20;1444:79;1519:3;1511:6;1504:4;1496:6;1492:17;1444:79;:::i;:::-;1435:88;;1318:211;;;;;:::o;1535:139::-;;1619:6;1606:20;1597:29;;1635:33;1662:5;1635:33;:::i;:::-;1587:87;;;;:::o;1680:712::-;;;;1855:3;1843:9;1834:7;1830:23;1826:33;1823:2;;;1872:1;1869;1862:12;1823:2;1943:1;1932:9;1928:17;1915:31;1973:18;1965:6;1962:30;1959:2;;;2005:1;2002;1995:12;1959:2;2033:63;2088:7;2079:6;2068:9;2064:22;2033:63;:::i;:::-;2023:73;;1886:220;2145:2;2171:53;2216:7;2207:6;2196:9;2192:22;2171:53;:::i;:::-;2161:63;;2116:118;2273:2;2299:76;2367:7;2358:6;2347:9;2343:22;2299:76;:::i;:::-;2289:86;;2244:141;1813:579;;;;;:::o;2398:262::-;;2506:2;2494:9;2485:7;2481:23;2477:32;2474:2;;;2522:1;2519;2512:12;2474:2;2565:1;2590:53;2635:7;2626:6;2615:9;2611:22;2590:53;:::i;:::-;2580:63;;2536:117;2464:196;;;;:::o;2666:179::-;;2756:46;2798:3;2790:6;2756:46;:::i;:::-;2834:4;2829:3;2825:14;2811:28;;2746:99;;;;:::o;2883:674::-;3009:52;3055:5;3009:52;:::i;:::-;3077:74;3144:6;3139:3;3077:74;:::i;:::-;3070:81;;3175:54;3223:5;3175:54;:::i;:::-;3252:7;3283:1;3268:282;3293:6;3290:1;3287:13;3268:282;;;3369:6;3363:13;3396:63;3455:3;3440:13;3396:63;:::i;:::-;3389:70;;3482:58;3533:6;3482:58;:::i;:::-;3472:68;;3328:222;3315:1;3312;3308:9;3303:14;;3268:282;;;3272:14;2985:572;;;;;:::o;3563:344::-;;3669:39;3702:5;3669:39;:::i;:::-;3724:61;3778:6;3773:3;3724:61;:::i;:::-;3717:68;;3794:52;3839:6;3834:3;3827:4;3820:5;3816:16;3794:52;:::i;:::-;3871:29;3893:6;3871:29;:::i;:::-;3866:3;3862:39;3855:46;;3645:262;;;;;:::o;3913:364::-;;4029:39;4062:5;4029:39;:::i;:::-;4084:71;4148:6;4143:3;4084:71;:::i;:::-;4077:78;;4164:52;4209:6;4204:3;4197:4;4190:5;4186:16;4164:52;:::i;:::-;4241:29;4263:6;4241:29;:::i;:::-;4236:3;4232:39;4225:46;;4005:272;;;;;:::o;4351:828::-;;4506:4;4501:3;4497:14;4593:4;4586:5;4582:16;4576:23;4646:3;4640:4;4636:14;4629:4;4624:3;4620:14;4613:38;4672:73;4740:4;4726:12;4672:73;:::i;:::-;4664:81;;4521:235;4836:4;4829:5;4825:16;4819:23;4855:63;4912:4;4907:3;4903:14;4889:12;4855:63;:::i;:::-;4766:162;5014:4;5007:5;5003:16;4997:23;5033:109;5136:4;5131:3;5127:14;5113:12;5033:109;:::i;:::-;4938:214;5169:4;5162:11;;4475:704;;;;;:::o;5185:108::-;5262:24;5280:5;5262:24;:::i;:::-;5257:3;5250:37;5240:53;;:::o;5299:313::-;;5450:2;5439:9;5435:18;5427:26;;5499:9;5493:4;5489:20;5485:1;5474:9;5470:17;5463:47;5527:78;5600:4;5591:6;5527:78;:::i;:::-;5519:86;;5417:195;;;;:::o;5618:373::-;;5799:2;5788:9;5784:18;5776:26;;5848:9;5842:4;5838:20;5834:1;5823:9;5819:17;5812:47;5876:108;5979:4;5970:6;5876:108;:::i;:::-;5868:116;;5766:225;;;;:::o;5997:283::-;;6063:2;6057:9;6047:19;;6105:4;6097:6;6093:17;6212:6;6200:10;6197:22;6176:18;6164:10;6161:34;6158:62;6155:2;;;6223:18;;:::i;:::-;6155:2;6263:10;6259:2;6252:22;6037:243;;;;:::o;6286:249::-;;6451:18;6443:6;6440:30;6437:2;;;6473:18;;:::i;:::-;6437:2;6523:4;6515:6;6511:17;6503:25;;6366:169;;;:::o;6541:332::-;;6693:18;6685:6;6682:30;6679:2;;;6715:18;;:::i;:::-;6679:2;6800:4;6796:9;6789:4;6781:6;6777:17;6773:33;6765:41;;6861:4;6855;6851:15;6843:23;;6608:265;;;:::o;6879:98::-;;6967:3;6959:11;;6949:28;;;:::o;6983:104::-;;7076:4;7066:14;;7055:32;;;:::o;7093:99::-;;7179:5;7173:12;7163:22;;7152:40;;;:::o;7198:111::-;;7298:4;7293:3;7289:14;7281:22;;7271:38;;;:::o;7315:133::-;;7439:3;7424:18;;7414:34;;;;:::o;7454:159::-;;7562:6;7557:3;7550:19;7602:4;7597:3;7593:14;7578:29;;7540:73;;;;:::o;7619:169::-;;7737:6;7732:3;7725:19;7777:4;7772:3;7768:14;7753:29;;7715:73;;;;:::o;7794:305::-;;7853:20;7871:1;7853:20;:::i;:::-;7848:25;;7887:20;7905:1;7887:20;:::i;:::-;7882:25;;8041:1;7973:66;7969:74;7966:1;7963:81;7960:2;;;8047:18;;:::i;:::-;7960:2;8091:1;8088;8084:9;8077:16;;7838:261;;;;:::o;8105:185::-;;8162:20;8180:1;8162:20;:::i;:::-;8157:25;;8196:20;8214:1;8196:20;:::i;:::-;8191:25;;8235:1;8225:2;;8240:18;;:::i;:::-;8225:2;8282:1;8279;8275:9;8270:14;;8147:143;;;;:::o;8296:77::-;;8362:5;8351:16;;8341:32;;;:::o;8379:154::-;8463:6;8458:3;8453;8440:30;8525:1;8516:6;8511:3;8507:16;8500:27;8430:103;;;:::o;8539:307::-;8607:1;8617:113;8631:6;8628:1;8625:13;8617:113;;;8716:1;8711:3;8707:11;8701:18;8697:1;8692:3;8688:11;8681:39;8653:2;8650:1;8646:10;8641:15;;8617:113;;;8748:6;8745:1;8742:13;8739:2;;;8828:1;8819:6;8814:3;8810:16;8803:27;8739:2;8588:258;;;;:::o;8852:320::-;;8933:1;8927:4;8923:12;8913:22;;8980:1;8974:4;8970:12;9001:18;8991:2;;9057:4;9049:6;9045:17;9035:27;;8991:2;9119;9111:6;9108:14;9088:18;9085:38;9082:2;;;9138:18;;:::i;:::-;9082:2;8903:269;;;;:::o;9178:233::-;;9240:24;9258:5;9240:24;:::i;:::-;9231:33;;9286:66;9279:5;9276:77;9273:2;;;9356:18;;:::i;:::-;9273:2;9403:1;9396:5;9392:13;9385:20;;9221:190;;;:::o;9417:180::-;9465:77;9462:1;9455:88;9562:4;9559:1;9552:15;9586:4;9583:1;9576:15;9603:180;9651:77;9648:1;9641:88;9748:4;9745:1;9738:15;9772:4;9769:1;9762:15;9789:180;9837:77;9834:1;9827:88;9934:4;9931:1;9924:15;9958:4;9955:1;9948:15;9975:180;10023:77;10020:1;10013:88;10120:4;10117:1;10110:15;10144:4;10141:1;10134:15;10161:102;;10253:2;10249:7;10244:2;10237:5;10233:14;10229:28;10219:38;;10209:54;;;:::o;10269:122::-;10342:24;10360:5;10342:24;:::i;:::-;10335:5;10332:35;10322:2;;10381:1;10378;10371:12;10322:2;10312:79;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "601600", | |
| "executionCost": "632", | |
| "totalCost": "602232" | |
| }, | |
| "external": { | |
| "addReport(string,uint256,uint256[3])": "infinite", | |
| "showGrade(uint256)": "infinite", | |
| "showReport(uint256)": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "addReport(string,uint256,uint256[3])": "36661d36", | |
| "showGrade(uint256)": "1a48e8d7", | |
| "showReport(uint256)": "bc3f0600" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "string", | |
| "name": "n", | |
| "type": "string" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "i", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256[3]", | |
| "name": "sub", | |
| "type": "uint256[3]" | |
| } | |
| ], | |
| "name": "addReport", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "showGrade", | |
| "outputs": [ | |
| { | |
| "internalType": "string", | |
| "name": "", | |
| "type": "string" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "showReport", | |
| "outputs": [ | |
| { | |
| "components": [ | |
| { | |
| "internalType": "string", | |
| "name": "name", | |
| "type": "string" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256[3]", | |
| "name": "subjects", | |
| "type": "uint256[3]" | |
| } | |
| ], | |
| "internalType": "struct ClassReport.Marksheet", | |
| "name": "", | |
| "type": "tuple" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "string", | |
| "name": "n", | |
| "type": "string" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "i", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256[3]", | |
| "name": "sub", | |
| "type": "uint256[3]" | |
| } | |
| ], | |
| "name": "addReport", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "showGrade", | |
| "outputs": [ | |
| { | |
| "internalType": "string", | |
| "name": "", | |
| "type": "string" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "showReport", | |
| "outputs": [ | |
| { | |
| "components": [ | |
| { | |
| "internalType": "string", | |
| "name": "name", | |
| "type": "string" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "id", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256[3]", | |
| "name": "subjects", | |
| "type": "uint256[3]" | |
| } | |
| ], | |
| "internalType": "struct ClassReport.Marksheet", | |
| "name": "", | |
| "type": "tuple" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/prac2.sol": "ClassReport" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/prac2.sol": { | |
| "keccak256": "0x6d0c796bc240f5cfe986283242cb33c0018dbd052c4b21964aac3b877cebf6ed", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://e51054115bb9603ad0f82fc5ee675a119268dd71b72ac060d853509e1d57b0c2", | |
| "dweb:/ipfs/QmUt5qPxDV15sEjSuToYMBqtZH6CBKpuuqjHqHgCEdn1U2" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b506102ff806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806367cb61b61461005c578063694ebe4f1461007a578063843f72581461008457806391ff2c86146100a2578063db39b915146100ac575b600080fd5b6100646100b6565b6040516100719190610221565b60405180910390f35b6100826100cc565b005b61008c61011e565b604051610099919061023c565b60405180910390f35b6100aa61015f565b005b6100b46101b1565b005b60008060009054906101000a900460ff16905090565b60026000806101000a81548160ff02191690836002811115610117577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550565b60006001600281111561015a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b905090565b60008060006101000a81548160ff021916908360028111156101aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550565b60016000806101000a81548160ff021916908360028111156101fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550565b61020c81610274565b82525050565b61021b8161026a565b82525050565b60006020820190506102366000830184610203565b92915050565b60006020820190506102516000830184610212565b92915050565b6000819050610265826102b5565b919050565b6000819050919050565b600061027f82610257565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106102c6576102c5610286565b5b5056fea26469706673582212206b9f6db42324f8e99ad58cfa844cc8de95ada6fd481389329c48ac5e4621733b64736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2FF DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x67CB61B6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x694EBE4F EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x843F7258 EQ PUSH2 0x84 JUMPI DUP1 PUSH4 0x91FF2C86 EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0xDB39B915 EQ PUSH2 0xAC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x221 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0xCC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x8C PUSH2 0x11E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAA PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB4 PUSH2 0x1B1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x117 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x15A JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1AA JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1FC JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x20C DUP2 PUSH2 0x274 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x21B DUP2 PUSH2 0x26A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x236 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x203 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x251 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x212 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x265 DUP3 PUSH2 0x2B5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F DUP3 PUSH2 0x257 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2C6 JUMPI PUSH2 0x2C5 PUSH2 0x286 JUMP JUMPDEST JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x9F6DB42324F8E99AD58CFA84 0x4C 0xC8 0xDE SWAP6 0xAD 0xA6 REVERT 0x48 SGT DUP10 ORIGIN SWAP13 0x48 0xAC 0x5E CHAINID 0x21 PUSH20 0x3B64736F6C634300080000330000000000000000 ", | |
| "sourceMap": "60:561:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:1435:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "82:76:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "99:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "145:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "convert_t_enum$_CoffeeSize_$5_to_t_uint8", | |
| "nodeType": "YulIdentifier", | |
| "src": "104:40:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "104:47:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "92:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "92:60:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "92:60:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_enum$_CoffeeSize_$5_to_t_uint8_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "70:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "77:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:151:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "229:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "246:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "269:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "251:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "251:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "239:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "239:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "239:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "217:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "224:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "164:118:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "396:134:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "406:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "418:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "429:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "414:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "414:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "406:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "496:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "509:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "520:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "505:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "505:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_enum$_CoffeeSize_$5_to_t_uint8_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "442:53:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "442:81:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "442:81:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_enum$_CoffeeSize_$5__to_t_uint8__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "368:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "380:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "391:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "288:242:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "634:124:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "644:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "656:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "667:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "652:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "652:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "644:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "724:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "737:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "748:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "733:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "733:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "680:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "680:71:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "680:71:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "606:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "618:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "629:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "536:222:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "821:78:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "831:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "842:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "831:7:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "887:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_assert_t_enum$_CoffeeSize_$5", | |
| "nodeType": "YulIdentifier", | |
| "src": "848:38:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "848:45:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "848:45:1" | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_enum$_CoffeeSize_$5", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "803:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "813:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "764:135:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "950:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "960:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "971:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "960:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "932:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "942:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "905:77:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1058:65:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1068:49:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1111:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_enum$_CoffeeSize_$5", | |
| "nodeType": "YulIdentifier", | |
| "src": "1081:29:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1081:36:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "converted", | |
| "nodeType": "YulIdentifier", | |
| "src": "1068:9:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "convert_t_enum$_CoffeeSize_$5_to_t_uint8", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1038:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "converted", | |
| "nodeType": "YulTypedName", | |
| "src": "1048:9:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "988:135:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1157:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1174:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1177:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1167:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1167:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1167:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1271:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1274:4:1", | |
| "type": "", | |
| "value": "0x21" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1264:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1264:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1264:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1295:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1298:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "1288:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1288:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1288:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x21", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "1129:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1370:62:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1404:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x21", | |
| "nodeType": "YulIdentifier", | |
| "src": "1406:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1406:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1406:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1393:5:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1400:1:1", | |
| "type": "", | |
| "value": "3" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1390:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1390:12:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "1383:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1383:20:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1380:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_assert_t_enum$_CoffeeSize_$5", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1363:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1315:117:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_encode_t_enum$_CoffeeSize_$5_to_t_uint8_fromStack(value, pos) {\n mstore(pos, convert_t_enum$_CoffeeSize_$5_to_t_uint8(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_enum$_CoffeeSize_$5__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_enum$_CoffeeSize_$5_to_t_uint8_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 cleanup_t_enum$_CoffeeSize_$5(value) -> cleaned {\n cleaned := value validator_assert_t_enum$_CoffeeSize_$5(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_enum$_CoffeeSize_$5_to_t_uint8(value) -> converted {\n converted := cleanup_t_enum$_CoffeeSize_$5(value)\n }\n\n function panic_error_0x21() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n\n function validator_assert_t_enum$_CoffeeSize_$5(value) {\n if iszero(lt(value, 3)) { panic_error_0x21() }\n }\n\n}\n", | |
| "id": 1, | |
| "language": "Yul", | |
| "name": "#utility.yul" | |
| } | |
| ], | |
| "immutableReferences": {}, | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50600436106100575760003560e01c806367cb61b61461005c578063694ebe4f1461007a578063843f72581461008457806391ff2c86146100a2578063db39b915146100ac575b600080fd5b6100646100b6565b6040516100719190610221565b60405180910390f35b6100826100cc565b005b61008c61011e565b604051610099919061023c565b60405180910390f35b6100aa61015f565b005b6100b46101b1565b005b60008060009054906101000a900460ff16905090565b60026000806101000a81548160ff02191690836002811115610117577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550565b60006001600281111561015a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b905090565b60008060006101000a81548160ff021916908360028111156101aa577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550565b60016000806101000a81548160ff021916908360028111156101fc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b0217905550565b61020c81610274565b82525050565b61021b8161026a565b82525050565b60006020820190506102366000830184610203565b92915050565b60006020820190506102516000830184610212565b92915050565b6000819050610265826102b5565b919050565b6000819050919050565b600061027f82610257565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106102c6576102c5610286565b5b5056fea26469706673582212206b9f6db42324f8e99ad58cfa844cc8de95ada6fd481389329c48ac5e4621733b64736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x57 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x67CB61B6 EQ PUSH2 0x5C JUMPI DUP1 PUSH4 0x694EBE4F EQ PUSH2 0x7A JUMPI DUP1 PUSH4 0x843F7258 EQ PUSH2 0x84 JUMPI DUP1 PUSH4 0x91FF2C86 EQ PUSH2 0xA2 JUMPI DUP1 PUSH4 0xDB39B915 EQ PUSH2 0xAC JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x64 PUSH2 0xB6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x71 SWAP2 SWAP1 PUSH2 0x221 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0xCC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x8C PUSH2 0x11E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x99 SWAP2 SWAP1 PUSH2 0x23C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xAA PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB4 PUSH2 0x1B1 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x2 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x117 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x15A JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1AA JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1FC JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x20C DUP2 PUSH2 0x274 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x21B DUP2 PUSH2 0x26A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x236 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x203 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x251 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x212 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x265 DUP3 PUSH2 0x2B5 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F DUP3 PUSH2 0x257 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x3 DUP2 LT PUSH2 0x2C6 JUMPI PUSH2 0x2C5 PUSH2 0x286 JUMP JUMPDEST JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH12 0x9F6DB42324F8E99AD58CFA84 0x4C 0xC8 0xDE SWAP6 0xAD 0xA6 REVERT 0x48 SGT DUP10 ORIGIN SWAP13 0x48 0xAC 0x5E CHAINID 0x21 PUSH20 0x3B64736F6C634300080000330000000000000000 ", | |
| "sourceMap": "60:561:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;431:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;358:68;;;:::i;:::-;;519:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;210:68;;;:::i;:::-;;283:70;;;:::i;:::-;;431:83;473:10;501:6;;;;;;;;;;;494:13;;431:83;:::o;358:68::-;403:16;394:6;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;358:68::o;519:97::-;568:4;186:17;590:19;;;;;;;;;;;;;;;;583:26;;519:97;:::o;210:68::-;255:16;246:6;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;210:68::o;283:70::-;329:17;320:6;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;283:70::o;7:151:1:-;104:47;145:5;104:47;:::i;:::-;99:3;92:60;82:76;;:::o;164:118::-;251:24;269:5;251:24;:::i;:::-;246:3;239:37;229:53;;:::o;288:242::-;;429:2;418:9;414:18;406:26;;442:81;520:1;509:9;505:17;496:6;442:81;:::i;:::-;396:134;;;;:::o;536:222::-;;667:2;656:9;652:18;644:26;;680:71;748:1;737:9;733:17;724:6;680:71;:::i;:::-;634:124;;;;:::o;764:135::-;;842:5;831:16;;848:45;887:5;848:45;:::i;:::-;821:78;;;:::o;905:77::-;;971:5;960:16;;950:32;;;:::o;988:135::-;;1081:36;1111:5;1081:36;:::i;:::-;1068:49;;1058:65;;;:::o;1129:180::-;1177:77;1174:1;1167:88;1274:4;1271:1;1264:15;1298:4;1295:1;1288:15;1315:117;1400:1;1393:5;1390:12;1380:2;;1406:18;;:::i;:::-;1380:2;1370:62;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "153400", | |
| "executionCost": "196", | |
| "totalCost": "153596" | |
| }, | |
| "external": { | |
| "getChoice()": "1246", | |
| "getDefaultChoice()": "385", | |
| "setLarge()": "21031", | |
| "setMedium()": "21097", | |
| "setSmall()": "21075" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "getChoice()": "67cb61b6", | |
| "getDefaultChoice()": "843f7258", | |
| "setLarge()": "694ebe4f", | |
| "setMedium()": "db39b915", | |
| "setSmall()": "91ff2c86" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "getChoice", | |
| "outputs": [ | |
| { | |
| "internalType": "enum EnumTest.CoffeeSize", | |
| "name": "", | |
| "type": "uint8" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "getDefaultChoice", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "setLarge", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "setMedium", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "setSmall", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "getChoice", | |
| "outputs": [ | |
| { | |
| "internalType": "enum EnumTest.CoffeeSize", | |
| "name": "", | |
| "type": "uint8" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "getDefaultChoice", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "setLarge", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "setMedium", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "setSmall", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/prac0.sol": "EnumTest" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/prac0.sol": { | |
| "keccak256": "0xecbec11829e0d5a7a3ca24559a0866995ea95088198f083ae70358376e122556", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://006d3ca1a05e52a290e21f1f08c197f7a41cd7a6bb800a9b960660f105520541", | |
| "dweb:/ipfs/QmSoLuae5Vci9LFLiCwAyGBoyewmRVHp7336T9QmrcHu5Y" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "deploy": { | |
| "VM:-": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "main:1": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "ropsten:3": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "rinkeby:4": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "kovan:42": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "görli:5": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| }, | |
| "Custom": { | |
| "linkReferences": {}, | |
| "autoDeployLib": true | |
| } | |
| }, | |
| "data": { | |
| "bytecode": { | |
| "generatedSources": [], | |
| "linkReferences": {}, | |
| "object": "608060405234801561001057600080fd5b50610839806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063af3b69021161005b578063af3b690214610103578063c54124be1461011f578063f5f565f81461013d578063f9fa48c31461016d57610088565b80632986e0541461008d5780634f2be91f146100ab57806358931c46146100c95780636cabc400146100e7575b600080fd5b61009561018b565b6040516100a291906102d5565b60405180910390f35b6100b36101a2565b6040516100c091906102d5565b60405180910390f35b6100d16101b9565b6040516100de91906102d5565b60405180910390f35b61010160048036038101906100fc9190610252565b6101d0565b005b61011d60048036038101906101189190610252565b6101da565b005b6101276101e4565b60405161013491906102d5565b60405180910390f35b6101576004803603810190610152919061027b565b6101fb565b60405161016491906102f0565b60405180910390f35b610175610211565b60405161018291906102d5565b60405180910390f35b600060015460005461019d9190610739565b905090565b60006001546000546101b4919061030b565b905090565b60006001546000546101cb919061057a565b905090565b8060008190555050565b8060018190555050565b60006001546000546101f69190610691565b905090565b60008183610209919061045c565b905092915050565b6000600154600054610223919061039f565b905090565b600081359050610237816107d5565b92915050565b60008135905061024c816107ec565b92915050565b60006020828403121561026457600080fd5b600061027284828501610228565b91505092915050565b6000806040838503121561028e57600080fd5b600061029c8582860161023d565b92505060206102ad8582860161023d565b9150509250929050565b6102c081610725565b82525050565b6102cf8161072f565b82525050565b60006020820190506102ea60008301846102b7565b92915050565b600060208201905061030560008301846102c6565b92915050565b600061031682610725565b915061032183610725565b9250817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0383136000831215161561035c5761035b61076a565b5b817f80000000000000000000000000000000000000000000000000000000000000000383126000831216156103945761039361076a565b5b828201905092915050565b60006103aa82610725565b91506103b583610725565b9250826103c5576103c4610799565b5b600160000383147f8000000000000000000000000000000000000000000000000000000000000000831416156103fe576103fd61076a565b5b828205905092915050565b6000808291508390505b60018511156104535780860481111561042f5761042e61076a565b5b600185161561043e5780820291505b808102905061044c856107c8565b9450610413565b94509492505050565b60006104678261072f565b91506104728361072f565b925061049f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104a7565b905092915050565b6000826104b75760019050610573565b816104c55760009050610573565b81600181146104db57600281146104e557610514565b6001915050610573565b60ff8411156104f7576104f661076a565b5b8360020a91508482111561050e5761050d61076a565b5b50610573565b5060208310610133831016604e8410600b84101617156105495782820a9050838111156105445761054361076a565b5b610573565b6105568484846001610409565b9250905081840481111561056d5761056c61076a565b5b81810290505b9392505050565b600061058582610725565b915061059083610725565b9250827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821160008413600084131616156105cf576105ce61076a565b5b817f8000000000000000000000000000000000000000000000000000000000000000058312600084126000841316161561060c5761060b61076a565b5b827f800000000000000000000000000000000000000000000000000000000000000005821260008413600084121616156106495761064861076a565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05821260008412600084121616156106865761068561076a565b5b828202905092915050565b600061069c82610725565b91506106a783610725565b9250827f8000000000000000000000000000000000000000000000000000000000000000018212600084121516156106e2576106e161076a565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01821360008412161561071a5761071961076a565b5b828203905092915050565b6000819050919050565b6000819050919050565b600061074482610725565b915061074f83610725565b92508261075f5761075e610799565b5b828207905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b6107de81610725565b81146107e957600080fd5b50565b6107f58161072f565b811461080057600080fd5b5056fea2646970667358221220c3abc4167093e8bf2153b1461a3599638c5160424a3282520c0bbffa387c1ef164736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x839 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 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAF3B6902 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xAF3B6902 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0xC54124BE EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0xF5F565F8 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xF9FA48C3 EQ PUSH2 0x16D JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x2986E054 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x4F2BE91F EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x58931C46 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x6CABC400 EQ PUSH2 0xE7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x18B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD1 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDE SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x1DA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x127 PUSH2 0x1E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x157 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x27B JUMP JUMPDEST PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x164 SWAP2 SWAP1 PUSH2 0x2F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x175 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x182 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x19D SWAP2 SWAP1 PUSH2 0x739 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x30B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x57A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x691 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x209 SWAP2 SWAP1 PUSH2 0x45C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x39F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x237 DUP2 PUSH2 0x7D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24C DUP2 PUSH2 0x7EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x272 DUP5 DUP3 DUP6 ADD PUSH2 0x228 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x29C DUP6 DUP3 DUP7 ADD PUSH2 0x23D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2AD DUP6 DUP3 DUP7 ADD PUSH2 0x23D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C0 DUP2 PUSH2 0x725 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2CF DUP2 PUSH2 0x72F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2EA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x305 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x316 DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x321 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP4 SGT PUSH1 0x0 DUP4 SLT ISZERO AND ISZERO PUSH2 0x35C JUMPI PUSH2 0x35B PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP2 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SUB DUP4 SLT PUSH1 0x0 DUP4 SLT AND ISZERO PUSH2 0x394 JUMPI PUSH2 0x393 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B5 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3C5 JUMPI PUSH2 0x3C4 PUSH2 0x799 JUMP JUMPDEST JUMPDEST PUSH1 0x1 PUSH1 0x0 SUB DUP4 EQ PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP4 EQ AND ISZERO PUSH2 0x3FE JUMPI PUSH2 0x3FD PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SDIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x453 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x42F JUMPI PUSH2 0x42E PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x43E JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH2 0x44C DUP6 PUSH2 0x7C8 JUMP JUMPDEST SWAP5 POP PUSH2 0x413 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x467 DUP3 PUSH2 0x72F JUMP JUMPDEST SWAP2 POP PUSH2 0x472 DUP4 PUSH2 0x72F JUMP JUMPDEST SWAP3 POP PUSH2 0x49F PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH2 0x4A7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4B7 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x573 JUMP JUMPDEST DUP2 PUSH2 0x4C5 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x573 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x4DB JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x4E5 JUMPI PUSH2 0x514 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x573 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x4F7 JUMPI PUSH2 0x4F6 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x50E JUMPI PUSH2 0x50D PUSH2 0x76A JUMP JUMPDEST JUMPDEST POP PUSH2 0x573 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x549 JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x544 JUMPI PUSH2 0x543 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH2 0x573 JUMP JUMPDEST PUSH2 0x556 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x56D JUMPI PUSH2 0x56C PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x585 DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x590 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP3 GT PUSH1 0x0 DUP5 SGT PUSH1 0x0 DUP5 SGT AND AND ISZERO PUSH2 0x5CF JUMPI PUSH2 0x5CE PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP2 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SDIV DUP4 SLT PUSH1 0x0 DUP5 SLT PUSH1 0x0 DUP5 SGT AND AND ISZERO PUSH2 0x60C JUMPI PUSH2 0x60B PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SDIV DUP3 SLT PUSH1 0x0 DUP5 SGT PUSH1 0x0 DUP5 SLT AND AND ISZERO PUSH2 0x649 JUMPI PUSH2 0x648 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SDIV DUP3 SLT PUSH1 0x0 DUP5 SLT PUSH1 0x0 DUP5 SLT AND AND ISZERO PUSH2 0x686 JUMPI PUSH2 0x685 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69C DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A7 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 ADD DUP3 SLT PUSH1 0x0 DUP5 SLT ISZERO AND ISZERO PUSH2 0x6E2 JUMPI PUSH2 0x6E1 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP3 SGT PUSH1 0x0 DUP5 SLT AND ISZERO PUSH2 0x71A JUMPI PUSH2 0x719 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x744 DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x74F DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x75F JUMPI PUSH2 0x75E PUSH2 0x799 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SMOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7DE DUP2 PUSH2 0x725 JUMP JUMPDEST DUP2 EQ PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F5 DUP2 PUSH2 0x72F JUMP JUMPDEST DUP2 EQ PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xAB 0xC4 AND PUSH17 0x93E8BF2153B1461A3599638C5160424A32 DUP3 MSTORE 0xC SIGNEXTEND 0xBF STATICCALL CODESIZE PUSH29 0x1EF164736F6C6343000800003300000000000000000000000000000000 ", | |
| "sourceMap": "60:652:0:-:0;;;;;;;;;;;;;;;;;;;" | |
| }, | |
| "deployedBytecode": { | |
| "generatedSources": [ | |
| { | |
| "ast": { | |
| "nodeType": "YulBlock", | |
| "src": "0:7423:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "58:86:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "68:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "90:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "77:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "77:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "68:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "132:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "106:25:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "106:32:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "106:32:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "36:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "44:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "52:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7:137:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "202:87:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "212:29:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "234:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "calldataload", | |
| "nodeType": "YulIdentifier", | |
| "src": "221:12:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "221:20:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "212:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "277:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "250:26:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "250:33:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "250:33:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "180:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "end", | |
| "nodeType": "YulTypedName", | |
| "src": "188:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "196:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "150:139:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "360:195:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "406:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "415:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "418:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "408:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "408:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "408:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "381:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "390:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "377:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "377:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "402:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "373:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "373:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "370:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "432:116:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "447:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "461:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "451:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "476:62:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "510:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "521:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "506:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "506:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "530:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "486:19:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "486:52:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "476:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "330:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "341:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "353:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "295:260:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "644:324:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "690:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "699:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "702:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "692:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "692:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "692:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "665:7:1" | |
| }, | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "674:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "661:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "661:23:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "686:2:1", | |
| "type": "", | |
| "value": "64" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "657:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "657:32:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "654:2:1" | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "716:117:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "731:15:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "745:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "735:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "760:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "795:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "806:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "791:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "791:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "815:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "770:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "770:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "760:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulBlock", | |
| "src": "843:118:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulVariableDeclaration", | |
| "src": "858:16:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "872:2:1", | |
| "type": "", | |
| "value": "32" | |
| }, | |
| "variables": [ | |
| { | |
| "name": "offset", | |
| "nodeType": "YulTypedName", | |
| "src": "862:6:1", | |
| "type": "" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "888:63:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "923:9:1" | |
| }, | |
| { | |
| "name": "offset", | |
| "nodeType": "YulIdentifier", | |
| "src": "934:6:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "919:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "919:22:1" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulIdentifier", | |
| "src": "943:7:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_decode_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "898:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "898:53:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "value1", | |
| "nodeType": "YulIdentifier", | |
| "src": "888:6:1" | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "abi_decode_tuple_t_uint256t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "606:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "dataEnd", | |
| "nodeType": "YulTypedName", | |
| "src": "617:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "629:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value1", | |
| "nodeType": "YulTypedName", | |
| "src": "637:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "561:407:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1037:52:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1054:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1076:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1059:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1059:23:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1047:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1047:36:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1047:36:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_int256_to_t_int256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1025:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1032:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "974:115:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1160:53:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "pos", | |
| "nodeType": "YulIdentifier", | |
| "src": "1177:3:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "1200:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1182:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1182:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "1170:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1170:37:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1170:37:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "1148:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "pos", | |
| "nodeType": "YulTypedName", | |
| "src": "1155:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1095:118:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1315:122:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1325:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1337:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1348:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1333:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1333:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1325:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "1403:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1416:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1427:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1412:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1412:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_int256_to_t_int256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1361:41:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1361:69:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1361:69:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1287:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "1299:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "1310:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1219:218:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1541:124:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1551:26:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1563:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1574:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1559:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1559:18:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulIdentifier", | |
| "src": "1551:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "name": "value0", | |
| "nodeType": "YulIdentifier", | |
| "src": "1631:6:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulIdentifier", | |
| "src": "1644:9:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1655:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "1640:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1640:17:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "abi_encode_t_uint256_to_t_uint256_fromStack", | |
| "nodeType": "YulIdentifier", | |
| "src": "1587:43:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1587:71:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1587:71:1" | |
| } | |
| ] | |
| }, | |
| "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "headStart", | |
| "nodeType": "YulTypedName", | |
| "src": "1513:9:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "value0", | |
| "nodeType": "YulTypedName", | |
| "src": "1525:6:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "tail", | |
| "nodeType": "YulTypedName", | |
| "src": "1536:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1443:222:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1714:482:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1724:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1746:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1729:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1729:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1724:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "1757:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1779:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "1762:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1762:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1757:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "1955:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "1957:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1957:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "1957:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1863:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1866:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1859:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1859:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "1852:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1852:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "1875:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "1882:66:1", | |
| "type": "", | |
| "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "1950:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "1878:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1878:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sgt", | |
| "nodeType": "YulIdentifier", | |
| "src": "1871:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1871:82:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "1848:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "1848:106:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "1845:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2142:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "2144:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2144:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2144:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2051:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2054:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2047:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2047:9:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2062:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2069:66:1", | |
| "type": "", | |
| "value": "0x8000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2137:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "2065:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2065:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2058:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2058:82:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "2043:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2043:98:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2040:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2174:16:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2185:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2188:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "2181:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2181:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulIdentifier", | |
| "src": "2174:3:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_add_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "1701:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "1704:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "sum", | |
| "nodeType": "YulTypedName", | |
| "src": "1710:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "1671:525:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2243:344:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2253:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2275:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "2258:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2258:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2253:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2286:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2308:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "2291:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2291:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2286:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2332:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulIdentifier", | |
| "src": "2334:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2334:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2334:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2329:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "2322:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2322:9:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2319:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2534:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "2536:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2536:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2536:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2423:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2426:66:1", | |
| "type": "", | |
| "value": "0x8000000000000000000000000000000000000000000000000000000000000000" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "2420:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2420:73:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2510:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2517:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2520:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "2513:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2513:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "2507:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2507:16:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "2403:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2403:130:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2400:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2566:15:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "2576:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "2579:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sdiv", | |
| "nodeType": "YulIdentifier", | |
| "src": "2571:4:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2571:10:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulIdentifier", | |
| "src": "2566:1:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_div_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "2232:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "2235:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulTypedName", | |
| "src": "2241:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2202:385:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2666:775:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2676:15:1", | |
| "value": { | |
| "name": "_power", | |
| "nodeType": "YulIdentifier", | |
| "src": "2685:6:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "2676:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "2700:14:1", | |
| "value": { | |
| "name": "_base", | |
| "nodeType": "YulIdentifier", | |
| "src": "2709:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "2700:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2758:677:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2846:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "2848:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2848:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "2848:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "2824:4:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "max", | |
| "nodeType": "YulIdentifier", | |
| "src": "2834:3:1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "2839:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "2830:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2830:14:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2821:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2821:24:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2818:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "2913:419:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3293:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "3306:5:1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3313:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "3302:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3302:16:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "3293:5:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "2888:8:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2898:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "2884:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2884:16:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "2881:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3345:23:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3357:4:1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3363:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "3353:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3353:15:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3345:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3381:44:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "3416:8:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shift_right_1_unsigned", | |
| "nodeType": "YulIdentifier", | |
| "src": "3393:22:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3393:32:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "3381:8:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "2734:8:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "2744:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "2731:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "2731:15:1" | |
| }, | |
| "nodeType": "YulForLoop", | |
| "post": { | |
| "nodeType": "YulBlock", | |
| "src": "2747:2:1", | |
| "statements": [] | |
| }, | |
| "pre": { | |
| "nodeType": "YulBlock", | |
| "src": "2727:3:1", | |
| "statements": [] | |
| }, | |
| "src": "2723:712:1" | |
| } | |
| ] | |
| }, | |
| "name": "checked_exp_helper", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "_power", | |
| "nodeType": "YulTypedName", | |
| "src": "2621:6:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "_base", | |
| "nodeType": "YulTypedName", | |
| "src": "2629:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulTypedName", | |
| "src": "2636:8:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "max", | |
| "nodeType": "YulTypedName", | |
| "src": "2646:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulTypedName", | |
| "src": "2654:5:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulTypedName", | |
| "src": "2661:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "2593:848:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3513:219:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3523:31:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3549:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "3531:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3531:23:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3523:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3563:39:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "3593:8:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "3575:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3575:27:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "3563:8:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3612:113:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "3642:4:1" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "3648:8:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "3658:66:1", | |
| "type": "", | |
| "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "checked_exp_unsigned", | |
| "nodeType": "YulIdentifier", | |
| "src": "3621:20:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3621:104:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "3612:5:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_exp_t_uint256_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulTypedName", | |
| "src": "3488:4:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulTypedName", | |
| "src": "3494:8:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulTypedName", | |
| "src": "3507:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3447:285:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3798:1013:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "3993:20:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "3995:10:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4004:1:1", | |
| "type": "", | |
| "value": "1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "3995:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulLeave", | |
| "src": "4006:5:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "3983:8:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "3976:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "3976:16:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "3973:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4038:20:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4040:10:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4049:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4040:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulLeave", | |
| "src": "4051:5:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4032:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "4025:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4025:12:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "4022:2:1" | |
| }, | |
| { | |
| "cases": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4168:20:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4170:10:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4179:1:1", | |
| "type": "", | |
| "value": "1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4170:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulLeave", | |
| "src": "4181:5:1" | |
| } | |
| ] | |
| }, | |
| "nodeType": "YulCase", | |
| "src": "4161:27:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4166:1:1", | |
| "type": "", | |
| "value": "1" | |
| } | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4212:176:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4247:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "4249:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4249:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4249:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "4232:8:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4242:3:1", | |
| "type": "", | |
| "value": "255" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4229:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4229:17:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "4226:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4282:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4295:1:1", | |
| "type": "", | |
| "value": "2" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "4298:8:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "exp", | |
| "nodeType": "YulIdentifier", | |
| "src": "4291:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4291:16:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4282:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4338:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "4340:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4340:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4340:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4326:5:1" | |
| }, | |
| { | |
| "name": "max", | |
| "nodeType": "YulIdentifier", | |
| "src": "4333:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4323:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4323:14:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "4320:2:1" | |
| }, | |
| { | |
| "nodeType": "YulLeave", | |
| "src": "4373:5:1" | |
| } | |
| ] | |
| }, | |
| "nodeType": "YulCase", | |
| "src": "4197:191:1", | |
| "value": { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4202:1:1", | |
| "type": "", | |
| "value": "2" | |
| } | |
| } | |
| ], | |
| "expression": { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4118:4:1" | |
| }, | |
| "nodeType": "YulSwitch", | |
| "src": "4111:277:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4520:123:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4534:28:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4547:4:1" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "4553:8:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "exp", | |
| "nodeType": "YulIdentifier", | |
| "src": "4543:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4543:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4534:5:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4593:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "4595:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4595:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4595:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4581:5:1" | |
| }, | |
| { | |
| "name": "max", | |
| "nodeType": "YulIdentifier", | |
| "src": "4588:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4578:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4578:14:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "4575:2:1" | |
| }, | |
| { | |
| "nodeType": "YulLeave", | |
| "src": "4628:5:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4423:4:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4429:2:1", | |
| "type": "", | |
| "value": "11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4420:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4420:12:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "4437:8:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4447:2:1", | |
| "type": "", | |
| "value": "78" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4434:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4434:16:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "4416:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4416:35:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4472:4:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4478:3:1", | |
| "type": "", | |
| "value": "307" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4469:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4469:13:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "4487:8:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4497:2:1", | |
| "type": "", | |
| "value": "32" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "lt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4484:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4484:16:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "4465:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4465:36:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "or", | |
| "nodeType": "YulIdentifier", | |
| "src": "4400:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4400:111:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "4397:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4653:57:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "4687:1:1", | |
| "type": "", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4690:4:1" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulIdentifier", | |
| "src": "4696:8:1" | |
| }, | |
| { | |
| "name": "max", | |
| "nodeType": "YulIdentifier", | |
| "src": "4706:3:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "checked_exp_helper", | |
| "nodeType": "YulIdentifier", | |
| "src": "4668:18:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4668:42:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4653:5:1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4660:4:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4749:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "4751:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4751:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "4751:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4726:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "max", | |
| "nodeType": "YulIdentifier", | |
| "src": "4737:3:1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4742:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "4733:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4733:14:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "4723:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4723:25:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "4720:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4780:25:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4793:5:1" | |
| }, | |
| { | |
| "name": "base", | |
| "nodeType": "YulIdentifier", | |
| "src": "4800:4:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "4789:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4789:16:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulIdentifier", | |
| "src": "4780:5:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_exp_unsigned", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "base", | |
| "nodeType": "YulTypedName", | |
| "src": "3768:4:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "exponent", | |
| "nodeType": "YulTypedName", | |
| "src": "3774:8:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "max", | |
| "nodeType": "YulTypedName", | |
| "src": "3784:3:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "power", | |
| "nodeType": "YulTypedName", | |
| "src": "3792:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "3738:1073:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "4864:944:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4874:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "4896:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "4879:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4879:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "4874:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "4907:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "4929:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "4912:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "4912:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "4907:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5118:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "5120:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5120:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5120:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5016:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5019:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sgt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5012:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5012:9:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5027:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5030:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sgt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5023:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5023:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5008:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5008:25:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5038:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5045:66:1", | |
| "type": "", | |
| "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5113:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "div", | |
| "nodeType": "YulIdentifier", | |
| "src": "5041:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5041:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "gt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5035:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5035:81:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5004:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5004:113:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "5001:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5329:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "5331:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5331:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5331:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5225:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5228:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sgt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5221:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5221:9:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5236:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5239:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5232:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5232:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5217:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5217:25:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5248:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5256:66:1", | |
| "type": "", | |
| "value": "0x8000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5324:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sdiv", | |
| "nodeType": "YulIdentifier", | |
| "src": "5251:4:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5251:75:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5244:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5244:83:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5213:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5213:115:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "5210:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5540:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "5542:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5542:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5542:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5436:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5439:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5432:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5432:9:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5447:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5450:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sgt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5443:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5443:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5428:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5428:25:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5459:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5467:66:1", | |
| "type": "", | |
| "value": "0x8000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5535:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sdiv", | |
| "nodeType": "YulIdentifier", | |
| "src": "5462:4:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5462:75:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5455:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5455:83:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5424:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5424:115:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "5421:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5750:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "5752:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5752:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "5752:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5646:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5649:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5642:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5642:9:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5657:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5660:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5653:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5653:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5638:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5638:25:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5669:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "5677:66:1", | |
| "type": "", | |
| "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5745:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sdiv", | |
| "nodeType": "YulIdentifier", | |
| "src": "5672:4:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5672:75:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "5665:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5665:83:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5634:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5634:115:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "5631:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5782:20:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5797:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5800:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mul", | |
| "nodeType": "YulIdentifier", | |
| "src": "5793:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5793:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "product", | |
| "nodeType": "YulIdentifier", | |
| "src": "5782:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_mul_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "4847:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "4850:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "product", | |
| "nodeType": "YulTypedName", | |
| "src": "4856:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "4817:991:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "5858:483:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5868:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5890:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "5873:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5873:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "5868:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "5901:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5923:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "5906:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5906:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "5901:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6100:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "6102:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6102:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6102:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6008:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6011:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6004:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6004:9:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "5997:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5997:17:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "6020:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6027:66:1", | |
| "type": "", | |
| "value": "0x8000000000000000000000000000000000000000000000000000000000000000" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6095:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6023:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6023:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6016:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6016:82:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "5993:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "5993:106:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "5990:2:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6286:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulIdentifier", | |
| "src": "6288:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6288:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6288:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6195:1:1" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6198:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "slt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6191:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6191:9:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "6206:1:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6213:66:1", | |
| "type": "", | |
| "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6281:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "add", | |
| "nodeType": "YulIdentifier", | |
| "src": "6209:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6209:74:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sgt", | |
| "nodeType": "YulIdentifier", | |
| "src": "6202:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6202:82:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "and", | |
| "nodeType": "YulIdentifier", | |
| "src": "6187:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6187:98:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "6184:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6318:17:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "6330:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6333:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "sub", | |
| "nodeType": "YulIdentifier", | |
| "src": "6326:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6326:9:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulIdentifier", | |
| "src": "6318:4:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "checked_sub_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "5844:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "5847:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "diff", | |
| "nodeType": "YulTypedName", | |
| "src": "5853:4:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "5814:527:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6391:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6401:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "6412:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "6401:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "6373:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "6383:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6347:76:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6474:32:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6484:16:1", | |
| "value": { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "6495:5:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulIdentifier", | |
| "src": "6484:7:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "6456:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "cleaned", | |
| "nodeType": "YulTypedName", | |
| "src": "6466:7:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6429:77:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6545:141:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6555:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "6577:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "6560:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6560:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "6555:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6588:24:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6610:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "6593:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6593:19:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6588:1:1" | |
| } | |
| ] | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6634:22:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [], | |
| "functionName": { | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulIdentifier", | |
| "src": "6636:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6636:18:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6636:18:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6631:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "6624:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6624:9:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "6621:2:1" | |
| }, | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "6665:15:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulIdentifier", | |
| "src": "6675:1:1" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulIdentifier", | |
| "src": "6678:1:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "smod", | |
| "nodeType": "YulIdentifier", | |
| "src": "6670:4:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6670:10:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulIdentifier", | |
| "src": "6665:1:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "mod_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "x", | |
| "nodeType": "YulTypedName", | |
| "src": "6534:1:1", | |
| "type": "" | |
| }, | |
| { | |
| "name": "y", | |
| "nodeType": "YulTypedName", | |
| "src": "6537:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "r", | |
| "nodeType": "YulTypedName", | |
| "src": "6543:1:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "6512:174:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6720:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6737:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6740:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "6730:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6730:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6730:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6834:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6837:4:1", | |
| "type": "", | |
| "value": "0x11" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "6827:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6827:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6827:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6858:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6861:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "6851:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6851:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6851:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x11", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "6692:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "6906:152:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6923:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "6926:77:1", | |
| "type": "", | |
| "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "6916:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "6916:88:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "6916:88:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7020:1:1", | |
| "type": "", | |
| "value": "4" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7023:4:1", | |
| "type": "", | |
| "value": "0x12" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "mstore", | |
| "nodeType": "YulIdentifier", | |
| "src": "7013:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7013:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7013:15:1" | |
| }, | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7044:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7047:4:1", | |
| "type": "", | |
| "value": "0x24" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "7037:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7037:15:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7037:15:1" | |
| } | |
| ] | |
| }, | |
| "name": "panic_error_0x12", | |
| "nodeType": "YulFunctionDefinition", | |
| "src": "6878:180:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7115:51:1", | |
| "statements": [ | |
| { | |
| "nodeType": "YulAssignment", | |
| "src": "7125:34:1", | |
| "value": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7150:1:1", | |
| "type": "", | |
| "value": "1" | |
| }, | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "7153:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "shr", | |
| "nodeType": "YulIdentifier", | |
| "src": "7146:3:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7146:13:1" | |
| }, | |
| "variableNames": [ | |
| { | |
| "name": "newValue", | |
| "nodeType": "YulIdentifier", | |
| "src": "7125:8:1" | |
| } | |
| ] | |
| } | |
| ] | |
| }, | |
| "name": "shift_right_1_unsigned", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "7096:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "returnVariables": [ | |
| { | |
| "name": "newValue", | |
| "nodeType": "YulTypedName", | |
| "src": "7106:8:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7064:102:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7214:78:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7270:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7279:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7282:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "7272:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7272:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7272:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "7237:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "7261:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_int256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7244:16:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7244:23:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "7234:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7234:34:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "7227:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7227:42:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "7224:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_int256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "7207:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7172:120:1" | |
| }, | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7341:79:1", | |
| "statements": [ | |
| { | |
| "body": { | |
| "nodeType": "YulBlock", | |
| "src": "7398:16:1", | |
| "statements": [ | |
| { | |
| "expression": { | |
| "arguments": [ | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7407:1:1", | |
| "type": "", | |
| "value": "0" | |
| }, | |
| { | |
| "kind": "number", | |
| "nodeType": "YulLiteral", | |
| "src": "7410:1:1", | |
| "type": "", | |
| "value": "0" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "revert", | |
| "nodeType": "YulIdentifier", | |
| "src": "7400:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7400:12:1" | |
| }, | |
| "nodeType": "YulExpressionStatement", | |
| "src": "7400:12:1" | |
| } | |
| ] | |
| }, | |
| "condition": { | |
| "arguments": [ | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "7364:5:1" | |
| }, | |
| { | |
| "arguments": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulIdentifier", | |
| "src": "7389:5:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "cleanup_t_uint256", | |
| "nodeType": "YulIdentifier", | |
| "src": "7371:17:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7371:24:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "eq", | |
| "nodeType": "YulIdentifier", | |
| "src": "7361:2:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7361:35:1" | |
| } | |
| ], | |
| "functionName": { | |
| "name": "iszero", | |
| "nodeType": "YulIdentifier", | |
| "src": "7354:6:1" | |
| }, | |
| "nodeType": "YulFunctionCall", | |
| "src": "7354:43:1" | |
| }, | |
| "nodeType": "YulIf", | |
| "src": "7351:2:1" | |
| } | |
| ] | |
| }, | |
| "name": "validator_revert_t_uint256", | |
| "nodeType": "YulFunctionDefinition", | |
| "parameters": [ | |
| { | |
| "name": "value", | |
| "nodeType": "YulTypedName", | |
| "src": "7334:5:1", | |
| "type": "" | |
| } | |
| ], | |
| "src": "7298:122:1" | |
| } | |
| ] | |
| }, | |
| "contents": "{\n\n function abi_decode_t_int256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_int256(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_int256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_int256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n mstore(pos, cleanup_t_int256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_int256__to_t_int256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_int256_to_t_int256_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 checked_add_t_int256(x, y) -> sum {\n x := cleanup_t_int256(x)\n y := cleanup_t_int256(y)\n\n // overflow, if x >= 0 and y > (maxValue - x)\n if and(iszero(slt(x, 0)), sgt(y, sub(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n // underflow, if x < 0 and y < (minValue - x)\n if and(slt(x, 0), slt(y, sub(0x8000000000000000000000000000000000000000000000000000000000000000, x))) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_div_t_int256(x, y) -> r {\n x := cleanup_t_int256(x)\n y := cleanup_t_int256(y)\n if iszero(y) { panic_error_0x12() }\n\n // overflow for minVal / -1\n if and(\n eq(x, 0x8000000000000000000000000000000000000000000000000000000000000000),\n eq(y, sub(0, 1))\n ) { panic_error_0x11() }\n\n r := sdiv(x, y)\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_t_uint256_t_uint256(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint256(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_mul_t_int256(x, y) -> product {\n x := cleanup_t_int256(x)\n y := cleanup_t_int256(y)\n\n // overflow, if x > 0, y > 0 and x > (maxValue / y)\n if and(and(sgt(x, 0), sgt(y, 0)), gt(x, div(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y))) { panic_error_0x11() }\n // underflow, if x > 0, y < 0 and y < (minValue / x)\n if and(and(sgt(x, 0), slt(y, 0)), slt(y, sdiv(0x8000000000000000000000000000000000000000000000000000000000000000, x))) { panic_error_0x11() }\n // underflow, if x < 0, y > 0 and x < (minValue / y)\n if and(and(slt(x, 0), sgt(y, 0)), slt(x, sdiv(0x8000000000000000000000000000000000000000000000000000000000000000, y))) { panic_error_0x11() }\n // overflow, if x < 0, y < 0 and x < (maxValue / y)\n if and(and(slt(x, 0), slt(y, 0)), slt(x, sdiv(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function checked_sub_t_int256(x, y) -> diff {\n x := cleanup_t_int256(x)\n y := cleanup_t_int256(y)\n\n // underflow, if y >= 0 and x < (minValue + y)\n if and(iszero(slt(y, 0)), slt(x, add(0x8000000000000000000000000000000000000000000000000000000000000000, y))) { panic_error_0x11() }\n // overflow, if y < 0 and x > (maxValue + y)\n if and(slt(y, 0), sgt(x, add(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y))) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_int256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function mod_t_int256(x, y) -> r {\n x := cleanup_t_int256(x)\n y := cleanup_t_int256(y)\n if iszero(y) { panic_error_0x12() }\n r := smod(x, y)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function validator_revert_t_int256(value) {\n if iszero(eq(value, cleanup_t_int256(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": "608060405234801561001057600080fd5b50600436106100885760003560e01c8063af3b69021161005b578063af3b690214610103578063c54124be1461011f578063f5f565f81461013d578063f9fa48c31461016d57610088565b80632986e0541461008d5780634f2be91f146100ab57806358931c46146100c95780636cabc400146100e7575b600080fd5b61009561018b565b6040516100a291906102d5565b60405180910390f35b6100b36101a2565b6040516100c091906102d5565b60405180910390f35b6100d16101b9565b6040516100de91906102d5565b60405180910390f35b61010160048036038101906100fc9190610252565b6101d0565b005b61011d60048036038101906101189190610252565b6101da565b005b6101276101e4565b60405161013491906102d5565b60405180910390f35b6101576004803603810190610152919061027b565b6101fb565b60405161016491906102f0565b60405180910390f35b610175610211565b60405161018291906102d5565b60405180910390f35b600060015460005461019d9190610739565b905090565b60006001546000546101b4919061030b565b905090565b60006001546000546101cb919061057a565b905090565b8060008190555050565b8060018190555050565b60006001546000546101f69190610691565b905090565b60008183610209919061045c565b905092915050565b6000600154600054610223919061039f565b905090565b600081359050610237816107d5565b92915050565b60008135905061024c816107ec565b92915050565b60006020828403121561026457600080fd5b600061027284828501610228565b91505092915050565b6000806040838503121561028e57600080fd5b600061029c8582860161023d565b92505060206102ad8582860161023d565b9150509250929050565b6102c081610725565b82525050565b6102cf8161072f565b82525050565b60006020820190506102ea60008301846102b7565b92915050565b600060208201905061030560008301846102c6565b92915050565b600061031682610725565b915061032183610725565b9250817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0383136000831215161561035c5761035b61076a565b5b817f80000000000000000000000000000000000000000000000000000000000000000383126000831216156103945761039361076a565b5b828201905092915050565b60006103aa82610725565b91506103b583610725565b9250826103c5576103c4610799565b5b600160000383147f8000000000000000000000000000000000000000000000000000000000000000831416156103fe576103fd61076a565b5b828205905092915050565b6000808291508390505b60018511156104535780860481111561042f5761042e61076a565b5b600185161561043e5780820291505b808102905061044c856107c8565b9450610413565b94509492505050565b60006104678261072f565b91506104728361072f565b925061049f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104a7565b905092915050565b6000826104b75760019050610573565b816104c55760009050610573565b81600181146104db57600281146104e557610514565b6001915050610573565b60ff8411156104f7576104f661076a565b5b8360020a91508482111561050e5761050d61076a565b5b50610573565b5060208310610133831016604e8410600b84101617156105495782820a9050838111156105445761054361076a565b5b610573565b6105568484846001610409565b9250905081840481111561056d5761056c61076a565b5b81810290505b9392505050565b600061058582610725565b915061059083610725565b9250827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821160008413600084131616156105cf576105ce61076a565b5b817f8000000000000000000000000000000000000000000000000000000000000000058312600084126000841316161561060c5761060b61076a565b5b827f800000000000000000000000000000000000000000000000000000000000000005821260008413600084121616156106495761064861076a565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff05821260008412600084121616156106865761068561076a565b5b828202905092915050565b600061069c82610725565b91506106a783610725565b9250827f8000000000000000000000000000000000000000000000000000000000000000018212600084121516156106e2576106e161076a565b5b827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01821360008412161561071a5761071961076a565b5b828203905092915050565b6000819050919050565b6000819050919050565b600061074482610725565b915061074f83610725565b92508261075f5761075e610799565b5b828207905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008160011c9050919050565b6107de81610725565b81146107e957600080fd5b50565b6107f58161072f565b811461080057600080fd5b5056fea2646970667358221220c3abc4167093e8bf2153b1461a3599638c5160424a3282520c0bbffa387c1ef164736f6c63430008000033", | |
| "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAF3B6902 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xAF3B6902 EQ PUSH2 0x103 JUMPI DUP1 PUSH4 0xC54124BE EQ PUSH2 0x11F JUMPI DUP1 PUSH4 0xF5F565F8 EQ PUSH2 0x13D JUMPI DUP1 PUSH4 0xF9FA48C3 EQ PUSH2 0x16D JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x2986E054 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x4F2BE91F EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x58931C46 EQ PUSH2 0xC9 JUMPI DUP1 PUSH4 0x6CABC400 EQ PUSH2 0xE7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x18B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB3 PUSH2 0x1A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xD1 PUSH2 0x1B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xDE SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x101 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xFC SWAP2 SWAP1 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x1D0 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x11D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x252 JUMP JUMPDEST PUSH2 0x1DA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x127 PUSH2 0x1E4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x134 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x157 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x152 SWAP2 SWAP1 PUSH2 0x27B JUMP JUMPDEST PUSH2 0x1FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x164 SWAP2 SWAP1 PUSH2 0x2F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x175 PUSH2 0x211 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x182 SWAP2 SWAP1 PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x19D SWAP2 SWAP1 PUSH2 0x739 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0x30B JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x57A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x1F6 SWAP2 SWAP1 PUSH2 0x691 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 PUSH2 0x209 SWAP2 SWAP1 PUSH2 0x45C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD PUSH1 0x0 SLOAD PUSH2 0x223 SWAP2 SWAP1 PUSH2 0x39F JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x237 DUP2 PUSH2 0x7D5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x24C DUP2 PUSH2 0x7EC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x264 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x272 DUP5 DUP3 DUP6 ADD PUSH2 0x228 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x29C DUP6 DUP3 DUP7 ADD PUSH2 0x23D JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2AD DUP6 DUP3 DUP7 ADD PUSH2 0x23D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x2C0 DUP2 PUSH2 0x725 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x2CF DUP2 PUSH2 0x72F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2EA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2B7 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x305 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x316 DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x321 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP2 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP4 SGT PUSH1 0x0 DUP4 SLT ISZERO AND ISZERO PUSH2 0x35C JUMPI PUSH2 0x35B PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP2 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SUB DUP4 SLT PUSH1 0x0 DUP4 SLT AND ISZERO PUSH2 0x394 JUMPI PUSH2 0x393 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3AA DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x3B5 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x3C5 JUMPI PUSH2 0x3C4 PUSH2 0x799 JUMP JUMPDEST JUMPDEST PUSH1 0x1 PUSH1 0x0 SUB DUP4 EQ PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 DUP4 EQ AND ISZERO PUSH2 0x3FE JUMPI PUSH2 0x3FD PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SDIV SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SWAP2 POP DUP4 SWAP1 POP JUMPDEST PUSH1 0x1 DUP6 GT ISZERO PUSH2 0x453 JUMPI DUP1 DUP7 DIV DUP2 GT ISZERO PUSH2 0x42F JUMPI PUSH2 0x42E PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP6 AND ISZERO PUSH2 0x43E JUMPI DUP1 DUP3 MUL SWAP2 POP JUMPDEST DUP1 DUP2 MUL SWAP1 POP PUSH2 0x44C DUP6 PUSH2 0x7C8 JUMP JUMPDEST SWAP5 POP PUSH2 0x413 JUMP JUMPDEST SWAP5 POP SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x467 DUP3 PUSH2 0x72F JUMP JUMPDEST SWAP2 POP PUSH2 0x472 DUP4 PUSH2 0x72F JUMP JUMPDEST SWAP3 POP PUSH2 0x49F PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 DUP5 PUSH2 0x4A7 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x4B7 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x573 JUMP JUMPDEST DUP2 PUSH2 0x4C5 JUMPI PUSH1 0x0 SWAP1 POP PUSH2 0x573 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 EQ PUSH2 0x4DB JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x4E5 JUMPI PUSH2 0x514 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP PUSH2 0x573 JUMP JUMPDEST PUSH1 0xFF DUP5 GT ISZERO PUSH2 0x4F7 JUMPI PUSH2 0x4F6 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP4 PUSH1 0x2 EXP SWAP2 POP DUP5 DUP3 GT ISZERO PUSH2 0x50E JUMPI PUSH2 0x50D PUSH2 0x76A JUMP JUMPDEST JUMPDEST POP PUSH2 0x573 JUMP JUMPDEST POP PUSH1 0x20 DUP4 LT PUSH2 0x133 DUP4 LT AND PUSH1 0x4E DUP5 LT PUSH1 0xB DUP5 LT AND OR ISZERO PUSH2 0x549 JUMPI DUP3 DUP3 EXP SWAP1 POP DUP4 DUP2 GT ISZERO PUSH2 0x544 JUMPI PUSH2 0x543 PUSH2 0x76A JUMP JUMPDEST JUMPDEST PUSH2 0x573 JUMP JUMPDEST PUSH2 0x556 DUP5 DUP5 DUP5 PUSH1 0x1 PUSH2 0x409 JUMP JUMPDEST SWAP3 POP SWAP1 POP DUP2 DUP5 DIV DUP2 GT ISZERO PUSH2 0x56D JUMPI PUSH2 0x56C PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP2 DUP2 MUL SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x585 DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x590 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DIV DUP3 GT PUSH1 0x0 DUP5 SGT PUSH1 0x0 DUP5 SGT AND AND ISZERO PUSH2 0x5CF JUMPI PUSH2 0x5CE PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP2 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SDIV DUP4 SLT PUSH1 0x0 DUP5 SLT PUSH1 0x0 DUP5 SGT AND AND ISZERO PUSH2 0x60C JUMPI PUSH2 0x60B PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 SDIV DUP3 SLT PUSH1 0x0 DUP5 SGT PUSH1 0x0 DUP5 SLT AND AND ISZERO PUSH2 0x649 JUMPI PUSH2 0x648 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SDIV DUP3 SLT PUSH1 0x0 DUP5 SLT PUSH1 0x0 DUP5 SLT AND AND ISZERO PUSH2 0x686 JUMPI PUSH2 0x685 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 MUL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x69C DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x6A7 DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0x8000000000000000000000000000000000000000000000000000000000000000 ADD DUP3 SLT PUSH1 0x0 DUP5 SLT ISZERO AND ISZERO PUSH2 0x6E2 JUMPI PUSH2 0x6E1 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ADD DUP3 SGT PUSH1 0x0 DUP5 SLT AND ISZERO PUSH2 0x71A JUMPI PUSH2 0x719 PUSH2 0x76A JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x744 DUP3 PUSH2 0x725 JUMP JUMPDEST SWAP2 POP PUSH2 0x74F DUP4 PUSH2 0x725 JUMP JUMPDEST SWAP3 POP DUP3 PUSH2 0x75F JUMPI PUSH2 0x75E PUSH2 0x799 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SMOD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 SHR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7DE DUP2 PUSH2 0x725 JUMP JUMPDEST DUP2 EQ PUSH2 0x7E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x7F5 DUP2 PUSH2 0x72F JUMP JUMPDEST DUP2 EQ PUSH2 0x800 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC3 0xAB 0xC4 AND PUSH17 0x93E8BF2153B1461A3599638C5160424A32 DUP3 MSTORE 0xC SIGNEXTEND 0xBF STATICCALL CODESIZE PUSH29 0x1EF164736F6C6343000800003300000000000000000000000000000000 ", | |
| "sourceMap": "60:652:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;540:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;228;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;384;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;110:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;306:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;618:92;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;462:68;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;540;575:3;600:1;;596;;:5;;;;:::i;:::-;589:12;;540:68;:::o;228:::-;263:3;288:1;;284;;:5;;;;:::i;:::-;277:12;;228:68;:::o;384:::-;419:3;444:1;;440;;:5;;;;:::i;:::-;433:12;;384:68;:::o;110:49::-;151:1;147;:5;;;;110:49;:::o;169:::-;210:1;206;:5;;;;169:49;:::o;306:68::-;341:3;366:1;;362;;:5;;;;:::i;:::-;355:12;;306:68;:::o;618:92::-;668:4;702:1;699;:4;;;;:::i;:::-;692:11;;618:92;;;;:::o;462:68::-;497:3;522:1;;518;;:5;;;;:::i;:::-;511:12;;462:68;:::o;7:137:1:-;;90:6;77:20;68:29;;106:32;132:5;106:32;:::i;:::-;58:86;;;;:::o;150:139::-;;234:6;221:20;212:29;;250:33;277:5;250:33;:::i;:::-;202:87;;;;:::o;295:260::-;;402:2;390:9;381:7;377:23;373:32;370:2;;;418:1;415;408:12;370:2;461:1;486:52;530:7;521:6;510:9;506:22;486:52;:::i;:::-;476:62;;432:116;360:195;;;;:::o;561:407::-;;;686:2;674:9;665:7;661:23;657:32;654:2;;;702:1;699;692:12;654:2;745:1;770:53;815:7;806:6;795:9;791:22;770:53;:::i;:::-;760:63;;716:117;872:2;898:53;943:7;934:6;923:9;919:22;898:53;:::i;:::-;888:63;;843:118;644:324;;;;;:::o;974:115::-;1059:23;1076:5;1059:23;:::i;:::-;1054:3;1047:36;1037:52;;:::o;1095:118::-;1182:24;1200:5;1182:24;:::i;:::-;1177:3;1170:37;1160:53;;:::o;1219:218::-;;1348:2;1337:9;1333:18;1325:26;;1361:69;1427:1;1416:9;1412:17;1403:6;1361:69;:::i;:::-;1315:122;;;;:::o;1443:222::-;;1574:2;1563:9;1559:18;1551:26;;1587:71;1655:1;1644:9;1640:17;1631:6;1587:71;:::i;:::-;1541:124;;;;:::o;1671:525::-;;1729:19;1746:1;1729:19;:::i;:::-;1724:24;;1762:19;1779:1;1762:19;:::i;:::-;1757:24;;1950:1;1882:66;1878:74;1875:1;1871:82;1866:1;1863;1859:9;1852:17;1848:106;1845:2;;;1957:18;;:::i;:::-;1845:2;2137:1;2069:66;2065:74;2062:1;2058:82;2054:1;2051;2047:9;2043:98;2040:2;;;2144:18;;:::i;:::-;2040:2;2188:1;2185;2181:9;2174:16;;1714:482;;;;:::o;2202:385::-;;2258:19;2275:1;2258:19;:::i;:::-;2253:24;;2291:19;2308:1;2291:19;:::i;:::-;2286:24;;2329:1;2319:2;;2334:18;;:::i;:::-;2319:2;2520:1;2517;2513:9;2510:1;2507:16;2426:66;2423:1;2420:73;2403:130;2400:2;;;2536:18;;:::i;:::-;2400:2;2579:1;2576;2571:10;2566:15;;2243:344;;;;:::o;2593:848::-;;;2685:6;2676:15;;2709:5;2700:14;;2723:712;2744:1;2734:8;2731:15;2723:712;;;2839:4;2834:3;2830:14;2824:4;2821:24;2818:2;;;2848:18;;:::i;:::-;2818:2;2898:1;2888:8;2884:16;2881:2;;;3313:4;3306:5;3302:16;3293:25;;2881:2;3363:4;3357;3353:15;3345:23;;3393:32;3416:8;3393:32;:::i;:::-;3381:44;;2723:712;;;2666:775;;;;;;;:::o;3447:285::-;;3531:23;3549:4;3531:23;:::i;:::-;3523:31;;3575:27;3593:8;3575:27;:::i;:::-;3563:39;;3621:104;3658:66;3648:8;3642:4;3621:104;:::i;:::-;3612:113;;3513:219;;;;:::o;3738:1073::-;;3983:8;3973:2;;4004:1;3995:10;;4006:5;;3973:2;4032:4;4022:2;;4049:1;4040:10;;4051:5;;4022:2;4118:4;4166:1;4161:27;;;;4202:1;4197:191;;;;4111:277;;4161:27;4179:1;4170:10;;4181:5;;;4197:191;4242:3;4232:8;4229:17;4226:2;;;4249:18;;:::i;:::-;4226:2;4298:8;4295:1;4291:16;4282:25;;4333:3;4326:5;4323:14;4320:2;;;4340:18;;:::i;:::-;4320:2;4373:5;;;4111:277;;4497:2;4487:8;4484:16;4478:3;4472:4;4469:13;4465:36;4447:2;4437:8;4434:16;4429:2;4423:4;4420:12;4416:35;4400:111;4397:2;;;4553:8;4547:4;4543:19;4534:28;;4588:3;4581:5;4578:14;4575:2;;;4595:18;;:::i;:::-;4575:2;4628:5;;4397:2;4668:42;4706:3;4696:8;4690:4;4687:1;4668:42;:::i;:::-;4653:57;;;;4742:4;4737:3;4733:14;4726:5;4723:25;4720:2;;;4751:18;;:::i;:::-;4720:2;4800:4;4793:5;4789:16;4780:25;;3798:1013;;;;;;:::o;4817:991::-;;4879:19;4896:1;4879:19;:::i;:::-;4874:24;;4912:19;4929:1;4912:19;:::i;:::-;4907:24;;5113:1;5045:66;5041:74;5038:1;5035:81;5030:1;5027;5023:9;5019:1;5016;5012:9;5008:25;5004:113;5001:2;;;5120:18;;:::i;:::-;5001:2;5324:1;5256:66;5251:75;5248:1;5244:83;5239:1;5236;5232:9;5228:1;5225;5221:9;5217:25;5213:115;5210:2;;;5331:18;;:::i;:::-;5210:2;5535:1;5467:66;5462:75;5459:1;5455:83;5450:1;5447;5443:9;5439:1;5436;5432:9;5428:25;5424:115;5421:2;;;5542:18;;:::i;:::-;5421:2;5745:1;5677:66;5672:75;5669:1;5665:83;5660:1;5657;5653:9;5649:1;5646;5642:9;5638:25;5634:115;5631:2;;;5752:18;;:::i;:::-;5631:2;5800:1;5797;5793:9;5782:20;;4864:944;;;;:::o;5814:527::-;;5873:19;5890:1;5873:19;:::i;:::-;5868:24;;5906:19;5923:1;5906:19;:::i;:::-;5901:24;;6095:1;6027:66;6023:74;6020:1;6016:82;6011:1;6008;6004:9;5997:17;5993:106;5990:2;;;6102:18;;:::i;:::-;5990:2;6281:1;6213:66;6209:74;6206:1;6202:82;6198:1;6195;6191:9;6187:98;6184:2;;;6288:18;;:::i;:::-;6184:2;6333:1;6330;6326:9;6318:17;;5858:483;;;;:::o;6347:76::-;;6412:5;6401:16;;6391:32;;;:::o;6429:77::-;;6495:5;6484:16;;6474:32;;;:::o;6512:174::-;;6560:19;6577:1;6560:19;:::i;:::-;6555:24;;6593:19;6610:1;6593:19;:::i;:::-;6588:24;;6631:1;6621:2;;6636:18;;:::i;:::-;6621:2;6678:1;6675;6670:10;6665:15;;6545:141;;;;:::o;6692:180::-;6740:77;6737:1;6730:88;6837:4;6834:1;6827:15;6861:4;6858:1;6851:15;6878:180;6926:77;6923:1;6916:88;7023:4;7020:1;7013:15;7047:4;7044:1;7037:15;7064:102;;7153:5;7150:1;7146:13;7125:34;;7115:51;;;:::o;7172:120::-;7244:23;7261:5;7244:23;:::i;:::-;7237:5;7234:34;7224:2;;7282:1;7279;7272:12;7224:2;7214:78;:::o;7298:122::-;7371:24;7389:5;7371:24;:::i;:::-;7364:5;7361:35;7351:2;;7410:1;7407;7400:12;7351:2;7341:79;:::o" | |
| }, | |
| "gasEstimates": { | |
| "creation": { | |
| "codeDepositCost": "421000", | |
| "executionCost": "455", | |
| "totalCost": "421455" | |
| }, | |
| "external": { | |
| "add()": "infinite", | |
| "div()": "infinite", | |
| "exp(uint256,uint256)": "infinite", | |
| "mod()": "infinite", | |
| "mul()": "infinite", | |
| "setA(int256)": "20487", | |
| "setB(int256)": "20420", | |
| "sub()": "infinite" | |
| } | |
| }, | |
| "methodIdentifiers": { | |
| "add()": "4f2be91f", | |
| "div()": "f9fa48c3", | |
| "exp(uint256,uint256)": "f5f565f8", | |
| "mod()": "2986e054", | |
| "mul()": "58931c46", | |
| "setA(int256)": "6cabc400", | |
| "setB(int256)": "af3b6902", | |
| "sub()": "c54124be" | |
| } | |
| }, | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "add", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "div", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "y", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "exp", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "mod", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "mul", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "x", | |
| "type": "int256" | |
| } | |
| ], | |
| "name": "setA", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "x", | |
| "type": "int256" | |
| } | |
| ], | |
| "name": "setB", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "sub", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ] | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "compiler": { | |
| "version": "0.8.0+commit.c7dfd78e" | |
| }, | |
| "language": "Solidity", | |
| "output": { | |
| "abi": [ | |
| { | |
| "inputs": [], | |
| "name": "add", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "div", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "x", | |
| "type": "uint256" | |
| }, | |
| { | |
| "internalType": "uint256", | |
| "name": "y", | |
| "type": "uint256" | |
| } | |
| ], | |
| "name": "exp", | |
| "outputs": [ | |
| { | |
| "internalType": "uint256", | |
| "name": "", | |
| "type": "uint256" | |
| } | |
| ], | |
| "stateMutability": "pure", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "mod", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "mul", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "x", | |
| "type": "int256" | |
| } | |
| ], | |
| "name": "setA", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "x", | |
| "type": "int256" | |
| } | |
| ], | |
| "name": "setB", | |
| "outputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "function" | |
| }, | |
| { | |
| "inputs": [], | |
| "name": "sub", | |
| "outputs": [ | |
| { | |
| "internalType": "int256", | |
| "name": "", | |
| "type": "int256" | |
| } | |
| ], | |
| "stateMutability": "view", | |
| "type": "function" | |
| } | |
| ], | |
| "devdoc": { | |
| "kind": "dev", | |
| "methods": {}, | |
| "version": 1 | |
| }, | |
| "userdoc": { | |
| "kind": "user", | |
| "methods": {}, | |
| "version": 1 | |
| } | |
| }, | |
| "settings": { | |
| "compilationTarget": { | |
| "contracts/prac1.sol": "MathOper" | |
| }, | |
| "evmVersion": "istanbul", | |
| "libraries": {}, | |
| "metadata": { | |
| "bytecodeHash": "ipfs" | |
| }, | |
| "optimizer": { | |
| "enabled": false, | |
| "runs": 200 | |
| }, | |
| "remappings": [] | |
| }, | |
| "sources": { | |
| "contracts/prac1.sol": { | |
| "keccak256": "0x31d42ef3bc17b529619fb8dbcf7ceb2e4d144b00d62c9fe5a5a0cb551edc6d33", | |
| "license": "GPL-3.0", | |
| "urls": [ | |
| "bzz-raw://bcbc22a8c62149bb445469a64c1c0e9259340009b4d7b1df1f61eec67032dce2", | |
| "dweb:/ipfs/QmdhhjSJer1DDXog4a8Z4CcTjHLyJzXBD4PeKuLXmSmy7z" | |
| ] | |
| } | |
| }, | |
| "version": 1 | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.0; | |
| contract Bank{ | |
| uint bal; | |
| constructor() public{ | |
| bal = 5; | |
| } | |
| function showBalance() view public returns(uint){ | |
| return bal; | |
| } | |
| function withdrow(uint x) public{ | |
| bal = bal - x; | |
| } | |
| function deposit(uint x) public{ | |
| bal = bal + x; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.0; | |
| contract EnumTest{ | |
| enum CoffeeSize{ SMALL, MEDIUM, LARGE } | |
| CoffeeSize choice; | |
| CoffeeSize constant defaultChoice = CoffeeSize.MEDIUM; | |
| function setSmall() public { | |
| choice = CoffeeSize.SMALL; | |
| } | |
| function setMedium() public { | |
| choice = CoffeeSize.MEDIUM; | |
| } | |
| function setLarge() public { | |
| choice = CoffeeSize.LARGE; | |
| } | |
| function getChoice() public view returns (CoffeeSize) { | |
| return choice; | |
| } | |
| function getDefaultChoice() public pure returns (uint) { | |
| return uint(defaultChoice); | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.0; | |
| contract MathOper{ | |
| int a; | |
| int b; | |
| function setA(int x) public{ | |
| a = x; | |
| } | |
| function setB(int x) public{ | |
| b = x; | |
| } | |
| function add() view public returns(int){ | |
| return a + b; | |
| } | |
| function sub() view public returns(int){ | |
| return a - b; | |
| } | |
| function mul() view public returns(int){ | |
| return a * b; | |
| } | |
| function div() view public returns(int){ | |
| return a / b; | |
| } | |
| function mod() view public returns(int){ | |
| return a % b; | |
| } | |
| function exp(uint x , uint y) public pure returns(uint){ | |
| return x**y; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.0; | |
| contract ClassReport{ | |
| struct Marksheet{ | |
| string name; | |
| uint id; | |
| uint[3] subjects; | |
| } | |
| mapping(uint=>Marksheet) Reports; | |
| function addReport(string memory n,uint i, uint[3] memory sub) public{ | |
| Reports[i] = Marksheet(n,i,sub); | |
| } | |
| function showReport(uint id) public view returns(Marksheet memory){ | |
| return Reports[id]; | |
| } | |
| function showGrade(uint id) public view returns(string memory){ | |
| uint[3] memory x = Reports[id].subjects; | |
| uint sum=0; | |
| for(uint i = 0 ; i<x.length ; i++) | |
| sum+=x[i]; | |
| uint avg = sum/3; | |
| if(avg>=80){ | |
| return "A"; | |
| } | |
| else if(avg>=60){ | |
| return "B"; | |
| } | |
| else if(avg>=40){ | |
| return "C"; | |
| } | |
| else{ | |
| return "D"; | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity 0.8.0; | |
| contract A{ | |
| function A1() public pure returns(int){ | |
| return 100; | |
| } | |
| function A2() private pure returns(int){ | |
| return 200; | |
| } | |
| function A3() internal pure returns(int){ | |
| return 300; | |
| } | |
| } | |
| contract B{ | |
| function B1() public{ | |
| A a = new A(); | |
| a.A1(); | |
| } | |
| // function B2() public{ | |
| // A a = new A(); | |
| // a.A2(); | |
| // } | |
| // function B3() public{ | |
| // A a = new A(); | |
| // a.A3(); | |
| // } | |
| } | |
| contract C is A{ | |
| function C1() public{ | |
| A a = new A(); | |
| a.A1(); | |
| } | |
| // function C2() public{ | |
| // A a = new A(); | |
| // a.A2(); | |
| // } | |
| function C3() public pure{ | |
| A3(); | |
| } | |
| } | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Right click on the script name and hit "Run" to execute | |
| (async () => { | |
| try { | |
| console.log('Running deployWithEthers script...') | |
| const contractName = 'Storage' // Change this for other contract | |
| const constructorArgs = [] // Put constructor args (if any) here for your contract | |
| // Note that the script needs the ABI which is generated from the compilation artifact. | |
| // Make sure contract is compiled and artifacts are generated | |
| const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path | |
| const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath)) | |
| // 'web3Provider' is a remix global variable object | |
| const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner() | |
| let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer); | |
| let contract = await factory.deploy(...constructorArgs); | |
| console.log('Contract Address: ', contract.address); | |
| // The contract is NOT deployed yet; we must wait until it is mined | |
| await contract.deployed() | |
| console.log('Deployment successful.') | |
| } catch (e) { | |
| console.log(e.message) | |
| } | |
| })() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Right click on the script name and hit "Run" to execute | |
| (async () => { | |
| try { | |
| console.log('Running deployWithWeb3 script...') | |
| const contractName = 'Storage' // Change this for other contract | |
| const constructorArgs = [] // Put constructor args (if any) here for your contract | |
| // Note that the script needs the ABI which is generated from the compilation artifact. | |
| // Make sure contract is compiled and artifacts are generated | |
| const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path | |
| const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath)) | |
| const accounts = await web3.eth.getAccounts() | |
| let contract = new web3.eth.Contract(metadata.abi) | |
| contract = contract.deploy({ | |
| data: metadata.data.bytecode.object, | |
| arguments: constructorArgs | |
| }) | |
| const newContractInstance = await contract.send({ | |
| from: accounts[0], | |
| gas: 1500000, | |
| gasPrice: '30000000000' | |
| }) | |
| console.log('Contract deployed at address: ', newContractInstance.options.address) | |
| } catch (e) { | |
| console.log(e.message) | |
| } | |
| })() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // SPDX-License-Identifier: GPL-3.0 | |
| pragma solidity >=0.7.0 <0.9.0; | |
| import "remix_tests.sol"; // this import is automatically injected by Remix. | |
| import "../contracts/3_Ballot.sol"; | |
| contract BallotTest { | |
| bytes32[] proposalNames; | |
| Ballot ballotToTest; | |
| function beforeAll () public { | |
| proposalNames.push(bytes32("candidate1")); | |
| ballotToTest = new Ballot(proposalNames); | |
| } | |
| function checkWinningProposal () public { | |
| ballotToTest.vote(0); | |
| Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal"); | |
| Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name"); | |
| } | |
| function checkWinninProposalWithReturnValue () public view returns (bool) { | |
| return ballotToTest.winningProposal() == 0; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment