package protocol // Features holds all variables for the exchanges supported features // for a protocol (e.g REST or Websocket) type Features struct { TickerBatching bool `json:"tickerBatching,omitempty"` AutoPairUpdates bool `json:"autoPairUpdates,omitempty"` AccountBalance bool `json:"accountBalance,omitempty"` CryptoDeposit bool `json:"cryptoDeposit,omitempty"` CryptoWithdrawal bool `json:"cryptoWithdrawal,omitempty"` FiatWithdraw bool `json:"fiatWithdraw,omitempty"` GetOrder bool `json:"getOrder,omitempty"` GetOrders bool `json:"getOrders,omitempty"` CancelOrders bool `json:"cancelOrders,omitempty"` CancelOrder bool `json:"cancelOrder,omitempty"` SubmitOrder bool `json:"submitOrder,omitempty"` SubmitOrders bool `json:"submitOrders,omitempty"` ModifyOrder bool `json:"modifyOrder,omitempty"` DepositHistory bool `json:"depositHistory,omitempty"` WithdrawalHistory bool `json:"withdrawalHistory,omitempty"` TradeHistory bool `json:"tradeHistory,omitempty"` UserTradeHistory bool `json:"userTradeHistory,omitempty"` TradeFee bool `json:"tradeFee,omitempty"` FiatDepositFee bool `json:"fiatDepositFee,omitempty"` FiatWithdrawalFee bool `json:"fiatWithdrawalFee,omitempty"` CryptoDepositFee bool `json:"cryptoDepositFee,omitempty"` CryptoWithdrawalFee bool `json:"cryptoWithdrawalFee,omitempty"` TickerFetching bool `json:"tickerFetching,omitempty"` KlineFetching bool `json:"klineFetching,omitempty"` TradeFetching bool `json:"tradeFetching,omitempty"` OrderbookFetching bool `json:"orderbookFetching,omitempty"` AccountInfo bool `json:"accountInfo,omitempty"` FiatDeposit bool `json:"fiatDeposit,omitempty"` DeadMansSwitch bool `json:"deadMansSwitch,omitempty"` FundingRateFetching bool `json:"fundingRateFetching"` PredictedFundingRate bool `json:"predictedFundingRate,omitempty"` Subscribe bool `json:"subscribe,omitempty"` Unsubscribe bool `json:"unsubscribe,omitempty"` AuthenticatedEndpoints bool `json:"authenticatedEndpoints,omitempty"` MessageCorrelation bool `json:"messageCorrelation,omitempty"` MessageSequenceNumbers bool `json:"messageSequenceNumbers,omitempty"` CandleHistory bool `json:"candlehistory,omitempty"` MultiChainDeposits bool `json:"multiChainDeposits,omitempty"` MultiChainWithdrawals bool `json:"multiChainWithdrawals,omitempty"` MultiChainDepositRequiresChainSet bool `json:"multiChainDepositRequiresChainSet,omitempty"` // HasAssetTypeAccountSegregation is when the assets are divided into asset // types instead of just being denoted as spot holdings. HasAssetTypeAccountSegregation bool `json:"hasAssetTypeAccountSegregation,omitempty"` } // TradingRequirements defines the requirements for trading on the exchange. type TradingRequirements struct { // SpotMarketBuyQuotation requires the amount to be in quote currency SpotMarketBuyQuotation bool // SpotMarketSellBase requires the amount to be in the base currency SpotMarketSellBase bool // ClientOrderID is a unique identifier for the order that is generated by // the client and is required for order submission. ClientOrderID bool }