github.com/InjectiveLabs/sdk-go@v1.53.0/chain/exchange/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 "github.com/cosmos/cosmos-sdk/x/authz" 10 authzcdc "github.com/cosmos/cosmos-sdk/x/authz/codec" 11 govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" 12 "github.com/cosmos/gogoproto/proto" 13 ) 14 15 // RegisterLegacyAminoCodec registers the necessary x/exchange interfaces and concrete types 16 // on the provided LegacyAmino codec. These types are used for Amino JSON serialization. 17 func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { 18 cdc.RegisterConcrete(&MsgDeposit{}, "exchange/MsgDeposit", nil) 19 cdc.RegisterConcrete(&MsgWithdraw{}, "exchange/MsgWithdraw", nil) 20 cdc.RegisterConcrete(&MsgInstantSpotMarketLaunch{}, "exchange/MsgInstantSpotMarketLaunch", nil) 21 cdc.RegisterConcrete(&MsgInstantPerpetualMarketLaunch{}, "exchange/MsgInstantPerpetualMarketLaunch", nil) 22 cdc.RegisterConcrete(&MsgInstantExpiryFuturesMarketLaunch{}, "exchange/MsgInstantExpiryFuturesMarketLaunch", nil) 23 cdc.RegisterConcrete(&MsgCreateSpotLimitOrder{}, "exchange/MsgCreateSpotLimitOrder", nil) 24 cdc.RegisterConcrete(&MsgBatchCreateSpotLimitOrders{}, "exchange/MsgBatchCreateSpotLimitOrders", nil) 25 cdc.RegisterConcrete(&MsgCreateSpotMarketOrder{}, "exchange/MsgCreateSpotMarketOrder", nil) 26 cdc.RegisterConcrete(&MsgCancelSpotOrder{}, "exchange/MsgCancelSpotOrder", nil) 27 cdc.RegisterConcrete(&MsgBatchCancelSpotOrders{}, "exchange/MsgBatchCancelSpotOrders", nil) 28 cdc.RegisterConcrete(&MsgCreateDerivativeLimitOrder{}, "exchange/MsgCreateDerivativeLimitOrder", nil) 29 cdc.RegisterConcrete(&MsgBatchCreateDerivativeLimitOrders{}, "exchange/MsgBatchCreateDerivativeLimitOrders", nil) 30 cdc.RegisterConcrete(&MsgCreateDerivativeMarketOrder{}, "exchange/MsgCreateDerivativeMarketOrder", nil) 31 cdc.RegisterConcrete(&MsgCancelDerivativeOrder{}, "exchange/MsgCancelDerivativeOrder", nil) 32 cdc.RegisterConcrete(&MsgBatchCancelDerivativeOrders{}, "exchange/MsgBatchCancelDerivativeOrders", nil) 33 cdc.RegisterConcrete(&MsgBatchCancelBinaryOptionsOrders{}, "exchange/MsgBatchCancelBinaryOptionsOrders", nil) 34 cdc.RegisterConcrete(&MsgSubaccountTransfer{}, "exchange/MsgSubaccountTransfer", nil) 35 cdc.RegisterConcrete(&MsgExternalTransfer{}, "exchange/MsgExternalTransfer", nil) 36 cdc.RegisterConcrete(&MsgIncreasePositionMargin{}, "exchange/MsgIncreasePositionMargin", nil) 37 cdc.RegisterConcrete(&MsgLiquidatePosition{}, "exchange/MsgLiquidatePosition", nil) 38 cdc.RegisterConcrete(&MsgBatchUpdateOrders{}, "exchange/MsgBatchUpdateOrders", nil) 39 cdc.RegisterConcrete(&MsgPrivilegedExecuteContract{}, "exchange/MsgPrivilegedExecuteContract", nil) 40 cdc.RegisterConcrete(&MsgRewardsOptOut{}, "exchange/MsgRewardsOptOut", nil) 41 cdc.RegisterConcrete(&MsgInstantBinaryOptionsMarketLaunch{}, "exchange/MsgInstantBinaryOptionsMarketLaunch", nil) 42 cdc.RegisterConcrete(&MsgCreateBinaryOptionsLimitOrder{}, "exchange/MsgCreateBinaryOptionsLimitOrder", nil) 43 cdc.RegisterConcrete(&MsgCreateBinaryOptionsMarketOrder{}, "exchange/MsgCreateBinaryOptionsMarketOrder", nil) 44 cdc.RegisterConcrete(&MsgCancelBinaryOptionsOrder{}, "exchange/MsgCancelBinaryOptionsOrder", nil) 45 cdc.RegisterConcrete(&MsgAdminUpdateBinaryOptionsMarket{}, "exchange/MsgAdminUpdateBinaryOptionsMarket", nil) 46 cdc.RegisterConcrete(&MsgUpdateParams{}, "exchange/MsgUpdateParams", nil) 47 cdc.RegisterConcrete(&MsgUpdateSpotMarket{}, "exchange/MsgUpdateSpotMarket", nil) 48 cdc.RegisterConcrete(&MsgUpdateDerivativeMarket{}, "exchange/MsgUpdateDerivativeMarket", nil) 49 50 cdc.RegisterConcrete(&ExchangeEnableProposal{}, "exchange/ExchangeEnableProposal", nil) 51 cdc.RegisterConcrete(&BatchExchangeModificationProposal{}, "exchange/BatchExchangeModificationProposal", nil) 52 cdc.RegisterConcrete(&SpotMarketParamUpdateProposal{}, "exchange/SpotMarketParamUpdateProposal", nil) 53 cdc.RegisterConcrete(&SpotMarketLaunchProposal{}, "exchange/SpotMarketLaunchProposal", nil) 54 cdc.RegisterConcrete(&PerpetualMarketLaunchProposal{}, "exchange/PerpetualMarketLaunchProposal", nil) 55 cdc.RegisterConcrete(&ExpiryFuturesMarketLaunchProposal{}, "exchange/ExpiryFuturesMarketLaunchProposal", nil) 56 cdc.RegisterConcrete(&DerivativeMarketParamUpdateProposal{}, "exchange/DerivativeMarketParamUpdateProposal", nil) 57 cdc.RegisterConcrete(&MarketForcedSettlementProposal{}, "exchange/MarketForcedSettlementProposal", nil) 58 cdc.RegisterConcrete(&UpdateDenomDecimalsProposal{}, "exchange/UpdateDenomDecimalsProposal", nil) 59 cdc.RegisterConcrete(&TradingRewardCampaignLaunchProposal{}, "exchange/TradingRewardCampaignLaunchProposal", nil) 60 cdc.RegisterConcrete(&TradingRewardCampaignUpdateProposal{}, "exchange/TradingRewardCampaignUpdateProposal", nil) 61 cdc.RegisterConcrete(&TradingRewardPendingPointsUpdateProposal{}, "exchange/TradingRewardPendingPointsUpdateProposal", nil) 62 cdc.RegisterConcrete(&FeeDiscountProposal{}, "exchange/FeeDiscountProposal", nil) 63 cdc.RegisterConcrete(&BatchCommunityPoolSpendProposal{}, "exchange/BatchCommunityPoolSpendProposal", nil) 64 cdc.RegisterConcrete(&BinaryOptionsMarketParamUpdateProposal{}, "exchange/BinaryOptionsMarketParamUpdateProposal", nil) 65 cdc.RegisterConcrete(&BinaryOptionsMarketLaunchProposal{}, "exchange/BinaryOptionsMarketLaunchProposal", nil) 66 cdc.RegisterConcrete(&AtomicMarketOrderFeeMultiplierScheduleProposal{}, "exchange/AtomicMarketOrderFeeMultiplierScheduleProposal", nil) 67 68 cdc.RegisterConcrete(&CreateSpotLimitOrderAuthz{}, "exchange/CreateSpotLimitOrderAuthz", nil) 69 cdc.RegisterConcrete(&CreateSpotMarketOrderAuthz{}, "exchange/CreateSpotMarketOrderAuthz", nil) 70 cdc.RegisterConcrete(&BatchCreateSpotLimitOrdersAuthz{}, "exchange/BatchCreateSpotLimitOrdersAuthz", nil) 71 cdc.RegisterConcrete(&CancelSpotOrderAuthz{}, "exchange/CancelSpotOrderAuthz", nil) 72 cdc.RegisterConcrete(&BatchCancelSpotOrdersAuthz{}, "exchange/BatchCancelSpotOrdersAuthz", nil) 73 cdc.RegisterConcrete(&CreateDerivativeLimitOrderAuthz{}, "exchange/CreateDerivativeLimitOrderAuthz", nil) 74 cdc.RegisterConcrete(&CreateDerivativeMarketOrderAuthz{}, "exchange/CreateDerivativeMarketOrderAuthz", nil) 75 cdc.RegisterConcrete(&BatchCreateDerivativeLimitOrdersAuthz{}, "exchange/BatchCreateDerivativeLimitOrdersAuthz", nil) 76 cdc.RegisterConcrete(&CancelDerivativeOrderAuthz{}, "exchange/CancelDerivativeOrderAuthz", nil) 77 cdc.RegisterConcrete(&BatchCancelDerivativeOrdersAuthz{}, "exchange/BatchCancelDerivativeOrdersAuthz", nil) 78 cdc.RegisterConcrete(&BatchUpdateOrdersAuthz{}, "exchange/BatchUpdateOrdersAuthz", nil) 79 80 cdc.RegisterConcrete(&Params{}, "exchange/Params", nil) 81 } 82 83 func RegisterInterfaces(registry types.InterfaceRegistry) { 84 registry.RegisterImplementations((*sdk.Msg)(nil), 85 &MsgDeposit{}, 86 &MsgWithdraw{}, 87 &MsgInstantSpotMarketLaunch{}, 88 &MsgInstantPerpetualMarketLaunch{}, 89 &MsgInstantExpiryFuturesMarketLaunch{}, 90 &MsgCreateSpotLimitOrder{}, 91 &MsgBatchCreateSpotLimitOrders{}, 92 &MsgCreateSpotMarketOrder{}, 93 &MsgCancelSpotOrder{}, 94 &MsgBatchCancelSpotOrders{}, 95 &MsgCreateDerivativeLimitOrder{}, 96 &MsgBatchCreateDerivativeLimitOrders{}, 97 &MsgCreateDerivativeMarketOrder{}, 98 &MsgCancelDerivativeOrder{}, 99 &MsgBatchCancelDerivativeOrders{}, 100 &MsgBatchCancelBinaryOptionsOrders{}, 101 &MsgSubaccountTransfer{}, 102 &MsgExternalTransfer{}, 103 &MsgIncreasePositionMargin{}, 104 &MsgLiquidatePosition{}, 105 &MsgBatchUpdateOrders{}, 106 &MsgPrivilegedExecuteContract{}, 107 &MsgRewardsOptOut{}, 108 &MsgInstantBinaryOptionsMarketLaunch{}, 109 &MsgCreateBinaryOptionsLimitOrder{}, 110 &MsgCreateBinaryOptionsMarketOrder{}, 111 &MsgCancelBinaryOptionsOrder{}, 112 &MsgAdminUpdateBinaryOptionsMarket{}, 113 &MsgUpdateParams{}, 114 &MsgUpdateSpotMarket{}, 115 &MsgUpdateDerivativeMarket{}, 116 ) 117 118 registry.RegisterImplementations( 119 (*proto.Message)(nil), 120 &MsgCreateSpotLimitOrderResponse{}, 121 &MsgCreateSpotMarketOrderResponse{}, 122 &MsgBatchCreateSpotLimitOrdersResponse{}, 123 &MsgCreateDerivativeLimitOrderResponse{}, 124 &MsgCreateDerivativeMarketOrderResponse{}, 125 &MsgBatchCreateDerivativeLimitOrdersResponse{}, 126 &MsgCreateBinaryOptionsLimitOrderResponse{}, 127 &MsgCreateBinaryOptionsMarketOrderResponse{}, 128 &MsgBatchUpdateOrdersResponse{}, 129 ) 130 131 registry.RegisterImplementations( 132 (*govtypes.Content)(nil), 133 &ExchangeEnableProposal{}, 134 &BatchExchangeModificationProposal{}, 135 &SpotMarketParamUpdateProposal{}, 136 &SpotMarketLaunchProposal{}, 137 &PerpetualMarketLaunchProposal{}, 138 &ExpiryFuturesMarketLaunchProposal{}, 139 &DerivativeMarketParamUpdateProposal{}, 140 &MarketForcedSettlementProposal{}, 141 &UpdateDenomDecimalsProposal{}, 142 &TradingRewardCampaignLaunchProposal{}, 143 &TradingRewardCampaignUpdateProposal{}, 144 &TradingRewardPendingPointsUpdateProposal{}, 145 &FeeDiscountProposal{}, 146 &BatchCommunityPoolSpendProposal{}, 147 &BinaryOptionsMarketParamUpdateProposal{}, 148 &BinaryOptionsMarketLaunchProposal{}, 149 &AtomicMarketOrderFeeMultiplierScheduleProposal{}, 150 ) 151 152 registry.RegisterImplementations( 153 (*authz.Authorization)(nil), 154 // spot authz 155 &CreateSpotLimitOrderAuthz{}, 156 &CreateSpotMarketOrderAuthz{}, 157 &BatchCreateSpotLimitOrdersAuthz{}, 158 &CancelSpotOrderAuthz{}, 159 &BatchCancelSpotOrdersAuthz{}, 160 // derivative authz 161 &CreateDerivativeLimitOrderAuthz{}, 162 &CreateDerivativeMarketOrderAuthz{}, 163 &BatchCreateDerivativeLimitOrdersAuthz{}, 164 &CancelDerivativeOrderAuthz{}, 165 &BatchCancelDerivativeOrdersAuthz{}, 166 // common spot, derivative authz 167 &BatchUpdateOrdersAuthz{}, 168 ) 169 170 msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) 171 } 172 173 var ( 174 // ModuleCdc references the global x/exchange module codec. Note, the codec should 175 // ONLY be used in certain instances of tests and for JSON encoding as Amino is 176 // still used for that purpose. 177 // 178 // The actual codec used for serialization should be provided to x/exchange and 179 // defined at the application level. 180 ModuleCdc = codec.NewLegacyAmino() 181 ) 182 183 func init() { 184 RegisterLegacyAminoCodec(ModuleCdc) 185 cryptocodec.RegisterCrypto(ModuleCdc) 186 RegisterLegacyAminoCodec(authzcdc.Amino) 187 188 ModuleCdc.Seal() 189 }