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  }