github.com/Finschia/finschia-sdk@v0.48.1/client/tx_config.go (about) 1 package client 2 3 import ( 4 sdk "github.com/Finschia/finschia-sdk/types" 5 signingtypes "github.com/Finschia/finschia-sdk/types/tx/signing" 6 "github.com/Finschia/finschia-sdk/x/auth/signing" 7 ) 8 9 type ( 10 // TxEncodingConfig defines an interface that contains transaction 11 // encoders and decoders 12 TxEncodingConfig interface { 13 TxEncoder() sdk.TxEncoder 14 TxDecoder() sdk.TxDecoder 15 TxJSONEncoder() sdk.TxEncoder 16 TxJSONDecoder() sdk.TxDecoder 17 MarshalSignatureJSON([]signingtypes.SignatureV2) ([]byte, error) 18 UnmarshalSignatureJSON([]byte) ([]signingtypes.SignatureV2, error) 19 } 20 21 // TxConfig defines an interface a client can utilize to generate an 22 // application-defined concrete transaction type. The type returned must 23 // implement TxBuilder. 24 TxConfig interface { 25 TxEncodingConfig 26 27 NewTxBuilder() TxBuilder 28 WrapTxBuilder(sdk.Tx) (TxBuilder, error) 29 SignModeHandler() signing.SignModeHandler 30 } 31 32 // TxBuilder defines an interface which an application-defined concrete transaction 33 // type must implement. Namely, it must be able to set messages, generate 34 // signatures, and provide canonical bytes to sign over. The transaction must 35 // also know how to encode itself. 36 TxBuilder interface { 37 GetTx() signing.Tx 38 39 SetMsgs(msgs ...sdk.Msg) error 40 SetSignatures(signatures ...signingtypes.SignatureV2) error 41 SetMemo(memo string) 42 SetFeeAmount(amount sdk.Coins) 43 SetGasLimit(limit uint64) 44 SetTimeoutHeight(height uint64) 45 SetFeeGranter(feeGranter sdk.AccAddress) 46 } 47 )