github.com/KiraCore/sekai@v0.3.43/app/encoding.go (about) 1 package app 2 3 import ( 4 "github.com/cosmos/cosmos-sdk/client" 5 "github.com/cosmos/cosmos-sdk/codec" 6 "github.com/cosmos/cosmos-sdk/codec/types" 7 "github.com/cosmos/cosmos-sdk/std" 8 "github.com/cosmos/cosmos-sdk/x/auth/tx" 9 ) 10 11 // This data structure (EncodingConfig) is heavily inspired by Quicksilver. https://github.com/ingenuity-build/quicksilver/blob/main/app/encoding.go 12 type EncodingConfig struct { 13 InterfaceRegistry types.InterfaceRegistry 14 Marshaler codec.Codec 15 TxConfig client.TxConfig 16 Amino *codec.LegacyAmino 17 } 18 19 // MakeEncodingConfig creates an EncodingConfig for an amino based test configuration. 20 func MakeEncodingConfig() EncodingConfig { 21 amino := codec.NewLegacyAmino() 22 interfaceRegistry := types.NewInterfaceRegistry() 23 marshaler := codec.NewProtoCodec(interfaceRegistry) 24 txCfg := tx.NewTxConfig(marshaler, tx.DefaultSignModes) 25 26 encodingConfig := EncodingConfig{ 27 InterfaceRegistry: interfaceRegistry, 28 Marshaler: marshaler, 29 TxConfig: txCfg, 30 Amino: amino, 31 } 32 33 std.RegisterLegacyAminoCodec(encodingConfig.Amino) 34 std.RegisterInterfaces(encodingConfig.InterfaceRegistry) 35 ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) 36 ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) 37 return encodingConfig 38 }