github.com/InjectiveLabs/sdk-go@v1.53.0/chain/ocr/types/codec.go (about)

     1  package types
     2  
     3  import (
     4  	"github.com/cosmos/cosmos-sdk/codec"
     5  	"github.com/cosmos/cosmos-sdk/codec/types"
     6  	cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
     7  	sdk "github.com/cosmos/cosmos-sdk/types"
     8  	"github.com/cosmos/cosmos-sdk/types/msgservice"
     9  	authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec"
    10  	govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
    11  )
    12  
    13  // RegisterLegacyAminoCodec registers the necessary modules/ocr interfaces and concrete types
    14  // on the provided LegacyAmino codec. These types are used for Amino JSON serialization.
    15  func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
    16  	cdc.RegisterConcrete(&MsgCreateFeed{}, "ocr/MsgCreateFeed", nil)
    17  	cdc.RegisterConcrete(&MsgUpdateFeed{}, "ocr/MsgUpdateFeed", nil)
    18  	cdc.RegisterConcrete(&MsgTransmit{}, "ocr/MsgTransmit", nil)
    19  	cdc.RegisterConcrete(&MsgFundFeedRewardPool{}, "ocr/MsgFundFeedRewardPool", nil)
    20  	cdc.RegisterConcrete(&MsgWithdrawFeedRewardPool{}, "ocr/MsgWithdrawFeedRewardPool", nil)
    21  	cdc.RegisterConcrete(&MsgSetPayees{}, "ocr/MsgSetPayees", nil)
    22  	cdc.RegisterConcrete(&MsgTransferPayeeship{}, "ocr/MsgTransferPayeeship", nil)
    23  	cdc.RegisterConcrete(&MsgAcceptPayeeship{}, "ocr/MsgAcceptPayeeship", nil)
    24  	cdc.RegisterConcrete(&MsgUpdateParams{}, "ocr/MsgUpdateParams", nil)
    25  
    26  	cdc.RegisterConcrete(&SetConfigProposal{}, "ocr/SetConfigProposal", nil)
    27  	cdc.RegisterConcrete(&SetBatchConfigProposal{}, "ocr/SetBatchConfigProposal", nil)
    28  	cdc.RegisterConcrete(&Params{}, "ocr/Params", nil)
    29  
    30  }
    31  
    32  func RegisterInterfaces(registry types.InterfaceRegistry) {
    33  	registry.RegisterImplementations((*sdk.Msg)(nil),
    34  		&MsgCreateFeed{},
    35  		&MsgUpdateFeed{},
    36  		&MsgTransmit{},
    37  		&MsgFundFeedRewardPool{},
    38  		&MsgWithdrawFeedRewardPool{},
    39  		&MsgSetPayees{},
    40  		&MsgTransferPayeeship{},
    41  		&MsgAcceptPayeeship{},
    42  		&MsgUpdateParams{},
    43  	)
    44  
    45  	registry.RegisterImplementations(
    46  		(*govtypes.Content)(nil),
    47  		&SetConfigProposal{},
    48  		&SetBatchConfigProposal{},
    49  	)
    50  
    51  	msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
    52  }
    53  
    54  var (
    55  	// ModuleCdc references the global modules/ocr module codec. Note, the codec should
    56  	// ONLY be used in certain instances of tests and for JSON encoding as Amino is
    57  	// still used for that purpose.
    58  	//
    59  	// The actual codec used for serialization should be provided to x/insurance and
    60  	// defined at the application level.
    61  	ModuleCdc = codec.NewLegacyAmino()
    62  )
    63  
    64  func init() {
    65  	RegisterLegacyAminoCodec(ModuleCdc)
    66  	cryptocodec.RegisterCrypto(ModuleCdc)
    67  	ModuleCdc.Seal()
    68  
    69  	// TODO: check
    70  	// RegisterLegacyAminoCodec(govcdc.Amino)
    71  	// RegisterLegacyAminoCodec(groupcdc.Amino)
    72  	RegisterLegacyAminoCodec(authzcdc.Amino)
    73  }