"""This module contains EVM exception types used by LASER."""
[docs]class VmException(Exception):
"""The base VM exception type."""
pass
[docs]class StackUnderflowException(IndexError, VmException):
"""A VM exception regarding stack underflows."""
pass
[docs]class StackOverflowException(VmException):
"""A VM exception regarding stack overflows."""
pass
[docs]class InvalidJumpDestination(VmException):
"""A VM exception regarding JUMPs to invalid destinations."""
pass
[docs]class InvalidInstruction(VmException):
"""A VM exception denoting an invalid op code has been encountered."""
pass
[docs]class OutOfGasException(VmException):
"""A VM exception denoting the current execution has run out of gas."""
pass
[docs]class WriteProtection(VmException):
"""A VM exception denoting that a write operation is executed on a write protected environment"""
pass