state

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2025 License: MIT Imports: 34 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrDuplicatedSubsidyTransaction = errors.New("duplicated subsidy transaction")

ErrDuplicatedSubsidyTransaction indicates that there is more than one subsidy transaction inside the block.

View Source
var ErrInvalidBlockVersion = errors.New("invalid block version")

ErrInvalidBlockVersion indicates that the block version is not valid.

View Source
var ErrInvalidCertificate = errors.New("invalid certificate")

ErrInvalidCertificate indicates that the block certificate is invalid.

View Source
var ErrInvalidSortitionSeed = errors.New("invalid sortition seed")

ErrInvalidSortitionSeed indicates that the block's sortition seed is either invalid or unverifiable.

View Source
var ErrInvalidSubsidyTransaction = errors.New("invalid subsidy transaction")

ErrInvalidSubsidyTransaction indicates that the subsidy transaction is not valid.

Functions

This section is empty.

Types

type Facade

type Facade interface {
	Genesis() *genesis.Genesis
	Params() *param.Params
	LastBlockHeight() uint32
	LastBlockHash() hash.Hash
	LastBlockTime() time.Time
	LastCertificate() *certificate.Certificate
	UpdateLastCertificate(v *vote.Vote) error
	ProposeBlock(valKey *bls.ValidatorKey, rewardAddr crypto.Address) (*block.Block, error)
	ValidateBlock(blk *block.Block, round int16) error
	CommitBlock(blk *block.Block, cert *certificate.Certificate) error
	CommitteeValidators() []*validator.Validator
	CommitteeProtocolVersions() map[protocol.Version]float64
	IsInCommittee(addr crypto.Address) bool
	Proposer(round int16) *validator.Validator
	IsProposer(addr crypto.Address, round int16) bool
	PendingTx(txID tx.ID) *tx.Tx
	AddPendingTx(trx *tx.Tx) error
	AddPendingTxAndBroadcast(trx *tx.Tx) error
	CommittedBlock(height uint32) *store.CommittedBlock
	CommittedTx(txID tx.ID) *store.CommittedTx
	BlockHash(height uint32) hash.Hash
	BlockHeight(h hash.Hash) uint32
	AccountByAddress(addr crypto.Address) *account.Account
	ValidatorByAddress(addr crypto.Address) *validator.Validator
	ValidatorByNumber(number int32) *validator.Validator
	ValidatorAddresses() []crypto.Address
	UpdateValidatorProtocolVersion(addr crypto.Address, ver protocol.Version)
	CalculateFee(amt amount.Amount, payloadType payload.Type) amount.Amount
	PublicKey(addr crypto.Address) (crypto.PublicKey, error)
	AvailabilityScore(valNum int32) float64
	AllPendingTxs() []*tx.Tx
	Stats() *Stats

	Close()
}

func LoadOrNewState

func LoadOrNewState(
	genDoc *genesis.Genesis,
	valKeys []*bls.ValidatorKey,
	store store.Store,
	txPool txpool.TxPool,
	eventPipe pipeline.Pipeline[any],
) (Facade, error)

type InvalidBlockTimeError

type InvalidBlockTimeError struct {
	Reason string
}

InvalidBlockTimeError is returned when the block time is not valid.

func (InvalidBlockTimeError) Error

func (e InvalidBlockTimeError) Error() string

type InvalidProposerError

type InvalidProposerError struct {
	Expected crypto.Address
	Got      crypto.Address
}

InvalidProposerError is returned when the block proposer is not as expected.

func (InvalidProposerError) Error

func (e InvalidProposerError) Error() string

type InvalidStateRootHashError

type InvalidStateRootHashError struct {
	Expected hash.Hash
	Got      hash.Hash
}

InvalidStateRootHashError is returned when the state root hash of the block does not match the current state root hash.

func (InvalidStateRootHashError) Error

type InvalidSubsidyAmountError

type InvalidSubsidyAmountError struct {
	Expected amount.Amount
	Got      amount.Amount
}

InvalidSubsidyAmountError is returned when the amount of the subsidy transaction is not as expected.

func (InvalidSubsidyAmountError) Error

type InvalidVoteForCertificateError

type InvalidVoteForCertificateError struct {
	Vote *vote.Vote
}

InvalidVoteForCertificateError is returned when an attempt to update the last certificate with an invalid vote is made.

func (InvalidVoteForCertificateError) Error

type MockState

type MockState struct {
	TestGenesis   *genesis.Genesis
	TestStore     *store.MockStore
	TestPool      *txpool.MockTxPool
	TestCommittee committee.Committee
	TestValKeys   []*bls.ValidatorKey
	TestParams    *param.Params
	// contains filtered or unexported fields
}

func MockingState

func MockingState(ts *testsuite.TestSuite) *MockState

func (*MockState) AccountByAddress

func (m *MockState) AccountByAddress(addr crypto.Address) *account.Account

func (*MockState) AccountByNumber

func (m *MockState) AccountByNumber(number int32) *account.Account

func (*MockState) AddPendingTx

func (m *MockState) AddPendingTx(trx *tx.Tx) error

func (*MockState) AddPendingTxAndBroadcast

func (m *MockState) AddPendingTxAndBroadcast(trx *tx.Tx) error

func (*MockState) AllPendingTxs

func (m *MockState) AllPendingTxs() []*tx.Tx

func (*MockState) AvailabilityScore

func (*MockState) AvailabilityScore(_ int32) float64

func (*MockState) BlockHash

func (m *MockState) BlockHash(height uint32) hash.Hash

func (*MockState) BlockHeight

func (m *MockState) BlockHeight(h hash.Hash) uint32

func (*MockState) CalculateFee

func (m *MockState) CalculateFee(amt amount.Amount, payloadType payload.Type) amount.Amount

func (*MockState) Close

func (*MockState) Close()

func (*MockState) CommitBlock

func (m *MockState) CommitBlock(blk *block.Block, cert *certificate.Certificate) error

func (*MockState) CommitTestBlocks

func (m *MockState) CommitTestBlocks(num int)

func (*MockState) CommittedBlock

func (m *MockState) CommittedBlock(height uint32) *store.CommittedBlock

func (*MockState) CommittedTx

func (m *MockState) CommittedTx(txID tx.ID) *store.CommittedTx

func (*MockState) CommitteeProtocolVersions

func (m *MockState) CommitteeProtocolVersions() map[protocol.Version]float64

func (*MockState) CommitteeValidators

func (m *MockState) CommitteeValidators() []*validator.Validator

func (*MockState) Genesis

func (m *MockState) Genesis() *genesis.Genesis

func (*MockState) IsInCommittee

func (m *MockState) IsInCommittee(addr crypto.Address) bool

func (*MockState) IsProposer

func (m *MockState) IsProposer(addr crypto.Address, round int16) bool

func (*MockState) IsValidator

func (m *MockState) IsValidator(addr crypto.Address) bool

func (*MockState) LastBlockHash

func (m *MockState) LastBlockHash() hash.Hash

func (*MockState) LastBlockHeight

func (m *MockState) LastBlockHeight() uint32

func (*MockState) LastBlockTime

func (m *MockState) LastBlockTime() time.Time

func (*MockState) LastCertificate

func (m *MockState) LastCertificate() *certificate.Certificate

func (*MockState) Params

func (m *MockState) Params() *param.Params

func (*MockState) PendingTx

func (m *MockState) PendingTx(txID tx.ID) *tx.Tx

func (*MockState) ProposeBlock

func (m *MockState) ProposeBlock(valKey *bls.ValidatorKey, _ crypto.Address) (*block.Block, error)

func (*MockState) Proposer

func (m *MockState) Proposer(round int16) *validator.Validator

func (*MockState) PublicKey

func (m *MockState) PublicKey(addr crypto.Address) (crypto.PublicKey, error)

func (*MockState) Stats

func (m *MockState) Stats() *Stats

func (*MockState) UpdateLastCertificate

func (*MockState) UpdateLastCertificate(_ *vote.Vote) error

func (*MockState) UpdateValidatorProtocolVersion

func (m *MockState) UpdateValidatorProtocolVersion(addr crypto.Address, ver protocol.Version)

func (*MockState) ValidateBlock

func (*MockState) ValidateBlock(_ *block.Block, _ int16) error

func (*MockState) ValidatorAddresses

func (m *MockState) ValidatorAddresses() []crypto.Address

func (*MockState) ValidatorByAddress

func (m *MockState) ValidatorByAddress(addr crypto.Address) *validator.Validator

func (*MockState) ValidatorByNumber

func (m *MockState) ValidatorByNumber(n int32) *validator.Validator

type Stats

type Stats struct {
	LastBlockHeight uint32
	LastBlockHash   hash.Hash
	LastBlockTime   time.Time

	TotalPower     int64
	CommitteePower int64

	TotalAccounts    int32
	TotalValidators  int32
	ActiveValidators int32

	IsPruned      bool
	PruningHeight uint32
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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