Skip to content

Instantly share code, notes, and snippets.

@furkancelik
Created September 26, 2022 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save furkancelik/00b84cf68a1f50a8f98d883ea766e6b5 to your computer and use it in GitHub Desktop.
Save furkancelik/00b84cf68a1f50a8f98d883ea766e6b5 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.17+commit.8df45f5f.js&optimize=true&runs=200&gist=
REMIX DEFAULT WORKSPACE
Remix default workspace is present when:
i. Remix loads for the very first time
ii. A new workspace is created with 'Default' template
iii. There are no files existing in the File Explorer
This workspace contains 3 directories:
1. 'contracts': Holds three contracts with increasing levels of complexity.
2. 'scripts': Contains four typescript files to deploy a contract. It is explained below.
3. 'tests': Contains one Solidity test file for 'Ballot' contract & one JS test file for 'Storage' contract.
SCRIPTS
The 'scripts' folder has four typescript files which help to deploy the 'Storage' contract using 'web3.js' and 'ethers.js' libraries.
For the deployment of any other contract, just update the contract's name from 'Storage' to the desired contract and provide constructor arguments accordingly
in the file `deploy_with_ethers.ts` or `deploy_with_web3.ts`
In the 'tests' folder there is a script containing Mocha-Chai unit tests for 'Storage' contract.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
Please note, require/import is supported in a limited manner for Remix supported modules.
For now, modules supported by Remix are ethers, web3, swarmgw, chai, multihashes, remix and hardhat only for hardhat.ethers object/plugin.
For unsupported modules, an error like this will be thrown: '<module_name> module require is not supported by Remix IDE' will be shown.
{
"id": "0bb547a15fd16763f068d992bc37fcba",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": "pragma solidity ^0.8.7;\n// SPDX-License-Identifier: MIT\n\ncontract FeeCollector {\n address public owner;\n uint256 public balance;\n \n constructor() {\n owner = msg.sender; // sözleşme\n }\n \n receive() payable external {\n balance += msg.value; // keep track of balance (in WEI)\n }\n \n \n function withdraw(uint amount, address payable destAddr) public {\n require(msg.sender == owner, \"Only owner can withdraw\");\n require(amount <= balance, \"Insufficient funds\");\n \n destAddr.transfer(amount); // send funds to given address\n balance -= amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"FeeCollector.sol": {
"FeeCollector": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"FeeCollector.sol\":57:628 contract FeeCollector {... */\n mstore(0x40, 0x80)\n /* \"FeeCollector.sol\":144:207 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"FeeCollector.sol\":168:173 owner */\n 0x00\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"FeeCollector.sol\":176:186 msg.sender */\n caller\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n or\n swap1\n sstore\n /* \"FeeCollector.sol\":57:628 contract FeeCollector {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"FeeCollector.sol\":57:628 contract FeeCollector {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf714ce\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xb69ef8a8\n eq\n tag_5\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n jumpi(tag_2, calldatasize)\n /* \"FeeCollector.sol\":265:274 msg.value */\n callvalue\n /* \"FeeCollector.sol\":254:261 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":254:274 balance += msg.value */\n dup3\n dup3\n sload\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n stop\n /* \"FeeCollector.sol\":57:628 contract FeeCollector {... */\n tag_2:\n 0x00\n dup1\n revert\n /* \"FeeCollector.sol\":330:626 function withdraw(uint amount, address payable destAddr) public {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\n tag_10:\n pop\n tag_11\n tag_12\n calldatasize\n 0x04\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n stop\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_4:\n callvalue\n dup1\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n pop\n sload(0x00)\n tag_16\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_16:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":807:839 */\n swap1\n swap2\n and\n /* \"#utility.yul\":789:840 */\n dup2\n mstore\n /* \"#utility.yul\":777:779 */\n 0x20\n /* \"#utility.yul\":762:780 */\n add\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_18:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_5:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n sload(0x01)\n dup2\n jump\n tag_21:\n mload(0x40)\n /* \"#utility.yul\":997:1022 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":985:987 */\n 0x20\n /* \"#utility.yul\":970:988 */\n add\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_18\n /* \"#utility.yul\":851:1028 */\n jump\n /* \"FeeCollector.sol\":330:626 function withdraw(uint amount, address payable destAddr) public {... */\n tag_14:\n /* \"FeeCollector.sol\":426:431 owner */\n and(sub(shl(0xa0, 0x01), 0x01), sload(0x00))\n /* \"FeeCollector.sol\":412:422 msg.sender */\n caller\n /* \"FeeCollector.sol\":412:431 msg.sender == owner */\n eq\n /* \"FeeCollector.sol\":404:459 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_26\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1235:1237 */\n 0x20\n /* \"FeeCollector.sol\":404:459 require(msg.sender == owner, \"Only owner can withdraw\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1217:1238 */\n mstore\n /* \"#utility.yul\":1274:1276 */\n 0x17\n /* \"#utility.yul\":1254:1272 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1247:1277 */\n mstore\n /* \"#utility.yul\":1313:1338 */\n 0x4f6e6c79206f776e65722063616e207769746864726177000000000000000000\n /* \"#utility.yul\":1293:1311 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1286:1339 */\n mstore\n /* \"#utility.yul\":1356:1374 */\n 0x64\n add\n /* \"FeeCollector.sol\":404:459 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_27:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_26:\n /* \"FeeCollector.sol\":487:494 balance */\n sload(0x01)\n /* \"FeeCollector.sol\":477:483 amount */\n dup3\n /* \"FeeCollector.sol\":477:494 amount <= balance */\n gt\n iszero\n /* \"FeeCollector.sol\":469:517 require(amount <= balance, \"Insufficient funds\") */\n tag_29\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1587:1589 */\n 0x20\n /* \"FeeCollector.sol\":469:517 require(amount <= balance, \"Insufficient funds\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1569:1590 */\n mstore\n /* \"#utility.yul\":1626:1628 */\n 0x12\n /* \"#utility.yul\":1606:1624 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1599:1629 */\n mstore\n shl(0x70, 0x496e73756666696369656e742066756e6473)\n /* \"#utility.yul\":1645:1663 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1638:1686 */\n mstore\n /* \"#utility.yul\":1703:1721 */\n 0x64\n add\n /* \"FeeCollector.sol\":469:517 require(amount <= balance, \"Insufficient funds\") */\n tag_27\n /* \"#utility.yul\":1385:1727 */\n jump\n /* \"FeeCollector.sol\":469:517 require(amount <= balance, \"Insufficient funds\") */\n tag_29:\n /* \"FeeCollector.sol\":536:561 destAddr.transfer(amount) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"FeeCollector.sol\":536:553 destAddr.transfer */\n dup3\n and\n swap1\n /* \"FeeCollector.sol\":536:561 destAddr.transfer(amount) */\n dup4\n iszero\n 0x08fc\n mul\n swap1\n /* \"FeeCollector.sol\":554:560 amount */\n dup5\n swap1\n /* \"FeeCollector.sol\":536:561 destAddr.transfer(amount) */\n 0x00\n dup2\n dup2\n dup2\n /* \"FeeCollector.sol\":554:560 amount */\n dup6\n /* \"FeeCollector.sol\":536:553 destAddr.transfer */\n dup9\n /* \"FeeCollector.sol\":536:561 destAddr.transfer(amount) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_33\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_33:\n pop\n /* \"FeeCollector.sol\":613:619 amount */\n dup2\n /* \"FeeCollector.sol\":602:609 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":602:619 balance -= amount */\n dup3\n dup3\n sload\n tag_34\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n swap1\n swap2\n sstore\n pop\n pop\n pop\n pop\n /* \"FeeCollector.sol\":330:626 function withdraw(uint amount, address payable destAddr) public {... */\n jump\t// out\n /* \"#utility.yul\":14:141 */\n tag_36:\n /* \"#utility.yul\":75:85 */\n 0x4e487b71\n /* \"#utility.yul\":70:73 */\n 0xe0\n /* \"#utility.yul\":66:86 */\n shl\n /* \"#utility.yul\":63:64 */\n 0x00\n /* \"#utility.yul\":56:87 */\n mstore\n /* \"#utility.yul\":106:110 */\n 0x11\n /* \"#utility.yul\":103:104 */\n 0x04\n /* \"#utility.yul\":96:111 */\n mstore\n /* \"#utility.yul\":130:134 */\n 0x24\n /* \"#utility.yul\":127:128 */\n 0x00\n /* \"#utility.yul\":120:135 */\n revert\n /* \"#utility.yul\":146:271 */\n tag_9:\n /* \"#utility.yul\":211:220 */\n dup1\n dup3\n add\n /* \"#utility.yul\":232:242 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":229:265 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":245:263 */\n tag_41\n tag_36\n jump\t// in\n tag_41:\n /* \"#utility.yul\":146:271 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":276:638 */\n tag_13:\n /* \"#utility.yul\":352:358 */\n 0x00\n /* \"#utility.yul\":360:366 */\n dup1\n /* \"#utility.yul\":413:415 */\n 0x40\n /* \"#utility.yul\":401:410 */\n dup4\n /* \"#utility.yul\":392:399 */\n dup6\n /* \"#utility.yul\":388:411 */\n sub\n /* \"#utility.yul\":384:416 */\n slt\n /* \"#utility.yul\":381:433 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":429:430 */\n 0x00\n /* \"#utility.yul\":426:427 */\n dup1\n /* \"#utility.yul\":419:431 */\n revert\n /* \"#utility.yul\":381:433 */\n tag_43:\n /* \"#utility.yul\":452:475 */\n dup3\n calldataload\n swap2\n pop\n /* \"#utility.yul\":525:527 */\n 0x20\n /* \"#utility.yul\":510:528 */\n dup4\n add\n /* \"#utility.yul\":497:529 */\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":558:589 */\n dup2\n and\n /* \"#utility.yul\":548:590 */\n dup2\n eq\n /* \"#utility.yul\":538:608 */\n tag_44\n jumpi\n /* \"#utility.yul\":604:605 */\n 0x00\n /* \"#utility.yul\":601:602 */\n dup1\n /* \"#utility.yul\":594:606 */\n revert\n /* \"#utility.yul\":538:608 */\n tag_44:\n /* \"#utility.yul\":627:632 */\n dup1\n /* \"#utility.yul\":617:632 */\n swap2\n pop\n pop\n /* \"#utility.yul\":276:638 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1732:1860 */\n tag_35:\n /* \"#utility.yul\":1799:1808 */\n dup2\n dup2\n sub\n /* \"#utility.yul\":1820:1831 */\n dup2\n dup2\n gt\n /* \"#utility.yul\":1817:1854 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":1834:1852 */\n tag_41\n tag_36\n jump\t// in\n\n auxdata: 0xa264697066735822122080c3addd9831b1b6006bf0aa81ae1bacbd0a29112193a8c83b2c738475ca896264736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561028a806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea264697066735822122080c3addd9831b1b6006bf0aa81ae1bacbd0a29112193a8c83b2c738475ca896264736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x28A DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP1 0xC3 0xAD 0xDD SWAP9 BALANCE 0xB1 0xB6 STOP PUSH12 0xF0AA81AE1BACBD0A29112193 0xA8 0xC8 EXTCODESIZE 0x2C PUSH20 0x8475CA896264736F6C6343000811003300000000 ",
"sourceMap": "57:571:0:-:0;;;144:63;;;;;;;;;-1:-1:-1;168:5:0;:18;;-1:-1:-1;;;;;;168:18:0;176:10;168:18;;;57:571;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 517,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 492,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 577,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 470,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1862:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:173:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:2:1",
"type": "",
"value": "23"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1297:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:18:1"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1313:25:1",
"type": "",
"value": "Only owner can withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1286:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1286:53:1"
},
"nodeType": "YulExpressionStatement",
"src": "1286:53:1"
},
{
"nodeType": "YulAssignment",
"src": "1348:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1356:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1356:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1348:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:347:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1559:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1576:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1587:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1569:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1569:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1569:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1610:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1621:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1606:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1606:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1626:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1599:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1599:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1599:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1649:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1660:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1645:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1645:18:1"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1665:20:1",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1638:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1638:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "1638:48:1"
},
{
"nodeType": "YulAssignment",
"src": "1695:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1707:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1718:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1703:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1703:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1695:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1536:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1550:4:1",
"type": ""
}
],
"src": "1385:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1781:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1791:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1803:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1806:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1799:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1799:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1791:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1832:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1834:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1834:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1834:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1823:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1829:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1820:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1820:11:1"
},
"nodeType": "YulIf",
"src": "1817:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1763:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1766:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1772:4:1",
"type": ""
}
],
"src": "1732:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Only owner can withdraw\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Insufficient funds\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea264697066735822122080c3addd9831b1b6006bf0aa81ae1bacbd0a29112193a8c83b2c738475ca896264736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP1 0xC3 0xAD 0xDD SWAP9 BALANCE 0xB1 0xB6 STOP PUSH12 0xF0AA81AE1BACBD0A29112193 0xA8 0xC8 EXTCODESIZE 0x2C PUSH20 0x8475CA896264736F6C6343000811003300000000 ",
"sourceMap": "57:571:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;265:9;254:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:571;;;;330:296;;;;;;;;;;-1:-1:-1;330:296:0;;;;;:::i;:::-;;:::i;:::-;;85:20;;;;;;;;;;-1:-1:-1;85:20:0;;;;-1:-1:-1;;;;;85:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;85:20:0;;;;;;;;111:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;111:22:0;851:177:1;330:296:0;426:5;;-1:-1:-1;;;;;426:5:0;412:10;:19;404:55;;;;-1:-1:-1;;;404:55:0;;1235:2:1;404:55:0;;;1217:21:1;1274:2;1254:18;;;1247:30;1313:25;1293:18;;;1286:53;1356:18;;404:55:0;;;;;;;;;487:7;;477:6;:17;;469:48;;;;-1:-1:-1;;;469:48:0;;1587:2:1;469:48:0;;;1569:21:1;1626:2;1606:18;;;1599:30;-1:-1:-1;;;1645:18:1;;;1638:48;1703:18;;469:48:0;1385:342:1;469:48:0;536:25;;-1:-1:-1;;;;;536:17:0;;;:25;;;;;554:6;;536:25;;;;554:6;536:17;:25;;;;;;;;;;;;;;;;;;;;;613:6;602:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;330:296:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1732:128::-;1799:9;;;1820:11;;;1817:37;;;1834:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "130000",
"executionCost": "24412",
"totalCost": "154412"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 628,
"name": "MSTORE",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "ISZERO",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 207,
"name": "JUMPI",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 207,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "REVERT",
"source": 0
},
{
"begin": 144,
"end": 207,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 207,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 168,
"end": 173,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 168,
"end": 186,
"name": "DUP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 168,
"end": 186,
"name": "AND",
"source": 0
},
{
"begin": 176,
"end": 186,
"name": "CALLER",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "OR",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SSTORE",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 628,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 628,
"name": "CODECOPY",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 628,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122080c3addd9831b1b6006bf0aa81ae1bacbd0a29112193a8c83b2c738475ca896264736f6c63430008110033",
".code": [
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 628,
"name": "MSTORE",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 628,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "LT",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 628,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 628,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 57,
"end": 628,
"name": "SHR",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "F714CE"
},
{
"begin": 57,
"end": 628,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 57,
"end": 628,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 57,
"end": 628,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 628,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "B69EF8A8"
},
{
"begin": 57,
"end": 628,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 57,
"end": 628,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 628,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "REVERT",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 628,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 628,
"name": "JUMPI",
"source": 0
},
{
"begin": 265,
"end": 274,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 254,
"end": 261,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 254,
"end": 261,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 254,
"end": 274,
"name": "DUP3",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "DUP3",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "SLOAD",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 254,
"end": 274,
"name": "SWAP2",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "SWAP1",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 254,
"end": 274,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 254,
"end": 274,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "SWAP3",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "POP",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "POP",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "DUP2",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "SWAP1",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "SSTORE",
"source": 0
},
{
"begin": 254,
"end": 274,
"name": "STOP",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 628,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 628,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 628,
"name": "REVERT",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 330,
"end": 626,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "DUP1",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "ISZERO",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 330,
"end": 626,
"name": "JUMPI",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 330,
"end": 626,
"name": "DUP1",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "REVERT",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 330,
"end": 626,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 330,
"end": 626,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 330,
"end": 626,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 330,
"end": 626,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 330,
"end": 626,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 330,
"end": 626,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 330,
"end": 626,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 330,
"end": 626,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 330,
"end": 626,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 330,
"end": 626,
"name": "STOP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "ISZERO",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPI",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "REVERT",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "SLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "AND",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "JUMP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 807,
"end": 839,
"name": "SWAP1",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "SWAP2",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "AND",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "DUP2",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "MSTORE",
"source": 1
},
{
"begin": 777,
"end": 779,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 762,
"end": 780,
"name": "ADD",
"source": 1
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SUB",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "RETURN",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "ISZERO",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPI",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "REVERT",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "POP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 111,
"end": 133,
"name": "SLOAD",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP2",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "JUMP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 111,
"end": 133,
"name": "MLOAD",
"source": 0
},
{
"begin": 997,
"end": 1022,
"name": "SWAP1",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "DUP2",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "MSTORE",
"source": 1
},
{
"begin": 985,
"end": 987,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 970,
"end": 988,
"name": "ADD",
"source": 1
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 851,
"end": 1028,
"name": "JUMP",
"source": 1
},
{
"begin": 330,
"end": 626,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 330,
"end": 626,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 426,
"end": 431,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 426,
"end": 431,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 426,
"end": 431,
"name": "AND",
"source": 0
},
{
"begin": 412,
"end": 422,
"name": "CALLER",
"source": 0
},
{
"begin": 412,
"end": 431,
"name": "EQ",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 404,
"end": 459,
"name": "JUMPI",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 404,
"end": 459,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 404,
"end": 459,
"name": "DUP2",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "MSTORE",
"source": 0
},
{
"begin": 1235,
"end": 1237,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 404,
"end": 459,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 404,
"end": 459,
"name": "DUP3",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "ADD",
"source": 0
},
{
"begin": 1217,
"end": 1238,
"name": "MSTORE",
"source": 1
},
{
"begin": 1274,
"end": 1276,
"name": "PUSH",
"source": 1,
"value": "17"
},
{
"begin": 1254,
"end": 1272,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1254,
"end": 1272,
"name": "DUP3",
"source": 1
},
{
"begin": 1254,
"end": 1272,
"name": "ADD",
"source": 1
},
{
"begin": 1247,
"end": 1277,
"name": "MSTORE",
"source": 1
},
{
"begin": 1313,
"end": 1338,
"name": "PUSH",
"source": 1,
"value": "4F6E6C79206F776E65722063616E207769746864726177000000000000000000"
},
{
"begin": 1293,
"end": 1311,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1293,
"end": 1311,
"name": "DUP3",
"source": 1
},
{
"begin": 1293,
"end": 1311,
"name": "ADD",
"source": 1
},
{
"begin": 1286,
"end": 1339,
"name": "MSTORE",
"source": 1
},
{
"begin": 1356,
"end": 1374,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1356,
"end": 1374,
"name": "ADD",
"source": 1
},
{
"begin": 404,
"end": 459,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 404,
"end": 459,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 404,
"end": 459,
"name": "MLOAD",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "DUP1",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "SWAP2",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "SUB",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "SWAP1",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "REVERT",
"source": 0
},
{
"begin": 404,
"end": 459,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 404,
"end": 459,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 487,
"end": 494,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 487,
"end": 494,
"name": "SLOAD",
"source": 0
},
{
"begin": 477,
"end": 483,
"name": "DUP3",
"source": 0
},
{
"begin": 477,
"end": 494,
"name": "GT",
"source": 0
},
{
"begin": 477,
"end": 494,
"name": "ISZERO",
"source": 0
},
{
"begin": 469,
"end": 517,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 469,
"end": 517,
"name": "JUMPI",
"source": 0
},
{
"begin": 469,
"end": 517,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 469,
"end": 517,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 469,
"end": 517,
"name": "DUP2",
"source": 0
},
{
"begin": 469,
"end": 517,
"name": "MSTORE",
"source": 0
},
{
"begin": 1587,
"end": 1589,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 469,
"end": 517,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 469,
"end": 517,
"name": "DUP3",
"source": 0
},
{
"begin": 469,
"end": 517,
"name": "ADD",
"source": 0
},
{
"begin": 1569,
"end": 1590,
"name": "MSTORE",
"source": 1
},
{
"begin": 1626,
"end": 1628,
"name": "PUSH",
"source": 1,
"value": "12"
},
{
"begin": 1606,
"end": 1624,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1606,
"end": 1624,
"name": "DUP3",
"source": 1
},
{
"begin": 1606,
"end": 1624,
"name": "ADD",
"source": 1
},
{
"begin": 1599,
"end": 1629,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "496E73756666696369656E742066756E6473"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "70"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 1645,
"end": 1663,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1645,
"end": 1663,
"name": "DUP3",
"source": 1
},
{
"begin": 1645,
"end": 1663,
"name": "ADD",
"source": 1
},
{
"begin": 1638,
"end": 1686,
"name": "MSTORE",
"source": 1
},
{
"begin": 1703,
"end": 1721,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1703,
"end": 1721,
"name": "ADD",
"source": 1
},
{
"begin": 469,
"end": 517,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 1385,
"end": 1727,
"name": "JUMP",
"source": 1
},
{
"begin": 469,
"end": 517,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 469,
"end": 517,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 536,
"end": 561,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 536,
"end": 553,
"name": "DUP3",
"source": 0
},
{
"begin": 536,
"end": 553,
"name": "AND",
"source": 0
},
{
"begin": 536,
"end": 553,
"name": "SWAP1",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "DUP4",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "ISZERO",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 536,
"end": 561,
"name": "MUL",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "SWAP1",
"source": 0
},
{
"begin": 554,
"end": 560,
"name": "DUP5",
"source": 0
},
{
"begin": 554,
"end": 560,
"name": "SWAP1",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 536,
"end": 561,
"name": "DUP2",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "DUP2",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "DUP2",
"source": 0
},
{
"begin": 554,
"end": 560,
"name": "DUP6",
"source": 0
},
{
"begin": 536,
"end": 553,
"name": "DUP9",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "DUP9",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "CALL",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "SWAP4",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "POP",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "POP",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "POP",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "POP",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "ISZERO",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "DUP1",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "ISZERO",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 536,
"end": 561,
"name": "JUMPI",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 536,
"end": 561,
"name": "DUP1",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 536,
"end": 561,
"name": "REVERT",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 536,
"end": 561,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 536,
"end": 561,
"name": "POP",
"source": 0
},
{
"begin": 613,
"end": 619,
"name": "DUP2",
"source": 0
},
{
"begin": 602,
"end": 609,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 602,
"end": 609,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 602,
"end": 619,
"name": "DUP3",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "DUP3",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "SLOAD",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 602,
"end": 619,
"name": "SWAP2",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "SWAP1",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 602,
"end": 619,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 602,
"end": 619,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "SWAP1",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "SWAP2",
"source": 0
},
{
"begin": 602,
"end": 619,
"name": "SSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 330,
"end": 626,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 14,
"end": 141,
"name": "tag",
"source": 1,
"value": "36"
},
{
"begin": 14,
"end": 141,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 75,
"end": 85,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 70,
"end": 73,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 66,
"end": 86,
"name": "SHL",
"source": 1
},
{
"begin": 63,
"end": 64,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 56,
"end": 87,
"name": "MSTORE",
"source": 1
},
{
"begin": 106,
"end": 110,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 103,
"end": 104,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 96,
"end": 111,
"name": "MSTORE",
"source": 1
},
{
"begin": 130,
"end": 134,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 127,
"end": 128,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 120,
"end": 135,
"name": "REVERT",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 146,
"end": 271,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP1",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP3",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "ADD",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP1",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP3",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "GT",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "ISZERO",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 229,
"end": 265,
"name": "JUMPI",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 245,
"end": 263,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "tag",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP3",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP2",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 276,
"end": 638,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 352,
"end": 358,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 360,
"end": 366,
"name": "DUP1",
"source": 1
},
{
"begin": 413,
"end": 415,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 401,
"end": 410,
"name": "DUP4",
"source": 1
},
{
"begin": 392,
"end": 399,
"name": "DUP6",
"source": 1
},
{
"begin": 388,
"end": 411,
"name": "SUB",
"source": 1
},
{
"begin": 384,
"end": 416,
"name": "SLT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "ISZERO",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPI",
"source": 1
},
{
"begin": 429,
"end": 430,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 427,
"name": "DUP1",
"source": 1
},
{
"begin": 419,
"end": 431,
"name": "REVERT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "tag",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "DUP3",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "SWAP2",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 525,
"end": 527,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 510,
"end": 528,
"name": "DUP4",
"source": 1
},
{
"begin": 510,
"end": 528,
"name": "ADD",
"source": 1
},
{
"begin": 497,
"end": 529,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 558,
"end": 589,
"name": "DUP2",
"source": 1
},
{
"begin": 558,
"end": 589,
"name": "AND",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "DUP2",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "EQ",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "PUSH [tag]",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPI",
"source": 1
},
{
"begin": 604,
"end": 605,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 602,
"name": "DUP1",
"source": 1
},
{
"begin": 594,
"end": 606,
"name": "REVERT",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "tag",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 627,
"end": 632,
"name": "DUP1",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "SWAP2",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP1",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1732,
"end": 1860,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 1732,
"end": 1860,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "SUB",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "GT",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "ISZERO",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1817,
"end": 1854,
"name": "JUMPI",
"source": 1
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 1834,
"end": 1852,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"FeeCollector.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"balance()": "b69ef8a8",
"owner()": "8da5cb5b",
"withdraw(uint256,address)": "00f714ce"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"destAddr\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"FeeCollector.sol\":\"FeeCollector\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"FeeCollector.sol\":{\"keccak256\":\"0x9873546f9a3d8579ce8922c9f7a0f0a1876161103b42ff09a83e013ccb657492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a5468eb9bf592a3ce54bddd226ac2546b78ef72f753fc8efd45df430f92055c1\",\"dweb:/ipfs/QmbFvm9PURpRYfRyEqSUgqoa8RVyyPejVkFGBVszPAkEbK\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "FeeCollector.sol:FeeCollector",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5,
"contract": "FeeCollector.sol:FeeCollector",
"label": "balance",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"FeeCollector.sol": {
"ast": {
"absolutePath": "FeeCollector.sol",
"exportedSymbols": {
"FeeCollector": [
57
]
},
"id": 58,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".7"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "FeeCollector",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 57,
"linearizedBaseContracts": [
57
],
"name": "FeeCollector",
"nameLocation": "66:12:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "8da5cb5b",
"id": 3,
"mutability": "mutable",
"name": "owner",
"nameLocation": "100:5:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "85:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "85:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "b69ef8a8",
"id": 5,
"mutability": "mutable",
"name": "balance",
"nameLocation": "126:7:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "111:22:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "111:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"body": {
"id": 13,
"nodeType": "Block",
"src": "158:49:0",
"statements": [
{
"expression": {
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "168:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 9,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "176:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "180:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "176:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "168:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 12,
"nodeType": "ExpressionStatement",
"src": "168:18:0"
}
]
},
"id": 14,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "155:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "158:0:0"
},
"scope": 57,
"src": "144:63:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "244:71:0",
"statements": [
{
"expression": {
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 17,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "254:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"expression": {
"id": 18,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "265:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "269:5:0",
"memberName": "value",
"nodeType": "MemberAccess",
"src": "265:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "254:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21,
"nodeType": "ExpressionStatement",
"src": "254:20:0"
}
]
},
"id": 23,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [],
"src": "224:2:0"
},
"returnParameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [],
"src": "244:0:0"
},
"scope": 57,
"src": "217:98:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 55,
"nodeType": "Block",
"src": "394:232:0",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 31,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "412:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "416:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "412:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 33,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "426:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "412:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "433:25:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
},
"value": "Only owner can withdraw"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
}
],
"id": 30,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "404:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "404:55:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 37,
"nodeType": "ExpressionStatement",
"src": "404:55:0"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 39,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "477:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"id": 40,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "487:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "477:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "496:20:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
},
"value": "Insufficient funds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
}
],
"id": 38,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "469:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "469:48:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 44,
"nodeType": "ExpressionStatement",
"src": "469:48:0"
},
{
"expression": {
"arguments": [
{
"id": 48,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "554:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 45,
"name": "destAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "536:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 47,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "545:8:0",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "536:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "536:25:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 50,
"nodeType": "ExpressionStatement",
"src": "536:25:0"
},
{
"expression": {
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 51,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "602:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"id": 52,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "613:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "602:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 54,
"nodeType": "ExpressionStatement",
"src": "602:17:0"
}
]
},
"functionSelector": "00f714ce",
"id": 56,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "339:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"mutability": "mutable",
"name": "amount",
"nameLocation": "353:6:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "348:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "348:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "destAddr",
"nameLocation": "377:8:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "361:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "361:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "347:39:0"
},
"returnParameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [],
"src": "394:0:0"
},
"scope": 57,
"src": "330:296:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 58,
"src": "57:571:0",
"usedErrors": []
}
],
"src": "0:628:0"
},
"id": 0
}
}
}
}
{
"id": "4e5748c4294c65b9c52f8c67c6255e3a",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": "pragma solidity ^0.8.7;\n// SPDX-License-Identifier: MIT\n\ncontract FeeCollector {\n address public owner;\n uint256 public balance;\n \n constructor() {\n owner = msg.sender; // sözleşmeyi dağıtan adres bilgileri\n }\n \n receive() payable external {\n balance += msg.value; \n }\n \n \n function withdraw(uint amount, address payable destAddr) public {\n require(msg.sender == owner, \"Sadece sozlesme sahibi cekebilir\");\n require(amount <= balance, \"Yetersiz bakiye!\");\n destAddr.transfer(amount);\n balance -= amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"FeeCollector.sol": {
"FeeCollector": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"FeeCollector.sol\":57:590 contract FeeCollector {... */\n mstore(0x40, 0x80)\n /* \"FeeCollector.sol\":144:235 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"FeeCollector.sol\":168:173 owner */\n 0x00\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"FeeCollector.sol\":176:186 msg.sender */\n caller\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n or\n swap1\n sstore\n /* \"FeeCollector.sol\":57:590 contract FeeCollector {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"FeeCollector.sol\":57:590 contract FeeCollector {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf714ce\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xb69ef8a8\n eq\n tag_5\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n jumpi(tag_2, calldatasize)\n /* \"FeeCollector.sol\":293:302 msg.value */\n callvalue\n /* \"FeeCollector.sol\":282:289 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":282:302 balance += msg.value */\n dup3\n dup3\n sload\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n stop\n /* \"FeeCollector.sol\":57:590 contract FeeCollector {... */\n tag_2:\n 0x00\n dup1\n revert\n /* \"FeeCollector.sol\":325:588 function withdraw(uint amount, address payable destAddr) public {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\n tag_10:\n pop\n tag_11\n tag_12\n calldatasize\n 0x04\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n stop\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_4:\n callvalue\n dup1\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n pop\n sload(0x00)\n tag_16\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_16:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":807:839 */\n swap1\n swap2\n and\n /* \"#utility.yul\":789:840 */\n dup2\n mstore\n /* \"#utility.yul\":777:779 */\n 0x20\n /* \"#utility.yul\":762:780 */\n add\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_18:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_5:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n sload(0x01)\n dup2\n jump\n tag_21:\n mload(0x40)\n /* \"#utility.yul\":997:1022 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":985:987 */\n 0x20\n /* \"#utility.yul\":970:988 */\n add\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_18\n /* \"#utility.yul\":851:1028 */\n jump\n /* \"FeeCollector.sol\":325:588 function withdraw(uint amount, address payable destAddr) public {... */\n tag_14:\n /* \"FeeCollector.sol\":421:426 owner */\n and(sub(shl(0xa0, 0x01), 0x01), sload(0x00))\n /* \"FeeCollector.sol\":407:417 msg.sender */\n caller\n /* \"FeeCollector.sol\":407:426 msg.sender == owner */\n eq\n /* \"FeeCollector.sol\":399:463 require(msg.sender == owner, \"Sadece sozlesme sahibi cekebilir\") */\n tag_26\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1235:1237 */\n 0x20\n /* \"FeeCollector.sol\":399:463 require(msg.sender == owner, \"Sadece sozlesme sahibi cekebilir\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1217:1238 */\n dup2\n swap1\n mstore\n /* \"#utility.yul\":1254:1272 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1247:1277 */\n mstore\n /* \"#utility.yul\":1313:1347 */\n 0x53616465636520736f7a6c65736d65207361686962692063656b6562696c6972\n /* \"#utility.yul\":1293:1311 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1286:1348 */\n mstore\n /* \"#utility.yul\":1365:1383 */\n 0x64\n add\n /* \"FeeCollector.sol\":399:463 require(msg.sender == owner, \"Sadece sozlesme sahibi cekebilir\") */\n tag_27:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_26:\n /* \"FeeCollector.sol\":491:498 balance */\n sload(0x01)\n /* \"FeeCollector.sol\":481:487 amount */\n dup3\n /* \"FeeCollector.sol\":481:498 amount <= balance */\n gt\n iszero\n /* \"FeeCollector.sol\":473:519 require(amount <= balance, \"Yetersiz bakiye!\") */\n tag_29\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1596:1598 */\n 0x20\n /* \"FeeCollector.sol\":473:519 require(amount <= balance, \"Yetersiz bakiye!\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1578:1599 */\n mstore\n /* \"#utility.yul\":1635:1637 */\n 0x10\n /* \"#utility.yul\":1615:1633 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1608:1638 */\n mstore\n shl(0x80, 0x596574657273697a2062616b69796521)\n /* \"#utility.yul\":1654:1672 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1647:1693 */\n mstore\n /* \"#utility.yul\":1710:1728 */\n 0x64\n add\n /* \"FeeCollector.sol\":473:519 require(amount <= balance, \"Yetersiz bakiye!\") */\n tag_27\n /* \"#utility.yul\":1394:1734 */\n jump\n /* \"FeeCollector.sol\":473:519 require(amount <= balance, \"Yetersiz bakiye!\") */\n tag_29:\n /* \"FeeCollector.sol\":529:554 destAddr.transfer(amount) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"FeeCollector.sol\":529:546 destAddr.transfer */\n dup3\n and\n swap1\n /* \"FeeCollector.sol\":529:554 destAddr.transfer(amount) */\n dup4\n iszero\n 0x08fc\n mul\n swap1\n /* \"FeeCollector.sol\":547:553 amount */\n dup5\n swap1\n /* \"FeeCollector.sol\":529:554 destAddr.transfer(amount) */\n 0x00\n dup2\n dup2\n dup2\n /* \"FeeCollector.sol\":547:553 amount */\n dup6\n /* \"FeeCollector.sol\":529:546 destAddr.transfer */\n dup9\n /* \"FeeCollector.sol\":529:554 destAddr.transfer(amount) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_33\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_33:\n pop\n /* \"FeeCollector.sol\":575:581 amount */\n dup2\n /* \"FeeCollector.sol\":564:571 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":564:581 balance -= amount */\n dup3\n dup3\n sload\n tag_34\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n swap1\n swap2\n sstore\n pop\n pop\n pop\n pop\n /* \"FeeCollector.sol\":325:588 function withdraw(uint amount, address payable destAddr) public {... */\n jump\t// out\n /* \"#utility.yul\":14:141 */\n tag_36:\n /* \"#utility.yul\":75:85 */\n 0x4e487b71\n /* \"#utility.yul\":70:73 */\n 0xe0\n /* \"#utility.yul\":66:86 */\n shl\n /* \"#utility.yul\":63:64 */\n 0x00\n /* \"#utility.yul\":56:87 */\n mstore\n /* \"#utility.yul\":106:110 */\n 0x11\n /* \"#utility.yul\":103:104 */\n 0x04\n /* \"#utility.yul\":96:111 */\n mstore\n /* \"#utility.yul\":130:134 */\n 0x24\n /* \"#utility.yul\":127:128 */\n 0x00\n /* \"#utility.yul\":120:135 */\n revert\n /* \"#utility.yul\":146:271 */\n tag_9:\n /* \"#utility.yul\":211:220 */\n dup1\n dup3\n add\n /* \"#utility.yul\":232:242 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":229:265 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":245:263 */\n tag_41\n tag_36\n jump\t// in\n tag_41:\n /* \"#utility.yul\":146:271 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":276:638 */\n tag_13:\n /* \"#utility.yul\":352:358 */\n 0x00\n /* \"#utility.yul\":360:366 */\n dup1\n /* \"#utility.yul\":413:415 */\n 0x40\n /* \"#utility.yul\":401:410 */\n dup4\n /* \"#utility.yul\":392:399 */\n dup6\n /* \"#utility.yul\":388:411 */\n sub\n /* \"#utility.yul\":384:416 */\n slt\n /* \"#utility.yul\":381:433 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":429:430 */\n 0x00\n /* \"#utility.yul\":426:427 */\n dup1\n /* \"#utility.yul\":419:431 */\n revert\n /* \"#utility.yul\":381:433 */\n tag_43:\n /* \"#utility.yul\":452:475 */\n dup3\n calldataload\n swap2\n pop\n /* \"#utility.yul\":525:527 */\n 0x20\n /* \"#utility.yul\":510:528 */\n dup4\n add\n /* \"#utility.yul\":497:529 */\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":558:589 */\n dup2\n and\n /* \"#utility.yul\":548:590 */\n dup2\n eq\n /* \"#utility.yul\":538:608 */\n tag_44\n jumpi\n /* \"#utility.yul\":604:605 */\n 0x00\n /* \"#utility.yul\":601:602 */\n dup1\n /* \"#utility.yul\":594:606 */\n revert\n /* \"#utility.yul\":538:608 */\n tag_44:\n /* \"#utility.yul\":627:632 */\n dup1\n /* \"#utility.yul\":617:632 */\n swap2\n pop\n pop\n /* \"#utility.yul\":276:638 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1739:1867 */\n tag_35:\n /* \"#utility.yul\":1806:1815 */\n dup2\n dup2\n sub\n /* \"#utility.yul\":1827:1838 */\n dup2\n dup2\n gt\n /* \"#utility.yul\":1824:1861 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":1841:1859 */\n tag_41\n tag_36\n jump\t// in\n\n auxdata: 0xa2646970667358221220d17755ca28c7f9759b10143874033ac6bb6c3c442ebfc9215f370dca831a709764736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610288806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ea565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610203565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820181905260248201527f53616465636520736f7a6c65736d65207361686962692063656b6562696c697260448201526064015b60405180910390fd5b6001548211156101825760405162461bcd60e51b815260206004820152601060248201526f596574657273697a2062616b6979652160801b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101b8573d6000803e3d6000fd5b5081600160008282546101cb919061023f565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101fd576101fd6101d4565b92915050565b6000806040838503121561021657600080fd5b8235915060208301356001600160a01b038116811461023457600080fd5b809150509250929050565b818103818111156101fd576101fd6101d456fea2646970667358221220d17755ca28c7f9759b10143874033ac6bb6c3c442ebfc9215f370dca831a709764736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x288 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x203 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616465636520736F7A6C65736D65207361686962692063656B6562696C6972 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x596574657273697A2062616B69796521 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 PUSH24 0x55CA28C7F9759B10143874033AC6BB6C3C442EBFC9215F37 0xD 0xCA DUP4 BYTE PUSH17 0x9764736F6C634300081100330000000000 ",
"sourceMap": "57:533:0:-:0;;;144:91;;;;;;;;;-1:-1:-1;168:5:0;:18;;-1:-1:-1;;;;;;168:18:0;176:10;168:18;;;57:533;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 515,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 490,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 575,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 468,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1869:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1297:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:18:1"
},
{
"hexValue": "53616465636520736f7a6c65736d65207361686962692063656b6562696c6972",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1313:34:1",
"type": "",
"value": "Sadece sozlesme sahibi cekebilir"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1286:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1286:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "1286:62:1"
},
{
"nodeType": "YulAssignment",
"src": "1357:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1369:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1380:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1365:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1357:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1568:166:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1585:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1578:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1578:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1578:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1619:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1630:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1615:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1615:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1635:2:1",
"type": "",
"value": "16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1608:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1608:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1608:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1658:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1669:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1654:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1654:18:1"
},
{
"hexValue": "596574657273697a2062616b69796521",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1674:18:1",
"type": "",
"value": "Yetersiz bakiye!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1647:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1647:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "1647:46:1"
},
{
"nodeType": "YulAssignment",
"src": "1702:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1725:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1710:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1710:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1702:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1545:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1559:4:1",
"type": ""
}
],
"src": "1394:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1788:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1798:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1810:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1813:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1806:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1806:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1798:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1839:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1841:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1841:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1841:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1830:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1836:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1827:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1827:11:1"
},
"nodeType": "YulIf",
"src": "1824:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1770:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1773:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1779:4:1",
"type": ""
}
],
"src": "1739:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Sadece sozlesme sahibi cekebilir\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Yetersiz bakiye!\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ea565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610203565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820181905260248201527f53616465636520736f7a6c65736d65207361686962692063656b6562696c697260448201526064015b60405180910390fd5b6001548211156101825760405162461bcd60e51b815260206004820152601060248201526f596574657273697a2062616b6979652160801b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101b8573d6000803e3d6000fd5b5081600160008282546101cb919061023f565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101fd576101fd6101d4565b92915050565b6000806040838503121561021657600080fd5b8235915060208301356001600160a01b038116811461023457600080fd5b809150509250929050565b818103818111156101fd576101fd6101d456fea2646970667358221220d17755ca28c7f9759b10143874033ac6bb6c3c442ebfc9215f370dca831a709764736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x203 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616465636520736F7A6C65736D65207361686962692063656B6562696C6972 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x596574657273697A2062616B69796521 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 PUSH24 0x55CA28C7F9759B10143874033AC6BB6C3C442EBFC9215F37 0xD 0xCA DUP4 BYTE PUSH17 0x9764736F6C634300081100330000000000 ",
"sourceMap": "57:533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:9;282:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:533;;;;325:263;;;;;;;;;;-1:-1:-1;325:263:0;;;;;:::i;:::-;;:::i;:::-;;85:20;;;;;;;;;;-1:-1:-1;85:20:0;;;;-1:-1:-1;;;;;85:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;85:20:0;;;;;;;;111:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;111:22:0;851:177:1;325:263:0;421:5;;-1:-1:-1;;;;;421:5:0;407:10;:19;399:64;;;;-1:-1:-1;;;399:64:0;;1235:2:1;399:64:0;;;1217:21:1;;;1254:18;;;1247:30;1313:34;1293:18;;;1286:62;1365:18;;399:64:0;;;;;;;;;491:7;;481:6;:17;;473:46;;;;-1:-1:-1;;;473:46:0;;1596:2:1;473:46:0;;;1578:21:1;1635:2;1615:18;;;1608:30;-1:-1:-1;;;1654:18:1;;;1647:46;1710:18;;473:46:0;1394:340:1;473:46:0;529:25;;-1:-1:-1;;;;;529:17:0;;;:25;;;;;547:6;;529:25;;;;547:6;529:17;:25;;;;;;;;;;;;;;;;;;;;;575:6;564:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;325:263:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1739:128::-;1806:9;;;1827:11;;;1824:37;;;1841:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "129600",
"executionCost": "24412",
"totalCost": "154012"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 590,
"name": "MSTORE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "ISZERO",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPI",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "REVERT",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 168,
"end": 173,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 168,
"end": 186,
"name": "DUP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 168,
"end": 186,
"name": "AND",
"source": 0
},
{
"begin": 176,
"end": 186,
"name": "CALLER",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "OR",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SSTORE",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 590,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 590,
"name": "CODECOPY",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 590,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220d17755ca28c7f9759b10143874033ac6bb6c3c442ebfc9215f370dca831a709764736f6c63430008110033",
".code": [
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 590,
"name": "MSTORE",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 590,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "LT",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 590,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 590,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 57,
"end": 590,
"name": "SHR",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "F714CE"
},
{
"begin": 57,
"end": 590,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 57,
"end": 590,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 57,
"end": 590,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 590,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "B69EF8A8"
},
{
"begin": 57,
"end": 590,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 57,
"end": 590,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 590,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "REVERT",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 590,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 590,
"name": "JUMPI",
"source": 0
},
{
"begin": 293,
"end": 302,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SLOAD",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "SWAP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 282,
"end": 302,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SSTORE",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "STOP",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 590,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 590,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 590,
"name": "REVERT",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 325,
"end": 588,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "DUP1",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "ISZERO",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 325,
"end": 588,
"name": "JUMPI",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 325,
"end": 588,
"name": "DUP1",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "REVERT",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 325,
"end": 588,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 325,
"end": 588,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 325,
"end": 588,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 325,
"end": 588,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 325,
"end": 588,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 325,
"end": 588,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 325,
"end": 588,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 325,
"end": 588,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 325,
"end": 588,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 588,
"name": "STOP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "ISZERO",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPI",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "REVERT",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "SLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "AND",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "JUMP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 807,
"end": 839,
"name": "SWAP1",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "SWAP2",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "AND",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "DUP2",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "MSTORE",
"source": 1
},
{
"begin": 777,
"end": 779,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 762,
"end": 780,
"name": "ADD",
"source": 1
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SUB",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "RETURN",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "ISZERO",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPI",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "REVERT",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "POP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 111,
"end": 133,
"name": "SLOAD",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP2",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "JUMP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 111,
"end": 133,
"name": "MLOAD",
"source": 0
},
{
"begin": 997,
"end": 1022,
"name": "SWAP1",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "DUP2",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "MSTORE",
"source": 1
},
{
"begin": 985,
"end": 987,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 970,
"end": 988,
"name": "ADD",
"source": 1
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 851,
"end": 1028,
"name": "JUMP",
"source": 1
},
{
"begin": 325,
"end": 588,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 325,
"end": 588,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 421,
"end": 426,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 421,
"end": 426,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 421,
"end": 426,
"name": "AND",
"source": 0
},
{
"begin": 407,
"end": 417,
"name": "CALLER",
"source": 0
},
{
"begin": 407,
"end": 426,
"name": "EQ",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 399,
"end": 463,
"name": "JUMPI",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 399,
"end": 463,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 399,
"end": 463,
"name": "DUP2",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "MSTORE",
"source": 0
},
{
"begin": 1235,
"end": 1237,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 399,
"end": 463,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 399,
"end": 463,
"name": "DUP3",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "ADD",
"source": 0
},
{
"begin": 1217,
"end": 1238,
"name": "DUP2",
"source": 1
},
{
"begin": 1217,
"end": 1238,
"name": "SWAP1",
"source": 1
},
{
"begin": 1217,
"end": 1238,
"name": "MSTORE",
"source": 1
},
{
"begin": 1254,
"end": 1272,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1254,
"end": 1272,
"name": "DUP3",
"source": 1
},
{
"begin": 1254,
"end": 1272,
"name": "ADD",
"source": 1
},
{
"begin": 1247,
"end": 1277,
"name": "MSTORE",
"source": 1
},
{
"begin": 1313,
"end": 1347,
"name": "PUSH",
"source": 1,
"value": "53616465636520736F7A6C65736D65207361686962692063656B6562696C6972"
},
{
"begin": 1293,
"end": 1311,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1293,
"end": 1311,
"name": "DUP3",
"source": 1
},
{
"begin": 1293,
"end": 1311,
"name": "ADD",
"source": 1
},
{
"begin": 1286,
"end": 1348,
"name": "MSTORE",
"source": 1
},
{
"begin": 1365,
"end": 1383,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1365,
"end": 1383,
"name": "ADD",
"source": 1
},
{
"begin": 399,
"end": 463,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 399,
"end": 463,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 399,
"end": 463,
"name": "MLOAD",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "DUP1",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "SWAP2",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "SUB",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "SWAP1",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "REVERT",
"source": 0
},
{
"begin": 399,
"end": 463,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 399,
"end": 463,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 491,
"end": 498,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 491,
"end": 498,
"name": "SLOAD",
"source": 0
},
{
"begin": 481,
"end": 487,
"name": "DUP3",
"source": 0
},
{
"begin": 481,
"end": 498,
"name": "GT",
"source": 0
},
{
"begin": 481,
"end": 498,
"name": "ISZERO",
"source": 0
},
{
"begin": 473,
"end": 519,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 473,
"end": 519,
"name": "JUMPI",
"source": 0
},
{
"begin": 473,
"end": 519,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 473,
"end": 519,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 473,
"end": 519,
"name": "DUP2",
"source": 0
},
{
"begin": 473,
"end": 519,
"name": "MSTORE",
"source": 0
},
{
"begin": 1596,
"end": 1598,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 473,
"end": 519,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 473,
"end": 519,
"name": "DUP3",
"source": 0
},
{
"begin": 473,
"end": 519,
"name": "ADD",
"source": 0
},
{
"begin": 1578,
"end": 1599,
"name": "MSTORE",
"source": 1
},
{
"begin": 1635,
"end": 1637,
"name": "PUSH",
"source": 1,
"value": "10"
},
{
"begin": 1615,
"end": 1633,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1615,
"end": 1633,
"name": "DUP3",
"source": 1
},
{
"begin": 1615,
"end": 1633,
"name": "ADD",
"source": 1
},
{
"begin": 1608,
"end": 1638,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "596574657273697A2062616B69796521"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "80"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 1654,
"end": 1672,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1654,
"end": 1672,
"name": "DUP3",
"source": 1
},
{
"begin": 1654,
"end": 1672,
"name": "ADD",
"source": 1
},
{
"begin": 1647,
"end": 1693,
"name": "MSTORE",
"source": 1
},
{
"begin": 1710,
"end": 1728,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1710,
"end": 1728,
"name": "ADD",
"source": 1
},
{
"begin": 473,
"end": 519,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 1394,
"end": 1734,
"name": "JUMP",
"source": 1
},
{
"begin": 473,
"end": 519,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 473,
"end": 519,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 529,
"end": 554,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 529,
"end": 546,
"name": "DUP3",
"source": 0
},
{
"begin": 529,
"end": 546,
"name": "AND",
"source": 0
},
{
"begin": 529,
"end": 546,
"name": "SWAP1",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "DUP4",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "ISZERO",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 529,
"end": 554,
"name": "MUL",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "SWAP1",
"source": 0
},
{
"begin": 547,
"end": 553,
"name": "DUP5",
"source": 0
},
{
"begin": 547,
"end": 553,
"name": "SWAP1",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 529,
"end": 554,
"name": "DUP2",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "DUP2",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "DUP2",
"source": 0
},
{
"begin": 547,
"end": 553,
"name": "DUP6",
"source": 0
},
{
"begin": 529,
"end": 546,
"name": "DUP9",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "DUP9",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "CALL",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "SWAP4",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "POP",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "POP",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "POP",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "POP",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "ISZERO",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "DUP1",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "ISZERO",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 529,
"end": 554,
"name": "JUMPI",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 529,
"end": 554,
"name": "DUP1",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 529,
"end": 554,
"name": "REVERT",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 529,
"end": 554,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 529,
"end": 554,
"name": "POP",
"source": 0
},
{
"begin": 575,
"end": 581,
"name": "DUP2",
"source": 0
},
{
"begin": 564,
"end": 571,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 564,
"end": 571,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 564,
"end": 581,
"name": "DUP3",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "DUP3",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "SLOAD",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 564,
"end": 581,
"name": "SWAP2",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "SWAP1",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 564,
"end": 581,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 564,
"end": 581,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "SWAP1",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "SWAP2",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "SSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 325,
"end": 588,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 14,
"end": 141,
"name": "tag",
"source": 1,
"value": "36"
},
{
"begin": 14,
"end": 141,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 75,
"end": 85,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 70,
"end": 73,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 66,
"end": 86,
"name": "SHL",
"source": 1
},
{
"begin": 63,
"end": 64,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 56,
"end": 87,
"name": "MSTORE",
"source": 1
},
{
"begin": 106,
"end": 110,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 103,
"end": 104,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 96,
"end": 111,
"name": "MSTORE",
"source": 1
},
{
"begin": 130,
"end": 134,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 127,
"end": 128,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 120,
"end": 135,
"name": "REVERT",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 146,
"end": 271,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP1",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP3",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "ADD",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP1",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP3",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "GT",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "ISZERO",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 229,
"end": 265,
"name": "JUMPI",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 245,
"end": 263,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "tag",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP3",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP2",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 276,
"end": 638,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 352,
"end": 358,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 360,
"end": 366,
"name": "DUP1",
"source": 1
},
{
"begin": 413,
"end": 415,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 401,
"end": 410,
"name": "DUP4",
"source": 1
},
{
"begin": 392,
"end": 399,
"name": "DUP6",
"source": 1
},
{
"begin": 388,
"end": 411,
"name": "SUB",
"source": 1
},
{
"begin": 384,
"end": 416,
"name": "SLT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "ISZERO",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPI",
"source": 1
},
{
"begin": 429,
"end": 430,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 427,
"name": "DUP1",
"source": 1
},
{
"begin": 419,
"end": 431,
"name": "REVERT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "tag",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "DUP3",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "SWAP2",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 525,
"end": 527,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 510,
"end": 528,
"name": "DUP4",
"source": 1
},
{
"begin": 510,
"end": 528,
"name": "ADD",
"source": 1
},
{
"begin": 497,
"end": 529,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 558,
"end": 589,
"name": "DUP2",
"source": 1
},
{
"begin": 558,
"end": 589,
"name": "AND",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "DUP2",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "EQ",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "PUSH [tag]",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPI",
"source": 1
},
{
"begin": 604,
"end": 605,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 602,
"name": "DUP1",
"source": 1
},
{
"begin": 594,
"end": 606,
"name": "REVERT",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "tag",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 627,
"end": 632,
"name": "DUP1",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "SWAP2",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP1",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1739,
"end": 1867,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 1739,
"end": 1867,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1806,
"end": 1815,
"name": "DUP2",
"source": 1
},
{
"begin": 1806,
"end": 1815,
"name": "DUP2",
"source": 1
},
{
"begin": 1806,
"end": 1815,
"name": "SUB",
"source": 1
},
{
"begin": 1827,
"end": 1838,
"name": "DUP2",
"source": 1
},
{
"begin": 1827,
"end": 1838,
"name": "DUP2",
"source": 1
},
{
"begin": 1827,
"end": 1838,
"name": "GT",
"source": 1
},
{
"begin": 1824,
"end": 1861,
"name": "ISZERO",
"source": 1
},
{
"begin": 1824,
"end": 1861,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1824,
"end": 1861,
"name": "JUMPI",
"source": 1
},
{
"begin": 1841,
"end": 1859,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1841,
"end": 1859,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 1841,
"end": 1859,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"FeeCollector.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"balance()": "b69ef8a8",
"owner()": "8da5cb5b",
"withdraw(uint256,address)": "00f714ce"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"destAddr\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"FeeCollector.sol\":\"FeeCollector\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"FeeCollector.sol\":{\"keccak256\":\"0xa306c1666bb709f53166253f4ed8bdf621f89c5aea86718e6e6c03de170e3ebf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6bc401a29efe593dd3f7e81c1b451d61d767f938505f1b4543e5cca8a321fecc\",\"dweb:/ipfs/Qme6oW1CSmLuUFJ389Y8ZJqBJYnfSh3BrLbc7bDP5i3XCF\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "FeeCollector.sol:FeeCollector",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5,
"contract": "FeeCollector.sol:FeeCollector",
"label": "balance",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"FeeCollector.sol": {
"ast": {
"absolutePath": "FeeCollector.sol",
"exportedSymbols": {
"FeeCollector": [
57
]
},
"id": 58,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".7"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "FeeCollector",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 57,
"linearizedBaseContracts": [
57
],
"name": "FeeCollector",
"nameLocation": "66:12:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "8da5cb5b",
"id": 3,
"mutability": "mutable",
"name": "owner",
"nameLocation": "100:5:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "85:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "85:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "b69ef8a8",
"id": 5,
"mutability": "mutable",
"name": "balance",
"nameLocation": "126:7:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "111:22:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "111:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"body": {
"id": 13,
"nodeType": "Block",
"src": "158:77:0",
"statements": [
{
"expression": {
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "168:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 9,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "176:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "180:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "176:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "168:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 12,
"nodeType": "ExpressionStatement",
"src": "168:18:0"
}
]
},
"id": 14,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "155:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "158:0:0"
},
"scope": 57,
"src": "144:91:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "272:38:0",
"statements": [
{
"expression": {
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 17,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "282:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"expression": {
"id": 18,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "293:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "297:5:0",
"memberName": "value",
"nodeType": "MemberAccess",
"src": "293:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "282:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21,
"nodeType": "ExpressionStatement",
"src": "282:20:0"
}
]
},
"id": 23,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [],
"src": "252:2:0"
},
"returnParameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:0:0"
},
"scope": 57,
"src": "245:65:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 55,
"nodeType": "Block",
"src": "389:199:0",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 31,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "407:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "411:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "407:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 33,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "421:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "407:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "53616465636520736f7a6c65736d65207361686962692063656b6562696c6972",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "428:34:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95",
"typeString": "literal_string \"Sadece sozlesme sahibi cekebilir\""
},
"value": "Sadece sozlesme sahibi cekebilir"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95",
"typeString": "literal_string \"Sadece sozlesme sahibi cekebilir\""
}
],
"id": 30,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "399:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "399:64:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 37,
"nodeType": "ExpressionStatement",
"src": "399:64:0"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 39,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "481:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"id": 40,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "491:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "481:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "596574657273697a2062616b69796521",
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "500:18:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f",
"typeString": "literal_string \"Yetersiz bakiye!\""
},
"value": "Yetersiz bakiye!"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f",
"typeString": "literal_string \"Yetersiz bakiye!\""
}
],
"id": 38,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "473:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "473:46:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 44,
"nodeType": "ExpressionStatement",
"src": "473:46:0"
},
{
"expression": {
"arguments": [
{
"id": 48,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "547:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 45,
"name": "destAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "529:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 47,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "538:8:0",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "529:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "529:25:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 50,
"nodeType": "ExpressionStatement",
"src": "529:25:0"
},
{
"expression": {
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 51,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "564:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"id": 52,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "575:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "564:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 54,
"nodeType": "ExpressionStatement",
"src": "564:17:0"
}
]
},
"functionSelector": "00f714ce",
"id": 56,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "334:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"mutability": "mutable",
"name": "amount",
"nameLocation": "348:6:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "343:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "343:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "destAddr",
"nameLocation": "372:8:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "356:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "356:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "342:39:0"
},
"returnParameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [],
"src": "389:0:0"
},
"scope": 57,
"src": "325:263:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 58,
"src": "57:533:0",
"usedErrors": []
}
],
"src": "0:590:0"
},
"id": 0
}
}
}
}
{
"id": "5d333ddb47117f6d6121fde4ea7214cf",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": "pragma solidity ^0.8.7;\n// SPDX-License-Identifier: MIT\n\ncontract FeeCollector {\n address public owner;\n uint256 public balance;\n \n constructor() {\n owner = msg.sender; // sözleşmeyi dağıtan adres bilgileri\n }\n \n receive() payable external {\n balance += msg.value; \n }\n \n \n function withdraw(uint amount, address payable destAddr) public {\n require(msg.sender == owner, \"Only owner can withdraw\");\n require(amount <= balance, \"Insufficient funds\");\n \n destAddr.transfer(amount); // send funds to given address\n balance -= amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"FeeCollector.sol": {
"FeeCollector": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"FeeCollector.sol\":57:623 contract FeeCollector {... */\n mstore(0x40, 0x80)\n /* \"FeeCollector.sol\":144:235 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"FeeCollector.sol\":168:173 owner */\n 0x00\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"FeeCollector.sol\":176:186 msg.sender */\n caller\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n or\n swap1\n sstore\n /* \"FeeCollector.sol\":57:623 contract FeeCollector {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"FeeCollector.sol\":57:623 contract FeeCollector {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf714ce\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xb69ef8a8\n eq\n tag_5\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n jumpi(tag_2, calldatasize)\n /* \"FeeCollector.sol\":293:302 msg.value */\n callvalue\n /* \"FeeCollector.sol\":282:289 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":282:302 balance += msg.value */\n dup3\n dup3\n sload\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n stop\n /* \"FeeCollector.sol\":57:623 contract FeeCollector {... */\n tag_2:\n 0x00\n dup1\n revert\n /* \"FeeCollector.sol\":325:621 function withdraw(uint amount, address payable destAddr) public {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\n tag_10:\n pop\n tag_11\n tag_12\n calldatasize\n 0x04\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n stop\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_4:\n callvalue\n dup1\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n pop\n sload(0x00)\n tag_16\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_16:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":807:839 */\n swap1\n swap2\n and\n /* \"#utility.yul\":789:840 */\n dup2\n mstore\n /* \"#utility.yul\":777:779 */\n 0x20\n /* \"#utility.yul\":762:780 */\n add\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_18:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_5:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n sload(0x01)\n dup2\n jump\n tag_21:\n mload(0x40)\n /* \"#utility.yul\":997:1022 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":985:987 */\n 0x20\n /* \"#utility.yul\":970:988 */\n add\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_18\n /* \"#utility.yul\":851:1028 */\n jump\n /* \"FeeCollector.sol\":325:621 function withdraw(uint amount, address payable destAddr) public {... */\n tag_14:\n /* \"FeeCollector.sol\":421:426 owner */\n and(sub(shl(0xa0, 0x01), 0x01), sload(0x00))\n /* \"FeeCollector.sol\":407:417 msg.sender */\n caller\n /* \"FeeCollector.sol\":407:426 msg.sender == owner */\n eq\n /* \"FeeCollector.sol\":399:454 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_26\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1235:1237 */\n 0x20\n /* \"FeeCollector.sol\":399:454 require(msg.sender == owner, \"Only owner can withdraw\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1217:1238 */\n mstore\n /* \"#utility.yul\":1274:1276 */\n 0x17\n /* \"#utility.yul\":1254:1272 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1247:1277 */\n mstore\n /* \"#utility.yul\":1313:1338 */\n 0x4f6e6c79206f776e65722063616e207769746864726177000000000000000000\n /* \"#utility.yul\":1293:1311 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1286:1339 */\n mstore\n /* \"#utility.yul\":1356:1374 */\n 0x64\n add\n /* \"FeeCollector.sol\":399:454 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_27:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_26:\n /* \"FeeCollector.sol\":482:489 balance */\n sload(0x01)\n /* \"FeeCollector.sol\":472:478 amount */\n dup3\n /* \"FeeCollector.sol\":472:489 amount <= balance */\n gt\n iszero\n /* \"FeeCollector.sol\":464:512 require(amount <= balance, \"Insufficient funds\") */\n tag_29\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1587:1589 */\n 0x20\n /* \"FeeCollector.sol\":464:512 require(amount <= balance, \"Insufficient funds\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1569:1590 */\n mstore\n /* \"#utility.yul\":1626:1628 */\n 0x12\n /* \"#utility.yul\":1606:1624 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1599:1629 */\n mstore\n shl(0x70, 0x496e73756666696369656e742066756e6473)\n /* \"#utility.yul\":1645:1663 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1638:1686 */\n mstore\n /* \"#utility.yul\":1703:1721 */\n 0x64\n add\n /* \"FeeCollector.sol\":464:512 require(amount <= balance, \"Insufficient funds\") */\n tag_27\n /* \"#utility.yul\":1385:1727 */\n jump\n /* \"FeeCollector.sol\":464:512 require(amount <= balance, \"Insufficient funds\") */\n tag_29:\n /* \"FeeCollector.sol\":531:556 destAddr.transfer(amount) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"FeeCollector.sol\":531:548 destAddr.transfer */\n dup3\n and\n swap1\n /* \"FeeCollector.sol\":531:556 destAddr.transfer(amount) */\n dup4\n iszero\n 0x08fc\n mul\n swap1\n /* \"FeeCollector.sol\":549:555 amount */\n dup5\n swap1\n /* \"FeeCollector.sol\":531:556 destAddr.transfer(amount) */\n 0x00\n dup2\n dup2\n dup2\n /* \"FeeCollector.sol\":549:555 amount */\n dup6\n /* \"FeeCollector.sol\":531:548 destAddr.transfer */\n dup9\n /* \"FeeCollector.sol\":531:556 destAddr.transfer(amount) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_33\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_33:\n pop\n /* \"FeeCollector.sol\":608:614 amount */\n dup2\n /* \"FeeCollector.sol\":597:604 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":597:614 balance -= amount */\n dup3\n dup3\n sload\n tag_34\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n swap1\n swap2\n sstore\n pop\n pop\n pop\n pop\n /* \"FeeCollector.sol\":325:621 function withdraw(uint amount, address payable destAddr) public {... */\n jump\t// out\n /* \"#utility.yul\":14:141 */\n tag_36:\n /* \"#utility.yul\":75:85 */\n 0x4e487b71\n /* \"#utility.yul\":70:73 */\n 0xe0\n /* \"#utility.yul\":66:86 */\n shl\n /* \"#utility.yul\":63:64 */\n 0x00\n /* \"#utility.yul\":56:87 */\n mstore\n /* \"#utility.yul\":106:110 */\n 0x11\n /* \"#utility.yul\":103:104 */\n 0x04\n /* \"#utility.yul\":96:111 */\n mstore\n /* \"#utility.yul\":130:134 */\n 0x24\n /* \"#utility.yul\":127:128 */\n 0x00\n /* \"#utility.yul\":120:135 */\n revert\n /* \"#utility.yul\":146:271 */\n tag_9:\n /* \"#utility.yul\":211:220 */\n dup1\n dup3\n add\n /* \"#utility.yul\":232:242 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":229:265 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":245:263 */\n tag_41\n tag_36\n jump\t// in\n tag_41:\n /* \"#utility.yul\":146:271 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":276:638 */\n tag_13:\n /* \"#utility.yul\":352:358 */\n 0x00\n /* \"#utility.yul\":360:366 */\n dup1\n /* \"#utility.yul\":413:415 */\n 0x40\n /* \"#utility.yul\":401:410 */\n dup4\n /* \"#utility.yul\":392:399 */\n dup6\n /* \"#utility.yul\":388:411 */\n sub\n /* \"#utility.yul\":384:416 */\n slt\n /* \"#utility.yul\":381:433 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":429:430 */\n 0x00\n /* \"#utility.yul\":426:427 */\n dup1\n /* \"#utility.yul\":419:431 */\n revert\n /* \"#utility.yul\":381:433 */\n tag_43:\n /* \"#utility.yul\":452:475 */\n dup3\n calldataload\n swap2\n pop\n /* \"#utility.yul\":525:527 */\n 0x20\n /* \"#utility.yul\":510:528 */\n dup4\n add\n /* \"#utility.yul\":497:529 */\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":558:589 */\n dup2\n and\n /* \"#utility.yul\":548:590 */\n dup2\n eq\n /* \"#utility.yul\":538:608 */\n tag_44\n jumpi\n /* \"#utility.yul\":604:605 */\n 0x00\n /* \"#utility.yul\":601:602 */\n dup1\n /* \"#utility.yul\":594:606 */\n revert\n /* \"#utility.yul\":538:608 */\n tag_44:\n /* \"#utility.yul\":627:632 */\n dup1\n /* \"#utility.yul\":617:632 */\n swap2\n pop\n pop\n /* \"#utility.yul\":276:638 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1732:1860 */\n tag_35:\n /* \"#utility.yul\":1799:1808 */\n dup2\n dup2\n sub\n /* \"#utility.yul\":1820:1831 */\n dup2\n dup2\n gt\n /* \"#utility.yul\":1817:1854 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":1834:1852 */\n tag_41\n tag_36\n jump\t// in\n\n auxdata: 0xa2646970667358221220c807becfae4f800094692106fa771af0985b1a77bccf4f5bac109779da0c284664736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561028a806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea2646970667358221220c807becfae4f800094692106fa771af0985b1a77bccf4f5bac109779da0c284664736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x28A DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 SMOD 0xBE 0xCF 0xAE 0x4F DUP1 STOP SWAP5 PUSH10 0x2106FA771AF0985B1A77 0xBC 0xCF 0x4F JUMPDEST 0xAC LT SWAP8 PUSH26 0xDA0C284664736F6C634300081100330000000000000000000000 ",
"sourceMap": "57:566:0:-:0;;;144:91;;;;;;;;;-1:-1:-1;168:5:0;:18;;-1:-1:-1;;;;;;168:18:0;176:10;168:18;;;57:566;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 517,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 492,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 577,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 470,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1862:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:173:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:2:1",
"type": "",
"value": "23"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1297:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:18:1"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1313:25:1",
"type": "",
"value": "Only owner can withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1286:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1286:53:1"
},
"nodeType": "YulExpressionStatement",
"src": "1286:53:1"
},
{
"nodeType": "YulAssignment",
"src": "1348:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1356:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1356:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1348:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:347:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1559:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1576:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1587:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1569:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1569:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1569:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1610:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1621:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1606:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1606:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1626:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1599:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1599:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1599:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1649:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1660:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1645:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1645:18:1"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1665:20:1",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1638:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1638:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "1638:48:1"
},
{
"nodeType": "YulAssignment",
"src": "1695:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1707:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1718:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1703:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1703:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1695:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1536:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1550:4:1",
"type": ""
}
],
"src": "1385:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1781:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1791:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1803:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1806:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1799:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1799:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1791:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1832:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1834:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1834:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1834:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1823:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1829:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1820:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1820:11:1"
},
"nodeType": "YulIf",
"src": "1817:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1763:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1766:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1772:4:1",
"type": ""
}
],
"src": "1732:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Only owner can withdraw\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Insufficient funds\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea2646970667358221220c807becfae4f800094692106fa771af0985b1a77bccf4f5bac109779da0c284664736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 SMOD 0xBE 0xCF 0xAE 0x4F DUP1 STOP SWAP5 PUSH10 0x2106FA771AF0985B1A77 0xBC 0xCF 0x4F JUMPDEST 0xAC LT SWAP8 PUSH26 0xDA0C284664736F6C634300081100330000000000000000000000 ",
"sourceMap": "57:566:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:9;282:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:566;;;;325:296;;;;;;;;;;-1:-1:-1;325:296:0;;;;;:::i;:::-;;:::i;:::-;;85:20;;;;;;;;;;-1:-1:-1;85:20:0;;;;-1:-1:-1;;;;;85:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;85:20:0;;;;;;;;111:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;111:22:0;851:177:1;325:296:0;421:5;;-1:-1:-1;;;;;421:5:0;407:10;:19;399:55;;;;-1:-1:-1;;;399:55:0;;1235:2:1;399:55:0;;;1217:21:1;1274:2;1254:18;;;1247:30;1313:25;1293:18;;;1286:53;1356:18;;399:55:0;;;;;;;;;482:7;;472:6;:17;;464:48;;;;-1:-1:-1;;;464:48:0;;1587:2:1;464:48:0;;;1569:21:1;1626:2;1606:18;;;1599:30;-1:-1:-1;;;1645:18:1;;;1638:48;1703:18;;464:48:0;1385:342:1;464:48:0;531:25;;-1:-1:-1;;;;;531:17:0;;;:25;;;;;549:6;;531:25;;;;549:6;531:17;:25;;;;;;;;;;;;;;;;;;;;;608:6;597:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;325:296:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1732:128::-;1799:9;;;1820:11;;;1817:37;;;1834:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "130000",
"executionCost": "24412",
"totalCost": "154412"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 623,
"name": "MSTORE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "ISZERO",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPI",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "REVERT",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 168,
"end": 173,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 168,
"end": 186,
"name": "DUP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 168,
"end": 186,
"name": "AND",
"source": 0
},
{
"begin": 176,
"end": 186,
"name": "CALLER",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "OR",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SSTORE",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 623,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 623,
"name": "CODECOPY",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 623,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220c807becfae4f800094692106fa771af0985b1a77bccf4f5bac109779da0c284664736f6c63430008110033",
".code": [
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 623,
"name": "MSTORE",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 623,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "LT",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 623,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 623,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 57,
"end": 623,
"name": "SHR",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "F714CE"
},
{
"begin": 57,
"end": 623,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 57,
"end": 623,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 57,
"end": 623,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 623,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "B69EF8A8"
},
{
"begin": 57,
"end": 623,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 57,
"end": 623,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 623,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "REVERT",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 623,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 623,
"name": "JUMPI",
"source": 0
},
{
"begin": 293,
"end": 302,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SLOAD",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "SWAP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 282,
"end": 302,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SSTORE",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "STOP",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 623,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 623,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 623,
"name": "REVERT",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 325,
"end": 621,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "DUP1",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "ISZERO",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 325,
"end": 621,
"name": "JUMPI",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 325,
"end": 621,
"name": "DUP1",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "REVERT",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 325,
"end": 621,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 325,
"end": 621,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 325,
"end": 621,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 325,
"end": 621,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 325,
"end": 621,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 325,
"end": 621,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 325,
"end": 621,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 325,
"end": 621,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 325,
"end": 621,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 621,
"name": "STOP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "ISZERO",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPI",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "REVERT",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "SLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "AND",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "JUMP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 807,
"end": 839,
"name": "SWAP1",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "SWAP2",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "AND",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "DUP2",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "MSTORE",
"source": 1
},
{
"begin": 777,
"end": 779,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 762,
"end": 780,
"name": "ADD",
"source": 1
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SUB",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "RETURN",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "ISZERO",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPI",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "REVERT",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "POP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 111,
"end": 133,
"name": "SLOAD",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP2",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "JUMP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 111,
"end": 133,
"name": "MLOAD",
"source": 0
},
{
"begin": 997,
"end": 1022,
"name": "SWAP1",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "DUP2",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "MSTORE",
"source": 1
},
{
"begin": 985,
"end": 987,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 970,
"end": 988,
"name": "ADD",
"source": 1
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 851,
"end": 1028,
"name": "JUMP",
"source": 1
},
{
"begin": 325,
"end": 621,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 325,
"end": 621,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 421,
"end": 426,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 421,
"end": 426,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 421,
"end": 426,
"name": "AND",
"source": 0
},
{
"begin": 407,
"end": 417,
"name": "CALLER",
"source": 0
},
{
"begin": 407,
"end": 426,
"name": "EQ",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 399,
"end": 454,
"name": "JUMPI",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 399,
"end": 454,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 399,
"end": 454,
"name": "DUP2",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "MSTORE",
"source": 0
},
{
"begin": 1235,
"end": 1237,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 399,
"end": 454,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 399,
"end": 454,
"name": "DUP3",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "ADD",
"source": 0
},
{
"begin": 1217,
"end": 1238,
"name": "MSTORE",
"source": 1
},
{
"begin": 1274,
"end": 1276,
"name": "PUSH",
"source": 1,
"value": "17"
},
{
"begin": 1254,
"end": 1272,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1254,
"end": 1272,
"name": "DUP3",
"source": 1
},
{
"begin": 1254,
"end": 1272,
"name": "ADD",
"source": 1
},
{
"begin": 1247,
"end": 1277,
"name": "MSTORE",
"source": 1
},
{
"begin": 1313,
"end": 1338,
"name": "PUSH",
"source": 1,
"value": "4F6E6C79206F776E65722063616E207769746864726177000000000000000000"
},
{
"begin": 1293,
"end": 1311,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1293,
"end": 1311,
"name": "DUP3",
"source": 1
},
{
"begin": 1293,
"end": 1311,
"name": "ADD",
"source": 1
},
{
"begin": 1286,
"end": 1339,
"name": "MSTORE",
"source": 1
},
{
"begin": 1356,
"end": 1374,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1356,
"end": 1374,
"name": "ADD",
"source": 1
},
{
"begin": 399,
"end": 454,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 399,
"end": 454,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 399,
"end": 454,
"name": "MLOAD",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "DUP1",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "SWAP2",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "SUB",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "SWAP1",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "REVERT",
"source": 0
},
{
"begin": 399,
"end": 454,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 399,
"end": 454,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 482,
"end": 489,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 482,
"end": 489,
"name": "SLOAD",
"source": 0
},
{
"begin": 472,
"end": 478,
"name": "DUP3",
"source": 0
},
{
"begin": 472,
"end": 489,
"name": "GT",
"source": 0
},
{
"begin": 472,
"end": 489,
"name": "ISZERO",
"source": 0
},
{
"begin": 464,
"end": 512,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 464,
"end": 512,
"name": "JUMPI",
"source": 0
},
{
"begin": 464,
"end": 512,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 464,
"end": 512,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 464,
"end": 512,
"name": "DUP2",
"source": 0
},
{
"begin": 464,
"end": 512,
"name": "MSTORE",
"source": 0
},
{
"begin": 1587,
"end": 1589,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 464,
"end": 512,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 464,
"end": 512,
"name": "DUP3",
"source": 0
},
{
"begin": 464,
"end": 512,
"name": "ADD",
"source": 0
},
{
"begin": 1569,
"end": 1590,
"name": "MSTORE",
"source": 1
},
{
"begin": 1626,
"end": 1628,
"name": "PUSH",
"source": 1,
"value": "12"
},
{
"begin": 1606,
"end": 1624,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1606,
"end": 1624,
"name": "DUP3",
"source": 1
},
{
"begin": 1606,
"end": 1624,
"name": "ADD",
"source": 1
},
{
"begin": 1599,
"end": 1629,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "496E73756666696369656E742066756E6473"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "70"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 1645,
"end": 1663,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1645,
"end": 1663,
"name": "DUP3",
"source": 1
},
{
"begin": 1645,
"end": 1663,
"name": "ADD",
"source": 1
},
{
"begin": 1638,
"end": 1686,
"name": "MSTORE",
"source": 1
},
{
"begin": 1703,
"end": 1721,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1703,
"end": 1721,
"name": "ADD",
"source": 1
},
{
"begin": 464,
"end": 512,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 1385,
"end": 1727,
"name": "JUMP",
"source": 1
},
{
"begin": 464,
"end": 512,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 464,
"end": 512,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 531,
"end": 556,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 531,
"end": 548,
"name": "DUP3",
"source": 0
},
{
"begin": 531,
"end": 548,
"name": "AND",
"source": 0
},
{
"begin": 531,
"end": 548,
"name": "SWAP1",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "DUP4",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "ISZERO",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 531,
"end": 556,
"name": "MUL",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "SWAP1",
"source": 0
},
{
"begin": 549,
"end": 555,
"name": "DUP5",
"source": 0
},
{
"begin": 549,
"end": 555,
"name": "SWAP1",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 531,
"end": 556,
"name": "DUP2",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "DUP2",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "DUP2",
"source": 0
},
{
"begin": 549,
"end": 555,
"name": "DUP6",
"source": 0
},
{
"begin": 531,
"end": 548,
"name": "DUP9",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "DUP9",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "CALL",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "SWAP4",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "POP",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "POP",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "POP",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "POP",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "ISZERO",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "DUP1",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "ISZERO",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 531,
"end": 556,
"name": "JUMPI",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 531,
"end": 556,
"name": "DUP1",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 531,
"end": 556,
"name": "REVERT",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 531,
"end": 556,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 531,
"end": 556,
"name": "POP",
"source": 0
},
{
"begin": 608,
"end": 614,
"name": "DUP2",
"source": 0
},
{
"begin": 597,
"end": 604,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 597,
"end": 604,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 597,
"end": 614,
"name": "DUP3",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "DUP3",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "SLOAD",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 597,
"end": 614,
"name": "SWAP2",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "SWAP1",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 597,
"end": 614,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 597,
"end": 614,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "SWAP1",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "SWAP2",
"source": 0
},
{
"begin": 597,
"end": 614,
"name": "SSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 325,
"end": 621,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 14,
"end": 141,
"name": "tag",
"source": 1,
"value": "36"
},
{
"begin": 14,
"end": 141,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 75,
"end": 85,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 70,
"end": 73,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 66,
"end": 86,
"name": "SHL",
"source": 1
},
{
"begin": 63,
"end": 64,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 56,
"end": 87,
"name": "MSTORE",
"source": 1
},
{
"begin": 106,
"end": 110,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 103,
"end": 104,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 96,
"end": 111,
"name": "MSTORE",
"source": 1
},
{
"begin": 130,
"end": 134,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 127,
"end": 128,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 120,
"end": 135,
"name": "REVERT",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 146,
"end": 271,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP1",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP3",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "ADD",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP1",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP3",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "GT",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "ISZERO",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 229,
"end": 265,
"name": "JUMPI",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 245,
"end": 263,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "tag",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP3",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP2",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 276,
"end": 638,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 352,
"end": 358,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 360,
"end": 366,
"name": "DUP1",
"source": 1
},
{
"begin": 413,
"end": 415,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 401,
"end": 410,
"name": "DUP4",
"source": 1
},
{
"begin": 392,
"end": 399,
"name": "DUP6",
"source": 1
},
{
"begin": 388,
"end": 411,
"name": "SUB",
"source": 1
},
{
"begin": 384,
"end": 416,
"name": "SLT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "ISZERO",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPI",
"source": 1
},
{
"begin": 429,
"end": 430,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 427,
"name": "DUP1",
"source": 1
},
{
"begin": 419,
"end": 431,
"name": "REVERT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "tag",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "DUP3",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "SWAP2",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 525,
"end": 527,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 510,
"end": 528,
"name": "DUP4",
"source": 1
},
{
"begin": 510,
"end": 528,
"name": "ADD",
"source": 1
},
{
"begin": 497,
"end": 529,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 558,
"end": 589,
"name": "DUP2",
"source": 1
},
{
"begin": 558,
"end": 589,
"name": "AND",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "DUP2",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "EQ",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "PUSH [tag]",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPI",
"source": 1
},
{
"begin": 604,
"end": 605,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 602,
"name": "DUP1",
"source": 1
},
{
"begin": 594,
"end": 606,
"name": "REVERT",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "tag",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 627,
"end": 632,
"name": "DUP1",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "SWAP2",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP1",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1732,
"end": 1860,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 1732,
"end": 1860,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "SUB",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "GT",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "ISZERO",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1817,
"end": 1854,
"name": "JUMPI",
"source": 1
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 1834,
"end": 1852,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"FeeCollector.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"balance()": "b69ef8a8",
"owner()": "8da5cb5b",
"withdraw(uint256,address)": "00f714ce"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"destAddr\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"FeeCollector.sol\":\"FeeCollector\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"FeeCollector.sol\":{\"keccak256\":\"0x956a524a5316cc35b087075ba8ea4b890bf1396f5247e8b0b969bd7c9dba5642\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4aa86e32f543e7606baea979b8ca63dc98f80460d65add03538dc1ba1e524f40\",\"dweb:/ipfs/QmPRVrbf1rpwGXsfYZxJNsfK6xpzi7QJvkEw9E2pt1ge5i\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "FeeCollector.sol:FeeCollector",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5,
"contract": "FeeCollector.sol:FeeCollector",
"label": "balance",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"FeeCollector.sol": {
"ast": {
"absolutePath": "FeeCollector.sol",
"exportedSymbols": {
"FeeCollector": [
57
]
},
"id": 58,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".7"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "FeeCollector",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 57,
"linearizedBaseContracts": [
57
],
"name": "FeeCollector",
"nameLocation": "66:12:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "8da5cb5b",
"id": 3,
"mutability": "mutable",
"name": "owner",
"nameLocation": "100:5:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "85:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "85:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "b69ef8a8",
"id": 5,
"mutability": "mutable",
"name": "balance",
"nameLocation": "126:7:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "111:22:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "111:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"body": {
"id": 13,
"nodeType": "Block",
"src": "158:77:0",
"statements": [
{
"expression": {
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "168:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 9,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "176:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "180:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "176:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "168:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 12,
"nodeType": "ExpressionStatement",
"src": "168:18:0"
}
]
},
"id": 14,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "155:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "158:0:0"
},
"scope": 57,
"src": "144:91:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "272:38:0",
"statements": [
{
"expression": {
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 17,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "282:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"expression": {
"id": 18,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "293:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "297:5:0",
"memberName": "value",
"nodeType": "MemberAccess",
"src": "293:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "282:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21,
"nodeType": "ExpressionStatement",
"src": "282:20:0"
}
]
},
"id": 23,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [],
"src": "252:2:0"
},
"returnParameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:0:0"
},
"scope": 57,
"src": "245:65:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 55,
"nodeType": "Block",
"src": "389:232:0",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 31,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "407:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "411:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "407:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 33,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "421:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "407:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "428:25:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
},
"value": "Only owner can withdraw"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
}
],
"id": 30,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "399:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "399:55:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 37,
"nodeType": "ExpressionStatement",
"src": "399:55:0"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 39,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "472:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"id": 40,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "482:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "472:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "491:20:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
},
"value": "Insufficient funds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
}
],
"id": 38,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "464:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "464:48:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 44,
"nodeType": "ExpressionStatement",
"src": "464:48:0"
},
{
"expression": {
"arguments": [
{
"id": 48,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "549:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 45,
"name": "destAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "531:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 47,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "540:8:0",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "531:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "531:25:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 50,
"nodeType": "ExpressionStatement",
"src": "531:25:0"
},
{
"expression": {
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 51,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "597:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"id": 52,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "608:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "597:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 54,
"nodeType": "ExpressionStatement",
"src": "597:17:0"
}
]
},
"functionSelector": "00f714ce",
"id": 56,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "334:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"mutability": "mutable",
"name": "amount",
"nameLocation": "348:6:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "343:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "343:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "destAddr",
"nameLocation": "372:8:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "356:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "356:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "342:39:0"
},
"returnParameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [],
"src": "389:0:0"
},
"scope": 57,
"src": "325:296:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 58,
"src": "57:566:0",
"usedErrors": []
}
],
"src": "0:623:0"
},
"id": 0
}
}
}
}
{
"id": "7f73612fac84ec5ac212d7ff49a8f425",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": "pragma solidity ^0.8.7;\n// SPDX-License-Identifier: MIT\n\ncontract FeeCollector { // \n address public owner;\n uint256 public balance;\n \n constructor() {\n owner = msg.sender; // store information who deployed contract\n }\n \n receive() payable external {\n balance += msg.value; // keep track of balance (in WEI)\n }\n \n \n function withdraw(uint amount, address payable destAddr) public {\n require(msg.sender == owner, \"Only owner can withdraw\");\n require(amount <= balance, \"Insufficient funds\");\n \n destAddr.transfer(amount); // send funds to given address\n balance -= amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"FeeCollector.sol": {
"FeeCollector": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"FeeCollector.sol\":57:661 contract FeeCollector { // ... */\n mstore(0x40, 0x80)\n /* \"FeeCollector.sol\":148:240 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"FeeCollector.sol\":172:177 owner */\n 0x00\n /* \"FeeCollector.sol\":172:190 owner = msg.sender */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"FeeCollector.sol\":180:190 msg.sender */\n caller\n /* \"FeeCollector.sol\":172:190 owner = msg.sender */\n or\n swap1\n sstore\n /* \"FeeCollector.sol\":57:661 contract FeeCollector { // ... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"FeeCollector.sol\":57:661 contract FeeCollector { // ... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf714ce\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xb69ef8a8\n eq\n tag_5\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n jumpi(tag_2, calldatasize)\n /* \"FeeCollector.sol\":298:307 msg.value */\n callvalue\n /* \"FeeCollector.sol\":287:294 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":287:307 balance += msg.value */\n dup3\n dup3\n sload\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n stop\n /* \"FeeCollector.sol\":57:661 contract FeeCollector { // ... */\n tag_2:\n 0x00\n dup1\n revert\n /* \"FeeCollector.sol\":363:659 function withdraw(uint amount, address payable destAddr) public {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\n tag_10:\n pop\n tag_11\n tag_12\n calldatasize\n 0x04\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n stop\n /* \"FeeCollector.sol\":89:109 address public owner */\n tag_4:\n callvalue\n dup1\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n pop\n sload(0x00)\n tag_16\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_16:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":807:839 */\n swap1\n swap2\n and\n /* \"#utility.yul\":789:840 */\n dup2\n mstore\n /* \"#utility.yul\":777:779 */\n 0x20\n /* \"#utility.yul\":762:780 */\n add\n /* \"FeeCollector.sol\":89:109 address public owner */\n tag_18:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"FeeCollector.sol\":115:137 uint256 public balance */\n tag_5:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n sload(0x01)\n dup2\n jump\n tag_21:\n mload(0x40)\n /* \"#utility.yul\":997:1022 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":985:987 */\n 0x20\n /* \"#utility.yul\":970:988 */\n add\n /* \"FeeCollector.sol\":115:137 uint256 public balance */\n tag_18\n /* \"#utility.yul\":851:1028 */\n jump\n /* \"FeeCollector.sol\":363:659 function withdraw(uint amount, address payable destAddr) public {... */\n tag_14:\n /* \"FeeCollector.sol\":459:464 owner */\n and(sub(shl(0xa0, 0x01), 0x01), sload(0x00))\n /* \"FeeCollector.sol\":445:455 msg.sender */\n caller\n /* \"FeeCollector.sol\":445:464 msg.sender == owner */\n eq\n /* \"FeeCollector.sol\":437:492 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_26\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1235:1237 */\n 0x20\n /* \"FeeCollector.sol\":437:492 require(msg.sender == owner, \"Only owner can withdraw\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1217:1238 */\n mstore\n /* \"#utility.yul\":1274:1276 */\n 0x17\n /* \"#utility.yul\":1254:1272 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1247:1277 */\n mstore\n /* \"#utility.yul\":1313:1338 */\n 0x4f6e6c79206f776e65722063616e207769746864726177000000000000000000\n /* \"#utility.yul\":1293:1311 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1286:1339 */\n mstore\n /* \"#utility.yul\":1356:1374 */\n 0x64\n add\n /* \"FeeCollector.sol\":437:492 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_27:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_26:\n /* \"FeeCollector.sol\":520:527 balance */\n sload(0x01)\n /* \"FeeCollector.sol\":510:516 amount */\n dup3\n /* \"FeeCollector.sol\":510:527 amount <= balance */\n gt\n iszero\n /* \"FeeCollector.sol\":502:550 require(amount <= balance, \"Insufficient funds\") */\n tag_29\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1587:1589 */\n 0x20\n /* \"FeeCollector.sol\":502:550 require(amount <= balance, \"Insufficient funds\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1569:1590 */\n mstore\n /* \"#utility.yul\":1626:1628 */\n 0x12\n /* \"#utility.yul\":1606:1624 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1599:1629 */\n mstore\n shl(0x70, 0x496e73756666696369656e742066756e6473)\n /* \"#utility.yul\":1645:1663 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1638:1686 */\n mstore\n /* \"#utility.yul\":1703:1721 */\n 0x64\n add\n /* \"FeeCollector.sol\":502:550 require(amount <= balance, \"Insufficient funds\") */\n tag_27\n /* \"#utility.yul\":1385:1727 */\n jump\n /* \"FeeCollector.sol\":502:550 require(amount <= balance, \"Insufficient funds\") */\n tag_29:\n /* \"FeeCollector.sol\":569:594 destAddr.transfer(amount) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"FeeCollector.sol\":569:586 destAddr.transfer */\n dup3\n and\n swap1\n /* \"FeeCollector.sol\":569:594 destAddr.transfer(amount) */\n dup4\n iszero\n 0x08fc\n mul\n swap1\n /* \"FeeCollector.sol\":587:593 amount */\n dup5\n swap1\n /* \"FeeCollector.sol\":569:594 destAddr.transfer(amount) */\n 0x00\n dup2\n dup2\n dup2\n /* \"FeeCollector.sol\":587:593 amount */\n dup6\n /* \"FeeCollector.sol\":569:586 destAddr.transfer */\n dup9\n /* \"FeeCollector.sol\":569:594 destAddr.transfer(amount) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_33\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_33:\n pop\n /* \"FeeCollector.sol\":646:652 amount */\n dup2\n /* \"FeeCollector.sol\":635:642 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":635:652 balance -= amount */\n dup3\n dup3\n sload\n tag_34\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n swap1\n swap2\n sstore\n pop\n pop\n pop\n pop\n /* \"FeeCollector.sol\":363:659 function withdraw(uint amount, address payable destAddr) public {... */\n jump\t// out\n /* \"#utility.yul\":14:141 */\n tag_36:\n /* \"#utility.yul\":75:85 */\n 0x4e487b71\n /* \"#utility.yul\":70:73 */\n 0xe0\n /* \"#utility.yul\":66:86 */\n shl\n /* \"#utility.yul\":63:64 */\n 0x00\n /* \"#utility.yul\":56:87 */\n mstore\n /* \"#utility.yul\":106:110 */\n 0x11\n /* \"#utility.yul\":103:104 */\n 0x04\n /* \"#utility.yul\":96:111 */\n mstore\n /* \"#utility.yul\":130:134 */\n 0x24\n /* \"#utility.yul\":127:128 */\n 0x00\n /* \"#utility.yul\":120:135 */\n revert\n /* \"#utility.yul\":146:271 */\n tag_9:\n /* \"#utility.yul\":211:220 */\n dup1\n dup3\n add\n /* \"#utility.yul\":232:242 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":229:265 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":245:263 */\n tag_41\n tag_36\n jump\t// in\n tag_41:\n /* \"#utility.yul\":146:271 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":276:638 */\n tag_13:\n /* \"#utility.yul\":352:358 */\n 0x00\n /* \"#utility.yul\":360:366 */\n dup1\n /* \"#utility.yul\":413:415 */\n 0x40\n /* \"#utility.yul\":401:410 */\n dup4\n /* \"#utility.yul\":392:399 */\n dup6\n /* \"#utility.yul\":388:411 */\n sub\n /* \"#utility.yul\":384:416 */\n slt\n /* \"#utility.yul\":381:433 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":429:430 */\n 0x00\n /* \"#utility.yul\":426:427 */\n dup1\n /* \"#utility.yul\":419:431 */\n revert\n /* \"#utility.yul\":381:433 */\n tag_43:\n /* \"#utility.yul\":452:475 */\n dup3\n calldataload\n swap2\n pop\n /* \"#utility.yul\":525:527 */\n 0x20\n /* \"#utility.yul\":510:528 */\n dup4\n add\n /* \"#utility.yul\":497:529 */\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":558:589 */\n dup2\n and\n /* \"#utility.yul\":548:590 */\n dup2\n eq\n /* \"#utility.yul\":538:608 */\n tag_44\n jumpi\n /* \"#utility.yul\":604:605 */\n 0x00\n /* \"#utility.yul\":601:602 */\n dup1\n /* \"#utility.yul\":594:606 */\n revert\n /* \"#utility.yul\":538:608 */\n tag_44:\n /* \"#utility.yul\":627:632 */\n dup1\n /* \"#utility.yul\":617:632 */\n swap2\n pop\n pop\n /* \"#utility.yul\":276:638 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1732:1860 */\n tag_35:\n /* \"#utility.yul\":1799:1808 */\n dup2\n dup2\n sub\n /* \"#utility.yul\":1820:1831 */\n dup2\n dup2\n gt\n /* \"#utility.yul\":1817:1854 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":1834:1852 */\n tag_41\n tag_36\n jump\t// in\n\n auxdata: 0xa26469706673582212203192a61570a3469005f8cf0ec37f732683a7fb2c9e3ff0463fa8ff7435b96a1a64736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561028a806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea26469706673582212203192a61570a3469005f8cf0ec37f732683a7fb2c9e3ff0463fa8ff7435b96a1a64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x28A DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SWAP3 0xA6 ISZERO PUSH17 0xA3469005F8CF0EC37F732683A7FB2C9E3F CREATE CHAINID EXTCODEHASH 0xA8 SELFDESTRUCT PUSH21 0x35B96A1A64736F6C63430008110033000000000000 ",
"sourceMap": "57:604:0:-:0;;;148:92;;;;;;;;;-1:-1:-1;172:5:0;:18;;-1:-1:-1;;;;;;172:18:0;180:10;172:18;;;57:604;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 517,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 492,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 577,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 470,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1862:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:173:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:2:1",
"type": "",
"value": "23"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1297:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:18:1"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1313:25:1",
"type": "",
"value": "Only owner can withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1286:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1286:53:1"
},
"nodeType": "YulExpressionStatement",
"src": "1286:53:1"
},
{
"nodeType": "YulAssignment",
"src": "1348:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1356:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1356:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1348:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:347:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1559:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1576:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1587:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1569:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1569:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1569:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1610:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1621:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1606:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1606:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1626:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1599:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1599:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1599:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1649:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1660:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1645:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1645:18:1"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1665:20:1",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1638:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1638:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "1638:48:1"
},
{
"nodeType": "YulAssignment",
"src": "1695:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1707:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1718:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1703:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1703:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1695:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1536:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1550:4:1",
"type": ""
}
],
"src": "1385:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1781:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1791:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1803:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1806:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1799:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1799:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1791:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1832:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1834:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1834:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1834:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1823:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1829:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1820:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1820:11:1"
},
"nodeType": "YulIf",
"src": "1817:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1763:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1766:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1772:4:1",
"type": ""
}
],
"src": "1732:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Only owner can withdraw\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Insufficient funds\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea26469706673582212203192a61570a3469005f8cf0ec37f732683a7fb2c9e3ff0463fa8ff7435b96a1a64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BALANCE SWAP3 0xA6 ISZERO PUSH17 0xA3469005F8CF0EC37F732683A7FB2C9E3F CREATE CHAINID EXTCODEHASH 0xA8 SELFDESTRUCT PUSH21 0x35B96A1A64736F6C63430008110033000000000000 ",
"sourceMap": "57:604:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;298:9;287:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:604;;;;363:296;;;;;;;;;;-1:-1:-1;363:296:0;;;;;:::i;:::-;;:::i;:::-;;89:20;;;;;;;;;;-1:-1:-1;89:20:0;;;;-1:-1:-1;;;;;89:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;89:20:0;;;;;;;;115:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;115:22:0;851:177:1;363:296:0;459:5;;-1:-1:-1;;;;;459:5:0;445:10;:19;437:55;;;;-1:-1:-1;;;437:55:0;;1235:2:1;437:55:0;;;1217:21:1;1274:2;1254:18;;;1247:30;1313:25;1293:18;;;1286:53;1356:18;;437:55:0;;;;;;;;;520:7;;510:6;:17;;502:48;;;;-1:-1:-1;;;502:48:0;;1587:2:1;502:48:0;;;1569:21:1;1626:2;1606:18;;;1599:30;-1:-1:-1;;;1645:18:1;;;1638:48;1703:18;;502:48:0;1385:342:1;502:48:0;569:25;;-1:-1:-1;;;;;569:17:0;;;:25;;;;;587:6;;569:25;;;;587:6;569:17;:25;;;;;;;;;;;;;;;;;;;;;646:6;635:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;363:296:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1732:128::-;1799:9;;;1820:11;;;1817:37;;;1834:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "130000",
"executionCost": "24412",
"totalCost": "154412"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 661,
"name": "MSTORE",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "DUP1",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "ISZERO",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 148,
"end": 240,
"name": "JUMPI",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 148,
"end": 240,
"name": "DUP1",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "REVERT",
"source": 0
},
{
"begin": 148,
"end": 240,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 148,
"end": 240,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 172,
"end": 177,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 172,
"end": 190,
"name": "DUP1",
"source": 0
},
{
"begin": 172,
"end": 190,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 172,
"end": 190,
"name": "AND",
"source": 0
},
{
"begin": 180,
"end": 190,
"name": "CALLER",
"source": 0
},
{
"begin": 172,
"end": 190,
"name": "OR",
"source": 0
},
{
"begin": 172,
"end": 190,
"name": "SWAP1",
"source": 0
},
{
"begin": 172,
"end": 190,
"name": "SSTORE",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 661,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 661,
"name": "CODECOPY",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 661,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a26469706673582212203192a61570a3469005f8cf0ec37f732683a7fb2c9e3ff0463fa8ff7435b96a1a64736f6c63430008110033",
".code": [
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 661,
"name": "MSTORE",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 661,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "LT",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 661,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 661,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 57,
"end": 661,
"name": "SHR",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "F714CE"
},
{
"begin": 57,
"end": 661,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 57,
"end": 661,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 57,
"end": 661,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 661,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "B69EF8A8"
},
{
"begin": 57,
"end": 661,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 57,
"end": 661,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 661,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "REVERT",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 661,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 661,
"name": "JUMPI",
"source": 0
},
{
"begin": 298,
"end": 307,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 287,
"end": 294,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 287,
"end": 294,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 287,
"end": 307,
"name": "DUP3",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "DUP3",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "SLOAD",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 287,
"end": 307,
"name": "SWAP2",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "SWAP1",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 287,
"end": 307,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 287,
"end": 307,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "SWAP3",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "POP",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "POP",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "DUP2",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "SWAP1",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "SSTORE",
"source": 0
},
{
"begin": 287,
"end": 307,
"name": "STOP",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 661,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 661,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 661,
"name": "REVERT",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 363,
"end": 659,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "DUP1",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "ISZERO",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 363,
"end": 659,
"name": "JUMPI",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 363,
"end": 659,
"name": "DUP1",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "REVERT",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 363,
"end": 659,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 363,
"end": 659,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 363,
"end": 659,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 363,
"end": 659,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 363,
"end": 659,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 363,
"end": 659,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 363,
"end": 659,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 363,
"end": 659,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 363,
"end": 659,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 363,
"end": 659,
"name": "STOP",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 89,
"end": 109,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "DUP1",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "ISZERO",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 89,
"end": 109,
"name": "JUMPI",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 89,
"end": 109,
"name": "DUP1",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "REVERT",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 89,
"end": 109,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 89,
"end": 109,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 89,
"end": 109,
"name": "SLOAD",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 89,
"end": 109,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 89,
"end": 109,
"name": "AND",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "DUP2",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "JUMP",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 89,
"end": 109,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 89,
"end": 109,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 807,
"end": 839,
"name": "SWAP1",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "SWAP2",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "AND",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "DUP2",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "MSTORE",
"source": 1
},
{
"begin": 777,
"end": 779,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 762,
"end": 780,
"name": "ADD",
"source": 1
},
{
"begin": 89,
"end": 109,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 89,
"end": 109,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 89,
"end": 109,
"name": "MLOAD",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "DUP1",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "SWAP2",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "SUB",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "SWAP1",
"source": 0
},
{
"begin": 89,
"end": 109,
"name": "RETURN",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 115,
"end": 137,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "DUP1",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "ISZERO",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 115,
"end": 137,
"name": "JUMPI",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 115,
"end": 137,
"name": "DUP1",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "REVERT",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 115,
"end": 137,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "POP",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 115,
"end": 137,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 115,
"end": 137,
"name": "SLOAD",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "DUP2",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "JUMP",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 115,
"end": 137,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 115,
"end": 137,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 115,
"end": 137,
"name": "MLOAD",
"source": 0
},
{
"begin": 997,
"end": 1022,
"name": "SWAP1",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "DUP2",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "MSTORE",
"source": 1
},
{
"begin": 985,
"end": 987,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 970,
"end": 988,
"name": "ADD",
"source": 1
},
{
"begin": 115,
"end": 137,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 851,
"end": 1028,
"name": "JUMP",
"source": 1
},
{
"begin": 363,
"end": 659,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 363,
"end": 659,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 459,
"end": 464,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 459,
"end": 464,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 459,
"end": 464,
"name": "AND",
"source": 0
},
{
"begin": 445,
"end": 455,
"name": "CALLER",
"source": 0
},
{
"begin": 445,
"end": 464,
"name": "EQ",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 437,
"end": 492,
"name": "JUMPI",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 437,
"end": 492,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 437,
"end": 492,
"name": "DUP2",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "MSTORE",
"source": 0
},
{
"begin": 1235,
"end": 1237,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 437,
"end": 492,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 437,
"end": 492,
"name": "DUP3",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "ADD",
"source": 0
},
{
"begin": 1217,
"end": 1238,
"name": "MSTORE",
"source": 1
},
{
"begin": 1274,
"end": 1276,
"name": "PUSH",
"source": 1,
"value": "17"
},
{
"begin": 1254,
"end": 1272,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1254,
"end": 1272,
"name": "DUP3",
"source": 1
},
{
"begin": 1254,
"end": 1272,
"name": "ADD",
"source": 1
},
{
"begin": 1247,
"end": 1277,
"name": "MSTORE",
"source": 1
},
{
"begin": 1313,
"end": 1338,
"name": "PUSH",
"source": 1,
"value": "4F6E6C79206F776E65722063616E207769746864726177000000000000000000"
},
{
"begin": 1293,
"end": 1311,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1293,
"end": 1311,
"name": "DUP3",
"source": 1
},
{
"begin": 1293,
"end": 1311,
"name": "ADD",
"source": 1
},
{
"begin": 1286,
"end": 1339,
"name": "MSTORE",
"source": 1
},
{
"begin": 1356,
"end": 1374,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1356,
"end": 1374,
"name": "ADD",
"source": 1
},
{
"begin": 437,
"end": 492,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 437,
"end": 492,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 437,
"end": 492,
"name": "MLOAD",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "DUP1",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "SWAP2",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "SUB",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "SWAP1",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "REVERT",
"source": 0
},
{
"begin": 437,
"end": 492,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 437,
"end": 492,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 520,
"end": 527,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 520,
"end": 527,
"name": "SLOAD",
"source": 0
},
{
"begin": 510,
"end": 516,
"name": "DUP3",
"source": 0
},
{
"begin": 510,
"end": 527,
"name": "GT",
"source": 0
},
{
"begin": 510,
"end": 527,
"name": "ISZERO",
"source": 0
},
{
"begin": 502,
"end": 550,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 502,
"end": 550,
"name": "JUMPI",
"source": 0
},
{
"begin": 502,
"end": 550,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 502,
"end": 550,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 502,
"end": 550,
"name": "DUP2",
"source": 0
},
{
"begin": 502,
"end": 550,
"name": "MSTORE",
"source": 0
},
{
"begin": 1587,
"end": 1589,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 502,
"end": 550,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 502,
"end": 550,
"name": "DUP3",
"source": 0
},
{
"begin": 502,
"end": 550,
"name": "ADD",
"source": 0
},
{
"begin": 1569,
"end": 1590,
"name": "MSTORE",
"source": 1
},
{
"begin": 1626,
"end": 1628,
"name": "PUSH",
"source": 1,
"value": "12"
},
{
"begin": 1606,
"end": 1624,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1606,
"end": 1624,
"name": "DUP3",
"source": 1
},
{
"begin": 1606,
"end": 1624,
"name": "ADD",
"source": 1
},
{
"begin": 1599,
"end": 1629,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "496E73756666696369656E742066756E6473"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "70"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 1645,
"end": 1663,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1645,
"end": 1663,
"name": "DUP3",
"source": 1
},
{
"begin": 1645,
"end": 1663,
"name": "ADD",
"source": 1
},
{
"begin": 1638,
"end": 1686,
"name": "MSTORE",
"source": 1
},
{
"begin": 1703,
"end": 1721,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1703,
"end": 1721,
"name": "ADD",
"source": 1
},
{
"begin": 502,
"end": 550,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 1385,
"end": 1727,
"name": "JUMP",
"source": 1
},
{
"begin": 502,
"end": 550,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 502,
"end": 550,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 569,
"end": 594,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 569,
"end": 586,
"name": "DUP3",
"source": 0
},
{
"begin": 569,
"end": 586,
"name": "AND",
"source": 0
},
{
"begin": 569,
"end": 586,
"name": "SWAP1",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "DUP4",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "ISZERO",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 569,
"end": 594,
"name": "MUL",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "SWAP1",
"source": 0
},
{
"begin": 587,
"end": 593,
"name": "DUP5",
"source": 0
},
{
"begin": 587,
"end": 593,
"name": "SWAP1",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 569,
"end": 594,
"name": "DUP2",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "DUP2",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "DUP2",
"source": 0
},
{
"begin": 587,
"end": 593,
"name": "DUP6",
"source": 0
},
{
"begin": 569,
"end": 586,
"name": "DUP9",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "DUP9",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "CALL",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "SWAP4",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "POP",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "POP",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "POP",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "POP",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "ISZERO",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "DUP1",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "ISZERO",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 569,
"end": 594,
"name": "JUMPI",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 569,
"end": 594,
"name": "DUP1",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 569,
"end": 594,
"name": "REVERT",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 569,
"end": 594,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 569,
"end": 594,
"name": "POP",
"source": 0
},
{
"begin": 646,
"end": 652,
"name": "DUP2",
"source": 0
},
{
"begin": 635,
"end": 642,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 635,
"end": 642,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 635,
"end": 652,
"name": "DUP3",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "DUP3",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "SLOAD",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 635,
"end": 652,
"name": "SWAP2",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "SWAP1",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 635,
"end": 652,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 635,
"end": 652,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "SWAP1",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "SWAP2",
"source": 0
},
{
"begin": 635,
"end": 652,
"name": "SSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 363,
"end": 659,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 14,
"end": 141,
"name": "tag",
"source": 1,
"value": "36"
},
{
"begin": 14,
"end": 141,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 75,
"end": 85,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 70,
"end": 73,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 66,
"end": 86,
"name": "SHL",
"source": 1
},
{
"begin": 63,
"end": 64,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 56,
"end": 87,
"name": "MSTORE",
"source": 1
},
{
"begin": 106,
"end": 110,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 103,
"end": 104,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 96,
"end": 111,
"name": "MSTORE",
"source": 1
},
{
"begin": 130,
"end": 134,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 127,
"end": 128,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 120,
"end": 135,
"name": "REVERT",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 146,
"end": 271,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP1",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP3",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "ADD",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP1",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP3",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "GT",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "ISZERO",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 229,
"end": 265,
"name": "JUMPI",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 245,
"end": 263,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "tag",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP3",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP2",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 276,
"end": 638,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 352,
"end": 358,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 360,
"end": 366,
"name": "DUP1",
"source": 1
},
{
"begin": 413,
"end": 415,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 401,
"end": 410,
"name": "DUP4",
"source": 1
},
{
"begin": 392,
"end": 399,
"name": "DUP6",
"source": 1
},
{
"begin": 388,
"end": 411,
"name": "SUB",
"source": 1
},
{
"begin": 384,
"end": 416,
"name": "SLT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "ISZERO",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPI",
"source": 1
},
{
"begin": 429,
"end": 430,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 427,
"name": "DUP1",
"source": 1
},
{
"begin": 419,
"end": 431,
"name": "REVERT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "tag",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "DUP3",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "SWAP2",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 525,
"end": 527,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 510,
"end": 528,
"name": "DUP4",
"source": 1
},
{
"begin": 510,
"end": 528,
"name": "ADD",
"source": 1
},
{
"begin": 497,
"end": 529,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 558,
"end": 589,
"name": "DUP2",
"source": 1
},
{
"begin": 558,
"end": 589,
"name": "AND",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "DUP2",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "EQ",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "PUSH [tag]",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPI",
"source": 1
},
{
"begin": 604,
"end": 605,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 602,
"name": "DUP1",
"source": 1
},
{
"begin": 594,
"end": 606,
"name": "REVERT",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "tag",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 627,
"end": 632,
"name": "DUP1",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "SWAP2",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP1",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1732,
"end": 1860,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 1732,
"end": 1860,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "SUB",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "GT",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "ISZERO",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1817,
"end": 1854,
"name": "JUMPI",
"source": 1
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 1834,
"end": 1852,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"FeeCollector.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"balance()": "b69ef8a8",
"owner()": "8da5cb5b",
"withdraw(uint256,address)": "00f714ce"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"destAddr\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"FeeCollector.sol\":\"FeeCollector\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"FeeCollector.sol\":{\"keccak256\":\"0xddf09d9b6f78be0e9303989a851f1785515a1f16c720629710fc04aea0431075\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17f9d0446a190b28b6d9f09ef09ed03b34c4ddbc3fbc2eaf8e12a606b9f2834f\",\"dweb:/ipfs/QmUPY65TefHDkzsJSysifKdNpiEZRxRgYXKXDhf44CUexb\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "FeeCollector.sol:FeeCollector",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5,
"contract": "FeeCollector.sol:FeeCollector",
"label": "balance",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"FeeCollector.sol": {
"ast": {
"absolutePath": "FeeCollector.sol",
"exportedSymbols": {
"FeeCollector": [
57
]
},
"id": 58,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".7"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "FeeCollector",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 57,
"linearizedBaseContracts": [
57
],
"name": "FeeCollector",
"nameLocation": "66:12:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "8da5cb5b",
"id": 3,
"mutability": "mutable",
"name": "owner",
"nameLocation": "104:5:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "89:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "89:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "b69ef8a8",
"id": 5,
"mutability": "mutable",
"name": "balance",
"nameLocation": "130:7:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "115:22:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "115:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"body": {
"id": 13,
"nodeType": "Block",
"src": "162:78:0",
"statements": [
{
"expression": {
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "172:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 9,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "180:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "184:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "180:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "172:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 12,
"nodeType": "ExpressionStatement",
"src": "172:18:0"
}
]
},
"id": 14,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "159:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "162:0:0"
},
"scope": 57,
"src": "148:92:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "277:71:0",
"statements": [
{
"expression": {
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 17,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "287:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"expression": {
"id": 18,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "298:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "302:5:0",
"memberName": "value",
"nodeType": "MemberAccess",
"src": "298:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "287:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21,
"nodeType": "ExpressionStatement",
"src": "287:20:0"
}
]
},
"id": 23,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [],
"src": "257:2:0"
},
"returnParameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [],
"src": "277:0:0"
},
"scope": 57,
"src": "250:98:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 55,
"nodeType": "Block",
"src": "427:232:0",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 31,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "445:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "449:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "445:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 33,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "459:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "445:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "466:25:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
},
"value": "Only owner can withdraw"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
}
],
"id": 30,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "437:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "437:55:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 37,
"nodeType": "ExpressionStatement",
"src": "437:55:0"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 39,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "510:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"id": 40,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "520:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "510:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "529:20:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
},
"value": "Insufficient funds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
}
],
"id": 38,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "502:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "502:48:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 44,
"nodeType": "ExpressionStatement",
"src": "502:48:0"
},
{
"expression": {
"arguments": [
{
"id": 48,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "587:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 45,
"name": "destAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "569:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 47,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "578:8:0",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "569:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "569:25:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 50,
"nodeType": "ExpressionStatement",
"src": "569:25:0"
},
{
"expression": {
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 51,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "635:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"id": 52,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "646:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "635:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 54,
"nodeType": "ExpressionStatement",
"src": "635:17:0"
}
]
},
"functionSelector": "00f714ce",
"id": 56,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "372:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"mutability": "mutable",
"name": "amount",
"nameLocation": "386:6:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "381:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "381:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "destAddr",
"nameLocation": "410:8:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "394:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "394:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "380:39:0"
},
"returnParameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [],
"src": "427:0:0"
},
"scope": 57,
"src": "363:296:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 58,
"src": "57:604:0",
"usedErrors": []
}
],
"src": "0:661:0"
},
"id": 0
}
}
}
}
{
"id": "bc45838f916a1c7242c4fc98d58cccdf",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.17",
"solcLongVersion": "0.5.17+commit.d19bba13",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": ""
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"errors": [
{
"component": "general",
"formattedMessage": "FeeCollector.sol:1:1: Warning: Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.5.17;\"\n\n^\n",
"message": "Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.5.17;\"",
"severity": "warning",
"sourceLocation": {
"end": 0,
"file": "FeeCollector.sol",
"start": 0
},
"type": "Warning"
}
],
"sources": {
"FeeCollector.sol": {
"ast": {
"absolutePath": "FeeCollector.sol",
"exportedSymbols": {},
"id": 1,
"nodeType": "SourceUnit",
"nodes": [],
"src": "0:0:0"
},
"id": 0
}
}
}
}
{
"id": "d27442dac2dd1208d95f17ffc692074d",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": "pragma solidity ^0.8.7;\n// SPDX-License-Identifier: MIT\n\ncontract FeeCollector {\n address public owner;\n uint256 public balance;\n \n constructor() {\n owner = msg.sender; // sözleşmeyi dağıtan adres bilgileri\n }\n \n receive() payable external {\n balance += msg.value; // keep track of balance (in WEI)\n }\n \n \n function withdraw(uint amount, address payable destAddr) public {\n require(msg.sender == owner, \"Only owner can withdraw\");\n require(amount <= balance, \"Insufficient funds\");\n \n destAddr.transfer(amount); // send funds to given address\n balance -= amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"FeeCollector.sol": {
"FeeCollector": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"FeeCollector.sol\":57:656 contract FeeCollector {... */\n mstore(0x40, 0x80)\n /* \"FeeCollector.sol\":144:235 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"FeeCollector.sol\":168:173 owner */\n 0x00\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"FeeCollector.sol\":176:186 msg.sender */\n caller\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n or\n swap1\n sstore\n /* \"FeeCollector.sol\":57:656 contract FeeCollector {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"FeeCollector.sol\":57:656 contract FeeCollector {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf714ce\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xb69ef8a8\n eq\n tag_5\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n jumpi(tag_2, calldatasize)\n /* \"FeeCollector.sol\":293:302 msg.value */\n callvalue\n /* \"FeeCollector.sol\":282:289 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":282:302 balance += msg.value */\n dup3\n dup3\n sload\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n stop\n /* \"FeeCollector.sol\":57:656 contract FeeCollector {... */\n tag_2:\n 0x00\n dup1\n revert\n /* \"FeeCollector.sol\":358:654 function withdraw(uint amount, address payable destAddr) public {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\n tag_10:\n pop\n tag_11\n tag_12\n calldatasize\n 0x04\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n stop\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_4:\n callvalue\n dup1\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n pop\n sload(0x00)\n tag_16\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_16:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":807:839 */\n swap1\n swap2\n and\n /* \"#utility.yul\":789:840 */\n dup2\n mstore\n /* \"#utility.yul\":777:779 */\n 0x20\n /* \"#utility.yul\":762:780 */\n add\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_18:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_5:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n sload(0x01)\n dup2\n jump\n tag_21:\n mload(0x40)\n /* \"#utility.yul\":997:1022 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":985:987 */\n 0x20\n /* \"#utility.yul\":970:988 */\n add\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_18\n /* \"#utility.yul\":851:1028 */\n jump\n /* \"FeeCollector.sol\":358:654 function withdraw(uint amount, address payable destAddr) public {... */\n tag_14:\n /* \"FeeCollector.sol\":454:459 owner */\n and(sub(shl(0xa0, 0x01), 0x01), sload(0x00))\n /* \"FeeCollector.sol\":440:450 msg.sender */\n caller\n /* \"FeeCollector.sol\":440:459 msg.sender == owner */\n eq\n /* \"FeeCollector.sol\":432:487 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_26\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1235:1237 */\n 0x20\n /* \"FeeCollector.sol\":432:487 require(msg.sender == owner, \"Only owner can withdraw\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1217:1238 */\n mstore\n /* \"#utility.yul\":1274:1276 */\n 0x17\n /* \"#utility.yul\":1254:1272 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1247:1277 */\n mstore\n /* \"#utility.yul\":1313:1338 */\n 0x4f6e6c79206f776e65722063616e207769746864726177000000000000000000\n /* \"#utility.yul\":1293:1311 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1286:1339 */\n mstore\n /* \"#utility.yul\":1356:1374 */\n 0x64\n add\n /* \"FeeCollector.sol\":432:487 require(msg.sender == owner, \"Only owner can withdraw\") */\n tag_27:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_26:\n /* \"FeeCollector.sol\":515:522 balance */\n sload(0x01)\n /* \"FeeCollector.sol\":505:511 amount */\n dup3\n /* \"FeeCollector.sol\":505:522 amount <= balance */\n gt\n iszero\n /* \"FeeCollector.sol\":497:545 require(amount <= balance, \"Insufficient funds\") */\n tag_29\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1587:1589 */\n 0x20\n /* \"FeeCollector.sol\":497:545 require(amount <= balance, \"Insufficient funds\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1569:1590 */\n mstore\n /* \"#utility.yul\":1626:1628 */\n 0x12\n /* \"#utility.yul\":1606:1624 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1599:1629 */\n mstore\n shl(0x70, 0x496e73756666696369656e742066756e6473)\n /* \"#utility.yul\":1645:1663 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1638:1686 */\n mstore\n /* \"#utility.yul\":1703:1721 */\n 0x64\n add\n /* \"FeeCollector.sol\":497:545 require(amount <= balance, \"Insufficient funds\") */\n tag_27\n /* \"#utility.yul\":1385:1727 */\n jump\n /* \"FeeCollector.sol\":497:545 require(amount <= balance, \"Insufficient funds\") */\n tag_29:\n /* \"FeeCollector.sol\":564:589 destAddr.transfer(amount) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"FeeCollector.sol\":564:581 destAddr.transfer */\n dup3\n and\n swap1\n /* \"FeeCollector.sol\":564:589 destAddr.transfer(amount) */\n dup4\n iszero\n 0x08fc\n mul\n swap1\n /* \"FeeCollector.sol\":582:588 amount */\n dup5\n swap1\n /* \"FeeCollector.sol\":564:589 destAddr.transfer(amount) */\n 0x00\n dup2\n dup2\n dup2\n /* \"FeeCollector.sol\":582:588 amount */\n dup6\n /* \"FeeCollector.sol\":564:581 destAddr.transfer */\n dup9\n /* \"FeeCollector.sol\":564:589 destAddr.transfer(amount) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_33\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_33:\n pop\n /* \"FeeCollector.sol\":641:647 amount */\n dup2\n /* \"FeeCollector.sol\":630:637 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":630:647 balance -= amount */\n dup3\n dup3\n sload\n tag_34\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n swap1\n swap2\n sstore\n pop\n pop\n pop\n pop\n /* \"FeeCollector.sol\":358:654 function withdraw(uint amount, address payable destAddr) public {... */\n jump\t// out\n /* \"#utility.yul\":14:141 */\n tag_36:\n /* \"#utility.yul\":75:85 */\n 0x4e487b71\n /* \"#utility.yul\":70:73 */\n 0xe0\n /* \"#utility.yul\":66:86 */\n shl\n /* \"#utility.yul\":63:64 */\n 0x00\n /* \"#utility.yul\":56:87 */\n mstore\n /* \"#utility.yul\":106:110 */\n 0x11\n /* \"#utility.yul\":103:104 */\n 0x04\n /* \"#utility.yul\":96:111 */\n mstore\n /* \"#utility.yul\":130:134 */\n 0x24\n /* \"#utility.yul\":127:128 */\n 0x00\n /* \"#utility.yul\":120:135 */\n revert\n /* \"#utility.yul\":146:271 */\n tag_9:\n /* \"#utility.yul\":211:220 */\n dup1\n dup3\n add\n /* \"#utility.yul\":232:242 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":229:265 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":245:263 */\n tag_41\n tag_36\n jump\t// in\n tag_41:\n /* \"#utility.yul\":146:271 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":276:638 */\n tag_13:\n /* \"#utility.yul\":352:358 */\n 0x00\n /* \"#utility.yul\":360:366 */\n dup1\n /* \"#utility.yul\":413:415 */\n 0x40\n /* \"#utility.yul\":401:410 */\n dup4\n /* \"#utility.yul\":392:399 */\n dup6\n /* \"#utility.yul\":388:411 */\n sub\n /* \"#utility.yul\":384:416 */\n slt\n /* \"#utility.yul\":381:433 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":429:430 */\n 0x00\n /* \"#utility.yul\":426:427 */\n dup1\n /* \"#utility.yul\":419:431 */\n revert\n /* \"#utility.yul\":381:433 */\n tag_43:\n /* \"#utility.yul\":452:475 */\n dup3\n calldataload\n swap2\n pop\n /* \"#utility.yul\":525:527 */\n 0x20\n /* \"#utility.yul\":510:528 */\n dup4\n add\n /* \"#utility.yul\":497:529 */\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":558:589 */\n dup2\n and\n /* \"#utility.yul\":548:590 */\n dup2\n eq\n /* \"#utility.yul\":538:608 */\n tag_44\n jumpi\n /* \"#utility.yul\":604:605 */\n 0x00\n /* \"#utility.yul\":601:602 */\n dup1\n /* \"#utility.yul\":594:606 */\n revert\n /* \"#utility.yul\":538:608 */\n tag_44:\n /* \"#utility.yul\":627:632 */\n dup1\n /* \"#utility.yul\":617:632 */\n swap2\n pop\n pop\n /* \"#utility.yul\":276:638 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1732:1860 */\n tag_35:\n /* \"#utility.yul\":1799:1808 */\n dup2\n dup2\n sub\n /* \"#utility.yul\":1820:1831 */\n dup2\n dup2\n gt\n /* \"#utility.yul\":1817:1854 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":1834:1852 */\n tag_41\n tag_36\n jump\t// in\n\n auxdata: 0xa264697066735822122000068237e24cfc9fc8931d7b4f6608219c7dc03beabf23498c00ba7f173ed34b64736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b0319163317905561028a806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea264697066735822122000068237e24cfc9fc8931d7b4f6608219c7dc03beabf23498c00ba7f173ed34b64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x28A DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP MOD DUP3 CALLDATACOPY 0xE2 0x4C 0xFC SWAP16 0xC8 SWAP4 SAR PUSH28 0x4F6608219C7DC03BEABF23498C00BA7F173ED34B64736F6C63430008 GT STOP CALLER ",
"sourceMap": "57:599:0:-:0;;;144:91;;;;;;;;;-1:-1:-1;168:5:0;:18;;-1:-1:-1;;;;;;168:18:0;176:10;168:18;;;57:599;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 517,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 492,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 577,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 470,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1862:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:173:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:2:1",
"type": "",
"value": "23"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1297:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:18:1"
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1313:25:1",
"type": "",
"value": "Only owner can withdraw"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1286:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1286:53:1"
},
"nodeType": "YulExpressionStatement",
"src": "1286:53:1"
},
{
"nodeType": "YulAssignment",
"src": "1348:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1360:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1371:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1356:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1356:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1348:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:347:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1559:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1576:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1587:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1569:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1569:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1569:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1610:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1621:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1606:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1606:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1626:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1599:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1599:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1599:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1649:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1660:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1645:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1645:18:1"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1665:20:1",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1638:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1638:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "1638:48:1"
},
{
"nodeType": "YulAssignment",
"src": "1695:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1707:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1718:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1703:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1703:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1695:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1536:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1550:4:1",
"type": ""
}
],
"src": "1385:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1781:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1791:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1803:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1806:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1799:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1799:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1791:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1832:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1834:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1834:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1834:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1823:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1829:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1820:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1820:11:1"
},
"nodeType": "YulIf",
"src": "1817:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1763:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1766:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1772:4:1",
"type": ""
}
],
"src": "1732:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Only owner can withdraw\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Insufficient funds\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ec565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610205565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c79206f776e65722063616e20776974686472617700000000000000000060448201526064015b60405180910390fd5b6001548211156101845760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101ba573d6000803e3d6000fd5b5081600160008282546101cd9190610241565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101ff576101ff6101d6565b92915050565b6000806040838503121561021857600080fd5b8235915060208301356001600160a01b038116811461023657600080fd5b809150509250929050565b818103818111156101ff576101ff6101d656fea264697066735822122000068237e24cfc9fc8931d7b4f6608219c7dc03beabf23498c00ba7f173ed34b64736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x205 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x17 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4F6E6C79206F776E65722063616E207769746864726177000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x184 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1BA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CD SWAP2 SWAP1 PUSH2 0x241 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x218 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x236 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FF JUMPI PUSH2 0x1FF PUSH2 0x1D6 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STOP MOD DUP3 CALLDATACOPY 0xE2 0x4C 0xFC SWAP16 0xC8 SWAP4 SAR PUSH28 0x4F6608219C7DC03BEABF23498C00BA7F173ED34B64736F6C63430008 GT STOP CALLER ",
"sourceMap": "57:599:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:9;282:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:599;;;;358:296;;;;;;;;;;-1:-1:-1;358:296:0;;;;;:::i;:::-;;:::i;:::-;;85:20;;;;;;;;;;-1:-1:-1;85:20:0;;;;-1:-1:-1;;;;;85:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;85:20:0;;;;;;;;111:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;111:22:0;851:177:1;358:296:0;454:5;;-1:-1:-1;;;;;454:5:0;440:10;:19;432:55;;;;-1:-1:-1;;;432:55:0;;1235:2:1;432:55:0;;;1217:21:1;1274:2;1254:18;;;1247:30;1313:25;1293:18;;;1286:53;1356:18;;432:55:0;;;;;;;;;515:7;;505:6;:17;;497:48;;;;-1:-1:-1;;;497:48:0;;1587:2:1;497:48:0;;;1569:21:1;1626:2;1606:18;;;1599:30;-1:-1:-1;;;1645:18:1;;;1638:48;1703:18;;497:48:0;1385:342:1;497:48:0;564:25;;-1:-1:-1;;;;;564:17:0;;;:25;;;;;582:6;;564:25;;;;582:6;564:17;:25;;;;;;;;;;;;;;;;;;;;;641:6;630:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;358:296:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1732:128::-;1799:9;;;1820:11;;;1817:37;;;1834:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "130000",
"executionCost": "24412",
"totalCost": "154412"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 656,
"name": "MSTORE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "ISZERO",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPI",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "REVERT",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 168,
"end": 173,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 168,
"end": 186,
"name": "DUP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 168,
"end": 186,
"name": "AND",
"source": 0
},
{
"begin": 176,
"end": 186,
"name": "CALLER",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "OR",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SSTORE",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 656,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 656,
"name": "CODECOPY",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 656,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a264697066735822122000068237e24cfc9fc8931d7b4f6608219c7dc03beabf23498c00ba7f173ed34b64736f6c63430008110033",
".code": [
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 656,
"name": "MSTORE",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 656,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "LT",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 656,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 656,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 57,
"end": 656,
"name": "SHR",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "F714CE"
},
{
"begin": 57,
"end": 656,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 57,
"end": 656,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 57,
"end": 656,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 656,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "B69EF8A8"
},
{
"begin": 57,
"end": 656,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 57,
"end": 656,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 656,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "REVERT",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 656,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 656,
"name": "JUMPI",
"source": 0
},
{
"begin": 293,
"end": 302,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SLOAD",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "SWAP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 282,
"end": 302,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SSTORE",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "STOP",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 656,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 656,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 656,
"name": "REVERT",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 358,
"end": 654,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "DUP1",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "ISZERO",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 358,
"end": 654,
"name": "JUMPI",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 358,
"end": 654,
"name": "DUP1",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "REVERT",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 358,
"end": 654,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 358,
"end": 654,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 358,
"end": 654,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 358,
"end": 654,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 358,
"end": 654,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 358,
"end": 654,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 358,
"end": 654,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 358,
"end": 654,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 358,
"end": 654,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 358,
"end": 654,
"name": "STOP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "ISZERO",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPI",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "REVERT",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "SLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "AND",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "JUMP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 807,
"end": 839,
"name": "SWAP1",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "SWAP2",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "AND",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "DUP2",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "MSTORE",
"source": 1
},
{
"begin": 777,
"end": 779,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 762,
"end": 780,
"name": "ADD",
"source": 1
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SUB",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "RETURN",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "5"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "ISZERO",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPI",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 111,
"end": 133,
"name": "DUP1",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "REVERT",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "20"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "POP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 111,
"end": 133,
"name": "SLOAD",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "DUP2",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "JUMP",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "tag",
"source": 0,
"value": "21"
},
{
"begin": 111,
"end": 133,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 111,
"end": 133,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 111,
"end": 133,
"name": "MLOAD",
"source": 0
},
{
"begin": 997,
"end": 1022,
"name": "SWAP1",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "DUP2",
"source": 1
},
{
"begin": 997,
"end": 1022,
"name": "MSTORE",
"source": 1
},
{
"begin": 985,
"end": 987,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 970,
"end": 988,
"name": "ADD",
"source": 1
},
{
"begin": 111,
"end": 133,
"name": "PUSH [tag]",
"source": 0,
"value": "18"
},
{
"begin": 851,
"end": 1028,
"name": "JUMP",
"source": 1
},
{
"begin": 358,
"end": 654,
"name": "tag",
"source": 0,
"value": "14"
},
{
"begin": 358,
"end": 654,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 454,
"end": 459,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 454,
"end": 459,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 454,
"end": 459,
"name": "AND",
"source": 0
},
{
"begin": 440,
"end": 450,
"name": "CALLER",
"source": 0
},
{
"begin": 440,
"end": 459,
"name": "EQ",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "PUSH [tag]",
"source": 0,
"value": "26"
},
{
"begin": 432,
"end": 487,
"name": "JUMPI",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 432,
"end": 487,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 432,
"end": 487,
"name": "DUP2",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "MSTORE",
"source": 0
},
{
"begin": 1235,
"end": 1237,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 432,
"end": 487,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 432,
"end": 487,
"name": "DUP3",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "ADD",
"source": 0
},
{
"begin": 1217,
"end": 1238,
"name": "MSTORE",
"source": 1
},
{
"begin": 1274,
"end": 1276,
"name": "PUSH",
"source": 1,
"value": "17"
},
{
"begin": 1254,
"end": 1272,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1254,
"end": 1272,
"name": "DUP3",
"source": 1
},
{
"begin": 1254,
"end": 1272,
"name": "ADD",
"source": 1
},
{
"begin": 1247,
"end": 1277,
"name": "MSTORE",
"source": 1
},
{
"begin": 1313,
"end": 1338,
"name": "PUSH",
"source": 1,
"value": "4F6E6C79206F776E65722063616E207769746864726177000000000000000000"
},
{
"begin": 1293,
"end": 1311,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1293,
"end": 1311,
"name": "DUP3",
"source": 1
},
{
"begin": 1293,
"end": 1311,
"name": "ADD",
"source": 1
},
{
"begin": 1286,
"end": 1339,
"name": "MSTORE",
"source": 1
},
{
"begin": 1356,
"end": 1374,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1356,
"end": 1374,
"name": "ADD",
"source": 1
},
{
"begin": 432,
"end": 487,
"name": "tag",
"source": 0,
"value": "27"
},
{
"begin": 432,
"end": 487,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 432,
"end": 487,
"name": "MLOAD",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "DUP1",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "SWAP2",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "SUB",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "SWAP1",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "REVERT",
"source": 0
},
{
"begin": 432,
"end": 487,
"name": "tag",
"source": 0,
"value": "26"
},
{
"begin": 432,
"end": 487,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 515,
"end": 522,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 515,
"end": 522,
"name": "SLOAD",
"source": 0
},
{
"begin": 505,
"end": 511,
"name": "DUP3",
"source": 0
},
{
"begin": 505,
"end": 522,
"name": "GT",
"source": 0
},
{
"begin": 505,
"end": 522,
"name": "ISZERO",
"source": 0
},
{
"begin": 497,
"end": 545,
"name": "PUSH [tag]",
"source": 0,
"value": "29"
},
{
"begin": 497,
"end": 545,
"name": "JUMPI",
"source": 0
},
{
"begin": 497,
"end": 545,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 497,
"end": 545,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "461BCD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "E5"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 497,
"end": 545,
"name": "DUP2",
"source": 0
},
{
"begin": 497,
"end": 545,
"name": "MSTORE",
"source": 0
},
{
"begin": 1587,
"end": 1589,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 497,
"end": 545,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 497,
"end": 545,
"name": "DUP3",
"source": 0
},
{
"begin": 497,
"end": 545,
"name": "ADD",
"source": 0
},
{
"begin": 1569,
"end": 1590,
"name": "MSTORE",
"source": 1
},
{
"begin": 1626,
"end": 1628,
"name": "PUSH",
"source": 1,
"value": "12"
},
{
"begin": 1606,
"end": 1624,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 1606,
"end": 1624,
"name": "DUP3",
"source": 1
},
{
"begin": 1606,
"end": 1624,
"name": "ADD",
"source": 1
},
{
"begin": 1599,
"end": 1629,
"name": "MSTORE",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "496E73756666696369656E742066756E6473"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "70"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": 1645,
"end": 1663,
"name": "PUSH",
"source": 1,
"value": "44"
},
{
"begin": 1645,
"end": 1663,
"name": "DUP3",
"source": 1
},
{
"begin": 1645,
"end": 1663,
"name": "ADD",
"source": 1
},
{
"begin": 1638,
"end": 1686,
"name": "MSTORE",
"source": 1
},
{
"begin": 1703,
"end": 1721,
"name": "PUSH",
"source": 1,
"value": "64"
},
{
"begin": 1703,
"end": 1721,
"name": "ADD",
"source": 1
},
{
"begin": 497,
"end": 545,
"name": "PUSH [tag]",
"source": 0,
"value": "27"
},
{
"begin": 1385,
"end": 1727,
"name": "JUMP",
"source": 1
},
{
"begin": 497,
"end": 545,
"name": "tag",
"source": 0,
"value": "29"
},
{
"begin": 497,
"end": 545,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 564,
"end": 589,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 564,
"end": 581,
"name": "DUP3",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "AND",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "SWAP1",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "DUP4",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "ISZERO",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "PUSH",
"source": 0,
"value": "8FC"
},
{
"begin": 564,
"end": 589,
"name": "MUL",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "SWAP1",
"source": 0
},
{
"begin": 582,
"end": 588,
"name": "DUP5",
"source": 0
},
{
"begin": 582,
"end": 588,
"name": "SWAP1",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 564,
"end": 589,
"name": "DUP2",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "DUP2",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "DUP2",
"source": 0
},
{
"begin": 582,
"end": 588,
"name": "DUP6",
"source": 0
},
{
"begin": 564,
"end": 581,
"name": "DUP9",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "DUP9",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "CALL",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "SWAP4",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "POP",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "POP",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "POP",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "POP",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "ISZERO",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "DUP1",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "ISZERO",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "PUSH [tag]",
"source": 0,
"value": "33"
},
{
"begin": 564,
"end": 589,
"name": "JUMPI",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 564,
"end": 589,
"name": "DUP1",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "RETURNDATACOPY",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "RETURNDATASIZE",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 564,
"end": 589,
"name": "REVERT",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "tag",
"source": 0,
"value": "33"
},
{
"begin": 564,
"end": 589,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 564,
"end": 589,
"name": "POP",
"source": 0
},
{
"begin": 641,
"end": 647,
"name": "DUP2",
"source": 0
},
{
"begin": 630,
"end": 637,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 630,
"end": 637,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 630,
"end": 647,
"name": "DUP3",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "DUP3",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "SLOAD",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "PUSH [tag]",
"source": 0,
"value": "34"
},
{
"begin": 630,
"end": 647,
"name": "SWAP2",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "SWAP1",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "PUSH [tag]",
"source": 0,
"value": "35"
},
{
"begin": 630,
"end": 647,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "tag",
"source": 0,
"value": "34"
},
{
"begin": 630,
"end": 647,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "SWAP1",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "SWAP2",
"source": 0
},
{
"begin": 630,
"end": 647,
"name": "SSTORE",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 358,
"end": 654,
"jumpType": "[out]",
"name": "JUMP",
"source": 0
},
{
"begin": 14,
"end": 141,
"name": "tag",
"source": 1,
"value": "36"
},
{
"begin": 14,
"end": 141,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 75,
"end": 85,
"name": "PUSH",
"source": 1,
"value": "4E487B71"
},
{
"begin": 70,
"end": 73,
"name": "PUSH",
"source": 1,
"value": "E0"
},
{
"begin": 66,
"end": 86,
"name": "SHL",
"source": 1
},
{
"begin": 63,
"end": 64,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 56,
"end": 87,
"name": "MSTORE",
"source": 1
},
{
"begin": 106,
"end": 110,
"name": "PUSH",
"source": 1,
"value": "11"
},
{
"begin": 103,
"end": 104,
"name": "PUSH",
"source": 1,
"value": "4"
},
{
"begin": 96,
"end": 111,
"name": "MSTORE",
"source": 1
},
{
"begin": 130,
"end": 134,
"name": "PUSH",
"source": 1,
"value": "24"
},
{
"begin": 127,
"end": 128,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 120,
"end": 135,
"name": "REVERT",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "tag",
"source": 1,
"value": "9"
},
{
"begin": 146,
"end": 271,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP1",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "DUP3",
"source": 1
},
{
"begin": 211,
"end": 220,
"name": "ADD",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP1",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "DUP3",
"source": 1
},
{
"begin": 232,
"end": 242,
"name": "GT",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "ISZERO",
"source": 1
},
{
"begin": 229,
"end": 265,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 229,
"end": 265,
"name": "JUMPI",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 245,
"end": 263,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
},
{
"begin": 245,
"end": 263,
"name": "tag",
"source": 1,
"value": "41"
},
{
"begin": 245,
"end": 263,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP3",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "SWAP2",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"name": "POP",
"source": 1
},
{
"begin": 146,
"end": 271,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "tag",
"source": 1,
"value": "13"
},
{
"begin": 276,
"end": 638,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 352,
"end": 358,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 360,
"end": 366,
"name": "DUP1",
"source": 1
},
{
"begin": 413,
"end": 415,
"name": "PUSH",
"source": 1,
"value": "40"
},
{
"begin": 401,
"end": 410,
"name": "DUP4",
"source": 1
},
{
"begin": 392,
"end": 399,
"name": "DUP6",
"source": 1
},
{
"begin": 388,
"end": 411,
"name": "SUB",
"source": 1
},
{
"begin": 384,
"end": 416,
"name": "SLT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "ISZERO",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "PUSH [tag]",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPI",
"source": 1
},
{
"begin": 429,
"end": 430,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 426,
"end": 427,
"name": "DUP1",
"source": 1
},
{
"begin": 419,
"end": 431,
"name": "REVERT",
"source": 1
},
{
"begin": 381,
"end": 433,
"name": "tag",
"source": 1,
"value": "43"
},
{
"begin": 381,
"end": 433,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "DUP3",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": 452,
"end": 475,
"name": "SWAP2",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 525,
"end": 527,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 510,
"end": 528,
"name": "DUP4",
"source": 1
},
{
"begin": 510,
"end": 528,
"name": "ADD",
"source": 1
},
{
"begin": 497,
"end": 529,
"name": "CALLDATALOAD",
"source": 1
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 558,
"end": 589,
"name": "DUP2",
"source": 1
},
{
"begin": 558,
"end": 589,
"name": "AND",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "DUP2",
"source": 1
},
{
"begin": 548,
"end": 590,
"name": "EQ",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "PUSH [tag]",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPI",
"source": 1
},
{
"begin": 604,
"end": 605,
"name": "PUSH",
"source": 1,
"value": "0"
},
{
"begin": 601,
"end": 602,
"name": "DUP1",
"source": 1
},
{
"begin": 594,
"end": 606,
"name": "REVERT",
"source": 1
},
{
"begin": 538,
"end": 608,
"name": "tag",
"source": 1,
"value": "44"
},
{
"begin": 538,
"end": 608,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 627,
"end": 632,
"name": "DUP1",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "SWAP2",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 617,
"end": 632,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP3",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "SWAP1",
"source": 1
},
{
"begin": 276,
"end": 638,
"name": "POP",
"source": 1
},
{
"begin": 276,
"end": 638,
"jumpType": "[out]",
"name": "JUMP",
"source": 1
},
{
"begin": 1732,
"end": 1860,
"name": "tag",
"source": 1,
"value": "35"
},
{
"begin": 1732,
"end": 1860,
"name": "JUMPDEST",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "DUP2",
"source": 1
},
{
"begin": 1799,
"end": 1808,
"name": "SUB",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "DUP2",
"source": 1
},
{
"begin": 1820,
"end": 1831,
"name": "GT",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "ISZERO",
"source": 1
},
{
"begin": 1817,
"end": 1854,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1817,
"end": 1854,
"name": "JUMPI",
"source": 1
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "41"
},
{
"begin": 1834,
"end": 1852,
"name": "PUSH [tag]",
"source": 1,
"value": "36"
},
{
"begin": 1834,
"end": 1852,
"jumpType": "[in]",
"name": "JUMP",
"source": 1
}
]
}
},
"sourceList": [
"FeeCollector.sol",
"#utility.yul"
]
},
"methodIdentifiers": {
"balance()": "b69ef8a8",
"owner()": "8da5cb5b",
"withdraw(uint256,address)": "00f714ce"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"balance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"destAddr\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"FeeCollector.sol\":\"FeeCollector\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"FeeCollector.sol\":{\"keccak256\":\"0xa14c82482d0217d25b23ff8c85d84d3da606a6bd9aaa159b191dd8e915957bac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://14b9eb99449cd3c83608bdb2bd73aed668f6a882cbf3642b905aed41efbac140\",\"dweb:/ipfs/QmWJAPseovn91vv4L51nJkseyK7qVKatyfyu1k15E2sUWy\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "FeeCollector.sol:FeeCollector",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 5,
"contract": "FeeCollector.sol:FeeCollector",
"label": "balance",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
}
}
},
"sources": {
"FeeCollector.sol": {
"ast": {
"absolutePath": "FeeCollector.sol",
"exportedSymbols": {
"FeeCollector": [
57
]
},
"id": 58,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.8",
".7"
],
"nodeType": "PragmaDirective",
"src": "0:23:0"
},
{
"abstract": false,
"baseContracts": [],
"canonicalName": "FeeCollector",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"id": 57,
"linearizedBaseContracts": [
57
],
"name": "FeeCollector",
"nameLocation": "66:12:0",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"functionSelector": "8da5cb5b",
"id": 3,
"mutability": "mutable",
"name": "owner",
"nameLocation": "100:5:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "85:20:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "85:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "public"
},
{
"constant": false,
"functionSelector": "b69ef8a8",
"id": 5,
"mutability": "mutable",
"name": "balance",
"nameLocation": "126:7:0",
"nodeType": "VariableDeclaration",
"scope": 57,
"src": "111:22:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "111:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "public"
},
{
"body": {
"id": 13,
"nodeType": "Block",
"src": "158:77:0",
"statements": [
{
"expression": {
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 8,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "168:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"expression": {
"id": 9,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "176:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "180:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "176:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "168:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 12,
"nodeType": "ExpressionStatement",
"src": "168:18:0"
}
]
},
"id": 14,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "155:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "158:0:0"
},
"scope": 57,
"src": "144:91:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 22,
"nodeType": "Block",
"src": "272:71:0",
"statements": [
{
"expression": {
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 17,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "282:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"expression": {
"id": 18,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "293:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 19,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "297:5:0",
"memberName": "value",
"nodeType": "MemberAccess",
"src": "293:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "282:20:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 21,
"nodeType": "ExpressionStatement",
"src": "282:20:0"
}
]
},
"id": 23,
"implemented": true,
"kind": "receive",
"modifiers": [],
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [],
"src": "252:2:0"
},
"returnParameters": {
"id": 16,
"nodeType": "ParameterList",
"parameters": [],
"src": "272:0:0"
},
"scope": 57,
"src": "245:98:0",
"stateMutability": "payable",
"virtual": false,
"visibility": "external"
},
{
"body": {
"id": 55,
"nodeType": "Block",
"src": "422:232:0",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 31,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4294967281,
"src": "440:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "444:6:0",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "440:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 33,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "454:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "440:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4f6e6c79206f776e65722063616e207769746864726177",
"id": 35,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "461:25:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
},
"value": "Only owner can withdraw"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_5e9f184f94ce24cc63fc5ec28c25b2861cda6fa2c12f36c889d1b47ea3eab6ac",
"typeString": "literal_string \"Only owner can withdraw\""
}
],
"id": 30,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "432:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 36,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "432:55:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 37,
"nodeType": "ExpressionStatement",
"src": "432:55:0"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 41,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 39,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "505:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"id": 40,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "515:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "505:17:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"id": 42,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "524:20:0",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
},
"value": "Insufficient funds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d",
"typeString": "literal_string \"Insufficient funds\""
}
],
"id": 38,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "497:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 43,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "497:48:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 44,
"nodeType": "ExpressionStatement",
"src": "497:48:0"
},
{
"expression": {
"arguments": [
{
"id": 48,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "582:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 45,
"name": "destAddr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27,
"src": "564:8:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 47,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "573:8:0",
"memberName": "transfer",
"nodeType": "MemberAccess",
"src": "564:17:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "564:25:0",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 50,
"nodeType": "ExpressionStatement",
"src": "564:25:0"
},
{
"expression": {
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 51,
"name": "balance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "630:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"id": 52,
"name": "amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25,
"src": "641:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "630:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 54,
"nodeType": "ExpressionStatement",
"src": "630:17:0"
}
]
},
"functionSelector": "00f714ce",
"id": 56,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdraw",
"nameLocation": "367:8:0",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 28,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"mutability": "mutable",
"name": "amount",
"nameLocation": "381:6:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "376:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "376:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 27,
"mutability": "mutable",
"name": "destAddr",
"nameLocation": "405:8:0",
"nodeType": "VariableDeclaration",
"scope": 56,
"src": "389:24:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 26,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "389:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"visibility": "internal"
}
],
"src": "375:39:0"
},
"returnParameters": {
"id": 29,
"nodeType": "ParameterList",
"parameters": [],
"src": "422:0:0"
},
"scope": 57,
"src": "358:296:0",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
}
],
"scope": 58,
"src": "57:599:0",
"usedErrors": []
}
],
"src": "0:656:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610288806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ea565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610203565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820181905260248201527f53616465636520736f7a6c65736d65207361686962692063656b6562696c697260448201526064015b60405180910390fd5b6001548211156101825760405162461bcd60e51b815260206004820152601060248201526f596574657273697a2062616b6979652160801b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101b8573d6000803e3d6000fd5b5081600160008282546101cb919061023f565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101fd576101fd6101d4565b92915050565b6000806040838503121561021657600080fd5b8235915060208301356001600160a01b038116811461023457600080fd5b809150509250929050565b818103818111156101fd576101fd6101d456fea2646970667358221220d17755ca28c7f9759b10143874033ac6bb6c3c442ebfc9215f370dca831a709764736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x288 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x203 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616465636520736F7A6C65736D65207361686962692063656B6562696C6972 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x596574657273697A2062616B69796521 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 PUSH24 0x55CA28C7F9759B10143874033AC6BB6C3C442EBFC9215F37 0xD 0xCA DUP4 BYTE PUSH17 0x9764736F6C634300081100330000000000 ",
"sourceMap": "57:533:0:-:0;;;144:91;;;;;;;;;-1:-1:-1;168:5:0;:18;;-1:-1:-1;;;;;;168:18:0;176:10;168:18;;;57:533;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 515,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 490,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 575,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 468,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1869:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:182:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1297:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1308:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1293:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1293:18:1"
},
{
"hexValue": "53616465636520736f7a6c65736d65207361686962692063656b6562696c6972",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1313:34:1",
"type": "",
"value": "Sadece sozlesme sahibi cekebilir"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1286:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1286:62:1"
},
"nodeType": "YulExpressionStatement",
"src": "1286:62:1"
},
{
"nodeType": "YulAssignment",
"src": "1357:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1369:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1380:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1365:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1357:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:356:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1568:166:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1585:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1596:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1578:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1578:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1578:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1619:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1630:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1615:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1615:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1635:2:1",
"type": "",
"value": "16"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1608:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1608:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1608:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1658:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1669:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1654:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1654:18:1"
},
{
"hexValue": "596574657273697a2062616b69796521",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1674:18:1",
"type": "",
"value": "Yetersiz bakiye!"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1647:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1647:46:1"
},
"nodeType": "YulExpressionStatement",
"src": "1647:46:1"
},
{
"nodeType": "YulAssignment",
"src": "1702:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1714:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1725:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1710:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1710:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1702:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1545:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1559:4:1",
"type": ""
}
],
"src": "1394:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1788:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1798:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1810:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1813:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1806:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1806:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1798:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1839:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1841:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1841:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1841:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1830:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1836:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1827:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1827:11:1"
},
"nodeType": "YulIf",
"src": "1824:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1770:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1773:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1779:4:1",
"type": ""
}
],
"src": "1739:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_6239485ffa69551f0b871ffa5edcee9439c7cb3f5b0df1ae40f27e8da3842c95__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Sadece sozlesme sahibi cekebilir\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bbbe5ad5a5cbf315ca3fbd0129598ad54bbafcf5cfd6d014e0322247f039e86f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Yetersiz bakiye!\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101ea565b925050819055005b600080fd5b34801561006757600080fd5b5061007b610076366004610203565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b0316331461013d5760405162461bcd60e51b815260206004820181905260248201527f53616465636520736f7a6c65736d65207361686962692063656b6562696c697260448201526064015b60405180910390fd5b6001548211156101825760405162461bcd60e51b815260206004820152601060248201526f596574657273697a2062616b6979652160801b6044820152606401610134565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101b8573d6000803e3d6000fd5b5081600160008282546101cb919061023f565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101fd576101fd6101d4565b92915050565b6000806040838503121561021657600080fd5b8235915060208301356001600160a01b038116811461023457600080fd5b809150509250929050565b818103818111156101fd576101fd6101d456fea2646970667358221220d17755ca28c7f9759b10143874033ac6bb6c3c442ebfc9215f370dca831a709764736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1EA JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x203 JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x13D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x53616465636520736F7A6C65736D65207361686962692063656B6562696C6972 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x596574657273697A2062616B69796521 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1B8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1CB SWAP2 SWAP1 PUSH2 0x23F JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x216 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x234 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1FD JUMPI PUSH2 0x1FD PUSH2 0x1D4 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 PUSH24 0x55CA28C7F9759B10143874033AC6BB6C3C442EBFC9215F37 0xD 0xCA DUP4 BYTE PUSH17 0x9764736F6C634300081100330000000000 ",
"sourceMap": "57:533:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:9;282:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:533;;;;325:263;;;;;;;;;;-1:-1:-1;325:263:0;;;;;:::i;:::-;;:::i;:::-;;85:20;;;;;;;;;;-1:-1:-1;85:20:0;;;;-1:-1:-1;;;;;85:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;85:20:0;;;;;;;;111:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;111:22:0;851:177:1;325:263:0;421:5;;-1:-1:-1;;;;;421:5:0;407:10;:19;399:64;;;;-1:-1:-1;;;399:64:0;;1235:2:1;399:64:0;;;1217:21:1;;;1254:18;;;1247:30;1313:34;1293:18;;;1286:62;1365:18;;399:64:0;;;;;;;;;491:7;;481:6;:17;;473:46;;;;-1:-1:-1;;;473:46:0;;1596:2:1;473:46:0;;;1578:21:1;1635:2;1615:18;;;1608:30;-1:-1:-1;;;1654:18:1;;;1647:46;1710:18;;473:46:0;1394:340:1;473:46:0;529:25;;-1:-1:-1;;;;;529:17:0;;;:25;;;;;547:6;;529:25;;;;547:6;529:17;:25;;;;;;;;;;;;;;;;;;;;;575:6;564:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;325:263:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1739:128::-;1806:9;;;1827:11;;;1824:37;;;1841:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "129600",
"executionCost": "24412",
"totalCost": "154012"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"methodIdentifiers": {
"balance()": "b69ef8a8",
"owner()": "8da5cb5b",
"withdraw(uint256,address)": "00f714ce"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
]
}
{
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FeeCollector.sol": "FeeCollector"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"FeeCollector.sol": {
"keccak256": "0xa306c1666bb709f53166253f4ed8bdf621f89c5aea86718e6e6c03de170e3ebf",
"license": "MIT",
"urls": [
"bzz-raw://6bc401a29efe593dd3f7e81c1b451d61d767f938505f1b4543e5cca8a321fecc",
"dweb:/ipfs/Qme6oW1CSmLuUFJ389Y8ZJqBJYnfSh3BrLbc7bDP5i3XCF"
]
}
},
"version": 1
}
pragma solidity ^0.8.7;
// SPDX-License-Identifier: MIT
contract FeeCollector {
address public owner;
uint256 public balance;
constructor() {
owner = msg.sender; // sözleşmeyi dağıtan adres bilgileri
}
receive() payable external {
balance += msg.value;
}
function withdraw(uint amount, address payable destAddr) public {
require(msg.sender == owner, "Sadece sozlesme sahibi cekebilir");
require(amount <= balance, "Yetersiz bakiye!");
destAddr.transfer(amount);
balance -= amount;
}
}
This file has been truncated, but you can view the full file.
{
"id": "d87f0491e64b091105a27c68506551e2",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.8.17",
"solcLongVersion": "0.8.17+commit.8df45f5f",
"input": {
"language": "Solidity",
"sources": {
"FeeCollector.sol": {
"content": "pragma solidity ^0.8.7;\n// SPDX-License-Identifier: MIT\n\ncontract FeeCollector {\n address public owner;\n uint256 public balance;\n \n constructor() {\n owner = msg.sender; // sözleşmeyi dağıtan adres bilgileri\n }\n \n receive() payable external {\n balance += msg.value; \n }\n \n \n function withdraw(uint amount, address payable destAddr) public {\n require(msg.sender == owner, \"Sadece \");\n require(amount <= balance, \"Insufficient funds\");\n \n destAddr.transfer(amount); // send funds to given address\n balance -= amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"FeeCollector.sol": {
"FeeCollector": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "balance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "address payable",
"name": "destAddr",
"type": "address"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"evm": {
"assembly": " /* \"FeeCollector.sol\":57:607 contract FeeCollector {... */\n mstore(0x40, 0x80)\n /* \"FeeCollector.sol\":144:235 constructor() {... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"FeeCollector.sol\":168:173 owner */\n 0x00\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n dup1\n sload\n not(sub(shl(0xa0, 0x01), 0x01))\n and\n /* \"FeeCollector.sol\":176:186 msg.sender */\n caller\n /* \"FeeCollector.sol\":168:186 owner = msg.sender */\n or\n swap1\n sstore\n /* \"FeeCollector.sol\":57:607 contract FeeCollector {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"FeeCollector.sol\":57:607 contract FeeCollector {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xf714ce\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xb69ef8a8\n eq\n tag_5\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n jumpi(tag_2, calldatasize)\n /* \"FeeCollector.sol\":293:302 msg.value */\n callvalue\n /* \"FeeCollector.sol\":282:289 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":282:302 balance += msg.value */\n dup3\n dup3\n sload\n tag_8\n swap2\n swap1\n tag_9\n jump\t// in\n tag_8:\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n stop\n /* \"FeeCollector.sol\":57:607 contract FeeCollector {... */\n tag_2:\n 0x00\n dup1\n revert\n /* \"FeeCollector.sol\":325:605 function withdraw(uint amount, address payable destAddr) public {... */\n tag_3:\n callvalue\n dup1\n iszero\n tag_10\n jumpi\n 0x00\n dup1\n revert\n tag_10:\n pop\n tag_11\n tag_12\n calldatasize\n 0x04\n tag_13\n jump\t// in\n tag_12:\n tag_14\n jump\t// in\n tag_11:\n stop\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_4:\n callvalue\n dup1\n iszero\n tag_15\n jumpi\n 0x00\n dup1\n revert\n tag_15:\n pop\n sload(0x00)\n tag_16\n swap1\n sub(shl(0xa0, 0x01), 0x01)\n and\n dup2\n jump\n tag_16:\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":807:839 */\n swap1\n swap2\n and\n /* \"#utility.yul\":789:840 */\n dup2\n mstore\n /* \"#utility.yul\":777:779 */\n 0x20\n /* \"#utility.yul\":762:780 */\n add\n /* \"FeeCollector.sol\":85:105 address public owner */\n tag_18:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_5:\n callvalue\n dup1\n iszero\n tag_20\n jumpi\n 0x00\n dup1\n revert\n tag_20:\n pop\n tag_21\n sload(0x01)\n dup2\n jump\n tag_21:\n mload(0x40)\n /* \"#utility.yul\":997:1022 */\n swap1\n dup2\n mstore\n /* \"#utility.yul\":985:987 */\n 0x20\n /* \"#utility.yul\":970:988 */\n add\n /* \"FeeCollector.sol\":111:133 uint256 public balance */\n tag_18\n /* \"#utility.yul\":851:1028 */\n jump\n /* \"FeeCollector.sol\":325:605 function withdraw(uint amount, address payable destAddr) public {... */\n tag_14:\n /* \"FeeCollector.sol\":421:426 owner */\n and(sub(shl(0xa0, 0x01), 0x01), sload(0x00))\n /* \"FeeCollector.sol\":407:417 msg.sender */\n caller\n /* \"FeeCollector.sol\":407:426 msg.sender == owner */\n eq\n /* \"FeeCollector.sol\":399:438 require(msg.sender == owner, \"Sadece \") */\n tag_26\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1235:1237 */\n 0x20\n /* \"FeeCollector.sol\":399:438 require(msg.sender == owner, \"Sadece \") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1217:1238 */\n mstore\n /* \"#utility.yul\":1274:1275 */\n 0x07\n /* \"#utility.yul\":1254:1272 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1247:1276 */\n mstore\n shl(0xcd, 0x029b0b232b1b29)\n /* \"#utility.yul\":1292:1310 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1285:1322 */\n mstore\n /* \"#utility.yul\":1339:1357 */\n 0x64\n add\n /* \"FeeCollector.sol\":399:438 require(msg.sender == owner, \"Sadece \") */\n tag_27:\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_26:\n /* \"FeeCollector.sol\":466:473 balance */\n sload(0x01)\n /* \"FeeCollector.sol\":456:462 amount */\n dup3\n /* \"FeeCollector.sol\":456:473 amount <= balance */\n gt\n iszero\n /* \"FeeCollector.sol\":448:496 require(amount <= balance, \"Insufficient funds\") */\n tag_29\n jumpi\n mload(0x40)\n shl(0xe5, 0x461bcd)\n dup2\n mstore\n /* \"#utility.yul\":1570:1572 */\n 0x20\n /* \"FeeCollector.sol\":448:496 require(amount <= balance, \"Insufficient funds\") */\n 0x04\n dup3\n add\n /* \"#utility.yul\":1552:1573 */\n mstore\n /* \"#utility.yul\":1609:1611 */\n 0x12\n /* \"#utility.yul\":1589:1607 */\n 0x24\n dup3\n add\n /* \"#utility.yul\":1582:1612 */\n mstore\n shl(0x70, 0x496e73756666696369656e742066756e6473)\n /* \"#utility.yul\":1628:1646 */\n 0x44\n dup3\n add\n /* \"#utility.yul\":1621:1669 */\n mstore\n /* \"#utility.yul\":1686:1704 */\n 0x64\n add\n /* \"FeeCollector.sol\":448:496 require(amount <= balance, \"Insufficient funds\") */\n tag_27\n /* \"#utility.yul\":1368:1710 */\n jump\n /* \"FeeCollector.sol\":448:496 require(amount <= balance, \"Insufficient funds\") */\n tag_29:\n /* \"FeeCollector.sol\":515:540 destAddr.transfer(amount) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"FeeCollector.sol\":515:532 destAddr.transfer */\n dup3\n and\n swap1\n /* \"FeeCollector.sol\":515:540 destAddr.transfer(amount) */\n dup4\n iszero\n 0x08fc\n mul\n swap1\n /* \"FeeCollector.sol\":533:539 amount */\n dup5\n swap1\n /* \"FeeCollector.sol\":515:540 destAddr.transfer(amount) */\n 0x00\n dup2\n dup2\n dup2\n /* \"FeeCollector.sol\":533:539 amount */\n dup6\n /* \"FeeCollector.sol\":515:532 destAddr.transfer */\n dup9\n /* \"FeeCollector.sol\":515:540 destAddr.transfer(amount) */\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n dup1\n iszero\n tag_33\n jumpi\n returndatasize\n 0x00\n dup1\n returndatacopy\n revert(0x00, returndatasize)\n tag_33:\n pop\n /* \"FeeCollector.sol\":592:598 amount */\n dup2\n /* \"FeeCollector.sol\":581:588 balance */\n 0x01\n 0x00\n /* \"FeeCollector.sol\":581:598 balance -= amount */\n dup3\n dup3\n sload\n tag_34\n swap2\n swap1\n tag_35\n jump\t// in\n tag_34:\n swap1\n swap2\n sstore\n pop\n pop\n pop\n pop\n /* \"FeeCollector.sol\":325:605 function withdraw(uint amount, address payable destAddr) public {... */\n jump\t// out\n /* \"#utility.yul\":14:141 */\n tag_36:\n /* \"#utility.yul\":75:85 */\n 0x4e487b71\n /* \"#utility.yul\":70:73 */\n 0xe0\n /* \"#utility.yul\":66:86 */\n shl\n /* \"#utility.yul\":63:64 */\n 0x00\n /* \"#utility.yul\":56:87 */\n mstore\n /* \"#utility.yul\":106:110 */\n 0x11\n /* \"#utility.yul\":103:104 */\n 0x04\n /* \"#utility.yul\":96:111 */\n mstore\n /* \"#utility.yul\":130:134 */\n 0x24\n /* \"#utility.yul\":127:128 */\n 0x00\n /* \"#utility.yul\":120:135 */\n revert\n /* \"#utility.yul\":146:271 */\n tag_9:\n /* \"#utility.yul\":211:220 */\n dup1\n dup3\n add\n /* \"#utility.yul\":232:242 */\n dup1\n dup3\n gt\n /* \"#utility.yul\":229:265 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":245:263 */\n tag_41\n tag_36\n jump\t// in\n tag_41:\n /* \"#utility.yul\":146:271 */\n swap3\n swap2\n pop\n pop\n jump\t// out\n /* \"#utility.yul\":276:638 */\n tag_13:\n /* \"#utility.yul\":352:358 */\n 0x00\n /* \"#utility.yul\":360:366 */\n dup1\n /* \"#utility.yul\":413:415 */\n 0x40\n /* \"#utility.yul\":401:410 */\n dup4\n /* \"#utility.yul\":392:399 */\n dup6\n /* \"#utility.yul\":388:411 */\n sub\n /* \"#utility.yul\":384:416 */\n slt\n /* \"#utility.yul\":381:433 */\n iszero\n tag_43\n jumpi\n /* \"#utility.yul\":429:430 */\n 0x00\n /* \"#utility.yul\":426:427 */\n dup1\n /* \"#utility.yul\":419:431 */\n revert\n /* \"#utility.yul\":381:433 */\n tag_43:\n /* \"#utility.yul\":452:475 */\n dup3\n calldataload\n swap2\n pop\n /* \"#utility.yul\":525:527 */\n 0x20\n /* \"#utility.yul\":510:528 */\n dup4\n add\n /* \"#utility.yul\":497:529 */\n calldataload\n sub(shl(0xa0, 0x01), 0x01)\n /* \"#utility.yul\":558:589 */\n dup2\n and\n /* \"#utility.yul\":548:590 */\n dup2\n eq\n /* \"#utility.yul\":538:608 */\n tag_44\n jumpi\n /* \"#utility.yul\":604:605 */\n 0x00\n /* \"#utility.yul\":601:602 */\n dup1\n /* \"#utility.yul\":594:606 */\n revert\n /* \"#utility.yul\":538:608 */\n tag_44:\n /* \"#utility.yul\":627:632 */\n dup1\n /* \"#utility.yul\":617:632 */\n swap2\n pop\n pop\n /* \"#utility.yul\":276:638 */\n swap3\n pop\n swap3\n swap1\n pop\n jump\t// out\n /* \"#utility.yul\":1715:1843 */\n tag_35:\n /* \"#utility.yul\":1782:1791 */\n dup2\n dup2\n sub\n /* \"#utility.yul\":1803:1814 */\n dup2\n dup2\n gt\n /* \"#utility.yul\":1800:1837 */\n iszero\n tag_41\n jumpi\n /* \"#utility.yul\":1817:1835 */\n tag_41\n tag_36\n jump\t// in\n\n auxdata: 0xa2646970667358221220bf70dd0d83a9c86a649547bce4dc93f2555d20b780ad11808223f2600980bb6664736f6c63430008110033\n}\n",
"bytecode": {
"functionDebugData": {
"@_14": {
"entryPoint": null,
"id": 14,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610274806100326000396000f3fe6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101d6565b925050819055005b600080fd5b34801561006757600080fd5b5061007b6100763660046101ef565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b031633146101275760405162461bcd60e51b8152602060048201526007602482015266029b0b232b1b2960cd1b60448201526064015b60405180910390fd5b60015482111561016e5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015260640161011e565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101a4573d6000803e3d6000fd5b5081600160008282546101b7919061022b565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101e9576101e96101c0565b92915050565b6000806040838503121561020257600080fd5b8235915060208301356001600160a01b038116811461022057600080fd5b809150509250929050565b818103818111156101e9576101e96101c056fea2646970667358221220bf70dd0d83a9c86a649547bce4dc93f2555d20b780ad11808223f2600980bb6664736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND CALLER OR SWAP1 SSTORE PUSH2 0x274 DUP1 PUSH2 0x32 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1D6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x1EF JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x127 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x29B0B232B1B29 PUSH1 0xCD SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x16E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x11E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x22B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1E9 JUMPI PUSH2 0x1E9 PUSH2 0x1C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x202 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1E9 JUMPI PUSH2 0x1E9 PUSH2 0x1C0 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF PUSH17 0xDD0D83A9C86A649547BCE4DC93F2555D20 0xB7 DUP1 0xAD GT DUP1 DUP3 0x23 CALLCODE PUSH1 0x9 DUP1 0xBB PUSH7 0x64736F6C634300 ADDMOD GT STOP CALLER ",
"sourceMap": "57:550:0:-:0;;;144:91;;;;;;;;;-1:-1:-1;168:5:0;:18;;-1:-1:-1;;;;;;168:18:0;176:10;168:18;;;57:550;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@_23": {
"entryPoint": null,
"id": 23,
"parameterSlots": 0,
"returnSlots": 0
},
"@balance_5": {
"entryPoint": null,
"id": 5,
"parameterSlots": 0,
"returnSlots": 0
},
"@owner_3": {
"entryPoint": null,
"id": 3,
"parameterSlots": 0,
"returnSlots": 0
},
"@withdraw_56": {
"entryPoint": 222,
"id": 56,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_decode_tuple_t_uint256t_address_payable": {
"entryPoint": 495,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_32b82e662b3c10720301c00155de4eee28dc52f8fea8f95cd96d124d988d92c7__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": null,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_add_t_uint256": {
"entryPoint": 470,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"checked_sub_t_uint256": {
"entryPoint": 555,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 448,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1845:1",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:1",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "46:95:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "63:1:1",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "70:3:1",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "75:10:1",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "66:3:1"
},
"nodeType": "YulFunctionCall",
"src": "66:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "56:6:1"
},
"nodeType": "YulFunctionCall",
"src": "56:31:1"
},
"nodeType": "YulExpressionStatement",
"src": "56:31:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "103:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "106:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "96:6:1"
},
"nodeType": "YulFunctionCall",
"src": "96:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "96:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "127:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "130:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "120:6:1"
},
"nodeType": "YulFunctionCall",
"src": "120:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "120:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "14:127:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "194:77:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "204:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "215:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "218:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "211:3:1"
},
"nodeType": "YulFunctionCall",
"src": "211:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "204:3:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "243:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "245:16:1"
},
"nodeType": "YulFunctionCall",
"src": "245:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "245:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "235:1:1"
},
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "238:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "232:2:1"
},
"nodeType": "YulFunctionCall",
"src": "232:10:1"
},
"nodeType": "YulIf",
"src": "229:36:1"
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "177:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "180:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "186:3:1",
"type": ""
}
],
"src": "146:125:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "371:267:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "417:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "426:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "419:6:1"
},
"nodeType": "YulFunctionCall",
"src": "419:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "419:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "392:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "401:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "388:3:1"
},
"nodeType": "YulFunctionCall",
"src": "388:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "413:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "384:3:1"
},
"nodeType": "YulFunctionCall",
"src": "384:32:1"
},
"nodeType": "YulIf",
"src": "381:52:1"
},
{
"nodeType": "YulAssignment",
"src": "442:33:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "465:9:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "452:12:1"
},
"nodeType": "YulFunctionCall",
"src": "452:23:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "442:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "484:45:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "514:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "525:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "510:3:1"
},
"nodeType": "YulFunctionCall",
"src": "510:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "497:12:1"
},
"nodeType": "YulFunctionCall",
"src": "497:32:1"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "488:5:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "592:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "601:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "604:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "594:6:1"
},
"nodeType": "YulFunctionCall",
"src": "594:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "594:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "551:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "562:5:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "577:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "582:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "573:3:1"
},
"nodeType": "YulFunctionCall",
"src": "573:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "586:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "569:3:1"
},
"nodeType": "YulFunctionCall",
"src": "569:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "558:3:1"
},
"nodeType": "YulFunctionCall",
"src": "558:31:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "548:2:1"
},
"nodeType": "YulFunctionCall",
"src": "548:42:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:50:1"
},
"nodeType": "YulIf",
"src": "538:70:1"
},
{
"nodeType": "YulAssignment",
"src": "617:15:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "627:5:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "617:6:1"
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "329:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "340:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "352:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "360:6:1",
"type": ""
}
],
"src": "276:362:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "744:102:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "754:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "766:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "777:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "762:3:1"
},
"nodeType": "YulFunctionCall",
"src": "762:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "754:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "796:9:1"
},
{
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "811:6:1"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "827:3:1",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "832:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "823:3:1"
},
"nodeType": "YulFunctionCall",
"src": "823:11:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "836:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "819:3:1"
},
"nodeType": "YulFunctionCall",
"src": "819:19:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "807:3:1"
},
"nodeType": "YulFunctionCall",
"src": "807:32:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "789:6:1"
},
"nodeType": "YulFunctionCall",
"src": "789:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "789:51:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "713:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "724:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "735:4:1",
"type": ""
}
],
"src": "643:203:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "952:76:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "962:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "974:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "985:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "970:3:1"
},
"nodeType": "YulFunctionCall",
"src": "970:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "962:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1004:9:1"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1015:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "997:6:1"
},
"nodeType": "YulFunctionCall",
"src": "997:25:1"
},
"nodeType": "YulExpressionStatement",
"src": "997:25:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "921:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "932:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "943:4:1",
"type": ""
}
],
"src": "851:177:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1207:156:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1224:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1235:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1217:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1217:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1258:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1269:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1254:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1254:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1274:1:1",
"type": "",
"value": "7"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1247:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:29:1"
},
"nodeType": "YulExpressionStatement",
"src": "1247:29:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1296:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1307:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1292:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1292:18:1"
},
{
"hexValue": "53616465636520",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1312:9:1",
"type": "",
"value": "Sadece "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1285:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1285:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1285:37:1"
},
{
"nodeType": "YulAssignment",
"src": "1331:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1343:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1354:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1339:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1339:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1331:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_32b82e662b3c10720301c00155de4eee28dc52f8fea8f95cd96d124d988d92c7__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1184:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1198:4:1",
"type": ""
}
],
"src": "1033:330:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1542:168:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1559:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1570:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1552:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1552:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "1552:21:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1593:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1604:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1589:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1589:18:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1609:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1582:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1582:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "1582:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1632:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1643:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1628:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1628:18:1"
},
{
"hexValue": "496e73756666696369656e742066756e6473",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1648:20:1",
"type": "",
"value": "Insufficient funds"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1621:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1621:48:1"
},
"nodeType": "YulExpressionStatement",
"src": "1621:48:1"
},
{
"nodeType": "YulAssignment",
"src": "1678:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1690:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1701:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1686:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1686:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1678:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1519:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1533:4:1",
"type": ""
}
],
"src": "1368:342:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1764:79:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1774:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1786:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1789:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1782:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1782:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1774:4:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1815:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1817:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1817:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1817:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1806:4:1"
},
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1812:1:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1803:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1803:11:1"
},
"nodeType": "YulIf",
"src": "1800:37:1"
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1746:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1749:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1755:4:1",
"type": ""
}
],
"src": "1715:128:1"
}
]
},
"contents": "{\n { }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_decode_tuple_t_uint256t_address_payable(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let value := calldataload(add(headStart, 32))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value1 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_32b82e662b3c10720301c00155de4eee28dc52f8fea8f95cd96d124d988d92c7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 7)\n mstore(add(headStart, 64), \"Sadece \")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_63452317cb6d597bef833f023ed2962a84dbd24c571e27629ed1e3056d6cfd8d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Insufficient funds\")\n tail := add(headStart, 96)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n}",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100375760003560e01c8062f714ce1461005b5780638da5cb5b1461007d578063b69ef8a8146100ba57600080fd5b3661005657346001600082825461004e91906101d6565b925050819055005b600080fd5b34801561006757600080fd5b5061007b6100763660046101ef565b6100de565b005b34801561008957600080fd5b5060005461009d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100c657600080fd5b506100d060015481565b6040519081526020016100b1565b6000546001600160a01b031633146101275760405162461bcd60e51b8152602060048201526007602482015266029b0b232b1b2960cd1b60448201526064015b60405180910390fd5b60015482111561016e5760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015260640161011e565b6040516001600160a01b0382169083156108fc029084906000818181858888f193505050501580156101a4573d6000803e3d6000fd5b5081600160008282546101b7919061022b565b90915550505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156101e9576101e96101c0565b92915050565b6000806040838503121561020257600080fd5b8235915060208301356001600160a01b038116811461022057600080fd5b809150509250929050565b818103818111156101e9576101e96101c056fea2646970667358221220bf70dd0d83a9c86a649547bce4dc93f2555d20b780ad11808223f2600980bb6664736f6c63430008110033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x37 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH3 0xF714CE EQ PUSH2 0x5B JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x7D JUMPI DUP1 PUSH4 0xB69EF8A8 EQ PUSH2 0xBA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST CALLDATASIZE PUSH2 0x56 JUMPI CALLVALUE PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x4E SWAP2 SWAP1 PUSH2 0x1D6 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE STOP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7B PUSH2 0x76 CALLDATASIZE PUSH1 0x4 PUSH2 0x1EF JUMP JUMPDEST PUSH2 0xDE JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x89 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x0 SLOAD PUSH2 0x9D SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD0 PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB1 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x127 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x7 PUSH1 0x24 DUP3 ADD MSTORE PUSH7 0x29B0B232B1B29 PUSH1 0xCD SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 SLOAD DUP3 GT ISZERO PUSH2 0x16E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E73756666696369656E742066756E6473 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x11E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 DUP4 ISZERO PUSH2 0x8FC MUL SWAP1 DUP5 SWAP1 PUSH1 0x0 DUP2 DUP2 DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1A4 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP DUP2 PUSH1 0x1 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x22B JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x1E9 JUMPI PUSH2 0x1E9 PUSH2 0x1C0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x202 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x220 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x1E9 JUMPI PUSH2 0x1E9 PUSH2 0x1C0 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBF PUSH17 0xDD0D83A9C86A649547BCE4DC93F2555D20 0xB7 DUP1 0xAD GT DUP1 DUP3 0x23 CALLCODE PUSH1 0x9 DUP1 0xBB PUSH7 0x64736F6C634300 ADDMOD GT STOP CALLER ",
"sourceMap": "57:550:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:9;282:7;;:20;;;;;;;:::i;:::-;;;;;;;;57:550;;;;325:280;;;;;;;;;;-1:-1:-1;325:280:0;;;;;:::i;:::-;;:::i;:::-;;85:20;;;;;;;;;;-1:-1:-1;85:20:0;;;;-1:-1:-1;;;;;85:20:0;;;;;;-1:-1:-1;;;;;807:32:1;;;789:51;;777:2;762:18;85:20:0;;;;;;;;111:22;;;;;;;;;;;;;;;;;;;997:25:1;;;985:2;970:18;111:22:0;851:177:1;325:280:0;421:5;;-1:-1:-1;;;;;421:5:0;407:10;:19;399:39;;;;-1:-1:-1;;;399:39:0;;1235:2:1;399:39:0;;;1217:21:1;1274:1;1254:18;;;1247:29;-1:-1:-1;;;1292:18:1;;;1285:37;1339:18;;399:39:0;;;;;;;;;466:7;;456:6;:17;;448:48;;;;-1:-1:-1;;;448:48:0;;1570:2:1;448:48:0;;;1552:21:1;1609:2;1589:18;;;1582:30;-1:-1:-1;;;1628:18:1;;;1621:48;1686:18;;448:48:0;1368:342:1;448:48:0;515:25;;-1:-1:-1;;;;;515:17:0;;;:25;;;;;533:6;;515:25;;;;533:6;515:17;:25;;;;;;;;;;;;;;;;;;;;;592:6;581:7;;:17;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;325:280:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:125;211:9;;;232:10;;;229:36;;;245:18;;:::i;:::-;146:125;;;;:::o;276:362::-;352:6;360;413:2;401:9;392:7;388:23;384:32;381:52;;;429:1;426;419:12;381:52;452:23;;;-1:-1:-1;525:2:1;510:18;;497:32;-1:-1:-1;;;;;558:31:1;;548:42;;538:70;;604:1;601;594:12;538:70;627:5;617:15;;;276:362;;;;;:::o;1715:128::-;1782:9;;;1803:11;;;1800:37;;;1817:18;;:::i"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "125600",
"executionCost": "24406",
"totalCost": "150006"
},
"external": {
"balance()": "2317",
"owner()": "2326",
"withdraw(uint256,address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 607,
"name": "MSTORE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "ISZERO",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPI",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 144,
"end": 235,
"name": "DUP1",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "REVERT",
"source": 0
},
{
"begin": 144,
"end": 235,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 144,
"end": 235,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 168,
"end": 173,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 168,
"end": 186,
"name": "DUP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "NOT",
"source": -1
},
{
"begin": 168,
"end": 186,
"name": "AND",
"source": 0
},
{
"begin": 176,
"end": 186,
"name": "CALLER",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "OR",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SWAP1",
"source": 0
},
{
"begin": 168,
"end": 186,
"name": "SSTORE",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH #[$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 607,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH [$]",
"source": 0,
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 607,
"name": "CODECOPY",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 607,
"name": "RETURN",
"source": 0
}
],
".data": {
"0": {
".auxdata": "a2646970667358221220bf70dd0d83a9c86a649547bce4dc93f2555d20b780ad11808223f2600980bb6664736f6c63430008110033",
".code": [
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "80"
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 57,
"end": 607,
"name": "MSTORE",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 607,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "LT",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH [tag]",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 607,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 607,
"name": "CALLDATALOAD",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "E0"
},
{
"begin": 57,
"end": 607,
"name": "SHR",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "F714CE"
},
{
"begin": 57,
"end": 607,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH [tag]",
"source": 0,
"value": "3"
},
{
"begin": 57,
"end": 607,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "8DA5CB5B"
},
{
"begin": 57,
"end": 607,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH [tag]",
"source": 0,
"value": "4"
},
{
"begin": 57,
"end": 607,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "B69EF8A8"
},
{
"begin": 57,
"end": 607,
"name": "EQ",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH [tag]",
"source": 0,
"value": "5"
},
{
"begin": 57,
"end": 607,
"name": "JUMPI",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 607,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "REVERT",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "tag",
"source": 0,
"value": "1"
},
{
"begin": 57,
"end": 607,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH [tag]",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 607,
"name": "JUMPI",
"source": 0
},
{
"begin": 293,
"end": 302,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "1"
},
{
"begin": 282,
"end": 289,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SLOAD",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "SWAP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "PUSH [tag]",
"source": 0,
"value": "9"
},
{
"begin": 282,
"end": 302,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "tag",
"source": 0,
"value": "8"
},
{
"begin": 282,
"end": 302,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP3",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "POP",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "DUP2",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SWAP1",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "SSTORE",
"source": 0
},
{
"begin": 282,
"end": 302,
"name": "STOP",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "tag",
"source": 0,
"value": "2"
},
{
"begin": 57,
"end": 607,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 57,
"end": 607,
"name": "DUP1",
"source": 0
},
{
"begin": 57,
"end": 607,
"name": "REVERT",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "tag",
"source": 0,
"value": "3"
},
{
"begin": 325,
"end": 605,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "DUP1",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "ISZERO",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "PUSH [tag]",
"source": 0,
"value": "10"
},
{
"begin": 325,
"end": 605,
"name": "JUMPI",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 325,
"end": 605,
"name": "DUP1",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "REVERT",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "tag",
"source": 0,
"value": "10"
},
{
"begin": 325,
"end": 605,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 325,
"end": 605,
"name": "PUSH [tag]",
"source": 0,
"value": "11"
},
{
"begin": 325,
"end": 605,
"name": "PUSH [tag]",
"source": 0,
"value": "12"
},
{
"begin": 325,
"end": 605,
"name": "CALLDATASIZE",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "PUSH",
"source": 0,
"value": "4"
},
{
"begin": 325,
"end": 605,
"name": "PUSH [tag]",
"source": 0,
"value": "13"
},
{
"begin": 325,
"end": 605,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "tag",
"source": 0,
"value": "12"
},
{
"begin": 325,
"end": 605,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "PUSH [tag]",
"source": 0,
"value": "14"
},
{
"begin": 325,
"end": 605,
"jumpType": "[in]",
"name": "JUMP",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "tag",
"source": 0,
"value": "11"
},
{
"begin": 325,
"end": 605,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 325,
"end": 605,
"name": "STOP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "4"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "CALLVALUE",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "ISZERO",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPI",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "REVERT",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "15"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "POP",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "0"
},
{
"begin": 85,
"end": 105,
"name": "SLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH [tag]",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "SWAP1",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 85,
"end": 105,
"name": "AND",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP2",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "JUMP",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "16"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"source": -1,
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL",
"source": -1
},
{
"begin": -1,
"end": -1,
"name": "SUB",
"source": -1
},
{
"begin": 807,
"end": 839,
"name": "SWAP1",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "SWAP2",
"source": 1
},
{
"begin": 807,
"end": 839,
"name": "AND",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "DUP2",
"source": 1
},
{
"begin": 789,
"end": 840,
"name": "MSTORE",
"source": 1
},
{
"begin": 777,
"end": 779,
"name": "PUSH",
"source": 1,
"value": "20"
},
{
"begin": 762,
"end": 780,
"name": "ADD",
"source": 1
},
{
"begin": 85,
"end": 105,
"name": "tag",
"source": 0,
"value": "18"
},
{
"begin": 85,
"end": 105,
"name": "JUMPDEST",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "PUSH",
"source": 0,
"value": "40"
},
{
"begin": 85,
"end": 105,
"name": "MLOAD",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "DUP1",
"source": 0
},
{
"begin": 85,
"end": 105,
"name": "SWAP2",
"source": 0
},
View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

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