Skip to content

Instantly share code, notes, and snippets.

@eseidel
Created May 30, 2021 21:52
Show Gist options
  • Save eseidel/1bf31c1595c15245837b7d82df8cdae4 to your computer and use it in GitHub Desktop.
Save eseidel/1bf31c1595c15245837b7d82df8cdae4 to your computer and use it in GitHub Desktop.
rusty_ethereum bugs
Got contract, executing!
60: PUSH1 (0x80)
60: PUSH1 (0x40)
52: MSTORE
34: CALLVALUE
CALLVALUE: -> 0x00
80: DUP1
DUP1: -> 0x00
15: ISZERO
ISZERO -> true
60: PUSH1 (0x0F)
57: JUMPI
JUMPI (condition: 0x01 is_truthy: true)
Jumped from 0B to 0F
5B: JUMPDEST
50: POP
60: PUSH1 (0x04)
36: CALLDATASIZE
CALLDATASIZE: -> 32
10: LT
LT: 0x20 < 0x04 -> false
60: PUSH1 (0x46)
57: JUMPI
JUMPI (condition: 0x00 is_truthy: false)
60: PUSH1 (0x00)
35: CALLDATALOAD
CALLDATALOAD: 0x00 -> 0x371303C000000000000000000000000000000000000000000000000000000000
60: PUSH1 (0xE0)
1C: SHR
73206269467518548428415557547866456064 >> 96
SHR: 0x371303C000000000000000000000000000000000000000000000000000000000 >> 0xE0 -> 0x371303C0
80: DUP1
DUP1: -> 0x371303C0
63: PUSH4 (0x6661ABD)
14: EQ
EQ: 0x6661ABD == 0x371303C0 -> false
60: PUSH1 (0x4B)
57: JUMPI
JUMPI (condition: 0x00 is_truthy: false)
80: DUP1
DUP1: -> 0x371303C0
63: PUSH4 (0x371303C0)
14: EQ
EQ: 0x371303C0 == 0x371303C0 -> true
60: PUSH1 (0x65)
57: JUMPI
JUMPI (condition: 0x01 is_truthy: true)
Jumped from 32 to 65
5B: JUMPDEST
60: PUSH1 (0x6B)
60: PUSH1 (0x7A)
56: JUMP
Jumped from 6B to 7A
5B: JUMPDEST
60: PUSH1 (0x01)
60: PUSH1 (0x00)
80: DUP1
DUP1: -> 0x00
82: DUP3
DUP3: -> 0x01
82: DUP3
DUP3: -> 0x00
54: SLOAD
SLOAD: 0x00 -> 0x00
60: PUSH1 (0x8A)
91: SWAP2
SWAP2 (old: 0x8A new: 0x01)
90: SWAP1
SWAP1 (old: 0x01 new: 0x00)
60: PUSH1 (0xA1)
56: JUMP
Jumped from 8A to A1
5B: JUMPDEST
60: PUSH1 (0x00)
82: DUP3
DUP3: -> 0x01
19: NOT
NOT: !0x01 -> 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE
82: DUP3
DUP3: -> 0x00
11: GT
GT: 0x00 > 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE -> false
15: ISZERO
ISZERO -> true
60: PUSH1 (0xB1)
57: JUMPI
JUMPI (condition: 0x01 is_truthy: true)
Jumped from AC to B1
5B: JUMPDEST
50: POP
01: ADD
ADD: 0x00 + 0x00 -> 0x00
90: SWAP1
SWAP1 (old: 0x00 new: 0x01)
56: JUMP
Jumped from B6 to 01
80: DUP1
DUP1: -> 0x00
60: PUSH1 (0x40)
52: MSTORE
34: CALLVALUE
CALLVALUE: -> 0x00
80: DUP1
DUP1: -> 0x00
15: ISZERO
ISZERO -> true
60: PUSH1 (0x0F)
57: JUMPI
JUMPI (condition: 0x01 is_truthy: true)
Jumped from 0B to 0F
5B: JUMPDEST
50: POP
60: PUSH1 (0x04)
36: CALLDATASIZE
CALLDATASIZE: -> 32
10: LT
LT: 0x20 < 0x04 -> false
60: PUSH1 (0x46)
57: JUMPI
JUMPI (condition: 0x00 is_truthy: false)
60: PUSH1 (0x00)
35: CALLDATALOAD
CALLDATALOAD: 0x00 -> 0x371303C000000000000000000000000000000000000000000000000000000000
60: PUSH1 (0xE0)
1C: SHR
73206269467518548428415557547866456064 >> 96
SHR: 0x371303C000000000000000000000000000000000000000000000000000000000 >> 0xE0 -> 0x371303C0
80: DUP1
DUP1: -> 0x371303C0
63: PUSH4 (0x6661ABD)
14: EQ
EQ: 0x6661ABD == 0x371303C0 -> false
60: PUSH1 (0x4B)
57: JUMPI
JUMPI (condition: 0x00 is_truthy: false)
80: DUP1
DUP1: -> 0x371303C0
63: PUSH4 (0x371303C0)
14: EQ
EQ: 0x371303C0 == 0x371303C0 -> true
60: PUSH1 (0x65)
57: JUMPI
JUMPI (condition: 0x01 is_truthy: true)
Jumped from 32 to 65
5B: JUMPDEST
60: PUSH1 (0x6B)
60: PUSH1 (0x7A)
56: JUMP
Jumped from 6B to 7A
5B: JUMPDEST
60: PUSH1 (0x01)
60: PUSH1 (0x00)
80: DUP1
DUP1: -> 0x00
82: DUP3
DUP3: -> 0x01
82: DUP3
DUP3: -> 0x00
54: SLOAD
SLOAD: 0x00 -> 0x00
60: PUSH1 (0x8A)
91: SWAP2
SWAP2 (old: 0x8A new: 0x01)
thread 'main' panicked at 'explicit panic', src/vm.rs:382:25
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
macbook-pro [75280:rusty_ethereum]% [~/Documents/GitHub/rusty_ethereum]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment