Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrMissingUTXOs = errors.New("missing UTXOs") ErrEmptyBlock = errors.New("empty block") )
View Source
var ( ErrAssetIDMismatch = errors.New("asset IDs in the input don't match the utxo") ErrConflictingAtomicInputs = errors.New("invalid block due to conflicting atomic inputs") )
Functions ¶
This section is empty.
Types ¶
type BlockFetcher ¶
type BlockFetcher interface {
// GetExtendedBlock returns the VMBlock for the given ID or an error if the block is not found
GetExtendedBlock(context.Context, ids.ID) (extension.ExtendedBlock, error)
// LastAcceptedExtendedBlock returns the last accepted VM block
LastAcceptedExtendedBlock() extension.ExtendedBlock
}
type InnerVM ¶
type InnerVM interface {
extension.ExtensibleVM
avalanchecommon.VM
block.ChainVM
block.BuildBlockWithContextChainVM
block.StateSyncableVM
// TODO: remove these
AtomicBackend() *state.AtomicBackend
AtomicMempool() *txpool.Mempool
}
TODO: remove this InnerVM is the interface that must be implemented by the VM that's being wrapped by the extension
type SemanticVerifier ¶
type SemanticVerifier struct {
Backend *VerifierBackend
Tx *atomic.Tx
Parent extension.ExtendedBlock
BaseFee *big.Int
}
SemanticVerifier is a visitor that checks the semantic validity of atomic transactions.
func (*SemanticVerifier) ExportTx ¶
func (s *SemanticVerifier) ExportTx(utx *atomic.UnsignedExportTx) error
ExportTx verifies this transaction is valid.
func (*SemanticVerifier) ImportTx ¶
func (s *SemanticVerifier) ImportTx(utx *atomic.UnsignedImportTx) error
ImportTx verifies this transaction is valid.
type VM ¶
type VM struct {
InnerVM
// contains filtered or unexported fields
}
func (*VM) Initialize ¶
func (vm *VM) Initialize( ctx context.Context, chainCtx *snow.Context, db avalanchedatabase.Database, genesisBytes []byte, upgradeBytes []byte, configBytes []byte, toEngine chan<- avalanchecommon.Message, fxs []*avalanchecommon.Fx, appSender avalanchecommon.AppSender, ) error
Initialize implements the snowman.ChainVM interface
type VerifierBackend ¶
type VerifierBackend struct {
Ctx *snow.Context
Fx fx.Fx
Rules extras.Rules
Bootstrapped bool
BlockFetcher BlockFetcher
SecpCache *secp256k1.RecoverCache
}
Click to show internal directories.
Click to hide internal directories.