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