mirror of
https://github.com/crytic/slither.git
synced 2026-10-12 10:59:58 +00:00
- Replaces sys.exit with SlitherError - Replaces prints with self.info - Moves slither.evm to slither.analyses.evm - Replaces class SourceToEVM static methods with functions - Makes KEY_EVM_INS into a constant - Adds wiki entry for evm printer
446 lines
3.5 KiB
Plaintext
446 lines
3.5 KiB
Plaintext
## Contract evm instructions: Test ##
|
|
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
|
|
PUSH1 0xfa
|
|
DUP1
|
|
PUSH2 0x5f
|
|
PUSH1 0x0
|
|
CODECOPY
|
|
PUSH1 0x0
|
|
RETURN
|
|
STOP
|
|
PUSH1 0x80
|
|
PUSH1 0x40
|
|
MSTORE
|
|
PUSH1 0x4
|
|
CALLDATASIZE
|
|
LT
|
|
PUSH1 0x49
|
|
JUMPI
|
|
PUSH1 0x0
|
|
CALLDATALOAD
|
|
PUSH29 0x100000000000000000000000000000000000000000000000000000000
|
|
SWAP1
|
|
DIV
|
|
PUSH4 0xffffffff
|
|
AND
|
|
DUP1
|
|
PUSH4 0x14ba3f12
|
|
EQ
|
|
PUSH1 0x4e
|
|
JUMPI
|
|
DUP1
|
|
PUSH4 0xc2985578
|
|
EQ
|
|
PUSH1 0x8c
|
|
JUMPI
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
CALLVALUE
|
|
DUP1
|
|
ISZERO
|
|
PUSH1 0x59
|
|
JUMPI
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
POP
|
|
PUSH1 0x76
|
|
PUSH1 0x4
|
|
DUP1
|
|
CALLDATASIZE
|
|
SUB
|
|
DUP2
|
|
ADD
|
|
SWAP1
|
|
DUP1
|
|
DUP1
|
|
CALLDATALOAD
|
|
SWAP1
|
|
PUSH1 0x20
|
|
ADD
|
|
SWAP1
|
|
SWAP3
|
|
SWAP2
|
|
SWAP1
|
|
POP
|
|
POP
|
|
POP
|
|
PUSH1 0xb4
|
|
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
|
|
PUSH1 0x97
|
|
JUMPI
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
POP
|
|
PUSH1 0x9e
|
|
PUSH1 0xc1
|
|
JUMP
|
|
JUMPDEST
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
DUP3
|
|
DUP2
|
|
MSTORE
|
|
PUSH1 0x20
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
SWAP2
|
|
SUB
|
|
SWAP1
|
|
RETURN
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
PUSH1 0xa
|
|
DUP3
|
|
ADD
|
|
SWAP1
|
|
POP
|
|
SWAP2
|
|
SWAP1
|
|
POP
|
|
JUMP
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
DUP1
|
|
PUSH1 0xa
|
|
DUP2
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
SWAP1
|
|
JUMP
|
|
STOP
|
|
PUSH1 0x80
|
|
PUSH1 0x40
|
|
MSTORE
|
|
PUSH1 0x4
|
|
CALLDATASIZE
|
|
LT
|
|
PUSH1 0x49
|
|
JUMPI
|
|
PUSH1 0x0
|
|
CALLDATALOAD
|
|
PUSH29 0x100000000000000000000000000000000000000000000000000000000
|
|
SWAP1
|
|
DIV
|
|
PUSH4 0xffffffff
|
|
AND
|
|
DUP1
|
|
PUSH4 0x14ba3f12
|
|
EQ
|
|
PUSH1 0x4e
|
|
JUMPI
|
|
DUP1
|
|
PUSH4 0xc2985578
|
|
EQ
|
|
PUSH1 0x8c
|
|
JUMPI
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
CALLVALUE
|
|
DUP1
|
|
ISZERO
|
|
PUSH1 0x59
|
|
JUMPI
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
POP
|
|
PUSH1 0x76
|
|
PUSH1 0x4
|
|
DUP1
|
|
CALLDATASIZE
|
|
SUB
|
|
DUP2
|
|
ADD
|
|
SWAP1
|
|
DUP1
|
|
DUP1
|
|
CALLDATALOAD
|
|
SWAP1
|
|
PUSH1 0x20
|
|
ADD
|
|
SWAP1
|
|
SWAP3
|
|
SWAP2
|
|
SWAP1
|
|
POP
|
|
POP
|
|
POP
|
|
PUSH1 0xb4
|
|
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
|
|
PUSH1 0x97
|
|
JUMPI
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
POP
|
|
PUSH1 0x9e
|
|
PUSH1 0xc1
|
|
JUMP
|
|
JUMPDEST
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
DUP3
|
|
DUP2
|
|
MSTORE
|
|
PUSH1 0x20
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
SWAP2
|
|
SUB
|
|
SWAP1
|
|
RETURN
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
PUSH1 0xa
|
|
DUP3
|
|
ADD
|
|
SWAP1
|
|
POP
|
|
SWAP2
|
|
SWAP1
|
|
POP
|
|
JUMP
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
DUP1
|
|
PUSH1 0xa
|
|
DUP2
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
SWAP1
|
|
JUMP
|
|
STOP
|
|
## Function evm instructions: constructor ##
|
|
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
|
|
PUSH1 0xfa
|
|
DUP1
|
|
PUSH2 0x5f
|
|
PUSH1 0x0
|
|
CODECOPY
|
|
PUSH1 0x0
|
|
RETURN
|
|
## Function evm instructions: foo ##
|
|
JUMPDEST
|
|
CALLVALUE
|
|
DUP1
|
|
ISZERO
|
|
PUSH1 0x97
|
|
JUMPI
|
|
PUSH1 0x0
|
|
DUP1
|
|
REVERT
|
|
JUMPDEST
|
|
POP
|
|
PUSH1 0x9e
|
|
PUSH1 0xc1
|
|
JUMP
|
|
JUMPDEST
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
DUP3
|
|
DUP2
|
|
MSTORE
|
|
PUSH1 0x20
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
SWAP2
|
|
SUB
|
|
SWAP1
|
|
RETURN
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
DUP1
|
|
PUSH1 0xa
|
|
DUP2
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
SWAP1
|
|
JUMP
|
|
Node evm instructions: ENTRY_POINT None
|
|
JUMPDEST
|
|
CALLVALUE
|
|
POP
|
|
PUSH1 0x9e
|
|
PUSH1 0xc1
|
|
JUMP
|
|
JUMPDEST
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
DUP3
|
|
DUP2
|
|
MSTORE
|
|
PUSH1 0x20
|
|
ADD
|
|
SWAP2
|
|
POP
|
|
POP
|
|
PUSH1 0x40
|
|
MLOAD
|
|
DUP1
|
|
SWAP2
|
|
SUB
|
|
SWAP1
|
|
RETURN
|
|
JUMPDEST
|
|
PUSH1 0x0
|
|
POP
|
|
SWAP1
|
|
JUMP
|
|
Node evm instructions: NEW VARIABLE None
|
|
DUP1
|
|
Node evm instructions: RETURN (i + 10)
|
|
PUSH1 0xa
|
|
DUP2
|
|
ADD
|
|
SWAP2
|
|
POP
|