github.com/Finschia/finschia-sdk@v0.48.1/x/collection/codec.go (about)

     1  package collection
     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  	authzcodec "github.com/Finschia/finschia-sdk/x/authz/codec"
    11  	fdncodec "github.com/Finschia/finschia-sdk/x/foundation/codec"
    12  	govcodec "github.com/Finschia/finschia-sdk/x/gov/codec"
    13  )
    14  
    15  // RegisterLegacyAminoCodec registers concrete types on the LegacyAmino codec
    16  func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) {
    17  	legacy.RegisterAminoMsg(cdc, &MsgSendFT{}, "lbm-sdk/MsgSendFT")
    18  	legacy.RegisterAminoMsg(cdc, &MsgOperatorSendFT{}, "lbm-sdk/MsgOperatorSendFT")
    19  	legacy.RegisterAminoMsg(cdc, &MsgSendNFT{}, "lbm-sdk/MsgSendNFT")
    20  	legacy.RegisterAminoMsg(cdc, &MsgOperatorSendNFT{}, "lbm-sdk/MsgOperatorSendNFT")
    21  	legacy.RegisterAminoMsg(cdc, &MsgAuthorizeOperator{}, "lbm-sdk/collection/MsgAuthorizeOperator") // Changed msgName due to conflict with `x/token`
    22  	legacy.RegisterAminoMsg(cdc, &MsgRevokeOperator{}, "lbm-sdk/collection/MsgRevokeOperator")       // Changed msgName due to conflict with `x/token`
    23  	legacy.RegisterAminoMsg(cdc, &MsgCreateContract{}, "lbm-sdk/MsgCreateContract")
    24  	legacy.RegisterAminoMsg(cdc, &MsgIssueFT{}, "lbm-sdk/MsgIssueFT")
    25  	legacy.RegisterAminoMsg(cdc, &MsgIssueNFT{}, "lbm-sdk/MsgIssueNFT")
    26  	legacy.RegisterAminoMsg(cdc, &MsgMintFT{}, "lbm-sdk/MsgMintFT")
    27  	legacy.RegisterAminoMsg(cdc, &MsgMintNFT{}, "lbm-sdk/MsgMintNFT")
    28  	legacy.RegisterAminoMsg(cdc, &MsgBurnFT{}, "lbm-sdk/MsgBurnFT")
    29  	legacy.RegisterAminoMsg(cdc, &MsgOperatorBurnFT{}, "lbm-sdk/MsgOperatorBurnFT")
    30  	legacy.RegisterAminoMsg(cdc, &MsgBurnNFT{}, "lbm-sdk/MsgBurnNFT")
    31  	legacy.RegisterAminoMsg(cdc, &MsgOperatorBurnNFT{}, "lbm-sdk/MsgOperatorBurnNFT")
    32  	legacy.RegisterAminoMsg(cdc, &MsgModify{}, "lbm-sdk/collection/MsgModify")                     // Changed msgName due to conflict with `x/token`
    33  	legacy.RegisterAminoMsg(cdc, &MsgGrantPermission{}, "lbm-sdk/collection/MsgGrantPermission")   // Changed msgName due to conflict with `x/token`
    34  	legacy.RegisterAminoMsg(cdc, &MsgRevokePermission{}, "lbm-sdk/collection/MsgRevokePermission") // Changed msgName due to conflict with `x/token`
    35  	legacy.RegisterAminoMsg(cdc, &MsgAttach{}, "lbm-sdk/MsgAttach")
    36  	legacy.RegisterAminoMsg(cdc, &MsgDetach{}, "lbm-sdk/MsgDetach")
    37  	legacy.RegisterAminoMsg(cdc, &MsgOperatorAttach{}, "lbm-sdk/MsgOperatorAttach")
    38  	legacy.RegisterAminoMsg(cdc, &MsgOperatorDetach{}, "lbm-sdk/MsgOperatorDetach")
    39  }
    40  
    41  func RegisterInterfaces(registry types.InterfaceRegistry) {
    42  	registry.RegisterImplementations((*sdk.Msg)(nil),
    43  		&MsgCreateContract{},
    44  		&MsgIssueFT{},
    45  		&MsgIssueNFT{},
    46  		&MsgMintFT{},
    47  		&MsgMintNFT{},
    48  		&MsgAttach{},
    49  		&MsgDetach{},
    50  		&MsgSendFT{},
    51  		&MsgOperatorSendFT{},
    52  		&MsgSendNFT{},
    53  		&MsgOperatorSendNFT{},
    54  		&MsgAuthorizeOperator{},
    55  		&MsgRevokeOperator{},
    56  		&MsgBurnFT{},
    57  		&MsgOperatorBurnFT{},
    58  		&MsgBurnNFT{},
    59  		&MsgOperatorBurnNFT{},
    60  		&MsgModify{},
    61  		&MsgGrantPermission{},
    62  		&MsgRevokePermission{},
    63  		&MsgOperatorAttach{},
    64  		&MsgOperatorDetach{},
    65  	)
    66  
    67  	registry.RegisterInterface(
    68  		"lbm.collection.v1.TokenClass",
    69  		(*TokenClass)(nil),
    70  		&FTClass{},
    71  		&NFTClass{},
    72  	)
    73  
    74  	registry.RegisterInterface(
    75  		"lbm.collection.v1.Token",
    76  		(*Token)(nil),
    77  		&FT{},
    78  		&OwnerNFT{},
    79  	)
    80  
    81  	msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc)
    82  }
    83  
    84  var (
    85  	amino     = codec.NewLegacyAmino()
    86  	ModuleCdc = codec.NewAminoCodec(amino)
    87  )
    88  
    89  func init() {
    90  	RegisterLegacyAminoCodec(amino)
    91  	cryptocodec.RegisterCrypto(amino)
    92  	sdk.RegisterLegacyAminoCodec(amino)
    93  
    94  	// Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be
    95  	// used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances
    96  	RegisterLegacyAminoCodec(authzcodec.Amino)
    97  	RegisterLegacyAminoCodec(govcodec.Amino)
    98  	RegisterLegacyAminoCodec(fdncodec.Amino)
    99  }