vertex

package
v0.0.0-...-3fa05c8 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2023 License: BSD-3-Clause Imports: 25 Imported by: 0

Documentation

Overview

Package vertex is a generated GoMock package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Builder

type Builder interface {
	// Build a new vertex from the contents of a vertex
	BuildVtx(ctx context.Context, parentIDs []ids.ID, txs []snowstorm.Tx) (avalanche.Vertex, error)
	// Build a new stop vertex from the parents
	BuildStopVtx(ctx context.Context, parentIDs []ids.ID) (avalanche.Vertex, error)
}

Builder builds a vertex given a set of parentIDs and transactions.

type DAGVM

type DAGVM interface {
	block.ChainVM
	Getter

	// Return any transactions that have not been sent to consensus yet
	PendingTxs(ctx context.Context) []snowstorm.Tx

	// Convert a stream of bytes to a transaction or return an error
	ParseTx(ctx context.Context, txBytes []byte) (snowstorm.Tx, error)
}

DAGVM defines the minimum functionality that an avalanche VM must implement

type Getter

type Getter interface {
	// Retrieve a transaction that was submitted previously
	GetTx(ctx context.Context, txID ids.ID) (snowstorm.Tx, error)
}

Getter defines the functionality for fetching a tx/block by its ID.

type Heap

type Heap interface {
	// Empty the heap.
	Clear()

	// Add the provided vertex to the heap. Vertices are de-duplicated, returns
	// true if the vertex was added, false if it was dropped.
	Push(avalanche.Vertex) bool

	// Remove the top vertex. Assumes that there is at least one element.
	Pop() avalanche.Vertex

	// Returns if a vertex with the provided ID is currently in the heap.
	Contains(ids.ID) bool

	// Returns the number of vertices in the heap.
	Len() int
}

Heap defines the functionality of a heap of vertices with unique VertexIDs ordered by height

func NewHeap

func NewHeap() Heap

NewHeap returns an empty Heap

type LinearizableVM

type LinearizableVM interface {
	DAGVM

	// Linearize is called after [Initialize] and after the DAG has been
	// finalized. After Linearize is called:
	//
	// - PendingTxs will never be called again
	// - GetTx will never be called again
	// - ParseTx may still be called
	// - All the block based functions of the [block.ChainVM] must work as
	//   expected.
	//
	// Linearize is part of the VM initialization, and will be called at most
	// once per VM instantiation. This means that Linearize should be called
	// every time the chain restarts after the DAG has finalized.
	Linearize(ctx context.Context, stopVertexID ids.ID) error
}

type LinearizableVMWithEngine

type LinearizableVMWithEngine interface {
	DAGVM

	// Linearize is called after [Initialize] and after the DAG has been
	// finalized. After Linearize is called:
	//
	// - PendingTxs will never be called again
	// - GetTx will never be called again
	// - ParseTx may still be called
	// - All the block based functions of the [block.ChainVM] must work as
	//   expected.
	//
	// Linearize is part of the VM initialization, and will be called at most
	// once per VM instantiation. This means that Linearize should be called
	// every time the chain restarts after the DAG has finalized.
	Linearize(
		ctx context.Context,
		stopVertexID ids.ID,
		toEngine chan<- common.Message,
	) error
}

type Manager

type Manager interface {
	Builder
	Parser
	Storage
}

Manager defines all the vertex related functionality that is required by the consensus engine.

type MockLinearizableVM

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

MockLinearizableVM is a mock of LinearizableVM interface.

func NewMockLinearizableVM

func NewMockLinearizableVM(ctrl *gomock.Controller) *MockLinearizableVM

NewMockLinearizableVM creates a new mock instance.

func (*MockLinearizableVM) AppGossip

func (m *MockLinearizableVM) AppGossip(arg0 context.Context, arg1 ids.NodeID, arg2 []byte) error

AppGossip mocks base method.

func (*MockLinearizableVM) AppRequest

func (m *MockLinearizableVM) AppRequest(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 time.Time, arg4 []byte) error

AppRequest mocks base method.

func (*MockLinearizableVM) AppRequestFailed

func (m *MockLinearizableVM) AppRequestFailed(arg0 context.Context, arg1 ids.NodeID, arg2 uint32) error

AppRequestFailed mocks base method.

func (*MockLinearizableVM) AppResponse

func (m *MockLinearizableVM) AppResponse(arg0 context.Context, arg1 ids.NodeID, arg2 uint32, arg3 []byte) error

AppResponse mocks base method.

func (*MockLinearizableVM) BuildBlock

func (m *MockLinearizableVM) BuildBlock(arg0 context.Context) (snowman.Block, error)

BuildBlock mocks base method.

func (*MockLinearizableVM) Connected

func (m *MockLinearizableVM) Connected(arg0 context.Context, arg1 ids.NodeID, arg2 *version.Application) error

Connected mocks base method.

func (*MockLinearizableVM) CreateHandlers

func (m *MockLinearizableVM) CreateHandlers(arg0 context.Context) (map[string]*common.HTTPHandler, error)

CreateHandlers mocks base method.

func (*MockLinearizableVM) CreateStaticHandlers

func (m *MockLinearizableVM) CreateStaticHandlers(arg0 context.Context) (map[string]*common.HTTPHandler, error)

CreateStaticHandlers mocks base method.

func (*MockLinearizableVM) CrossChainAppRequest

func (m *MockLinearizableVM) CrossChainAppRequest(arg0 context.Context, arg1 ids.ID, arg2 uint32, arg3 time.Time, arg4 []byte) error

CrossChainAppRequest mocks base method.

func (*MockLinearizableVM) CrossChainAppRequestFailed

func (m *MockLinearizableVM) CrossChainAppRequestFailed(arg0 context.Context, arg1 ids.ID, arg2 uint32) error

CrossChainAppRequestFailed mocks base method.

func (*MockLinearizableVM) CrossChainAppResponse

func (m *MockLinearizableVM) CrossChainAppResponse(arg0 context.Context, arg1 ids.ID, arg2 uint32, arg3 []byte) error

CrossChainAppResponse mocks base method.

func (*MockLinearizableVM) Disconnected

func (m *MockLinearizableVM) Disconnected(arg0 context.Context, arg1 ids.NodeID) error

Disconnected mocks base method.

func (*MockLinearizableVM) EXPECT

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

func (*MockLinearizableVM) GetBlock

func (m *MockLinearizableVM) GetBlock(arg0 context.Context, arg1 ids.ID) (snowman.Block, error)

GetBlock mocks base method.

func (*MockLinearizableVM) GetTx

func (m *MockLinearizableVM) GetTx(arg0 context.Context, arg1 ids.ID) (snowstorm.Tx, error)

GetTx mocks base method.

func (*MockLinearizableVM) HealthCheck

func (m *MockLinearizableVM) HealthCheck(arg0 context.Context) (interface{}, error)

HealthCheck mocks base method.

func (*MockLinearizableVM) Initialize

func (m *MockLinearizableVM) Initialize(arg0 context.Context, arg1 *snow.Context, arg2 manager.Manager, arg3, arg4, arg5 []byte, arg6 chan<- common.Message, arg7 []*common.Fx, arg8 common.AppSender) error

Initialize mocks base method.

func (*MockLinearizableVM) LastAccepted

func (m *MockLinearizableVM) LastAccepted(arg0 context.Context) (ids.ID, error)

LastAccepted mocks base method.

func (*MockLinearizableVM) Linearize

func (m *MockLinearizableVM) Linearize(arg0 context.Context, arg1 ids.ID) error

Linearize mocks base method.

func (*MockLinearizableVM) ParseBlock

func (m *MockLinearizableVM) ParseBlock(arg0 context.Context, arg1 []byte) (snowman.Block, error)

ParseBlock mocks base method.

func (*MockLinearizableVM) ParseTx

func (m *MockLinearizableVM) ParseTx(arg0 context.Context, arg1 []byte) (snowstorm.Tx, error)

ParseTx mocks base method.

func (*MockLinearizableVM) PendingTxs

func (m *MockLinearizableVM) PendingTxs(arg0 context.Context) []snowstorm.Tx

PendingTxs mocks base method.

func (*MockLinearizableVM) SetPreference

func (m *MockLinearizableVM) SetPreference(arg0 context.Context, arg1 ids.ID) error

SetPreference mocks base method.

func (*MockLinearizableVM) SetState

func (m *MockLinearizableVM) SetState(arg0 context.Context, arg1 snow.State) error

SetState mocks base method.

func (*MockLinearizableVM) Shutdown

func (m *MockLinearizableVM) Shutdown(arg0 context.Context) error

Shutdown mocks base method.

func (*MockLinearizableVM) Version

func (m *MockLinearizableVM) Version(arg0 context.Context) (string, error)

Version mocks base method.

type MockLinearizableVMMockRecorder

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

MockLinearizableVMMockRecorder is the mock recorder for MockLinearizableVM.

func (*MockLinearizableVMMockRecorder) AppGossip

func (mr *MockLinearizableVMMockRecorder) AppGossip(arg0, arg1, arg2 interface{}) *gomock.Call

AppGossip indicates an expected call of AppGossip.

func (*MockLinearizableVMMockRecorder) AppRequest

func (mr *MockLinearizableVMMockRecorder) AppRequest(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call

AppRequest indicates an expected call of AppRequest.

func (*MockLinearizableVMMockRecorder) AppRequestFailed

func (mr *MockLinearizableVMMockRecorder) AppRequestFailed(arg0, arg1, arg2 interface{}) *gomock.Call

AppRequestFailed indicates an expected call of AppRequestFailed.

func (*MockLinearizableVMMockRecorder) AppResponse

func (mr *MockLinearizableVMMockRecorder) AppResponse(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

AppResponse indicates an expected call of AppResponse.

func (*MockLinearizableVMMockRecorder) BuildBlock

func (mr *MockLinearizableVMMockRecorder) BuildBlock(arg0 interface{}) *gomock.Call

BuildBlock indicates an expected call of BuildBlock.

func (*MockLinearizableVMMockRecorder) Connected

func (mr *MockLinearizableVMMockRecorder) Connected(arg0, arg1, arg2 interface{}) *gomock.Call

Connected indicates an expected call of Connected.

func (*MockLinearizableVMMockRecorder) CreateHandlers

func (mr *MockLinearizableVMMockRecorder) CreateHandlers(arg0 interface{}) *gomock.Call

CreateHandlers indicates an expected call of CreateHandlers.

func (*MockLinearizableVMMockRecorder) CreateStaticHandlers

func (mr *MockLinearizableVMMockRecorder) CreateStaticHandlers(arg0 interface{}) *gomock.Call

CreateStaticHandlers indicates an expected call of CreateStaticHandlers.

func (*MockLinearizableVMMockRecorder) CrossChainAppRequest

func (mr *MockLinearizableVMMockRecorder) CrossChainAppRequest(arg0, arg1, arg2, arg3, arg4 interface{}) *gomock.Call

CrossChainAppRequest indicates an expected call of CrossChainAppRequest.

func (*MockLinearizableVMMockRecorder) CrossChainAppRequestFailed

func (mr *MockLinearizableVMMockRecorder) CrossChainAppRequestFailed(arg0, arg1, arg2 interface{}) *gomock.Call

CrossChainAppRequestFailed indicates an expected call of CrossChainAppRequestFailed.

func (*MockLinearizableVMMockRecorder) CrossChainAppResponse

func (mr *MockLinearizableVMMockRecorder) CrossChainAppResponse(arg0, arg1, arg2, arg3 interface{}) *gomock.Call

CrossChainAppResponse indicates an expected call of CrossChainAppResponse.

func (*MockLinearizableVMMockRecorder) Disconnected

func (mr *MockLinearizableVMMockRecorder) Disconnected(arg0, arg1 interface{}) *gomock.Call

Disconnected indicates an expected call of Disconnected.

func (*MockLinearizableVMMockRecorder) GetBlock

func (mr *MockLinearizableVMMockRecorder) GetBlock(arg0, arg1 interface{}) *gomock.Call

GetBlock indicates an expected call of GetBlock.

func (*MockLinearizableVMMockRecorder) GetTx

func (mr *MockLinearizableVMMockRecorder) GetTx(arg0, arg1 interface{}) *gomock.Call

GetTx indicates an expected call of GetTx.

func (*MockLinearizableVMMockRecorder) HealthCheck

func (mr *MockLinearizableVMMockRecorder) HealthCheck(arg0 interface{}) *gomock.Call

HealthCheck indicates an expected call of HealthCheck.

func (*MockLinearizableVMMockRecorder) Initialize

func (mr *MockLinearizableVMMockRecorder) Initialize(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 interface{}) *gomock.Call

Initialize indicates an expected call of Initialize.

func (*MockLinearizableVMMockRecorder) LastAccepted

func (mr *MockLinearizableVMMockRecorder) LastAccepted(arg0 interface{}) *gomock.Call

LastAccepted indicates an expected call of LastAccepted.

func (*MockLinearizableVMMockRecorder) Linearize

func (mr *MockLinearizableVMMockRecorder) Linearize(arg0, arg1 interface{}) *gomock.Call

Linearize indicates an expected call of Linearize.

func (*MockLinearizableVMMockRecorder) ParseBlock

func (mr *MockLinearizableVMMockRecorder) ParseBlock(arg0, arg1 interface{}) *gomock.Call

ParseBlock indicates an expected call of ParseBlock.

func (*MockLinearizableVMMockRecorder) ParseTx

func (mr *MockLinearizableVMMockRecorder) ParseTx(arg0, arg1 interface{}) *gomock.Call

ParseTx indicates an expected call of ParseTx.

func (*MockLinearizableVMMockRecorder) PendingTxs

func (mr *MockLinearizableVMMockRecorder) PendingTxs(arg0 interface{}) *gomock.Call

PendingTxs indicates an expected call of PendingTxs.

func (*MockLinearizableVMMockRecorder) SetPreference

func (mr *MockLinearizableVMMockRecorder) SetPreference(arg0, arg1 interface{}) *gomock.Call

SetPreference indicates an expected call of SetPreference.

func (*MockLinearizableVMMockRecorder) SetState

func (mr *MockLinearizableVMMockRecorder) SetState(arg0, arg1 interface{}) *gomock.Call

SetState indicates an expected call of SetState.

func (*MockLinearizableVMMockRecorder) Shutdown

func (mr *MockLinearizableVMMockRecorder) Shutdown(arg0 interface{}) *gomock.Call

Shutdown indicates an expected call of Shutdown.

func (*MockLinearizableVMMockRecorder) Version

func (mr *MockLinearizableVMMockRecorder) Version(arg0 interface{}) *gomock.Call

Version indicates an expected call of Version.

type Parser

type Parser interface {
	// Parse a vertex from a slice of bytes
	ParseVtx(ctx context.Context, vertex []byte) (avalanche.Vertex, error)
}

Parser parses bytes into a vertex.

type StatelessVertex

type StatelessVertex interface {
	verify.Verifiable
	ID() ids.ID
	Bytes() []byte
	Version() uint16
	ChainID() ids.ID
	StopVertex() bool
	Height() uint64
	Epoch() uint32
	ParentIDs() []ids.ID
	Txs() [][]byte
}

func Build

func Build(
	chainID ids.ID,
	height uint64,
	parentIDs []ids.ID,
	txs [][]byte,
) (StatelessVertex, error)

Build a new stateless vertex from the contents of a vertex

func BuildStopVertex

func BuildStopVertex(chainID ids.ID, height uint64, parentIDs []ids.ID) (StatelessVertex, error)

Build a new stateless vertex from the contents of a vertex

func Parse

func Parse(bytes []byte) (StatelessVertex, error)

Parse parses the provided vertex bytes into a stateless vertex

type Storage

type Storage interface {
	// Get a vertex by its hash from storage.
	GetVtx(ctx context.Context, vtxID ids.ID) (avalanche.Vertex, error)
	// Edge returns a list of accepted vertex IDs with no accepted children.
	Edge(ctx context.Context) (vtxIDs []ids.ID)
	// Returns "true" if accepted frontier ("Edge") is stop vertex.
	StopVertexAccepted(ctx context.Context) (bool, error)
}

Storage defines the persistent storage that is required by the consensus engine.

type TestBuilder

type TestBuilder struct {
	T             *testing.T
	CantBuildVtx  bool
	BuildVtxF     func(ctx context.Context, parentIDs []ids.ID, txs []snowstorm.Tx) (avalanche.Vertex, error)
	BuildStopVtxF func(ctx context.Context, parentIDs []ids.ID) (avalanche.Vertex, error)
}

func (*TestBuilder) BuildStopVtx

func (b *TestBuilder) BuildStopVtx(ctx context.Context, parentIDs []ids.ID) (avalanche.Vertex, error)

func (*TestBuilder) BuildVtx

func (b *TestBuilder) BuildVtx(ctx context.Context, parentIDs []ids.ID, txs []snowstorm.Tx) (avalanche.Vertex, error)

func (*TestBuilder) Default

func (b *TestBuilder) Default(cant bool)

type TestManager

type TestManager struct {
	TestBuilder
	TestParser
	TestStorage
}

func NewTestManager

func NewTestManager(t *testing.T) *TestManager

func (*TestManager) Default

func (m *TestManager) Default(cant bool)

type TestParser

type TestParser struct {
	T            *testing.T
	CantParseVtx bool
	ParseVtxF    func(context.Context, []byte) (avalanche.Vertex, error)
}

func (*TestParser) Default

func (p *TestParser) Default(cant bool)

func (*TestParser) ParseVtx

func (p *TestParser) ParseVtx(ctx context.Context, b []byte) (avalanche.Vertex, error)

type TestStorage

type TestStorage struct {
	T                                            *testing.T
	CantGetVtx, CantEdge, CantStopVertexAccepted bool
	GetVtxF                                      func(context.Context, ids.ID) (avalanche.Vertex, error)
	EdgeF                                        func(context.Context) []ids.ID
	StopVertexAcceptedF                          func(context.Context) (bool, error)
}

func (*TestStorage) Default

func (s *TestStorage) Default(cant bool)

func (*TestStorage) Edge

func (s *TestStorage) Edge(ctx context.Context) []ids.ID

func (*TestStorage) GetVtx

func (s *TestStorage) GetVtx(ctx context.Context, vtxID ids.ID) (avalanche.Vertex, error)

func (*TestStorage) StopVertexAccepted

func (s *TestStorage) StopVertexAccepted(ctx context.Context) (bool, error)

type TestVM

type TestVM struct {
	block.TestVM

	CantLinearize, CantPendingTxs, CantParse, CantGet bool

	LinearizeF  func(context.Context, ids.ID) error
	PendingTxsF func(context.Context) []snowstorm.Tx
	ParseTxF    func(context.Context, []byte) (snowstorm.Tx, error)
	GetTxF      func(context.Context, ids.ID) (snowstorm.Tx, error)
}

func (*TestVM) Default

func (vm *TestVM) Default(cant bool)

func (*TestVM) GetTx

func (vm *TestVM) GetTx(ctx context.Context, txID ids.ID) (snowstorm.Tx, error)

func (*TestVM) Linearize

func (vm *TestVM) Linearize(ctx context.Context, stopVertexID ids.ID) error

func (*TestVM) ParseTx

func (vm *TestVM) ParseTx(ctx context.Context, b []byte) (snowstorm.Tx, error)

func (*TestVM) PendingTxs

func (vm *TestVM) PendingTxs(ctx context.Context) []snowstorm.Tx

Jump to

Keyboard shortcuts

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