github.com/Finschia/finschia-sdk@v0.48.1/x/bank/types/codec.go (about) 1 package types 2 3 import ( 4 "github.com/Finschia/finschia-sdk/codec" 5 "github.com/Finschia/finschia-sdk/codec/legacy" 6 "github.com/Finschia/finschia-sdk/codec/types" 7 cryptocodec "github.com/Finschia/finschia-sdk/crypto/codec" 8 sdk "github.com/Finschia/finschia-sdk/types" 9 "github.com/Finschia/finschia-sdk/types/msgservice" 10 "github.com/Finschia/finschia-sdk/x/authz" 11 authzcodec "github.com/Finschia/finschia-sdk/x/authz/codec" 12 fdncodec "github.com/Finschia/finschia-sdk/x/foundation/codec" 13 govcodec "github.com/Finschia/finschia-sdk/x/gov/codec" 14 ) 15 16 // RegisterLegacyAminoCodec registers the necessary x/bank interfaces and concrete types 17 // on the provided LegacyAmino codec. These types are used for Amino JSON serialization. 18 func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { 19 legacy.RegisterAminoMsg(cdc, &MsgSend{}, "cosmos-sdk/MsgSend") 20 legacy.RegisterAminoMsg(cdc, &MsgMultiSend{}, "cosmos-sdk/MsgMultiSend") 21 cdc.RegisterConcrete(&SendAuthorization{}, "cosmos-sdk/SendAuthorization", nil) 22 } 23 24 func RegisterInterfaces(registry types.InterfaceRegistry) { 25 registry.RegisterImplementations((*sdk.Msg)(nil), 26 &MsgSend{}, 27 &MsgMultiSend{}, 28 ) 29 registry.RegisterImplementations( 30 (*authz.Authorization)(nil), 31 &SendAuthorization{}, 32 ) 33 34 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) 35 } 36 37 var ( 38 amino = codec.NewLegacyAmino() 39 ModuleCdc = codec.NewAminoCodec(amino) 40 ) 41 42 func init() { 43 RegisterLegacyAminoCodec(amino) 44 cryptocodec.RegisterCrypto(amino) 45 sdk.RegisterLegacyAminoCodec(amino) 46 47 // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be 48 // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances 49 RegisterLegacyAminoCodec(authzcodec.Amino) 50 RegisterLegacyAminoCodec(govcodec.Amino) 51 RegisterLegacyAminoCodec(fdncodec.Amino) 52 }