github.com/Finschia/finschia-sdk@v0.48.1/x/foundation/codec.go (about) 1 package foundation 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 sdk "github.com/Finschia/finschia-sdk/types" 8 "github.com/Finschia/finschia-sdk/types/msgservice" 9 authzcodec "github.com/Finschia/finschia-sdk/x/authz/codec" 10 fdncodec "github.com/Finschia/finschia-sdk/x/foundation/codec" 11 govcodec "github.com/Finschia/finschia-sdk/x/gov/codec" 12 govtypes "github.com/Finschia/finschia-sdk/x/gov/types" 13 ) 14 15 // RegisterLegacyAminoCodec registers concrete types on the LegacyAmino codec 16 func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { 17 legacy.RegisterAminoMsg(cdc, &MsgFundTreasury{}, "lbm-sdk/MsgFundTreasury") 18 legacy.RegisterAminoMsg(cdc, &MsgSubmitProposal{}, "lbm-sdk/MsgSubmitProposal") 19 legacy.RegisterAminoMsg(cdc, &MsgVote{}, "lbm-sdk/MsgVote") 20 legacy.RegisterAminoMsg(cdc, &MsgExec{}, "lbm-sdk/MsgExec") 21 legacy.RegisterAminoMsg(cdc, &MsgLeaveFoundation{}, "lbm-sdk/MsgLeaveFoundation") 22 legacy.RegisterAminoMsg(cdc, &MsgWithdrawProposal{}, "lbm-sdk/MsgWithdrawProposal") 23 24 // proposal from foundation operator 25 legacy.RegisterAminoMsg(cdc, &MsgUpdateParams{}, "lbm-sdk/MsgUpdateParams") 26 legacy.RegisterAminoMsg(cdc, &MsgWithdrawFromTreasury{}, "lbm-sdk/MsgWithdrawFromTreasury") 27 legacy.RegisterAminoMsg(cdc, &MsgUpdateMembers{}, "lbm-sdk/MsgUpdateMembers") 28 legacy.RegisterAminoMsg(cdc, &MsgUpdateDecisionPolicy{}, "lbm-sdk/MsgUpdateDecisionPolicy") 29 legacy.RegisterAminoMsg(cdc, &MsgUpdateCensorship{}, "lbm-sdk/MsgUpdateCensorship") 30 legacy.RegisterAminoMsg(cdc, &MsgGrant{}, "lbm-sdk/MsgGrant") 31 legacy.RegisterAminoMsg(cdc, &MsgRevoke{}, "lbm-sdk/MsgRevoke") 32 33 cdc.RegisterInterface((*Authorization)(nil), nil) 34 cdc.RegisterInterface((*DecisionPolicy)(nil), nil) 35 cdc.RegisterConcrete(&ThresholdDecisionPolicy{}, "lbm-sdk/ThresholdDecisionPolicy", nil) 36 cdc.RegisterConcrete(&PercentageDecisionPolicy{}, "lbm-sdk/PercentageDecisionPolicy", nil) 37 cdc.RegisterConcrete(&ReceiveFromTreasuryAuthorization{}, "lbm-sdk/ReceiveFromTreasuryAuthorization", nil) 38 39 cdc.RegisterConcrete(&FoundationExecProposal{}, "lbm-sdk/FoundationExecProposal", nil) 40 } 41 42 func RegisterInterfaces(registry types.InterfaceRegistry) { 43 registry.RegisterImplementations((*sdk.Msg)(nil), 44 &MsgUpdateParams{}, 45 &MsgFundTreasury{}, 46 &MsgWithdrawFromTreasury{}, 47 &MsgUpdateMembers{}, 48 &MsgUpdateDecisionPolicy{}, 49 &MsgSubmitProposal{}, 50 &MsgWithdrawProposal{}, 51 &MsgVote{}, 52 &MsgExec{}, 53 &MsgLeaveFoundation{}, 54 &MsgUpdateCensorship{}, 55 &MsgGrant{}, 56 &MsgRevoke{}, 57 ) 58 59 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) 60 61 registry.RegisterInterface( 62 "lbm.foundation.v1.DecisionPolicy", 63 (*DecisionPolicy)(nil), 64 &ThresholdDecisionPolicy{}, 65 &PercentageDecisionPolicy{}, 66 &OutsourcingDecisionPolicy{}, 67 ) 68 69 registry.RegisterImplementations( 70 (*Authorization)(nil), 71 &ReceiveFromTreasuryAuthorization{}, 72 ) 73 74 registry.RegisterImplementations( 75 (*govtypes.Content)(nil), 76 &FoundationExecProposal{}, 77 ) 78 } 79 80 func init() { 81 // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be 82 // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances 83 RegisterLegacyAminoCodec(authzcodec.Amino) 84 RegisterLegacyAminoCodec(govcodec.Amino) 85 RegisterLegacyAminoCodec(fdncodec.Amino) 86 }