signing

package
v0.50.8-lsm Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2024 License: Apache-2.0 Imports: 10 Imported by: 1,227

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func APISignModeToInternal added in v0.50.1

func APISignModeToInternal(mode signingv1beta1.SignMode) (signing.SignMode, error)

APISignModeToInternal converts a protobuf SignMode to a signing.SignMode.

func APISignModesToInternal added in v0.50.1

func APISignModesToInternal(modes []signingv1beta1.SignMode) ([]signing.SignMode, error)

APISignModesToInternal converts a protobuf SignMode array to a signing.SignMode array.

func GetSignBytesAdapter added in v0.50.1

func GetSignBytesAdapter(
	ctx context.Context,
	handlerMap *txsigning.HandlerMap,
	mode signing.SignMode,
	signerData SignerData,
	tx sdk.Tx,
) ([]byte, error)

GetSignBytesAdapter returns the sign bytes for a given transaction and sign mode. It accepts the arguments expected for signing in x/auth/tx and converts them to the arguments expected by the txsigning.HandlerMap, then applies HandlerMap.GetSignBytes to get the sign bytes.

func VerifySignature

func VerifySignature(
	ctx context.Context,
	pubKey cryptotypes.PubKey,
	signerData txsigning.SignerData,
	signatureData signing.SignatureData,
	handler *txsigning.HandlerMap,
	txData txsigning.TxData,
) error

VerifySignature verifies a transaction signature contained in SignatureData abstracting over different signing modes. It differs from VerifySignature in that it uses the new txsigning.TxData interface in x/tx.

Types

type SigVerifiableTx

type SigVerifiableTx interface {
	types.Tx
	GetSigners() ([][]byte, error)
	GetPubKeys() ([]cryptotypes.PubKey, error) // If signer already has pubkey in context, this list will have nil in its place
	GetSignaturesV2() ([]signing.SignatureV2, error)
}

SigVerifiableTx defines a transaction interface for all signature verification handlers.

type SignModeHandler

type SignModeHandler interface {
	// DefaultMode is the default mode that is to be used with this handler if no
	// other mode is specified. This can be useful for testing and CLI usage
	DefaultMode() signing.SignMode

	// Modes is the list of modes supporting by this handler
	Modes() []signing.SignMode

	// GetSignBytes returns the sign bytes for the provided SignMode, SignerData and Tx,
	// or an error
	GetSignBytes(mode signing.SignMode, data SignerData, tx sdk.Tx) ([]byte, error)
}

SignModeHandler defines a interface to be implemented by types which will handle SignMode's by generating sign bytes from a Tx and SignerData

type SignModeHandlerMap

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

SignModeHandlerMap is SignModeHandler that aggregates multiple SignModeHandler's into a single handler

func NewSignModeHandlerMap

func NewSignModeHandlerMap(defaultMode signing.SignMode, handlers []SignModeHandler) SignModeHandlerMap

NewSignModeHandlerMap returns a new SignModeHandlerMap with the provided defaultMode and handlers

func (SignModeHandlerMap) DefaultMode

func (h SignModeHandlerMap) DefaultMode() signing.SignMode

DefaultMode implements SignModeHandler.DefaultMode

func (SignModeHandlerMap) GetSignBytes

func (h SignModeHandlerMap) GetSignBytes(mode signing.SignMode, data SignerData, tx sdk.Tx) ([]byte, error)

GetSignBytes implements SignModeHandler.GetSignBytes

func (SignModeHandlerMap) GetSignBytesWithContext added in v0.50.1

func (h SignModeHandlerMap) GetSignBytesWithContext(ctx context.Context, mode signing.SignMode, data SignerData, tx sdk.Tx) ([]byte, error)

GetSignBytesWithContext implements SignModeHandler.GetSignBytesWithContext

func (SignModeHandlerMap) Modes

func (h SignModeHandlerMap) Modes() []signing.SignMode

Modes implements SignModeHandler.Modes

type SignModeHandlerWithContext added in v0.50.1

type SignModeHandlerWithContext interface {
	SignModeHandler

	// GetSignBytes returns the sign bytes for the provided SignMode, SignerData and Tx,
	// or an error
	GetSignBytesWithContext(ctx context.Context, mode signing.SignMode, data SignerData, tx sdk.Tx) ([]byte, error)
}

SignModeHandlerWithContext is like SignModeHandler, with a new GetSignBytes method which takes an additional context.Context argument, to be used to access state. Consumers should preferably type-cast to this interface and pass in the context.Context arg, and default to SignModeHandler otherwise. This interface is created for backwards compatibility, and will be deleted once SDK versions <v0.47 are not supported anymore.

type SignerData

type SignerData struct {
	// The address of the signer.
	//
	// In case of multisigs, this should be the multisig's address.
	Address string

	// ChainID is the chain that this transaction is targeted
	ChainID string

	// AccountNumber is the account number of the signer.
	//
	// In case of multisigs, this should be the multisig account number.
	AccountNumber uint64

	// Sequence is the account sequence number of the signer that is used
	// for replay protection. This field is only useful for Legacy Amino signing,
	// since in SIGN_MODE_DIRECT the account sequence is already in the signer
	// info.
	//
	// In case of multisigs, this should be the multisig sequence.
	Sequence uint64

	// PubKey is the public key of the signer.
	//
	// In case of multisigs, this should be the pubkey of the member of the
	// multisig that is signing the current sign doc.
	PubKey cryptotypes.PubKey
}

SignerData is the specific information needed to sign a transaction that generally isn't included in the transaction body itself

type Tx

Tx defines a transaction interface that supports all standard message, signature fee, memo and auxiliary interfaces.

type V2AdaptableTx added in v0.50.1

type V2AdaptableTx interface {
	GetSigningTxData() txsigning.TxData
}

V2AdaptableTx is an interface that wraps the GetSigningTxData method. GetSigningTxData returns an x/tx/signing.TxData representation of a transaction for use in signing interoperability with x/tx.

Jump to

Keyboard shortcuts

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