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.
Reexports
pub use self::errors::OnChainError; |
pub use self::errors::NotSupportedError; |
pub use self::errors::RequireError; |
pub use self::errors::CommitError; |
pub use self::errors::PreExecutionError; |
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. |
EmbeddedPatch |
Embedded patch. |
FrontierPatch |
Frontier patch. |
HeaderParams |
Block header. |
HomesteadPatch |
Homestead patch. |
IDPrecompiled |
ID precompiled contract. |
Log | |
Machine |
A VM state with PC. |
MainnetAccountPatch |
Mainnet account patch |
PC |
Represents a program counter in EVM. |
PCMut |
Represents a program counter in EVM. |
RIP160Precompiled |
RIP160 precompiled contract. |
Runtime |
A VM runtime. Only available in eval. |
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 | |
Valids |
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. |
Opcode |
Opcode enum. One-to-one corresponding to an |
TransactionAction | |
VMStatus |
VM Status |
Statics
ECREC_PRECOMPILED | |
EMBEDDED_PRECOMPILEDS | |
ETC_PRECOMPILEDS | |
ID_PRECOMPILED | |
RIP160_PRECOMPILED | |
SHA256_PRECOMPILED |
Traits
AccountPatch |
Account patch for account related variables. |
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
MainnetEIP150Patch | |
MainnetEIP160Patch | |
MainnetEmbeddedPatch | |
MainnetFrontierPatch | |
MainnetHomesteadPatch | |
SeqContextVM |
A sequencial VM. It uses sequencial memory representation and hash map storage for accounts. |
SeqTransactionVM |
A sequencial transaction VM. This is same as |