{ "id": "32e6e500fece21c33921b38a92233f0e", "_format": "hh-sol-build-info-1", "solcVersion": "0.6.12", "solcLongVersion": "0.6.12+commit.27d51765", "input": { "language": "Solidity", "sources": { "contracts/Migrations.sol": { "content": "// SPDX-License-Identifier: GPL\r\npragma solidity >=0.4.21 <0.7.0;\r\n\r\ncontract Migrations {\r\n address public owner;\r\n uint public last_completed_migration;\r\n\r\n modifier restricted() {\r\n if (msg.sender == owner) _;\r\n }\r\n\r\n constructor() public {\r\n owner = msg.sender;\r\n }\r\n\r\n function setCompleted(uint completed) public restricted {\r\n last_completed_migration = completed;\r\n }\r\n}" } }, "settings": { "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "": [ "ast" ], "*": [ "abi", "metadata", "devdoc", "userdoc", "storageLayout", "evm.legacyAssembly", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "evm.gasEstimates", "evm.assembly" ] } } } }, "output": { "contracts": { "contracts/Migrations.sol": { "Migrations": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "last_completed_migration", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "completed", "type": "uint256" } ], "name": "setCompleted", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "evm": { "assembly": " /* \"contracts/Migrations.sol\":69:395 contract Migrations {\r... */\n mstore(0x40, 0x80)\n /* \"contracts/Migrations.sol\":229:281 constructor() public {\r... */\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\ntag_1:\n pop\n /* \"contracts/Migrations.sol\":265:275 msg.sender */\n caller\n /* \"contracts/Migrations.sol\":257:262 owner */\n 0x00\n dup1\n /* \"contracts/Migrations.sol\":257:275 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/Migrations.sol\":69:395 contract Migrations {\r... */\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/Migrations.sol\":69:395 contract Migrations {\r... */\n mstore(0x40, 0x80)\n callvalue\n dup1\n iszero\n tag_1\n jumpi\n 0x00\n dup1\n revert\n tag_1:\n pop\n jumpi(tag_2, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0x445df0ac\n eq\n tag_3\n jumpi\n dup1\n 0x8da5cb5b\n eq\n tag_4\n jumpi\n dup1\n 0xfdacd576\n eq\n tag_5\n jumpi\n tag_2:\n 0x00\n dup1\n revert\n /* \"contracts/Migrations.sol\":119:155 uint public last_completed_migration */\n tag_3:\n tag_6\n tag_7\n jump\t// in\n tag_6:\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/Migrations.sol\":94:114 address public owner */\n tag_4:\n tag_8\n tag_9\n jump\t// in\n tag_8:\n mload(0x40)\n dup1\n dup3\n 0xffffffffffffffffffffffffffffffffffffffff\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/Migrations.sol\":287:392 function setCompleted(uint completed) public restricted {\r... */\n tag_5:\n tag_10\n 0x04\n dup1\n calldatasize\n sub\n 0x20\n dup2\n lt\n iszero\n tag_11\n jumpi\n 0x00\n dup1\n revert\n tag_11:\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_12\n jump\t// in\n tag_10:\n stop\n /* \"contracts/Migrations.sol\":119:155 uint public last_completed_migration */\n tag_7:\n sload(0x01)\n dup2\n jump\t// out\n /* \"contracts/Migrations.sol\":94:114 address public owner */\n tag_9:\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n dup2\n jump\t// out\n /* \"contracts/Migrations.sol\":287:392 function setCompleted(uint completed) public restricted {\r... */\n tag_12:\n /* \"contracts/Migrations.sol\":209:214 owner */\n 0x00\n dup1\n sload\n swap1\n 0x0100\n exp\n swap1\n div\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/Migrations.sol\":195:214 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n /* \"contracts/Migrations.sol\":195:205 msg.sender */\n caller\n /* \"contracts/Migrations.sol\":195:214 msg.sender == owner */\n 0xffffffffffffffffffffffffffffffffffffffff\n and\n eq\n /* \"contracts/Migrations.sol\":191:217 if (msg.sender == owner) _ */\n iszero\n tag_14\n jumpi\n /* \"contracts/Migrations.sol\":377:386 completed */\n dup1\n /* \"contracts/Migrations.sol\":350:374 last_completed_migration */\n 0x01\n /* \"contracts/Migrations.sol\":350:386 last_completed_migration = completed */\n dup2\n swap1\n sstore\n pop\n /* \"contracts/Migrations.sol\":191:217 if (msg.sender == owner) _ */\n tag_14:\n /* \"contracts/Migrations.sol\":287:392 function setCompleted(uint completed) public restricted {\r... */\n pop\n jump\t// out\n\n auxdata: 0xa2646970667358221220f0a57fd3a1288895ac45c5bc243380bd2fb4eddc9891b2073fae50819a0dc0bf64736f6c634300060c0033\n}\n", "bytecode": { "linkReferences": {}, "object": "608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610185806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610098575b600080fd5b61004e6100c6565b6040518082815260200191505060405180910390f35b61006c6100cc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c4600480360360208110156100ae57600080fd5b81019080803590602001909291905050506100f0565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561014c57806001819055505b5056fea2646970667358221220f0a57fd3a1288895ac45c5bc243380bd2fb4eddc9891b2073fae50819a0dc0bf64736f6c634300060c0033", "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 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 PUSH2 0x185 DUP1 PUSH2 0x60 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x98 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xC6 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 0x6C PUSH2 0xCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x14C JUMPI DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE 0xA5 PUSH32 0xD3A1288895AC45C5BC243380BD2FB4EDDC9891B2073FAE50819A0DC0BF64736F PUSH13 0x634300060C0033000000000000 ", "sourceMap": "69:326:0:-:0;;;229:52;;;;;;;;;;265:10;257:5;;:18;;;;;;;;;;;;;;;;;;69:326;;;;;;" }, "deployedBytecode": { "immutableReferences": {}, "linkReferences": {}, "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd57614610098575b600080fd5b61004e6100c6565b6040518082815260200191505060405180910390f35b61006c6100cc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c4600480360360208110156100ae57600080fd5b81019080803590602001909291905050506100f0565b005b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561014c57806001819055505b5056fea2646970667358221220f0a57fd3a1288895ac45c5bc243380bd2fb4eddc9891b2073fae50819a0dc0bf64736f6c634300060c0033", "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 0x445DF0AC EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xFDACD576 EQ PUSH2 0x98 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0xC6 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 0x6C PUSH2 0xCC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC4 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0xAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 DUP1 DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP1 SWAP3 SWAP2 SWAP1 POP POP POP PUSH2 0xF0 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO PUSH2 0x14C JUMPI DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CREATE 0xA5 PUSH32 0xD3A1288895AC45C5BC243380BD2FB4EDDC9891B2073FAE50819A0DC0BF64736F PUSH13 0x634300060C0033000000000000 ", "sourceMap": "69:326:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;119:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;94:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;287:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;119:36;;;;:::o;94:20::-;;;;;;;;;;;;:::o;287:105::-;209:5;;;;;;;;;;195:19;;:10;:19;;;191:26;;;377:9:::1;350:24;:36;;;;191:26:::0;287:105;:::o" }, "gasEstimates": { "creation": { "codeDepositCost": "77800", "executionCost": "20995", "totalCost": "98795" }, "external": { "last_completed_migration()": "983", "owner()": "1044", "setCompleted(uint256)": "21134" } }, "legacyAssembly": { ".code": [ { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 69, "end": 395, "name": "MSTORE", "source": 0 }, { "begin": 229, "end": 281, "name": "CALLVALUE", "source": 0 }, { "begin": 229, "end": 281, "name": "DUP1", "source": 0 }, { "begin": 229, "end": 281, "name": "ISZERO", "source": 0 }, { "begin": 229, "end": 281, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 229, "end": 281, "name": "JUMPI", "source": 0 }, { "begin": 229, "end": 281, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 229, "end": 281, "name": "DUP1", "source": 0 }, { "begin": 229, "end": 281, "name": "REVERT", "source": 0 }, { "begin": 229, "end": 281, "name": "tag", "source": 0, "value": "1" }, { "begin": 229, "end": 281, "name": "JUMPDEST", "source": 0 }, { "begin": 229, "end": 281, "name": "POP", "source": 0 }, { "begin": 265, "end": 275, "name": "CALLER", "source": 0 }, { "begin": 257, "end": 262, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 257, "end": 262, "name": "DUP1", "source": 0 }, { "begin": 257, "end": 275, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 257, "end": 275, "name": "EXP", "source": 0 }, { "begin": 257, "end": 275, "name": "DUP2", "source": 0 }, { "begin": 257, "end": 275, "name": "SLOAD", "source": 0 }, { "begin": 257, "end": 275, "name": "DUP2", "source": 0 }, { "begin": 257, "end": 275, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 257, "end": 275, "name": "MUL", "source": 0 }, { "begin": 257, "end": 275, "name": "NOT", "source": 0 }, { "begin": 257, "end": 275, "name": "AND", "source": 0 }, { "begin": 257, "end": 275, "name": "SWAP1", "source": 0 }, { "begin": 257, "end": 275, "name": "DUP4", "source": 0 }, { "begin": 257, "end": 275, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 257, "end": 275, "name": "AND", "source": 0 }, { "begin": 257, "end": 275, "name": "MUL", "source": 0 }, { "begin": 257, "end": 275, "name": "OR", "source": 0 }, { "begin": 257, "end": 275, "name": "SWAP1", "source": 0 }, { "begin": 257, "end": 275, "name": "SSTORE", "source": 0 }, { "begin": 257, "end": 275, "name": "POP", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH #[$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH [$]", "source": 0, "value": "0000000000000000000000000000000000000000000000000000000000000000" }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 69, "end": 395, "name": "CODECOPY", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 69, "end": 395, "name": "RETURN", "source": 0 } ], ".data": { "0": { ".auxdata": "a2646970667358221220f0a57fd3a1288895ac45c5bc243380bd2fb4eddc9891b2073fae50819a0dc0bf64736f6c634300060c0033", ".code": [ { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "80" }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 69, "end": 395, "name": "MSTORE", "source": 0 }, { "begin": 69, "end": 395, "name": "CALLVALUE", "source": 0 }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "ISZERO", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH [tag]", "source": 0, "value": "1" }, { "begin": 69, "end": 395, "name": "JUMPI", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "REVERT", "source": 0 }, { "begin": 69, "end": 395, "name": "tag", "source": 0, "value": "1" }, { "begin": 69, "end": 395, "name": "JUMPDEST", "source": 0 }, { "begin": 69, "end": 395, "name": "POP", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "4" }, { "begin": 69, "end": 395, "name": "CALLDATASIZE", "source": 0 }, { "begin": 69, "end": 395, "name": "LT", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH [tag]", "source": 0, "value": "2" }, { "begin": 69, "end": 395, "name": "JUMPI", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 69, "end": 395, "name": "CALLDATALOAD", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "E0" }, { "begin": 69, "end": 395, "name": "SHR", "source": 0 }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "445DF0AC" }, { "begin": 69, "end": 395, "name": "EQ", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH [tag]", "source": 0, "value": "3" }, { "begin": 69, "end": 395, "name": "JUMPI", "source": 0 }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "8DA5CB5B" }, { "begin": 69, "end": 395, "name": "EQ", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH [tag]", "source": 0, "value": "4" }, { "begin": 69, "end": 395, "name": "JUMPI", "source": 0 }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "FDACD576" }, { "begin": 69, "end": 395, "name": "EQ", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH [tag]", "source": 0, "value": "5" }, { "begin": 69, "end": 395, "name": "JUMPI", "source": 0 }, { "begin": 69, "end": 395, "name": "tag", "source": 0, "value": "2" }, { "begin": 69, "end": 395, "name": "JUMPDEST", "source": 0 }, { "begin": 69, "end": 395, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 69, "end": 395, "name": "DUP1", "source": 0 }, { "begin": 69, "end": 395, "name": "REVERT", "source": 0 }, { "begin": 119, "end": 155, "name": "tag", "source": 0, "value": "3" }, { "begin": 119, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 119, "end": 155, "name": "PUSH [tag]", "source": 0, "value": "6" }, { "begin": 119, "end": 155, "name": "PUSH [tag]", "source": 0, "value": "7" }, { "begin": 119, "end": 155, "name": "JUMP", "source": 0, "value": "[in]" }, { "begin": 119, "end": 155, "name": "tag", "source": 0, "value": "6" }, { "begin": 119, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 119, "end": 155, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 119, "end": 155, "name": "MLOAD", "source": 0 }, { "begin": 119, "end": 155, "name": "DUP1", "source": 0 }, { "begin": 119, "end": 155, "name": "DUP3", "source": 0 }, { "begin": 119, "end": 155, "name": "DUP2", "source": 0 }, { "begin": 119, "end": 155, "name": "MSTORE", "source": 0 }, { "begin": 119, "end": 155, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 119, "end": 155, "name": "ADD", "source": 0 }, { "begin": 119, "end": 155, "name": "SWAP2", "source": 0 }, { "begin": 119, "end": 155, "name": "POP", "source": 0 }, { "begin": 119, "end": 155, "name": "POP", "source": 0 }, { "begin": 119, "end": 155, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 119, "end": 155, "name": "MLOAD", "source": 0 }, { "begin": 119, "end": 155, "name": "DUP1", "source": 0 }, { "begin": 119, "end": 155, "name": "SWAP2", "source": 0 }, { "begin": 119, "end": 155, "name": "SUB", "source": 0 }, { "begin": 119, "end": 155, "name": "SWAP1", "source": 0 }, { "begin": 119, "end": 155, "name": "RETURN", "source": 0 }, { "begin": 94, "end": 114, "name": "tag", "source": 0, "value": "4" }, { "begin": 94, "end": 114, "name": "JUMPDEST", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH [tag]", "source": 0, "value": "8" }, { "begin": 94, "end": 114, "name": "PUSH [tag]", "source": 0, "value": "9" }, { "begin": 94, "end": 114, "name": "JUMP", "source": 0, "value": "[in]" }, { "begin": 94, "end": 114, "name": "tag", "source": 0, "value": "8" }, { "begin": 94, "end": 114, "name": "JUMPDEST", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 94, "end": 114, "name": "MLOAD", "source": 0 }, { "begin": 94, "end": 114, "name": "DUP1", "source": 0 }, { "begin": 94, "end": 114, "name": "DUP3", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 94, "end": 114, "name": "AND", "source": 0 }, { "begin": 94, "end": 114, "name": "DUP2", "source": 0 }, { "begin": 94, "end": 114, "name": "MSTORE", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 94, "end": 114, "name": "ADD", "source": 0 }, { "begin": 94, "end": 114, "name": "SWAP2", "source": 0 }, { "begin": 94, "end": 114, "name": "POP", "source": 0 }, { "begin": 94, "end": 114, "name": "POP", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "40" }, { "begin": 94, "end": 114, "name": "MLOAD", "source": 0 }, { "begin": 94, "end": 114, "name": "DUP1", "source": 0 }, { "begin": 94, "end": 114, "name": "SWAP2", "source": 0 }, { "begin": 94, "end": 114, "name": "SUB", "source": 0 }, { "begin": 94, "end": 114, "name": "SWAP1", "source": 0 }, { "begin": 94, "end": 114, "name": "RETURN", "source": 0 }, { "begin": 287, "end": 392, "name": "tag", "source": 0, "value": "5" }, { "begin": 287, "end": 392, "name": "JUMPDEST", "source": 0 }, { "begin": 287, "end": 392, "name": "PUSH [tag]", "source": 0, "value": "10" }, { "begin": 287, "end": 392, "name": "PUSH", "source": 0, "value": "4" }, { "begin": 287, "end": 392, "name": "DUP1", "source": 0 }, { "begin": 287, "end": 392, "name": "CALLDATASIZE", "source": 0 }, { "begin": 287, "end": 392, "name": "SUB", "source": 0 }, { "begin": 287, "end": 392, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 287, "end": 392, "name": "DUP2", "source": 0 }, { "begin": 287, "end": 392, "name": "LT", "source": 0 }, { "begin": 287, "end": 392, "name": "ISZERO", "source": 0 }, { "begin": 287, "end": 392, "name": "PUSH [tag]", "source": 0, "value": "11" }, { "begin": 287, "end": 392, "name": "JUMPI", "source": 0 }, { "begin": 287, "end": 392, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 287, "end": 392, "name": "DUP1", "source": 0 }, { "begin": 287, "end": 392, "name": "REVERT", "source": 0 }, { "begin": 287, "end": 392, "name": "tag", "source": 0, "value": "11" }, { "begin": 287, "end": 392, "name": "JUMPDEST", "source": 0 }, { "begin": 287, "end": 392, "name": "DUP2", "source": 0 }, { "begin": 287, "end": 392, "name": "ADD", "source": 0 }, { "begin": 287, "end": 392, "name": "SWAP1", "source": 0 }, { "begin": 287, "end": 392, "name": "DUP1", "source": 0 }, { "begin": 287, "end": 392, "name": "DUP1", "source": 0 }, { "begin": 287, "end": 392, "name": "CALLDATALOAD", "source": 0 }, { "begin": 287, "end": 392, "name": "SWAP1", "source": 0 }, { "begin": 287, "end": 392, "name": "PUSH", "source": 0, "value": "20" }, { "begin": 287, "end": 392, "name": "ADD", "source": 0 }, { "begin": 287, "end": 392, "name": "SWAP1", "source": 0 }, { "begin": 287, "end": 392, "name": "SWAP3", "source": 0 }, { "begin": 287, "end": 392, "name": "SWAP2", "source": 0 }, { "begin": 287, "end": 392, "name": "SWAP1", "source": 0 }, { "begin": 287, "end": 392, "name": "POP", "source": 0 }, { "begin": 287, "end": 392, "name": "POP", "source": 0 }, { "begin": 287, "end": 392, "name": "POP", "source": 0 }, { "begin": 287, "end": 392, "name": "PUSH [tag]", "source": 0, "value": "12" }, { "begin": 287, "end": 392, "name": "JUMP", "source": 0, "value": "[in]" }, { "begin": 287, "end": 392, "name": "tag", "source": 0, "value": "10" }, { "begin": 287, "end": 392, "name": "JUMPDEST", "source": 0 }, { "begin": 287, "end": 392, "name": "STOP", "source": 0 }, { "begin": 119, "end": 155, "name": "tag", "source": 0, "value": "7" }, { "begin": 119, "end": 155, "name": "JUMPDEST", "source": 0 }, { "begin": 119, "end": 155, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 119, "end": 155, "name": "SLOAD", "source": 0 }, { "begin": 119, "end": 155, "name": "DUP2", "source": 0 }, { "begin": 119, "end": 155, "name": "JUMP", "source": 0, "value": "[out]" }, { "begin": 94, "end": 114, "name": "tag", "source": 0, "value": "9" }, { "begin": 94, "end": 114, "name": "JUMPDEST", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 94, "end": 114, "name": "DUP1", "source": 0 }, { "begin": 94, "end": 114, "name": "SLOAD", "source": 0 }, { "begin": 94, "end": 114, "name": "SWAP1", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 94, "end": 114, "name": "EXP", "source": 0 }, { "begin": 94, "end": 114, "name": "SWAP1", "source": 0 }, { "begin": 94, "end": 114, "name": "DIV", "source": 0 }, { "begin": 94, "end": 114, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 94, "end": 114, "name": "AND", "source": 0 }, { "begin": 94, "end": 114, "name": "DUP2", "source": 0 }, { "begin": 94, "end": 114, "name": "JUMP", "source": 0, "value": "[out]" }, { "begin": 287, "end": 392, "name": "tag", "source": 0, "value": "12" }, { "begin": 287, "end": 392, "name": "JUMPDEST", "source": 0 }, { "begin": 209, "end": 214, "name": "PUSH", "source": 0, "value": "0" }, { "begin": 209, "end": 214, "name": "DUP1", "source": 0 }, { "begin": 209, "end": 214, "name": "SLOAD", "source": 0 }, { "begin": 209, "end": 214, "name": "SWAP1", "source": 0 }, { "begin": 209, "end": 214, "name": "PUSH", "source": 0, "value": "100" }, { "begin": 209, "end": 214, "name": "EXP", "source": 0 }, { "begin": 209, "end": 214, "name": "SWAP1", "source": 0 }, { "begin": 209, "end": 214, "name": "DIV", "source": 0 }, { "begin": 209, "end": 214, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 209, "end": 214, "name": "AND", "source": 0 }, { "begin": 195, "end": 214, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 195, "end": 214, "name": "AND", "source": 0 }, { "begin": 195, "end": 205, "name": "CALLER", "source": 0 }, { "begin": 195, "end": 214, "name": "PUSH", "source": 0, "value": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" }, { "begin": 195, "end": 214, "name": "AND", "source": 0 }, { "begin": 195, "end": 214, "name": "EQ", "source": 0 }, { "begin": 191, "end": 217, "name": "ISZERO", "source": 0 }, { "begin": 191, "end": 217, "name": "PUSH [tag]", "source": 0, "value": "14" }, { "begin": 191, "end": 217, "name": "JUMPI", "source": 0 }, { "begin": 377, "end": 386, "name": "DUP1", "source": 0 }, { "begin": 350, "end": 374, "name": "PUSH", "source": 0, "value": "1" }, { "begin": 350, "end": 386, "name": "DUP2", "source": 0 }, { "begin": 350, "end": 386, "name": "SWAP1", "source": 0 }, { "begin": 350, "end": 386, "name": "SSTORE", "source": 0 }, { "begin": 350, "end": 386, "name": "POP", "source": 0 }, { "begin": 191, "end": 217, "name": "tag", "source": 0, "value": "14" }, { "begin": 191, "end": 217, "name": "JUMPDEST", "source": 0 }, { "begin": 287, "end": 392, "name": "POP", "source": 0 }, { "begin": 287, "end": 392, "name": "JUMP", "source": 0, "value": "[out]" } ] } } }, "methodIdentifiers": { "last_completed_migration()": "445df0ac", "owner()": "8da5cb5b", "setCompleted(uint256)": "fdacd576" } }, "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Migrations.sol\":{\"keccak256\":\"0x39cfa617e7b1cfbdb64eb08904310179c8b7b71f2954c1bce43493c6631c0e8e\",\"license\":\"GPL\",\"urls\":[\"bzz-raw://67de3e8a28e4e9f13bbe07db2b397409ad07651b69dd8c7ff2f68fb76be59dd1\",\"dweb:/ipfs/QmXV1UswV3YGvERM3iJW7myKAEEf2JMdHSZCAggj2KNbnA\"]}},\"version\":1}", "storageLayout": { "storage": [ { "astId": 3, "contract": "contracts/Migrations.sol:Migrations", "label": "owner", "offset": 0, "slot": "0", "type": "t_address" }, { "astId": 5, "contract": "contracts/Migrations.sol:Migrations", "label": "last_completed_migration", "offset": 0, "slot": "1", "type": "t_uint256" } ], "types": { "t_address": { "encoding": "inplace", "label": "address", "numberOfBytes": "20" }, "t_uint256": { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32" } } }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } } } }, "sources": { "contracts/Migrations.sol": { "ast": { "absolutePath": "contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 36 ] }, "id": 37, "license": "GPL", "nodeType": "SourceUnit", "nodes": [ { "id": 1, "literals": [ "solidity", ">=", "0.4", ".21", "<", "0.7", ".0" ], "nodeType": "PragmaDirective", "src": "33:32:0" }, { "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, "id": 36, "linearizedBaseContracts": [ 36 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, "functionSelector": "8da5cb5b", "id": 3, "mutability": "mutable", "name": "owner", "nodeType": "VariableDeclaration", "overrides": null, "scope": 36, "src": "94:20:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 2, "name": "address", "nodeType": "ElementaryTypeName", "src": "94:7:0", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "value": null, "visibility": "public" }, { "constant": false, "functionSelector": "445df0ac", "id": 5, "mutability": "mutable", "name": "last_completed_migration", "nodeType": "VariableDeclaration", "overrides": null, "scope": 36, "src": "119:36:0", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4, "name": "uint", "nodeType": "ElementaryTypeName", "src": "119:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "public" }, { "body": { "id": 13, "nodeType": "Block", "src": "184:39:0", "statements": [ { "condition": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 10, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 7, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "195:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 8, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "195:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "argumentTypes": null, "id": 9, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "209:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "195:19:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, "id": 12, "nodeType": "IfStatement", "src": "191:26:0", "trueBody": { "id": 11, "nodeType": "PlaceholderStatement", "src": "216:1:0" } } ] }, "documentation": null, "id": 14, "name": "restricted", "nodeType": "ModifierDefinition", "overrides": null, "parameters": { "id": 6, "nodeType": "ParameterList", "parameters": [], "src": "181:2:0" }, "src": "162:61:0", "virtual": false, "visibility": "internal" }, { "body": { "id": 22, "nodeType": "Block", "src": "250:31:0", "statements": [ { "expression": { "argumentTypes": null, "id": 20, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 17, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 3, "src": "257:5:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, "id": 18, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "265:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 19, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "265:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "src": "257:18:0", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 21, "nodeType": "ExpressionStatement", "src": "257:18:0" } ] }, "documentation": null, "id": 23, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 15, "nodeType": "ParameterList", "parameters": [], "src": "240:2:0" }, "returnParameters": { "id": 16, "nodeType": "ParameterList", "parameters": [], "src": "250:0:0" }, "scope": 36, "src": "229:52:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { "id": 34, "nodeType": "Block", "src": "343:49:0", "statements": [ { "expression": { "argumentTypes": null, "id": 32, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "id": 30, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 5, "src": "350:24:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "id": 31, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25, "src": "377:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "350:36:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 33, "nodeType": "ExpressionStatement", "src": "350:36:0" } ] }, "documentation": null, "functionSelector": "fdacd576", "id": 35, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, "id": 28, "modifierName": { "argumentTypes": null, "id": 27, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 14, "src": "332:10:0", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", "src": "332:10:0" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 26, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25, "mutability": "mutable", "name": "completed", "nodeType": "VariableDeclaration", "overrides": null, "scope": 35, "src": "309:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 24, "name": "uint", "nodeType": "ElementaryTypeName", "src": "309:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], "src": "308:16:0" }, "returnParameters": { "id": 29, "nodeType": "ParameterList", "parameters": [], "src": "343:0:0" }, "scope": 36, "src": "287:105:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" } ], "scope": 37, "src": "69:326:0" } ], "src": "33:362:0" }, "id": 0 } } } }