package
0.6.10
Repository: https://github.com/ava-labs/subnet-evm.git
Documentation: pkg.go.dev

# README

EVM Package

The EVM package implements the AvalancheGo VM interface.

VM

The VM creates the Ethereum backend and provides basic block building, parsing, and retrieval logic to the consensus engine.

APIs

The VM creates APIs for the node through the function CreateHandlers(). CreateHandlers returns the Service struct to serve Subnet-EVM specific APIs. Additionally, the Ethereum backend APIs are also returned at the /rpc extension.

Block Handling

The VM implements buildBlock, parseBlock, and getBlock and uses the chain package from AvalancheGo to construct a metered state, which uses these functions to implement an efficient caching layer and maintain the required invariants for blocks that get returned to the consensus engine.

To do this, the VM uses a modified version of the Ethereum RLP block type here and uses the core package's BlockChain type here to handle the insertion and storage of blocks into the chain.

Block

The Block type implements the AvalancheGo ChainVM Block interface. The key functions for this interface are Verify(), Accept(), Reject(), and Status().

The Block type wraps the stateless block type here and implements these functions to allow the consensus engine to verify blocks as valid, perform consensus, and mark them as accepted or rejected. See the documentation in AvalancheGo for the more detailed VM invariants that are maintained here.

# Packages

No description provided by the author

# Functions

No description provided by the author
InitLogger initializes logger with alias and sets the log level and format with the original [os.StdErr] interface along with the context logger.
No description provided by the author
No description provided by the author
NewCChainClient returns a Client for interacting with the C Chain.
NewClient returns a Client for interacting with EVM [chain].
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Constants

List of possible status values [Unknown] Zero value, means the status is not known [Dropped] means the transaction was in the mempool, but was dropped because it failed verification [Processing] means the transaction is in the mempool [Accepted] means the transaction was accepted.
List of possible status values [Unknown] Zero value, means the status is not known [Dropped] means the transaction was in the mempool, but was dropped because it failed verification [Processing] means the transaction is in the mempool [Accepted] means the transaction was accepted.
List of possible status values [Unknown] Zero value, means the status is not known [Dropped] means the transaction was in the mempool, but was dropped because it failed verification [Processing] means the transaction is in the mempool [Accepted] means the transaction was accepted.
List of possible status values [Unknown] Zero value, means the status is not known [Dropped] means the transaction was in the mempool, but was dropped because it failed verification [Processing] means the transaction is in the mempool [Accepted] means the transaction was accepted.

# Variables

No description provided by the author
GitCommit is set by the build script.
No description provided by the author
ID this VM should be referenced by.
Version is the version of Subnet EVM.

# Structs

Admin is the API service for admin API calls.
Batch implements ethdb.Batch.
Block implements the snowman.Block interface.
BuildGenesisArgs are arguments for BuildGenesis.
BuildGenesisReply is the reply from BuildGenesis.
Config ...
No description provided by the author
Database implements ethdb.Database.
DecodeGenesisArgs are arguments for DecodeGenesis.
DecodeGenesisReply is the reply from DecodeGenesis.
No description provided by the author
EthPushGossiper is used by the ETH backend to push transactions issued over the RPC and added to the mempool to peers.
No description provided by the author
GetAcceptedFrontReply defines the reply that will be sent from the GetAcceptedFront API call.
No description provided by the author
No description provided by the author
No description provided by the author
GossipHandler handles incoming gossip messages.
No description provided by the author
SnowmanAPI introduces snowman specific functionality to the evm.
StaticService defines the static API services exposed by the evm.
No description provided by the author
VM implements the snowman.ChainVM interface.

# Interfaces

No description provided by the author
Client interface for interacting with EVM [chain].
GossipStats contains methods for updating incoming and outgoing gossip stats.
No description provided by the author
No description provided by the author
Syncer represents a step in state sync, along with Start/Done methods to control and monitor progress.

# Type aliases

Status ...