Documentation
¶
Overview ¶
Package executor is a generated GoMock package.
Index ¶
- Constants
- Variables
- func OwnerRoot(o owners) [32]byte
- type Block
- type Manager
- type MockManager
- func (m *MockManager) EXPECT() *MockManagerMockRecorder
- func (m *MockManager) GetBlock(blkID ids.ID) (chain.Block, error)
- func (m *MockManager) GetState(blkID ids.ID) (state.Chain, bool)
- func (m *MockManager) GetStatelessBlock(blkID ids.ID) (block.Block, error)
- func (m *MockManager) LastAccepted() ids.ID
- func (m *MockManager) NewBlock(arg0 block.Block) chain.Block
- func (m *MockManager) Preferred() ids.ID
- func (m *MockManager) SetPreference(blkID ids.ID)
- func (m *MockManager) VerifyTx(tx *txs.Tx) error
- func (m *MockManager) VerifyUniqueInputs(blkID ids.ID, inputs set.Set[ids.ID]) error
- type MockManagerMockRecorder
- func (mr *MockManagerMockRecorder) GetBlock(blkID any) *gomock.Call
- func (mr *MockManagerMockRecorder) GetState(blkID any) *gomock.Call
- func (mr *MockManagerMockRecorder) GetStatelessBlock(blkID any) *gomock.Call
- func (mr *MockManagerMockRecorder) LastAccepted() *gomock.Call
- func (mr *MockManagerMockRecorder) NewBlock(arg0 any) *gomock.Call
- func (mr *MockManagerMockRecorder) Preferred() *gomock.Call
- func (mr *MockManagerMockRecorder) SetPreference(blkID any) *gomock.Call
- func (mr *MockManagerMockRecorder) VerifyTx(tx any) *gomock.Call
- func (mr *MockManagerMockRecorder) VerifyUniqueInputs(blkID, inputs any) *gomock.Call
Constants ¶
const SyncBound = 10 * time.Second
Variables ¶
var ( ErrUnexpectedMerkleRoot = errors.New("unexpected merkle root") ErrTimestampBeyondSyncBound = errors.New("proposed timestamp is too far in the future relative to local time") ErrEmptyBlock = errors.New("block contains no transactions") ErrChildBlockEarlierThanParent = errors.New("proposed timestamp before current chain time") ErrConflictingBlockTxs = errors.New("block contains conflicting transactions") ErrIncorrectHeight = errors.New("block has incorrect height") ErrBlockNotFound = errors.New("block not found") )
var ( ErrChainNotSynced = errors.New("chain not synced") ErrConflictingParentTxs = errors.New("block contains a transaction that conflicts with a transaction in a parent block") )
Functions ¶
func OwnerRoot ¶ added in v1.4.11
func OwnerRoot(o owners) [32]byte
OwnerRoot is the CANONICAL Go definition of the execution_root UTXO leaf's owner_root field. It is the authority the GPU state-snapshot producer MUST match (the GPU/CPU kernels treat owner_root as a host-supplied input — xvm_gpu_layout.hpp documents its intent as "keccak over sorted owner address set + threshold" but does not derive it; this is where that derivation is pinned).
owner_root = keccak256(
threshold_u32_le ‖ key_count_u32_le ‖ key[0] ‖ key[1] ‖ … ‖ key[k-1] )
where:
- threshold is the output's N-of-M spend threshold (binds the M-of-N policy, per the layout's "+ threshold");
- key_count is the number of owner keys, little-endian u32 — a length prefix so two owner sets that differ only by a key-set/threshold framing can never collide (no ambiguous concatenation);
- each key is an owner key in canonical ascending byte order: for an address-keyed output the 20-byte secp256k1 address; for a bls attestation output the committee public key. The order is the same sorted-and-unique order the output's own Verify enforces, so the preimage is deterministic and independent of the order keys happened to be listed in.
The keccak256 is Ethereum Keccak-256 (the same hash xvmroot/the GPU use for every leaf preimage), keeping owner_root in the one hash family the whole execution_root is built from. Integers are little-endian to match the kernel's absorb_u32.
Locktime is NOT folded into owner_root: the UTXOLeaf binds Locktime in its own dedicated field (matching the GPU UTXO struct, which carries locktime and owner_root separately), so binding it here too would be redundant. Threshold is bound in BOTH owner_root and the leaf's Threshold field, exactly as the GPU struct carries threshold both inside the host-computed owner_root and as a standalone field.
Types ¶
type Block ¶
Exported for testing in xvm package.
type Manager ¶
type Manager interface {
state.Versions
// Returns the ID of the most recently accepted block.
LastAccepted() ids.ID
SetPreference(blkID ids.ID)
Preferred() ids.ID
GetBlock(blkID ids.ID) (chain.Block, error)
GetStatelessBlock(blkID ids.ID) (block.Block, error)
NewBlock(block.Block) chain.Block
// VerifyTx verifies that the transaction can be issued based on the currently
// preferred state. This should *not* be used to verify transactions in a block.
VerifyTx(tx *txs.Tx) error
// VerifyUniqueInputs returns nil iff no blocks in the inclusive
// ancestry of [blkID] consume an input in [inputs].
VerifyUniqueInputs(blkID ids.ID, inputs set.Set[ids.ID]) error
}
type MockManager ¶
type MockManager struct {
// contains filtered or unexported fields
}
MockManager is a mock of Manager interface.
func NewMockManager ¶
func NewMockManager(ctrl *gomock.Controller) *MockManager
NewMockManager creates a new mock instance.
func (*MockManager) EXPECT ¶
func (m *MockManager) EXPECT() *MockManagerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockManager) GetStatelessBlock ¶
GetStatelessBlock mocks base method.
func (*MockManager) LastAccepted ¶
func (m *MockManager) LastAccepted() ids.ID
LastAccepted mocks base method.
func (*MockManager) NewBlock ¶
func (m *MockManager) NewBlock(arg0 block.Block) chain.Block
NewBlock mocks base method.
func (*MockManager) Preferred ¶
func (m *MockManager) Preferred() ids.ID
Preferred mocks base method.
func (*MockManager) SetPreference ¶
func (m *MockManager) SetPreference(blkID ids.ID)
SetPreference mocks base method.
func (*MockManager) VerifyTx ¶
func (m *MockManager) VerifyTx(tx *txs.Tx) error
VerifyTx mocks base method.
func (*MockManager) VerifyUniqueInputs ¶
VerifyUniqueInputs mocks base method.
type MockManagerMockRecorder ¶
type MockManagerMockRecorder struct {
// contains filtered or unexported fields
}
MockManagerMockRecorder is the mock recorder for MockManager.
func (*MockManagerMockRecorder) GetBlock ¶
func (mr *MockManagerMockRecorder) GetBlock(blkID any) *gomock.Call
GetBlock indicates an expected call of GetBlock.
func (*MockManagerMockRecorder) GetState ¶
func (mr *MockManagerMockRecorder) GetState(blkID any) *gomock.Call
GetState indicates an expected call of GetState.
func (*MockManagerMockRecorder) GetStatelessBlock ¶
func (mr *MockManagerMockRecorder) GetStatelessBlock(blkID any) *gomock.Call
GetStatelessBlock indicates an expected call of GetStatelessBlock.
func (*MockManagerMockRecorder) LastAccepted ¶
func (mr *MockManagerMockRecorder) LastAccepted() *gomock.Call
LastAccepted indicates an expected call of LastAccepted.
func (*MockManagerMockRecorder) NewBlock ¶
func (mr *MockManagerMockRecorder) NewBlock(arg0 any) *gomock.Call
NewBlock indicates an expected call of NewBlock.
func (*MockManagerMockRecorder) Preferred ¶
func (mr *MockManagerMockRecorder) Preferred() *gomock.Call
Preferred indicates an expected call of Preferred.
func (*MockManagerMockRecorder) SetPreference ¶
func (mr *MockManagerMockRecorder) SetPreference(blkID any) *gomock.Call
SetPreference indicates an expected call of SetPreference.
func (*MockManagerMockRecorder) VerifyTx ¶
func (mr *MockManagerMockRecorder) VerifyTx(tx any) *gomock.Call
VerifyTx indicates an expected call of VerifyTx.
func (*MockManagerMockRecorder) VerifyUniqueInputs ¶
func (mr *MockManagerMockRecorder) VerifyUniqueInputs(blkID, inputs any) *gomock.Call
VerifyUniqueInputs indicates an expected call of VerifyUniqueInputs.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package executormock is a generated GoMock package.
|
Package executormock is a generated GoMock package. |