hevm-0.49.0: Ethereum virtual machine evaluator
Safe HaskellNone
LanguageHaskell2010

EVM.TTY

Synopsis

Documentation

data Name Source #

Instances

Instances details
Eq Name Source # 
Instance details

Defined in EVM.TTY

Methods

(==) :: Name -> Name -> Bool #

(/=) :: Name -> Name -> Bool #

Ord Name Source # 
Instance details

Defined in EVM.TTY

Methods

compare :: Name -> Name -> Ordering #

(<) :: Name -> Name -> Bool #

(<=) :: Name -> Name -> Bool #

(>) :: Name -> Name -> Bool #

(>=) :: Name -> Name -> Bool #

max :: Name -> Name -> Name #

min :: Name -> Name -> Name #

Show Name Source # 
Instance details

Defined in EVM.TTY

Methods

showsPrec :: Int -> Name -> ShowS #

show :: Name -> String #

showList :: [Name] -> ShowS #

type Pred a = a -> Bool Source #

data StepMode Source #

Constructors

Step !Int

Run a specific number of steps

StepUntil (Pred VM)

Finish when a VM predicate holds

data Continuation a Source #

Each step command in the terminal should finish immediately with one of these outcomes.

Constructors

Stopped a

Program finished

Continue (Stepper a)

Took one step; more steps to go

interpret :: (?fetcher :: Fetcher, ?maxIter :: Maybe Integer) => StepMode -> Stepper a -> StateT UiVmState IO (Continuation a) Source #

This turns a Stepper into a state action usable from within the TTY loop, yielding a StepOutcome depending on the StepMode.

keepExecuting :: (?fetcher :: Fetcher, ?maxIter :: Maybe Integer) => StepMode -> Stepper a -> StateT UiVmState IO (Continuation a) Source #

runFromVM :: Maybe Integer -> DappInfo -> (Query -> IO (EVM ())) -> VM -> IO VM Source #

takeStep :: (?fetcher :: Fetcher, ?maxIter :: Maybe Integer) => UiVmState -> StepMode -> EventM n (Next UiState) Source #

backstepUntil :: (?fetcher :: Fetcher, ?maxIter :: Maybe Integer) => (UiVmState -> Pred VM) -> UiVmState -> EventM n (Next UiState) Source #

backstep :: (?fetcher :: Fetcher, ?maxIter :: Maybe Integer) => UiVmState -> EventM n UiVmState Source #

appEvent :: (?fetcher :: Fetcher, ?maxIter :: Maybe Integer) => UiState -> BrickEvent Name e -> EventM Name (Next UiState) Source #

opWidget :: (Integral a, Show a) => (a, Op) -> Widget n Source #