blockif

package
v0.0.32 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2022 License: LGPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Header interface {
	// ParentHash is the header hash of the parent block.  For the genesis block
	// which has no parent by definition, this field is zeroed out.
	ParentHash() common.Hash

	// SetParentHash sets the parent hash field.
	SetParentHash(newParentHash common.Hash)

	// Coinbase is the address of the node that proposed this block and all
	// transactions in it.
	Coinbase() common.Address

	// SetCoinbase sets the coinbase address field.
	SetCoinbase(newCoinbase common.Address)

	// Root is the state (account) trie root hash.
	Root() common.Hash

	// SetRoot sets the state trie root hash field.
	SetRoot(newRoot common.Hash)

	// TxHash is the transaction trie root hash.
	TxHash() common.Hash

	// SetTxHash sets the transaction trie root hash field.
	SetTxHash(newTxHash common.Hash)

	// ReceiptHash is the same-shard transaction receipt trie hash.
	ReceiptHash() common.Hash

	// SetReceiptHash sets the same-shard transaction receipt trie hash.
	SetReceiptHash(newReceiptHash common.Hash)

	// OutgoingReceiptHash is the egress transaction receipt trie hash.
	OutgoingReceiptHash() common.Hash

	// SetOutgoingReceiptHash sets the egress transaction receipt trie hash.
	SetOutgoingReceiptHash(newOutgoingReceiptHash common.Hash)

	// IncomingReceiptHash is the ingress transaction receipt trie hash.
	IncomingReceiptHash() common.Hash

	// SetIncomingReceiptHash sets the ingress transaction receipt trie hash.
	SetIncomingReceiptHash(newIncomingReceiptHash common.Hash)

	// Bloom is the Bloom filter that indexes accounts and topics logged by smart
	// contract transactions (executions) in this block.
	Bloom() types.Bloom

	// SetBloom sets the smart contract log Bloom filter for this block.
	SetBloom(newBloom types.Bloom)

	// Number is the block number.
	//
	// The returned instance is a copy; the caller may do anything with it.
	Number() *big.Int

	// SetNumber sets the block number.
	//
	// It stores a copy; the caller may freely modify the original.
	SetNumber(newNumber *big.Int)

	// GasLimit is the gas limit for transactions in this block.
	GasLimit() uint64

	// SetGasLimit sets the gas limit for transactions in this block.
	SetGasLimit(newGasLimit uint64)

	// GasUsed is the amount of gas used by transactions in this block.
	GasUsed() uint64

	// SetGasUsed sets the amount of gas used by transactions in this block.
	SetGasUsed(newGasUsed uint64)

	// Time is the UNIX timestamp of this block.
	//
	// The returned instance is a copy; the caller may do anything with it.
	Time() *big.Int

	// SetTime sets the UNIX timestamp of this block.
	//
	// It stores a copy; the caller may freely modify the original.
	SetTime(newTime *big.Int)

	// Extra is the extra data field of this block.
	//
	// The returned slice is a copy; the caller may do anything with it.
	Extra() []byte

	// SetExtra sets the extra data field of this block.
	//
	// It stores a copy; the caller may freely modify the original.
	SetExtra(newExtra []byte)

	// MixDigest is the mixhash.
	//
	// This field is a remnant from Ethereum, and Harmony does not use it and always
	// zeroes it out.
	MixDigest() common.Hash

	// SetMixDigest sets the mixhash of this block.
	SetMixDigest(newMixDigest common.Hash)

	// ViewID is the ID of the view in which this block was originally proposed.
	//
	// It normally increases by one for each subsequent block, or by more than one
	// if one or more PBFT/FBFT view changes have occurred.
	//
	// The returned instance is a copy; the caller may do anything with it.
	ViewID() *big.Int

	// SetViewID sets the view ID in which the block was originally proposed.
	//
	// It stores a copy; the caller may freely modify the original.
	SetViewID(newViewID *big.Int)

	// Epoch is the epoch number of this block.
	//
	// The returned instance is a copy; the caller may do anything with it.
	Epoch() *big.Int

	// SetEpoch sets the epoch number of this block.
	//
	// It stores a copy; the caller may freely modify the original.
	SetEpoch(newEpoch *big.Int)

	// ShardID is the shard ID to which this block belongs.
	ShardID() uint32

	// SetShardID sets the shard ID to which this block belongs.
	SetShardID(newShardID uint32)

	// LastCommitSignature is the FBFT commit group signature for the last block.
	LastCommitSignature() [96]byte

	// SetLastCommitSignature sets the FBFT commit group signature for the last
	// block.
	SetLastCommitSignature(newLastCommitSignature [96]byte)

	// LastCommitBitmap is the signatory bitmap of the previous block.  Bit
	// positions index into committee member array.
	//
	// The returned slice is a copy; the caller may do anything with it.
	LastCommitBitmap() []byte

	// SetLastCommitBitmap sets the signatory bitmap of the previous block.
	//
	// It stores a copy; the caller may freely modify the original.
	SetLastCommitBitmap(newLastCommitBitmap []byte)

	// ShardStateHash is the shard state hash.
	ShardStateHash() common.Hash

	// SetShardStateHash sets the shard state hash.
	SetShardStateHash(newShardStateHash common.Hash)

	// Vrf is the output of the VRF for the epoch.
	//
	// The returned slice is a copy; the caller may do anything with it.
	Vrf() []byte

	// SetVrf sets the output of the VRF for the epoch.
	//
	// It stores a copy; the caller may freely modify the original.
	SetVrf(newVrf []byte)

	// Vdf is the output of the VDF for the epoch.
	//
	// The returned slice is a copy; the caller may do anything with it.
	Vdf() []byte

	// SetVdf sets the output of the VDF for the epoch.
	//
	// It stores a copy; the caller may freely modify the original.
	SetVdf(newVdf []byte)

	// ShardState is the RLP-encoded form of shard state (list of committees) for
	// the next epoch.
	//
	// The returned slice is a copy; the caller may do anything with it.
	ShardState() []byte

	// SetShardState sets the RLP-encoded form of shard state
	//
	// It stores a copy; the caller may freely modify the original.
	SetShardState(newShardState []byte)

	// CrossLinks is the RLP-encoded form of non-beacon block headers chosen to be
	// canonical by the beacon committee.  This field is present only on beacon
	// chain block headers.
	//
	// The returned slice is a copy; the caller may do anything with it.
	CrossLinks() []byte

	// SetCrossLinks sets the RLP-encoded form of non-beacon block headers chosen to
	// be canonical by the beacon committee.
	//
	// It stores a copy; the caller may freely modify the original.
	SetCrossLinks(newCrossLinks []byte)

	// Hash returns the block hash of the header, which is simply the legacy
	// Keccak256 hash of its RLP encoding.
	Hash() common.Hash

	// Size returns the approximate memory used by all internal contents. It is
	// used to approximate and limit the memory consumption of various caches.
	Size() common.StorageSize

	// Logger returns a sub-logger with block contexts added.
	Logger(logger *zerolog.Logger) *zerolog.Logger

	// GetShardState returns the deserialized shard state object.
	// Note that header encoded shard state only exists in the last block of the previous epoch
	GetShardState() (shard.State, error)

	// Copy returns a copy of the header.
	Copy() Header

	// Slashes is the RLP-encoded form of []slash.Record,
	// The returned slice is a copy; the caller may do anything with it
	Slashes() []byte

	// SetSlashes sets the RLP-encoded form of slashes
	// It stores a copy; the caller may freely modify the original.
	SetSlashes(newSlashes []byte)
}

Header defines the block header interface.

Jump to

Keyboard shortcuts

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