github.com/Finschia/finschia-sdk@v0.48.1/x/staking/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/staking 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, &MsgCreateValidator{}, "cosmos-sdk/MsgCreateValidator") 20 legacy.RegisterAminoMsg(cdc, &MsgEditValidator{}, "cosmos-sdk/MsgEditValidator") 21 legacy.RegisterAminoMsg(cdc, &MsgDelegate{}, "cosmos-sdk/MsgDelegate") 22 legacy.RegisterAminoMsg(cdc, &MsgUndelegate{}, "cosmos-sdk/MsgUndelegate") 23 legacy.RegisterAminoMsg(cdc, &MsgBeginRedelegate{}, "cosmos-sdk/MsgBeginRedelegate") 24 25 cdc.RegisterInterface((*isStakeAuthorization_Validators)(nil), nil) 26 cdc.RegisterConcrete(&StakeAuthorization_AllowList{}, "cosmos-sdk/StakeAuthorization/AllowList", nil) 27 cdc.RegisterConcrete(&StakeAuthorization_DenyList{}, "cosmos-sdk/StakeAuthorization/DenyList", nil) 28 cdc.RegisterConcrete(&StakeAuthorization{}, "cosmos-sdk/StakeAuthorization", nil) 29 } 30 31 // RegisterInterfaces registers the x/staking interfaces types with the interface registry 32 func RegisterInterfaces(registry types.InterfaceRegistry) { 33 registry.RegisterImplementations((*sdk.Msg)(nil), 34 &MsgCreateValidator{}, 35 &MsgEditValidator{}, 36 &MsgDelegate{}, 37 &MsgUndelegate{}, 38 &MsgBeginRedelegate{}, 39 ) 40 registry.RegisterImplementations( 41 (*authz.Authorization)(nil), 42 &StakeAuthorization{}, 43 ) 44 45 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) 46 } 47 48 var ( 49 amino = codec.NewLegacyAmino() 50 ModuleCdc = codec.NewAminoCodec(amino) 51 ) 52 53 func init() { 54 RegisterLegacyAminoCodec(amino) 55 cryptocodec.RegisterCrypto(amino) 56 sdk.RegisterLegacyAminoCodec(amino) 57 58 // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be 59 // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances 60 RegisterLegacyAminoCodec(authzcodec.Amino) 61 RegisterLegacyAminoCodec(govcodec.Amino) 62 RegisterLegacyAminoCodec(fdncodec.Amino) 63 }