context

package
v1.22.25 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 13, 2025 License: BSD-3-Clause Imports: 4 Imported by: 22

Documentation

Overview

Package context provides consensus context for VMs

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetChainID

func GetChainID(ctx context.Context) ids.ID

GetChainID gets the chain ID from context

func GetNetID

func GetNetID(ctx context.Context) ids.ID

GetNetID gets the network ID from context

func GetNetworkID

func GetNetworkID(ctx context.Context) uint32

GetNetworkID gets the network ID from context

func GetNodeID

func GetNodeID(ctx context.Context) ids.NodeID

GetNodeID gets the node ID from context

func GetSubnetID deprecated

func GetSubnetID(ctx context.Context) ids.ID

Deprecated: GetSubnetID is deprecated, use GetNetID instead

func GetTimestamp

func GetTimestamp() int64

GetTimestamp returns the current timestamp

func GetWarpSigner added in v1.22.2

func GetWarpSigner(ctx context.Context) interface{}

GetWarpSigner gets the warp signer from context

func WithContext

func WithContext(ctx context.Context, cc *Context) context.Context

WithContext adds consensus context to a context

func WithIDs

func WithIDs(ctx context.Context, ids IDs) context.Context

WithIDs adds IDs to the context

func WithValidatorState

func WithValidatorState(ctx context.Context, vs ValidatorState) context.Context

WithValidatorState adds validator state to the context

Types

type BCLookup added in v1.22.23

type BCLookup interface {
	Lookup(alias string) (ids.ID, error)
	PrimaryAlias(id ids.ID) (string, error)
	Aliases(id ids.ID) ([]string, error)
}

BCLookup provides blockchain alias lookup

type BlockchainIDLookup

type BlockchainIDLookup = BCLookup

BlockchainIDLookup is an alias for BCLookup for backward compatibility

type Context

type Context struct {
	// QuantumID is the root quantum network identifier
	QuantumID uint32 `json:"quantumID"`
	// NetworkID is an alias for QuantumID for backward compatibility
	NetworkID uint32 `json:"networkID"`
	// NetID identifies the specific network/subnet within the quantum network
	NetID    ids.ID `json:"netID"`
	SubnetID ids.ID `json:"subnetID"` // Alias for NetID
	// ChainID identifies the specific chain within the network
	ChainID      ids.ID     `json:"chainID"`
	NodeID       ids.NodeID `json:"nodeID"`
	PublicKey    []byte     `json:"publicKey"`
	XChainID     ids.ID     `json:"xChainID"`
	CChainID     ids.ID     `json:"cChainID"`
	XAssetID     ids.ID     `json:"xAssetID"`
	LUXAssetID   ids.ID     `json:"luxAssetID"`
	ChainDataDir string     `json:"chainDataDir"`

	// Timing
	StartTime time.Time `json:"startTime"`

	ValidatorState  interface{}
	Keystore        Keystore
	Metrics         interface{}
	Log             interface{} // logging.Logger
	SharedMemory    interface{} // atomic.SharedMemory
	BCLookup        BCLookup    // Blockchain alias lookup
	WarpSigner      interface{} // warp.Signer
	NetworkUpgrades interface{} // upgrade.Config

	// Lock for thread-safe access to context
	Lock sync.RWMutex
}

Context provides consensus context for VMs

func FromContext

func FromContext(ctx context.Context) *Context

FromContext extracts consensus context from a context

type GetValidatorOutput

type GetValidatorOutput struct {
	NodeID    ids.NodeID
	PublicKey []byte
	Weight    uint64
}

GetValidatorOutput contains validator information

type IDs

type IDs struct {
	// NetworkID is the network identifier
	NetworkID uint32
	// QuantumID is the root quantum network identifier
	QuantumID uint32
	// NetID identifies the network within the quantum network
	NetID ids.ID
	// ChainID identifies the chain within the network
	ChainID   ids.ID
	NodeID    ids.NodeID
	PublicKey []byte
	// XAssetID is the asset ID for the X-Chain native asset
	XAssetID     ids.ID
	LUXAssetID   ids.ID `json:"luxAssetID"`
	ChainDataDir string `json:"chainDataDir"`
}

IDs holds the IDs for consensus context

type Keystore

type Keystore interface {
	GetDatabase(username, password string) (interface{}, error)
	NewAccount(username, password string) error
}

Keystore provides key management

type Logger added in v1.19.12

type Logger interface {
	Debug(msg string, fields ...interface{}) // zap.Field
	Info(msg string, fields ...interface{})  // zap.Field
	Warn(msg string, fields ...interface{})  // zap.Field
	Error(msg string, fields ...interface{}) // zap.Field
	Fatal(msg string, fields ...interface{}) // zap.Field
}

Logger provides logging functionality

type Metrics

type Metrics interface {
	Register(namespace string, registerer interface{}) error
}

Metrics provides metrics tracking

type NetworkUpgrades added in v1.19.12

type NetworkUpgrades interface {
}

NetworkUpgrades contains network upgrade activation times

type SharedMemory added in v1.19.12

type SharedMemory interface {
	Get(peerChainID ids.ID, keys [][]byte) (values [][]byte, err error)
	Indexed(
		peerChainID ids.ID,
		traits [][]byte,
		startTrait, startKey []byte,
		limit int,
	) (values [][]byte, lastTrait, lastKey []byte, err error)
}

SharedMemory provides cross-chain shared memory

type ValidatorState

type ValidatorState interface {
	GetChainID(ids.ID) (ids.ID, error)
	GetNetID(ids.ID) (ids.ID, error)
	GetSubnetID(chainID ids.ID) (ids.ID, error)
	GetValidatorSet(uint64, ids.ID) (map[ids.NodeID]uint64, error)
	GetCurrentHeight(context.Context) (uint64, error)
	GetMinimumHeight(context.Context) (uint64, error)
}

ValidatorState provides validator information

func GetValidatorState

func GetValidatorState(ctx context.Context) ValidatorState

GetValidatorState gets the validator state from context

type WarpSigner added in v1.19.12

type WarpSigner interface {
	Sign(msg interface{}) ([]byte, error)
}

WarpSigner provides BLS signing for Warp messages

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL