github.com/Finschia/finschia-sdk@v0.48.1/x/distribution/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 authzcodec "github.com/Finschia/finschia-sdk/x/authz/codec" 11 fdncodec "github.com/Finschia/finschia-sdk/x/foundation/codec" 12 govcodec "github.com/Finschia/finschia-sdk/x/gov/codec" 13 govtypes "github.com/Finschia/finschia-sdk/x/gov/types" 14 ) 15 16 // RegisterLegacyAminoCodec registers the necessary x/distribution 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, &MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward") 20 legacy.RegisterAminoMsg(cdc, &MsgWithdrawValidatorCommission{}, "cosmos-sdk/MsgWithdrawValCommission") 21 legacy.RegisterAminoMsg(cdc, &MsgSetWithdrawAddress{}, "cosmos-sdk/MsgModifyWithdrawAddress") 22 legacy.RegisterAminoMsg(cdc, &MsgFundCommunityPool{}, "cosmos-sdk/MsgFundCommunityPool") 23 cdc.RegisterConcrete(&CommunityPoolSpendProposal{}, "cosmos-sdk/CommunityPoolSpendProposal", nil) 24 } 25 26 func RegisterInterfaces(registry types.InterfaceRegistry) { 27 registry.RegisterImplementations( 28 (*sdk.Msg)(nil), 29 &MsgWithdrawDelegatorReward{}, 30 &MsgWithdrawValidatorCommission{}, 31 &MsgSetWithdrawAddress{}, 32 &MsgFundCommunityPool{}, 33 ) 34 registry.RegisterImplementations( 35 (*govtypes.Content)(nil), 36 &CommunityPoolSpendProposal{}, 37 ) 38 39 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) 40 } 41 42 var ( 43 amino = codec.NewLegacyAmino() 44 ModuleCdc = codec.NewAminoCodec(amino) 45 ) 46 47 func init() { 48 RegisterLegacyAminoCodec(amino) 49 cryptocodec.RegisterCrypto(amino) 50 sdk.RegisterLegacyAminoCodec(amino) 51 52 // Register all Amino interfaces and concrete types on the authz and gov Amino codec 53 // so that this can later be used to properly serialize MsgGrant and MsgExec 54 // instances. 55 RegisterLegacyAminoCodec(authzcodec.Amino) 56 RegisterLegacyAminoCodec(govcodec.Amino) 57 RegisterLegacyAminoCodec(fdncodec.Amino) 58 }