Skip to content

Instantly share code, notes, and snippets.

@mrlexz
Created September 16, 2022 08:50
Show Gist options
  • Save mrlexz/1a9edef4b5ac65411d4be5b971908045 to your computer and use it in GitHub Desktop.
Save mrlexz/1a9edef4b5ac65411d4be5b971908045 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.5.13+commit.5b0b510c.js&optimize=false&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.
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
* @custom:dev-run-script ./scripts/deploy_with_ethers.ts
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "hardhat/console.sol";
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
console.log("Owner contract deployed by:", msg.sender);
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 < 0.9.0;
contract DemoContract {
string public myStr = "Hello World Binh";
}
{
"id": "0007c61a56548bcaa67cc44d3d2479e7",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.13",
"solcLongVersion": "0.5.13+commit.5b0b510c",
"input": {
"language": "Solidity",
"sources": {
"contracts/InheritanceModifierExample.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.5.13;\n\nimport \"./Owned.sol\";\n\n/* \n- create new token\n- give owner token\n- if u'r not the owner, u would buy a token\n- create & burn token\n- send token\n\n*/\n\n\ncontract InheritanceModifierExample is Owned {\n mapping(address => uint) public tokenBalance;\n uint tokenPrice = 1 ether;\n\n constructor() public {\n tokenBalance[owner] = 100;\n }\n\n function createNewToken() public onlyOwner {\n tokenBalance[owner]++;\n }\n\n function burnToken() public onlyOwner {\n tokenBalance[owner]--;\n }\n\n function purchaseToken() public payable {\n require(tokenBalance[owner] * tokenPrice / msg.value > 0, \"not enough token\");\n\n tokenBalance[owner] -= msg.value / tokenPrice;\n\n tokenBalance[msg.sender] += msg.value / tokenPrice;\n }\n\n function sendToken(address _to, uint _amount) public payable {\n require(tokenBalance[msg.sender] >= _amount, \"not enough token\");\n assert(tokenBalance[_to] + _amount >= tokenBalance[_to]);\n assert(tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender]);\n tokenBalance[msg.sender] -= _amount;\n tokenBalance[_to] += _amount;\n }\n}"
},
"contracts/Owned.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.5.13;\n\ncontract Owned {\n address owner;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier onlyOwner() {\n require(msg.sender == owner, \"U R not owner\");\n _;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/InheritanceModifierExample.sol": {
"InheritanceModifierExample": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [],
"name": "burnToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "createNewToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "purchaseToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "sendToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokenBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/InheritanceModifierExample.sol\":213:1215 contract InheritanceModifierExample is Owned {... */\n mstore(0x40, 0x80)\n /* \"contracts/InheritanceModifierExample.sol\":332:339 1 ether */\n 0x0de0b6b3a7640000\n /* \"contracts/InheritanceModifierExample.sol\":314:339 uint tokenPrice = 1 ether */\n 0x02\n sstore\n /* \"contracts/InheritanceModifierExample.sol\":346:409 constructor() public {... */\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/InheritanceModifierExample.sol\":346:409 constructor() public {... */\n pop\n /* \"contracts/Owned.sol\":143:153 msg.sender */\n caller\n /* \"contracts/Owned.sol\":135:140 owner */\n 0x00\n dup1\n /* \"contracts/Owned.sol\":135:153 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":399:402 100 */\n 0x64\n /* \"contracts/InheritanceModifierExample.sol\":377:389 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":377:396 tokenBalance[owner] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":390:395 owner */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":377:396 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/InheritanceModifierExample.sol\":377:402 tokenBalance[owner] = 100 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":213:1215 contract InheritanceModifierExample is Owned {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/InheritanceModifierExample.sol\":213:1215 contract InheritanceModifierExample is Owned {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x412664ae\n eq\n tag_2\n jumpi\n dup1\n 0x754fc38c\n eq\n tag_3\n jumpi\n dup1\n 0xa95c4d62\n eq\n tag_4\n jumpi\n dup1\n 0xeedc966a\n eq\n tag_5\n jumpi\n dup1\n 0xfaa0a264\n eq\n tag_6\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contracts/InheritanceModifierExample.sol\":842:1213 function sendToken(address _to, uint _amount) public payable {... */\n tag_2:\n tag_7\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_8\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_8:\n /* \"contracts/InheritanceModifierExample.sol\":842:1213 function sendToken(address _to, uint _amount) public payable {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_9\n jump\t// in\n tag_7:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":415:496 function createNewToken() public onlyOwner {... */\n tag_3:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_10\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_10:\n /* \"contracts/InheritanceModifierExample.sol\":415:496 function createNewToken() public onlyOwner {... */\n pop\n tag_11\n tag_12\n jump\t// in\n tag_11:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":584:836 function purchaseToken() public payable {... */\n tag_4:\n tag_13\n tag_14\n jump\t// in\n tag_13:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":264:308 mapping(address => uint) public tokenBalance */\n tag_5:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_15\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_15:\n /* \"contracts/InheritanceModifierExample.sol\":264:308 mapping(address => uint) public tokenBalance */\n pop\n tag_16\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_17\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_17:\n /* \"contracts/InheritanceModifierExample.sol\":264:308 mapping(address => uint) public tokenBalance */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_18\n jump\t// in\n tag_16:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/InheritanceModifierExample.sol\":502:578 function burnToken() public onlyOwner {... */\n tag_6:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_19\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_19:\n /* \"contracts/InheritanceModifierExample.sol\":502:578 function burnToken() public onlyOwner {... */\n pop\n tag_20\n tag_21\n jump\t// in\n tag_20:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":842:1213 function sendToken(address _to, uint _amount) public payable {... */\n tag_9:\n /* \"contracts/InheritanceModifierExample.sol\":949:956 _amount */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":921:933 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":921:945 tokenBalance[msg.sender] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":934:944 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":921:945 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":921:956 tokenBalance[msg.sender] >= _amount */\n lt\n iszero\n /* \"contracts/InheritanceModifierExample.sol\":913:977 require(tokenBalance[msg.sender] >= _amount, \"not enough token\") */\n tag_23\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x10\n dup2\n mstore\n 0x20\n add\n dup1\n 0x6e6f7420656e6f75676820746f6b656e00000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_23:\n /* \"contracts/InheritanceModifierExample.sol\":1025:1037 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":1025:1042 tokenBalance[_to] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1038:1041 _to */\n dup4\n /* \"contracts/InheritanceModifierExample.sol\":1025:1042 tokenBalance[_to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1014:1021 _amount */\n dup2\n /* \"contracts/InheritanceModifierExample.sol\":994:1006 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":994:1011 tokenBalance[_to] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1007:1010 _to */\n dup6\n /* \"contracts/InheritanceModifierExample.sol\":994:1011 tokenBalance[_to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":994:1021 tokenBalance[_to] + _amount */\n add\n /* \"contracts/InheritanceModifierExample.sol\":994:1042 tokenBalance[_to] + _amount >= tokenBalance[_to] */\n lt\n iszero\n /* \"contracts/InheritanceModifierExample.sol\":987:1043 assert(tokenBalance[_to] + _amount >= tokenBalance[_to]) */\n tag_24\n jumpi\n invalid\n tag_24:\n /* \"contracts/InheritanceModifierExample.sol\":1098:1110 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":1098:1122 tokenBalance[msg.sender] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1111:1121 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1098:1122 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1087:1094 _amount */\n dup2\n /* \"contracts/InheritanceModifierExample.sol\":1060:1072 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":1060:1084 tokenBalance[msg.sender] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1073:1083 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1060:1084 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1060:1094 tokenBalance[msg.sender] - _amount */\n sub\n /* \"contracts/InheritanceModifierExample.sol\":1060:1122 tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender] */\n gt\n iszero\n /* \"contracts/InheritanceModifierExample.sol\":1053:1123 assert(tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender]) */\n tag_25\n jumpi\n invalid\n tag_25:\n /* \"contracts/InheritanceModifierExample.sol\":1161:1168 _amount */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1133:1145 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":1133:1157 tokenBalance[msg.sender] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1146:1156 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1133:1157 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1133:1168 tokenBalance[msg.sender] -= _amount */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":1199:1206 _amount */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1178:1190 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":1178:1195 tokenBalance[_to] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1191:1194 _to */\n dup5\n /* \"contracts/InheritanceModifierExample.sol\":1178:1195 tokenBalance[_to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1178:1206 tokenBalance[_to] += _amount */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":842:1213 function sendToken(address _to, uint _amount) public payable {... */\n pop\n pop\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":415:496 function createNewToken() public onlyOwner {... */\n tag_12:\n /* \"contracts/Owned.sol\":219:224 owner */\n 0x00\n dup1\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/Owned.sol\":205:224 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/Owned.sol\":205:215 msg.sender */\n caller\n /* \"contracts/Owned.sol\":205:224 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/Owned.sol\":197:242 require(msg.sender == owner, \"U R not owner\") */\n tag_27\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x0d\n dup2\n mstore\n 0x20\n add\n dup1\n 0x552052206e6f74206f776e657200000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_27:\n /* \"contracts/InheritanceModifierExample.sol\":468:480 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":468:487 tokenBalance[owner] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":481:486 owner */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":468:487 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":468:489 tokenBalance[owner]++ */\n dup2\n sload\n dup1\n swap3\n swap2\n swap1\n 0x01\n add\n swap2\n swap1\n pop\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":415:496 function createNewToken() public onlyOwner {... */\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":584:836 function purchaseToken() public payable {... */\n tag_14:\n /* \"contracts/InheritanceModifierExample.sol\":689:690 0 */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":677:686 msg.value */\n callvalue\n /* \"contracts/InheritanceModifierExample.sol\":664:674 tokenPrice */\n sload(0x02)\n /* \"contracts/InheritanceModifierExample.sol\":642:654 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":642:661 tokenBalance[owner] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":655:660 owner */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":642:661 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":642:674 tokenBalance[owner] * tokenPrice */\n mul\n /* \"contracts/InheritanceModifierExample.sol\":642:686 tokenBalance[owner] * tokenPrice / msg.value */\n dup2\n tag_30\n jumpi\n invalid\n tag_30:\n div\n /* \"contracts/InheritanceModifierExample.sol\":642:690 tokenBalance[owner] * tokenPrice / msg.value > 0 */\n gt\n /* \"contracts/InheritanceModifierExample.sol\":634:711 require(tokenBalance[owner] * tokenPrice / msg.value > 0, \"not enough token\") */\n tag_31\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x10\n dup2\n mstore\n 0x20\n add\n dup1\n 0x6e6f7420656e6f75676820746f6b656e00000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_31:\n /* \"contracts/InheritanceModifierExample.sol\":757:767 tokenPrice */\n sload(0x02)\n /* \"contracts/InheritanceModifierExample.sol\":745:754 msg.value */\n callvalue\n /* \"contracts/InheritanceModifierExample.sol\":745:767 msg.value / tokenPrice */\n dup2\n tag_32\n jumpi\n invalid\n tag_32:\n div\n /* \"contracts/InheritanceModifierExample.sol\":722:734 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":722:741 tokenBalance[owner] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":735:740 owner */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":722:741 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":722:767 tokenBalance[owner] -= msg.value / tokenPrice */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":819:829 tokenPrice */\n sload(0x02)\n /* \"contracts/InheritanceModifierExample.sol\":807:816 msg.value */\n callvalue\n /* \"contracts/InheritanceModifierExample.sol\":807:829 msg.value / tokenPrice */\n dup2\n tag_33\n jumpi\n invalid\n tag_33:\n div\n /* \"contracts/InheritanceModifierExample.sol\":778:790 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":778:802 tokenBalance[msg.sender] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":791:801 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":778:802 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":778:829 tokenBalance[msg.sender] += msg.value / tokenPrice */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":584:836 function purchaseToken() public payable {... */\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":264:308 mapping(address => uint) public tokenBalance */\n tag_18:\n mstore(0x20, 0x01)\n dup1\n 0x00\n mstore\n keccak256(0x00, 0x40)\n 0x00\n swap2\n pop\n swap1\n pop\n sload\n dup2\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":502:578 function burnToken() public onlyOwner {... */\n tag_21:\n /* \"contracts/Owned.sol\":219:224 owner */\n 0x00\n dup1\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/Owned.sol\":205:224 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/Owned.sol\":205:215 msg.sender */\n caller\n /* \"contracts/Owned.sol\":205:224 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/Owned.sol\":197:242 require(msg.sender == owner, \"U R not owner\") */\n tag_35\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x0d\n dup2\n mstore\n 0x20\n add\n dup1\n 0x552052206e6f74206f776e657200000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_35:\n /* \"contracts/InheritanceModifierExample.sol\":550:562 tokenBalance */\n 0x01\n /* \"contracts/InheritanceModifierExample.sol\":550:569 tokenBalance[owner] */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":563:568 owner */\n dup1\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":550:569 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":550:571 tokenBalance[owner]-- */\n dup2\n sload\n dup1\n swap3\n swap2\n swap1\n 0x01\n swap1\n sub\n swap2\n swap1\n pop\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":502:578 function burnToken() public onlyOwner {... */\n jump\t// out\n\n auxdata: 0xa265627a7a72315820f74540a2ff8b3774d987260a46cc13cdf44a7fe60763e85c225b806619f321b464736f6c634300050d0032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052670de0b6b3a764000060025534801561001c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061080d806100d26000396000f3fe60806040526004361061004a5760003560e01c8063412664ae1461004f578063754fc38c1461009d578063a95c4d62146100b4578063eedc966a146100be578063faa0a26414610123575b600080fd5b61009b6004803603604081101561006557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061013a565b005b3480156100a957600080fd5b506100b26103a1565b005b6100bc6104d5565b005b3480156100ca57600080fd5b5061010d600480360360208110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061068b565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b506101386106a3565b005b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561027957fe5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403111561030357fe5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550565b600034600254600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161054457fe5b04116105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b60025434816105c357fe5b04600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600254348161063c57fe5b04600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555056fea265627a7a72315820f74540a2ff8b3774d987260a46cc13cdf44a7fe60763e85c225b806619f321b464736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x64 PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x80D DUP1 PUSH2 0xD2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x412664AE EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x754FC38C EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xA95C4D62 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xEEDC966A EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0xFAA0A264 EQ PUSH2 0x123 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x13A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x3A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xBC PUSH2 0x4D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138 PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x1EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD ADD LT ISZERO PUSH2 0x279 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB GT ISZERO PUSH2 0x303 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x463 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD MUL DUP2 PUSH2 0x544 JUMPI INVALID JUMPDEST DIV GT PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x5C3 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x63C JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xF7 GASLIMIT BLOCKHASH LOG2 SELFDESTRUCT DUP12 CALLDATACOPY PUSH21 0xD987260A46CC13CDF44A7FE60763E85C225B806619 RETURN 0x21 0xB4 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "213:1002:0:-;;;332:7;314:25;;346:63;8:9:-1;5:2;;;30:1;27;20:12;5:2;346:63:0;143:10:1;135:5;;:18;;;;;;;;;;;;;;;;;;399:3:0;377:12;:19;390:5;;;;;;;;;;;377:19;;;;;;;;;;;;;;;:25;;;;213:1002;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061004a5760003560e01c8063412664ae1461004f578063754fc38c1461009d578063a95c4d62146100b4578063eedc966a146100be578063faa0a26414610123575b600080fd5b61009b6004803603604081101561006557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061013a565b005b3480156100a957600080fd5b506100b26103a1565b005b6100bc6104d5565b005b3480156100ca57600080fd5b5061010d600480360360208110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061068b565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b506101386106a3565b005b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561027957fe5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403111561030357fe5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550565b600034600254600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161054457fe5b04116105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b60025434816105c357fe5b04600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600254348161063c57fe5b04600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555056fea265627a7a72315820f74540a2ff8b3774d987260a46cc13cdf44a7fe60763e85c225b806619f321b464736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x412664AE EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x754FC38C EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xA95C4D62 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xEEDC966A EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0xFAA0A264 EQ PUSH2 0x123 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x13A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x3A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xBC PUSH2 0x4D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138 PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x1EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD ADD LT ISZERO PUSH2 0x279 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB GT ISZERO PUSH2 0x303 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x463 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD MUL DUP2 PUSH2 0x544 JUMPI INVALID JUMPDEST DIV GT PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x5C3 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x63C JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xF7 GASLIMIT BLOCKHASH LOG2 SELFDESTRUCT DUP12 CALLDATACOPY PUSH21 0xD987260A46CC13CDF44A7FE60763E85C225B806619 RETURN 0x21 0xB4 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "213:1002:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:371;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;842:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;415:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:81:0;;;:::i;:::-;;584:252;;;:::i;:::-;;264:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;264:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;502:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;502:76:0;;;:::i;:::-;;842:371;949:7;921:12;:24;934:10;921:24;;;;;;;;;;;;;;;;:35;;913:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1025:12;:17;1038:3;1025:17;;;;;;;;;;;;;;;;1014:7;994:12;:17;1007:3;994:17;;;;;;;;;;;;;;;;:27;:48;;987:56;;;;1098:12;:24;1111:10;1098:24;;;;;;;;;;;;;;;;1087:7;1060:12;:24;1073:10;1060:24;;;;;;;;;;;;;;;;:34;:62;;1053:70;;;;1161:7;1133:12;:24;1146:10;1133:24;;;;;;;;;;;;;;;;:35;;;;;;;;;;;1199:7;1178:12;:17;1191:3;1178:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;842:371;;:::o;415:81::-;219:5:1;;;;;;;;;;;205:19;;:10;:19;;;197:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:12:0;:19;481:5;;;;;;;;;;;468:19;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;415:81::o;584:252::-;689:1;677:9;664:10;;642:12;:19;655:5;;;;;;;;;;;642:19;;;;;;;;;;;;;;;;:32;:44;;;;;;:48;634:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:10;;745:9;:22;;;;;;722:12;:19;735:5;;;;;;;;;;;722:19;;;;;;;;;;;;;;;;:45;;;;;;;;;;;819:10;;807:9;:22;;;;;;778:12;:24;791:10;778:24;;;;;;;;;;;;;;;;:51;;;;;;;;;;;584:252::o;264:44::-;;;;;;;;;;;;;;;;;:::o;502:76::-;219:5:1;;;;;;;;;;;205:19;;:10;:19;;;197:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:12:0;:19;563:5;;;;;;;;;;;550:19;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;502:76::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "412200",
"executionCost": "61061",
"totalCost": "473261"
},
"external": {
"burnToken()": "21046",
"createNewToken()": "20977",
"purchaseToken()": "42252",
"sendToken(address,uint256)": "42399",
"tokenBalance(address)": "613"
}
},
"legacyAssembly": {
".code": [
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "80"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "40"
},
{
"begin": 213,
"end": 1215,
"name": "MSTORE"
},
{
"begin": 332,
"end": 339,
"name": "PUSH",
"value": "DE0B6B3A7640000"
},
{
"begin": 314,
"end": 339,
"name": "PUSH",
"value": "2"
},
{
"begin": 314,
"end": 339,
"name": "SSTORE"
},
{
"begin": 346,
"end": 409,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 346,
"end": 409,
"name": "POP"
},
{
"begin": 143,
"end": 153,
"name": "CALLER"
},
{
"begin": 135,
"end": 140,
"name": "PUSH",
"value": "0"
},
{
"begin": 135,
"end": 140,
"name": "DUP1"
},
{
"begin": 135,
"end": 153,
"name": "PUSH",
"value": "100"
},
{
"begin": 135,
"end": 153,
"name": "EXP"
},
{
"begin": 135,
"end": 153,
"name": "DUP2"
},
{
"begin": 135,
"end": 153,
"name": "SLOAD"
},
{
"begin": 135,
"end": 153,
"name": "DUP2"
},
{
"begin": 135,
"end": 153,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 135,
"end": 153,
"name": "MUL"
},
{
"begin": 135,
"end": 153,
"name": "NOT"
},
{
"begin": 135,
"end": 153,
"name": "AND"
},
{
"begin": 135,
"end": 153,
"name": "SWAP1"
},
{
"begin": 135,
"end": 153,
"name": "DUP4"
},
{
"begin": 135,
"end": 153,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 135,
"end": 153,
"name": "AND"
},
{
"begin": 135,
"end": 153,
"name": "MUL"
},
{
"begin": 135,
"end": 153,
"name": "OR"
},
{
"begin": 135,
"end": 153,
"name": "SWAP1"
},
{
"begin": 135,
"end": 153,
"name": "SSTORE"
},
{
"begin": 135,
"end": 153,
"name": "POP"
},
{
"begin": 399,
"end": 402,
"name": "PUSH",
"value": "64"
},
{
"begin": 377,
"end": 389,
"name": "PUSH",
"value": "1"
},
{
"begin": 377,
"end": 396,
"name": "PUSH",
"value": "0"
},
{
"begin": 390,
"end": 395,
"name": "DUP1"
},
{
"begin": 390,
"end": 395,
"name": "PUSH",
"value": "0"
},
{
"begin": 390,
"end": 395,
"name": "SWAP1"
},
{
"begin": 390,
"end": 395,
"name": "SLOAD"
},
{
"begin": 390,
"end": 395,
"name": "SWAP1"
},
{
"begin": 390,
"end": 395,
"name": "PUSH",
"value": "100"
},
{
"begin": 390,
"end": 395,
"name": "EXP"
},
{
"begin": 390,
"end": 395,
"name": "SWAP1"
},
{
"begin": 390,
"end": 395,
"name": "DIV"
},
{
"begin": 390,
"end": 395,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 390,
"end": 395,
"name": "AND"
},
{
"begin": 377,
"end": 396,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 377,
"end": 396,
"name": "AND"
},
{
"begin": 377,
"end": 396,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 377,
"end": 396,
"name": "AND"
},
{
"begin": 377,
"end": 396,
"name": "DUP2"
},
{
"begin": 377,
"end": 396,
"name": "MSTORE"
},
{
"begin": 377,
"end": 396,
"name": "PUSH",
"value": "20"
},
{
"begin": 377,
"end": 396,
"name": "ADD"
},
{
"begin": 377,
"end": 396,
"name": "SWAP1"
},
{
"begin": 377,
"end": 396,
"name": "DUP2"
},
{
"begin": 377,
"end": 396,
"name": "MSTORE"
},
{
"begin": 377,
"end": 396,
"name": "PUSH",
"value": "20"
},
{
"begin": 377,
"end": 396,
"name": "ADD"
},
{
"begin": 377,
"end": 396,
"name": "PUSH",
"value": "0"
},
{
"begin": 377,
"end": 396,
"name": "KECCAK256"
},
{
"begin": 377,
"end": 402,
"name": "DUP2"
},
{
"begin": 377,
"end": 402,
"name": "SWAP1"
},
{
"begin": 377,
"end": 402,
"name": "SSTORE"
},
{
"begin": 377,
"end": 402,
"name": "POP"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 213,
"end": 1215,
"name": "CODECOPY"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 213,
"end": 1215,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a72315820f74540a2ff8b3774d987260a46cc13cdf44a7fe60763e85c225b806619f321b464736f6c634300050d0032",
".code": [
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "80"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "40"
},
{
"begin": 213,
"end": 1215,
"name": "MSTORE"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "4"
},
{
"begin": 213,
"end": 1215,
"name": "CALLDATASIZE"
},
{
"begin": 213,
"end": 1215,
"name": "LT"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPI"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 213,
"end": 1215,
"name": "CALLDATALOAD"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "E0"
},
{
"begin": 213,
"end": 1215,
"name": "SHR"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "412664AE"
},
{
"begin": 213,
"end": 1215,
"name": "EQ"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPI"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "754FC38C"
},
{
"begin": 213,
"end": 1215,
"name": "EQ"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPI"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "A95C4D62"
},
{
"begin": 213,
"end": 1215,
"name": "EQ"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPI"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "EEDC966A"
},
{
"begin": 213,
"end": 1215,
"name": "EQ"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPI"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "FAA0A264"
},
{
"begin": 213,
"end": 1215,
"name": "EQ"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPI"
},
{
"begin": 213,
"end": 1215,
"name": "tag",
"value": "1"
},
{
"begin": 213,
"end": 1215,
"name": "JUMPDEST"
},
{
"begin": 213,
"end": 1215,
"name": "PUSH",
"value": "0"
},
{
"begin": 213,
"end": 1215,
"name": "DUP1"
},
{
"begin": 213,
"end": 1215,
"name": "REVERT"
},
{
"begin": 842,
"end": 1213,
"name": "tag",
"value": "2"
},
{
"begin": 842,
"end": 1213,
"name": "JUMPDEST"
},
{
"begin": 842,
"end": 1213,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 842,
"end": 1213,
"name": "PUSH",
"value": "4"
},
{
"begin": 842,
"end": 1213,
"name": "DUP1"
},
{
"begin": 842,
"end": 1213,
"name": "CALLDATASIZE"
},
{
"begin": 842,
"end": 1213,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "8"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 842,
"end": 1213,
"name": "DUP2"
},
{
"begin": 842,
"end": 1213,
"name": "ADD"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "DUP1"
},
{
"begin": 842,
"end": 1213,
"name": "DUP1"
},
{
"begin": 842,
"end": 1213,
"name": "CALLDATALOAD"
},
{
"begin": 842,
"end": 1213,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 842,
"end": 1213,
"name": "AND"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "PUSH",
"value": "20"
},
{
"begin": 842,
"end": 1213,
"name": "ADD"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP3"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP2"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "DUP1"
},
{
"begin": 842,
"end": 1213,
"name": "CALLDATALOAD"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "PUSH",
"value": "20"
},
{
"begin": 842,
"end": 1213,
"name": "ADD"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP3"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP2"
},
{
"begin": 842,
"end": 1213,
"name": "SWAP1"
},
{
"begin": 842,
"end": 1213,
"name": "POP"
},
{
"begin": 842,
"end": 1213,
"name": "POP"
},
{
"begin": 842,
"end": 1213,
"name": "POP"
},
{
"begin": 842,
"end": 1213,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 842,
"end": 1213,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 842,
"end": 1213,
"name": "tag",
"value": "7"
},
{
"begin": 842,
"end": 1213,
"name": "JUMPDEST"
},
{
"begin": 842,
"end": 1213,
"name": "STOP"
},
{
"begin": 415,
"end": 496,
"name": "tag",
"value": "3"
},
{
"begin": 415,
"end": 496,
"name": "JUMPDEST"
},
{
"begin": 415,
"end": 496,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "10"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 415,
"end": 496,
"name": "POP"
},
{
"begin": 415,
"end": 496,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 415,
"end": 496,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 415,
"end": 496,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 415,
"end": 496,
"name": "tag",
"value": "11"
},
{
"begin": 415,
"end": 496,
"name": "JUMPDEST"
},
{
"begin": 415,
"end": 496,
"name": "STOP"
},
{
"begin": 584,
"end": 836,
"name": "tag",
"value": "4"
},
{
"begin": 584,
"end": 836,
"name": "JUMPDEST"
},
{
"begin": 584,
"end": 836,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 584,
"end": 836,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 584,
"end": 836,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 584,
"end": 836,
"name": "tag",
"value": "13"
},
{
"begin": 584,
"end": 836,
"name": "JUMPDEST"
},
{
"begin": 584,
"end": 836,
"name": "STOP"
},
{
"begin": 264,
"end": 308,
"name": "tag",
"value": "5"
},
{
"begin": 264,
"end": 308,
"name": "JUMPDEST"
},
{
"begin": 264,
"end": 308,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "15"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "4"
},
{
"begin": 264,
"end": 308,
"name": "DUP1"
},
{
"begin": 264,
"end": 308,
"name": "CALLDATASIZE"
},
{
"begin": 264,
"end": 308,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "17"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "17"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 264,
"end": 308,
"name": "DUP2"
},
{
"begin": 264,
"end": 308,
"name": "ADD"
},
{
"begin": 264,
"end": 308,
"name": "SWAP1"
},
{
"begin": 264,
"end": 308,
"name": "DUP1"
},
{
"begin": 264,
"end": 308,
"name": "DUP1"
},
{
"begin": 264,
"end": 308,
"name": "CALLDATALOAD"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 264,
"end": 308,
"name": "AND"
},
{
"begin": 264,
"end": 308,
"name": "SWAP1"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "20"
},
{
"begin": 264,
"end": 308,
"name": "ADD"
},
{
"begin": 264,
"end": 308,
"name": "SWAP1"
},
{
"begin": 264,
"end": 308,
"name": "SWAP3"
},
{
"begin": 264,
"end": 308,
"name": "SWAP2"
},
{
"begin": 264,
"end": 308,
"name": "SWAP1"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "PUSH [tag]",
"value": "18"
},
{
"begin": 264,
"end": 308,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 264,
"end": 308,
"name": "tag",
"value": "16"
},
{
"begin": 264,
"end": 308,
"name": "JUMPDEST"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "40"
},
{
"begin": 264,
"end": 308,
"name": "MLOAD"
},
{
"begin": 264,
"end": 308,
"name": "DUP1"
},
{
"begin": 264,
"end": 308,
"name": "DUP3"
},
{
"begin": 264,
"end": 308,
"name": "DUP2"
},
{
"begin": 264,
"end": 308,
"name": "MSTORE"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "20"
},
{
"begin": 264,
"end": 308,
"name": "ADD"
},
{
"begin": 264,
"end": 308,
"name": "SWAP2"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "40"
},
{
"begin": 264,
"end": 308,
"name": "MLOAD"
},
{
"begin": 264,
"end": 308,
"name": "DUP1"
},
{
"begin": 264,
"end": 308,
"name": "SWAP2"
},
{
"begin": 264,
"end": 308,
"name": "SUB"
},
{
"begin": 264,
"end": 308,
"name": "SWAP1"
},
{
"begin": 264,
"end": 308,
"name": "RETURN"
},
{
"begin": 502,
"end": 578,
"name": "tag",
"value": "6"
},
{
"begin": 502,
"end": 578,
"name": "JUMPDEST"
},
{
"begin": 502,
"end": 578,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "19"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 502,
"end": 578,
"name": "POP"
},
{
"begin": 502,
"end": 578,
"name": "PUSH [tag]",
"value": "20"
},
{
"begin": 502,
"end": 578,
"name": "PUSH [tag]",
"value": "21"
},
{
"begin": 502,
"end": 578,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 502,
"end": 578,
"name": "tag",
"value": "20"
},
{
"begin": 502,
"end": 578,
"name": "JUMPDEST"
},
{
"begin": 502,
"end": 578,
"name": "STOP"
},
{
"begin": 842,
"end": 1213,
"name": "tag",
"value": "9"
},
{
"begin": 842,
"end": 1213,
"name": "JUMPDEST"
},
{
"begin": 949,
"end": 956,
"name": "DUP1"
},
{
"begin": 921,
"end": 933,
"name": "PUSH",
"value": "1"
},
{
"begin": 921,
"end": 945,
"name": "PUSH",
"value": "0"
},
{
"begin": 934,
"end": 944,
"name": "CALLER"
},
{
"begin": 921,
"end": 945,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 921,
"end": 945,
"name": "AND"
},
{
"begin": 921,
"end": 945,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 921,
"end": 945,
"name": "AND"
},
{
"begin": 921,
"end": 945,
"name": "DUP2"
},
{
"begin": 921,
"end": 945,
"name": "MSTORE"
},
{
"begin": 921,
"end": 945,
"name": "PUSH",
"value": "20"
},
{
"begin": 921,
"end": 945,
"name": "ADD"
},
{
"begin": 921,
"end": 945,
"name": "SWAP1"
},
{
"begin": 921,
"end": 945,
"name": "DUP2"
},
{
"begin": 921,
"end": 945,
"name": "MSTORE"
},
{
"begin": 921,
"end": 945,
"name": "PUSH",
"value": "20"
},
{
"begin": 921,
"end": 945,
"name": "ADD"
},
{
"begin": 921,
"end": 945,
"name": "PUSH",
"value": "0"
},
{
"begin": 921,
"end": 945,
"name": "KECCAK256"
},
{
"begin": 921,
"end": 945,
"name": "SLOAD"
},
{
"begin": 921,
"end": 956,
"name": "LT"
},
{
"begin": 921,
"end": 956,
"name": "ISZERO"
},
{
"begin": 913,
"end": 977,
"name": "PUSH [tag]",
"value": "23"
},
{
"begin": 913,
"end": 977,
"name": "JUMPI"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "40"
},
{
"begin": 913,
"end": 977,
"name": "MLOAD"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 913,
"end": 977,
"name": "DUP2"
},
{
"begin": 913,
"end": 977,
"name": "MSTORE"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "4"
},
{
"begin": 913,
"end": 977,
"name": "ADD"
},
{
"begin": 913,
"end": 977,
"name": "DUP1"
},
{
"begin": 913,
"end": 977,
"name": "DUP1"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "20"
},
{
"begin": 913,
"end": 977,
"name": "ADD"
},
{
"begin": 913,
"end": 977,
"name": "DUP3"
},
{
"begin": 913,
"end": 977,
"name": "DUP2"
},
{
"begin": 913,
"end": 977,
"name": "SUB"
},
{
"begin": 913,
"end": 977,
"name": "DUP3"
},
{
"begin": 913,
"end": 977,
"name": "MSTORE"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "10"
},
{
"begin": 913,
"end": 977,
"name": "DUP2"
},
{
"begin": 913,
"end": 977,
"name": "MSTORE"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "20"
},
{
"begin": 913,
"end": 977,
"name": "ADD"
},
{
"begin": 913,
"end": 977,
"name": "DUP1"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000"
},
{
"begin": 913,
"end": 977,
"name": "DUP2"
},
{
"begin": 913,
"end": 977,
"name": "MSTORE"
},
{
"begin": 913,
"end": 977,
"name": "POP"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "20"
},
{
"begin": 913,
"end": 977,
"name": "ADD"
},
{
"begin": 913,
"end": 977,
"name": "SWAP2"
},
{
"begin": 913,
"end": 977,
"name": "POP"
},
{
"begin": 913,
"end": 977,
"name": "POP"
},
{
"begin": 913,
"end": 977,
"name": "PUSH",
"value": "40"
},
{
"begin": 913,
"end": 977,
"name": "MLOAD"
},
{
"begin": 913,
"end": 977,
"name": "DUP1"
},
{
"begin": 913,
"end": 977,
"name": "SWAP2"
},
{
"begin": 913,
"end": 977,
"name": "SUB"
},
{
"begin": 913,
"end": 977,
"name": "SWAP1"
},
{
"begin": 913,
"end": 977,
"name": "REVERT"
},
{
"begin": 913,
"end": 977,
"name": "tag",
"value": "23"
},
{
"begin": 913,
"end": 977,
"name": "JUMPDEST"
},
{
"begin": 1025,
"end": 1037,
"name": "PUSH",
"value": "1"
},
{
"begin": 1025,
"end": 1042,
"name": "PUSH",
"value": "0"
},
{
"begin": 1038,
"end": 1041,
"name": "DUP4"
},
{
"begin": 1025,
"end": 1042,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1025,
"end": 1042,
"name": "AND"
},
{
"begin": 1025,
"end": 1042,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1025,
"end": 1042,
"name": "AND"
},
{
"begin": 1025,
"end": 1042,
"name": "DUP2"
},
{
"begin": 1025,
"end": 1042,
"name": "MSTORE"
},
{
"begin": 1025,
"end": 1042,
"name": "PUSH",
"value": "20"
},
{
"begin": 1025,
"end": 1042,
"name": "ADD"
},
{
"begin": 1025,
"end": 1042,
"name": "SWAP1"
},
{
"begin": 1025,
"end": 1042,
"name": "DUP2"
},
{
"begin": 1025,
"end": 1042,
"name": "MSTORE"
},
{
"begin": 1025,
"end": 1042,
"name": "PUSH",
"value": "20"
},
{
"begin": 1025,
"end": 1042,
"name": "ADD"
},
{
"begin": 1025,
"end": 1042,
"name": "PUSH",
"value": "0"
},
{
"begin": 1025,
"end": 1042,
"name": "KECCAK256"
},
{
"begin": 1025,
"end": 1042,
"name": "SLOAD"
},
{
"begin": 1014,
"end": 1021,
"name": "DUP2"
},
{
"begin": 994,
"end": 1006,
"name": "PUSH",
"value": "1"
},
{
"begin": 994,
"end": 1011,
"name": "PUSH",
"value": "0"
},
{
"begin": 1007,
"end": 1010,
"name": "DUP6"
},
{
"begin": 994,
"end": 1011,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 994,
"end": 1011,
"name": "AND"
},
{
"begin": 994,
"end": 1011,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 994,
"end": 1011,
"name": "AND"
},
{
"begin": 994,
"end": 1011,
"name": "DUP2"
},
{
"begin": 994,
"end": 1011,
"name": "MSTORE"
},
{
"begin": 994,
"end": 1011,
"name": "PUSH",
"value": "20"
},
{
"begin": 994,
"end": 1011,
"name": "ADD"
},
{
"begin": 994,
"end": 1011,
"name": "SWAP1"
},
{
"begin": 994,
"end": 1011,
"name": "DUP2"
},
{
"begin": 994,
"end": 1011,
"name": "MSTORE"
},
{
"begin": 994,
"end": 1011,
"name": "PUSH",
"value": "20"
},
{
"begin": 994,
"end": 1011,
"name": "ADD"
},
{
"begin": 994,
"end": 1011,
"name": "PUSH",
"value": "0"
},
{
"begin": 994,
"end": 1011,
"name": "KECCAK256"
},
{
"begin": 994,
"end": 1011,
"name": "SLOAD"
},
{
"begin": 994,
"end": 1021,
"name": "ADD"
},
{
"begin": 994,
"end": 1042,
"name": "LT"
},
{
"begin": 994,
"end": 1042,
"name": "ISZERO"
},
{
"begin": 987,
"end": 1043,
"name": "PUSH [tag]",
"value": "24"
},
{
"begin": 987,
"end": 1043,
"name": "JUMPI"
},
{
"begin": 987,
"end": 1043,
"name": "INVALID"
},
{
"begin": 987,
"end": 1043,
"name": "tag",
"value": "24"
},
{
"begin": 987,
"end": 1043,
"name": "JUMPDEST"
},
{
"begin": 1098,
"end": 1110,
"name": "PUSH",
"value": "1"
},
{
"begin": 1098,
"end": 1122,
"name": "PUSH",
"value": "0"
},
{
"begin": 1111,
"end": 1121,
"name": "CALLER"
},
{
"begin": 1098,
"end": 1122,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1098,
"end": 1122,
"name": "AND"
},
{
"begin": 1098,
"end": 1122,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1098,
"end": 1122,
"name": "AND"
},
{
"begin": 1098,
"end": 1122,
"name": "DUP2"
},
{
"begin": 1098,
"end": 1122,
"name": "MSTORE"
},
{
"begin": 1098,
"end": 1122,
"name": "PUSH",
"value": "20"
},
{
"begin": 1098,
"end": 1122,
"name": "ADD"
},
{
"begin": 1098,
"end": 1122,
"name": "SWAP1"
},
{
"begin": 1098,
"end": 1122,
"name": "DUP2"
},
{
"begin": 1098,
"end": 1122,
"name": "MSTORE"
},
{
"begin": 1098,
"end": 1122,
"name": "PUSH",
"value": "20"
},
{
"begin": 1098,
"end": 1122,
"name": "ADD"
},
{
"begin": 1098,
"end": 1122,
"name": "PUSH",
"value": "0"
},
{
"begin": 1098,
"end": 1122,
"name": "KECCAK256"
},
{
"begin": 1098,
"end": 1122,
"name": "SLOAD"
},
{
"begin": 1087,
"end": 1094,
"name": "DUP2"
},
{
"begin": 1060,
"end": 1072,
"name": "PUSH",
"value": "1"
},
{
"begin": 1060,
"end": 1084,
"name": "PUSH",
"value": "0"
},
{
"begin": 1073,
"end": 1083,
"name": "CALLER"
},
{
"begin": 1060,
"end": 1084,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1060,
"end": 1084,
"name": "AND"
},
{
"begin": 1060,
"end": 1084,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1060,
"end": 1084,
"name": "AND"
},
{
"begin": 1060,
"end": 1084,
"name": "DUP2"
},
{
"begin": 1060,
"end": 1084,
"name": "MSTORE"
},
{
"begin": 1060,
"end": 1084,
"name": "PUSH",
"value": "20"
},
{
"begin": 1060,
"end": 1084,
"name": "ADD"
},
{
"begin": 1060,
"end": 1084,
"name": "SWAP1"
},
{
"begin": 1060,
"end": 1084,
"name": "DUP2"
},
{
"begin": 1060,
"end": 1084,
"name": "MSTORE"
},
{
"begin": 1060,
"end": 1084,
"name": "PUSH",
"value": "20"
},
{
"begin": 1060,
"end": 1084,
"name": "ADD"
},
{
"begin": 1060,
"end": 1084,
"name": "PUSH",
"value": "0"
},
{
"begin": 1060,
"end": 1084,
"name": "KECCAK256"
},
{
"begin": 1060,
"end": 1084,
"name": "SLOAD"
},
{
"begin": 1060,
"end": 1094,
"name": "SUB"
},
{
"begin": 1060,
"end": 1122,
"name": "GT"
},
{
"begin": 1060,
"end": 1122,
"name": "ISZERO"
},
{
"begin": 1053,
"end": 1123,
"name": "PUSH [tag]",
"value": "25"
},
{
"begin": 1053,
"end": 1123,
"name": "JUMPI"
},
{
"begin": 1053,
"end": 1123,
"name": "INVALID"
},
{
"begin": 1053,
"end": 1123,
"name": "tag",
"value": "25"
},
{
"begin": 1053,
"end": 1123,
"name": "JUMPDEST"
},
{
"begin": 1161,
"end": 1168,
"name": "DUP1"
},
{
"begin": 1133,
"end": 1145,
"name": "PUSH",
"value": "1"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "0"
},
{
"begin": 1146,
"end": 1156,
"name": "CALLER"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1133,
"end": 1157,
"name": "AND"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1133,
"end": 1157,
"name": "AND"
},
{
"begin": 1133,
"end": 1157,
"name": "DUP2"
},
{
"begin": 1133,
"end": 1157,
"name": "MSTORE"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "20"
},
{
"begin": 1133,
"end": 1157,
"name": "ADD"
},
{
"begin": 1133,
"end": 1157,
"name": "SWAP1"
},
{
"begin": 1133,
"end": 1157,
"name": "DUP2"
},
{
"begin": 1133,
"end": 1157,
"name": "MSTORE"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "20"
},
{
"begin": 1133,
"end": 1157,
"name": "ADD"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "0"
},
{
"begin": 1133,
"end": 1157,
"name": "KECCAK256"
},
{
"begin": 1133,
"end": 1157,
"name": "PUSH",
"value": "0"
},
{
"begin": 1133,
"end": 1168,
"name": "DUP3"
},
{
"begin": 1133,
"end": 1168,
"name": "DUP3"
},
{
"begin": 1133,
"end": 1168,
"name": "SLOAD"
},
{
"begin": 1133,
"end": 1168,
"name": "SUB"
},
{
"begin": 1133,
"end": 1168,
"name": "SWAP3"
},
{
"begin": 1133,
"end": 1168,
"name": "POP"
},
{
"begin": 1133,
"end": 1168,
"name": "POP"
},
{
"begin": 1133,
"end": 1168,
"name": "DUP2"
},
{
"begin": 1133,
"end": 1168,
"name": "SWAP1"
},
{
"begin": 1133,
"end": 1168,
"name": "SSTORE"
},
{
"begin": 1133,
"end": 1168,
"name": "POP"
},
{
"begin": 1199,
"end": 1206,
"name": "DUP1"
},
{
"begin": 1178,
"end": 1190,
"name": "PUSH",
"value": "1"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "0"
},
{
"begin": 1191,
"end": 1194,
"name": "DUP5"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1178,
"end": 1195,
"name": "AND"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1178,
"end": 1195,
"name": "AND"
},
{
"begin": 1178,
"end": 1195,
"name": "DUP2"
},
{
"begin": 1178,
"end": 1195,
"name": "MSTORE"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "20"
},
{
"begin": 1178,
"end": 1195,
"name": "ADD"
},
{
"begin": 1178,
"end": 1195,
"name": "SWAP1"
},
{
"begin": 1178,
"end": 1195,
"name": "DUP2"
},
{
"begin": 1178,
"end": 1195,
"name": "MSTORE"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "20"
},
{
"begin": 1178,
"end": 1195,
"name": "ADD"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "0"
},
{
"begin": 1178,
"end": 1195,
"name": "KECCAK256"
},
{
"begin": 1178,
"end": 1195,
"name": "PUSH",
"value": "0"
},
{
"begin": 1178,
"end": 1206,
"name": "DUP3"
},
{
"begin": 1178,
"end": 1206,
"name": "DUP3"
},
{
"begin": 1178,
"end": 1206,
"name": "SLOAD"
},
{
"begin": 1178,
"end": 1206,
"name": "ADD"
},
{
"begin": 1178,
"end": 1206,
"name": "SWAP3"
},
{
"begin": 1178,
"end": 1206,
"name": "POP"
},
{
"begin": 1178,
"end": 1206,
"name": "POP"
},
{
"begin": 1178,
"end": 1206,
"name": "DUP2"
},
{
"begin": 1178,
"end": 1206,
"name": "SWAP1"
},
{
"begin": 1178,
"end": 1206,
"name": "SSTORE"
},
{
"begin": 1178,
"end": 1206,
"name": "POP"
},
{
"begin": 842,
"end": 1213,
"name": "POP"
},
{
"begin": 842,
"end": 1213,
"name": "POP"
},
{
"begin": 842,
"end": 1213,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 415,
"end": 496,
"name": "tag",
"value": "12"
},
{
"begin": 415,
"end": 496,
"name": "JUMPDEST"
},
{
"begin": 219,
"end": 224,
"name": "PUSH",
"value": "0"
},
{
"begin": 219,
"end": 224,
"name": "DUP1"
},
{
"begin": 219,
"end": 224,
"name": "SWAP1"
},
{
"begin": 219,
"end": 224,
"name": "SLOAD"
},
{
"begin": 219,
"end": 224,
"name": "SWAP1"
},
{
"begin": 219,
"end": 224,
"name": "PUSH",
"value": "100"
},
{
"begin": 219,
"end": 224,
"name": "EXP"
},
{
"begin": 219,
"end": 224,
"name": "SWAP1"
},
{
"begin": 219,
"end": 224,
"name": "DIV"
},
{
"begin": 219,
"end": 224,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 219,
"end": 224,
"name": "AND"
},
{
"begin": 205,
"end": 224,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 205,
"end": 224,
"name": "AND"
},
{
"begin": 205,
"end": 215,
"name": "CALLER"
},
{
"begin": 205,
"end": 224,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 205,
"end": 224,
"name": "AND"
},
{
"begin": 205,
"end": 224,
"name": "EQ"
},
{
"begin": 197,
"end": 242,
"name": "PUSH [tag]",
"value": "27"
},
{
"begin": 197,
"end": 242,
"name": "JUMPI"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "40"
},
{
"begin": 197,
"end": 242,
"name": "MLOAD"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "4"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "20"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "DUP3"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "SUB"
},
{
"begin": 197,
"end": 242,
"name": "DUP3"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "D"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "20"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "552052206E6F74206F776E657200000000000000000000000000000000000000"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "POP"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "20"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "SWAP2"
},
{
"begin": 197,
"end": 242,
"name": "POP"
},
{
"begin": 197,
"end": 242,
"name": "POP"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "40"
},
{
"begin": 197,
"end": 242,
"name": "MLOAD"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "SWAP2"
},
{
"begin": 197,
"end": 242,
"name": "SUB"
},
{
"begin": 197,
"end": 242,
"name": "SWAP1"
},
{
"begin": 197,
"end": 242,
"name": "REVERT"
},
{
"begin": 197,
"end": 242,
"name": "tag",
"value": "27"
},
{
"begin": 197,
"end": 242,
"name": "JUMPDEST"
},
{
"begin": 468,
"end": 480,
"name": "PUSH",
"value": "1"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "0"
},
{
"begin": 481,
"end": 486,
"name": "DUP1"
},
{
"begin": 481,
"end": 486,
"name": "PUSH",
"value": "0"
},
{
"begin": 481,
"end": 486,
"name": "SWAP1"
},
{
"begin": 481,
"end": 486,
"name": "SLOAD"
},
{
"begin": 481,
"end": 486,
"name": "SWAP1"
},
{
"begin": 481,
"end": 486,
"name": "PUSH",
"value": "100"
},
{
"begin": 481,
"end": 486,
"name": "EXP"
},
{
"begin": 481,
"end": 486,
"name": "SWAP1"
},
{
"begin": 481,
"end": 486,
"name": "DIV"
},
{
"begin": 481,
"end": 486,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 481,
"end": 486,
"name": "AND"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 468,
"end": 487,
"name": "AND"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 468,
"end": 487,
"name": "AND"
},
{
"begin": 468,
"end": 487,
"name": "DUP2"
},
{
"begin": 468,
"end": 487,
"name": "MSTORE"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "20"
},
{
"begin": 468,
"end": 487,
"name": "ADD"
},
{
"begin": 468,
"end": 487,
"name": "SWAP1"
},
{
"begin": 468,
"end": 487,
"name": "DUP2"
},
{
"begin": 468,
"end": 487,
"name": "MSTORE"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "20"
},
{
"begin": 468,
"end": 487,
"name": "ADD"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "0"
},
{
"begin": 468,
"end": 487,
"name": "KECCAK256"
},
{
"begin": 468,
"end": 487,
"name": "PUSH",
"value": "0"
},
{
"begin": 468,
"end": 489,
"name": "DUP2"
},
{
"begin": 468,
"end": 489,
"name": "SLOAD"
},
{
"begin": 468,
"end": 489,
"name": "DUP1"
},
{
"begin": 468,
"end": 489,
"name": "SWAP3"
},
{
"begin": 468,
"end": 489,
"name": "SWAP2"
},
{
"begin": 468,
"end": 489,
"name": "SWAP1"
},
{
"begin": 468,
"end": 489,
"name": "PUSH",
"value": "1"
},
{
"begin": 468,
"end": 489,
"name": "ADD"
},
{
"begin": 468,
"end": 489,
"name": "SWAP2"
},
{
"begin": 468,
"end": 489,
"name": "SWAP1"
},
{
"begin": 468,
"end": 489,
"name": "POP"
},
{
"begin": 468,
"end": 489,
"name": "SSTORE"
},
{
"begin": 468,
"end": 489,
"name": "POP"
},
{
"begin": 415,
"end": 496,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 584,
"end": 836,
"name": "tag",
"value": "14"
},
{
"begin": 584,
"end": 836,
"name": "JUMPDEST"
},
{
"begin": 689,
"end": 690,
"name": "PUSH",
"value": "0"
},
{
"begin": 677,
"end": 686,
"name": "CALLVALUE"
},
{
"begin": 664,
"end": 674,
"name": "PUSH",
"value": "2"
},
{
"begin": 664,
"end": 674,
"name": "SLOAD"
},
{
"begin": 642,
"end": 654,
"name": "PUSH",
"value": "1"
},
{
"begin": 642,
"end": 661,
"name": "PUSH",
"value": "0"
},
{
"begin": 655,
"end": 660,
"name": "DUP1"
},
{
"begin": 655,
"end": 660,
"name": "PUSH",
"value": "0"
},
{
"begin": 655,
"end": 660,
"name": "SWAP1"
},
{
"begin": 655,
"end": 660,
"name": "SLOAD"
},
{
"begin": 655,
"end": 660,
"name": "SWAP1"
},
{
"begin": 655,
"end": 660,
"name": "PUSH",
"value": "100"
},
{
"begin": 655,
"end": 660,
"name": "EXP"
},
{
"begin": 655,
"end": 660,
"name": "SWAP1"
},
{
"begin": 655,
"end": 660,
"name": "DIV"
},
{
"begin": 655,
"end": 660,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 655,
"end": 660,
"name": "AND"
},
{
"begin": 642,
"end": 661,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 642,
"end": 661,
"name": "AND"
},
{
"begin": 642,
"end": 661,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 642,
"end": 661,
"name": "AND"
},
{
"begin": 642,
"end": 661,
"name": "DUP2"
},
{
"begin": 642,
"end": 661,
"name": "MSTORE"
},
{
"begin": 642,
"end": 661,
"name": "PUSH",
"value": "20"
},
{
"begin": 642,
"end": 661,
"name": "ADD"
},
{
"begin": 642,
"end": 661,
"name": "SWAP1"
},
{
"begin": 642,
"end": 661,
"name": "DUP2"
},
{
"begin": 642,
"end": 661,
"name": "MSTORE"
},
{
"begin": 642,
"end": 661,
"name": "PUSH",
"value": "20"
},
{
"begin": 642,
"end": 661,
"name": "ADD"
},
{
"begin": 642,
"end": 661,
"name": "PUSH",
"value": "0"
},
{
"begin": 642,
"end": 661,
"name": "KECCAK256"
},
{
"begin": 642,
"end": 661,
"name": "SLOAD"
},
{
"begin": 642,
"end": 674,
"name": "MUL"
},
{
"begin": 642,
"end": 686,
"name": "DUP2"
},
{
"begin": 642,
"end": 686,
"name": "PUSH [tag]",
"value": "30"
},
{
"begin": 642,
"end": 686,
"name": "JUMPI"
},
{
"begin": 642,
"end": 686,
"name": "INVALID"
},
{
"begin": 642,
"end": 686,
"name": "tag",
"value": "30"
},
{
"begin": 642,
"end": 686,
"name": "JUMPDEST"
},
{
"begin": 642,
"end": 686,
"name": "DIV"
},
{
"begin": 642,
"end": 690,
"name": "GT"
},
{
"begin": 634,
"end": 711,
"name": "PUSH [tag]",
"value": "31"
},
{
"begin": 634,
"end": 711,
"name": "JUMPI"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "40"
},
{
"begin": 634,
"end": 711,
"name": "MLOAD"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 634,
"end": 711,
"name": "DUP2"
},
{
"begin": 634,
"end": 711,
"name": "MSTORE"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "4"
},
{
"begin": 634,
"end": 711,
"name": "ADD"
},
{
"begin": 634,
"end": 711,
"name": "DUP1"
},
{
"begin": 634,
"end": 711,
"name": "DUP1"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "20"
},
{
"begin": 634,
"end": 711,
"name": "ADD"
},
{
"begin": 634,
"end": 711,
"name": "DUP3"
},
{
"begin": 634,
"end": 711,
"name": "DUP2"
},
{
"begin": 634,
"end": 711,
"name": "SUB"
},
{
"begin": 634,
"end": 711,
"name": "DUP3"
},
{
"begin": 634,
"end": 711,
"name": "MSTORE"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "10"
},
{
"begin": 634,
"end": 711,
"name": "DUP2"
},
{
"begin": 634,
"end": 711,
"name": "MSTORE"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "20"
},
{
"begin": 634,
"end": 711,
"name": "ADD"
},
{
"begin": 634,
"end": 711,
"name": "DUP1"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000"
},
{
"begin": 634,
"end": 711,
"name": "DUP2"
},
{
"begin": 634,
"end": 711,
"name": "MSTORE"
},
{
"begin": 634,
"end": 711,
"name": "POP"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "20"
},
{
"begin": 634,
"end": 711,
"name": "ADD"
},
{
"begin": 634,
"end": 711,
"name": "SWAP2"
},
{
"begin": 634,
"end": 711,
"name": "POP"
},
{
"begin": 634,
"end": 711,
"name": "POP"
},
{
"begin": 634,
"end": 711,
"name": "PUSH",
"value": "40"
},
{
"begin": 634,
"end": 711,
"name": "MLOAD"
},
{
"begin": 634,
"end": 711,
"name": "DUP1"
},
{
"begin": 634,
"end": 711,
"name": "SWAP2"
},
{
"begin": 634,
"end": 711,
"name": "SUB"
},
{
"begin": 634,
"end": 711,
"name": "SWAP1"
},
{
"begin": 634,
"end": 711,
"name": "REVERT"
},
{
"begin": 634,
"end": 711,
"name": "tag",
"value": "31"
},
{
"begin": 634,
"end": 711,
"name": "JUMPDEST"
},
{
"begin": 757,
"end": 767,
"name": "PUSH",
"value": "2"
},
{
"begin": 757,
"end": 767,
"name": "SLOAD"
},
{
"begin": 745,
"end": 754,
"name": "CALLVALUE"
},
{
"begin": 745,
"end": 767,
"name": "DUP2"
},
{
"begin": 745,
"end": 767,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 745,
"end": 767,
"name": "JUMPI"
},
{
"begin": 745,
"end": 767,
"name": "INVALID"
},
{
"begin": 745,
"end": 767,
"name": "tag",
"value": "32"
},
{
"begin": 745,
"end": 767,
"name": "JUMPDEST"
},
{
"begin": 745,
"end": 767,
"name": "DIV"
},
{
"begin": 722,
"end": 734,
"name": "PUSH",
"value": "1"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "0"
},
{
"begin": 735,
"end": 740,
"name": "DUP1"
},
{
"begin": 735,
"end": 740,
"name": "PUSH",
"value": "0"
},
{
"begin": 735,
"end": 740,
"name": "SWAP1"
},
{
"begin": 735,
"end": 740,
"name": "SLOAD"
},
{
"begin": 735,
"end": 740,
"name": "SWAP1"
},
{
"begin": 735,
"end": 740,
"name": "PUSH",
"value": "100"
},
{
"begin": 735,
"end": 740,
"name": "EXP"
},
{
"begin": 735,
"end": 740,
"name": "SWAP1"
},
{
"begin": 735,
"end": 740,
"name": "DIV"
},
{
"begin": 735,
"end": 740,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 735,
"end": 740,
"name": "AND"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 722,
"end": 741,
"name": "AND"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 722,
"end": 741,
"name": "AND"
},
{
"begin": 722,
"end": 741,
"name": "DUP2"
},
{
"begin": 722,
"end": 741,
"name": "MSTORE"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "20"
},
{
"begin": 722,
"end": 741,
"name": "ADD"
},
{
"begin": 722,
"end": 741,
"name": "SWAP1"
},
{
"begin": 722,
"end": 741,
"name": "DUP2"
},
{
"begin": 722,
"end": 741,
"name": "MSTORE"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "20"
},
{
"begin": 722,
"end": 741,
"name": "ADD"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "0"
},
{
"begin": 722,
"end": 741,
"name": "KECCAK256"
},
{
"begin": 722,
"end": 741,
"name": "PUSH",
"value": "0"
},
{
"begin": 722,
"end": 767,
"name": "DUP3"
},
{
"begin": 722,
"end": 767,
"name": "DUP3"
},
{
"begin": 722,
"end": 767,
"name": "SLOAD"
},
{
"begin": 722,
"end": 767,
"name": "SUB"
},
{
"begin": 722,
"end": 767,
"name": "SWAP3"
},
{
"begin": 722,
"end": 767,
"name": "POP"
},
{
"begin": 722,
"end": 767,
"name": "POP"
},
{
"begin": 722,
"end": 767,
"name": "DUP2"
},
{
"begin": 722,
"end": 767,
"name": "SWAP1"
},
{
"begin": 722,
"end": 767,
"name": "SSTORE"
},
{
"begin": 722,
"end": 767,
"name": "POP"
},
{
"begin": 819,
"end": 829,
"name": "PUSH",
"value": "2"
},
{
"begin": 819,
"end": 829,
"name": "SLOAD"
},
{
"begin": 807,
"end": 816,
"name": "CALLVALUE"
},
{
"begin": 807,
"end": 829,
"name": "DUP2"
},
{
"begin": 807,
"end": 829,
"name": "PUSH [tag]",
"value": "33"
},
{
"begin": 807,
"end": 829,
"name": "JUMPI"
},
{
"begin": 807,
"end": 829,
"name": "INVALID"
},
{
"begin": 807,
"end": 829,
"name": "tag",
"value": "33"
},
{
"begin": 807,
"end": 829,
"name": "JUMPDEST"
},
{
"begin": 807,
"end": 829,
"name": "DIV"
},
{
"begin": 778,
"end": 790,
"name": "PUSH",
"value": "1"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "0"
},
{
"begin": 791,
"end": 801,
"name": "CALLER"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 778,
"end": 802,
"name": "AND"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 778,
"end": 802,
"name": "AND"
},
{
"begin": 778,
"end": 802,
"name": "DUP2"
},
{
"begin": 778,
"end": 802,
"name": "MSTORE"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "20"
},
{
"begin": 778,
"end": 802,
"name": "ADD"
},
{
"begin": 778,
"end": 802,
"name": "SWAP1"
},
{
"begin": 778,
"end": 802,
"name": "DUP2"
},
{
"begin": 778,
"end": 802,
"name": "MSTORE"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "20"
},
{
"begin": 778,
"end": 802,
"name": "ADD"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "0"
},
{
"begin": 778,
"end": 802,
"name": "KECCAK256"
},
{
"begin": 778,
"end": 802,
"name": "PUSH",
"value": "0"
},
{
"begin": 778,
"end": 829,
"name": "DUP3"
},
{
"begin": 778,
"end": 829,
"name": "DUP3"
},
{
"begin": 778,
"end": 829,
"name": "SLOAD"
},
{
"begin": 778,
"end": 829,
"name": "ADD"
},
{
"begin": 778,
"end": 829,
"name": "SWAP3"
},
{
"begin": 778,
"end": 829,
"name": "POP"
},
{
"begin": 778,
"end": 829,
"name": "POP"
},
{
"begin": 778,
"end": 829,
"name": "DUP2"
},
{
"begin": 778,
"end": 829,
"name": "SWAP1"
},
{
"begin": 778,
"end": 829,
"name": "SSTORE"
},
{
"begin": 778,
"end": 829,
"name": "POP"
},
{
"begin": 584,
"end": 836,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 264,
"end": 308,
"name": "tag",
"value": "18"
},
{
"begin": 264,
"end": 308,
"name": "JUMPDEST"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "1"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "20"
},
{
"begin": 264,
"end": 308,
"name": "MSTORE"
},
{
"begin": 264,
"end": 308,
"name": "DUP1"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "0"
},
{
"begin": 264,
"end": 308,
"name": "MSTORE"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "40"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "0"
},
{
"begin": 264,
"end": 308,
"name": "KECCAK256"
},
{
"begin": 264,
"end": 308,
"name": "PUSH",
"value": "0"
},
{
"begin": 264,
"end": 308,
"name": "SWAP2"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "SWAP1"
},
{
"begin": 264,
"end": 308,
"name": "POP"
},
{
"begin": 264,
"end": 308,
"name": "SLOAD"
},
{
"begin": 264,
"end": 308,
"name": "DUP2"
},
{
"begin": 264,
"end": 308,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 502,
"end": 578,
"name": "tag",
"value": "21"
},
{
"begin": 502,
"end": 578,
"name": "JUMPDEST"
},
{
"begin": 219,
"end": 224,
"name": "PUSH",
"value": "0"
},
{
"begin": 219,
"end": 224,
"name": "DUP1"
},
{
"begin": 219,
"end": 224,
"name": "SWAP1"
},
{
"begin": 219,
"end": 224,
"name": "SLOAD"
},
{
"begin": 219,
"end": 224,
"name": "SWAP1"
},
{
"begin": 219,
"end": 224,
"name": "PUSH",
"value": "100"
},
{
"begin": 219,
"end": 224,
"name": "EXP"
},
{
"begin": 219,
"end": 224,
"name": "SWAP1"
},
{
"begin": 219,
"end": 224,
"name": "DIV"
},
{
"begin": 219,
"end": 224,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 219,
"end": 224,
"name": "AND"
},
{
"begin": 205,
"end": 224,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 205,
"end": 224,
"name": "AND"
},
{
"begin": 205,
"end": 215,
"name": "CALLER"
},
{
"begin": 205,
"end": 224,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 205,
"end": 224,
"name": "AND"
},
{
"begin": 205,
"end": 224,
"name": "EQ"
},
{
"begin": 197,
"end": 242,
"name": "PUSH [tag]",
"value": "35"
},
{
"begin": 197,
"end": 242,
"name": "JUMPI"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "40"
},
{
"begin": 197,
"end": 242,
"name": "MLOAD"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "4"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "20"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "DUP3"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "SUB"
},
{
"begin": 197,
"end": 242,
"name": "DUP3"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "D"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "20"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "552052206E6F74206F776E657200000000000000000000000000000000000000"
},
{
"begin": 197,
"end": 242,
"name": "DUP2"
},
{
"begin": 197,
"end": 242,
"name": "MSTORE"
},
{
"begin": 197,
"end": 242,
"name": "POP"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "20"
},
{
"begin": 197,
"end": 242,
"name": "ADD"
},
{
"begin": 197,
"end": 242,
"name": "SWAP2"
},
{
"begin": 197,
"end": 242,
"name": "POP"
},
{
"begin": 197,
"end": 242,
"name": "POP"
},
{
"begin": 197,
"end": 242,
"name": "PUSH",
"value": "40"
},
{
"begin": 197,
"end": 242,
"name": "MLOAD"
},
{
"begin": 197,
"end": 242,
"name": "DUP1"
},
{
"begin": 197,
"end": 242,
"name": "SWAP2"
},
{
"begin": 197,
"end": 242,
"name": "SUB"
},
{
"begin": 197,
"end": 242,
"name": "SWAP1"
},
{
"begin": 197,
"end": 242,
"name": "REVERT"
},
{
"begin": 197,
"end": 242,
"name": "tag",
"value": "35"
},
{
"begin": 197,
"end": 242,
"name": "JUMPDEST"
},
{
"begin": 550,
"end": 562,
"name": "PUSH",
"value": "1"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "0"
},
{
"begin": 563,
"end": 568,
"name": "DUP1"
},
{
"begin": 563,
"end": 568,
"name": "PUSH",
"value": "0"
},
{
"begin": 563,
"end": 568,
"name": "SWAP1"
},
{
"begin": 563,
"end": 568,
"name": "SLOAD"
},
{
"begin": 563,
"end": 568,
"name": "SWAP1"
},
{
"begin": 563,
"end": 568,
"name": "PUSH",
"value": "100"
},
{
"begin": 563,
"end": 568,
"name": "EXP"
},
{
"begin": 563,
"end": 568,
"name": "SWAP1"
},
{
"begin": 563,
"end": 568,
"name": "DIV"
},
{
"begin": 563,
"end": 568,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 563,
"end": 568,
"name": "AND"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 550,
"end": 569,
"name": "AND"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 550,
"end": 569,
"name": "AND"
},
{
"begin": 550,
"end": 569,
"name": "DUP2"
},
{
"begin": 550,
"end": 569,
"name": "MSTORE"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "20"
},
{
"begin": 550,
"end": 569,
"name": "ADD"
},
{
"begin": 550,
"end": 569,
"name": "SWAP1"
},
{
"begin": 550,
"end": 569,
"name": "DUP2"
},
{
"begin": 550,
"end": 569,
"name": "MSTORE"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "20"
},
{
"begin": 550,
"end": 569,
"name": "ADD"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "0"
},
{
"begin": 550,
"end": 569,
"name": "KECCAK256"
},
{
"begin": 550,
"end": 569,
"name": "PUSH",
"value": "0"
},
{
"begin": 550,
"end": 571,
"name": "DUP2"
},
{
"begin": 550,
"end": 571,
"name": "SLOAD"
},
{
"begin": 550,
"end": 571,
"name": "DUP1"
},
{
"begin": 550,
"end": 571,
"name": "SWAP3"
},
{
"begin": 550,
"end": 571,
"name": "SWAP2"
},
{
"begin": 550,
"end": 571,
"name": "SWAP1"
},
{
"begin": 550,
"end": 571,
"name": "PUSH",
"value": "1"
},
{
"begin": 550,
"end": 571,
"name": "SWAP1"
},
{
"begin": 550,
"end": 571,
"name": "SUB"
},
{
"begin": 550,
"end": 571,
"name": "SWAP2"
},
{
"begin": 550,
"end": 571,
"name": "SWAP1"
},
{
"begin": 550,
"end": 571,
"name": "POP"
},
{
"begin": 550,
"end": 571,
"name": "SSTORE"
},
{
"begin": 550,
"end": 571,
"name": "POP"
},
{
"begin": 502,
"end": 578,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"burnToken()": "faa0a264",
"createNewToken()": "754fc38c",
"purchaseToken()": "a95c4d62",
"sendToken(address,uint256)": "412664ae",
"tokenBalance(address)": "eedc966a"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[],\"name\":\"burnToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"createNewToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"purchaseToken\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sendToken\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/InheritanceModifierExample.sol\":\"InheritanceModifierExample\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/InheritanceModifierExample.sol\":{\"keccak256\":\"0x5a38d5745da90a9bfaca14917e4828530c6cd787757cd4b48f033d21a3f40d2a\",\"urls\":[\"bzz-raw://1ec108b961b07c69a9407b2d52083f06c28b53e695b4e1019888308a4b314ec1\",\"dweb:/ipfs/QmUyV9dWkXH7qDMNC58gG1a1PmegRu46pn2AUYGqok3nPB\"]},\"contracts/Owned.sol\":{\"keccak256\":\"0x349a1d44ae6dd87cdb47e104c3504220d0c2954c71b5dbe32f55b90788a5314b\",\"urls\":[\"bzz-raw://6d8e3ac160e7f1ccc4d05bf98e0725d418900bb8877384cc4b3781adcf67efba\",\"dweb:/ipfs/QmSs5P6kfJnArU4nUg2oSpULmmpBSJz5aPHrTHsQ75RK88\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 142,
"contract": "contracts/InheritanceModifierExample.sol:InheritanceModifierExample",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 8,
"contract": "contracts/InheritanceModifierExample.sol:InheritanceModifierExample",
"label": "tokenBalance",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 11,
"contract": "contracts/InheritanceModifierExample.sol:InheritanceModifierExample",
"label": "tokenPrice",
"offset": 0,
"slot": "2",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"methods": {}
}
}
},
"contracts/Owned.sol": {
"Owned": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/Owned.sol\":63:262 contract Owned {... */\n mstore(0x40, 0x80)\n /* \"contracts/Owned.sol\":104:160 constructor() public {... */\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/Owned.sol\":104:160 constructor() public {... */\n pop\n /* \"contracts/Owned.sol\":143:153 msg.sender */\n caller\n /* \"contracts/Owned.sol\":135:140 owner */\n 0x00\n dup1\n /* \"contracts/Owned.sol\":135:153 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/Owned.sol\":63:262 contract Owned {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/Owned.sol\":63:262 contract Owned {... */\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa265627a7a7231582062063c4737ad48d6f1e735d20750a9f0fb60558383d4ea1b17f40d732cf1f94164736f6c634300050d0032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603e80605d6000396000f3fe6080604052600080fdfea265627a7a7231582062063c4737ad48d6f1e735d20750a9f0fb60558383d4ea1b17f40d732cf1f94164736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3E DUP1 PUSH1 0x5D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH3 0x63C47 CALLDATACOPY 0xAD 0x48 0xD6 CALL 0xE7 CALLDATALOAD 0xD2 SMOD POP 0xA9 CREATE 0xFB PUSH1 0x55 DUP4 DUP4 0xD4 0xEA SHL OR DELEGATECALL 0xD PUSH20 0x2CF1F94164736F6C634300050D00320000000000 ",
"sourceMap": "63:199:1:-;;;104:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;104:56:1;143:10;135:5;;:18;;;;;;;;;;;;;;;;;;63:199;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fdfea265627a7a7231582062063c4737ad48d6f1e735d20750a9f0fb60558383d4ea1b17f40d732cf1f94164736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH3 0x63C47 CALLDATACOPY 0xAD 0x48 0xD6 CALL 0xE7 CALLDATALOAD 0xD2 SMOD POP 0xA9 CREATE 0xFB PUSH1 0x55 DUP4 DUP4 0xD4 0xEA SHL OR DELEGATECALL 0xD PUSH20 0x2CF1F94164736F6C634300050D00320000000000 ",
"sourceMap": "63:199:1:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12400",
"executionCost": "20332",
"totalCost": "32732"
}
},
"legacyAssembly": {
".code": [
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 262,
"name": "MSTORE"
},
{
"begin": 104,
"end": 160,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 104,
"end": 160,
"name": "POP"
},
{
"begin": 143,
"end": 153,
"name": "CALLER"
},
{
"begin": 135,
"end": 140,
"name": "PUSH",
"value": "0"
},
{
"begin": 135,
"end": 140,
"name": "DUP1"
},
{
"begin": 135,
"end": 153,
"name": "PUSH",
"value": "100"
},
{
"begin": 135,
"end": 153,
"name": "EXP"
},
{
"begin": 135,
"end": 153,
"name": "DUP2"
},
{
"begin": 135,
"end": 153,
"name": "SLOAD"
},
{
"begin": 135,
"end": 153,
"name": "DUP2"
},
{
"begin": 135,
"end": 153,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 135,
"end": 153,
"name": "MUL"
},
{
"begin": 135,
"end": 153,
"name": "NOT"
},
{
"begin": 135,
"end": 153,
"name": "AND"
},
{
"begin": 135,
"end": 153,
"name": "SWAP1"
},
{
"begin": 135,
"end": 153,
"name": "DUP4"
},
{
"begin": 135,
"end": 153,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 135,
"end": 153,
"name": "AND"
},
{
"begin": 135,
"end": 153,
"name": "MUL"
},
{
"begin": 135,
"end": 153,
"name": "OR"
},
{
"begin": 135,
"end": 153,
"name": "SWAP1"
},
{
"begin": 135,
"end": 153,
"name": "SSTORE"
},
{
"begin": 135,
"end": 153,
"name": "POP"
},
{
"begin": 63,
"end": 262,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 262,
"name": "DUP1"
},
{
"begin": 63,
"end": 262,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 262,
"name": "CODECOPY"
},
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 262,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a7231582062063c4737ad48d6f1e735d20750a9f0fb60558383d4ea1b17f40d732cf1f94164736f6c634300050d0032",
".code": [
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 262,
"name": "MSTORE"
},
{
"begin": 63,
"end": 262,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 262,
"name": "DUP1"
},
{
"begin": 63,
"end": 262,
"name": "REVERT"
}
]
}
}
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/Owned.sol\":\"Owned\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Owned.sol\":{\"keccak256\":\"0x349a1d44ae6dd87cdb47e104c3504220d0c2954c71b5dbe32f55b90788a5314b\",\"urls\":[\"bzz-raw://6d8e3ac160e7f1ccc4d05bf98e0725d418900bb8877384cc4b3781adcf67efba\",\"dweb:/ipfs/QmSs5P6kfJnArU4nUg2oSpULmmpBSJz5aPHrTHsQ75RK88\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 142,
"contract": "contracts/Owned.sol:Owned",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
}
}
},
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"contracts/InheritanceModifierExample.sol": {
"ast": {
"absolutePath": "contracts/InheritanceModifierExample.sol",
"exportedSymbols": {
"InheritanceModifierExample": [
138
]
},
"id": 139,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.5",
".13"
],
"nodeType": "PragmaDirective",
"src": "37:24:0"
},
{
"absolutePath": "contracts/Owned.sol",
"file": "./Owned.sol",
"id": 2,
"nodeType": "ImportDirective",
"scope": 139,
"sourceUnit": 165,
"src": "63:21:0",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3,
"name": "Owned",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 164,
"src": "252:5:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Owned_$164",
"typeString": "contract Owned"
}
},
"id": 4,
"nodeType": "InheritanceSpecifier",
"src": "252:5:0"
}
],
"contractDependencies": [
164
],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 138,
"linearizedBaseContracts": [
138,
164
],
"name": "InheritanceModifierExample",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 8,
"name": "tokenBalance",
"nodeType": "VariableDeclaration",
"scope": 138,
"src": "264:44:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 7,
"keyType": {
"id": 5,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "272:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "264:24:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 6,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "283:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "public"
},
{
"constant": false,
"id": 11,
"name": "tokenPrice",
"nodeType": "VariableDeclaration",
"scope": 138,
"src": "314:25:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 9,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "314:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"hexValue": "31",
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "332:7:0",
"subdenomination": "ether",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"value": "1"
},
"visibility": "internal"
},
{
"body": {
"id": 20,
"nodeType": "Block",
"src": "367:42:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 18,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 14,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "377:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 16,
"indexExpression": {
"argumentTypes": null,
"id": 15,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "390:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "377:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "313030",
"id": 17,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "399:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "377:25:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 19,
"nodeType": "ExpressionStatement",
"src": "377:25:0"
}
]
},
"documentation": null,
"id": 21,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 12,
"nodeType": "ParameterList",
"parameters": [],
"src": "357:2:0"
},
"returnParameters": {
"id": 13,
"nodeType": "ParameterList",
"parameters": [],
"src": "367:0:0"
},
"scope": 138,
"src": "346:63:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 31,
"nodeType": "Block",
"src": "458:38:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "468:21:0",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 26,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "468:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 28,
"indexExpression": {
"argumentTypes": null,
"id": 27,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "481:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "468:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 30,
"nodeType": "ExpressionStatement",
"src": "468:21:0"
}
]
},
"documentation": null,
"id": 32,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 24,
"modifierName": {
"argumentTypes": null,
"id": 23,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 163,
"src": "448:9:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "448:9:0"
}
],
"name": "createNewToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 22,
"nodeType": "ParameterList",
"parameters": [],
"src": "438:2:0"
},
"returnParameters": {
"id": 25,
"nodeType": "ParameterList",
"parameters": [],
"src": "458:0:0"
},
"scope": 138,
"src": "415:81:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 42,
"nodeType": "Block",
"src": "540:38:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 40,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "--",
"prefix": false,
"src": "550:21:0",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 37,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "550:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 39,
"indexExpression": {
"argumentTypes": null,
"id": 38,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "563:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "550:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 41,
"nodeType": "ExpressionStatement",
"src": "550:21:0"
}
]
},
"documentation": null,
"id": 43,
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": null,
"id": 35,
"modifierName": {
"argumentTypes": null,
"id": 34,
"name": "onlyOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 163,
"src": "530:9:0",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "530:9:0"
}
],
"name": "burnToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 33,
"nodeType": "ParameterList",
"parameters": [],
"src": "520:2:0"
},
"returnParameters": {
"id": 36,
"nodeType": "ParameterList",
"parameters": [],
"src": "540:0:0"
},
"scope": 138,
"src": "502:76:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 79,
"nodeType": "Block",
"src": "624:212:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 56,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 54,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 51,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 47,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "642:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 49,
"indexExpression": {
"argumentTypes": null,
"id": 48,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "655:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "642:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 50,
"name": "tokenPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "664:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "642:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 52,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "677:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 53,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "677:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "642:44:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "689:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "642:48:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6e6f7420656e6f75676820746f6b656e",
"id": 57,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "692:18:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
},
"value": "not enough token"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
}
],
"id": 46,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
182,
183
],
"referencedDeclaration": 183,
"src": "634:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "634:77:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 59,
"nodeType": "ExpressionStatement",
"src": "634:77:0"
},
{
"expression": {
"argumentTypes": null,
"id": 67,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 60,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "722:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 62,
"indexExpression": {
"argumentTypes": null,
"id": 61,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "735:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "722:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 66,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 63,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "745:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "745:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 65,
"name": "tokenPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "757:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "745:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "722:45:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 68,
"nodeType": "ExpressionStatement",
"src": "722:45:0"
},
{
"expression": {
"argumentTypes": null,
"id": 77,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 69,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "778:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 72,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 70,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "791:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 71,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "791:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "778:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 76,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 73,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "807:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 74,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "807:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 75,
"name": "tokenPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 11,
"src": "819:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "807:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "778:51:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 78,
"nodeType": "ExpressionStatement",
"src": "778:51:0"
}
]
},
"documentation": null,
"id": 80,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "purchaseToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 44,
"nodeType": "ParameterList",
"parameters": [],
"src": "606:2:0"
},
"returnParameters": {
"id": 45,
"nodeType": "ParameterList",
"parameters": [],
"src": "624:0:0"
},
"scope": 138,
"src": "584:252:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 136,
"nodeType": "Block",
"src": "903:310:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 88,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "921:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 91,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 89,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "934:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "934:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "921:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 92,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "949:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "921:35:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6e6f7420656e6f75676820746f6b656e",
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "958:18:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
},
"value": "not enough token"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
}
],
"id": 87,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
182,
183
],
"referencedDeclaration": 183,
"src": "913:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 95,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "913:64:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 96,
"nodeType": "ExpressionStatement",
"src": "913:64:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 98,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "994:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 100,
"indexExpression": {
"argumentTypes": null,
"id": 99,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 82,
"src": "1007:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "994:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 101,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "1014:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "994:27:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 103,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "1025:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 105,
"indexExpression": {
"argumentTypes": null,
"id": 104,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 82,
"src": "1038:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1025:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "994:48:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 97,
"name": "assert",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "987:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 107,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "987:56:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 108,
"nodeType": "ExpressionStatement",
"src": "987:56:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 120,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 115,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 110,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "1060:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 113,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 111,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "1073:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 112,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1073:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1060:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 114,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "1087:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1060:34:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 116,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "1098:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 119,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 117,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "1111:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1111:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1098:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1060:62:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 109,
"name": "assert",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 168,
"src": "1053:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 121,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1053:70:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 122,
"nodeType": "ExpressionStatement",
"src": "1053:70:0"
},
{
"expression": {
"argumentTypes": null,
"id": 128,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 123,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "1133:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 126,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 124,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "1146:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 125,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1146:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1133:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 127,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "1161:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1133:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 129,
"nodeType": "ExpressionStatement",
"src": "1133:35:0"
},
{
"expression": {
"argumentTypes": null,
"id": 134,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 130,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8,
"src": "1178:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 132,
"indexExpression": {
"argumentTypes": null,
"id": 131,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 82,
"src": "1191:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1178:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 133,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 84,
"src": "1199:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1178:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 135,
"nodeType": "ExpressionStatement",
"src": "1178:28:0"
}
]
},
"documentation": null,
"id": 137,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sendToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 85,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 82,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "861:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 81,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "861:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 84,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 137,
"src": "874:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 83,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "874:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "860:27:0"
},
"returnParameters": {
"id": 86,
"nodeType": "ParameterList",
"parameters": [],
"src": "903:0:0"
},
"scope": 138,
"src": "842:371:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 139,
"src": "213:1002:0"
}
],
"src": "37:1178:0"
},
"id": 0
},
"contracts/Owned.sol": {
"ast": {
"absolutePath": "contracts/Owned.sol",
"exportedSymbols": {
"Owned": [
164
]
},
"id": 165,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 140,
"literals": [
"solidity",
"^",
"0.5",
".13"
],
"nodeType": "PragmaDirective",
"src": "37:24:1"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 164,
"linearizedBaseContracts": [
164
],
"name": "Owned",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 142,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 164,
"src": "84:13:1",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 141,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "84:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 150,
"nodeType": "Block",
"src": "125:35:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 148,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 145,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "135:5:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 146,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "143:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 147,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "143:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "135:18:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 149,
"nodeType": "ExpressionStatement",
"src": "135:18:1"
}
]
},
"documentation": null,
"id": 151,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 143,
"nodeType": "ParameterList",
"parameters": [],
"src": "115:2:1"
},
"returnParameters": {
"id": 144,
"nodeType": "ParameterList",
"parameters": [],
"src": "125:0:1"
},
"scope": 164,
"src": "104:56:1",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 162,
"nodeType": "Block",
"src": "187:73:1",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 157,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 154,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 179,
"src": "205:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 155,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "205:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 156,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "219:5:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "205:19:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "552052206e6f74206f776e6572",
"id": 158,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "226:15:1",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_952421db8fbaba0fdc8ada4d4f1583bd0c236602a131dd2c7042ac6f021dce1c",
"typeString": "literal_string \"U R not owner\""
},
"value": "U R not owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_952421db8fbaba0fdc8ada4d4f1583bd0c236602a131dd2c7042ac6f021dce1c",
"typeString": "literal_string \"U R not owner\""
}
],
"id": 153,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
182,
183
],
"referencedDeclaration": 183,
"src": "197:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 159,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "197:45:1",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 160,
"nodeType": "ExpressionStatement",
"src": "197:45:1"
},
{
"id": 161,
"nodeType": "PlaceholderStatement",
"src": "252:1:1"
}
]
},
"documentation": null,
"id": 163,
"name": "onlyOwner",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 152,
"nodeType": "ParameterList",
"parameters": [],
"src": "184:2:1"
},
"src": "166:94:1",
"visibility": "internal"
}
],
"scope": 165,
"src": "63:199:1"
}
],
"src": "37:225:1"
},
"id": 1
}
}
}
}
{
"id": "02ebe80e7cfd795a276b2b61f7230d69",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.13",
"solcLongVersion": "0.5.13+commit.5b0b510c",
"input": {
"language": "Solidity",
"sources": {
"contracts/ExceptionExample.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.5.13;\n\ncontract ExceptionExample {\n mapping(address => uint64) public balanceRecived;\n\n function receiveMoney() public payable {\n assert(balanceRecived[msg.sender] + uint64(msg.value) >= balanceRecived[msg.sender]);\n balanceRecived[msg.sender] += uint64(msg.value);\n }\n\n function withdrawMoney(address payable _to, uint64 _amount) public {\n require(balanceRecived[msg.sender] >= _amount, \"no enough funds\");\n\n balanceRecived[msg.sender] -= _amount;\n _to.transfer(_amount);\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/ExceptionExample.sol": {
"ExceptionExample": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint64",
"name": "_amount",
"type": "uint64"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/ExceptionExample.sol\":63:583 contract ExceptionExample {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/ExceptionExample.sol\":63:583 contract ExceptionExample {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/ExceptionExample.sol\":63:583 contract ExceptionExample {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x0ad19aeb\n eq\n tag_2\n jumpi\n dup1\n 0x6d26ec18\n eq\n tag_3\n jumpi\n dup1\n 0xca5eb638\n eq\n tag_4\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contracts/ExceptionExample.sol\":353:581 function withdrawMoney(address payable _to, uint64 _amount) public {... */\n tag_2:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_5\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_5:\n /* \"contracts/ExceptionExample.sol\":353:581 function withdrawMoney(address payable _to, uint64 _amount) public {... */\n pop\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_7\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_7:\n /* \"contracts/ExceptionExample.sol\":353:581 function withdrawMoney(address payable _to, uint64 _amount) public {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n 0xffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_8\n jump\t// in\n tag_6:\n stop\n /* \"contracts/ExceptionExample.sol\":150:347 function receiveMoney() public payable {... */\n tag_3:\n tag_9\n tag_10\n jump\t// in\n tag_9:\n stop\n /* \"contracts/ExceptionExample.sol\":95:143 mapping(address => uint64) public balanceRecived */\n tag_4:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_11\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_11:\n /* \"contracts/ExceptionExample.sol\":95:143 mapping(address => uint64) public balanceRecived */\n pop\n tag_12\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_13\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_13:\n /* \"contracts/ExceptionExample.sol\":95:143 mapping(address => uint64) public balanceRecived */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_14\n jump\t// in\n tag_12:\n mload(0x40)\n dup1\n dup3\n 0xffffffffffffffff\n and\n 0xffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/ExceptionExample.sol\":353:581 function withdrawMoney(address payable _to, uint64 _amount) public {... */\n tag_8:\n /* \"contracts/ExceptionExample.sol\":468:475 _amount */\n dup1\n /* \"contracts/ExceptionExample.sol\":438:475 balanceRecived[msg.sender] >= _amount */\n 0xffffffffffffffff\n and\n /* \"contracts/ExceptionExample.sol\":438:452 balanceRecived */\n 0x00\n /* \"contracts/ExceptionExample.sol\":438:464 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/ExceptionExample.sol\":453:463 msg.sender */\n caller\n /* \"contracts/ExceptionExample.sol\":438:464 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffff\n and\n /* \"contracts/ExceptionExample.sol\":438:475 balanceRecived[msg.sender] >= _amount */\n 0xffffffffffffffff\n and\n lt\n iszero\n /* \"contracts/ExceptionExample.sol\":430:495 require(balanceRecived[msg.sender] >= _amount, \"no enough funds\") */\n tag_16\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x0f\n dup2\n mstore\n 0x20\n add\n dup1\n 0x6e6f20656e6f7567682066756e64730000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_16:\n /* \"contracts/ExceptionExample.sol\":536:543 _amount */\n dup1\n /* \"contracts/ExceptionExample.sol\":506:520 balanceRecived */\n 0x00\n /* \"contracts/ExceptionExample.sol\":506:532 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/ExceptionExample.sol\":521:531 msg.sender */\n caller\n /* \"contracts/ExceptionExample.sol\":506:532 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/ExceptionExample.sol\":506:543 balanceRecived[msg.sender] -= _amount */\n dup3\n dup3\n dup3\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffff\n and\n sub\n swap3\n pop\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ExceptionExample.sol\":553:556 _to */\n dup2\n /* \"contracts/ExceptionExample.sol\":553:565 _to.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/ExceptionExample.sol\":553:574 _to.transfer(_amount) */\n 0x08fc\n /* \"contracts/ExceptionExample.sol\":566:573 _amount */\n dup3\n /* \"contracts/ExceptionExample.sol\":553:574 _to.transfer(_amount) */\n 0xffffffffffffffff\n and\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_17\n jumpi\n /* \"--CODEGEN--\":45:61 */\n returndatasize\n /* \"--CODEGEN--\":42:43 */\n 0x00\n /* \"--CODEGEN--\":39:40 */\n dup1\n /* \"--CODEGEN--\":24:62 */\n returndatacopy\n /* \"--CODEGEN--\":77:93 */\n returndatasize\n /* \"--CODEGEN--\":74:75 */\n 0x00\n /* \"--CODEGEN--\":67:94 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_17:\n /* \"contracts/ExceptionExample.sol\":553:574 _to.transfer(_amount) */\n pop\n /* \"contracts/ExceptionExample.sol\":353:581 function withdrawMoney(address payable _to, uint64 _amount) public {... */\n pop\n pop\n jump\t// out\n /* \"contracts/ExceptionExample.sol\":150:347 function receiveMoney() public payable {... */\n tag_10:\n /* \"contracts/ExceptionExample.sol\":256:270 balanceRecived */\n 0x00\n /* \"contracts/ExceptionExample.sol\":256:282 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/ExceptionExample.sol\":271:281 msg.sender */\n caller\n /* \"contracts/ExceptionExample.sol\":256:282 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffff\n and\n /* \"contracts/ExceptionExample.sol\":206:282 balanceRecived[msg.sender] + uint64(msg.value) >= balanceRecived[msg.sender] */\n 0xffffffffffffffff\n and\n /* \"contracts/ExceptionExample.sol\":242:251 msg.value */\n callvalue\n /* \"contracts/ExceptionExample.sol\":206:220 balanceRecived */\n 0x00\n /* \"contracts/ExceptionExample.sol\":206:232 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/ExceptionExample.sol\":221:231 msg.sender */\n caller\n /* \"contracts/ExceptionExample.sol\":206:232 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffff\n and\n /* \"contracts/ExceptionExample.sol\":206:252 balanceRecived[msg.sender] + uint64(msg.value) */\n add\n /* \"contracts/ExceptionExample.sol\":206:282 balanceRecived[msg.sender] + uint64(msg.value) >= balanceRecived[msg.sender] */\n 0xffffffffffffffff\n and\n lt\n iszero\n /* \"contracts/ExceptionExample.sol\":199:283 assert(balanceRecived[msg.sender] + uint64(msg.value) >= balanceRecived[msg.sender]) */\n tag_19\n jumpi\n invalid\n tag_19:\n /* \"contracts/ExceptionExample.sol\":330:339 msg.value */\n callvalue\n /* \"contracts/ExceptionExample.sol\":293:307 balanceRecived */\n 0x00\n /* \"contracts/ExceptionExample.sol\":293:319 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/ExceptionExample.sol\":308:318 msg.sender */\n caller\n /* \"contracts/ExceptionExample.sol\":293:319 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/ExceptionExample.sol\":293:340 balanceRecived[msg.sender] += uint64(msg.value) */\n dup3\n dup3\n dup3\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffff\n and\n add\n swap3\n pop\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/ExceptionExample.sol\":150:347 function receiveMoney() public payable {... */\n jump\t// out\n /* \"contracts/ExceptionExample.sol\":95:143 mapping(address => uint64) public balanceRecived */\n tag_14:\n mstore(0x20, 0x00)\n dup1\n 0x00\n mstore\n keccak256(0x00, 0x40)\n 0x00\n swap2\n pop\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffff\n and\n dup2\n jump\t// out\n\n auxdata: 0xa265627a7a72315820fb8ad6965d96770029924355dbe2c3108e150254a3d3984317f8bc2b6810a28964736f6c634300050d0032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610470806100206000396000f3fe6080604052600436106100345760003560e01c80630ad19aeb146100395780636d26ec181461009e578063ca5eb638146100a8575b600080fd5b34801561004557600080fd5b5061009c6004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610121565b005b6100a66102d0565b005b3480156100b457600080fd5b506100f7600480360360208110156100cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610414565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b8067ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1610156101fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f20656e6f7567682066756e6473000000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f193505050501580156102cb573d6000803e3d6000fd5b505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160167ffffffffffffffff16101561039457fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea265627a7a72315820fb8ad6965d96770029924355dbe2c3108e150254a3d3984317f8bc2b6810a28964736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x470 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x121 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA6 PUSH2 0x2D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F20656E6F7567682066756E64730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2CB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x394 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xFB DUP11 0xD6 SWAP7 0x5D SWAP7 PUSH24 0x29924355DBE2C3108E150254A3D3984317F8BC2B6810A2 DUP10 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:520:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:520:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100345760003560e01c80630ad19aeb146100395780636d26ec181461009e578063ca5eb638146100a8575b600080fd5b34801561004557600080fd5b5061009c6004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610121565b005b6100a66102d0565b005b3480156100b457600080fd5b506100f7600480360360208110156100cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610414565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b8067ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1610156101fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f20656e6f7567682066756e6473000000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f193505050501580156102cb573d6000803e3d6000fd5b505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160167ffffffffffffffff16101561039457fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea265627a7a72315820fb8ad6965d96770029924355dbe2c3108e150254a3d3984317f8bc2b6810a28964736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x121 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA6 PUSH2 0x2D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F20656E6F7567682066756E64730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2CB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x394 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xFB DUP11 0xD6 SWAP7 0x5D SWAP7 PUSH24 0x29924355DBE2C3108E150254A3D3984317F8BC2B6810A2 DUP10 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:520:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:228:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;353:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;150:197;;;:::i;:::-;;95:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;95:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;95:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;353:228;468:7;438:37;;:14;:26;453:10;438:26;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;430:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;506:14;:26;521:10;506:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:3;:12;;:21;566:7;553:21;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;553:21:0;353:228;;:::o;150:197::-;256:14;:26;271:10;256:26;;;;;;;;;;;;;;;;;;;;;;;;;206:76;;242:9;206:14;:26;221:10;206:26;;;;;;;;;;;;;;;;;;;;;;;;;:46;:76;;;;199:84;;;;330:9;293:14;:26;308:10;293:26;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;150:197::o;95:48::-;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "227200",
"executionCost": "269",
"totalCost": "227469"
},
"external": {
"balanceRecived(address)": "628",
"receiveMoney()": "21418",
"withdrawMoney(address,uint64)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 583,
"name": "MSTORE"
},
{
"begin": 63,
"end": 583,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 583,
"name": "POP"
},
{
"begin": 63,
"end": 583,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 583,
"name": "DUP1"
},
{
"begin": 63,
"end": 583,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 583,
"name": "CODECOPY"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 583,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a72315820fb8ad6965d96770029924355dbe2c3108e150254a3d3984317f8bc2b6810a28964736f6c634300050d0032",
".code": [
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 583,
"name": "MSTORE"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "4"
},
{
"begin": 63,
"end": 583,
"name": "CALLDATASIZE"
},
{
"begin": 63,
"end": 583,
"name": "LT"
},
{
"begin": 63,
"end": 583,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 63,
"end": 583,
"name": "JUMPI"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 583,
"name": "CALLDATALOAD"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "E0"
},
{
"begin": 63,
"end": 583,
"name": "SHR"
},
{
"begin": 63,
"end": 583,
"name": "DUP1"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "AD19AEB"
},
{
"begin": 63,
"end": 583,
"name": "EQ"
},
{
"begin": 63,
"end": 583,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 63,
"end": 583,
"name": "JUMPI"
},
{
"begin": 63,
"end": 583,
"name": "DUP1"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "6D26EC18"
},
{
"begin": 63,
"end": 583,
"name": "EQ"
},
{
"begin": 63,
"end": 583,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 63,
"end": 583,
"name": "JUMPI"
},
{
"begin": 63,
"end": 583,
"name": "DUP1"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "CA5EB638"
},
{
"begin": 63,
"end": 583,
"name": "EQ"
},
{
"begin": 63,
"end": 583,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 63,
"end": 583,
"name": "JUMPI"
},
{
"begin": 63,
"end": 583,
"name": "tag",
"value": "1"
},
{
"begin": 63,
"end": 583,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 583,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 583,
"name": "DUP1"
},
{
"begin": 63,
"end": 583,
"name": "REVERT"
},
{
"begin": 353,
"end": 581,
"name": "tag",
"value": "2"
},
{
"begin": 353,
"end": 581,
"name": "JUMPDEST"
},
{
"begin": 353,
"end": 581,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "5"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 353,
"end": 581,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 353,
"end": 581,
"name": "PUSH",
"value": "4"
},
{
"begin": 353,
"end": 581,
"name": "DUP1"
},
{
"begin": 353,
"end": 581,
"name": "CALLDATASIZE"
},
{
"begin": 353,
"end": 581,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "7"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 353,
"end": 581,
"name": "DUP2"
},
{
"begin": 353,
"end": 581,
"name": "ADD"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "DUP1"
},
{
"begin": 353,
"end": 581,
"name": "DUP1"
},
{
"begin": 353,
"end": 581,
"name": "CALLDATALOAD"
},
{
"begin": 353,
"end": 581,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 353,
"end": 581,
"name": "AND"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "PUSH",
"value": "20"
},
{
"begin": 353,
"end": 581,
"name": "ADD"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "SWAP3"
},
{
"begin": 353,
"end": 581,
"name": "SWAP2"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "DUP1"
},
{
"begin": 353,
"end": 581,
"name": "CALLDATALOAD"
},
{
"begin": 353,
"end": 581,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 353,
"end": 581,
"name": "AND"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "PUSH",
"value": "20"
},
{
"begin": 353,
"end": 581,
"name": "ADD"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "SWAP3"
},
{
"begin": 353,
"end": 581,
"name": "SWAP2"
},
{
"begin": 353,
"end": 581,
"name": "SWAP1"
},
{
"begin": 353,
"end": 581,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 353,
"end": 581,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 353,
"end": 581,
"name": "tag",
"value": "6"
},
{
"begin": 353,
"end": 581,
"name": "JUMPDEST"
},
{
"begin": 353,
"end": 581,
"name": "STOP"
},
{
"begin": 150,
"end": 347,
"name": "tag",
"value": "3"
},
{
"begin": 150,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 150,
"end": 347,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 150,
"end": 347,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 150,
"end": 347,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 150,
"end": 347,
"name": "tag",
"value": "9"
},
{
"begin": 150,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 150,
"end": 347,
"name": "STOP"
},
{
"begin": 95,
"end": 143,
"name": "tag",
"value": "4"
},
{
"begin": 95,
"end": 143,
"name": "JUMPDEST"
},
{
"begin": 95,
"end": 143,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "11"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "4"
},
{
"begin": 95,
"end": 143,
"name": "DUP1"
},
{
"begin": 95,
"end": 143,
"name": "CALLDATASIZE"
},
{
"begin": 95,
"end": 143,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "13"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 95,
"end": 143,
"name": "DUP2"
},
{
"begin": 95,
"end": 143,
"name": "ADD"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "DUP1"
},
{
"begin": 95,
"end": 143,
"name": "DUP1"
},
{
"begin": 95,
"end": 143,
"name": "CALLDATALOAD"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 95,
"end": 143,
"name": "AND"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "20"
},
{
"begin": 95,
"end": 143,
"name": "ADD"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "SWAP3"
},
{
"begin": 95,
"end": 143,
"name": "SWAP2"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 95,
"end": 143,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 95,
"end": 143,
"name": "tag",
"value": "12"
},
{
"begin": 95,
"end": 143,
"name": "JUMPDEST"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "40"
},
{
"begin": 95,
"end": 143,
"name": "MLOAD"
},
{
"begin": 95,
"end": 143,
"name": "DUP1"
},
{
"begin": 95,
"end": 143,
"name": "DUP3"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 95,
"end": 143,
"name": "AND"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 95,
"end": 143,
"name": "AND"
},
{
"begin": 95,
"end": 143,
"name": "DUP2"
},
{
"begin": 95,
"end": 143,
"name": "MSTORE"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "20"
},
{
"begin": 95,
"end": 143,
"name": "ADD"
},
{
"begin": 95,
"end": 143,
"name": "SWAP2"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "40"
},
{
"begin": 95,
"end": 143,
"name": "MLOAD"
},
{
"begin": 95,
"end": 143,
"name": "DUP1"
},
{
"begin": 95,
"end": 143,
"name": "SWAP2"
},
{
"begin": 95,
"end": 143,
"name": "SUB"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "RETURN"
},
{
"begin": 353,
"end": 581,
"name": "tag",
"value": "8"
},
{
"begin": 353,
"end": 581,
"name": "JUMPDEST"
},
{
"begin": 468,
"end": 475,
"name": "DUP1"
},
{
"begin": 438,
"end": 475,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 438,
"end": 475,
"name": "AND"
},
{
"begin": 438,
"end": 452,
"name": "PUSH",
"value": "0"
},
{
"begin": 438,
"end": 464,
"name": "DUP1"
},
{
"begin": 453,
"end": 463,
"name": "CALLER"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 438,
"end": 464,
"name": "AND"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 438,
"end": 464,
"name": "AND"
},
{
"begin": 438,
"end": 464,
"name": "DUP2"
},
{
"begin": 438,
"end": 464,
"name": "MSTORE"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "20"
},
{
"begin": 438,
"end": 464,
"name": "ADD"
},
{
"begin": 438,
"end": 464,
"name": "SWAP1"
},
{
"begin": 438,
"end": 464,
"name": "DUP2"
},
{
"begin": 438,
"end": 464,
"name": "MSTORE"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "20"
},
{
"begin": 438,
"end": 464,
"name": "ADD"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "0"
},
{
"begin": 438,
"end": 464,
"name": "KECCAK256"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "0"
},
{
"begin": 438,
"end": 464,
"name": "SWAP1"
},
{
"begin": 438,
"end": 464,
"name": "SLOAD"
},
{
"begin": 438,
"end": 464,
"name": "SWAP1"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "100"
},
{
"begin": 438,
"end": 464,
"name": "EXP"
},
{
"begin": 438,
"end": 464,
"name": "SWAP1"
},
{
"begin": 438,
"end": 464,
"name": "DIV"
},
{
"begin": 438,
"end": 464,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 438,
"end": 464,
"name": "AND"
},
{
"begin": 438,
"end": 475,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 438,
"end": 475,
"name": "AND"
},
{
"begin": 438,
"end": 475,
"name": "LT"
},
{
"begin": 438,
"end": 475,
"name": "ISZERO"
},
{
"begin": 430,
"end": 495,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 430,
"end": 495,
"name": "JUMPI"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "40"
},
{
"begin": 430,
"end": 495,
"name": "MLOAD"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 430,
"end": 495,
"name": "DUP2"
},
{
"begin": 430,
"end": 495,
"name": "MSTORE"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "4"
},
{
"begin": 430,
"end": 495,
"name": "ADD"
},
{
"begin": 430,
"end": 495,
"name": "DUP1"
},
{
"begin": 430,
"end": 495,
"name": "DUP1"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "20"
},
{
"begin": 430,
"end": 495,
"name": "ADD"
},
{
"begin": 430,
"end": 495,
"name": "DUP3"
},
{
"begin": 430,
"end": 495,
"name": "DUP2"
},
{
"begin": 430,
"end": 495,
"name": "SUB"
},
{
"begin": 430,
"end": 495,
"name": "DUP3"
},
{
"begin": 430,
"end": 495,
"name": "MSTORE"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "F"
},
{
"begin": 430,
"end": 495,
"name": "DUP2"
},
{
"begin": 430,
"end": 495,
"name": "MSTORE"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "20"
},
{
"begin": 430,
"end": 495,
"name": "ADD"
},
{
"begin": 430,
"end": 495,
"name": "DUP1"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "6E6F20656E6F7567682066756E64730000000000000000000000000000000000"
},
{
"begin": 430,
"end": 495,
"name": "DUP2"
},
{
"begin": 430,
"end": 495,
"name": "MSTORE"
},
{
"begin": 430,
"end": 495,
"name": "POP"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "20"
},
{
"begin": 430,
"end": 495,
"name": "ADD"
},
{
"begin": 430,
"end": 495,
"name": "SWAP2"
},
{
"begin": 430,
"end": 495,
"name": "POP"
},
{
"begin": 430,
"end": 495,
"name": "POP"
},
{
"begin": 430,
"end": 495,
"name": "PUSH",
"value": "40"
},
{
"begin": 430,
"end": 495,
"name": "MLOAD"
},
{
"begin": 430,
"end": 495,
"name": "DUP1"
},
{
"begin": 430,
"end": 495,
"name": "SWAP2"
},
{
"begin": 430,
"end": 495,
"name": "SUB"
},
{
"begin": 430,
"end": 495,
"name": "SWAP1"
},
{
"begin": 430,
"end": 495,
"name": "REVERT"
},
{
"begin": 430,
"end": 495,
"name": "tag",
"value": "16"
},
{
"begin": 430,
"end": 495,
"name": "JUMPDEST"
},
{
"begin": 536,
"end": 543,
"name": "DUP1"
},
{
"begin": 506,
"end": 520,
"name": "PUSH",
"value": "0"
},
{
"begin": 506,
"end": 532,
"name": "DUP1"
},
{
"begin": 521,
"end": 531,
"name": "CALLER"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 532,
"name": "AND"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 532,
"name": "AND"
},
{
"begin": 506,
"end": 532,
"name": "DUP2"
},
{
"begin": 506,
"end": 532,
"name": "MSTORE"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "20"
},
{
"begin": 506,
"end": 532,
"name": "ADD"
},
{
"begin": 506,
"end": 532,
"name": "SWAP1"
},
{
"begin": 506,
"end": 532,
"name": "DUP2"
},
{
"begin": 506,
"end": 532,
"name": "MSTORE"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "20"
},
{
"begin": 506,
"end": 532,
"name": "ADD"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "0"
},
{
"begin": 506,
"end": 532,
"name": "KECCAK256"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "0"
},
{
"begin": 506,
"end": 543,
"name": "DUP3"
},
{
"begin": 506,
"end": 543,
"name": "DUP3"
},
{
"begin": 506,
"end": 543,
"name": "DUP3"
},
{
"begin": 506,
"end": 543,
"name": "SWAP1"
},
{
"begin": 506,
"end": 543,
"name": "SLOAD"
},
{
"begin": 506,
"end": 543,
"name": "SWAP1"
},
{
"begin": 506,
"end": 543,
"name": "PUSH",
"value": "100"
},
{
"begin": 506,
"end": 543,
"name": "EXP"
},
{
"begin": 506,
"end": 543,
"name": "SWAP1"
},
{
"begin": 506,
"end": 543,
"name": "DIV"
},
{
"begin": 506,
"end": 543,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 543,
"name": "AND"
},
{
"begin": 506,
"end": 543,
"name": "SUB"
},
{
"begin": 506,
"end": 543,
"name": "SWAP3"
},
{
"begin": 506,
"end": 543,
"name": "POP"
},
{
"begin": 506,
"end": 543,
"name": "PUSH",
"value": "100"
},
{
"begin": 506,
"end": 543,
"name": "EXP"
},
{
"begin": 506,
"end": 543,
"name": "DUP2"
},
{
"begin": 506,
"end": 543,
"name": "SLOAD"
},
{
"begin": 506,
"end": 543,
"name": "DUP2"
},
{
"begin": 506,
"end": 543,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 543,
"name": "MUL"
},
{
"begin": 506,
"end": 543,
"name": "NOT"
},
{
"begin": 506,
"end": 543,
"name": "AND"
},
{
"begin": 506,
"end": 543,
"name": "SWAP1"
},
{
"begin": 506,
"end": 543,
"name": "DUP4"
},
{
"begin": 506,
"end": 543,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 543,
"name": "AND"
},
{
"begin": 506,
"end": 543,
"name": "MUL"
},
{
"begin": 506,
"end": 543,
"name": "OR"
},
{
"begin": 506,
"end": 543,
"name": "SWAP1"
},
{
"begin": 506,
"end": 543,
"name": "SSTORE"
},
{
"begin": 506,
"end": 543,
"name": "POP"
},
{
"begin": 553,
"end": 556,
"name": "DUP2"
},
{
"begin": 553,
"end": 565,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 553,
"end": 565,
"name": "AND"
},
{
"begin": 553,
"end": 574,
"name": "PUSH",
"value": "8FC"
},
{
"begin": 566,
"end": 573,
"name": "DUP3"
},
{
"begin": 553,
"end": 574,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 553,
"end": 574,
"name": "AND"
},
{
"begin": 553,
"end": 574,
"name": "SWAP1"
},
{
"begin": 553,
"end": 574,
"name": "DUP2"
},
{
"begin": 553,
"end": 574,
"name": "ISZERO"
},
{
"begin": 553,
"end": 574,
"name": "MUL"
},
{
"begin": 553,
"end": 574,
"name": "SWAP1"
},
{
"begin": 553,
"end": 574,
"name": "PUSH",
"value": "40"
},
{
"begin": 553,
"end": 574,
"name": "MLOAD"
},
{
"begin": 553,
"end": 574,
"name": "PUSH",
"value": "0"
},
{
"begin": 553,
"end": 574,
"name": "PUSH",
"value": "40"
},
{
"begin": 553,
"end": 574,
"name": "MLOAD"
},
{
"begin": 553,
"end": 574,
"name": "DUP1"
},
{
"begin": 553,
"end": 574,
"name": "DUP4"
},
{
"begin": 553,
"end": 574,
"name": "SUB"
},
{
"begin": 553,
"end": 574,
"name": "DUP2"
},
{
"begin": 553,
"end": 574,
"name": "DUP6"
},
{
"begin": 553,
"end": 574,
"name": "DUP9"
},
{
"begin": 553,
"end": 574,
"name": "DUP9"
},
{
"begin": 553,
"end": 574,
"name": "CALL"
},
{
"begin": 553,
"end": 574,
"name": "SWAP4"
},
{
"begin": 553,
"end": 574,
"name": "POP"
},
{
"begin": 553,
"end": 574,
"name": "POP"
},
{
"begin": 553,
"end": 574,
"name": "POP"
},
{
"begin": 553,
"end": 574,
"name": "POP"
},
{
"begin": 553,
"end": 574,
"name": "ISZERO"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "17"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 45,
"end": 61,
"name": "RETURNDATASIZE"
},
{
"begin": 42,
"end": 43,
"name": "PUSH",
"value": "0"
},
{
"begin": 39,
"end": 40,
"name": "DUP1"
},
{
"begin": 24,
"end": 62,
"name": "RETURNDATACOPY"
},
{
"begin": 77,
"end": 93,
"name": "RETURNDATASIZE"
},
{
"begin": 74,
"end": 75,
"name": "PUSH",
"value": "0"
},
{
"begin": 67,
"end": 94,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "17"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 553,
"end": 574,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "POP"
},
{
"begin": 353,
"end": 581,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 150,
"end": 347,
"name": "tag",
"value": "10"
},
{
"begin": 150,
"end": 347,
"name": "JUMPDEST"
},
{
"begin": 256,
"end": 270,
"name": "PUSH",
"value": "0"
},
{
"begin": 256,
"end": 282,
"name": "DUP1"
},
{
"begin": 271,
"end": 281,
"name": "CALLER"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 256,
"end": 282,
"name": "AND"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 256,
"end": 282,
"name": "AND"
},
{
"begin": 256,
"end": 282,
"name": "DUP2"
},
{
"begin": 256,
"end": 282,
"name": "MSTORE"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "20"
},
{
"begin": 256,
"end": 282,
"name": "ADD"
},
{
"begin": 256,
"end": 282,
"name": "SWAP1"
},
{
"begin": 256,
"end": 282,
"name": "DUP2"
},
{
"begin": 256,
"end": 282,
"name": "MSTORE"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "20"
},
{
"begin": 256,
"end": 282,
"name": "ADD"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "0"
},
{
"begin": 256,
"end": 282,
"name": "KECCAK256"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "0"
},
{
"begin": 256,
"end": 282,
"name": "SWAP1"
},
{
"begin": 256,
"end": 282,
"name": "SLOAD"
},
{
"begin": 256,
"end": 282,
"name": "SWAP1"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "100"
},
{
"begin": 256,
"end": 282,
"name": "EXP"
},
{
"begin": 256,
"end": 282,
"name": "SWAP1"
},
{
"begin": 256,
"end": 282,
"name": "DIV"
},
{
"begin": 256,
"end": 282,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 256,
"end": 282,
"name": "AND"
},
{
"begin": 206,
"end": 282,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 206,
"end": 282,
"name": "AND"
},
{
"begin": 242,
"end": 251,
"name": "CALLVALUE"
},
{
"begin": 206,
"end": 220,
"name": "PUSH",
"value": "0"
},
{
"begin": 206,
"end": 232,
"name": "DUP1"
},
{
"begin": 221,
"end": 231,
"name": "CALLER"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 206,
"end": 232,
"name": "AND"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 206,
"end": 232,
"name": "AND"
},
{
"begin": 206,
"end": 232,
"name": "DUP2"
},
{
"begin": 206,
"end": 232,
"name": "MSTORE"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "20"
},
{
"begin": 206,
"end": 232,
"name": "ADD"
},
{
"begin": 206,
"end": 232,
"name": "SWAP1"
},
{
"begin": 206,
"end": 232,
"name": "DUP2"
},
{
"begin": 206,
"end": 232,
"name": "MSTORE"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "20"
},
{
"begin": 206,
"end": 232,
"name": "ADD"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "0"
},
{
"begin": 206,
"end": 232,
"name": "KECCAK256"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "0"
},
{
"begin": 206,
"end": 232,
"name": "SWAP1"
},
{
"begin": 206,
"end": 232,
"name": "SLOAD"
},
{
"begin": 206,
"end": 232,
"name": "SWAP1"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "100"
},
{
"begin": 206,
"end": 232,
"name": "EXP"
},
{
"begin": 206,
"end": 232,
"name": "SWAP1"
},
{
"begin": 206,
"end": 232,
"name": "DIV"
},
{
"begin": 206,
"end": 232,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 206,
"end": 232,
"name": "AND"
},
{
"begin": 206,
"end": 252,
"name": "ADD"
},
{
"begin": 206,
"end": 282,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 206,
"end": 282,
"name": "AND"
},
{
"begin": 206,
"end": 282,
"name": "LT"
},
{
"begin": 206,
"end": 282,
"name": "ISZERO"
},
{
"begin": 199,
"end": 283,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 199,
"end": 283,
"name": "JUMPI"
},
{
"begin": 199,
"end": 283,
"name": "INVALID"
},
{
"begin": 199,
"end": 283,
"name": "tag",
"value": "19"
},
{
"begin": 199,
"end": 283,
"name": "JUMPDEST"
},
{
"begin": 330,
"end": 339,
"name": "CALLVALUE"
},
{
"begin": 293,
"end": 307,
"name": "PUSH",
"value": "0"
},
{
"begin": 293,
"end": 319,
"name": "DUP1"
},
{
"begin": 308,
"end": 318,
"name": "CALLER"
},
{
"begin": 293,
"end": 319,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 293,
"end": 319,
"name": "AND"
},
{
"begin": 293,
"end": 319,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 293,
"end": 319,
"name": "AND"
},
{
"begin": 293,
"end": 319,
"name": "DUP2"
},
{
"begin": 293,
"end": 319,
"name": "MSTORE"
},
{
"begin": 293,
"end": 319,
"name": "PUSH",
"value": "20"
},
{
"begin": 293,
"end": 319,
"name": "ADD"
},
{
"begin": 293,
"end": 319,
"name": "SWAP1"
},
{
"begin": 293,
"end": 319,
"name": "DUP2"
},
{
"begin": 293,
"end": 319,
"name": "MSTORE"
},
{
"begin": 293,
"end": 319,
"name": "PUSH",
"value": "20"
},
{
"begin": 293,
"end": 319,
"name": "ADD"
},
{
"begin": 293,
"end": 319,
"name": "PUSH",
"value": "0"
},
{
"begin": 293,
"end": 319,
"name": "KECCAK256"
},
{
"begin": 293,
"end": 319,
"name": "PUSH",
"value": "0"
},
{
"begin": 293,
"end": 340,
"name": "DUP3"
},
{
"begin": 293,
"end": 340,
"name": "DUP3"
},
{
"begin": 293,
"end": 340,
"name": "DUP3"
},
{
"begin": 293,
"end": 340,
"name": "SWAP1"
},
{
"begin": 293,
"end": 340,
"name": "SLOAD"
},
{
"begin": 293,
"end": 340,
"name": "SWAP1"
},
{
"begin": 293,
"end": 340,
"name": "PUSH",
"value": "100"
},
{
"begin": 293,
"end": 340,
"name": "EXP"
},
{
"begin": 293,
"end": 340,
"name": "SWAP1"
},
{
"begin": 293,
"end": 340,
"name": "DIV"
},
{
"begin": 293,
"end": 340,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 293,
"end": 340,
"name": "AND"
},
{
"begin": 293,
"end": 340,
"name": "ADD"
},
{
"begin": 293,
"end": 340,
"name": "SWAP3"
},
{
"begin": 293,
"end": 340,
"name": "POP"
},
{
"begin": 293,
"end": 340,
"name": "PUSH",
"value": "100"
},
{
"begin": 293,
"end": 340,
"name": "EXP"
},
{
"begin": 293,
"end": 340,
"name": "DUP2"
},
{
"begin": 293,
"end": 340,
"name": "SLOAD"
},
{
"begin": 293,
"end": 340,
"name": "DUP2"
},
{
"begin": 293,
"end": 340,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 293,
"end": 340,
"name": "MUL"
},
{
"begin": 293,
"end": 340,
"name": "NOT"
},
{
"begin": 293,
"end": 340,
"name": "AND"
},
{
"begin": 293,
"end": 340,
"name": "SWAP1"
},
{
"begin": 293,
"end": 340,
"name": "DUP4"
},
{
"begin": 293,
"end": 340,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 293,
"end": 340,
"name": "AND"
},
{
"begin": 293,
"end": 340,
"name": "MUL"
},
{
"begin": 293,
"end": 340,
"name": "OR"
},
{
"begin": 293,
"end": 340,
"name": "SWAP1"
},
{
"begin": 293,
"end": 340,
"name": "SSTORE"
},
{
"begin": 293,
"end": 340,
"name": "POP"
},
{
"begin": 150,
"end": 347,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 95,
"end": 143,
"name": "tag",
"value": "14"
},
{
"begin": 95,
"end": 143,
"name": "JUMPDEST"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "0"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "20"
},
{
"begin": 95,
"end": 143,
"name": "MSTORE"
},
{
"begin": 95,
"end": 143,
"name": "DUP1"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "0"
},
{
"begin": 95,
"end": 143,
"name": "MSTORE"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "40"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "0"
},
{
"begin": 95,
"end": 143,
"name": "KECCAK256"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "0"
},
{
"begin": 95,
"end": 143,
"name": "SWAP2"
},
{
"begin": 95,
"end": 143,
"name": "POP"
},
{
"begin": 95,
"end": 143,
"name": "SLOAD"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "100"
},
{
"begin": 95,
"end": 143,
"name": "EXP"
},
{
"begin": 95,
"end": 143,
"name": "SWAP1"
},
{
"begin": 95,
"end": 143,
"name": "DIV"
},
{
"begin": 95,
"end": 143,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFF"
},
{
"begin": 95,
"end": 143,
"name": "AND"
},
{
"begin": 95,
"end": 143,
"name": "DUP2"
},
{
"begin": 95,
"end": 143,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"balanceRecived(address)": "ca5eb638",
"receiveMoney()": "6d26ec18",
"withdrawMoney(address,uint64)": "0ad19aeb"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceRecived\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"receiveMoney\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_amount\",\"type\":\"uint64\"}],\"name\":\"withdrawMoney\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/ExceptionExample.sol\":\"ExceptionExample\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/ExceptionExample.sol\":{\"keccak256\":\"0x11d104ac07e296002d03f7e13a9bfcedbc40e4fe49c3de03d24500cefe647ad3\",\"urls\":[\"bzz-raw://9639f30a114e0226fa57c0ef6822bf92f44023f59f2a47106903ff081be56a29\",\"dweb:/ipfs/QmTKnHDixCmr7UtYDoLZAPGXEFTAWEX88nKGx7SxFrzE7F\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 5,
"contract": "contracts/ExceptionExample.sol:ExceptionExample",
"label": "balanceRecived",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint64)"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_mapping(t_address,t_uint64)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint64)",
"numberOfBytes": "32",
"value": "t_uint64"
},
"t_uint64": {
"encoding": "inplace",
"label": "uint64",
"numberOfBytes": "8"
}
}
},
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"contracts/ExceptionExample.sol": {
"ast": {
"absolutePath": "contracts/ExceptionExample.sol",
"exportedSymbols": {
"ExceptionExample": [
68
]
},
"id": 69,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.5",
".13"
],
"nodeType": "PragmaDirective",
"src": "37:24:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 68,
"linearizedBaseContracts": [
68
],
"name": "ExceptionExample",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 5,
"name": "balanceRecived",
"nodeType": "VariableDeclaration",
"scope": 68,
"src": "95:48:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
},
"typeName": {
"id": 4,
"keyType": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "103:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "95:26:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
},
"valueType": {
"id": 3,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "114:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
}
},
"value": null,
"visibility": "public"
},
{
"body": {
"id": 35,
"nodeType": "Block",
"src": "189:158:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"id": 22,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"id": 17,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 9,
"name": "balanceRecived",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "206:14:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
}
},
"id": 12,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 10,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "221:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 11,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "221:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "206:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 14,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "242:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "242:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 13,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "235:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint64_$",
"typeString": "type(uint64)"
},
"typeName": "uint64"
},
"id": 16,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "235:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"src": "206:46:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 18,
"name": "balanceRecived",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "256:14:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
}
},
"id": 21,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 19,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "271:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 20,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "271:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "256:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"src": "206:76:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8,
"name": "assert",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72,
"src": "199:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 23,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "199:84:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 24,
"nodeType": "ExpressionStatement",
"src": "199:84:0"
},
{
"expression": {
"argumentTypes": null,
"id": 33,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 25,
"name": "balanceRecived",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "293:14:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
}
},
"id": 28,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 26,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "308:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 27,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "308:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "293:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 30,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "330:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 31,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "330:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 29,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "323:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint64_$",
"typeString": "type(uint64)"
},
"typeName": "uint64"
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "323:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"src": "293:47:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"id": 34,
"nodeType": "ExpressionStatement",
"src": "293:47:0"
}
]
},
"documentation": null,
"id": 36,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "receiveMoney",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [],
"src": "171:2:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "189:0:0"
},
"scope": 68,
"src": "150:197:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 66,
"nodeType": "Block",
"src": "420:161:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 44,
"name": "balanceRecived",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "438:14:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
}
},
"id": 47,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 45,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "453:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 46,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "453:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "438:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 48,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40,
"src": "468:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"src": "438:37:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6e6f20656e6f7567682066756e6473",
"id": 50,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "477:17:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_089dc263916e9cb6b81fe19a3bb06358e30ae6ea1803c4e41c8750f63baa986a",
"typeString": "literal_string \"no enough funds\""
},
"value": "no enough funds"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_089dc263916e9cb6b81fe19a3bb06358e30ae6ea1803c4e41c8750f63baa986a",
"typeString": "literal_string \"no enough funds\""
}
],
"id": 43,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
86,
87
],
"referencedDeclaration": 87,
"src": "430:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 51,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "430:65:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52,
"nodeType": "ExpressionStatement",
"src": "430:65:0"
},
{
"expression": {
"argumentTypes": null,
"id": 58,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 53,
"name": "balanceRecived",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "506:14:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint64_$",
"typeString": "mapping(address => uint64)"
}
},
"id": 56,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 54,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "521:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "521:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "506:26:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 57,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40,
"src": "536:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"src": "506:37:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"id": 59,
"nodeType": "ExpressionStatement",
"src": "506:37:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 63,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40,
"src": "566:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
],
"expression": {
"argumentTypes": null,
"id": 60,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 38,
"src": "553:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 62,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "553:12:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "553:21:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 65,
"nodeType": "ExpressionStatement",
"src": "553:21:0"
}
]
},
"documentation": null,
"id": 67,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "withdrawMoney",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 41,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 38,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 67,
"src": "376:19:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 37,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "376:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 40,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 67,
"src": "397:14:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
},
"typeName": {
"id": 39,
"name": "uint64",
"nodeType": "ElementaryTypeName",
"src": "397:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint64",
"typeString": "uint64"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "375:37:0"
},
"returnParameters": {
"id": 42,
"nodeType": "ParameterList",
"parameters": [],
"src": "420:0:0"
},
"scope": 68,
"src": "353:228:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 69,
"src": "63:520:0"
}
],
"src": "37:546:0"
},
"id": 0
}
}
}
}
{
"id": "049029adfdb93c22b51bec5a4eb5a294",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.13",
"solcLongVersion": "0.5.13+commit.5b0b510c",
"input": {
"language": "Solidity",
"sources": {
"contracts/InheritanceModifierExample.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.5.13;\n\n/* \n- create new token\n- give owner token\n- if u'r not the owner, u would buy a token\n- create & burn token\n- send token\n\n*/\n\n\ncontract InheritanceModifierExample {\n mapping(address => uint) tokenBalance;\n address owner;\n uint tokenPrice = 1 ether;\n\n constructor() public {\n owner = msg.sender;\n tokenBalance[owner] = 100;\n }\n\n function createNewToken() public {\n require(msg.sender == owner, \"U R not owner\");\n tokenBalance[owner]++;\n }\n\n function burnToken() public {\n require(msg.sender == owner, \"U R not owner\");\n tokenBalance[owner]--;\n }\n\n function purchaseToken() public payable {\n require(tokenBalance[owner] * tokenPrice / msg.value > 0, \"not enough token\");\n\n tokenBalance[owner] -= msg.value / tokenPrice;\n\n tokenBalance[msg.sender] += msg.value / tokenPrice;\n }\n\n function sendToken(address _to, uint _amount) public payable {\n require(tokenBalance[msg.sender] >= _amount, \"not enough token\");\n assert(tokenBalance[_to] + _amount >= tokenBalance[_to]);\n assert(tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender]);\n tokenBalance[msg.sender] -= _amount;\n tokenBalance[_to] += _amount;\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/InheritanceModifierExample.sol": {
"InheritanceModifierExample": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [],
"name": "burnToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "createNewToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "purchaseToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "sendToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/InheritanceModifierExample.sol\":190:1313 contract InheritanceModifierExample {... */\n mstore(0x40, 0x80)\n /* \"contracts/InheritanceModifierExample.sol\":312:319 1 ether */\n 0x0de0b6b3a7640000\n /* \"contracts/InheritanceModifierExample.sol\":294:319 uint tokenPrice = 1 ether */\n 0x02\n sstore\n /* \"contracts/InheritanceModifierExample.sol\":326:417 constructor() public {... */\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/InheritanceModifierExample.sol\":326:417 constructor() public {... */\n pop\n /* \"contracts/InheritanceModifierExample.sol\":365:375 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":357:362 owner */\n 0x01\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":357:375 owner = msg.sender */\n 0x0100\n exp\n dup2\n sload\n dup2\n 0xffffffffffffffffffffffffffffffffffffffff\n mul\n not\n and\n swap1\n dup4\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n mul\n or\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":407:410 100 */\n 0x64\n /* \"contracts/InheritanceModifierExample.sol\":385:397 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":385:404 tokenBalance[owner] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":398:403 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":385:404 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n /* \"contracts/InheritanceModifierExample.sol\":385:410 tokenBalance[owner] = 100 */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":190:1313 contract InheritanceModifierExample {... */\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/InheritanceModifierExample.sol\":190:1313 contract InheritanceModifierExample {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x412664ae\n eq\n tag_2\n jumpi\n dup1\n 0x754fc38c\n eq\n tag_3\n jumpi\n dup1\n 0xa95c4d62\n eq\n tag_4\n jumpi\n dup1\n 0xfaa0a264\n eq\n tag_5\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contracts/InheritanceModifierExample.sol\":940:1311 function sendToken(address _to, uint _amount) public payable {... */\n tag_2:\n tag_6\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_7\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_7:\n /* \"contracts/InheritanceModifierExample.sol\":940:1311 function sendToken(address _to, uint _amount) public payable {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_8\n jump\t// in\n tag_6:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":423:549 function createNewToken() public {... */\n tag_3:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_9\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_9:\n /* \"contracts/InheritanceModifierExample.sol\":423:549 function createNewToken() public {... */\n pop\n tag_10\n tag_11\n jump\t// in\n tag_10:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":682:934 function purchaseToken() public payable {... */\n tag_4:\n tag_12\n tag_13\n jump\t// in\n tag_12:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":555:676 function burnToken() public {... */\n tag_5:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_14\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_14:\n /* \"contracts/InheritanceModifierExample.sol\":555:676 function burnToken() public {... */\n pop\n tag_15\n tag_16\n jump\t// in\n tag_15:\n stop\n /* \"contracts/InheritanceModifierExample.sol\":940:1311 function sendToken(address _to, uint _amount) public payable {... */\n tag_8:\n /* \"contracts/InheritanceModifierExample.sol\":1047:1054 _amount */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1019:1031 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1019:1043 tokenBalance[msg.sender] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1032:1042 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1019:1043 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1019:1054 tokenBalance[msg.sender] >= _amount */\n lt\n iszero\n /* \"contracts/InheritanceModifierExample.sol\":1011:1075 require(tokenBalance[msg.sender] >= _amount, \"not enough token\") */\n tag_18\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x10\n dup2\n mstore\n 0x20\n add\n dup1\n 0x6e6f7420656e6f75676820746f6b656e00000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_18:\n /* \"contracts/InheritanceModifierExample.sol\":1123:1135 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1123:1140 tokenBalance[_to] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1136:1139 _to */\n dup4\n /* \"contracts/InheritanceModifierExample.sol\":1123:1140 tokenBalance[_to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1112:1119 _amount */\n dup2\n /* \"contracts/InheritanceModifierExample.sol\":1092:1104 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1092:1109 tokenBalance[_to] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1105:1108 _to */\n dup6\n /* \"contracts/InheritanceModifierExample.sol\":1092:1109 tokenBalance[_to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1092:1119 tokenBalance[_to] + _amount */\n add\n /* \"contracts/InheritanceModifierExample.sol\":1092:1140 tokenBalance[_to] + _amount >= tokenBalance[_to] */\n lt\n iszero\n /* \"contracts/InheritanceModifierExample.sol\":1085:1141 assert(tokenBalance[_to] + _amount >= tokenBalance[_to]) */\n tag_19\n jumpi\n invalid\n tag_19:\n /* \"contracts/InheritanceModifierExample.sol\":1196:1208 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1196:1220 tokenBalance[msg.sender] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1209:1219 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1196:1220 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1185:1192 _amount */\n dup2\n /* \"contracts/InheritanceModifierExample.sol\":1158:1170 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1158:1182 tokenBalance[msg.sender] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1171:1181 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1158:1182 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":1158:1192 tokenBalance[msg.sender] - _amount */\n sub\n /* \"contracts/InheritanceModifierExample.sol\":1158:1220 tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender] */\n gt\n iszero\n /* \"contracts/InheritanceModifierExample.sol\":1151:1221 assert(tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender]) */\n tag_20\n jumpi\n invalid\n tag_20:\n /* \"contracts/InheritanceModifierExample.sol\":1259:1266 _amount */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1231:1243 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1231:1255 tokenBalance[msg.sender] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1244:1254 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":1231:1255 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1231:1266 tokenBalance[msg.sender] -= _amount */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":1297:1304 _amount */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1276:1288 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1276:1293 tokenBalance[_to] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":1289:1292 _to */\n dup5\n /* \"contracts/InheritanceModifierExample.sol\":1276:1293 tokenBalance[_to] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":1276:1304 tokenBalance[_to] += _amount */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":940:1311 function sendToken(address _to, uint _amount) public payable {... */\n pop\n pop\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":423:549 function createNewToken() public {... */\n tag_11:\n /* \"contracts/InheritanceModifierExample.sol\":488:493 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":474:493 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":474:484 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":474:493 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/InheritanceModifierExample.sol\":466:511 require(msg.sender == owner, \"U R not owner\") */\n tag_22\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x0d\n dup2\n mstore\n 0x20\n add\n dup1\n 0x552052206e6f74206f776e657200000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_22:\n /* \"contracts/InheritanceModifierExample.sol\":521:533 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":521:540 tokenBalance[owner] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":534:539 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":521:540 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":521:542 tokenBalance[owner]++ */\n dup2\n sload\n dup1\n swap3\n swap2\n swap1\n 0x01\n add\n swap2\n swap1\n pop\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":423:549 function createNewToken() public {... */\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":682:934 function purchaseToken() public payable {... */\n tag_13:\n /* \"contracts/InheritanceModifierExample.sol\":787:788 0 */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":775:784 msg.value */\n callvalue\n /* \"contracts/InheritanceModifierExample.sol\":762:772 tokenPrice */\n sload(0x02)\n /* \"contracts/InheritanceModifierExample.sol\":740:752 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":740:759 tokenBalance[owner] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":753:758 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":740:759 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/InheritanceModifierExample.sol\":740:772 tokenBalance[owner] * tokenPrice */\n mul\n /* \"contracts/InheritanceModifierExample.sol\":740:784 tokenBalance[owner] * tokenPrice / msg.value */\n dup2\n tag_24\n jumpi\n invalid\n tag_24:\n div\n /* \"contracts/InheritanceModifierExample.sol\":740:788 tokenBalance[owner] * tokenPrice / msg.value > 0 */\n gt\n /* \"contracts/InheritanceModifierExample.sol\":732:809 require(tokenBalance[owner] * tokenPrice / msg.value > 0, \"not enough token\") */\n tag_25\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x10\n dup2\n mstore\n 0x20\n add\n dup1\n 0x6e6f7420656e6f75676820746f6b656e00000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_25:\n /* \"contracts/InheritanceModifierExample.sol\":855:865 tokenPrice */\n sload(0x02)\n /* \"contracts/InheritanceModifierExample.sol\":843:852 msg.value */\n callvalue\n /* \"contracts/InheritanceModifierExample.sol\":843:865 msg.value / tokenPrice */\n dup2\n tag_26\n jumpi\n invalid\n tag_26:\n div\n /* \"contracts/InheritanceModifierExample.sol\":820:832 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":820:839 tokenBalance[owner] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":833:838 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":820:839 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":820:865 tokenBalance[owner] -= msg.value / tokenPrice */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":917:927 tokenPrice */\n sload(0x02)\n /* \"contracts/InheritanceModifierExample.sol\":905:914 msg.value */\n callvalue\n /* \"contracts/InheritanceModifierExample.sol\":905:927 msg.value / tokenPrice */\n dup2\n tag_27\n jumpi\n invalid\n tag_27:\n div\n /* \"contracts/InheritanceModifierExample.sol\":876:888 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":876:900 tokenBalance[msg.sender] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":889:899 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":876:900 tokenBalance[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":876:927 tokenBalance[msg.sender] += msg.value / tokenPrice */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":682:934 function purchaseToken() public payable {... */\n jump\t// out\n /* \"contracts/InheritanceModifierExample.sol\":555:676 function burnToken() public {... */\n tag_16:\n /* \"contracts/InheritanceModifierExample.sol\":615:620 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":601:620 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":601:611 msg.sender */\n caller\n /* \"contracts/InheritanceModifierExample.sol\":601:620 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/InheritanceModifierExample.sol\":593:638 require(msg.sender == owner, \"U R not owner\") */\n tag_29\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x0d\n dup2\n mstore\n 0x20\n add\n dup1\n 0x552052206e6f74206f776e657200000000000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_29:\n /* \"contracts/InheritanceModifierExample.sol\":648:660 tokenBalance */\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":648:667 tokenBalance[owner] */\n dup1\n /* \"contracts/InheritanceModifierExample.sol\":661:666 owner */\n 0x01\n 0x00\n swap1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/InheritanceModifierExample.sol\":648:667 tokenBalance[owner] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/InheritanceModifierExample.sol\":648:669 tokenBalance[owner]-- */\n dup2\n sload\n dup1\n swap3\n swap2\n swap1\n 0x01\n swap1\n sub\n swap2\n swap1\n pop\n sstore\n pop\n /* \"contracts/InheritanceModifierExample.sol\":555:676 function burnToken() public {... */\n jump\t// out\n\n auxdata: 0xa265627a7a723158205fcd9ef72b220c146c9d879a98e5e53e5bf72c968f0732a6f901d38c2fba217964736f6c634300050d0032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052670de0b6b3a764000060025534801561001c57600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061077f806100d36000396000f3fe60806040526004361061003f5760003560e01c8063412664ae14610044578063754fc38c14610092578063a95c4d62146100a9578063faa0a264146100b3575b600080fd5b6100906004803603604081101561005a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506100ca565b005b34801561009e57600080fd5b506100a761032a565b005b6100b161045f565b005b3480156100bf57600080fd5b506100c8610614565b005b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561017e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561020657fe5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403111561028e57fe5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550565b600034600254600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402816104ce57fe5b0411610542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b600254348161054d57fe5b04600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060025434816105c657fe5b046000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555056fea265627a7a723158205fcd9ef72b220c146c9d879a98e5e53e5bf72c968f0732a6f901d38c2fba217964736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x64 PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x77F DUP1 PUSH2 0xD3 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x412664AE EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x754FC38C EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0xA95C4D62 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0xFAA0A264 EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xCA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x32A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x45F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x614 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x17E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD ADD LT ISZERO PUSH2 0x206 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB GT ISZERO PUSH2 0x28E JUMPI INVALID JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE PUSH1 0x2 SLOAD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD MUL DUP2 PUSH2 0x4CE JUMPI INVALID JUMPDEST DIV GT PUSH2 0x542 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x54D JUMPI INVALID JUMPDEST DIV PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x5C6 JUMPI INVALID JUMPDEST DIV PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0x5F 0xCD SWAP15 0xF7 0x2B 0x22 0xC EQ PUSH13 0x9D879A98E5E53E5BF72C968F07 ORIGIN 0xA6 0xF9 ADD 0xD3 DUP13 0x2F 0xBA 0x21 PUSH26 0x64736F6C634300050D0032000000000000000000000000000000 ",
"sourceMap": "190:1123:0:-;;;312:7;294:25;;326:91;8:9:-1;5:2;;;30:1;27;20:12;5:2;326:91:0;365:10;357:5;;:18;;;;;;;;;;;;;;;;;;407:3;385:12;:19;398:5;;;;;;;;;;;385:19;;;;;;;;;;;;;;;:25;;;;190:1123;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c8063412664ae14610044578063754fc38c14610092578063a95c4d62146100a9578063faa0a264146100b3575b600080fd5b6100906004803603604081101561005a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506100ca565b005b34801561009e57600080fd5b506100a761032a565b005b6100b161045f565b005b3480156100bf57600080fd5b506100c8610614565b005b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561017e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561020657fe5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403111561028e57fe5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550565b600034600254600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205402816104ce57fe5b0411610542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b600254348161054d57fe5b04600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060025434816105c657fe5b046000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555056fea265627a7a723158205fcd9ef72b220c146c9d879a98e5e53e5bf72c968f0732a6f901d38c2fba217964736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x412664AE EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x754FC38C EQ PUSH2 0x92 JUMPI DUP1 PUSH4 0xA95C4D62 EQ PUSH2 0xA9 JUMPI DUP1 PUSH4 0xFAA0A264 EQ PUSH2 0xB3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x90 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xCA JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA7 PUSH2 0x32A JUMP JUMPDEST STOP JUMPDEST PUSH2 0xB1 PUSH2 0x45F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC8 PUSH2 0x614 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x17E JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x0 DUP1 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD ADD LT ISZERO PUSH2 0x206 JUMPI INVALID JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB GT ISZERO PUSH2 0x28E JUMPI INVALID JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x0 DUP1 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x3ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE PUSH1 0x2 SLOAD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD MUL DUP2 PUSH2 0x4CE JUMPI INVALID JUMPDEST DIV GT PUSH2 0x542 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x54D JUMPI INVALID JUMPDEST DIV PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x5C6 JUMPI INVALID JUMPDEST DIV PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6D7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0x5F 0xCD SWAP15 0xF7 0x2B 0x22 0xC EQ PUSH13 0x9D879A98E5E53E5BF72C968F07 ORIGIN 0xA6 0xF9 ADD 0xD3 DUP13 0x2F 0xBA 0x21 PUSH26 0x64736F6C634300050D0032000000000000000000000000000000 ",
"sourceMap": "190:1123:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;940:371;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;940:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;423:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;423:126:0;;;:::i;:::-;;682:252;;;:::i;:::-;;555:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;555:121:0;;;:::i;:::-;;940:371;1047:7;1019:12;:24;1032:10;1019:24;;;;;;;;;;;;;;;;:35;;1011:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1123:12;:17;1136:3;1123:17;;;;;;;;;;;;;;;;1112:7;1092:12;:17;1105:3;1092:17;;;;;;;;;;;;;;;;:27;:48;;1085:56;;;;1196:12;:24;1209:10;1196:24;;;;;;;;;;;;;;;;1185:7;1158:12;:24;1171:10;1158:24;;;;;;;;;;;;;;;;:34;:62;;1151:70;;;;1259:7;1231:12;:24;1244:10;1231:24;;;;;;;;;;;;;;;;:35;;;;;;;;;;;1297:7;1276:12;:17;1289:3;1276:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;940:371;;:::o;423:126::-;488:5;;;;;;;;;;;474:19;;:10;:19;;;466:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;521:12;:19;534:5;;;;;;;;;;;521:19;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;423:126::o;682:252::-;787:1;775:9;762:10;;740:12;:19;753:5;;;;;;;;;;;740:19;;;;;;;;;;;;;;;;:32;:44;;;;;;:48;732:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;855:10;;843:9;:22;;;;;;820:12;:19;833:5;;;;;;;;;;;820:19;;;;;;;;;;;;;;;;:45;;;;;;;;;;;917:10;;905:9;:22;;;;;;876:12;:24;889:10;876:24;;;;;;;;;;;;;;;;:51;;;;;;;;;;;682:252::o;555:121::-;615:5;;;;;;;;;;;601:19;;:10;:19;;;593:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;648:12;:19;661:5;;;;;;;;;;;648:19;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;555:121::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "383800",
"executionCost": "61030",
"totalCost": "444830"
},
"external": {
"burnToken()": "21024",
"createNewToken()": "20977",
"purchaseToken()": "42252",
"sendToken(address,uint256)": "42399"
}
},
"legacyAssembly": {
".code": [
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "80"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "40"
},
{
"begin": 190,
"end": 1313,
"name": "MSTORE"
},
{
"begin": 312,
"end": 319,
"name": "PUSH",
"value": "DE0B6B3A7640000"
},
{
"begin": 294,
"end": 319,
"name": "PUSH",
"value": "2"
},
{
"begin": 294,
"end": 319,
"name": "SSTORE"
},
{
"begin": 326,
"end": 417,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 326,
"end": 417,
"name": "POP"
},
{
"begin": 365,
"end": 375,
"name": "CALLER"
},
{
"begin": 357,
"end": 362,
"name": "PUSH",
"value": "1"
},
{
"begin": 357,
"end": 362,
"name": "PUSH",
"value": "0"
},
{
"begin": 357,
"end": 375,
"name": "PUSH",
"value": "100"
},
{
"begin": 357,
"end": 375,
"name": "EXP"
},
{
"begin": 357,
"end": 375,
"name": "DUP2"
},
{
"begin": 357,
"end": 375,
"name": "SLOAD"
},
{
"begin": 357,
"end": 375,
"name": "DUP2"
},
{
"begin": 357,
"end": 375,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 357,
"end": 375,
"name": "MUL"
},
{
"begin": 357,
"end": 375,
"name": "NOT"
},
{
"begin": 357,
"end": 375,
"name": "AND"
},
{
"begin": 357,
"end": 375,
"name": "SWAP1"
},
{
"begin": 357,
"end": 375,
"name": "DUP4"
},
{
"begin": 357,
"end": 375,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 357,
"end": 375,
"name": "AND"
},
{
"begin": 357,
"end": 375,
"name": "MUL"
},
{
"begin": 357,
"end": 375,
"name": "OR"
},
{
"begin": 357,
"end": 375,
"name": "SWAP1"
},
{
"begin": 357,
"end": 375,
"name": "SSTORE"
},
{
"begin": 357,
"end": 375,
"name": "POP"
},
{
"begin": 407,
"end": 410,
"name": "PUSH",
"value": "64"
},
{
"begin": 385,
"end": 397,
"name": "PUSH",
"value": "0"
},
{
"begin": 385,
"end": 404,
"name": "DUP1"
},
{
"begin": 398,
"end": 403,
"name": "PUSH",
"value": "1"
},
{
"begin": 398,
"end": 403,
"name": "PUSH",
"value": "0"
},
{
"begin": 398,
"end": 403,
"name": "SWAP1"
},
{
"begin": 398,
"end": 403,
"name": "SLOAD"
},
{
"begin": 398,
"end": 403,
"name": "SWAP1"
},
{
"begin": 398,
"end": 403,
"name": "PUSH",
"value": "100"
},
{
"begin": 398,
"end": 403,
"name": "EXP"
},
{
"begin": 398,
"end": 403,
"name": "SWAP1"
},
{
"begin": 398,
"end": 403,
"name": "DIV"
},
{
"begin": 398,
"end": 403,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 398,
"end": 403,
"name": "AND"
},
{
"begin": 385,
"end": 404,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 385,
"end": 404,
"name": "AND"
},
{
"begin": 385,
"end": 404,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 385,
"end": 404,
"name": "AND"
},
{
"begin": 385,
"end": 404,
"name": "DUP2"
},
{
"begin": 385,
"end": 404,
"name": "MSTORE"
},
{
"begin": 385,
"end": 404,
"name": "PUSH",
"value": "20"
},
{
"begin": 385,
"end": 404,
"name": "ADD"
},
{
"begin": 385,
"end": 404,
"name": "SWAP1"
},
{
"begin": 385,
"end": 404,
"name": "DUP2"
},
{
"begin": 385,
"end": 404,
"name": "MSTORE"
},
{
"begin": 385,
"end": 404,
"name": "PUSH",
"value": "20"
},
{
"begin": 385,
"end": 404,
"name": "ADD"
},
{
"begin": 385,
"end": 404,
"name": "PUSH",
"value": "0"
},
{
"begin": 385,
"end": 404,
"name": "KECCAK256"
},
{
"begin": 385,
"end": 410,
"name": "DUP2"
},
{
"begin": 385,
"end": 410,
"name": "SWAP1"
},
{
"begin": 385,
"end": 410,
"name": "SSTORE"
},
{
"begin": 385,
"end": 410,
"name": "POP"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 190,
"end": 1313,
"name": "DUP1"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "0"
},
{
"begin": 190,
"end": 1313,
"name": "CODECOPY"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "0"
},
{
"begin": 190,
"end": 1313,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a723158205fcd9ef72b220c146c9d879a98e5e53e5bf72c968f0732a6f901d38c2fba217964736f6c634300050d0032",
".code": [
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "80"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "40"
},
{
"begin": 190,
"end": 1313,
"name": "MSTORE"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "4"
},
{
"begin": 190,
"end": 1313,
"name": "CALLDATASIZE"
},
{
"begin": 190,
"end": 1313,
"name": "LT"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 190,
"end": 1313,
"name": "JUMPI"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "0"
},
{
"begin": 190,
"end": 1313,
"name": "CALLDATALOAD"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "E0"
},
{
"begin": 190,
"end": 1313,
"name": "SHR"
},
{
"begin": 190,
"end": 1313,
"name": "DUP1"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "412664AE"
},
{
"begin": 190,
"end": 1313,
"name": "EQ"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 190,
"end": 1313,
"name": "JUMPI"
},
{
"begin": 190,
"end": 1313,
"name": "DUP1"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "754FC38C"
},
{
"begin": 190,
"end": 1313,
"name": "EQ"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 190,
"end": 1313,
"name": "JUMPI"
},
{
"begin": 190,
"end": 1313,
"name": "DUP1"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "A95C4D62"
},
{
"begin": 190,
"end": 1313,
"name": "EQ"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 190,
"end": 1313,
"name": "JUMPI"
},
{
"begin": 190,
"end": 1313,
"name": "DUP1"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "FAA0A264"
},
{
"begin": 190,
"end": 1313,
"name": "EQ"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 190,
"end": 1313,
"name": "JUMPI"
},
{
"begin": 190,
"end": 1313,
"name": "tag",
"value": "1"
},
{
"begin": 190,
"end": 1313,
"name": "JUMPDEST"
},
{
"begin": 190,
"end": 1313,
"name": "PUSH",
"value": "0"
},
{
"begin": 190,
"end": 1313,
"name": "DUP1"
},
{
"begin": 190,
"end": 1313,
"name": "REVERT"
},
{
"begin": 940,
"end": 1311,
"name": "tag",
"value": "2"
},
{
"begin": 940,
"end": 1311,
"name": "JUMPDEST"
},
{
"begin": 940,
"end": 1311,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 940,
"end": 1311,
"name": "PUSH",
"value": "4"
},
{
"begin": 940,
"end": 1311,
"name": "DUP1"
},
{
"begin": 940,
"end": 1311,
"name": "CALLDATASIZE"
},
{
"begin": 940,
"end": 1311,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "7"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 940,
"end": 1311,
"name": "DUP2"
},
{
"begin": 940,
"end": 1311,
"name": "ADD"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "DUP1"
},
{
"begin": 940,
"end": 1311,
"name": "DUP1"
},
{
"begin": 940,
"end": 1311,
"name": "CALLDATALOAD"
},
{
"begin": 940,
"end": 1311,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 940,
"end": 1311,
"name": "AND"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "PUSH",
"value": "20"
},
{
"begin": 940,
"end": 1311,
"name": "ADD"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP3"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP2"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "DUP1"
},
{
"begin": 940,
"end": 1311,
"name": "CALLDATALOAD"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "PUSH",
"value": "20"
},
{
"begin": 940,
"end": 1311,
"name": "ADD"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP3"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP2"
},
{
"begin": 940,
"end": 1311,
"name": "SWAP1"
},
{
"begin": 940,
"end": 1311,
"name": "POP"
},
{
"begin": 940,
"end": 1311,
"name": "POP"
},
{
"begin": 940,
"end": 1311,
"name": "POP"
},
{
"begin": 940,
"end": 1311,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 940,
"end": 1311,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 940,
"end": 1311,
"name": "tag",
"value": "6"
},
{
"begin": 940,
"end": 1311,
"name": "JUMPDEST"
},
{
"begin": 940,
"end": 1311,
"name": "STOP"
},
{
"begin": 423,
"end": 549,
"name": "tag",
"value": "3"
},
{
"begin": 423,
"end": 549,
"name": "JUMPDEST"
},
{
"begin": 423,
"end": 549,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "9"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 423,
"end": 549,
"name": "POP"
},
{
"begin": 423,
"end": 549,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 423,
"end": 549,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 423,
"end": 549,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 423,
"end": 549,
"name": "tag",
"value": "10"
},
{
"begin": 423,
"end": 549,
"name": "JUMPDEST"
},
{
"begin": 423,
"end": 549,
"name": "STOP"
},
{
"begin": 682,
"end": 934,
"name": "tag",
"value": "4"
},
{
"begin": 682,
"end": 934,
"name": "JUMPDEST"
},
{
"begin": 682,
"end": 934,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 682,
"end": 934,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 682,
"end": 934,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 682,
"end": 934,
"name": "tag",
"value": "12"
},
{
"begin": 682,
"end": 934,
"name": "JUMPDEST"
},
{
"begin": 682,
"end": 934,
"name": "STOP"
},
{
"begin": 555,
"end": 676,
"name": "tag",
"value": "5"
},
{
"begin": 555,
"end": 676,
"name": "JUMPDEST"
},
{
"begin": 555,
"end": 676,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "14"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 555,
"end": 676,
"name": "POP"
},
{
"begin": 555,
"end": 676,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 555,
"end": 676,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 555,
"end": 676,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 555,
"end": 676,
"name": "tag",
"value": "15"
},
{
"begin": 555,
"end": 676,
"name": "JUMPDEST"
},
{
"begin": 555,
"end": 676,
"name": "STOP"
},
{
"begin": 940,
"end": 1311,
"name": "tag",
"value": "8"
},
{
"begin": 940,
"end": 1311,
"name": "JUMPDEST"
},
{
"begin": 1047,
"end": 1054,
"name": "DUP1"
},
{
"begin": 1019,
"end": 1031,
"name": "PUSH",
"value": "0"
},
{
"begin": 1019,
"end": 1043,
"name": "DUP1"
},
{
"begin": 1032,
"end": 1042,
"name": "CALLER"
},
{
"begin": 1019,
"end": 1043,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1019,
"end": 1043,
"name": "AND"
},
{
"begin": 1019,
"end": 1043,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1019,
"end": 1043,
"name": "AND"
},
{
"begin": 1019,
"end": 1043,
"name": "DUP2"
},
{
"begin": 1019,
"end": 1043,
"name": "MSTORE"
},
{
"begin": 1019,
"end": 1043,
"name": "PUSH",
"value": "20"
},
{
"begin": 1019,
"end": 1043,
"name": "ADD"
},
{
"begin": 1019,
"end": 1043,
"name": "SWAP1"
},
{
"begin": 1019,
"end": 1043,
"name": "DUP2"
},
{
"begin": 1019,
"end": 1043,
"name": "MSTORE"
},
{
"begin": 1019,
"end": 1043,
"name": "PUSH",
"value": "20"
},
{
"begin": 1019,
"end": 1043,
"name": "ADD"
},
{
"begin": 1019,
"end": 1043,
"name": "PUSH",
"value": "0"
},
{
"begin": 1019,
"end": 1043,
"name": "KECCAK256"
},
{
"begin": 1019,
"end": 1043,
"name": "SLOAD"
},
{
"begin": 1019,
"end": 1054,
"name": "LT"
},
{
"begin": 1019,
"end": 1054,
"name": "ISZERO"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH [tag]",
"value": "18"
},
{
"begin": 1011,
"end": 1075,
"name": "JUMPI"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "40"
},
{
"begin": 1011,
"end": 1075,
"name": "MLOAD"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP2"
},
{
"begin": 1011,
"end": 1075,
"name": "MSTORE"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "4"
},
{
"begin": 1011,
"end": 1075,
"name": "ADD"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP1"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP1"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "20"
},
{
"begin": 1011,
"end": 1075,
"name": "ADD"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP3"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP2"
},
{
"begin": 1011,
"end": 1075,
"name": "SUB"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP3"
},
{
"begin": 1011,
"end": 1075,
"name": "MSTORE"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "10"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP2"
},
{
"begin": 1011,
"end": 1075,
"name": "MSTORE"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "20"
},
{
"begin": 1011,
"end": 1075,
"name": "ADD"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP1"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP2"
},
{
"begin": 1011,
"end": 1075,
"name": "MSTORE"
},
{
"begin": 1011,
"end": 1075,
"name": "POP"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "20"
},
{
"begin": 1011,
"end": 1075,
"name": "ADD"
},
{
"begin": 1011,
"end": 1075,
"name": "SWAP2"
},
{
"begin": 1011,
"end": 1075,
"name": "POP"
},
{
"begin": 1011,
"end": 1075,
"name": "POP"
},
{
"begin": 1011,
"end": 1075,
"name": "PUSH",
"value": "40"
},
{
"begin": 1011,
"end": 1075,
"name": "MLOAD"
},
{
"begin": 1011,
"end": 1075,
"name": "DUP1"
},
{
"begin": 1011,
"end": 1075,
"name": "SWAP2"
},
{
"begin": 1011,
"end": 1075,
"name": "SUB"
},
{
"begin": 1011,
"end": 1075,
"name": "SWAP1"
},
{
"begin": 1011,
"end": 1075,
"name": "REVERT"
},
{
"begin": 1011,
"end": 1075,
"name": "tag",
"value": "18"
},
{
"begin": 1011,
"end": 1075,
"name": "JUMPDEST"
},
{
"begin": 1123,
"end": 1135,
"name": "PUSH",
"value": "0"
},
{
"begin": 1123,
"end": 1140,
"name": "DUP1"
},
{
"begin": 1136,
"end": 1139,
"name": "DUP4"
},
{
"begin": 1123,
"end": 1140,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1123,
"end": 1140,
"name": "AND"
},
{
"begin": 1123,
"end": 1140,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1123,
"end": 1140,
"name": "AND"
},
{
"begin": 1123,
"end": 1140,
"name": "DUP2"
},
{
"begin": 1123,
"end": 1140,
"name": "MSTORE"
},
{
"begin": 1123,
"end": 1140,
"name": "PUSH",
"value": "20"
},
{
"begin": 1123,
"end": 1140,
"name": "ADD"
},
{
"begin": 1123,
"end": 1140,
"name": "SWAP1"
},
{
"begin": 1123,
"end": 1140,
"name": "DUP2"
},
{
"begin": 1123,
"end": 1140,
"name": "MSTORE"
},
{
"begin": 1123,
"end": 1140,
"name": "PUSH",
"value": "20"
},
{
"begin": 1123,
"end": 1140,
"name": "ADD"
},
{
"begin": 1123,
"end": 1140,
"name": "PUSH",
"value": "0"
},
{
"begin": 1123,
"end": 1140,
"name": "KECCAK256"
},
{
"begin": 1123,
"end": 1140,
"name": "SLOAD"
},
{
"begin": 1112,
"end": 1119,
"name": "DUP2"
},
{
"begin": 1092,
"end": 1104,
"name": "PUSH",
"value": "0"
},
{
"begin": 1092,
"end": 1109,
"name": "DUP1"
},
{
"begin": 1105,
"end": 1108,
"name": "DUP6"
},
{
"begin": 1092,
"end": 1109,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1092,
"end": 1109,
"name": "AND"
},
{
"begin": 1092,
"end": 1109,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1092,
"end": 1109,
"name": "AND"
},
{
"begin": 1092,
"end": 1109,
"name": "DUP2"
},
{
"begin": 1092,
"end": 1109,
"name": "MSTORE"
},
{
"begin": 1092,
"end": 1109,
"name": "PUSH",
"value": "20"
},
{
"begin": 1092,
"end": 1109,
"name": "ADD"
},
{
"begin": 1092,
"end": 1109,
"name": "SWAP1"
},
{
"begin": 1092,
"end": 1109,
"name": "DUP2"
},
{
"begin": 1092,
"end": 1109,
"name": "MSTORE"
},
{
"begin": 1092,
"end": 1109,
"name": "PUSH",
"value": "20"
},
{
"begin": 1092,
"end": 1109,
"name": "ADD"
},
{
"begin": 1092,
"end": 1109,
"name": "PUSH",
"value": "0"
},
{
"begin": 1092,
"end": 1109,
"name": "KECCAK256"
},
{
"begin": 1092,
"end": 1109,
"name": "SLOAD"
},
{
"begin": 1092,
"end": 1119,
"name": "ADD"
},
{
"begin": 1092,
"end": 1140,
"name": "LT"
},
{
"begin": 1092,
"end": 1140,
"name": "ISZERO"
},
{
"begin": 1085,
"end": 1141,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 1085,
"end": 1141,
"name": "JUMPI"
},
{
"begin": 1085,
"end": 1141,
"name": "INVALID"
},
{
"begin": 1085,
"end": 1141,
"name": "tag",
"value": "19"
},
{
"begin": 1085,
"end": 1141,
"name": "JUMPDEST"
},
{
"begin": 1196,
"end": 1208,
"name": "PUSH",
"value": "0"
},
{
"begin": 1196,
"end": 1220,
"name": "DUP1"
},
{
"begin": 1209,
"end": 1219,
"name": "CALLER"
},
{
"begin": 1196,
"end": 1220,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1196,
"end": 1220,
"name": "AND"
},
{
"begin": 1196,
"end": 1220,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1196,
"end": 1220,
"name": "AND"
},
{
"begin": 1196,
"end": 1220,
"name": "DUP2"
},
{
"begin": 1196,
"end": 1220,
"name": "MSTORE"
},
{
"begin": 1196,
"end": 1220,
"name": "PUSH",
"value": "20"
},
{
"begin": 1196,
"end": 1220,
"name": "ADD"
},
{
"begin": 1196,
"end": 1220,
"name": "SWAP1"
},
{
"begin": 1196,
"end": 1220,
"name": "DUP2"
},
{
"begin": 1196,
"end": 1220,
"name": "MSTORE"
},
{
"begin": 1196,
"end": 1220,
"name": "PUSH",
"value": "20"
},
{
"begin": 1196,
"end": 1220,
"name": "ADD"
},
{
"begin": 1196,
"end": 1220,
"name": "PUSH",
"value": "0"
},
{
"begin": 1196,
"end": 1220,
"name": "KECCAK256"
},
{
"begin": 1196,
"end": 1220,
"name": "SLOAD"
},
{
"begin": 1185,
"end": 1192,
"name": "DUP2"
},
{
"begin": 1158,
"end": 1170,
"name": "PUSH",
"value": "0"
},
{
"begin": 1158,
"end": 1182,
"name": "DUP1"
},
{
"begin": 1171,
"end": 1181,
"name": "CALLER"
},
{
"begin": 1158,
"end": 1182,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1158,
"end": 1182,
"name": "AND"
},
{
"begin": 1158,
"end": 1182,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1158,
"end": 1182,
"name": "AND"
},
{
"begin": 1158,
"end": 1182,
"name": "DUP2"
},
{
"begin": 1158,
"end": 1182,
"name": "MSTORE"
},
{
"begin": 1158,
"end": 1182,
"name": "PUSH",
"value": "20"
},
{
"begin": 1158,
"end": 1182,
"name": "ADD"
},
{
"begin": 1158,
"end": 1182,
"name": "SWAP1"
},
{
"begin": 1158,
"end": 1182,
"name": "DUP2"
},
{
"begin": 1158,
"end": 1182,
"name": "MSTORE"
},
{
"begin": 1158,
"end": 1182,
"name": "PUSH",
"value": "20"
},
{
"begin": 1158,
"end": 1182,
"name": "ADD"
},
{
"begin": 1158,
"end": 1182,
"name": "PUSH",
"value": "0"
},
{
"begin": 1158,
"end": 1182,
"name": "KECCAK256"
},
{
"begin": 1158,
"end": 1182,
"name": "SLOAD"
},
{
"begin": 1158,
"end": 1192,
"name": "SUB"
},
{
"begin": 1158,
"end": 1220,
"name": "GT"
},
{
"begin": 1158,
"end": 1220,
"name": "ISZERO"
},
{
"begin": 1151,
"end": 1221,
"name": "PUSH [tag]",
"value": "20"
},
{
"begin": 1151,
"end": 1221,
"name": "JUMPI"
},
{
"begin": 1151,
"end": 1221,
"name": "INVALID"
},
{
"begin": 1151,
"end": 1221,
"name": "tag",
"value": "20"
},
{
"begin": 1151,
"end": 1221,
"name": "JUMPDEST"
},
{
"begin": 1259,
"end": 1266,
"name": "DUP1"
},
{
"begin": 1231,
"end": 1243,
"name": "PUSH",
"value": "0"
},
{
"begin": 1231,
"end": 1255,
"name": "DUP1"
},
{
"begin": 1244,
"end": 1254,
"name": "CALLER"
},
{
"begin": 1231,
"end": 1255,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1231,
"end": 1255,
"name": "AND"
},
{
"begin": 1231,
"end": 1255,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1231,
"end": 1255,
"name": "AND"
},
{
"begin": 1231,
"end": 1255,
"name": "DUP2"
},
{
"begin": 1231,
"end": 1255,
"name": "MSTORE"
},
{
"begin": 1231,
"end": 1255,
"name": "PUSH",
"value": "20"
},
{
"begin": 1231,
"end": 1255,
"name": "ADD"
},
{
"begin": 1231,
"end": 1255,
"name": "SWAP1"
},
{
"begin": 1231,
"end": 1255,
"name": "DUP2"
},
{
"begin": 1231,
"end": 1255,
"name": "MSTORE"
},
{
"begin": 1231,
"end": 1255,
"name": "PUSH",
"value": "20"
},
{
"begin": 1231,
"end": 1255,
"name": "ADD"
},
{
"begin": 1231,
"end": 1255,
"name": "PUSH",
"value": "0"
},
{
"begin": 1231,
"end": 1255,
"name": "KECCAK256"
},
{
"begin": 1231,
"end": 1255,
"name": "PUSH",
"value": "0"
},
{
"begin": 1231,
"end": 1266,
"name": "DUP3"
},
{
"begin": 1231,
"end": 1266,
"name": "DUP3"
},
{
"begin": 1231,
"end": 1266,
"name": "SLOAD"
},
{
"begin": 1231,
"end": 1266,
"name": "SUB"
},
{
"begin": 1231,
"end": 1266,
"name": "SWAP3"
},
{
"begin": 1231,
"end": 1266,
"name": "POP"
},
{
"begin": 1231,
"end": 1266,
"name": "POP"
},
{
"begin": 1231,
"end": 1266,
"name": "DUP2"
},
{
"begin": 1231,
"end": 1266,
"name": "SWAP1"
},
{
"begin": 1231,
"end": 1266,
"name": "SSTORE"
},
{
"begin": 1231,
"end": 1266,
"name": "POP"
},
{
"begin": 1297,
"end": 1304,
"name": "DUP1"
},
{
"begin": 1276,
"end": 1288,
"name": "PUSH",
"value": "0"
},
{
"begin": 1276,
"end": 1293,
"name": "DUP1"
},
{
"begin": 1289,
"end": 1292,
"name": "DUP5"
},
{
"begin": 1276,
"end": 1293,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1276,
"end": 1293,
"name": "AND"
},
{
"begin": 1276,
"end": 1293,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 1276,
"end": 1293,
"name": "AND"
},
{
"begin": 1276,
"end": 1293,
"name": "DUP2"
},
{
"begin": 1276,
"end": 1293,
"name": "MSTORE"
},
{
"begin": 1276,
"end": 1293,
"name": "PUSH",
"value": "20"
},
{
"begin": 1276,
"end": 1293,
"name": "ADD"
},
{
"begin": 1276,
"end": 1293,
"name": "SWAP1"
},
{
"begin": 1276,
"end": 1293,
"name": "DUP2"
},
{
"begin": 1276,
"end": 1293,
"name": "MSTORE"
},
{
"begin": 1276,
"end": 1293,
"name": "PUSH",
"value": "20"
},
{
"begin": 1276,
"end": 1293,
"name": "ADD"
},
{
"begin": 1276,
"end": 1293,
"name": "PUSH",
"value": "0"
},
{
"begin": 1276,
"end": 1293,
"name": "KECCAK256"
},
{
"begin": 1276,
"end": 1293,
"name": "PUSH",
"value": "0"
},
{
"begin": 1276,
"end": 1304,
"name": "DUP3"
},
{
"begin": 1276,
"end": 1304,
"name": "DUP3"
},
{
"begin": 1276,
"end": 1304,
"name": "SLOAD"
},
{
"begin": 1276,
"end": 1304,
"name": "ADD"
},
{
"begin": 1276,
"end": 1304,
"name": "SWAP3"
},
{
"begin": 1276,
"end": 1304,
"name": "POP"
},
{
"begin": 1276,
"end": 1304,
"name": "POP"
},
{
"begin": 1276,
"end": 1304,
"name": "DUP2"
},
{
"begin": 1276,
"end": 1304,
"name": "SWAP1"
},
{
"begin": 1276,
"end": 1304,
"name": "SSTORE"
},
{
"begin": 1276,
"end": 1304,
"name": "POP"
},
{
"begin": 940,
"end": 1311,
"name": "POP"
},
{
"begin": 940,
"end": 1311,
"name": "POP"
},
{
"begin": 940,
"end": 1311,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 423,
"end": 549,
"name": "tag",
"value": "11"
},
{
"begin": 423,
"end": 549,
"name": "JUMPDEST"
},
{
"begin": 488,
"end": 493,
"name": "PUSH",
"value": "1"
},
{
"begin": 488,
"end": 493,
"name": "PUSH",
"value": "0"
},
{
"begin": 488,
"end": 493,
"name": "SWAP1"
},
{
"begin": 488,
"end": 493,
"name": "SLOAD"
},
{
"begin": 488,
"end": 493,
"name": "SWAP1"
},
{
"begin": 488,
"end": 493,
"name": "PUSH",
"value": "100"
},
{
"begin": 488,
"end": 493,
"name": "EXP"
},
{
"begin": 488,
"end": 493,
"name": "SWAP1"
},
{
"begin": 488,
"end": 493,
"name": "DIV"
},
{
"begin": 488,
"end": 493,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 488,
"end": 493,
"name": "AND"
},
{
"begin": 474,
"end": 493,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 474,
"end": 493,
"name": "AND"
},
{
"begin": 474,
"end": 484,
"name": "CALLER"
},
{
"begin": 474,
"end": 493,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 474,
"end": 493,
"name": "AND"
},
{
"begin": 474,
"end": 493,
"name": "EQ"
},
{
"begin": 466,
"end": 511,
"name": "PUSH [tag]",
"value": "22"
},
{
"begin": 466,
"end": 511,
"name": "JUMPI"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "40"
},
{
"begin": 466,
"end": 511,
"name": "MLOAD"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 466,
"end": 511,
"name": "DUP2"
},
{
"begin": 466,
"end": 511,
"name": "MSTORE"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "4"
},
{
"begin": 466,
"end": 511,
"name": "ADD"
},
{
"begin": 466,
"end": 511,
"name": "DUP1"
},
{
"begin": 466,
"end": 511,
"name": "DUP1"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "20"
},
{
"begin": 466,
"end": 511,
"name": "ADD"
},
{
"begin": 466,
"end": 511,
"name": "DUP3"
},
{
"begin": 466,
"end": 511,
"name": "DUP2"
},
{
"begin": 466,
"end": 511,
"name": "SUB"
},
{
"begin": 466,
"end": 511,
"name": "DUP3"
},
{
"begin": 466,
"end": 511,
"name": "MSTORE"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "D"
},
{
"begin": 466,
"end": 511,
"name": "DUP2"
},
{
"begin": 466,
"end": 511,
"name": "MSTORE"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "20"
},
{
"begin": 466,
"end": 511,
"name": "ADD"
},
{
"begin": 466,
"end": 511,
"name": "DUP1"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "552052206E6F74206F776E657200000000000000000000000000000000000000"
},
{
"begin": 466,
"end": 511,
"name": "DUP2"
},
{
"begin": 466,
"end": 511,
"name": "MSTORE"
},
{
"begin": 466,
"end": 511,
"name": "POP"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "20"
},
{
"begin": 466,
"end": 511,
"name": "ADD"
},
{
"begin": 466,
"end": 511,
"name": "SWAP2"
},
{
"begin": 466,
"end": 511,
"name": "POP"
},
{
"begin": 466,
"end": 511,
"name": "POP"
},
{
"begin": 466,
"end": 511,
"name": "PUSH",
"value": "40"
},
{
"begin": 466,
"end": 511,
"name": "MLOAD"
},
{
"begin": 466,
"end": 511,
"name": "DUP1"
},
{
"begin": 466,
"end": 511,
"name": "SWAP2"
},
{
"begin": 466,
"end": 511,
"name": "SUB"
},
{
"begin": 466,
"end": 511,
"name": "SWAP1"
},
{
"begin": 466,
"end": 511,
"name": "REVERT"
},
{
"begin": 466,
"end": 511,
"name": "tag",
"value": "22"
},
{
"begin": 466,
"end": 511,
"name": "JUMPDEST"
},
{
"begin": 521,
"end": 533,
"name": "PUSH",
"value": "0"
},
{
"begin": 521,
"end": 540,
"name": "DUP1"
},
{
"begin": 534,
"end": 539,
"name": "PUSH",
"value": "1"
},
{
"begin": 534,
"end": 539,
"name": "PUSH",
"value": "0"
},
{
"begin": 534,
"end": 539,
"name": "SWAP1"
},
{
"begin": 534,
"end": 539,
"name": "SLOAD"
},
{
"begin": 534,
"end": 539,
"name": "SWAP1"
},
{
"begin": 534,
"end": 539,
"name": "PUSH",
"value": "100"
},
{
"begin": 534,
"end": 539,
"name": "EXP"
},
{
"begin": 534,
"end": 539,
"name": "SWAP1"
},
{
"begin": 534,
"end": 539,
"name": "DIV"
},
{
"begin": 534,
"end": 539,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 534,
"end": 539,
"name": "AND"
},
{
"begin": 521,
"end": 540,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 521,
"end": 540,
"name": "AND"
},
{
"begin": 521,
"end": 540,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 521,
"end": 540,
"name": "AND"
},
{
"begin": 521,
"end": 540,
"name": "DUP2"
},
{
"begin": 521,
"end": 540,
"name": "MSTORE"
},
{
"begin": 521,
"end": 540,
"name": "PUSH",
"value": "20"
},
{
"begin": 521,
"end": 540,
"name": "ADD"
},
{
"begin": 521,
"end": 540,
"name": "SWAP1"
},
{
"begin": 521,
"end": 540,
"name": "DUP2"
},
{
"begin": 521,
"end": 540,
"name": "MSTORE"
},
{
"begin": 521,
"end": 540,
"name": "PUSH",
"value": "20"
},
{
"begin": 521,
"end": 540,
"name": "ADD"
},
{
"begin": 521,
"end": 540,
"name": "PUSH",
"value": "0"
},
{
"begin": 521,
"end": 540,
"name": "KECCAK256"
},
{
"begin": 521,
"end": 540,
"name": "PUSH",
"value": "0"
},
{
"begin": 521,
"end": 542,
"name": "DUP2"
},
{
"begin": 521,
"end": 542,
"name": "SLOAD"
},
{
"begin": 521,
"end": 542,
"name": "DUP1"
},
{
"begin": 521,
"end": 542,
"name": "SWAP3"
},
{
"begin": 521,
"end": 542,
"name": "SWAP2"
},
{
"begin": 521,
"end": 542,
"name": "SWAP1"
},
{
"begin": 521,
"end": 542,
"name": "PUSH",
"value": "1"
},
{
"begin": 521,
"end": 542,
"name": "ADD"
},
{
"begin": 521,
"end": 542,
"name": "SWAP2"
},
{
"begin": 521,
"end": 542,
"name": "SWAP1"
},
{
"begin": 521,
"end": 542,
"name": "POP"
},
{
"begin": 521,
"end": 542,
"name": "SSTORE"
},
{
"begin": 521,
"end": 542,
"name": "POP"
},
{
"begin": 423,
"end": 549,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 682,
"end": 934,
"name": "tag",
"value": "13"
},
{
"begin": 682,
"end": 934,
"name": "JUMPDEST"
},
{
"begin": 787,
"end": 788,
"name": "PUSH",
"value": "0"
},
{
"begin": 775,
"end": 784,
"name": "CALLVALUE"
},
{
"begin": 762,
"end": 772,
"name": "PUSH",
"value": "2"
},
{
"begin": 762,
"end": 772,
"name": "SLOAD"
},
{
"begin": 740,
"end": 752,
"name": "PUSH",
"value": "0"
},
{
"begin": 740,
"end": 759,
"name": "DUP1"
},
{
"begin": 753,
"end": 758,
"name": "PUSH",
"value": "1"
},
{
"begin": 753,
"end": 758,
"name": "PUSH",
"value": "0"
},
{
"begin": 753,
"end": 758,
"name": "SWAP1"
},
{
"begin": 753,
"end": 758,
"name": "SLOAD"
},
{
"begin": 753,
"end": 758,
"name": "SWAP1"
},
{
"begin": 753,
"end": 758,
"name": "PUSH",
"value": "100"
},
{
"begin": 753,
"end": 758,
"name": "EXP"
},
{
"begin": 753,
"end": 758,
"name": "SWAP1"
},
{
"begin": 753,
"end": 758,
"name": "DIV"
},
{
"begin": 753,
"end": 758,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 753,
"end": 758,
"name": "AND"
},
{
"begin": 740,
"end": 759,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 740,
"end": 759,
"name": "AND"
},
{
"begin": 740,
"end": 759,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 740,
"end": 759,
"name": "AND"
},
{
"begin": 740,
"end": 759,
"name": "DUP2"
},
{
"begin": 740,
"end": 759,
"name": "MSTORE"
},
{
"begin": 740,
"end": 759,
"name": "PUSH",
"value": "20"
},
{
"begin": 740,
"end": 759,
"name": "ADD"
},
{
"begin": 740,
"end": 759,
"name": "SWAP1"
},
{
"begin": 740,
"end": 759,
"name": "DUP2"
},
{
"begin": 740,
"end": 759,
"name": "MSTORE"
},
{
"begin": 740,
"end": 759,
"name": "PUSH",
"value": "20"
},
{
"begin": 740,
"end": 759,
"name": "ADD"
},
{
"begin": 740,
"end": 759,
"name": "PUSH",
"value": "0"
},
{
"begin": 740,
"end": 759,
"name": "KECCAK256"
},
{
"begin": 740,
"end": 759,
"name": "SLOAD"
},
{
"begin": 740,
"end": 772,
"name": "MUL"
},
{
"begin": 740,
"end": 784,
"name": "DUP2"
},
{
"begin": 740,
"end": 784,
"name": "PUSH [tag]",
"value": "24"
},
{
"begin": 740,
"end": 784,
"name": "JUMPI"
},
{
"begin": 740,
"end": 784,
"name": "INVALID"
},
{
"begin": 740,
"end": 784,
"name": "tag",
"value": "24"
},
{
"begin": 740,
"end": 784,
"name": "JUMPDEST"
},
{
"begin": 740,
"end": 784,
"name": "DIV"
},
{
"begin": 740,
"end": 788,
"name": "GT"
},
{
"begin": 732,
"end": 809,
"name": "PUSH [tag]",
"value": "25"
},
{
"begin": 732,
"end": 809,
"name": "JUMPI"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "40"
},
{
"begin": 732,
"end": 809,
"name": "MLOAD"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 732,
"end": 809,
"name": "DUP2"
},
{
"begin": 732,
"end": 809,
"name": "MSTORE"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "4"
},
{
"begin": 732,
"end": 809,
"name": "ADD"
},
{
"begin": 732,
"end": 809,
"name": "DUP1"
},
{
"begin": 732,
"end": 809,
"name": "DUP1"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "20"
},
{
"begin": 732,
"end": 809,
"name": "ADD"
},
{
"begin": 732,
"end": 809,
"name": "DUP3"
},
{
"begin": 732,
"end": 809,
"name": "DUP2"
},
{
"begin": 732,
"end": 809,
"name": "SUB"
},
{
"begin": 732,
"end": 809,
"name": "DUP3"
},
{
"begin": 732,
"end": 809,
"name": "MSTORE"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "10"
},
{
"begin": 732,
"end": 809,
"name": "DUP2"
},
{
"begin": 732,
"end": 809,
"name": "MSTORE"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "20"
},
{
"begin": 732,
"end": 809,
"name": "ADD"
},
{
"begin": 732,
"end": 809,
"name": "DUP1"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000"
},
{
"begin": 732,
"end": 809,
"name": "DUP2"
},
{
"begin": 732,
"end": 809,
"name": "MSTORE"
},
{
"begin": 732,
"end": 809,
"name": "POP"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "20"
},
{
"begin": 732,
"end": 809,
"name": "ADD"
},
{
"begin": 732,
"end": 809,
"name": "SWAP2"
},
{
"begin": 732,
"end": 809,
"name": "POP"
},
{
"begin": 732,
"end": 809,
"name": "POP"
},
{
"begin": 732,
"end": 809,
"name": "PUSH",
"value": "40"
},
{
"begin": 732,
"end": 809,
"name": "MLOAD"
},
{
"begin": 732,
"end": 809,
"name": "DUP1"
},
{
"begin": 732,
"end": 809,
"name": "SWAP2"
},
{
"begin": 732,
"end": 809,
"name": "SUB"
},
{
"begin": 732,
"end": 809,
"name": "SWAP1"
},
{
"begin": 732,
"end": 809,
"name": "REVERT"
},
{
"begin": 732,
"end": 809,
"name": "tag",
"value": "25"
},
{
"begin": 732,
"end": 809,
"name": "JUMPDEST"
},
{
"begin": 855,
"end": 865,
"name": "PUSH",
"value": "2"
},
{
"begin": 855,
"end": 865,
"name": "SLOAD"
},
{
"begin": 843,
"end": 852,
"name": "CALLVALUE"
},
{
"begin": 843,
"end": 865,
"name": "DUP2"
},
{
"begin": 843,
"end": 865,
"name": "PUSH [tag]",
"value": "26"
},
{
"begin": 843,
"end": 865,
"name": "JUMPI"
},
{
"begin": 843,
"end": 865,
"name": "INVALID"
},
{
"begin": 843,
"end": 865,
"name": "tag",
"value": "26"
},
{
"begin": 843,
"end": 865,
"name": "JUMPDEST"
},
{
"begin": 843,
"end": 865,
"name": "DIV"
},
{
"begin": 820,
"end": 832,
"name": "PUSH",
"value": "0"
},
{
"begin": 820,
"end": 839,
"name": "DUP1"
},
{
"begin": 833,
"end": 838,
"name": "PUSH",
"value": "1"
},
{
"begin": 833,
"end": 838,
"name": "PUSH",
"value": "0"
},
{
"begin": 833,
"end": 838,
"name": "SWAP1"
},
{
"begin": 833,
"end": 838,
"name": "SLOAD"
},
{
"begin": 833,
"end": 838,
"name": "SWAP1"
},
{
"begin": 833,
"end": 838,
"name": "PUSH",
"value": "100"
},
{
"begin": 833,
"end": 838,
"name": "EXP"
},
{
"begin": 833,
"end": 838,
"name": "SWAP1"
},
{
"begin": 833,
"end": 838,
"name": "DIV"
},
{
"begin": 833,
"end": 838,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 833,
"end": 838,
"name": "AND"
},
{
"begin": 820,
"end": 839,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 820,
"end": 839,
"name": "AND"
},
{
"begin": 820,
"end": 839,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 820,
"end": 839,
"name": "AND"
},
{
"begin": 820,
"end": 839,
"name": "DUP2"
},
{
"begin": 820,
"end": 839,
"name": "MSTORE"
},
{
"begin": 820,
"end": 839,
"name": "PUSH",
"value": "20"
},
{
"begin": 820,
"end": 839,
"name": "ADD"
},
{
"begin": 820,
"end": 839,
"name": "SWAP1"
},
{
"begin": 820,
"end": 839,
"name": "DUP2"
},
{
"begin": 820,
"end": 839,
"name": "MSTORE"
},
{
"begin": 820,
"end": 839,
"name": "PUSH",
"value": "20"
},
{
"begin": 820,
"end": 839,
"name": "ADD"
},
{
"begin": 820,
"end": 839,
"name": "PUSH",
"value": "0"
},
{
"begin": 820,
"end": 839,
"name": "KECCAK256"
},
{
"begin": 820,
"end": 839,
"name": "PUSH",
"value": "0"
},
{
"begin": 820,
"end": 865,
"name": "DUP3"
},
{
"begin": 820,
"end": 865,
"name": "DUP3"
},
{
"begin": 820,
"end": 865,
"name": "SLOAD"
},
{
"begin": 820,
"end": 865,
"name": "SUB"
},
{
"begin": 820,
"end": 865,
"name": "SWAP3"
},
{
"begin": 820,
"end": 865,
"name": "POP"
},
{
"begin": 820,
"end": 865,
"name": "POP"
},
{
"begin": 820,
"end": 865,
"name": "DUP2"
},
{
"begin": 820,
"end": 865,
"name": "SWAP1"
},
{
"begin": 820,
"end": 865,
"name": "SSTORE"
},
{
"begin": 820,
"end": 865,
"name": "POP"
},
{
"begin": 917,
"end": 927,
"name": "PUSH",
"value": "2"
},
{
"begin": 917,
"end": 927,
"name": "SLOAD"
},
{
"begin": 905,
"end": 914,
"name": "CALLVALUE"
},
{
"begin": 905,
"end": 927,
"name": "DUP2"
},
{
"begin": 905,
"end": 927,
"name": "PUSH [tag]",
"value": "27"
},
{
"begin": 905,
"end": 927,
"name": "JUMPI"
},
{
"begin": 905,
"end": 927,
"name": "INVALID"
},
{
"begin": 905,
"end": 927,
"name": "tag",
"value": "27"
},
{
"begin": 905,
"end": 927,
"name": "JUMPDEST"
},
{
"begin": 905,
"end": 927,
"name": "DIV"
},
{
"begin": 876,
"end": 888,
"name": "PUSH",
"value": "0"
},
{
"begin": 876,
"end": 900,
"name": "DUP1"
},
{
"begin": 889,
"end": 899,
"name": "CALLER"
},
{
"begin": 876,
"end": 900,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 876,
"end": 900,
"name": "AND"
},
{
"begin": 876,
"end": 900,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 876,
"end": 900,
"name": "AND"
},
{
"begin": 876,
"end": 900,
"name": "DUP2"
},
{
"begin": 876,
"end": 900,
"name": "MSTORE"
},
{
"begin": 876,
"end": 900,
"name": "PUSH",
"value": "20"
},
{
"begin": 876,
"end": 900,
"name": "ADD"
},
{
"begin": 876,
"end": 900,
"name": "SWAP1"
},
{
"begin": 876,
"end": 900,
"name": "DUP2"
},
{
"begin": 876,
"end": 900,
"name": "MSTORE"
},
{
"begin": 876,
"end": 900,
"name": "PUSH",
"value": "20"
},
{
"begin": 876,
"end": 900,
"name": "ADD"
},
{
"begin": 876,
"end": 900,
"name": "PUSH",
"value": "0"
},
{
"begin": 876,
"end": 900,
"name": "KECCAK256"
},
{
"begin": 876,
"end": 900,
"name": "PUSH",
"value": "0"
},
{
"begin": 876,
"end": 927,
"name": "DUP3"
},
{
"begin": 876,
"end": 927,
"name": "DUP3"
},
{
"begin": 876,
"end": 927,
"name": "SLOAD"
},
{
"begin": 876,
"end": 927,
"name": "ADD"
},
{
"begin": 876,
"end": 927,
"name": "SWAP3"
},
{
"begin": 876,
"end": 927,
"name": "POP"
},
{
"begin": 876,
"end": 927,
"name": "POP"
},
{
"begin": 876,
"end": 927,
"name": "DUP2"
},
{
"begin": 876,
"end": 927,
"name": "SWAP1"
},
{
"begin": 876,
"end": 927,
"name": "SSTORE"
},
{
"begin": 876,
"end": 927,
"name": "POP"
},
{
"begin": 682,
"end": 934,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 555,
"end": 676,
"name": "tag",
"value": "16"
},
{
"begin": 555,
"end": 676,
"name": "JUMPDEST"
},
{
"begin": 615,
"end": 620,
"name": "PUSH",
"value": "1"
},
{
"begin": 615,
"end": 620,
"name": "PUSH",
"value": "0"
},
{
"begin": 615,
"end": 620,
"name": "SWAP1"
},
{
"begin": 615,
"end": 620,
"name": "SLOAD"
},
{
"begin": 615,
"end": 620,
"name": "SWAP1"
},
{
"begin": 615,
"end": 620,
"name": "PUSH",
"value": "100"
},
{
"begin": 615,
"end": 620,
"name": "EXP"
},
{
"begin": 615,
"end": 620,
"name": "SWAP1"
},
{
"begin": 615,
"end": 620,
"name": "DIV"
},
{
"begin": 615,
"end": 620,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 615,
"end": 620,
"name": "AND"
},
{
"begin": 601,
"end": 620,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 601,
"end": 620,
"name": "AND"
},
{
"begin": 601,
"end": 611,
"name": "CALLER"
},
{
"begin": 601,
"end": 620,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 601,
"end": 620,
"name": "AND"
},
{
"begin": 601,
"end": 620,
"name": "EQ"
},
{
"begin": 593,
"end": 638,
"name": "PUSH [tag]",
"value": "29"
},
{
"begin": 593,
"end": 638,
"name": "JUMPI"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "40"
},
{
"begin": 593,
"end": 638,
"name": "MLOAD"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 593,
"end": 638,
"name": "DUP2"
},
{
"begin": 593,
"end": 638,
"name": "MSTORE"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "4"
},
{
"begin": 593,
"end": 638,
"name": "ADD"
},
{
"begin": 593,
"end": 638,
"name": "DUP1"
},
{
"begin": 593,
"end": 638,
"name": "DUP1"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "20"
},
{
"begin": 593,
"end": 638,
"name": "ADD"
},
{
"begin": 593,
"end": 638,
"name": "DUP3"
},
{
"begin": 593,
"end": 638,
"name": "DUP2"
},
{
"begin": 593,
"end": 638,
"name": "SUB"
},
{
"begin": 593,
"end": 638,
"name": "DUP3"
},
{
"begin": 593,
"end": 638,
"name": "MSTORE"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "D"
},
{
"begin": 593,
"end": 638,
"name": "DUP2"
},
{
"begin": 593,
"end": 638,
"name": "MSTORE"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "20"
},
{
"begin": 593,
"end": 638,
"name": "ADD"
},
{
"begin": 593,
"end": 638,
"name": "DUP1"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "552052206E6F74206F776E657200000000000000000000000000000000000000"
},
{
"begin": 593,
"end": 638,
"name": "DUP2"
},
{
"begin": 593,
"end": 638,
"name": "MSTORE"
},
{
"begin": 593,
"end": 638,
"name": "POP"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "20"
},
{
"begin": 593,
"end": 638,
"name": "ADD"
},
{
"begin": 593,
"end": 638,
"name": "SWAP2"
},
{
"begin": 593,
"end": 638,
"name": "POP"
},
{
"begin": 593,
"end": 638,
"name": "POP"
},
{
"begin": 593,
"end": 638,
"name": "PUSH",
"value": "40"
},
{
"begin": 593,
"end": 638,
"name": "MLOAD"
},
{
"begin": 593,
"end": 638,
"name": "DUP1"
},
{
"begin": 593,
"end": 638,
"name": "SWAP2"
},
{
"begin": 593,
"end": 638,
"name": "SUB"
},
{
"begin": 593,
"end": 638,
"name": "SWAP1"
},
{
"begin": 593,
"end": 638,
"name": "REVERT"
},
{
"begin": 593,
"end": 638,
"name": "tag",
"value": "29"
},
{
"begin": 593,
"end": 638,
"name": "JUMPDEST"
},
{
"begin": 648,
"end": 660,
"name": "PUSH",
"value": "0"
},
{
"begin": 648,
"end": 667,
"name": "DUP1"
},
{
"begin": 661,
"end": 666,
"name": "PUSH",
"value": "1"
},
{
"begin": 661,
"end": 666,
"name": "PUSH",
"value": "0"
},
{
"begin": 661,
"end": 666,
"name": "SWAP1"
},
{
"begin": 661,
"end": 666,
"name": "SLOAD"
},
{
"begin": 661,
"end": 666,
"name": "SWAP1"
},
{
"begin": 661,
"end": 666,
"name": "PUSH",
"value": "100"
},
{
"begin": 661,
"end": 666,
"name": "EXP"
},
{
"begin": 661,
"end": 666,
"name": "SWAP1"
},
{
"begin": 661,
"end": 666,
"name": "DIV"
},
{
"begin": 661,
"end": 666,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 661,
"end": 666,
"name": "AND"
},
{
"begin": 648,
"end": 667,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 648,
"end": 667,
"name": "AND"
},
{
"begin": 648,
"end": 667,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 648,
"end": 667,
"name": "AND"
},
{
"begin": 648,
"end": 667,
"name": "DUP2"
},
{
"begin": 648,
"end": 667,
"name": "MSTORE"
},
{
"begin": 648,
"end": 667,
"name": "PUSH",
"value": "20"
},
{
"begin": 648,
"end": 667,
"name": "ADD"
},
{
"begin": 648,
"end": 667,
"name": "SWAP1"
},
{
"begin": 648,
"end": 667,
"name": "DUP2"
},
{
"begin": 648,
"end": 667,
"name": "MSTORE"
},
{
"begin": 648,
"end": 667,
"name": "PUSH",
"value": "20"
},
{
"begin": 648,
"end": 667,
"name": "ADD"
},
{
"begin": 648,
"end": 667,
"name": "PUSH",
"value": "0"
},
{
"begin": 648,
"end": 667,
"name": "KECCAK256"
},
{
"begin": 648,
"end": 667,
"name": "PUSH",
"value": "0"
},
{
"begin": 648,
"end": 669,
"name": "DUP2"
},
{
"begin": 648,
"end": 669,
"name": "SLOAD"
},
{
"begin": 648,
"end": 669,
"name": "DUP1"
},
{
"begin": 648,
"end": 669,
"name": "SWAP3"
},
{
"begin": 648,
"end": 669,
"name": "SWAP2"
},
{
"begin": 648,
"end": 669,
"name": "SWAP1"
},
{
"begin": 648,
"end": 669,
"name": "PUSH",
"value": "1"
},
{
"begin": 648,
"end": 669,
"name": "SWAP1"
},
{
"begin": 648,
"end": 669,
"name": "SUB"
},
{
"begin": 648,
"end": 669,
"name": "SWAP2"
},
{
"begin": 648,
"end": 669,
"name": "SWAP1"
},
{
"begin": 648,
"end": 669,
"name": "POP"
},
{
"begin": 648,
"end": 669,
"name": "SSTORE"
},
{
"begin": 648,
"end": 669,
"name": "POP"
},
{
"begin": 555,
"end": 676,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"burnToken()": "faa0a264",
"createNewToken()": "754fc38c",
"purchaseToken()": "a95c4d62",
"sendToken(address,uint256)": "412664ae"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[],\"name\":\"burnToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"createNewToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"purchaseToken\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"sendToken\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/InheritanceModifierExample.sol\":\"InheritanceModifierExample\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/InheritanceModifierExample.sol\":{\"keccak256\":\"0x505923ea503e4f505b21166e56c25e141d8d4948d8ea4d60e2ac6e1b0bfa8cb7\",\"urls\":[\"bzz-raw://64bb22368cd76383f98c75daf5d637a09372f3bb7ba7dd26d7cd525556943901\",\"dweb:/ipfs/Qmar8aSwUq8SrVbbno1DwFS5hfLGftrMk5RFA8Ap1sTw7d\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 5,
"contract": "contracts/InheritanceModifierExample.sol:InheritanceModifierExample",
"label": "tokenBalance",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 7,
"contract": "contracts/InheritanceModifierExample.sol:InheritanceModifierExample",
"label": "owner",
"offset": 0,
"slot": "1",
"type": "t_address"
},
{
"astId": 10,
"contract": "contracts/InheritanceModifierExample.sol:InheritanceModifierExample",
"label": "tokenPrice",
"offset": 0,
"slot": "2",
"type": "t_uint256"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"contracts/InheritanceModifierExample.sol": {
"ast": {
"absolutePath": "contracts/InheritanceModifierExample.sol",
"exportedSymbols": {
"InheritanceModifierExample": [
154
]
},
"id": 155,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.5",
".13"
],
"nodeType": "PragmaDirective",
"src": "37:24:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 154,
"linearizedBaseContracts": [
154
],
"name": "InheritanceModifierExample",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 5,
"name": "tokenBalance",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "232:37:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"typeName": {
"id": 4,
"keyType": {
"id": 2,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "240:7:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "232:24:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
},
"valueType": {
"id": 3,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "251:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 7,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "275:13:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 6,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "275:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 10,
"name": "tokenPrice",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "294:25:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "294:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"hexValue": "31",
"id": 9,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "312:7:0",
"subdenomination": "ether",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"value": "1"
},
"visibility": "internal"
},
{
"body": {
"id": 24,
"nodeType": "Block",
"src": "347:70:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 13,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "357:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 14,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "365:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 15,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "365:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"src": "357:18:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 17,
"nodeType": "ExpressionStatement",
"src": "357:18:0"
},
{
"expression": {
"argumentTypes": null,
"id": 22,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 18,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "385:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 20,
"indexExpression": {
"argumentTypes": null,
"id": 19,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "398:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "385:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "313030",
"id": 21,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "407:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "385:25:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 23,
"nodeType": "ExpressionStatement",
"src": "385:25:0"
}
]
},
"documentation": null,
"id": 25,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 11,
"nodeType": "ParameterList",
"parameters": [],
"src": "337:2:0"
},
"returnParameters": {
"id": 12,
"nodeType": "ParameterList",
"parameters": [],
"src": "347:0:0"
},
"scope": 154,
"src": "326:91:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 41,
"nodeType": "Block",
"src": "456:93:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 32,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 29,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "474:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 30,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "474:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 31,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "488:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "474:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "552052206e6f74206f776e6572",
"id": 33,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "495:15:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_952421db8fbaba0fdc8ada4d4f1583bd0c236602a131dd2c7042ac6f021dce1c",
"typeString": "literal_string \"U R not owner\""
},
"value": "U R not owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_952421db8fbaba0fdc8ada4d4f1583bd0c236602a131dd2c7042ac6f021dce1c",
"typeString": "literal_string \"U R not owner\""
}
],
"id": 28,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
172,
173
],
"referencedDeclaration": 173,
"src": "466:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 34,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "466:45:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 35,
"nodeType": "ExpressionStatement",
"src": "466:45:0"
},
{
"expression": {
"argumentTypes": null,
"id": 39,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "521:21:0",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 36,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "521:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 38,
"indexExpression": {
"argumentTypes": null,
"id": 37,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "534:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "521:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 40,
"nodeType": "ExpressionStatement",
"src": "521:21:0"
}
]
},
"documentation": null,
"id": 42,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "createNewToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 26,
"nodeType": "ParameterList",
"parameters": [],
"src": "446:2:0"
},
"returnParameters": {
"id": 27,
"nodeType": "ParameterList",
"parameters": [],
"src": "456:0:0"
},
"scope": 154,
"src": "423:126:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 58,
"nodeType": "Block",
"src": "583:93:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 46,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "601:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 47,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "601:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 48,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "615:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "601:19:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "552052206e6f74206f776e6572",
"id": 50,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "622:15:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_952421db8fbaba0fdc8ada4d4f1583bd0c236602a131dd2c7042ac6f021dce1c",
"typeString": "literal_string \"U R not owner\""
},
"value": "U R not owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_952421db8fbaba0fdc8ada4d4f1583bd0c236602a131dd2c7042ac6f021dce1c",
"typeString": "literal_string \"U R not owner\""
}
],
"id": 45,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
172,
173
],
"referencedDeclaration": 173,
"src": "593:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 51,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "593:45:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 52,
"nodeType": "ExpressionStatement",
"src": "593:45:0"
},
{
"expression": {
"argumentTypes": null,
"id": 56,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "--",
"prefix": false,
"src": "648:21:0",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 53,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "648:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 55,
"indexExpression": {
"argumentTypes": null,
"id": 54,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "661:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "648:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 57,
"nodeType": "ExpressionStatement",
"src": "648:21:0"
}
]
},
"documentation": null,
"id": 59,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "burnToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 43,
"nodeType": "ParameterList",
"parameters": [],
"src": "573:2:0"
},
"returnParameters": {
"id": 44,
"nodeType": "ParameterList",
"parameters": [],
"src": "583:0:0"
},
"scope": 154,
"src": "555:121:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 95,
"nodeType": "Block",
"src": "722:212:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 72,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 70,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 67,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 63,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "740:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 65,
"indexExpression": {
"argumentTypes": null,
"id": 64,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "753:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "740:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
"id": 66,
"name": "tokenPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10,
"src": "762:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "740:32:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 68,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "775:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 69,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "775:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "740:44:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 71,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "787:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "740:48:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6e6f7420656e6f75676820746f6b656e",
"id": 73,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "790:18:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
},
"value": "not enough token"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
}
],
"id": 62,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
172,
173
],
"referencedDeclaration": 173,
"src": "732:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 74,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "732:77:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 75,
"nodeType": "ExpressionStatement",
"src": "732:77:0"
},
{
"expression": {
"argumentTypes": null,
"id": 83,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 76,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "820:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 78,
"indexExpression": {
"argumentTypes": null,
"id": 77,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7,
"src": "833:5:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "820:19:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 82,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 79,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "843:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 80,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "843:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 81,
"name": "tokenPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10,
"src": "855:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "843:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "820:45:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 84,
"nodeType": "ExpressionStatement",
"src": "820:45:0"
},
{
"expression": {
"argumentTypes": null,
"id": 93,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 85,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "876:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 88,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 86,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "889:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 87,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "889:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "876:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 89,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "905:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 90,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "905:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "/",
"rightExpression": {
"argumentTypes": null,
"id": 91,
"name": "tokenPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 10,
"src": "917:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "905:22:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "876:51:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 94,
"nodeType": "ExpressionStatement",
"src": "876:51:0"
}
]
},
"documentation": null,
"id": 96,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "purchaseToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 60,
"nodeType": "ParameterList",
"parameters": [],
"src": "704:2:0"
},
"returnParameters": {
"id": 61,
"nodeType": "ParameterList",
"parameters": [],
"src": "722:0:0"
},
"scope": 154,
"src": "682:252:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 152,
"nodeType": "Block",
"src": "1001:310:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 104,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1019:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 107,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 105,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "1032:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 106,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1032:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1019:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"id": 108,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "1047:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1019:35:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"argumentTypes": null,
"hexValue": "6e6f7420656e6f75676820746f6b656e",
"id": 110,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1056:18:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
},
"value": "not enough token"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_3ac7a953c572870f626d1e7920a4e4e2aa70e1a26f5d23f2d584bf179d8c6382",
"typeString": "literal_string \"not enough token\""
}
],
"id": 103,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
172,
173
],
"referencedDeclaration": 173,
"src": "1011:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 111,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1011:64:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 112,
"nodeType": "ExpressionStatement",
"src": "1011:64:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 114,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1092:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 116,
"indexExpression": {
"argumentTypes": null,
"id": 115,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "1105:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1092:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"id": 117,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "1112:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1092:27:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 119,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1123:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 121,
"indexExpression": {
"argumentTypes": null,
"id": 120,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "1136:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1123:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1092:48:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 113,
"name": "assert",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "1085:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1085:56:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 124,
"nodeType": "ExpressionStatement",
"src": "1085:56:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 131,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 126,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1158:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 129,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 127,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "1171:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 128,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1171:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1158:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"id": 130,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "1185:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1158:34:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 132,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1196:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 135,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 133,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "1209:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 134,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1209:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1196:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1158:62:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 125,
"name": "assert",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "1151:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 137,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1151:70:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 138,
"nodeType": "ExpressionStatement",
"src": "1151:70:0"
},
{
"expression": {
"argumentTypes": null,
"id": 144,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 139,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1231:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 142,
"indexExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 140,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 169,
"src": "1244:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 141,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1244:10:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1231:24:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "-=",
"rightHandSide": {
"argumentTypes": null,
"id": 143,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "1259:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1231:35:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 145,
"nodeType": "ExpressionStatement",
"src": "1231:35:0"
},
{
"expression": {
"argumentTypes": null,
"id": 150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 146,
"name": "tokenBalance",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "1276:12:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 148,
"indexExpression": {
"argumentTypes": null,
"id": 147,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "1289:3:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1276:17:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 149,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 100,
"src": "1297:7:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "1276:28:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 151,
"nodeType": "ExpressionStatement",
"src": "1276:28:0"
}
]
},
"documentation": null,
"id": 153,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "sendToken",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 101,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 98,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 153,
"src": "959:11:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 97,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "959:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 100,
"name": "_amount",
"nodeType": "VariableDeclaration",
"scope": 153,
"src": "972:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 99,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "972:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "958:27:0"
},
"returnParameters": {
"id": 102,
"nodeType": "ParameterList",
"parameters": [],
"src": "1001:0:0"
},
"scope": 154,
"src": "940:371:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 155,
"src": "190:1123:0"
}
],
"src": "37:1276:0"
},
"id": 0
}
}
}
}
{
"id": "0c95f434dcf076a1b77c9140665d4f60",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.13",
"solcLongVersion": "0.5.13+commit.5b0b510c",
"input": {
"language": "Solidity",
"sources": {
"contracts/SimpleMapping.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.5.13;\n\ncontract SimpleMapping {\n mapping(uint => bool) public myMapping;\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/SimpleMapping.sol": {
"SimpleMapping": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "myMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/SimpleMapping.sol\":63:133 contract SimpleMapping {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/SimpleMapping.sol\":63:133 contract SimpleMapping {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/SimpleMapping.sol\":63:133 contract SimpleMapping {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_1:\n /* \"contracts/SimpleMapping.sol\":63:133 contract SimpleMapping {... */\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x7c668844\n eq\n tag_3\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/SimpleMapping.sol\":92:130 mapping(uint => bool) public myMapping */\n tag_3:\n tag_4\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_5\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_5:\n /* \"contracts/SimpleMapping.sol\":92:130 mapping(uint => bool) public myMapping */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_6\n jump\t// in\n tag_4:\n mload(0x40)\n dup1\n dup3\n iszero\n iszero\n iszero\n iszero\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n tag_6:\n mstore(0x20, 0x00)\n dup1\n 0x00\n mstore\n keccak256(0x00, 0x40)\n 0x00\n swap2\n pop\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xff\n and\n dup2\n jump\t// out\n\n auxdata: 0xa265627a7a72315820fcbf27e0e18e8e6e705d94d7b5ee04f7e924620d52bc01a87871190b18bd1dcb64736f6c634300050d0032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b5060c58061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c80637c66884414602d575b600080fd5b605660048036036020811015604157600080fd5b81019080803590602001909291905050506070565b604051808215151515815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff168156fea265627a7a72315820fcbf27e0e18e8e6e705d94d7b5ee04f7e924620d52bc01a87871190b18bd1dcb64736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xC5 DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7C668844 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x56 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x70 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xFC 0xBF 0x27 0xE0 0xE1 DUP15 DUP15 PUSH15 0x705D94D7B5EE04F7E924620D52BC01 0xA8 PUSH25 0x71190B18BD1DCB64736F6C634300050D003200000000000000 ",
"sourceMap": "63:70:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:70:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b506004361060285760003560e01c80637c66884414602d575b600080fd5b605660048036036020811015604157600080fd5b81019080803590602001909291905050506070565b604051808215151515815260200191505060405180910390f35b60006020528060005260406000206000915054906101000a900460ff168156fea265627a7a72315820fcbf27e0e18e8e6e705d94d7b5ee04f7e924620d52bc01a87871190b18bd1dcb64736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7C668844 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x56 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH1 0x70 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xFC 0xBF 0x27 0xE0 0xE1 DUP15 DUP15 PUSH15 0x705D94D7B5EE04F7E924620D52BC01 0xA8 PUSH25 0x71190B18BD1DCB64736F6C634300050D003200000000000000 ",
"sourceMap": "63:70:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:70:0;;;;;;;;;;;;;;;;;;;92:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;92:38:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "39400",
"executionCost": "93",
"totalCost": "39493"
},
"external": {
"myMapping(uint256)": "578"
}
},
"legacyAssembly": {
".code": [
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 133,
"name": "MSTORE"
},
{
"begin": 63,
"end": 133,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 133,
"name": "POP"
},
{
"begin": 63,
"end": 133,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 133,
"name": "DUP1"
},
{
"begin": 63,
"end": 133,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 133,
"name": "CODECOPY"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 133,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a72315820fcbf27e0e18e8e6e705d94d7b5ee04f7e924620d52bc01a87871190b18bd1dcb64736f6c634300050d0032",
".code": [
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 133,
"name": "MSTORE"
},
{
"begin": 63,
"end": 133,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 133,
"name": "POP"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "4"
},
{
"begin": 63,
"end": 133,
"name": "CALLDATASIZE"
},
{
"begin": 63,
"end": 133,
"name": "LT"
},
{
"begin": 63,
"end": 133,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 63,
"end": 133,
"name": "JUMPI"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 133,
"name": "CALLDATALOAD"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "E0"
},
{
"begin": 63,
"end": 133,
"name": "SHR"
},
{
"begin": 63,
"end": 133,
"name": "DUP1"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "7C668844"
},
{
"begin": 63,
"end": 133,
"name": "EQ"
},
{
"begin": 63,
"end": 133,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 63,
"end": 133,
"name": "JUMPI"
},
{
"begin": 63,
"end": 133,
"name": "tag",
"value": "2"
},
{
"begin": 63,
"end": 133,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 133,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 133,
"name": "DUP1"
},
{
"begin": 63,
"end": 133,
"name": "REVERT"
},
{
"begin": 92,
"end": 130,
"name": "tag",
"value": "3"
},
{
"begin": 92,
"end": 130,
"name": "JUMPDEST"
},
{
"begin": 92,
"end": 130,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "4"
},
{
"begin": 92,
"end": 130,
"name": "DUP1"
},
{
"begin": 92,
"end": 130,
"name": "CALLDATASIZE"
},
{
"begin": 92,
"end": 130,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "5"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 92,
"end": 130,
"name": "DUP2"
},
{
"begin": 92,
"end": 130,
"name": "ADD"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "DUP1"
},
{
"begin": 92,
"end": 130,
"name": "DUP1"
},
{
"begin": 92,
"end": 130,
"name": "CALLDATALOAD"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "20"
},
{
"begin": 92,
"end": 130,
"name": "ADD"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "SWAP3"
},
{
"begin": 92,
"end": 130,
"name": "SWAP2"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "POP"
},
{
"begin": 92,
"end": 130,
"name": "POP"
},
{
"begin": 92,
"end": 130,
"name": "POP"
},
{
"begin": 92,
"end": 130,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 92,
"end": 130,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 92,
"end": 130,
"name": "tag",
"value": "4"
},
{
"begin": 92,
"end": 130,
"name": "JUMPDEST"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "40"
},
{
"begin": 92,
"end": 130,
"name": "MLOAD"
},
{
"begin": 92,
"end": 130,
"name": "DUP1"
},
{
"begin": 92,
"end": 130,
"name": "DUP3"
},
{
"begin": 92,
"end": 130,
"name": "ISZERO"
},
{
"begin": 92,
"end": 130,
"name": "ISZERO"
},
{
"begin": 92,
"end": 130,
"name": "ISZERO"
},
{
"begin": 92,
"end": 130,
"name": "ISZERO"
},
{
"begin": 92,
"end": 130,
"name": "DUP2"
},
{
"begin": 92,
"end": 130,
"name": "MSTORE"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "20"
},
{
"begin": 92,
"end": 130,
"name": "ADD"
},
{
"begin": 92,
"end": 130,
"name": "SWAP2"
},
{
"begin": 92,
"end": 130,
"name": "POP"
},
{
"begin": 92,
"end": 130,
"name": "POP"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "40"
},
{
"begin": 92,
"end": 130,
"name": "MLOAD"
},
{
"begin": 92,
"end": 130,
"name": "DUP1"
},
{
"begin": 92,
"end": 130,
"name": "SWAP2"
},
{
"begin": 92,
"end": 130,
"name": "SUB"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "RETURN"
},
{
"begin": 92,
"end": 130,
"name": "tag",
"value": "6"
},
{
"begin": 92,
"end": 130,
"name": "JUMPDEST"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "0"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "20"
},
{
"begin": 92,
"end": 130,
"name": "MSTORE"
},
{
"begin": 92,
"end": 130,
"name": "DUP1"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "0"
},
{
"begin": 92,
"end": 130,
"name": "MSTORE"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "40"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "0"
},
{
"begin": 92,
"end": 130,
"name": "KECCAK256"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "0"
},
{
"begin": 92,
"end": 130,
"name": "SWAP2"
},
{
"begin": 92,
"end": 130,
"name": "POP"
},
{
"begin": 92,
"end": 130,
"name": "SLOAD"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "100"
},
{
"begin": 92,
"end": 130,
"name": "EXP"
},
{
"begin": 92,
"end": 130,
"name": "SWAP1"
},
{
"begin": 92,
"end": 130,
"name": "DIV"
},
{
"begin": 92,
"end": 130,
"name": "PUSH",
"value": "FF"
},
{
"begin": 92,
"end": 130,
"name": "AND"
},
{
"begin": 92,
"end": 130,
"name": "DUP2"
},
{
"begin": 92,
"end": 130,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"myMapping(uint256)": "7c668844"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"myMapping\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contracts/SimpleMapping.sol\":\"SimpleMapping\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/SimpleMapping.sol\":{\"keccak256\":\"0x64824b18a1a939b6111db70583c3d7ccff325c26ea8c20415b8585b9f0e71cda\",\"urls\":[\"bzz-raw://3a20bda35c0c5fe0fad73bb0ad3cdff709d83b5c04c6350d33374c698e1bea8e\",\"dweb:/ipfs/Qmc1QSVWAJkQBJ5yjT2wtsquTmJv4UzSpcSxKG2ACTTZZe\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 5,
"contract": "contracts/SimpleMapping.sol:SimpleMapping",
"label": "myMapping",
"offset": 0,
"slot": "0",
"type": "t_mapping(t_uint256,t_bool)"
}
],
"types": {
"t_bool": {
"encoding": "inplace",
"label": "bool",
"numberOfBytes": "1"
},
"t_mapping(t_uint256,t_bool)": {
"encoding": "mapping",
"key": "t_uint256",
"label": "mapping(uint256 => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"contracts/SimpleMapping.sol": {
"ast": {
"absolutePath": "contracts/SimpleMapping.sol",
"exportedSymbols": {
"SimpleMapping": [
6
]
},
"id": 7,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.5",
".13"
],
"nodeType": "PragmaDirective",
"src": "37:24:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 6,
"linearizedBaseContracts": [
6
],
"name": "SimpleMapping",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 5,
"name": "myMapping",
"nodeType": "VariableDeclaration",
"scope": 6,
"src": "92:38:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
"typeString": "mapping(uint256 => bool)"
},
"typeName": {
"id": 4,
"keyType": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "100:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "92:21:0",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$",
"typeString": "mapping(uint256 => bool)"
},
"valueType": {
"id": 3,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "108:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
},
"value": null,
"visibility": "public"
}
],
"scope": 7,
"src": "63:70:0"
}
],
"src": "37:96: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": {
"extract_byte_array_length": {
"entryPoint": 261,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 311,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:516:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "58:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "68:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "82:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "88:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "78:3:1"
},
"nodeType": "YulFunctionCall",
"src": "78:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "68:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "99:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "129:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "135:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "125:3:1"
},
"nodeType": "YulFunctionCall",
"src": "125:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "103:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "176:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "190:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "204:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "212:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "200:3:1"
},
"nodeType": "YulFunctionCall",
"src": "200:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "190:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "156:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "149:6:1"
},
"nodeType": "YulFunctionCall",
"src": "149:26:1"
},
"nodeType": "YulIf",
"src": "146:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "279:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "293:16:1"
},
"nodeType": "YulFunctionCall",
"src": "293:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "293:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "243:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "266:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "274:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "263:2:1"
},
"nodeType": "YulFunctionCall",
"src": "263:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "240:2:1"
},
"nodeType": "YulFunctionCall",
"src": "240:38:1"
},
"nodeType": "YulIf",
"src": "237:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "42:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "51:6:1",
"type": ""
}
],
"src": "7:320:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "361:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "378:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "381:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "371:6:1"
},
"nodeType": "YulFunctionCall",
"src": "371:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "371:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "475:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "478:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "468:6:1"
},
"nodeType": "YulFunctionCall",
"src": "468:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "468:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "499:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "502:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "492:6:1"
},
"nodeType": "YulFunctionCall",
"src": "492:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "492:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "333:180:1"
}
]
},
"contents": "{\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "60806040526040518060400160405280601081526020017f48656c6c6f20576f726c642042696e68000000000000000000000000000000008152506000908051906020019061004f929190610062565b5034801561005c57600080fd5b50610166565b82805461006e90610105565b90600052602060002090601f01602090048101928261009057600085556100d7565b82601f106100a957805160ff19168380011785556100d7565b828001600101855582156100d7579182015b828111156100d65782518255916020019190600101906100bb565b5b5090506100e491906100e8565b5090565b5b808211156101015760008160009055506001016100e9565b5090565b6000600282049050600182168061011d57607f821691505b6020821081141561013157610130610137565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61022e806101756000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80635a455c1c14610030575b600080fd5b61003861004e565b6040516100459190610115565b60405180910390f35b6000805461005b90610186565b80601f016020809104026020016040519081016040528092919081815260200182805461008790610186565b80156100d45780601f106100a9576101008083540402835291602001916100d4565b820191906000526020600020905b8154815290600101906020018083116100b757829003601f168201915b505050505081565b60006100e782610137565b6100f18185610142565b9350610101818560208601610153565b61010a816101e7565b840191505092915050565b6000602082019050818103600083015261012f81846100dc565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610171578082015181840152602081019050610156565b83811115610180576000848401525b50505050565b6000600282049050600182168061019e57607f821691505b602082108114156101b2576101b16101b8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f830116905091905056fea2646970667358221220807f7969ea8b4055088886bb7ed26d3ac8d99bb8283aa7c025838b2c7b049d8364736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x48656C6C6F20576F726C642042696E6800000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x0 SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4F SWAP3 SWAP2 SWAP1 PUSH2 0x62 JUMP JUMPDEST POP CALLVALUE DUP1 ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x166 JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x6E SWAP1 PUSH2 0x105 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x90 JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0xD7 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0xA9 JUMPI DUP1 MLOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0xD7 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0xD7 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0xD6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0xBB JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0xE8 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x101 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0xE9 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x11D JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x131 JUMPI PUSH2 0x130 PUSH2 0x137 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x22E DUP1 PUSH2 0x175 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A455C1C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x5B SWAP1 PUSH2 0x186 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x87 SWAP1 PUSH2 0x186 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7 DUP3 PUSH2 0x137 JUMP JUMPDEST PUSH2 0xF1 DUP2 DUP6 PUSH2 0x142 JUMP JUMPDEST SWAP4 POP PUSH2 0x101 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x153 JUMP JUMPDEST PUSH2 0x10A DUP2 PUSH2 0x1E7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12F DUP2 DUP5 PUSH2 0xDC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x171 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x156 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1B2 JUMPI PUSH2 0x1B1 PUSH2 0x1B8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP1 PUSH32 0x7969EA8B4055088886BB7ED26D3AC8D99BB8283AA7C025838B2C7B049D836473 PUSH16 0x6C634300080700330000000000000000 ",
"sourceMap": "71:71:0:-:0;;;99:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;71:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:320:1:-;51:6;88:1;82:4;78:12;68:22;;135:1;129:4;125:12;156:18;146:81;;212:4;204:6;200:17;190:27;;146:81;274:2;266:6;263:14;243:18;240:38;237:84;;;293:18;;:::i;:::-;237:84;58:269;7:320;;;:::o;333:180::-;381:77;378:1;371:88;478:4;475:1;468:15;502:4;499:1;492:15;71:71:0;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@myStr_4": {
"entryPoint": 78,
"id": 4,
"parameterSlots": 0,
"returnSlots": 0
},
"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": {
"entryPoint": 220,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": {
"entryPoint": 277,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"array_length_t_string_memory_ptr": {
"entryPoint": 311,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"array_storeLengthForEncoding_t_string_memory_ptr_fromStack": {
"entryPoint": 322,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"copy_memory_to_memory": {
"entryPoint": 339,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"extract_byte_array_length": {
"entryPoint": 390,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x22": {
"entryPoint": 440,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 487,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1906:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "99:272:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "109:53:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "156:5:1"
}
],
"functionName": {
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "123:32:1"
},
"nodeType": "YulFunctionCall",
"src": "123:39:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "113:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "171:78:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "237:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "242:6:1"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "178:58:1"
},
"nodeType": "YulFunctionCall",
"src": "178:71:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "171:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "284:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "291:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "280:3:1"
},
"nodeType": "YulFunctionCall",
"src": "280:16:1"
},
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "298:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "303:6:1"
}
],
"functionName": {
"name": "copy_memory_to_memory",
"nodeType": "YulIdentifier",
"src": "258:21:1"
},
"nodeType": "YulFunctionCall",
"src": "258:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "258:52:1"
},
{
"nodeType": "YulAssignment",
"src": "319:46:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "330:3:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "357:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "335:21:1"
},
"nodeType": "YulFunctionCall",
"src": "335:29:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "326:3:1"
},
"nodeType": "YulFunctionCall",
"src": "326:39:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "319:3:1"
}
]
}
]
},
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "80:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "87:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "95:3:1",
"type": ""
}
],
"src": "7:364:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "495:195:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "505:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "517:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "528:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "513:3:1"
},
"nodeType": "YulFunctionCall",
"src": "513:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "505:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "552:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "563:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "548:3:1"
},
"nodeType": "YulFunctionCall",
"src": "548:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "571:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "577:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "567:3:1"
},
"nodeType": "YulFunctionCall",
"src": "567:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "541:6:1"
},
"nodeType": "YulFunctionCall",
"src": "541:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "541:47:1"
},
{
"nodeType": "YulAssignment",
"src": "597:86:1",
"value": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "669:6:1"
},
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "678:4:1"
}
],
"functionName": {
"name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "605:63:1"
},
"nodeType": "YulFunctionCall",
"src": "605:78:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "597:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "467:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "479:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "490:4:1",
"type": ""
}
],
"src": "377:313:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "755:40:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "766:22:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "782:5:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "776:5:1"
},
"nodeType": "YulFunctionCall",
"src": "776:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "766:6:1"
}
]
}
]
},
"name": "array_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "738:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "748:6:1",
"type": ""
}
],
"src": "696:99:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "897:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "914:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "919:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "907:6:1"
},
"nodeType": "YulFunctionCall",
"src": "907:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "907:19:1"
},
{
"nodeType": "YulAssignment",
"src": "935:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "954:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "959:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "950:3:1"
},
"nodeType": "YulFunctionCall",
"src": "950:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "935:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "869:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "874:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "885:11:1",
"type": ""
}
],
"src": "801:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1025:258:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1035:10:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1044:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "i",
"nodeType": "YulTypedName",
"src": "1039:1:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1104:63:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1129:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1134:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1125:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1125:11:1"
},
{
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "1148:3:1"
},
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1153:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1144:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1144:11:1"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "1138:5:1"
},
"nodeType": "YulFunctionCall",
"src": "1138:18:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1118:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1118:39:1"
},
"nodeType": "YulExpressionStatement",
"src": "1118:39:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1065:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1068:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1062:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1062:13:1"
},
"nodeType": "YulForLoop",
"post": {
"nodeType": "YulBlock",
"src": "1076:19:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1078:15:1",
"value": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1087:1:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1090:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1083:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1083:10:1"
},
"variableNames": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1078:1:1"
}
]
}
]
},
"pre": {
"nodeType": "YulBlock",
"src": "1058:3:1",
"statements": []
},
"src": "1054:113:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1201:76:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "1251:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1256:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1247:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1247:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1265:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1240:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1240:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "1240:27:1"
}
]
},
"condition": {
"arguments": [
{
"name": "i",
"nodeType": "YulIdentifier",
"src": "1182:1:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1185:6:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1179:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1179:13:1"
},
"nodeType": "YulIf",
"src": "1176:101:1"
}
]
},
"name": "copy_memory_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "1007:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "1012:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1017:6:1",
"type": ""
}
],
"src": "976:307:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1340:269:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1350:22:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1364:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1370:1:1",
"type": "",
"value": "2"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1360:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1360:12:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1350:6:1"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "1381:38:1",
"value": {
"arguments": [
{
"name": "data",
"nodeType": "YulIdentifier",
"src": "1411:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1417:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1407:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1407:12:1"
},
"variables": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulTypedName",
"src": "1385:18:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1458:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1472:27:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1486:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1494:4:1",
"type": "",
"value": "0x7f"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1482:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1482:17:1"
},
"variableNames": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1472:6:1"
}
]
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1438:18:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1431:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1431:26:1"
},
"nodeType": "YulIf",
"src": "1428:81:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1561:42:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x22",
"nodeType": "YulIdentifier",
"src": "1575:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1575:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1575:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "outOfPlaceEncoding",
"nodeType": "YulIdentifier",
"src": "1525:18:1"
},
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1548:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1556:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1545:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1545:14:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1522:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1522:38:1"
},
"nodeType": "YulIf",
"src": "1519:84:1"
}
]
},
"name": "extract_byte_array_length",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "data",
"nodeType": "YulTypedName",
"src": "1324:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1333:6:1",
"type": ""
}
],
"src": "1289:320:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1643:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1660:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1663:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1653:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1653:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "1653:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1757:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1760:4:1",
"type": "",
"value": "0x22"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1750:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1750:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1750:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1781:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1784:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1774:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1774:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "1774:15:1"
}
]
},
"name": "panic_error_0x22",
"nodeType": "YulFunctionDefinition",
"src": "1615:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1849:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1859:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1877:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1884:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1873:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1873:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1893:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1889:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1889:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1869:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1869:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "1859:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1832:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "1842:6:1",
"type": ""
}
],
"src": "1801:102:1"
}
]
},
"contents": "{\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80635a455c1c14610030575b600080fd5b61003861004e565b6040516100459190610115565b60405180910390f35b6000805461005b90610186565b80601f016020809104026020016040519081016040528092919081815260200182805461008790610186565b80156100d45780601f106100a9576101008083540402835291602001916100d4565b820191906000526020600020905b8154815290600101906020018083116100b757829003601f168201915b505050505081565b60006100e782610137565b6100f18185610142565b9350610101818560208601610153565b61010a816101e7565b840191505092915050565b6000602082019050818103600083015261012f81846100dc565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610171578082015181840152602081019050610156565b83811115610180576000848401525b50505050565b6000600282049050600182168061019e57607f821691505b602082108114156101b2576101b16101b8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f830116905091905056fea2646970667358221220807f7969ea8b4055088886bb7ed26d3ac8d99bb8283aa7c025838b2c7b049d8364736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5A455C1C EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38 PUSH2 0x4E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x115 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH2 0x5B SWAP1 PUSH2 0x186 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x87 SWAP1 PUSH2 0x186 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xD4 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0xA9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0xD4 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0xB7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE7 DUP3 PUSH2 0x137 JUMP JUMPDEST PUSH2 0xF1 DUP2 DUP6 PUSH2 0x142 JUMP JUMPDEST SWAP4 POP PUSH2 0x101 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x153 JUMP JUMPDEST PUSH2 0x10A DUP2 PUSH2 0x1E7 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12F DUP2 DUP5 PUSH2 0xDC JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x171 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x156 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x180 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x19E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0x1B2 JUMPI PUSH2 0x1B1 PUSH2 0x1B8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP1 PUSH32 0x7969EA8B4055088886BB7ED26D3AC8D99BB8283AA7C025838B2C7B049D836473 PUSH16 0x6C634300080700330000000000000000 ",
"sourceMap": "71:71:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;99:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:364:1:-;95:3;123:39;156:5;123:39;:::i;:::-;178:71;242:6;237:3;178:71;:::i;:::-;171:78;;258:52;303:6;298:3;291:4;284:5;280:16;258:52;:::i;:::-;335:29;357:6;335:29;:::i;:::-;330:3;326:39;319:46;;99:272;7:364;;;;:::o;377:313::-;490:4;528:2;517:9;513:18;505:26;;577:9;571:4;567:20;563:1;552:9;548:17;541:47;605:78;678:4;669:6;605:78;:::i;:::-;597:86;;377:313;;;;:::o;696:99::-;748:6;782:5;776:12;766:22;;696:99;;;:::o;801:169::-;885:11;919:6;914:3;907:19;959:4;954:3;950:14;935:29;;801:169;;;;:::o;976:307::-;1044:1;1054:113;1068:6;1065:1;1062:13;1054:113;;;1153:1;1148:3;1144:11;1138:18;1134:1;1129:3;1125:11;1118:39;1090:2;1087:1;1083:10;1078:15;;1054:113;;;1185:6;1182:1;1179:13;1176:101;;;1265:1;1256:6;1251:3;1247:16;1240:27;1176:101;1025:258;976:307;;;:::o;1289:320::-;1333:6;1370:1;1364:4;1360:12;1350:22;;1417:1;1411:4;1407:12;1438:18;1428:81;;1494:4;1486:6;1482:17;1472:27;;1428:81;1556:2;1548:6;1545:14;1525:18;1522:38;1519:84;;;1575:18;;:::i;:::-;1519:84;1340:269;1289:320;;;:::o;1615:180::-;1663:77;1660:1;1653:88;1760:4;1757:1;1750:15;1784:4;1781:1;1774:15;1801:102;1842:6;1893:2;1889:7;1884:2;1877:5;1873:14;1869:28;1859:38;;1801:102;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "111600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"myStr()": "infinite"
}
},
"methodIdentifiers": {
"myStr()": "5a455c1c"
}
},
"abi": [
{
"inputs": [],
"name": "myStr",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "myStr",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/4_DemoContract.sol": "DemoContract"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/4_DemoContract.sol": {
"keccak256": "0xfab11f18817227388588352301876b6fd4d2d2a8755d629bdab5b3aa742c4bc5",
"license": "GPL-3.0",
"urls": [
"bzz-raw://e7d0e08516fe06c582d9e327e124de72d426985b1fd17e183dab64ba8a7cddd0",
"dweb:/ipfs/QmXGWV3p2HeYH224LPJcbvqmHg3ko6upnuuP8MttZqzcH4"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610470806100206000396000f3fe6080604052600436106100345760003560e01c80630ad19aeb146100395780636d26ec181461009e578063ca5eb638146100a8575b600080fd5b34801561004557600080fd5b5061009c6004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610121565b005b6100a66102d0565b005b3480156100b457600080fd5b506100f7600480360360208110156100cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610414565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b8067ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1610156101fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f20656e6f7567682066756e6473000000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f193505050501580156102cb573d6000803e3d6000fd5b505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160167ffffffffffffffff16101561039457fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea265627a7a72315820fb8ad6965d96770029924355dbe2c3108e150254a3d3984317f8bc2b6810a28964736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x470 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x121 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA6 PUSH2 0x2D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F20656E6F7567682066756E64730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2CB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x394 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xFB DUP11 0xD6 SWAP7 0x5D SWAP7 PUSH24 0x29924355DBE2C3108E150254A3D3984317F8BC2B6810A2 DUP10 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:520:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:520:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100345760003560e01c80630ad19aeb146100395780636d26ec181461009e578063ca5eb638146100a8575b600080fd5b34801561004557600080fd5b5061009c6004803603604081101561005c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610121565b005b6100a66102d0565b005b3480156100b457600080fd5b506100f7600480360360208110156100cb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610414565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b8067ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff1610156101fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f20656e6f7567682066756e6473000000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f193505050501580156102cb573d6000803e3d6000fd5b505050565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160167ffffffffffffffff16101561039457fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea265627a7a72315820fb8ad6965d96770029924355dbe2c3108e150254a3d3984317f8bc2b6810a28964736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x34 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x39 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x9E JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xA8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x45 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x121 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xA6 PUSH2 0x2D0 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x414 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F20656E6F7567682066756E64730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2CB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x394 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xFB DUP11 0xD6 SWAP7 0x5D SWAP7 PUSH24 0x29924355DBE2C3108E150254A3D3984317F8BC2B6810A2 DUP10 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:520:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:228:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;353:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;150:197;;;:::i;:::-;;95:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;95:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;95:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;353:228;468:7;438:37;;:14;:26;453:10;438:26;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;430:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;506:14;:26;521:10;506:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;553:3;:12;;:21;566:7;553:21;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;553:21:0;353:228;;:::o;150:197::-;256:14;:26;271:10;256:26;;;;;;;;;;;;;;;;;;;;;;;;;206:76;;242:9;206:14;:26;221:10;206:26;;;;;;;;;;;;;;;;;;;;;;;;;:46;:76;;;;199:84;;;;330:9;293:14;:26;308:10;293:26;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;150:197::o;95:48::-;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "227200",
"executionCost": "269",
"totalCost": "227469"
},
"external": {
"balanceRecived(address)": "628",
"receiveMoney()": "21418",
"withdrawMoney(address,uint64)": "infinite"
}
},
"methodIdentifiers": {
"balanceRecived(address)": "ca5eb638",
"receiveMoney()": "6d26ec18",
"withdrawMoney(address,uint64)": "0ad19aeb"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint64",
"name": "_amount",
"type": "uint64"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint64",
"name": "_amount",
"type": "uint64"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/ExceptionExample.sol": "ExceptionExample"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/ExceptionExample.sol": {
"keccak256": "0x11d104ac07e296002d03f7e13a9bfcedbc40e4fe49c3de03d24500cefe647ad3",
"urls": [
"bzz-raw://9639f30a114e0226fa57c0ef6822bf92f44023f59f2a47106903ff081be56a29",
"dweb:/ipfs/QmTKnHDixCmr7UtYDoLZAPGXEFTAWEX88nKGx7SxFrzE7F"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610576806100616000396000f3fe60806040526004361061004a5760003560e01c80630ad19aeb14610054578063395a6063146100b95780636d26ec1814610108578063893d20e814610112578063ca5eb63814610169575b6100526101e2565b005b34801561006057600080fd5b506100b76004803603604081101561007757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610326565b005b3480156100c557600080fd5b506100f2600480360360208110156100dc57600080fd5b81019080803590602001909291905050506104d5565b6040518082815260200191505060405180910390f35b6101106101e2565b005b34801561011e57600080fd5b506101276104f0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017557600080fd5b506101b86004803603602081101561018c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160167ffffffffffffffff1610156102a657fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b8067ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff161015610402576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f20656e6f7567682066756e6473000000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f193505050501580156104d0573d6000803e3d6000fd5b505050565b6000670de0b6b3a764000082816104e857fe5b049050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea265627a7a72315820de1c9b3eae3452abec17794c6bbe94dc52a1ce3cc3050e1e4b5193cd7ef2429264736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH2 0x576 DUP1 PUSH2 0x61 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x54 JUMPI DUP1 PUSH4 0x395A6063 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x112 JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0x169 JUMPI JUMPDEST PUSH2 0x52 PUSH2 0x1E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x326 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH2 0x1E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x51A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x2A6 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F20656E6F7567682066756E64730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 DUP3 DUP2 PUSH2 0x4E8 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xDE SHR SWAP12 RETURNDATACOPY 0xAE CALLVALUE MSTORE 0xAB 0xEC OR PUSH26 0x4C6BBE94DC52A1CE3CC3050E1E4B5193CD7EF2429264736F6C63 NUMBER STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:884:0:-;;;177:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;177:56:0;216:10;208:5;;:18;;;;;;;;;;;;;;;;;;63:884;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061004a5760003560e01c80630ad19aeb14610054578063395a6063146100b95780636d26ec1814610108578063893d20e814610112578063ca5eb63814610169575b6100526101e2565b005b34801561006057600080fd5b506100b76004803603604081101561007757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803567ffffffffffffffff169060200190929190505050610326565b005b3480156100c557600080fd5b506100f2600480360360208110156100dc57600080fd5b81019080803590602001909291905050506104d5565b6040518082815260200191505060405180910390f35b6101106101e2565b005b34801561011e57600080fd5b506101276104f0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017557600080fd5b506101b86004803603602081101561018c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061051a565b604051808267ffffffffffffffff1667ffffffffffffffff16815260200191505060405180910390f35b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff16346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff160167ffffffffffffffff1610156102a657fe5b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550565b8067ffffffffffffffff166000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900467ffffffffffffffff1667ffffffffffffffff161015610402576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f6e6f20656e6f7567682066756e6473000000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff166108fc8267ffffffffffffffff169081150290604051600060405180830381858888f193505050501580156104d0573d6000803e3d6000fd5b505050565b6000670de0b6b3a764000082816104e857fe5b049050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006020528060005260406000206000915054906101000a900467ffffffffffffffff168156fea265627a7a72315820de1c9b3eae3452abec17794c6bbe94dc52a1ce3cc3050e1e4b5193cd7ef2429264736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xAD19AEB EQ PUSH2 0x54 JUMPI DUP1 PUSH4 0x395A6063 EQ PUSH2 0xB9 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0x893D20E8 EQ PUSH2 0x112 JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0x169 JUMPI JUMPDEST PUSH2 0x52 PUSH2 0x1E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x60 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x326 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF2 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xDC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x4D5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x110 PUSH2 0x1E2 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x11E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH2 0x4F0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B8 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x18C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x51A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x2A6 JUMPI INVALID JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND ADD SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH8 0xFFFFFFFFFFFFFFFF AND LT ISZERO PUSH2 0x402 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F20656E6F7567682066756E64730000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 DUP3 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND SUB SWAP3 POP PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH8 0xFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH8 0xFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4D0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xDE0B6B3A7640000 DUP3 DUP2 PUSH2 0x4E8 JUMPI INVALID JUMPDEST DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH8 0xFFFFFFFFFFFFFFFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xDE SHR SWAP12 RETURNDATACOPY 0xAE CALLVALUE MSTORE 0xAB 0xEC OR PUSH26 0x4C6BBE94DC52A1CE3CC3050E1E4B5193CD7EF2429264736F6C63 NUMBER STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:884:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;924:14;:12;:14::i;:::-;63:884;652:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;652:228:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;652:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;324:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;324:119:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;449:197;;;:::i;:::-;;239:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;94:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;94:48:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;94:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;449:197;555:14;:26;570:10;555:26;;;;;;;;;;;;;;;;;;;;;;;;;505:76;;541:9;505:14;:26;520:10;505:26;;;;;;;;;;;;;;;;;;;;;;;;;:46;:76;;;;498:84;;;;629:9;592:14;:26;607:10;592:26;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;449:197::o;652:228::-;767:7;737:37;;:14;:26;752:10;737:26;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;;729:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;835:7;805:14;:26;820:10;805:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;852:3;:12;;:21;865:7;852:21;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;852:21:0;652:228;;:::o;324:119::-;391:4;429:7;414:12;:22;;;;;;407:29;;324:119;;;:::o;239:79::-;280:7;306:5;;;;;;;;;;;299:12;;239:79;:::o;94:48::-;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "279600",
"executionCost": "20584",
"totalCost": "300184"
},
"external": {
"": "21484",
"balanceRecived(address)": "672",
"convertWeiToEther(uint256)": "325",
"getOwner()": "505",
"receiveMoney()": "21440",
"withdrawMoney(address,uint64)": "infinite"
}
},
"methodIdentifiers": {
"balanceRecived(address)": "ca5eb638",
"convertWeiToEther(uint256)": "395a6063",
"getOwner()": "893d20e8",
"receiveMoney()": "6d26ec18",
"withdrawMoney(address,uint64)": "0ad19aeb"
}
},
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "_amountOfWei",
"type": "uint256"
}
],
"name": "convertWeiToEther",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint64",
"name": "_amount",
"type": "uint64"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "_amountOfWei",
"type": "uint256"
}
],
"name": "convertWeiToEther",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getOwner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint64",
"name": "_amount",
"type": "uint64"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/FunctionExample.sol": "FunctionExample"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/FunctionExample.sol": {
"keccak256": "0x721c5e2eeb8cf62ad1c25114614162e88f3f8c715e43ebbd663a78d7ef7d8d34",
"urls": [
"bzz-raw://86d799190bdde997a940041c569afcec7ec534fa16f9137a1408fae7d36eafcf",
"dweb:/ipfs/QmbrTFehCm4SZErjhTP5pXUP71baz4ewSMbJ61snSBiiQS"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052670de0b6b3a764000060025534801561001c57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061080d806100d26000396000f3fe60806040526004361061004a5760003560e01c8063412664ae1461004f578063754fc38c1461009d578063a95c4d62146100b4578063eedc966a146100be578063faa0a26414610123575b600080fd5b61009b6004803603604081101561006557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061013a565b005b3480156100a957600080fd5b506100b26103a1565b005b6100bc6104d5565b005b3480156100ca57600080fd5b5061010d600480360360208110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061068b565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b506101386106a3565b005b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561027957fe5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403111561030357fe5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550565b600034600254600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161054457fe5b04116105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b60025434816105c357fe5b04600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600254348161063c57fe5b04600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555056fea265627a7a72315820f74540a2ff8b3774d987260a46cc13cdf44a7fe60763e85c225b806619f321b464736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH8 0xDE0B6B3A7640000 PUSH1 0x2 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x1C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x64 PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP PUSH2 0x80D DUP1 PUSH2 0xD2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x412664AE EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x754FC38C EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xA95C4D62 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xEEDC966A EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0xFAA0A264 EQ PUSH2 0x123 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x13A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x3A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xBC PUSH2 0x4D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138 PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x1EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD ADD LT ISZERO PUSH2 0x279 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB GT ISZERO PUSH2 0x303 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x463 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD MUL DUP2 PUSH2 0x544 JUMPI INVALID JUMPDEST DIV GT PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x5C3 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x63C JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xF7 GASLIMIT BLOCKHASH LOG2 SELFDESTRUCT DUP12 CALLDATACOPY PUSH21 0xD987260A46CC13CDF44A7FE60763E85C225B806619 RETURN 0x21 0xB4 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "213:1002:0:-;;;332:7;314:25;;346:63;8:9:-1;5:2;;;30:1;27;20:12;5:2;346:63:0;143:10:1;135:5;;:18;;;;;;;;;;;;;;;;;;399:3:0;377:12;:19;390:5;;;;;;;;;;;377:19;;;;;;;;;;;;;;;:25;;;;213:1002;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061004a5760003560e01c8063412664ae1461004f578063754fc38c1461009d578063a95c4d62146100b4578063eedc966a146100be578063faa0a26414610123575b600080fd5b61009b6004803603604081101561006557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061013a565b005b3480156100a957600080fd5b506100b26103a1565b005b6100bc6104d5565b005b3480156100ca57600080fd5b5061010d600480360360208110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061068b565b6040518082815260200191505060405180910390f35b34801561012f57600080fd5b506101386106a3565b005b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156101ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561027957fe5b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403111561030357fe5b80600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610463576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550565b600034600254600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054028161054457fe5b04116105b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f75676820746f6b656e0000000000000000000000000000000081525060200191505060405180910390fd5b60025434816105c357fe5b04600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540392505081905550600254348161063c57fe5b04600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b60016020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610765576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f552052206e6f74206f776e65720000000000000000000000000000000000000081525060200191505060405180910390fd5b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060019003919050555056fea265627a7a72315820f74540a2ff8b3774d987260a46cc13cdf44a7fe60763e85c225b806619f321b464736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x412664AE EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x754FC38C EQ PUSH2 0x9D JUMPI DUP1 PUSH4 0xA95C4D62 EQ PUSH2 0xB4 JUMPI DUP1 PUSH4 0xEEDC966A EQ PUSH2 0xBE JUMPI DUP1 PUSH4 0xFAA0A264 EQ PUSH2 0x123 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9B PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x65 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x13A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB2 PUSH2 0x3A1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xBC PUSH2 0x4D5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10D PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x68B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x138 PUSH2 0x6A3 JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x1EF JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD ADD LT ISZERO PUSH2 0x279 JUMPI INVALID JUMPDEST PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD DUP2 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SUB GT ISZERO PUSH2 0x303 JUMPI INVALID JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP1 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x463 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP JUMP JUMPDEST PUSH1 0x0 CALLVALUE PUSH1 0x2 SLOAD PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD MUL DUP2 PUSH2 0x544 JUMPI INVALID JUMPDEST DIV GT PUSH2 0x5B8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F75676820746F6B656E00000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x5C3 JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH1 0x2 SLOAD CALLVALUE DUP2 PUSH2 0x63C JUMPI INVALID JUMPDEST DIV PUSH1 0x1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x765 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0xD DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x552052206E6F74206F776E657200000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 POP SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xF7 GASLIMIT BLOCKHASH LOG2 SELFDESTRUCT DUP12 CALLDATACOPY PUSH21 0xD987260A46CC13CDF44A7FE60763E85C225B806619 RETURN 0x21 0xB4 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "213:1002:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;842:371;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;842:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;415:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:81:0;;;:::i;:::-;;584:252;;;:::i;:::-;;264:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;264:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;502:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;502:76:0;;;:::i;:::-;;842:371;949:7;921:12;:24;934:10;921:24;;;;;;;;;;;;;;;;:35;;913:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1025:12;:17;1038:3;1025:17;;;;;;;;;;;;;;;;1014:7;994:12;:17;1007:3;994:17;;;;;;;;;;;;;;;;:27;:48;;987:56;;;;1098:12;:24;1111:10;1098:24;;;;;;;;;;;;;;;;1087:7;1060:12;:24;1073:10;1060:24;;;;;;;;;;;;;;;;:34;:62;;1053:70;;;;1161:7;1133:12;:24;1146:10;1133:24;;;;;;;;;;;;;;;;:35;;;;;;;;;;;1199:7;1178:12;:17;1191:3;1178:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;842:371;;:::o;415:81::-;219:5:1;;;;;;;;;;;205:19;;:10;:19;;;197:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;468:12:0;:19;481:5;;;;;;;;;;;468:19;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;415:81::o;584:252::-;689:1;677:9;664:10;;642:12;:19;655:5;;;;;;;;;;;642:19;;;;;;;;;;;;;;;;:32;:44;;;;;;:48;634:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:10;;745:9;:22;;;;;;722:12;:19;735:5;;;;;;;;;;;722:19;;;;;;;;;;;;;;;;:45;;;;;;;;;;;819:10;;807:9;:22;;;;;;778:12;:24;791:10;778:24;;;;;;;;;;;;;;;;:51;;;;;;;;;;;584:252::o;264:44::-;;;;;;;;;;;;;;;;;:::o;502:76::-;219:5:1;;;;;;;;;;;205:19;;:10;:19;;;197:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:12:0;:19;563:5;;;;;;;;;;;550:19;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;502:76::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "412200",
"executionCost": "61061",
"totalCost": "473261"
},
"external": {
"burnToken()": "21046",
"createNewToken()": "20977",
"purchaseToken()": "42252",
"sendToken(address,uint256)": "42399",
"tokenBalance(address)": "613"
}
},
"methodIdentifiers": {
"burnToken()": "faa0a264",
"createNewToken()": "754fc38c",
"purchaseToken()": "a95c4d62",
"sendToken(address,uint256)": "412664ae",
"tokenBalance(address)": "eedc966a"
}
},
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [],
"name": "burnToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "createNewToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "purchaseToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "sendToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokenBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [],
"name": "burnToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "createNewToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "purchaseToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "sendToken",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "tokenBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/InheritanceModifierExample.sol": "InheritanceModifierExample"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/InheritanceModifierExample.sol": {
"keccak256": "0x5a38d5745da90a9bfaca14917e4828530c6cd787757cd4b48f033d21a3f40d2a",
"urls": [
"bzz-raw://1ec108b961b07c69a9407b2d52083f06c28b53e695b4e1019888308a4b314ec1",
"dweb:/ipfs/QmUyV9dWkXH7qDMNC58gG1a1PmegRu46pn2AUYGqok3nPB"
]
},
"contracts/Owned.sol": {
"keccak256": "0x349a1d44ae6dd87cdb47e104c3504220d0c2954c71b5dbe32f55b90788a5314b",
"urls": [
"bzz-raw://6d8e3ac160e7f1ccc4d05bf98e0725d418900bb8877384cc4b3781adcf67efba",
"dweb:/ipfs/QmSs5P6kfJnArU4nUg2oSpULmmpBSJz5aPHrTHsQ75RK88"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061053d806100206000396000f3fe60806040526004361061004a5760003560e01c80630adec93c1461004f57806312065fe0146100a0578063ca5eb638146100cb578063cbedbf5a14610137578063f274c89714610141575b600080fd5b34801561005b57600080fd5b5061009e6004803603602081101561007257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061019c565b005b3480156100ac57600080fd5b506100b56101ed565b6040518082815260200191505060405180910390f35b3480156100d757600080fd5b5061011a600480360360208110156100ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061020c565b604051808381526020018281526020019250505060405180910390f35b61013f610230565b005b34801561014d57600080fd5b5061019a6004803603604081101561016457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061039d565b005b8073ffffffffffffffffffffffffffffffffffffffff166108fc6101be6101ed565b9081150290604051600060405180830381858888f193505050501580156101e9573d6000803e3d6000fd5b5050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b60006020528060005260406000206000915090508060000154908060010154905082565b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055506102876104ee565b6040518060400160405280348152602001428152509050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154815260200190815260200160002060008201518160000155602082015181600101559050506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000815480929190600101919050555050565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015610454576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825403925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156104e9573d6000803e3d6000fd5b505050565b60405180604001604052806000815260200160008152509056fea265627a7a72315820a2daad8d10973b50d88bbfb037eb9aef8bcc3be10f39d50b7eae7853e16e0b9b64736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x53D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xADEC93C EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF274C897 EQ PUSH2 0x141 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x19C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x20C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH2 0x230 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x39D JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x1BE PUSH2 0x1ED JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x287 PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLVALUE DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD LT ISZERO PUSH2 0x454 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F7567682066756E647300000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 LOG2 0xDA 0xAD DUP14 LT SWAP8 EXTCODESIZE POP 0xD8 DUP12 0xBF 0xB0 CALLDATACOPY 0xEB SWAP11 0xEF DUP12 0xCC EXTCODESIZE 0xE1 0xF CODECOPY 0xD5 SIGNEXTEND PUSH31 0xAE7853E16E0B9B64736F6C634300050D003200000000000000000000000000 ",
"sourceMap": "63:1069:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:1069:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061004a5760003560e01c80630adec93c1461004f57806312065fe0146100a0578063ca5eb638146100cb578063cbedbf5a14610137578063f274c89714610141575b600080fd5b34801561005b57600080fd5b5061009e6004803603602081101561007257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061019c565b005b3480156100ac57600080fd5b506100b56101ed565b6040518082815260200191505060405180910390f35b3480156100d757600080fd5b5061011a600480360360208110156100ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061020c565b604051808381526020018281526020019250505060405180910390f35b61013f610230565b005b34801561014d57600080fd5b5061019a6004803603604081101561016457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061039d565b005b8073ffffffffffffffffffffffffffffffffffffffff166108fc6101be6101ed565b9081150290604051600060405180830381858888f193505050501580156101e9573d6000803e3d6000fd5b5050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b60006020528060005260406000206000915090508060000154908060010154905082565b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055506102876104ee565b6040518060400160405280348152602001428152509050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154815260200190815260200160002060008201518160000155602082015181600101559050506000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000815480929190600101919050555050565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541015610454576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825403925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156104e9573d6000803e3d6000fd5b505050565b60405180604001604052806000815260200160008152509056fea265627a7a72315820a2daad8d10973b50d88bbfb037eb9aef8bcc3be10f39d50b7eae7853e16e0b9b64736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xADEC93C EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x137 JUMPI DUP1 PUSH4 0xF274C897 EQ PUSH2 0x141 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x19C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x1ED JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x20C JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x13F PUSH2 0x230 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x19A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x164 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x39D JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x1BE PUSH2 0x1ED JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP DUP1 PUSH1 0x0 ADD SLOAD SWAP1 DUP1 PUSH1 0x1 ADD SLOAD SWAP1 POP DUP3 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x287 PUSH2 0x4EE JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 CALLVALUE DUP2 MSTORE PUSH1 0x20 ADD TIMESTAMP DUP2 MSTORE POP SWAP1 POP DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD SSTORE PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE SWAP1 POP POP PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD SLOAD LT ISZERO PUSH2 0x454 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F7567682066756E647300000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x4E9 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 LOG2 0xDA 0xAD DUP14 LT SWAP8 EXTCODESIZE POP 0xD8 DUP12 0xBF 0xB0 CALLDATACOPY 0xEB SWAP11 0xEF DUP12 0xCC EXTCODESIZE 0xE1 0xF CODECOPY 0xD5 SIGNEXTEND PUSH31 0xAE7853E16E0B9B64736F6C634300050D003200000000000000000000000000 ",
"sourceMap": "63:1069:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1033:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1033:97:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1033:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;357:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;357:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;100:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;100:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;100:49:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;456:311;;;:::i;:::-;;773:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;773:254:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;773:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1033:97;1097:3;:12;;:26;1110:12;:10;:12::i;:::-;1097:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1097:26:0;1033:97;:::o;357:93::-;399:4;430;422:21;;;415:28;;357:93;:::o;100:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;456:311::-;545:9;502:14;:26;517:10;502:26;;;;;;;;;;;;;;;:39;;;:52;;;;;;;;;;;565:22;;:::i;:::-;590:23;;;;;;;;598:9;590:23;;;;609:3;590:23;;;565:48;;702:7;624:14;:26;639:10;624:26;;;;;;;;;;;;;;;:35;;:75;660:14;:26;675:10;660:26;;;;;;;;;;;;;;;:38;;;624:75;;;;;;;;;;;:85;;;;;;;;;;;;;;;;;;;720:14;:26;735:10;720:26;;;;;;;;;;;;;;;:38;;;:40;;;;;;;;;;;;;456:311;:::o;773:254::-;899:7;856:14;:26;871:10;856:26;;;;;;;;;;;;;;;:39;;;:50;;848:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;981:7;938:14;:26;953:10;938:26;;;;;;;;;;;;;;;:39;;;:50;;;;;;;;;;;999:3;:12;;:21;1012:7;999:21;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;999:21:0;773:254;;:::o;63:1069::-;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "268200",
"executionCost": "306",
"totalCost": "268506"
},
"external": {
"balanceRecived(address)": "837",
"getBalance()": "618",
"sendMoney()": "81493",
"withdrawAllMoney(address)": "infinite",
"withdrawMoney(address,uint256)": "infinite"
}
},
"methodIdentifiers": {
"balanceRecived(address)": "ca5eb638",
"getBalance()": "12065fe0",
"sendMoney()": "cbedbf5a",
"withdrawAllMoney(address)": "0adec93c",
"withdrawMoney(address,uint256)": "f274c897"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint256",
"name": "totalBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "numPayments",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "sendMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawAllMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint256",
"name": "totalBalance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "numPayments",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "sendMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawAllMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/MappingStructExample.sol": "MappingStructExample"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/MappingStructExample.sol": {
"keccak256": "0x576a564d290b352fedb9147e3218c6a88f13731691d8167cca1d1c358a9d8f6e",
"urls": [
"bzz-raw://750ff477b784cea5006cab4843e3b344f269f9f8057a4229bdd3194e6fe308c9",
"dweb:/ipfs/QmSL1xwx5bfKYi1Ts2EzebN8o1SiYGuPq9toibSVkG1aM6"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603e80605d6000396000f3fe6080604052600080fdfea265627a7a72315820c0edb2e2d03663018d61afec4e617aa1aaf92329ea0fb02c8cbf2f2a140df58c64736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x3E DUP1 PUSH1 0x5D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xC0 0xED 0xB2 0xE2 0xD0 CALLDATASIZE PUSH4 0x18D61AF 0xEC 0x4E PUSH2 0x7AA1 0xAA 0xF9 0x23 0x29 0xEA 0xF 0xB0 0x2C DUP13 0xBF 0x2F 0x2A EQ 0xD CREATE2 DUP13 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "189:199:0:-;;;230:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;230:56:0;269:10;261:5;;:18;;;;;;;;;;;;;;;;;;189:199;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600080fdfea265627a7a72315820c0edb2e2d03663018d61afec4e617aa1aaf92329ea0fb02c8cbf2f2a140df58c64736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xC0 0xED 0xB2 0xE2 0xD0 CALLDATASIZE PUSH4 0x18D61AF 0xEC 0x4E PUSH2 0x7AA1 0xAA 0xF9 0x23 0x29 0xEA 0xF 0xB0 0x2C DUP13 0xBF 0x2F 0x2A EQ 0xD CREATE2 DUP13 PUSH5 0x736F6C6343 STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "189:199:0:-;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "12400",
"executionCost": "20332",
"totalCost": "32732"
}
},
"methodIdentifiers": {}
},
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/InheritanceModifierExample.sol": "Owned"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/InheritanceModifierExample.sol": {
"keccak256": "0x67d2a5c968873da824d5d49299ebaba52f127518a104d6f9feb6348e231fc860",
"urls": [
"bzz-raw://08acfcd00c4bac579db9ccc41e60a6225a2195bed17f3a22b80e03cef7a23168",
"dweb:/ipfs/QmPqvFizZHi65aapBQEyERpaHDG14QFgL1UHtuLgG3A8VF"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610121806100206000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80632baeceb7146041578063d09de08a146049578063e2a4b2af146051575b600080fd5b60476073565b005b604f60a7565b005b605760da565b604051808260ff1660ff16815260200191505060405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b6000809054906101000a900460ff168156fea265627a7a723158204560203bd009848677f53fb1ef276fd5d5aa0c5ee8ead3a4b51d5e6e99339cb664736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x121 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH1 0x49 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH1 0x51 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x73 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x4F PUSH1 0xA7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x57 PUSH1 0xDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 GASLIMIT PUSH1 0x20 EXTCODESIZE 0xD0 MULMOD DUP5 DUP7 PUSH24 0xF53FB1EF276FD5D5AA0C5EE8EAD3A4B51D5E6E99339CB664 PUSH20 0x6F6C634300050D00320000000000000000000000 ",
"sourceMap": "63:174:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:174:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b5060043610603c5760003560e01c80632baeceb7146041578063d09de08a146049578063e2a4b2af146051575b600080fd5b60476073565b005b604f60a7565b005b605760da565b604051808260ff1660ff16815260200191505060405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b6000809054906101000a900460ff168156fea265627a7a723158204560203bd009848677f53fb1ef276fd5d5aa0c5ee8ead3a4b51d5e6e99339cb664736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH1 0x49 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH1 0x51 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x73 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x4F PUSH1 0xA7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x57 PUSH1 0xDA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 GASLIMIT PUSH1 0x20 EXTCODESIZE 0xD0 MULMOD DUP5 DUP7 PUSH24 0xF53FB1EF276FD5D5AA0C5EE8EAD3A4B51D5E6E99339CB664 PUSH20 0x6F6C634300050D00320000000000000000000000 ",
"sourceMap": "63:174:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:54;;;:::i;:::-;;181;;;:::i;:::-;;94:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;121:54;159:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;121:54::o;181:::-;219:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;181:54::o;94:20::-;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "57800",
"executionCost": "111",
"totalCost": "57911"
},
"external": {
"decrement()": "20654",
"increment()": "20673",
"myUint8()": "475"
}
},
"methodIdentifiers": {
"decrement()": "2baeceb7",
"increment()": "d09de08a",
"myUint8()": "e2a4b2af"
}
},
"abi": [
{
"constant": false,
"inputs": [],
"name": "decrement",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "increment",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": false,
"inputs": [],
"name": "decrement",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "increment",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/RollOverExample.sol": "RollOverExample"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/RollOverExample.sol": {
"keccak256": "0xa902e709ea8dec4c05d1ad2586cb7d63d6ce5a28c038c78768f7f44cbe3776cc",
"urls": [
"bzz-raw://3c9b63b04e291eeed819b8fce00c76aab085cf07f8657d011a802d0013b31127",
"dweb:/ipfs/QmSDivRamoQ34bUtyZzkckFza3SJtCbdHFk42Tyu25rZh2"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061015d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632baeceb714610046578063d09de08a14610050578063e2a4b2af1461005a575b600080fd5b61004e610078565b005b6100586100ac565b005b6100626100df565b60405161006f91906100ff565b60405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b60008054906101000a900460ff1681565b6100f98161011a565b82525050565b600060208201905061011460008301846100f0565b92915050565b600060ff8216905091905056fea2646970667358221220ff039283bbcb4f675c28ecb178b782c11eaa06a269a9c7f546de6442a628403164736f6c63430008000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0xAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x62 PUSH2 0xDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0x11A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x114 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT SUB SWAP3 DUP4 0xBB 0xCB 0x4F PUSH8 0x5C28ECB178B782C1 0x1E 0xAA MOD LOG2 PUSH10 0xA9C7F546DE6442A62840 BALANCE PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ",
"sourceMap": "62:244:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:434:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "68:51:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "85:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "106:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nodeType": "YulIdentifier",
"src": "90:15:1"
},
"nodeType": "YulFunctionCall",
"src": "90:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "78:6:1"
},
"nodeType": "YulFunctionCall",
"src": "78:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "78:35:1"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "56:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "63:3:1",
"type": ""
}
],
"src": "7:112:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "219:120:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "229:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "241:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "252:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "237:3:1"
},
"nodeType": "YulFunctionCall",
"src": "237:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "229:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "305:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "318:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "329:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "314:3:1"
},
"nodeType": "YulFunctionCall",
"src": "314:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "265:39:1"
},
"nodeType": "YulFunctionCall",
"src": "265:67:1"
},
"nodeType": "YulExpressionStatement",
"src": "265:67:1"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "191:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "203:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "214:4:1",
"type": ""
}
],
"src": "125:214:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "388:43:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "398:27:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "413:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "420:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "409:3:1"
},
"nodeType": "YulFunctionCall",
"src": "409:16:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "398:7:1"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "370:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "380:7:1",
"type": ""
}
],
"src": "345:86:1"
}
]
},
"contents": "{\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80632baeceb714610046578063d09de08a14610050578063e2a4b2af1461005a575b600080fd5b61004e610078565b005b6100586100ac565b005b6100626100df565b60405161006f91906100ff565b60405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b60008054906101000a900460ff1681565b6100f98161011a565b82525050565b600060208201905061011460008301846100f0565b92915050565b600060ff8216905091905056fea2646970667358221220ff039283bbcb4f675c28ecb178b782c11eaa06a269a9c7f546de6442a628403164736f6c63430008000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0xAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x62 PUSH2 0xDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0x11A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x114 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFDESTRUCT SUB SWAP3 DUP4 0xBB 0xCB 0x4F PUSH8 0x5C28ECB178B782C1 0x1E 0xAA MOD LOG2 PUSH10 0xA9C7F546DE6442A62840 BALANCE PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ",
"sourceMap": "62:244:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;122:88;;;:::i;:::-;;216;;;:::i;:::-;;95:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;122:88;184:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;122:88::o;216:::-;278:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:88::o;95:20::-;;;;;;;;;;;;:::o;7:112:1:-;90:22;106:5;90:22;:::i;:::-;85:3;78:35;68:51;;:::o;125:214::-;;252:2;241:9;237:18;229:26;;265:67;329:1;318:9;314:17;305:6;265:67;:::i;:::-;219:120;;;;:::o;345:86::-;;420:4;413:5;409:16;398:27;;388:43;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "69800",
"executionCost": "117",
"totalCost": "69917"
},
"external": {
"decrement()": "21854",
"increment()": "21873",
"myUint8()": "1190"
}
},
"methodIdentifiers": {
"decrement()": "2baeceb7",
"increment()": "d09de08a",
"myUint8()": "e2a4b2af"
}
},
"abi": [
{
"inputs": [],
"name": "decrement",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "increment",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.0+commit.c7dfd78e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "decrement",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "increment",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"contracts/RollOverExampleV8.sol": "RollOverExampleV8"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/RollOverExampleV8.sol": {
"keccak256": "0xafcf702bbdc7e79e9662066fab297eb54c8d7de4bb554e7f468234b13869bdd2",
"license": "GPL-3.0",
"urls": [
"bzz-raw://227a5120b768676ef719c11dd5360fe20d3769cd26615fcb5b1205524d354b36",
"dweb:/ipfs/QmbmChGEZ4ZGxHCnztr14cHFqjUD6FYJFasgmKi93y85Y4"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506101b1806100206000396000f3fe60806040526004361061003f5760003560e01c806312065fe0146100445780632f9710291461006f5780635ce7d828146100c05780636d26ec18146100eb575b600080fd5b34801561005057600080fd5b506100596100f5565b6040518082815260200191505060405180910390f35b34801561007b57600080fd5b506100be6004803603602081101561009257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610114565b005b3480156100cc57600080fd5b506100d5610165565b6040518082815260200191505060405180910390f35b6100f361016b565b005b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b8073ffffffffffffffffffffffffffffffffffffffff166108fc6101366100f5565b9081150290604051600060405180830381858888f19350505050158015610161573d6000803e3d6000fd5b5050565b60005481565b34600080828254019250508190555056fea265627a7a72315820cc1f271c52d7e7be663c20a8083a6aa7731bfce8d4bbf377255e8168c29e8e6264736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x2F971029 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x5CE7D828 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0xF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x114 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x165 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH2 0x16B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x136 PUSH2 0xF5 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xCC 0x1F 0x27 SHR MSTORE 0xD7 0xE7 0xBE PUSH7 0x3C20A8083A6AA7 PUSH20 0x1BFCE8D4BBF377255E8168C29E8E6264736F6C63 NUMBER STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:350:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:350:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061003f5760003560e01c806312065fe0146100445780632f9710291461006f5780635ce7d828146100c05780636d26ec18146100eb575b600080fd5b34801561005057600080fd5b506100596100f5565b6040518082815260200191505060405180910390f35b34801561007b57600080fd5b506100be6004803603602081101561009257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610114565b005b3480156100cc57600080fd5b506100d5610165565b6040518082815260200191505060405180910390f35b6100f361016b565b005b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b8073ffffffffffffffffffffffffffffffffffffffff166108fc6101366100f5565b9081150290604051600060405180830381858888f19350505050158015610161573d6000803e3d6000fd5b5050565b60005481565b34600080828254019250508190555056fea265627a7a72315820cc1f271c52d7e7be663c20a8083a6aa7731bfce8d4bbf377255e8168c29e8e6264736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x3F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x44 JUMPI DUP1 PUSH4 0x2F971029 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0x5CE7D828 EQ PUSH2 0xC0 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0xEB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x59 PUSH2 0xF5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xBE PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x114 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xCC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xD5 PUSH2 0x165 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xF3 PUSH2 0x16B JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x136 PUSH2 0xF5 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x161 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xCC 0x1F 0x27 SHR MSTORE 0xD7 0xE7 0xBE PUSH7 0x3C20A8083A6AA7 PUSH20 0x1BFCE8D4BBF377255E8168C29E8E6264736F6C63 NUMBER STOP SDIV 0xD STOP ORIGIN ",
"sourceMap": "63:350:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;218:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;317:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;317:94:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;317:94:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;96:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;96:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;129:83;;;:::i;:::-;;218:93;260:4;291;283:21;;;276:28;;218:93;:::o;317:94::-;378:3;:12;;:26;391:12;:10;:12::i;:::-;378:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;378:26:0;317:94;:::o;96:26::-;;;;:::o;129:83::-;196:9;178:14;;:27;;;;;;;;;;;129:83::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "86600",
"executionCost": "135",
"totalCost": "86735"
},
"external": {
"balanceRecived()": "427",
"getBalance()": "596",
"receiveMoney()": "20396",
"withdrawMoney(address)": "infinite"
}
},
"methodIdentifiers": {
"balanceRecived()": "5ce7d828",
"getBalance()": "12065fe0",
"receiveMoney()": "6d26ec18",
"withdrawMoney(address)": "2f971029"
}
},
"abi": [
{
"constant": true,
"inputs": [],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/SendMoneyExample.sol": "SendMoneyExample"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/SendMoneyExample.sol": {
"keccak256": "0x4436cd86ea46b1095d2089be15aed929fe07e3466aafa32b361ceaf34883cec5",
"urls": [
"bzz-raw://6fa97eb60077cb9c126422b741e1196ec4f3f229f82ea772c8d0705a57090a9e",
"dweb:/ipfs/QmRnNzDaU23c6auV4hfN1ASTMFk2GhPvtQb1JmaqyRLS59"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610227806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632f7e0bf31461005157806338677f9a146100ad57806355241077146100b75780637c668844146100e5575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b604051808215151515815260200191505060405180910390f35b6100b561014b565b005b6100e3600480360360208110156100cd57600080fd5b81019080803590602001909291905050506101a4565b005b610111600480360360208110156100fb57600080fd5b81019080803590602001909291905050506101d2565b604051808215151515815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600160008083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006020528060005260406000206000915054906101000a900460ff168156fea265627a7a72315820a96b371a55b2777fa1dda7af1ed54357df4f9e026b0bb74ad861a604f440f55664736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x227 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2F7E0BF3 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x38677F9A EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0x7C668844 EQ PUSH2 0xE5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB5 PUSH2 0x14B JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x111 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xA9 PUSH12 0x371A55B2777FA1DDA7AF1ED5 NUMBER JUMPI 0xDF 0x4F SWAP15 MUL PUSH12 0xBB74AD861A604F440F55664 PUSH20 0x6F6C634300050D00320000000000000000000000 ",
"sourceMap": "63:303:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:303:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80632f7e0bf31461005157806338677f9a146100ad57806355241077146100b75780637c668844146100e5575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061012b565b604051808215151515815260200191505060405180910390f35b6100b561014b565b005b6100e3600480360360208110156100cd57600080fd5b81019080803590602001909291905050506101a4565b005b610111600480360360208110156100fb57600080fd5b81019080803590602001909291905050506101d2565b604051808215151515815260200191505060405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600160008083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006020528060005260406000206000915054906101000a900460ff168156fea265627a7a72315820a96b371a55b2777fa1dda7af1ed54357df4f9e026b0bb74ad861a604f440f55664736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2F7E0BF3 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x38677F9A EQ PUSH2 0xAD JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0xB7 JUMPI DUP1 PUSH4 0x7C668844 EQ PUSH2 0xE5 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x93 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x67 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x12B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xB5 PUSH2 0x14B JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE3 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xCD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x111 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x1D2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xA9 PUSH12 0x371A55B2777FA1DDA7AF1ED5 NUMBER JUMPI 0xDF 0x4F SWAP15 MUL PUSH12 0xBB74AD861A604F440F55664 PUSH20 0x6F6C634300050D00320000000000000000000000 ",
"sourceMap": "63:303:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:303:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;136:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;136:48:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;276:88;;;:::i;:::-;;191:79;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;191:79:0;;;;;;;;;;;;;;;;;:::i;:::-;;92:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;92:38:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;136:48;;;;;;;;;;;;;;;;;;;;;;:::o;276:88::-;353:4;322:16;:28;339:10;322:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;276:88::o;191:79::-;259:4;239:9;:17;249:6;239:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;191:79;:::o;92:38::-;;;;;;;;;;;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "110200",
"executionCost": "159",
"totalCost": "110359"
},
"external": {
"myMapping(uint256)": "644",
"myMappingAddress(address)": "584",
"setMyAddressToTru()": "20500",
"setValue(uint256)": "20595"
}
},
"methodIdentifiers": {
"myMapping(uint256)": "7c668844",
"myMappingAddress(address)": "2f7e0bf3",
"setMyAddressToTru()": "38677f9a",
"setValue(uint256)": "55241077"
}
},
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "myMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "myMappingAddress",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "setMyAddressToTru",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "setValue",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.13+commit.5b0b510c"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "myMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "myMappingAddress",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "setMyAddressToTru",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "setValue",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contracts/SimpleMapping.sol": "SimpleMapping"
},
"evmVersion": "petersburg",
"libraries": {},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"contracts/SimpleMapping.sol": {
"keccak256": "0xe7c8e1dedd6fd7f88ce31feb832fa42900da8694c5ae8f988372bf957c647103",
"urls": [
"bzz-raw://d338ac886ca3a6d6bb469a925765f02b0bfdb38dbb2e39eb759e49ec3f91999a",
"dweb:/ipfs/QmaWyLduyzBtPyWJnfRRNQEWf1MWAyS8KdoUtZaULKD43x"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract ExceptionExample {
mapping(address => uint64) public balanceRecived;
function receiveMoney() public payable {
assert(balanceRecived[msg.sender] + uint64(msg.value) >= balanceRecived[msg.sender]);
balanceRecived[msg.sender] += uint64(msg.value);
}
function withdrawMoney(address payable _to, uint64 _amount) public {
require(balanceRecived[msg.sender] >= _amount, "no enough funds");
balanceRecived[msg.sender] -= _amount;
_to.transfer(_amount);
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract FunctionExample {
mapping(address => uint64) public balanceRecived;
address payable owner;
constructor() public {
owner = msg.sender;
}
function getOwner() public view returns (address) {
return owner;
}
function convertWeiToEther(uint _amountOfWei) public pure returns (uint) {
return _amountOfWei / 1 ether;
}
function receiveMoney() public payable {
assert(balanceRecived[msg.sender] + uint64(msg.value) >= balanceRecived[msg.sender]);
balanceRecived[msg.sender] += uint64(msg.value);
}
function withdrawMoney(address payable _to, uint64 _amount) public {
require(balanceRecived[msg.sender] >= _amount, "no enough funds");
balanceRecived[msg.sender] -= _amount;
_to.transfer(_amount);
}
function() external payable {
receiveMoney();
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
import "./Owned.sol";
/*
- create new token
- give owner token
- if u'r not the owner, u would buy a token
- create & burn token
- send token
*/
contract InheritanceModifierExample is Owned {
mapping(address => uint) public tokenBalance;
uint tokenPrice = 1 ether;
constructor() public {
tokenBalance[owner] = 100;
}
function createNewToken() public onlyOwner {
tokenBalance[owner]++;
}
function burnToken() public onlyOwner {
tokenBalance[owner]--;
}
function purchaseToken() public payable {
require(tokenBalance[owner] * tokenPrice / msg.value > 0, "not enough token");
tokenBalance[owner] -= msg.value / tokenPrice;
tokenBalance[msg.sender] += msg.value / tokenPrice;
}
function sendToken(address _to, uint _amount) public payable {
require(tokenBalance[msg.sender] >= _amount, "not enough token");
assert(tokenBalance[_to] + _amount >= tokenBalance[_to]);
assert(tokenBalance[msg.sender] - _amount <= tokenBalance[msg.sender]);
tokenBalance[msg.sender] -= _amount;
tokenBalance[_to] += _amount;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract MappingStructExample {
mapping(address => Balance) public balanceRecived;
struct Payment {
uint amount;
uint timestamp;
}
struct Balance {
uint totalBalance;
uint numPayments;
mapping(uint => Payment) payments;
}
function getBalance() public view returns(uint) {
return address(this).balance;
}
function sendMoney() public payable {
balanceRecived[msg.sender].totalBalance += msg.value;
Payment memory payment = Payment(msg.value, now);
balanceRecived[msg.sender].payments[balanceRecived[msg.sender].numPayments] = payment;
balanceRecived[msg.sender].numPayments++;
}
function withdrawMoney(address payable _to, uint _amount) public {
require(balanceRecived[msg.sender].totalBalance >= _amount, "not enough funds");
balanceRecived[msg.sender].totalBalance -= _amount;
_to.transfer(_amount);
}
function withdrawAllMoney(address payable _to) public {
_to.transfer(getBalance());
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract Owned {
address owner;
constructor() public {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "U R not owner");
_;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract RollOverExample {
uint8 public myUint8;
function decrement() public {
myUint8--;
}
function increment() public {
myUint8++;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract RollOverExampleV8 {
uint8 public myUint8;
function decrement() public {
unchecked {
myUint8--;
}
}
function increment() public {
unchecked {
myUint8++;
}
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract SendMoneyExample {
uint public balanceRecived;
function receiveMoney() public payable {
balanceRecived += msg.value;
}
function getBalance() public view returns(uint) {
return address(this).balance;
}
function withdrawMoney(address payable _to) public {
_to.transfer(getBalance());
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.13;
contract SimpleMapping {
mapping(uint => bool) public myMapping;
mapping(address => bool) public myMappingAddress;
function setValue(uint _index) public {
myMapping[_index] = true;
}
function setMyAddressToTru() public {
myMappingAddress[msg.sender] = true;
}
}
This file has been truncated, but you can view the full file.
{
"id": "0f2eb829fde2474e7c3a2e2d67c99af6",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.13",
"solcLongVersion": "0.5.13+commit.5b0b510c",
"input": {
"language": "Solidity",
"sources": {
"contracts/MappingStructExample.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity ^0.5.13;\n\ncontract MappingStructExample {\n\n mapping(address => uint) public balanceRecived;\n \n function getBalance() public view returns(uint) {\n return address(this).balance;\n }\n\n function sendMoney() public payable {\n balanceRecived[msg.sender] += msg.value;\n }\n\n function withdrawMoney(address payable _to, uint _amount) public {\n require(balanceRecived[msg.sender] >= _amount, \"not enough funds\");\n\n balanceRecived[msg.sender] -= _amount;\n\n _to.transfer(_amount);\n }\n\n function withdrawAllMoney(address payable _to) public {\n _to.transfer(getBalance());\n }\n}"
}
},
"settings": {
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
}
}
},
"output": {
"contracts": {
"contracts/MappingStructExample.sol": {
"MappingStructExample": {
"abi": [
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "balanceRecived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "sendMoney",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawAllMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdrawMoney",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contracts/MappingStructExample.sol\":63:687 contract MappingStructExample {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contracts/MappingStructExample.sol\":63:687 contract MappingStructExample {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contracts/MappingStructExample.sol\":63:687 contract MappingStructExample {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x0adec93c\n eq\n tag_2\n jumpi\n dup1\n 0x12065fe0\n eq\n tag_3\n jumpi\n dup1\n 0xca5eb638\n eq\n tag_4\n jumpi\n dup1\n 0xcbedbf5a\n eq\n tag_5\n jumpi\n dup1\n 0xf274c897\n eq\n tag_6\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contracts/MappingStructExample.sol\":588:685 function withdrawAllMoney(address payable _to) public {... */\n tag_2:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_7\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_7:\n /* \"contracts/MappingStructExample.sol\":588:685 function withdrawAllMoney(address payable _to) public {... */\n pop\n tag_8\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_9\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_9:\n /* \"contracts/MappingStructExample.sol\":588:685 function withdrawAllMoney(address payable _to) public {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_10\n jump\t// in\n tag_8:\n stop\n /* \"contracts/MappingStructExample.sol\":157:250 function getBalance() public view returns(uint) {... */\n tag_3:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_11\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_11:\n /* \"contracts/MappingStructExample.sol\":157:250 function getBalance() public view returns(uint) {... */\n pop\n tag_12\n tag_13\n jump\t// in\n tag_12:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/MappingStructExample.sol\":100:146 mapping(address => uint) public balanceRecived */\n tag_4:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_14\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_14:\n /* \"contracts/MappingStructExample.sol\":100:146 mapping(address => uint) public balanceRecived */\n pop\n tag_15\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_16\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_16:\n /* \"contracts/MappingStructExample.sol\":100:146 mapping(address => uint) public balanceRecived */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_17\n jump\t// in\n tag_15:\n mload(0x40)\n dup1\n dup3\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contracts/MappingStructExample.sol\":256:348 function sendMoney() public payable {... */\n tag_5:\n tag_18\n tag_19\n jump\t// in\n tag_18:\n stop\n /* \"contracts/MappingStructExample.sol\":354:582 function withdrawMoney(address payable _to, uint _amount) public {... */\n tag_6:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_20\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_20:\n /* \"contracts/MappingStructExample.sol\":354:582 function withdrawMoney(address payable _to, uint _amount) public {... */\n pop\n tag_21\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x40\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_22\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_22:\n /* \"contracts/MappingStructExample.sol\":354:582 function withdrawMoney(address payable _to, uint _amount) public {... */\n dup2\n add\n swap1\n dup1\n dup1\n calldataload\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n dup1\n calldataload\n swap1\n 0x20\n add\n swap1\n swap3\n swap2\n swap1\n pop\n pop\n pop\n tag_23\n jump\t// in\n tag_21:\n stop\n /* \"contracts/MappingStructExample.sol\":588:685 function withdrawAllMoney(address payable _to) public {... */\n tag_10:\n /* \"contracts/MappingStructExample.sol\":652:655 _to */\n dup1\n /* \"contracts/MappingStructExample.sol\":652:664 _to.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/MappingStructExample.sol\":652:678 _to.transfer(getBalance()) */\n 0x08fc\n /* \"contracts/MappingStructExample.sol\":665:677 getBalance() */\n tag_25\n /* \"contracts/MappingStructExample.sol\":665:675 getBalance */\n tag_13\n /* \"contracts/MappingStructExample.sol\":665:677 getBalance() */\n jump\t// in\n tag_25:\n /* \"contracts/MappingStructExample.sol\":652:678 _to.transfer(getBalance()) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_26\n jumpi\n /* \"--CODEGEN--\":45:61 */\n returndatasize\n /* \"--CODEGEN--\":42:43 */\n 0x00\n /* \"--CODEGEN--\":39:40 */\n dup1\n /* \"--CODEGEN--\":24:62 */\n returndatacopy\n /* \"--CODEGEN--\":77:93 */\n returndatasize\n /* \"--CODEGEN--\":74:75 */\n 0x00\n /* \"--CODEGEN--\":67:94 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_26:\n /* \"contracts/MappingStructExample.sol\":652:678 _to.transfer(getBalance()) */\n pop\n /* \"contracts/MappingStructExample.sol\":588:685 function withdrawAllMoney(address payable _to) public {... */\n pop\n jump\t// out\n /* \"contracts/MappingStructExample.sol\":157:250 function getBalance() public view returns(uint) {... */\n tag_13:\n /* \"contracts/MappingStructExample.sol\":199:203 uint */\n 0x00\n /* \"contracts/MappingStructExample.sol\":230:234 this */\n address\n /* \"contracts/MappingStructExample.sol\":222:243 address(this).balance */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n balance\n /* \"contracts/MappingStructExample.sol\":215:243 return address(this).balance */\n swap1\n pop\n /* \"contracts/MappingStructExample.sol\":157:250 function getBalance() public view returns(uint) {... */\n swap1\n jump\t// out\n /* \"contracts/MappingStructExample.sol\":100:146 mapping(address => uint) public balanceRecived */\n tag_17:\n mstore(0x20, 0x00)\n dup1\n 0x00\n mstore\n keccak256(0x00, 0x40)\n 0x00\n swap2\n pop\n swap1\n pop\n sload\n dup2\n jump\t// out\n /* \"contracts/MappingStructExample.sol\":256:348 function sendMoney() public payable {... */\n tag_19:\n /* \"contracts/MappingStructExample.sol\":332:341 msg.value */\n callvalue\n /* \"contracts/MappingStructExample.sol\":302:316 balanceRecived */\n 0x00\n /* \"contracts/MappingStructExample.sol\":302:328 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/MappingStructExample.sol\":317:327 msg.sender */\n caller\n /* \"contracts/MappingStructExample.sol\":302:328 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/MappingStructExample.sol\":302:341 balanceRecived[msg.sender] += msg.value */\n dup3\n dup3\n sload\n add\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/MappingStructExample.sol\":256:348 function sendMoney() public payable {... */\n jump\t// out\n /* \"contracts/MappingStructExample.sol\":354:582 function withdrawMoney(address payable _to, uint _amount) public {... */\n tag_23:\n /* \"contracts/MappingStructExample.sol\":467:474 _amount */\n dup1\n /* \"contracts/MappingStructExample.sol\":437:451 balanceRecived */\n 0x00\n /* \"contracts/MappingStructExample.sol\":437:463 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/MappingStructExample.sol\":452:462 msg.sender */\n caller\n /* \"contracts/MappingStructExample.sol\":437:463 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n sload\n /* \"contracts/MappingStructExample.sol\":437:474 balanceRecived[msg.sender] >= _amount */\n lt\n iszero\n /* \"contracts/MappingStructExample.sol\":429:495 require(balanceRecived[msg.sender] >= _amount, \"not enough funds\") */\n tag_30\n jumpi\n mload(0x40)\n 0x08c379a000000000000000000000000000000000000000000000000000000000\n dup2\n mstore\n 0x04\n add\n dup1\n dup1\n 0x20\n add\n dup3\n dup2\n sub\n dup3\n mstore\n 0x10\n dup2\n mstore\n 0x20\n add\n dup1\n 0x6e6f7420656e6f7567682066756e647300000000000000000000000000000000\n dup2\n mstore\n pop\n 0x20\n add\n swap2\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n revert\n tag_30:\n /* \"contracts/MappingStructExample.sol\":536:543 _amount */\n dup1\n /* \"contracts/MappingStructExample.sol\":506:520 balanceRecived */\n 0x00\n /* \"contracts/MappingStructExample.sol\":506:532 balanceRecived[msg.sender] */\n dup1\n /* \"contracts/MappingStructExample.sol\":521:531 msg.sender */\n caller\n /* \"contracts/MappingStructExample.sol\":506:532 balanceRecived[msg.sender] */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n mstore\n 0x20\n add\n swap1\n dup2\n mstore\n 0x20\n add\n 0x00\n keccak256\n 0x00\n /* \"contracts/MappingStructExample.sol\":506:543 balanceRecived[msg.sender] -= _amount */\n dup3\n dup3\n sload\n sub\n swap3\n pop\n pop\n dup2\n swap1\n sstore\n pop\n /* \"contracts/MappingStructExample.sol\":554:557 _to */\n dup2\n /* \"contracts/MappingStructExample.sol\":554:566 _to.transfer */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/MappingStructExample.sol\":554:575 _to.transfer(_amount) */\n 0x08fc\n /* \"contracts/MappingStructExample.sol\":567:574 _amount */\n dup3\n /* \"contracts/MappingStructExample.sol\":554:575 _to.transfer(_amount) */\n swap1\n dup2\n iszero\n mul\n swap1\n mload(0x40)\n 0x00\n mload(0x40)\n dup1\n dup4\n sub\n dup2\n dup6\n dup9\n dup9\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_31\n jumpi\n /* \"--CODEGEN--\":45:61 */\n returndatasize\n /* \"--CODEGEN--\":42:43 */\n 0x00\n /* \"--CODEGEN--\":39:40 */\n dup1\n /* \"--CODEGEN--\":24:62 */\n returndatacopy\n /* \"--CODEGEN--\":77:93 */\n returndatasize\n /* \"--CODEGEN--\":74:75 */\n 0x00\n /* \"--CODEGEN--\":67:94 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_31:\n /* \"contracts/MappingStructExample.sol\":554:575 _to.transfer(_amount) */\n pop\n /* \"contracts/MappingStructExample.sol\":354:582 function withdrawMoney(address payable _to, uint _amount) public {... */\n pop\n pop\n jump\t// out\n\n auxdata: 0xa265627a7a72315820e9b20d125044790622675a35bddffc56bf14195570c63c6144a3fa6ce121ddb664736f6c634300050d0032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506103eb806100206000396000f3fe60806040526004361061004a5760003560e01c80630adec93c1461004f57806312065fe0146100a0578063ca5eb638146100cb578063cbedbf5a14610130578063f274c8971461013a575b600080fd5b34801561005b57600080fd5b5061009e6004803603602081101561007257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610195565b005b3480156100ac57600080fd5b506100b56101e6565b6040518082815260200191505060405180910390f35b3480156100d757600080fd5b5061011a600480360360208110156100ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610205565b6040518082815260200191505060405180910390f35b61013861021d565b005b34801561014657600080fd5b506101936004803603604081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061026b565b005b8073ffffffffffffffffffffffffffffffffffffffff166108fc6101b76101e6565b9081150290604051600060405180830381858888f193505050501580156101e2573d6000803e3d6000fd5b5050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b60006020528060005260406000206000915090505481565b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561031f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156103b1573d6000803e3d6000fd5b50505056fea265627a7a72315820e9b20d125044790622675a35bddffc56bf14195570c63c6144a3fa6ce121ddb664736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3EB DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xADEC93C EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xF274C897 EQ PUSH2 0x13A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x195 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x138 PUSH2 0x21D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x26B JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x1B7 PUSH2 0x1E6 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1E2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x31F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F7567682066756E647300000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xE9 0xB2 0xD SLT POP DIFFICULTY PUSH26 0x622675A35BDDFFC56BF14195570C63C6144A3FA6CE121DDB664 PUSH20 0x6F6C634300050D00320000000000000000000000 ",
"sourceMap": "63:624:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;63:624:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "60806040526004361061004a5760003560e01c80630adec93c1461004f57806312065fe0146100a0578063ca5eb638146100cb578063cbedbf5a14610130578063f274c8971461013a575b600080fd5b34801561005b57600080fd5b5061009e6004803603602081101561007257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610195565b005b3480156100ac57600080fd5b506100b56101e6565b6040518082815260200191505060405180910390f35b3480156100d757600080fd5b5061011a600480360360208110156100ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610205565b6040518082815260200191505060405180910390f35b61013861021d565b005b34801561014657600080fd5b506101936004803603604081101561015d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061026b565b005b8073ffffffffffffffffffffffffffffffffffffffff166108fc6101b76101e6565b9081150290604051600060405180830381858888f193505050501580156101e2573d6000803e3d6000fd5b5050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b60006020528060005260406000206000915090505481565b346000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550565b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561031f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f6e6f7420656e6f7567682066756e64730000000000000000000000000000000081525060200191505060405180910390fd5b806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156103b1573d6000803e3d6000fd5b50505056fea265627a7a72315820e9b20d125044790622675a35bddffc56bf14195570c63c6144a3fa6ce121ddb664736f6c634300050d0032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xADEC93C EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA5EB638 EQ PUSH2 0xCB JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0xF274C897 EQ PUSH2 0x13A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x9E PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x195 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x1E6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11A PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x138 PUSH2 0x21D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x146 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x193 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x40 DUP2 LT ISZERO PUSH2 0x15D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0x26B JUMP JUMPDEST STOP JUMPDEST DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x1B7 PUSH2 0x1E6 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1E2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP1 POP SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD ADD SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD LT ISZERO PUSH2 0x31F JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH32 0x6E6F7420656E6F7567682066756E647300000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD SUB SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x3B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xE9 0xB2 0xD SLT POP DIFFICULTY PUSH26 0x622675A35BDDFFC56BF14195570C63C6144A3FA6CE121DDB664 PUSH20 0x6F6C634300050D00320000000000000000000000 ",
"sourceMap": "63:624:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;588:97:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;588:97:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;157:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:93:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;100:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;100:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;100:46:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;256:92;;;:::i;:::-;;354:228;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:228:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;354:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;588:97;652:3;:12;;:26;665:12;:10;:12::i;:::-;652:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:26:0;588:97;:::o;157:93::-;199:4;230;222:21;;;215:28;;157:93;:::o;100:46::-;;;;;;;;;;;;;;;;;:::o;256:92::-;332:9;302:14;:26;317:10;302:26;;;;;;;;;;;;;;;;:39;;;;;;;;;;;256:92::o;354:228::-;467:7;437:14;:26;452:10;437:26;;;;;;;;;;;;;;;;:37;;429:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;506:14;:26;521:10;506:26;;;;;;;;;;;;;;;;:37;;;;;;;;;;;554:3;:12;;:21;567:7;554:21;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;554:21:0;354:228;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "200600",
"executionCost": "245",
"totalCost": "200845"
},
"external": {
"balanceRecived(address)": "591",
"getBalance()": "618",
"sendMoney()": "20485",
"withdrawAllMoney(address)": "infinite",
"withdrawMoney(address,uint256)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 687,
"name": "MSTORE"
},
{
"begin": 63,
"end": 687,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 687,
"name": "POP"
},
{
"begin": 63,
"end": 687,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 687,
"name": "CODECOPY"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 687,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a72315820e9b20d125044790622675a35bddffc56bf14195570c63c6144a3fa6ce121ddb664736f6c634300050d0032",
".code": [
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "80"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "40"
},
{
"begin": 63,
"end": 687,
"name": "MSTORE"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "4"
},
{
"begin": 63,
"end": 687,
"name": "CALLDATASIZE"
},
{
"begin": 63,
"end": 687,
"name": "LT"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 63,
"end": 687,
"name": "JUMPI"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 687,
"name": "CALLDATALOAD"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "E0"
},
{
"begin": 63,
"end": 687,
"name": "SHR"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "ADEC93C"
},
{
"begin": 63,
"end": 687,
"name": "EQ"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 63,
"end": 687,
"name": "JUMPI"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "12065FE0"
},
{
"begin": 63,
"end": 687,
"name": "EQ"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 63,
"end": 687,
"name": "JUMPI"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "CA5EB638"
},
{
"begin": 63,
"end": 687,
"name": "EQ"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 63,
"end": 687,
"name": "JUMPI"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "CBEDBF5A"
},
{
"begin": 63,
"end": 687,
"name": "EQ"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 63,
"end": 687,
"name": "JUMPI"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "F274C897"
},
{
"begin": 63,
"end": 687,
"name": "EQ"
},
{
"begin": 63,
"end": 687,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 63,
"end": 687,
"name": "JUMPI"
},
{
"begin": 63,
"end": 687,
"name": "tag",
"value": "1"
},
{
"begin": 63,
"end": 687,
"name": "JUMPDEST"
},
{
"begin": 63,
"end": 687,
"name": "PUSH",
"value": "0"
},
{
"begin": 63,
"end": 687,
"name": "DUP1"
},
{
"begin": 63,
"end": 687,
"name": "REVERT"
},
{
"begin": 588,
"end": 685,
"name": "tag",
"value": "2"
},
{
"begin": 588,
"end": 685,
"name": "JUMPDEST"
},
{
"begin": 588,
"end": 685,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "7"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 588,
"end": 685,
"name": "POP"
},
{
"begin": 588,
"end": 685,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 588,
"end": 685,
"name": "PUSH",
"value": "4"
},
{
"begin": 588,
"end": 685,
"name": "DUP1"
},
{
"begin": 588,
"end": 685,
"name": "CALLDATASIZE"
},
{
"begin": 588,
"end": 685,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "9"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "9"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 588,
"end": 685,
"name": "DUP2"
},
{
"begin": 588,
"end": 685,
"name": "ADD"
},
{
"begin": 588,
"end": 685,
"name": "SWAP1"
},
{
"begin": 588,
"end": 685,
"name": "DUP1"
},
{
"begin": 588,
"end": 685,
"name": "DUP1"
},
{
"begin": 588,
"end": 685,
"name": "CALLDATALOAD"
},
{
"begin": 588,
"end": 685,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 588,
"end": 685,
"name": "AND"
},
{
"begin": 588,
"end": 685,
"name": "SWAP1"
},
{
"begin": 588,
"end": 685,
"name": "PUSH",
"value": "20"
},
{
"begin": 588,
"end": 685,
"name": "ADD"
},
{
"begin": 588,
"end": 685,
"name": "SWAP1"
},
{
"begin": 588,
"end": 685,
"name": "SWAP3"
},
{
"begin": 588,
"end": 685,
"name": "SWAP2"
},
{
"begin": 588,
"end": 685,
"name": "SWAP1"
},
{
"begin": 588,
"end": 685,
"name": "POP"
},
{
"begin": 588,
"end": 685,
"name": "POP"
},
{
"begin": 588,
"end": 685,
"name": "POP"
},
{
"begin": 588,
"end": 685,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 588,
"end": 685,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 588,
"end": 685,
"name": "tag",
"value": "8"
},
{
"begin": 588,
"end": 685,
"name": "JUMPDEST"
},
{
"begin": 588,
"end": 685,
"name": "STOP"
},
{
"begin": 157,
"end": 250,
"name": "tag",
"value": "3"
},
{
"begin": 157,
"end": 250,
"name": "JUMPDEST"
},
{
"begin": 157,
"end": 250,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "11"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 157,
"end": 250,
"name": "POP"
},
{
"begin": 157,
"end": 250,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 157,
"end": 250,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 157,
"end": 250,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 157,
"end": 250,
"name": "tag",
"value": "12"
},
{
"begin": 157,
"end": 250,
"name": "JUMPDEST"
},
{
"begin": 157,
"end": 250,
"name": "PUSH",
"value": "40"
},
{
"begin": 157,
"end": 250,
"name": "MLOAD"
},
{
"begin": 157,
"end": 250,
"name": "DUP1"
},
{
"begin": 157,
"end": 250,
"name": "DUP3"
},
{
"begin": 157,
"end": 250,
"name": "DUP2"
},
{
"begin": 157,
"end": 250,
"name": "MSTORE"
},
{
"begin": 157,
"end": 250,
"name": "PUSH",
"value": "20"
},
{
"begin": 157,
"end": 250,
"name": "ADD"
},
{
"begin": 157,
"end": 250,
"name": "SWAP2"
},
{
"begin": 157,
"end": 250,
"name": "POP"
},
{
"begin": 157,
"end": 250,
"name": "POP"
},
{
"begin": 157,
"end": 250,
"name": "PUSH",
"value": "40"
},
{
"begin": 157,
"end": 250,
"name": "MLOAD"
},
{
"begin": 157,
"end": 250,
"name": "DUP1"
},
{
"begin": 157,
"end": 250,
"name": "SWAP2"
},
{
"begin": 157,
"end": 250,
"name": "SUB"
},
{
"begin": 157,
"end": 250,
"name": "SWAP1"
},
{
"begin": 157,
"end": 250,
"name": "RETURN"
},
{
"begin": 100,
"end": 146,
"name": "tag",
"value": "4"
},
{
"begin": 100,
"end": 146,
"name": "JUMPDEST"
},
{
"begin": 100,
"end": 146,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "14"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "4"
},
{
"begin": 100,
"end": 146,
"name": "DUP1"
},
{
"begin": 100,
"end": 146,
"name": "CALLDATASIZE"
},
{
"begin": 100,
"end": 146,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "16"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 100,
"end": 146,
"name": "DUP2"
},
{
"begin": 100,
"end": 146,
"name": "ADD"
},
{
"begin": 100,
"end": 146,
"name": "SWAP1"
},
{
"begin": 100,
"end": 146,
"name": "DUP1"
},
{
"begin": 100,
"end": 146,
"name": "DUP1"
},
{
"begin": 100,
"end": 146,
"name": "CALLDATALOAD"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 100,
"end": 146,
"name": "AND"
},
{
"begin": 100,
"end": 146,
"name": "SWAP1"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "20"
},
{
"begin": 100,
"end": 146,
"name": "ADD"
},
{
"begin": 100,
"end": 146,
"name": "SWAP1"
},
{
"begin": 100,
"end": 146,
"name": "SWAP3"
},
{
"begin": 100,
"end": 146,
"name": "SWAP2"
},
{
"begin": 100,
"end": 146,
"name": "SWAP1"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "PUSH [tag]",
"value": "17"
},
{
"begin": 100,
"end": 146,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 100,
"end": 146,
"name": "tag",
"value": "15"
},
{
"begin": 100,
"end": 146,
"name": "JUMPDEST"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "40"
},
{
"begin": 100,
"end": 146,
"name": "MLOAD"
},
{
"begin": 100,
"end": 146,
"name": "DUP1"
},
{
"begin": 100,
"end": 146,
"name": "DUP3"
},
{
"begin": 100,
"end": 146,
"name": "DUP2"
},
{
"begin": 100,
"end": 146,
"name": "MSTORE"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "20"
},
{
"begin": 100,
"end": 146,
"name": "ADD"
},
{
"begin": 100,
"end": 146,
"name": "SWAP2"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "40"
},
{
"begin": 100,
"end": 146,
"name": "MLOAD"
},
{
"begin": 100,
"end": 146,
"name": "DUP1"
},
{
"begin": 100,
"end": 146,
"name": "SWAP2"
},
{
"begin": 100,
"end": 146,
"name": "SUB"
},
{
"begin": 100,
"end": 146,
"name": "SWAP1"
},
{
"begin": 100,
"end": 146,
"name": "RETURN"
},
{
"begin": 256,
"end": 348,
"name": "tag",
"value": "5"
},
{
"begin": 256,
"end": 348,
"name": "JUMPDEST"
},
{
"begin": 256,
"end": 348,
"name": "PUSH [tag]",
"value": "18"
},
{
"begin": 256,
"end": 348,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 256,
"end": 348,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 256,
"end": 348,
"name": "tag",
"value": "18"
},
{
"begin": 256,
"end": 348,
"name": "JUMPDEST"
},
{
"begin": 256,
"end": 348,
"name": "STOP"
},
{
"begin": 354,
"end": 582,
"name": "tag",
"value": "6"
},
{
"begin": 354,
"end": 582,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 582,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "20"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "20"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 582,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "PUSH [tag]",
"value": "21"
},
{
"begin": 354,
"end": 582,
"name": "PUSH",
"value": "4"
},
{
"begin": 354,
"end": 582,
"name": "DUP1"
},
{
"begin": 354,
"end": 582,
"name": "CALLDATASIZE"
},
{
"begin": 354,
"end": 582,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "40"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "22"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "22"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 582,
"name": "DUP2"
},
{
"begin": 354,
"end": 582,
"name": "ADD"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "DUP1"
},
{
"begin": 354,
"end": 582,
"name": "DUP1"
},
{
"begin": 354,
"end": 582,
"name": "CALLDATALOAD"
},
{
"begin": 354,
"end": 582,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 354,
"end": 582,
"name": "AND"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 582,
"name": "ADD"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "SWAP3"
},
{
"begin": 354,
"end": 582,
"name": "SWAP2"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "DUP1"
},
{
"begin": 354,
"end": 582,
"name": "CALLDATALOAD"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "PUSH",
"value": "20"
},
{
"begin": 354,
"end": 582,
"name": "ADD"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "SWAP3"
},
{
"begin": 354,
"end": 582,
"name": "SWAP2"
},
{
"begin": 354,
"end": 582,
"name": "SWAP1"
},
{
"begin": 354,
"end": 582,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "PUSH [tag]",
"value": "23"
},
{
"begin": 354,
"end": 582,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 354,
"end": 582,
"name": "tag",
"value": "21"
},
{
"begin": 354,
"end": 582,
"name": "JUMPDEST"
},
{
"begin": 354,
"end": 582,
"name": "STOP"
},
{
"begin": 588,
"end": 685,
"name": "tag",
"value": "10"
},
{
"begin": 588,
"end": 685,
"name": "JUMPDEST"
},
{
"begin": 652,
"end": 655,
"name": "DUP1"
},
{
"begin": 652,
"end": 664,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 652,
"end": 664,
"name": "AND"
},
{
"begin": 652,
"end": 678,
"name": "PUSH",
"value": "8FC"
},
{
"begin": 665,
"end": 677,
"name": "PUSH [tag]",
"value": "25"
},
{
"begin": 665,
"end": 675,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 665,
"end": 677,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 665,
"end": 677,
"name": "tag",
"value": "25"
},
{
"begin": 665,
"end": 677,
"name": "JUMPDEST"
},
{
"begin": 652,
"end": 678,
"name": "SWAP1"
},
{
"begin": 652,
"end": 678,
"name": "DUP2"
},
{
"begin": 652,
"end": 678,
"name": "ISZERO"
},
{
"begin": 652,
"end": 678,
"name": "MUL"
},
{
"begin": 652,
"end": 678,
"name": "SWAP1"
},
{
"begin": 652,
"end": 678,
"name": "PUSH",
"value": "40"
},
{
"begin": 652,
"end": 678,
"name": "MLOAD"
},
{
"begin": 652,
"end": 678,
"name": "PUSH",
"value": "0"
},
{
"begin": 652,
"end": 678,
"name": "PUSH",
"value": "40"
},
{
"begin": 652,
"end": 678,
"name": "MLOAD"
},
{
"begin": 652,
"end": 678,
"name": "DUP1"
},
{
"begin": 652,
"end": 678,
"name": "DUP4"
},
{
"begin": 652,
"end": 678,
"name": "SUB"
},
{
"begin": 652,
"end": 678,
"name": "DUP2"
},
{
"begin": 652,
"end": 678,
"name": "DUP6"
},
{
"begin": 652,
"end": 678,
"name": "DUP9"
},
{
"begin": 652,
"end": 678,
"name": "DUP9"
},
{
"begin": 652,
"end": 678,
"name": "CALL"
},
{
"begin": 652,
"end": 678,
"name": "SWAP4"
},
{
"begin": 652,
"end": 678,
"name": "POP"
},
{
"begin": 652,
"end": 678,
"name": "POP"
},
{
"begin": 652,
"end": 678,
"name": "POP"
},
{
"begin": 652,
"end": 678,
"name": "POP"
},
{
"begin": 652,
"end": 678,
"name": "ISZERO"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "26"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 45,
"end": 61,
"name": "RETURNDATASIZE"
},
{
"begin": 42,
"end": 43,
"name": "PUSH",
"value": "0"
},
{
"begin": 39,
"end": 40,
"name": "DUP1"
},
{
"begin": 24,
"end": 62,
"name": "RETURNDATACOPY"
},
{
"begin": 77,
"end": 93,
"name": "RETURNDATASIZE"
},
{
"begin": 74,
"end": 75,
"name": "PUSH",
"value": "0"
},
{
"begin": 67,
"end": 94,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "26"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 652,
"end": 678,
"name": "POP"
},
{
"begin": 588,
"end": 685,
"name": "POP"
},
{
"begin": 588,
"end": 685,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 157,
"end": 250,
"name": "tag",
"value": "13"
},
{
"begin": 157,
"end": 250,
"name": "JUMPDEST"
},
{
"begin": 199,
"end": 203,
"name": "PUSH",
"value": "0"
},
{
"begin": 230,
"end": 234,
"name": "ADDRESS"
},
{
"begin": 222,
"end": 243,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 222,
"end": 243,
"name": "AND"
},
{
"begin": 222,
"end": 243,
"name": "BALANCE"
},
{
"begin": 215,
"end": 243,
"name": "SWAP1"
},
{
"begin": 215,
"end": 243,
"name": "POP"
},
{
"begin": 157,
"end": 250,
"name": "SWAP1"
},
{
"begin": 157,
"end": 250,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 100,
"end": 146,
"name": "tag",
"value": "17"
},
{
"begin": 100,
"end": 146,
"name": "JUMPDEST"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "0"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "20"
},
{
"begin": 100,
"end": 146,
"name": "MSTORE"
},
{
"begin": 100,
"end": 146,
"name": "DUP1"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "0"
},
{
"begin": 100,
"end": 146,
"name": "MSTORE"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "40"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "0"
},
{
"begin": 100,
"end": 146,
"name": "KECCAK256"
},
{
"begin": 100,
"end": 146,
"name": "PUSH",
"value": "0"
},
{
"begin": 100,
"end": 146,
"name": "SWAP2"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "SWAP1"
},
{
"begin": 100,
"end": 146,
"name": "POP"
},
{
"begin": 100,
"end": 146,
"name": "SLOAD"
},
{
"begin": 100,
"end": 146,
"name": "DUP2"
},
{
"begin": 100,
"end": 146,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 256,
"end": 348,
"name": "tag",
"value": "19"
},
{
"begin": 256,
"end": 348,
"name": "JUMPDEST"
},
{
"begin": 332,
"end": 341,
"name": "CALLVALUE"
},
{
"begin": 302,
"end": 316,
"name": "PUSH",
"value": "0"
},
{
"begin": 302,
"end": 328,
"name": "DUP1"
},
{
"begin": 317,
"end": 327,
"name": "CALLER"
},
{
"begin": 302,
"end": 328,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 302,
"end": 328,
"name": "AND"
},
{
"begin": 302,
"end": 328,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 302,
"end": 328,
"name": "AND"
},
{
"begin": 302,
"end": 328,
"name": "DUP2"
},
{
"begin": 302,
"end": 328,
"name": "MSTORE"
},
{
"begin": 302,
"end": 328,
"name": "PUSH",
"value": "20"
},
{
"begin": 302,
"end": 328,
"name": "ADD"
},
{
"begin": 302,
"end": 328,
"name": "SWAP1"
},
{
"begin": 302,
"end": 328,
"name": "DUP2"
},
{
"begin": 302,
"end": 328,
"name": "MSTORE"
},
{
"begin": 302,
"end": 328,
"name": "PUSH",
"value": "20"
},
{
"begin": 302,
"end": 328,
"name": "ADD"
},
{
"begin": 302,
"end": 328,
"name": "PUSH",
"value": "0"
},
{
"begin": 302,
"end": 328,
"name": "KECCAK256"
},
{
"begin": 302,
"end": 328,
"name": "PUSH",
"value": "0"
},
{
"begin": 302,
"end": 341,
"name": "DUP3"
},
{
"begin": 302,
"end": 341,
"name": "DUP3"
},
{
"begin": 302,
"end": 341,
"name": "SLOAD"
},
{
"begin": 302,
"end": 341,
"name": "ADD"
},
{
"begin": 302,
"end": 341,
"name": "SWAP3"
},
{
"begin": 302,
"end": 341,
"name": "POP"
},
{
"begin": 302,
"end": 341,
"name": "POP"
},
{
"begin": 302,
"end": 341,
"name": "DUP2"
},
{
"begin": 302,
"end": 341,
"name": "SWAP1"
},
{
"begin": 302,
"end": 341,
"name": "SSTORE"
},
{
"begin": 302,
"end": 341,
"name": "POP"
},
{
"begin": 256,
"end": 348,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 354,
"end": 582,
"name": "tag",
"value": "23"
},
{
"begin": 354,
"end": 582,
"name": "JUMPDEST"
},
{
"begin": 467,
"end": 474,
"name": "DUP1"
},
{
"begin": 437,
"end": 451,
"name": "PUSH",
"value": "0"
},
{
"begin": 437,
"end": 463,
"name": "DUP1"
},
{
"begin": 452,
"end": 462,
"name": "CALLER"
},
{
"begin": 437,
"end": 463,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 437,
"end": 463,
"name": "AND"
},
{
"begin": 437,
"end": 463,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 437,
"end": 463,
"name": "AND"
},
{
"begin": 437,
"end": 463,
"name": "DUP2"
},
{
"begin": 437,
"end": 463,
"name": "MSTORE"
},
{
"begin": 437,
"end": 463,
"name": "PUSH",
"value": "20"
},
{
"begin": 437,
"end": 463,
"name": "ADD"
},
{
"begin": 437,
"end": 463,
"name": "SWAP1"
},
{
"begin": 437,
"end": 463,
"name": "DUP2"
},
{
"begin": 437,
"end": 463,
"name": "MSTORE"
},
{
"begin": 437,
"end": 463,
"name": "PUSH",
"value": "20"
},
{
"begin": 437,
"end": 463,
"name": "ADD"
},
{
"begin": 437,
"end": 463,
"name": "PUSH",
"value": "0"
},
{
"begin": 437,
"end": 463,
"name": "KECCAK256"
},
{
"begin": 437,
"end": 463,
"name": "SLOAD"
},
{
"begin": 437,
"end": 474,
"name": "LT"
},
{
"begin": 437,
"end": 474,
"name": "ISZERO"
},
{
"begin": 429,
"end": 495,
"name": "PUSH [tag]",
"value": "30"
},
{
"begin": 429,
"end": 495,
"name": "JUMPI"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "40"
},
{
"begin": 429,
"end": 495,
"name": "MLOAD"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "8C379A000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 429,
"end": 495,
"name": "DUP2"
},
{
"begin": 429,
"end": 495,
"name": "MSTORE"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "4"
},
{
"begin": 429,
"end": 495,
"name": "ADD"
},
{
"begin": 429,
"end": 495,
"name": "DUP1"
},
{
"begin": 429,
"end": 495,
"name": "DUP1"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "20"
},
{
"begin": 429,
"end": 495,
"name": "ADD"
},
{
"begin": 429,
"end": 495,
"name": "DUP3"
},
{
"begin": 429,
"end": 495,
"name": "DUP2"
},
{
"begin": 429,
"end": 495,
"name": "SUB"
},
{
"begin": 429,
"end": 495,
"name": "DUP3"
},
{
"begin": 429,
"end": 495,
"name": "MSTORE"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "10"
},
{
"begin": 429,
"end": 495,
"name": "DUP2"
},
{
"begin": 429,
"end": 495,
"name": "MSTORE"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "20"
},
{
"begin": 429,
"end": 495,
"name": "ADD"
},
{
"begin": 429,
"end": 495,
"name": "DUP1"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "6E6F7420656E6F7567682066756E647300000000000000000000000000000000"
},
{
"begin": 429,
"end": 495,
"name": "DUP2"
},
{
"begin": 429,
"end": 495,
"name": "MSTORE"
},
{
"begin": 429,
"end": 495,
"name": "POP"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "20"
},
{
"begin": 429,
"end": 495,
"name": "ADD"
},
{
"begin": 429,
"end": 495,
"name": "SWAP2"
},
{
"begin": 429,
"end": 495,
"name": "POP"
},
{
"begin": 429,
"end": 495,
"name": "POP"
},
{
"begin": 429,
"end": 495,
"name": "PUSH",
"value": "40"
},
{
"begin": 429,
"end": 495,
"name": "MLOAD"
},
{
"begin": 429,
"end": 495,
"name": "DUP1"
},
{
"begin": 429,
"end": 495,
"name": "SWAP2"
},
{
"begin": 429,
"end": 495,
"name": "SUB"
},
{
"begin": 429,
"end": 495,
"name": "SWAP1"
},
{
"begin": 429,
"end": 495,
"name": "REVERT"
},
{
"begin": 429,
"end": 495,
"name": "tag",
"value": "30"
},
{
"begin": 429,
"end": 495,
"name": "JUMPDEST"
},
{
"begin": 536,
"end": 543,
"name": "DUP1"
},
{
"begin": 506,
"end": 520,
"name": "PUSH",
"value": "0"
},
{
"begin": 506,
"end": 532,
"name": "DUP1"
},
{
"begin": 521,
"end": 531,
"name": "CALLER"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 532,
"name": "AND"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 506,
"end": 532,
"name": "AND"
},
{
"begin": 506,
"end": 532,
"name": "DUP2"
},
{
"begin": 506,
"end": 532,
"name": "MSTORE"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "20"
},
{
"begin": 506,
"end": 532,
"name": "ADD"
},
{
"begin": 506,
"end": 532,
"name": "SWAP1"
},
{
"begin": 506,
"end": 532,
"name": "DUP2"
},
{
"begin": 506,
"end": 532,
"name": "MSTORE"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "20"
},
{
"begin": 506,
"end": 532,
"name": "ADD"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "0"
},
{
"begin": 506,
"end": 532,
"name": "KECCAK256"
},
{
"begin": 506,
"end": 532,
"name": "PUSH",
"value": "0"
},
{
"begin": 506,
"end": 543,
"name": "DUP3"
},
{
"begin": 506,
"end": 543,
"name": "DUP3"
},
{
"begin": 506,
"end": 543,
"name": "SLOAD"
},
{
"begin": 506,
"end": 543,
"name": "SUB"
},
{
"begin": 506,
"end": 543,
"name": "SWAP3"
},
{
"begin": 506,
"end": 543,
"name": "POP"
},
{
"begin": 506,
"end": 543,
"name": "POP"
},
{
"begin": 506,
"end": 543,
"name": "DUP2"
},
{
"begin": 506,
"end": 543,
"name": "SWAP1"
},
{
"begin": 506,
"end": 543,
"name": "SSTORE"
},
{
"begin": 506,
"end": 543,
"name": "POP"
},
{
"begin": 554,
"end": 557,
"name": "DUP2"
},
{
"begin": 554,
"end": 566,
"name": "PUSH",
"value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
},
{
"begin": 554,
"end": 566,
"name": "AND"
},
{
"begin": 554,
"end": 575,
"name": "PUSH",
"value": "8FC"
},
{
"begin": 567,
"end": 574,
"name": "DUP3"
},
{
"begin": 554,
"end": 575,
"name": "SWAP1"
},
{
"begin": 554,
"end": 575,
"name": "DUP2"
},
{
"begin": 554,
"end": 575,
"name": "ISZERO"
},
{
"begin": 554,
"end": 575,
"name": "MUL"
},
{
"begin": 554,
"end": 575,
"name": "SWAP1"
},
{
"begin": 554,
"end": 575,
"name": "PUSH",
"value": "40"
},
{
"begin": 554,
"end": 575,
"name": "MLOAD"
},
{
"begin": 554,
"end": 575,
"name": "PUSH",
"value": "0"
},
{
"begin": 554,
"end": 575,
"name": "PUSH",
"value": "40"
},
{
"begin": 554,
"end": 575,
"name": "MLOAD"
},
{
"begin": 554,
"end": 575,
"name": "DUP1"
},
{
"begin": 554,
"end": 575,
"name": "DUP4"
},
{
"begin": 554,
"end": 575,
"name": "SUB"
},
{
"begin": 554,
"end": 575,
"name": "DUP2"
},
{
"begin": 554,
"end": 575,
"name": "DUP6"
},
{
"begin": 554,
"end": 575,
"name": "DUP9"
},
{
"begin": 554,
"end": 575,
"name": "DUP9"
},
{
"begin": 554,
"end": 575,
"name": "CALL"
},
{
"begin": 554,
"end": 575,
"name": "SWAP4"
},
{
"begin": 554,
"end": 575,
"name": "POP"
},
{
"begin": 554,
"end": 575,
"name": "POP"
},
{
"begin": 554,
"end": 575,
"name": "POP"
},
{
"begin": 554,
"end": 575,
"name": "POP"
},
{
"begin": 554,
"end": 575,
"name": "ISZERO"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "31"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 45,
"end": 61,
"name": "RETURNDATASIZE"
},
{
"begin": 42,
"end": 43,
"name": "PUSH",
"value": "0"
},
{
"begin": 39,
"end": 40,
"name": "DUP1"
},
{
"begin": 24,
"end": 62,
"name": "RETURNDATACOPY"
},
{
"begin": 77,
"end": 93,
"name": "RETURNDATASIZE"
},
{
"begin": 74,
"end": 75,
"name": "PUSH",
"value": "0"
},
{
"begin": 67,
"end": 94,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "31"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 554,
"end": 575,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "POP"
},
{
"begin": 354,
"end": 582,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"balanceRecived(address)": "ca5eb638",
"getBalance()": "12065fe0",
"sendMoney()": "cbedbf5a",
"withdrawAllMoney(address)": "0adec93c",
"withdrawMoney(address,uint256)": "f274c897"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balanceRecived\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"sendMoney\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"withdrawAllMoney\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdrawMoney\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{
View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

View raw

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

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