hevm-0.20: Ethereum virtual machine evaluator

Safe HaskellNone
LanguageHaskell2010

EVM.Stepper

Synopsis

Documentation

data Action a where Source #

The instruction type of the operational monad

Constructors

Exec :: Action VMResult

Keep executing until an intermediate result is reached

Fail :: Failure -> Action a

Short-circuit with a failure

Wait :: Query -> Action ()

Wait for a query to be resolved

EVM :: EVM a -> Action a

Embed a VM state transformation

Note :: Text -> Action ()

Write something to the log or terminal

data Failure Source #

Some failure raised by a stepper

Instances
Show Failure Source # 
Instance details

Defined in EVM.Stepper

type Stepper a = Program Action a Source #

Type alias for an operational monad of Action

execFully :: Stepper (Either Error Blob) Source #

Run the VM until final result, resolving all queries

decode :: AbiType -> Blob -> Stepper AbiValue Source #

Decode a blob as an ABI value, failing if ABI encoding wrong

evm :: EVM a -> Stepper a Source #