Crate sputnikvm [−] [src]
SputnikVM implementation, traits and structs
Lifecycle
A VM can be started given a Context
and a BlockHeader
. The
user can then fire
or step
to run it. Those functions would
only fail if it needs some information (accounts in the current
block, or block hashes of previous blocks). If this happens, one
can use the function commit_account
and commit_blockhash
to
commit those information to the VM, and fire
or step
again
until it succeeds. The current VM status can always be obtained
using the status
function.
Modules
errors |
VM errors |
Structs
AccountState |
A struct that manages the current account state for one EVM. |
BlockhashState |
A struct that manages the current blockhash state for one EVM. |
Context |
A VM context. See the Yellow Paper for more information. |
ContextVM |
A VM that executes using a context and block information. |
ECRECPrecompiled |
ECREC precompiled contract. |
EIP150Patch |
EIP150 patch. |
EIP160Patch |
EIP160 patch. |
FrontierPatch |
Frontier patch. |
HeaderParams |
Block header. |
HomesteadPatch |
Homestead patch. |
IDPrecompiled |
ID precompiled contract. |
Log | |
Machine |
A VM state with PC. |
PC |
Represents a program counter in EVM. |
RIP160Precompiled |
RIP160 precompiled contract. |
SHA256Precompiled |
SHA256 precompiled contract. |
SeqMemory |
A sequencial memory. It uses Rust's |
Stack |
Represents an EVM stack. |
State |
A VM state without PC. |
Storage |
Internal representation of an account storage. It will return a
|
TransactionVM |
A VM that executes using a transaction and block information. |
VMTestPatch |
Patch sepcific for the |
ValidTransaction |
Enums
AccountChange |
Represents an account. This is usually returned by the EVM. |
AccountCommitment |
A single account commitment. |
Instruction |
Instructions for the program counter. This is the same as |
MachineStatus |
Represents the current runtime status. |
VMStatus |
VM Status |
Traits
Memory |
Represent a memory in EVM. Read should always succeed. Write can fall. |
Patch |
Represents different block range context. |
Precompiled |
Represent a precompiled contract. |
VM |
Represents an EVM. This is usually the main interface for clients to interact with. |
Type Definitions
SeqContextVM |
A sequencial VM. It uses sequencial memory representation and hash map storage for accounts. |
SeqTransactionVM |
A sequencial transaction VM. This is same as |