warp

package
v0.6.12-rc.0 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2024 License: GPL-3.0, LGPL-3.0 Imports: 24 Imported by: 2

Documentation

Index

Constants

View Source
const (
	ParseErrCode = iota + 1
	VerifyErrCode
)

Variables

This section is empty.

Functions

func NewAPIFetcher added in v0.5.7

func NewAPIFetcher(clients map[ids.NodeID]Client) *apiFetcher

Types

type API added in v0.5.7

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

API introduces snowman specific functionality to the evm

func NewAPI added in v0.5.7

func NewAPI(networkID uint32, sourceSubnetID ids.ID, sourceChainID ids.ID, state validators.State, backend Backend, client peer.NetworkClient, requirePrimaryNetworkSigners func() bool) *API

func (*API) GetBlockAggregateSignature added in v0.5.7

func (a *API) GetBlockAggregateSignature(ctx context.Context, blockID ids.ID, quorumNum uint64, subnetIDStr string) (signedMessageBytes hexutil.Bytes, err error)

GetBlockAggregateSignature fetches the aggregate signature for the requested [blockID]

func (*API) GetBlockSignature added in v0.5.7

func (a *API) GetBlockSignature(ctx context.Context, blockID ids.ID) (hexutil.Bytes, error)

GetBlockSignature returns the BLS signature associated with a blockID.

func (*API) GetMessage added in v0.5.11

func (a *API) GetMessage(ctx context.Context, messageID ids.ID) (hexutil.Bytes, error)

GetMessage returns the Warp message associated with a messageID.

func (*API) GetMessageAggregateSignature added in v0.5.7

func (a *API) GetMessageAggregateSignature(ctx context.Context, messageID ids.ID, quorumNum uint64, subnetIDStr string) (signedMessageBytes hexutil.Bytes, err error)

GetMessageAggregateSignature fetches the aggregate signature for the requested [messageID]

func (*API) GetMessageSignature added in v0.5.7

func (a *API) GetMessageSignature(ctx context.Context, messageID ids.ID) (hexutil.Bytes, error)

GetMessageSignature returns the BLS signature associated with a messageID.

type Backend added in v0.5.6

type Backend interface {
	// AddMessage signs [unsignedMessage] and adds it to the warp backend database
	AddMessage(unsignedMessage *avalancheWarp.UnsignedMessage) error

	// GetMessageSignature validates the message and returns the signature of the requested message.
	GetMessageSignature(ctx context.Context, message *avalancheWarp.UnsignedMessage) ([]byte, error)

	// GetBlockSignature returns the signature of a hash payload containing blockID if it's the ID of an accepted block.
	GetBlockSignature(ctx context.Context, blockID ids.ID) ([]byte, error)

	// GetMessage retrieves the [unsignedMessage] from the warp backend database if available
	// TODO: After Etna, the backend no longer needs to store the mapping from messageHash
	// to unsignedMessage (and this method can be removed).
	GetMessage(messageHash ids.ID) (*avalancheWarp.UnsignedMessage, error)

	acp118.Verifier
}

Backend tracks signature-eligible warp messages and provides an interface to fetch them. The backend is also used to query for warp message signatures by the signature request handler.

func NewBackend added in v0.5.6

func NewBackend(
	networkID uint32,
	sourceChainID ids.ID,
	warpSigner avalancheWarp.Signer,
	blockClient BlockClient,
	uptimeCalculator uptime.Calculator,
	validatorsState interfaces.State,
	stateLock sync.Locker,
	db database.Database,
	signatureCache cache.Cacher[ids.ID, []byte],
	offchainMessages [][]byte,
) (Backend, error)

NewBackend creates a new Backend, and initializes the signature cache and message tracking database.

type BlockClient added in v0.5.7

type BlockClient interface {
	GetAcceptedBlock(ctx context.Context, blockID ids.ID) (snowman.Block, error)
}

type Client added in v0.5.6

type Client interface {
	GetMessage(ctx context.Context, messageID ids.ID) ([]byte, error)
	GetMessageSignature(ctx context.Context, messageID ids.ID) ([]byte, error)
	GetMessageAggregateSignature(ctx context.Context, messageID ids.ID, quorumNum uint64, subnetIDStr string) ([]byte, error)
	GetBlockSignature(ctx context.Context, blockID ids.ID) ([]byte, error)
	GetBlockAggregateSignature(ctx context.Context, blockID ids.ID, quorumNum uint64, subnetIDStr string) ([]byte, error)
}

func NewClient added in v0.5.6

func NewClient(uri, chain string) (Client, error)

NewClient returns a Client for interacting with EVM [chain]

Directories

Path Synopsis
Package aggregator is a generated GoMock package.
Package aggregator is a generated GoMock package.
warptest exposes common functionality for testing the warp package.
warptest exposes common functionality for testing the warp package.

Jump to

Keyboard shortcuts

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