hevm-0.24: Ethereum virtual machine evaluator

Safe HaskellNone




data Action a where Source #

The instruction type of the operational monad


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

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 ByteString) Source #

Run the VM until final result, resolving all queries

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

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

evm :: EVM a -> Stepper a Source #