Skip to content

Instantly share code, notes, and snippets.

@maurelian
Created February 26, 2018 16:48
Show Gist options
  • Save maurelian/21853d3c6556d7f94f277058dac7b01d to your computer and use it in GitHub Desktop.
Save maurelian/21853d3c6556d7f94f277058dac7b01d to your computer and use it in GitHub Desktop.
======= contracts/Migrations.sol:Migrations =======
EVM assembly:
/* "contracts/Migrations.sol":26:514 contract Migrations {... */
mstore(0x40, 0x60)
/* "contracts/Migrations.sol":178:236 function Migrations() public {... */
jumpi(tag_1, iszero(callvalue))
0x0
dup1
revert
tag_1:
/* "contracts/Migrations.sol":221:231 msg.sender */
caller
/* "contracts/Migrations.sol":213:218 owner */
0x0
dup1
/* "contracts/Migrations.sol":213:231 owner = msg.sender */
0x100
exp
dup2
sload
dup2
0xffffffffffffffffffffffffffffffffffffffff
mul
not
and
swap1
dup4
0xffffffffffffffffffffffffffffffffffffffff
and
mul
or
swap1
sstore
pop
/* "contracts/Migrations.sol":26:514 contract Migrations {... */
dataSize(sub_0)
dup1
dataOffset(sub_0)
0x0
codecopy
0x0
return
stop
sub_0: assembly {
/* "contracts/Migrations.sol":26:514 contract Migrations {... */
mstore(0x40, 0x60)
jumpi(tag_1, lt(calldatasize, 0x4))
calldataload(0x0)
0x100000000000000000000000000000000000000000000000000000000
swap1
div
0xffffffff
and
dup1
0x900f010
eq
tag_2
jumpi
dup1
0x445df0ac
eq
tag_3
jumpi
dup1
0x8da5cb5b
eq
tag_4
jumpi
dup1
0xfdacd576
eq
tag_5
jumpi
tag_1:
0x0
dup1
revert
/* "contracts/Migrations.sol":347:512 function upgrade(address new_address) public restricted {... */
tag_2:
jumpi(tag_6, iszero(callvalue))
0x0
dup1
revert
tag_6:
tag_7
0x4
dup1
dup1
calldataload
0xffffffffffffffffffffffffffffffffffffffff
and
swap1
0x20
add
swap1
swap2
swap1
pop
pop
jump(tag_8)
tag_7:
stop
/* "contracts/Migrations.sol":74:110 uint public last_completed_migration */
tag_3:
jumpi(tag_9, iszero(callvalue))
0x0
dup1
revert
tag_9:
tag_10
jump(tag_11)
tag_10:
mload(0x40)
dup1
dup3
dup2
mstore
0x20
add
swap2
pop
pop
mload(0x40)
dup1
swap2
sub
swap1
return
/* "contracts/Migrations.sol":50:70 address public owner */
tag_4:
jumpi(tag_12, iszero(callvalue))
0x0
dup1
revert
tag_12:
tag_13
jump(tag_14)
tag_13:
mload(0x40)
dup1
dup3
0xffffffffffffffffffffffffffffffffffffffff
and
0xffffffffffffffffffffffffffffffffffffffff
and
dup2
mstore
0x20
add
swap2
pop
pop
mload(0x40)
dup1
swap2
sub
swap1
return
/* "contracts/Migrations.sol":240:343 function setCompleted(uint completed) public restricted {... */
tag_5:
jumpi(tag_15, iszero(callvalue))
0x0
dup1
revert
tag_15:
tag_16
0x4
dup1
dup1
calldataload
swap1
0x20
add
swap1
swap2
swap1
pop
pop
jump(tag_17)
tag_16:
stop
/* "contracts/Migrations.sol":347:512 function upgrade(address new_address) public restricted {... */
tag_8:
/* "contracts/Migrations.sol":409:428 Migrations upgraded */
0x0
/* "contracts/Migrations.sol":161:166 owner */
dup1
0x0
swap1
sload
swap1
0x100
exp
swap1
div
0xffffffffffffffffffffffffffffffffffffffff
and
/* "contracts/Migrations.sol":147:166 msg.sender == owner */
0xffffffffffffffffffffffffffffffffffffffff
and
/* "contracts/Migrations.sol":147:157 msg.sender */
caller
/* "contracts/Migrations.sol":147:166 msg.sender == owner */
0xffffffffffffffffffffffffffffffffffffffff
and
eq
/* "contracts/Migrations.sol":143:169 if (msg.sender == owner) _ */
iszero
tag_19
jumpi
/* "contracts/Migrations.sol":442:453 new_address */
dup2
/* "contracts/Migrations.sol":409:454 Migrations upgraded = Migrations(new_address) */
swap1
pop
/* "contracts/Migrations.sol":460:468 upgraded */
dup1
/* "contracts/Migrations.sol":460:481 upgraded.setCompleted */
0xffffffffffffffffffffffffffffffffffffffff
and
0xfdacd576
/* "contracts/Migrations.sol":482:506 last_completed_migration */
sload(0x1)
/* "contracts/Migrations.sol":460:507 upgraded.setCompleted(last_completed_migration) */
mload(0x40)
dup3
0xffffffff
and
0x100000000000000000000000000000000000000000000000000000000
mul
dup2
mstore
0x4
add
dup1
dup3
dup2
mstore
0x20
add
swap2
pop
pop
0x0
mload(0x40)
dup1
dup4
sub
dup2
0x0
dup8
dup1
extcodesize
iszero
iszero
tag_21
jumpi
0x0
dup1
revert
tag_21:
sub(gas, 0x2c6)
call
iszero
iszero
tag_22
jumpi
0x0
dup1
revert
tag_22:
pop
pop
pop
/* "contracts/Migrations.sol":143:169 if (msg.sender == owner) _ */
tag_19:
/* "contracts/Migrations.sol":347:512 function upgrade(address new_address) public restricted {... */
pop
pop
jump // out
/* "contracts/Migrations.sol":74:110 uint public last_completed_migration */
tag_11:
sload(0x1)
dup2
jump // out
/* "contracts/Migrations.sol":50:70 address public owner */
tag_14:
0x0
dup1
swap1
sload
swap1
0x100
exp
swap1
div
0xffffffffffffffffffffffffffffffffffffffff
and
dup2
jump // out
/* "contracts/Migrations.sol":240:343 function setCompleted(uint completed) public restricted {... */
tag_17:
/* "contracts/Migrations.sol":161:166 owner */
0x0
dup1
swap1
sload
swap1
0x100
exp
swap1
div
0xffffffffffffffffffffffffffffffffffffffff
and
/* "contracts/Migrations.sol":147:166 msg.sender == owner */
0xffffffffffffffffffffffffffffffffffffffff
and
/* "contracts/Migrations.sol":147:157 msg.sender */
caller
/* "contracts/Migrations.sol":147:166 msg.sender == owner */
0xffffffffffffffffffffffffffffffffffffffff
and
eq
/* "contracts/Migrations.sol":143:169 if (msg.sender == owner) _ */
iszero
tag_24
jumpi
/* "contracts/Migrations.sol":329:338 completed */
dup1
/* "contracts/Migrations.sol":302:326 last_completed_migration */
0x1
/* "contracts/Migrations.sol":302:338 last_completed_migration = completed */
dup2
swap1
sstore
pop
/* "contracts/Migrations.sol":143:169 if (msg.sender == owner) _ */
tag_24:
/* "contracts/Migrations.sol":240:343 function setCompleted(uint completed) public restricted {... */
pop
jump // out
auxdata: 0xa165627a7a723058205d8da1243000135479cad5ee7e440913b33555e5cb8246e4d7dbf2fc8aee66f50029
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment