Skip to content

Instantly share code, notes, and snippets.

@nfalliere
Created December 8, 2021 17:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nfalliere/a8723af39762db6263bae870ab4b63d6 to your computer and use it in GitHub Desktop.
Save nfalliere/a8723af39762db6263bae870ab4b63d6 to your computer and use it in GitHub Desktop.
JEB EVM decompiler, special conversions
Initially, those opcodes are converted by default to equivalent pseudo-methods: FOO -> FOO():
SIGNEXTEND
STOP
ADDMOD
MULMOD
SHA3/KECCAK256
ADDRESS
BALANCE
ORIGIN
CALLER
CALLDATALOAD
CALLDATASIZE
CALLDATACOPY
CODESIZE
CODECOPY
GASPRICE
EXTCODESIZE
EXTCODECOPY
RETURNDATASIZE
RETURNDATACOPY
EXTCODEHASH
BLOCKHASH
COINBASE
TIMESTAMP
NUMBER
DIFFICULTY
GASLIMIT
CHAINID
SELFBALANCE
BASEFEE
SSTORE
SLOAD
MSIZE
GAS
LOG0
LOG1
LOG2
LOG3
LOG4
CREATE
CALL
CALLCODE
RETURN
DELEGATECALL
CREATE2
STATICCALL
REVERT
INVALID
SUICIDE
The following opcodes receive special conversions:
CALLER: msg.sender
ADDRESS: address(this)
CALLVALUE: msg.value
CALLDATASIZE: sizeof(msg.data) (or msg.data.length)
CALLDATALOAD: calldataload(...)
LOGn: can generate emit(...)
CALL: can be translated as a build-in (ECRECOVER, SHA256, etc.)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment