38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package signing
|
|
|
|
import (
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
"github.com/cosmos/cosmos-sdk/types/tx/signing"
|
|
)
|
|
|
|
// SignModeHandler defines a interface to be implemented by types which will handle
|
|
// SignMode's by generating sign bytes from a Tx and SignerData
|
|
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)
|
|
}
|
|
|
|
// SignerData is the specific information needed to sign a transaction that generally
|
|
// isn't included in the transaction body itself
|
|
type SignerData struct {
|
|
// ChainID is the chain that this transaction is targeted
|
|
ChainID string
|
|
|
|
// AccountNumber is the account number of the signer
|
|
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.
|
|
Sequence uint64
|
|
}
|