Ethereum Virtual Machine (EVM) Exceptions

Introduction

Exceptions which cause the EVM to halt exceptionally.

Module Contents

ExceptionalHalt

Indicates that the EVM has experienced an exceptional halt. This causes execution to immediately end with all gas being consumed.

exception ExceptionalHalt

Bases: ethereum.exceptions.EthereumException

Revert

Raised by the REVERT opcode.

Unlike other EVM exceptions this does not result in the consumption of all gas.

exception Revert

Bases: ethereum.exceptions.EthereumException

StackUnderflowError

Occurs when a pop is executed on an empty stack.

exception StackUnderflowError

Bases: ExceptionalHalt

StackOverflowError

Occurs when a push is executed on a stack at max capacity.

exception StackOverflowError

Bases: ExceptionalHalt

OutOfGasError

Occurs when an operation costs more than the amount of gas left in the frame.

exception OutOfGasError

Bases: ExceptionalHalt

InvalidOpcode

Raised when an invalid opcode is encountered.

exception InvalidOpcode

Bases: ExceptionalHalt

InvalidJumpDestError

Occurs when the destination of a jump operation doesn’t meet any of the following criteria:

  • The jump destination is less than the length of the code.

  • The jump destination should have the JUMPDEST opcode (0x5B).

  • The jump destination shouldn’t be part of the data corresponding to PUSH-N opcodes.

exception InvalidJumpDestError

Bases: ExceptionalHalt

StackDepthLimitError

Raised when the message depth is greater than 1024

exception StackDepthLimitError

Bases: ExceptionalHalt

WriteInStaticContext

Raised when an attempt is made to modify the state while operating inside of a STATICCALL context.

exception WriteInStaticContext

Bases: ExceptionalHalt

OutOfBoundsRead

Raised when an attempt was made to read data beyond the boundaries of the buffer.

exception OutOfBoundsRead

Bases: ExceptionalHalt

InvalidParameter

Raised when invalid parameters are passed.

exception InvalidParameter

Bases: ExceptionalHalt

InvalidContractPrefix

Raised when the new contract code starts with 0xEF.

exception InvalidContractPrefix

Bases: ExceptionalHalt

AddressCollision

Raised when the new contract address has a collision.

exception AddressCollision

Bases: ExceptionalHalt