block

package
v1.36.1 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2026 License: BSD-3-Clause Imports: 11 Imported by: 8

Documentation

Overview

Package block is a generated GoMock package.

Index

Constants

View Source
const CodecVersion = txs.CodecVersion

CodecVersion is the sole P-Chain block-codec version — shared with the tx codec so a single constant pins the whole stack. ZAP-native (LE) per LP-023; one write path, one read path, no version dispatch.

Variables

View Source
var (
	// Codec is the standard-size (1 MiB) block codec.Manager. It carries
	// the single ZAP-native slot map and decodes only CodecVersion-
	// prefixed block bytes.
	Codec pcodecs.Manager

	// GenesisCodec is the unbounded-size codec.Manager used by both
	// large-genesis decode AND every P-Chain state-side read of non-block
	// byte values (feeState, L1Validator, NetToL1Conversion, fx.Owner,
	// heightRange, stateBlk). Same single-version slot map as Codec, with
	// a math.MaxInt32 size budget.
	GenesisCodec pcodecs.Manager
)
View Source
var ErrShortBytes = errors.New("block bytes too short for codec version prefix")

ErrShortBytes is returned when the input is shorter than the 2-byte codec-version prefix.

Functions

func RegisterBlockTypes added in v1.26.35

func RegisterBlockTypes(targetCodec pcodecs.LinearCodec) error

RegisterBlockTypes registers the canonical block type IDs. There is exactly one type per block kind: ProposalBlock, AbortBlock, CommitBlock, StandardBlock. Tx types come from txs.RegisterTypes (which registers the P-Chain tx slot layout at the same slot IDs).

func RegisterGenesisType added in v1.16.56

func RegisterGenesisType(val interface{}) error

RegisterGenesisType registers a type with the GenesisCodec so that values encountered in genesis bytes and state-read paths (e.g. legacy stateBlk) decode into the same Go type as everywhere else.

Types

type AbortBlock added in v1.26.35

type AbortBlock struct {
	Time        uint64 `serialize:"true" json:"time"`
	CommonBlock `serialize:"true"`
}

AbortBlock is the canonical P-Chain abort outcome of a ProposalBlock.

func NewAbortBlock added in v1.26.35

func NewAbortBlock(
	timestamp time.Time,
	parentID ids.ID,
	height uint64,
) (*AbortBlock, error)

func (*AbortBlock) InitRuntime added in v1.26.35

func (*AbortBlock) InitRuntime(*runtime.Runtime)

func (*AbortBlock) Initialize added in v1.26.35

func (*AbortBlock) Initialize(context.Context) error

func (*AbortBlock) Timestamp added in v1.26.35

func (b *AbortBlock) Timestamp() time.Time

func (*AbortBlock) Txs added in v1.26.35

func (*AbortBlock) Txs() []*txs.Tx

func (*AbortBlock) Visit added in v1.26.35

func (b *AbortBlock) Visit(v Visitor) error

type Block

type Block interface {
	RuntimeInitializable
	ID() ids.ID
	Parent() ids.ID
	Bytes() []byte
	Height() uint64

	// Txs returns list of transactions contained in the block
	Txs() []*txs.Tx

	// Visit calls [visitor] with this block's concrete type
	Visit(visitor Visitor) error
	// contains filtered or unexported methods
}

Block defines the common stateless interface for all blocks

func Parse

func Parse(c pcodecs.Manager, b []byte) (Block, error)

Parse decodes a block byte stream produced by the ZAP-native block codec. c selects the SIZE class — Codec (1 MiB max) or GenesisCodec (unbounded). The version is taken from the 2-byte wire prefix; a prefix other than CodecVersion is rejected by c.Unmarshal with ErrUnknownVersion.

Parse never re-marshals the input: BlockID = hash(b) verbatim and b is stashed on the returned block's CommonBlock. This byte-preserving path keeps BlockIDs (and inner TxIDs) stable.

type CommitBlock added in v1.26.35

type CommitBlock struct {
	Time        uint64 `serialize:"true" json:"time"`
	CommonBlock `serialize:"true"`
}

CommitBlock is the canonical P-Chain commit outcome of a ProposalBlock.

func NewCommitBlock added in v1.26.35

func NewCommitBlock(
	timestamp time.Time,
	parentID ids.ID,
	height uint64,
) (*CommitBlock, error)

func (*CommitBlock) InitRuntime added in v1.26.35

func (*CommitBlock) InitRuntime(*runtime.Runtime)

func (*CommitBlock) Initialize added in v1.26.35

func (*CommitBlock) Initialize(context.Context) error

func (*CommitBlock) Timestamp added in v1.26.35

func (b *CommitBlock) Timestamp() time.Time

func (*CommitBlock) Txs added in v1.26.35

func (*CommitBlock) Txs() []*txs.Tx

func (*CommitBlock) Visit added in v1.26.35

func (b *CommitBlock) Visit(v Visitor) error

type CommonBlock

type CommonBlock struct {
	// parent's ID
	PrntID ids.ID `serialize:"true" json:"parentID"`

	// This block's height. The genesis block is at height 0.
	Hght uint64 `serialize:"true" json:"height"`

	BlockID ids.ID `json:"id"`
	// contains filtered or unexported fields
}

CommonBlock contains fields and methods common to all blocks in this VM.

func (*CommonBlock) Bytes

func (b *CommonBlock) Bytes() []byte

func (*CommonBlock) Height

func (b *CommonBlock) Height() uint64

func (*CommonBlock) ID

func (b *CommonBlock) ID() ids.ID

func (*CommonBlock) Parent

func (b *CommonBlock) Parent() ids.ID

type MockBlock

type MockBlock struct {
	// contains filtered or unexported fields
}

MockBlock is a mock of Block interface.

func NewMockBlock

func NewMockBlock(ctrl *gomock.Controller) *MockBlock

NewMockBlock creates a new mock instance.

func (*MockBlock) Bytes

func (m *MockBlock) Bytes() []byte

Bytes mocks base method.

func (*MockBlock) EXPECT

func (m *MockBlock) EXPECT() *MockBlockMockRecorder

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockBlock) Height

func (m *MockBlock) Height() uint64

Height mocks base method.

func (*MockBlock) ID

func (m *MockBlock) ID() ids.ID

ID mocks base method.

func (*MockBlock) InitRuntime added in v1.22.87

func (m *MockBlock) InitRuntime(rt *runtime.Runtime)

InitRuntime mocks base method.

func (*MockBlock) Parent

func (m *MockBlock) Parent() ids.ID

Parent mocks base method.

func (*MockBlock) Txs

func (m *MockBlock) Txs() []*txs.Tx

Txs mocks base method.

func (*MockBlock) Visit

func (m *MockBlock) Visit(visitor Visitor) error

Visit mocks base method.

type MockBlockMockRecorder

type MockBlockMockRecorder struct {
	// contains filtered or unexported fields
}

MockBlockMockRecorder is the mock recorder for MockBlock.

func (*MockBlockMockRecorder) Bytes

func (mr *MockBlockMockRecorder) Bytes() *gomock.Call

Bytes indicates an expected call of Bytes.

func (*MockBlockMockRecorder) Height

func (mr *MockBlockMockRecorder) Height() *gomock.Call

Height indicates an expected call of Height.

func (*MockBlockMockRecorder) ID

func (mr *MockBlockMockRecorder) ID() *gomock.Call

ID indicates an expected call of ID.

func (*MockBlockMockRecorder) InitRuntime added in v1.22.87

func (mr *MockBlockMockRecorder) InitRuntime(rt any) *gomock.Call

InitRuntime indicates an expected call of InitRuntime.

func (*MockBlockMockRecorder) Parent

func (mr *MockBlockMockRecorder) Parent() *gomock.Call

Parent indicates an expected call of Parent.

func (*MockBlockMockRecorder) Txs

func (mr *MockBlockMockRecorder) Txs() *gomock.Call

Txs indicates an expected call of Txs.

func (*MockBlockMockRecorder) Visit

func (mr *MockBlockMockRecorder) Visit(visitor any) *gomock.Call

Visit indicates an expected call of Visit.

type ProposalBlock added in v1.26.35

type ProposalBlock struct {
	Time         uint64    `serialize:"true" json:"time"`
	Transactions []*txs.Tx `serialize:"true" json:"txs"`
	CommonBlock  `serialize:"true"`
	Tx           *txs.Tx `serialize:"true" json:"tx"`
}

ProposalBlock is the canonical P-Chain proposal block. It carries a per-block timestamp, a single proposal Tx, and a tail of decision Txs that commit atomically with the proposal outcome.

func NewProposalBlock added in v1.26.35

func NewProposalBlock(
	timestamp time.Time,
	parentID ids.ID,
	height uint64,
	proposalTx *txs.Tx,
	decisionTxs []*txs.Tx,
) (*ProposalBlock, error)

func (*ProposalBlock) InitRuntime added in v1.26.35

func (b *ProposalBlock) InitRuntime(rt *runtime.Runtime)

func (*ProposalBlock) Initialize added in v1.26.35

func (*ProposalBlock) Initialize(context.Context) error

func (*ProposalBlock) Timestamp added in v1.26.35

func (b *ProposalBlock) Timestamp() time.Time

func (*ProposalBlock) Txs added in v1.26.35

func (b *ProposalBlock) Txs() []*txs.Tx

func (*ProposalBlock) Visit added in v1.26.35

func (b *ProposalBlock) Visit(v Visitor) error

type RuntimeInitializable added in v1.22.87

type RuntimeInitializable interface {
	InitRuntime(rt *runtime.Runtime)
}

RuntimeInitializable defines the interface for initializing context

type StandardBlock added in v1.26.35

type StandardBlock struct {
	Time         uint64 `serialize:"true" json:"time"`
	CommonBlock  `serialize:"true"`
	Transactions []*txs.Tx `serialize:"true" json:"txs"`
}

StandardBlock is the canonical P-Chain standard block. It carries a per-block timestamp (advance-all-implicitly removed the separate AdvanceTimeTx flow) and an ordered list of decision txs.

func NewStandardBlock added in v1.26.35

func NewStandardBlock(
	timestamp time.Time,
	parentID ids.ID,
	height uint64,
	txs []*txs.Tx,
) (*StandardBlock, error)

func (*StandardBlock) InitRuntime added in v1.26.35

func (b *StandardBlock) InitRuntime(rt *runtime.Runtime)

func (*StandardBlock) Initialize added in v1.26.35

func (*StandardBlock) Initialize(context.Context) error

func (*StandardBlock) Timestamp added in v1.26.35

func (b *StandardBlock) Timestamp() time.Time

func (*StandardBlock) Txs added in v1.26.35

func (b *StandardBlock) Txs() []*txs.Tx

func (*StandardBlock) Visit added in v1.26.35

func (b *StandardBlock) Visit(v Visitor) error

type TimestampedBlock added in v1.26.35

type TimestampedBlock interface {
	Block
	Timestamp() time.Time
}

type Visitor

type Visitor interface {
	AbortBlock(*AbortBlock) error
	CommitBlock(*CommitBlock) error
	ProposalBlock(*ProposalBlock) error
	StandardBlock(*StandardBlock) error
}

Visitor dispatches by the canonical P-Chain block type. Under carries a timestamp and is one of the four canonical kinds.

Directories

Path Synopsis
Package executor is a generated GoMock package.
Package executor is a generated GoMock package.
executormock
Package executormock is a generated GoMock package.
Package executormock is a generated GoMock package.

Jump to

Keyboard shortcuts

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