github.com/cosmos/cosmos-sdk@v0.50.10/x/group/codec.go (about)

     1  package group
     2  
     3  import (
     4  	codectypes "github.com/cosmos/cosmos-sdk/codec"
     5  	"github.com/cosmos/cosmos-sdk/codec/legacy"
     6  	cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
     7  	sdk "github.com/cosmos/cosmos-sdk/types"
     8  	"github.com/cosmos/cosmos-sdk/types/msgservice"
     9  )
    10  
    11  // RegisterLegacyAminoCodec registers all the necessary group module concrete
    12  // types and interfaces with the provided codec reference.
    13  // These types are used for Amino JSON serialization.
    14  func RegisterLegacyAminoCodec(cdc *codectypes.LegacyAmino) {
    15  	cdc.RegisterInterface((*DecisionPolicy)(nil), nil)
    16  	cdc.RegisterConcrete(&ThresholdDecisionPolicy{}, "cosmos-sdk/ThresholdDecisionPolicy", nil)
    17  	cdc.RegisterConcrete(&PercentageDecisionPolicy{}, "cosmos-sdk/PercentageDecisionPolicy", nil)
    18  
    19  	legacy.RegisterAminoMsg(cdc, &MsgCreateGroup{}, "cosmos-sdk/MsgCreateGroup")
    20  	legacy.RegisterAminoMsg(cdc, &MsgUpdateGroupMembers{}, "cosmos-sdk/MsgUpdateGroupMembers")
    21  	legacy.RegisterAminoMsg(cdc, &MsgUpdateGroupAdmin{}, "cosmos-sdk/MsgUpdateGroupAdmin")
    22  	legacy.RegisterAminoMsg(cdc, &MsgUpdateGroupMetadata{}, "cosmos-sdk/MsgUpdateGroupMetadata")
    23  	legacy.RegisterAminoMsg(cdc, &MsgCreateGroupWithPolicy{}, "cosmos-sdk/MsgCreateGroupWithPolicy")
    24  	legacy.RegisterAminoMsg(cdc, &MsgCreateGroupPolicy{}, "cosmos-sdk/MsgCreateGroupPolicy")
    25  	legacy.RegisterAminoMsg(cdc, &MsgUpdateGroupPolicyAdmin{}, "cosmos-sdk/MsgUpdateGroupPolicyAdmin")
    26  	legacy.RegisterAminoMsg(cdc, &MsgUpdateGroupPolicyDecisionPolicy{}, "cosmos-sdk/MsgUpdateGroupDecisionPolicy")
    27  	legacy.RegisterAminoMsg(cdc, &MsgUpdateGroupPolicyMetadata{}, "cosmos-sdk/MsgUpdateGroupPolicyMetadata")
    28  	legacy.RegisterAminoMsg(cdc, &MsgSubmitProposal{}, "cosmos-sdk/group/MsgSubmitProposal")
    29  	legacy.RegisterAminoMsg(cdc, &MsgWithdrawProposal{}, "cosmos-sdk/group/MsgWithdrawProposal")
    30  	legacy.RegisterAminoMsg(cdc, &MsgVote{}, "cosmos-sdk/group/MsgVote")
    31  	legacy.RegisterAminoMsg(cdc, &MsgExec{}, "cosmos-sdk/group/MsgExec")
    32  	legacy.RegisterAminoMsg(cdc, &MsgLeaveGroup{}, "cosmos-sdk/group/MsgLeaveGroup")
    33  }
    34  
    35  // RegisterInterfaces registers the interfaces types with the interface registry.
    36  func RegisterInterfaces(registry cdctypes.InterfaceRegistry) {
    37  	registry.RegisterImplementations((*sdk.Msg)(nil),
    38  		&MsgCreateGroup{},
    39  		&MsgUpdateGroupMembers{},
    40  		&MsgUpdateGroupAdmin{},
    41  		&MsgUpdateGroupMetadata{},
    42  		&MsgCreateGroupWithPolicy{},
    43  		&MsgCreateGroupPolicy{},
    44  		&MsgUpdateGroupPolicyAdmin{},
    45  		&MsgUpdateGroupPolicyDecisionPolicy{},
    46  		&MsgUpdateGroupPolicyMetadata{},
    47  		&MsgSubmitProposal{},
    48  		&MsgWithdrawProposal{},
    49  		&MsgVote{},
    50  		&MsgExec{},
    51  		&MsgLeaveGroup{},
    52  	)
    53  
    54  	msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
    55  
    56  	registry.RegisterInterface(
    57  		"cosmos.group.v1.DecisionPolicy",
    58  		(*DecisionPolicy)(nil),
    59  		&ThresholdDecisionPolicy{},
    60  		&PercentageDecisionPolicy{},
    61  	)
    62  }