"""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