cosmos-sdk/client/tx.go

43 lines
1.2 KiB
Go
Raw Normal View History

2020-03-12 12:35:22 -07:00
package client
import (
"github.com/cosmos/cosmos-sdk/codec"
sdk "github.com/cosmos/cosmos-sdk/types"
)
type (
// ClientMarshaler defines an interface that REST and CLI handler will use to
// create application-specific transactions and be able to serialize types
// specific to the application including transactions.
ClientMarshaler interface {
TxGenerator
codec.Marshaler
}
// TxGenerator defines an interface a client can utilize to generate an
// application-defined concrete transaction type. The type returned must
// implement ClientTx.
TxGenerator interface {
NewTx() ClientTx
}
// ClientTx defines an interface which an application-defined concrete transaction
// type must implement. Namely, it must be able to set messages, generate
// signatures, and provide canonical bytes to sign over. The transaction must
// also know how to encode itself.
ClientTx interface {
sdk.Tx
codec.ProtoMarshaler
SetMsgs(...sdk.Msg) error
GetSignatures() []sdk.Signature
SetSignatures(...sdk.Signature)
GetFee() sdk.Fee
SetFee(sdk.Fee)
GetMemo() string
SetMemo(string)
CanonicalSignBytes(cid string, num, seq uint64) ([]byte, error)
}
)