Trait evmil::AbstractState

source ·
pub trait AbstractState: Clone {
    fn is_reachable(&self) -> bool;
    fn transfer(self, insn: &Instruction) -> Self;
    fn branch(&self, target: usize, insn: &Instruction) -> Self;
    fn merge(&mut self, other: Self) -> bool;
    fn peek(&self, n: usize) -> AbstractValue;
    fn bottom() -> Self;
    fn origin() -> Self;
}
Expand description

An abstract state provides information about the possible states of the EVM at a given point.

Required Methods§

Determines whether a given block is considered reachable or not.

Apply a given instruction to this state, yielding an updated state.

Apply a given branch to this stage, yielding an updated state at the point of the branch.

Merge this state with another, whilst returning a flag indicating whether anything changed.

Determine value on top of stack

Identify bottom value

Identify origin value

Implementations on Foreign Types§

Default implementation indicates everything is reachable.

Default implementation does nothing

Default implementation does nothing

Default implementation does nothing

Does nothing

Identify bottom value

Identify origin value

Implementors§