mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-16 07:26:47 +00:00
* Adding Bybit public endpoints * Completed adding market endpoints * Added trade endpoints * Adding position endpoints * completing position endpoints * Adding Pre-upgrade endpoints * Completed adding Pre-upgrade and Account endpoints * Added asset endpoints * Added user endpoints and unit tests * Adding spot leverage and margin trade endpoints * spot margin trade added * added spot-margin-trade, institutional lending, c2c lending, and broker * Adding wrapper funnctions * Working on wrapper public methods * Added wrapper functions and unit tests * Added websocket support with unit tests * Update websocket handlers and added rate-limiter * wrapper function, websocket handlers, and linter issues fixe * unit tests fixes and codespell correction * Update documentation * Minor websocket handling fix and URL consts merging * types, unit test other updates * Updated websocket and methods based on review * Added GetFeeByType method with unit test and fixes * add filter for Unified and Normal endpoints * Mock recording and unit tests update * minor linter issue fix * websocket and rest tests and fix * change asset types and wrapper methods update * rm: forgotten panic message * endpoints, websocket and unit tests update * Added and updated endpoints and unit test * linter and spell fix * unit test and orders update * Update on endpoints, fields, config pairs and formating, and unit tests * minor update on responses * Fix unit test and types * Unit tests, models, and wrapper issues fix and mock test recording * rm print statement * Fix issue, add FundingRate wrapper func, mock record * minor type and unit test update * Update on order handling and unit test * Minor test * Minor fix in wrapper * unit tests update, recording, and documentation update * Unit tests and minor wrapper function update * minor unit test fix * Added newly added endpoints, unit tests, and mock recording * Rename GetInstruments -> GetInstrumentInfo * doc update * Minor unit tests update * Minor unit test and wrapper update * Fix linter issue * Add unit test and minor updates * Revert websocket error declaration * Revert websocket error declaration * Balace --> Balance * Fix config issues * Added next funding time minor fix * Update GetLatestFundingRates and record mock test data * Added LatestFundingRate time * Fix test issue of TestAllExchangeWrappers * config pairs update * configtest spot pairs update * Minor update on options UpdateOrderExecutionLimits wrapper func * Linter issue fix and added new currency codes * Added new currency codes * Update bybit pairs in config_example * config assets pair format update
1058 lines
45 KiB
Go
1058 lines
45 KiB
Go
package okx
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"time"
|
|
|
|
"github.com/thrasher-corp/gocryptotrader/exchanges/request"
|
|
"golang.org/x/time/rate"
|
|
)
|
|
|
|
// Ratelimit intervals.
|
|
const (
|
|
oneSecondInterval = time.Second
|
|
twoSecondsInterval = 2 * time.Second
|
|
threeSecondsInterval = 3 * time.Second
|
|
fiveSecondsInterval = 5 * time.Second
|
|
tenSecondsInterval = 10 * time.Second
|
|
)
|
|
|
|
// RateLimit implements the request.Limiter interface
|
|
type RateLimit struct {
|
|
// Trade Endpoints
|
|
PlaceOrder *rate.Limiter
|
|
PlaceMultipleOrders *rate.Limiter
|
|
CancelOrder *rate.Limiter
|
|
CancelMultipleOrders *rate.Limiter
|
|
AmendOrder *rate.Limiter
|
|
AmendMultipleOrders *rate.Limiter
|
|
CloseDeposit *rate.Limiter
|
|
GetOrderDetails *rate.Limiter
|
|
GetOrderList *rate.Limiter
|
|
GetOrderHistory7Days *rate.Limiter
|
|
GetOrderHistory3Months *rate.Limiter
|
|
GetTransactionDetail3Days *rate.Limiter
|
|
GetTransactionDetail3Months *rate.Limiter
|
|
PlaceAlgoOrder *rate.Limiter
|
|
CancelAlgoOrder *rate.Limiter
|
|
CancelAdvanceAlgoOrder *rate.Limiter
|
|
GetAlgoOrderList *rate.Limiter
|
|
GetAlgoOrderHistory *rate.Limiter
|
|
GetEasyConvertCurrencyList *rate.Limiter
|
|
PlaceEasyConvert *rate.Limiter
|
|
GetEasyConvertHistory *rate.Limiter
|
|
GetOneClickRepayHistory *rate.Limiter
|
|
OneClickRepayCurrencyList *rate.Limiter
|
|
TradeOneClickRepay *rate.Limiter
|
|
// Block Trading endpoints
|
|
GetCounterparties *rate.Limiter
|
|
CreateRfq *rate.Limiter
|
|
CancelRfq *rate.Limiter
|
|
CancelMultipleRfq *rate.Limiter
|
|
CancelAllRfqs *rate.Limiter
|
|
ExecuteQuote *rate.Limiter
|
|
SetQuoteProducts *rate.Limiter
|
|
RestMMPStatus *rate.Limiter
|
|
CreateQuote *rate.Limiter
|
|
CancelQuote *rate.Limiter
|
|
CancelMultipleQuotes *rate.Limiter
|
|
CancelAllQuotes *rate.Limiter
|
|
GetRfqs *rate.Limiter
|
|
GetQuotes *rate.Limiter
|
|
GetTrades *rate.Limiter
|
|
GetTradesHistory *rate.Limiter
|
|
GetPublicTrades *rate.Limiter
|
|
// Funding
|
|
GetCurrencies *rate.Limiter
|
|
GetBalance *rate.Limiter
|
|
GetAccountAssetValuation *rate.Limiter
|
|
FundsTransfer *rate.Limiter
|
|
GetFundsTransferState *rate.Limiter
|
|
AssetBillsDetails *rate.Limiter
|
|
LightningDeposits *rate.Limiter
|
|
GetDepositAddress *rate.Limiter
|
|
GetDepositHistory *rate.Limiter
|
|
Withdrawal *rate.Limiter
|
|
LightningWithdrawals *rate.Limiter
|
|
CancelWithdrawal *rate.Limiter
|
|
GetWithdrawalHistory *rate.Limiter
|
|
SmallAssetsConvert *rate.Limiter
|
|
// Savings
|
|
GetSavingBalance *rate.Limiter
|
|
SavingsPurchaseRedempt *rate.Limiter
|
|
SetLendingRate *rate.Limiter
|
|
GetLendingHistory *rate.Limiter
|
|
GetPublicBorrowInfo *rate.Limiter
|
|
GetPublicBorrowHistory *rate.Limiter
|
|
// Convert
|
|
GetConvertCurrencies *rate.Limiter
|
|
GetConvertCurrencyPair *rate.Limiter
|
|
EstimateQuote *rate.Limiter
|
|
ConvertTrade *rate.Limiter
|
|
GetConvertHistory *rate.Limiter
|
|
// Account
|
|
GetAccountBalance *rate.Limiter
|
|
GetPositions *rate.Limiter
|
|
GetPositionsHistory *rate.Limiter
|
|
GetAccountAndPositionRisk *rate.Limiter
|
|
GetBillsDetails *rate.Limiter
|
|
GetAccountConfiguration *rate.Limiter
|
|
SetPositionMode *rate.Limiter
|
|
SetLeverage *rate.Limiter
|
|
GetMaximumBuyOrSellAmount *rate.Limiter
|
|
GetMaximumAvailableTradableAmount *rate.Limiter
|
|
IncreaseOrDecreaseMargin *rate.Limiter
|
|
GetLeverage *rate.Limiter
|
|
GetTheMaximumLoanOfInstrument *rate.Limiter
|
|
GetFeeRates *rate.Limiter
|
|
GetInterestAccruedData *rate.Limiter
|
|
GetInterestRate *rate.Limiter
|
|
SetGreeks *rate.Limiter
|
|
IsolatedMarginTradingSettings *rate.Limiter
|
|
GetMaximumWithdrawals *rate.Limiter
|
|
GetAccountRiskState *rate.Limiter
|
|
VipLoansBorrowAnsRepay *rate.Limiter
|
|
GetBorrowAnsRepayHistoryHistory *rate.Limiter
|
|
GetBorrowInterestAndLimit *rate.Limiter
|
|
PositionBuilder *rate.Limiter
|
|
GetGreeks *rate.Limiter
|
|
GetPMLimitation *rate.Limiter
|
|
// Sub Account Endpoints
|
|
ViewSubaccountList *rate.Limiter
|
|
ResetSubAccountAPIKey *rate.Limiter
|
|
GetSubaccountTradingBalance *rate.Limiter
|
|
GetSubaccountFundingBalance *rate.Limiter
|
|
HistoryOfSubaccountTransfer *rate.Limiter
|
|
MasterAccountsManageTransfersBetweenSubaccount *rate.Limiter
|
|
SetPermissionOfTransferOut *rate.Limiter
|
|
GetCustodyTradingSubaccountList *rate.Limiter
|
|
GridTrading *rate.Limiter
|
|
AmendGridAlgoOrder *rate.Limiter
|
|
StopGridAlgoOrder *rate.Limiter
|
|
GetGridAlgoOrderList *rate.Limiter
|
|
GetGridAlgoOrderHistory *rate.Limiter
|
|
GetGridAlgoOrderDetails *rate.Limiter
|
|
GetGridAlgoSubOrders *rate.Limiter
|
|
GetGridAlgoOrderPositions *rate.Limiter
|
|
SpotGridWithdrawIncome *rate.Limiter
|
|
ComputeMarginBalance *rate.Limiter
|
|
AdjustMarginBalance *rate.Limiter
|
|
GetGridAIParameter *rate.Limiter
|
|
// Earn
|
|
GetOffer *rate.Limiter
|
|
Purchase *rate.Limiter
|
|
Redeem *rate.Limiter
|
|
CancelPurchaseOrRedemption *rate.Limiter
|
|
GetEarnActiveOrders *rate.Limiter
|
|
GetFundingOrderHistory *rate.Limiter
|
|
// Market Data
|
|
GetTickers *rate.Limiter
|
|
GetIndexTickers *rate.Limiter
|
|
GetOrderBook *rate.Limiter
|
|
GetCandlesticks *rate.Limiter
|
|
GetCandlesticksHistory *rate.Limiter
|
|
GetIndexCandlesticks *rate.Limiter
|
|
GetMarkPriceCandlesticks *rate.Limiter
|
|
GetTradesRequest *rate.Limiter
|
|
Get24HTotalVolume *rate.Limiter
|
|
GetOracle *rate.Limiter
|
|
GetExchangeRateRequest *rate.Limiter
|
|
GetIndexComponents *rate.Limiter
|
|
GetBlockTickers *rate.Limiter
|
|
GetBlockTrades *rate.Limiter
|
|
// Public Data Endpoints
|
|
GetInstruments *rate.Limiter
|
|
GetDeliveryExerciseHistory *rate.Limiter
|
|
GetOpenInterest *rate.Limiter
|
|
GetFunding *rate.Limiter
|
|
GetFundingRateHistory *rate.Limiter
|
|
GetLimitPrice *rate.Limiter
|
|
GetOptionMarketDate *rate.Limiter
|
|
GetEstimatedDeliveryExercisePrice *rate.Limiter
|
|
GetDiscountRateAndInterestFreeQuota *rate.Limiter
|
|
GetSystemTime *rate.Limiter
|
|
GetLiquidationOrders *rate.Limiter
|
|
GetMarkPrice *rate.Limiter
|
|
GetPositionTiers *rate.Limiter
|
|
GetInterestRateAndLoanQuota *rate.Limiter
|
|
GetInterestRateAndLoanQuoteForVIPLoans *rate.Limiter
|
|
GetUnderlying *rate.Limiter
|
|
GetInsuranceFund *rate.Limiter
|
|
UnitConvert *rate.Limiter
|
|
// Trading Data Endpoints
|
|
GetSupportCoin *rate.Limiter
|
|
GetTakerVolume *rate.Limiter
|
|
GetMarginLendingRatio *rate.Limiter
|
|
GetLongShortRatio *rate.Limiter
|
|
GetContractsOpenInterestAndVolume *rate.Limiter
|
|
GetOptionsOpenInterestAndVolume *rate.Limiter
|
|
GetPutCallRatio *rate.Limiter
|
|
GetOpenInterestAndVolume *rate.Limiter
|
|
GetTakerFlow *rate.Limiter
|
|
// Status Endpoints
|
|
GetEventStatus *rate.Limiter
|
|
}
|
|
|
|
const (
|
|
// Trade Endpoints
|
|
placeOrderRate = 60
|
|
placeMultipleOrdersRate = 300
|
|
cancelOrderRate = 60
|
|
cancelMultipleOrdersRate = 300
|
|
amendOrderRate = 60
|
|
amendMultipleOrdersRate = 300
|
|
closeDepositions = 20
|
|
getOrderDetails = 60
|
|
getOrderListRate = 60
|
|
getOrderHistory7DaysRate = 40
|
|
getOrderHistory3MonthsRate = 20
|
|
getTransactionDetail3DaysRate = 60
|
|
getTransactionDetail3MonthsRate = 10
|
|
placeAlgoOrderRate = 20
|
|
cancelAlgoOrderRate = 20
|
|
cancelAdvanceAlgoOrderRate = 20
|
|
getAlgoOrderListRate = 20
|
|
getAlgoOrderHistoryRate = 20
|
|
getEasyConvertCurrencyListRate = 1
|
|
placeEasyConvert = 1
|
|
getEasyConvertHistory = 1
|
|
oneClickRepayCurrencyList = 1
|
|
tradeOneClickRepay = 1
|
|
getOneClickRepayHistory = 1
|
|
|
|
// Block Trading endpoints
|
|
getCounterpartiesRate = 5
|
|
createRfqRate = 5
|
|
cancelRfqRate = 5
|
|
cancelMultipleRfqRate = 2
|
|
cancelAllRfqsRate = 2
|
|
executeQuoteRate = 2
|
|
setQuoteProducts = 5
|
|
restMMPStatus = 5
|
|
createQuoteRate = 50
|
|
cancelQuoteRate = 50
|
|
cancelMultipleQuotesRate = 2
|
|
cancelAllQuotes = 2
|
|
getRfqsRate = 2
|
|
getQuotesRate = 2
|
|
getTradesRate = 5
|
|
getTradesHistoryRate = 10
|
|
getPublicTradesRate = 5
|
|
|
|
// Funding
|
|
getCurrenciesRate = 6
|
|
getBalanceRate = 6
|
|
getAccountAssetValuationRate = 1
|
|
fundsTransferRate = 1
|
|
getFundsTransferStateRate = 1
|
|
assetBillsDetailsRate = 6
|
|
lightningDepositsRate = 2
|
|
getDepositAddressRate = 6
|
|
getDepositHistoryRate = 6
|
|
withdrawalRate = 6
|
|
lightningWithdrawalsRate = 2
|
|
cancelWithdrawalRate = 6
|
|
getWithdrawalHistoryRate = 6
|
|
smallAssetsConvertRate = 1
|
|
|
|
// Savings
|
|
getSavingBalanceRate = 6
|
|
savingsPurchaseRedemptionRate = 6
|
|
setLendingRateRate = 6
|
|
getLendingHistoryRate = 6
|
|
getPublicBorrowInfoRate = 6
|
|
getPublicBorrowHistoryRate = 6
|
|
|
|
// Convert
|
|
getConvertCurrenciesRate = 6
|
|
getConvertCurrencyPairRate = 6
|
|
estimateQuoteRate = 10
|
|
convertTradeRate = 10
|
|
getConvertHistoryRate = 6
|
|
|
|
// Account
|
|
getAccountBalanceRate = 10
|
|
getPositionsRate = 10
|
|
getPositionsHistoryRate = 1
|
|
getAccountAndPositionRiskRate = 10
|
|
getBillsDetailsRate = 6
|
|
getAccountConfigurationRate = 5
|
|
setPositionModeRate = 5
|
|
setLeverageRate = 20
|
|
getMaximumBuyOrSellAmountRate = 20
|
|
getMaximumAvailableTradableAmountRate = 20
|
|
increaseOrDecreaseMarginRate = 20
|
|
getLeverageRate = 20
|
|
getTheMaximumLoanOfInstrumentRate = 20
|
|
getFeeRatesRate = 5
|
|
getInterestAccruedDataRate = 5
|
|
getInterestRateRate = 5
|
|
setGreeksRate = 5
|
|
isolatedMarginTradingSettingsRate = 5
|
|
getMaximumWithdrawalsRate = 20
|
|
getAccountRiskStateRate = 10
|
|
vipLoansBorrowAndRepayRate = 6
|
|
getBorrowAnsRepayHistoryHistoryRate = 5
|
|
getBorrowInterestAndLimitRate = 5
|
|
positionBuilderRate = 2
|
|
getGreeksRate = 10
|
|
getPMLimitation = 10
|
|
|
|
// Sub Account Endpoints
|
|
viewSubaccountListRate = 2
|
|
resetSubAccountAPIKey = 1
|
|
getSubaccountTradingBalanceRate = 2
|
|
getSubaccountFundingBalanceRate = 2
|
|
historyOfSubaccountTransferRate = 6
|
|
masterAccountsManageTransfersBetweenSubaccountRate = 1
|
|
setPermissionOfTransferOutRate = 1
|
|
getCustodyTradingSubaccountListRate = 1
|
|
gridTradingRate = 20
|
|
amendGridAlgoOrderRate = 20
|
|
stopGridAlgoOrderRate = 20
|
|
getGridAlgoOrderListRate = 20
|
|
getGridAlgoOrderHistoryRate = 20
|
|
getGridAlgoOrderDetailsRate = 20
|
|
getGridAlgoSubOrdersRate = 20
|
|
getGridAlgoOrderPositionsRate = 20
|
|
spotGridWithdrawIncomeRate = 20
|
|
computeMarginBalance = 20
|
|
adjustMarginBalance = 20
|
|
getGridAIParameter = 20
|
|
|
|
// Earn
|
|
getOffer = 3
|
|
purchase = 2
|
|
redeem = 2
|
|
cancelPurchaseOrRedemption = 2
|
|
getEarnActiveOrders = 3
|
|
getFundingOrderHistory = 3
|
|
|
|
// Market Data
|
|
getTickersRate = 20
|
|
getIndexTickersRate = 20
|
|
getOrderBookRate = 20
|
|
getCandlesticksRate = 40
|
|
getCandlesticksHistoryRate = 20
|
|
getIndexCandlesticksRate = 20
|
|
getMarkPriceCandlesticksRate = 20
|
|
getTradesRequestRate = 100
|
|
get24HTotalVolumeRate = 2
|
|
getOracleRate = 1
|
|
getExchangeRateRequestRate = 1
|
|
getIndexComponentsRate = 20
|
|
getBlockTickersRate = 20
|
|
getBlockTradesRate = 20
|
|
|
|
// Public Data Endpoints
|
|
getInstrumentsRate = 20
|
|
getDeliveryExerciseHistoryRate = 40
|
|
getOpenInterestRate = 20
|
|
getFundingRate = 20
|
|
getFundingRateHistoryRate = 20
|
|
getLimitPriceRate = 20
|
|
getOptionMarketDateRate = 20
|
|
getEstimatedDeliveryExercisePriceRate = 10
|
|
getDiscountRateAndInterestFreeQuotaRate = 2
|
|
getSystemTimeRate = 10
|
|
getLiquidationOrdersRate = 40
|
|
getMarkPriceRate = 10
|
|
getPositionTiersRate = 10
|
|
getInterestRateAndLoanQuotaRate = 2
|
|
getInterestRateAndLoanQuoteForVIPLoansRate = 2
|
|
getUnderlyingRate = 20
|
|
getInsuranceFundRate = 10
|
|
unitConvertRate = 10
|
|
|
|
// Trading Data Endpoints
|
|
getSupportCoinRate = 5
|
|
getTakerVolumeRate = 5
|
|
getMarginLendingRatioRate = 5
|
|
getLongShortRatioRate = 5
|
|
getContractsOpenInterestAndVolumeRate = 5
|
|
getOptionsOpenInterestAndVolumeRate = 5
|
|
getPutCallRatioRate = 5
|
|
getOpenInterestAndVolumeRate = 5
|
|
getTakerFlowRate = 5
|
|
|
|
// Status Endpoints
|
|
getEventStatusRate = 1
|
|
)
|
|
|
|
const (
|
|
placeOrderEPL request.EndpointLimit = iota
|
|
placeMultipleOrdersEPL
|
|
cancelOrderEPL
|
|
cancelMultipleOrdersEPL
|
|
amendOrderEPL
|
|
amendMultipleOrdersEPL
|
|
closePositionEPL
|
|
getOrderDetEPL
|
|
getOrderListEPL
|
|
getOrderHistory7DaysEPL
|
|
getOrderHistory3MonthsEPL
|
|
getTransactionDetail3DaysEPL
|
|
getTransactionDetail3MonthsEPL
|
|
placeAlgoOrderEPL
|
|
cancelAlgoOrderEPL
|
|
cancelAdvanceAlgoOrderEPL
|
|
getAlgoOrderListEPL
|
|
getAlgoOrderHistoryEPL
|
|
getEasyConvertCurrencyListEPL
|
|
placeEasyConvertEPL
|
|
getEasyConvertHistoryEPL
|
|
getOneClickRepayHistoryEPL
|
|
oneClickRepayCurrencyListEPL
|
|
tradeOneClickRepayEPL
|
|
getCounterpartiesEPL
|
|
createRfqEPL
|
|
cancelRfqEPL
|
|
cancelMultipleRfqEPL
|
|
cancelAllRfqsEPL
|
|
executeQuoteEPL
|
|
setQuoteProductsEPL
|
|
restMMPStatusEPL
|
|
createQuoteEPL
|
|
cancelQuoteEPL
|
|
cancelMultipleQuotesEPL
|
|
cancelAllQuotesEPL
|
|
getRfqsEPL
|
|
getQuotesEPL
|
|
getTradesEPL
|
|
getTradesHistoryEPL
|
|
getPublicTradesEPL
|
|
getCurrenciesEPL
|
|
getBalanceEPL
|
|
getAccountAssetValuationEPL
|
|
fundsTransferEPL
|
|
getFundsTransferStateEPL
|
|
assetBillsDetailsEPL
|
|
lightningDepositsEPL
|
|
getDepositAddressEPL
|
|
getDepositHistoryEPL
|
|
withdrawalEPL
|
|
lightningWithdrawalsEPL
|
|
cancelWithdrawalEPL
|
|
getWithdrawalHistoryEPL
|
|
smallAssetsConvertEPL
|
|
getSavingBalanceEPL
|
|
savingsPurchaseRedemptionEPL
|
|
setLendingRateEPL
|
|
getLendingHistoryEPL
|
|
getPublicBorrowInfoEPL
|
|
getPublicBorrowHistoryEPL
|
|
getConvertCurrenciesEPL
|
|
getConvertCurrencyPairEPL
|
|
estimateQuoteEPL
|
|
convertTradeEPL
|
|
getConvertHistoryEPL
|
|
getAccountBalanceEPL
|
|
getPositionsEPL
|
|
getPositionsHistoryEPL
|
|
getAccountAndPositionRiskEPL
|
|
getBillsDetailsEPL
|
|
getAccountConfigurationEPL
|
|
setPositionModeEPL
|
|
setLeverageEPL
|
|
getMaximumBuyOrSellAmountEPL
|
|
getMaximumAvailableTradableAmountEPL
|
|
increaseOrDecreaseMarginEPL
|
|
getLeverageEPL
|
|
getTheMaximumLoanOfInstrumentEPL
|
|
getFeeRatesEPL
|
|
getInterestAccruedDataEPL
|
|
getInterestRateEPL
|
|
setGreeksEPL
|
|
isolatedMarginTradingSettingsEPL
|
|
getMaximumWithdrawalsEPL
|
|
getAccountRiskStateEPL
|
|
vipLoansBorrowAnsRepayEPL
|
|
getBorrowAnsRepayHistoryHistoryEPL
|
|
getBorrowInterestAndLimitEPL
|
|
positionBuilderEPL
|
|
getGreeksEPL
|
|
getPMLimitationEPL
|
|
viewSubaccountListEPL
|
|
resetSubAccountAPIKeyEPL
|
|
getSubaccountTradingBalanceEPL
|
|
getSubaccountFundingBalanceEPL
|
|
historyOfSubaccountTransferEPL
|
|
masterAccountsManageTransfersBetweenSubaccountEPL
|
|
setPermissionOfTransferOutEPL
|
|
getCustodyTradingSubaccountListEPL
|
|
gridTradingEPL
|
|
amendGridAlgoOrderEPL
|
|
stopGridAlgoOrderEPL
|
|
getGridAlgoOrderListEPL
|
|
getGridAlgoOrderHistoryEPL
|
|
getGridAlgoOrderDetailsEPL
|
|
getGridAlgoSubOrdersEPL
|
|
getGridAlgoOrderPositionsEPL
|
|
spotGridWithdrawIncomeEPL
|
|
computeMarginBalanceEPL
|
|
adjustMarginBalanceEPL
|
|
getGridAIParameterEPL
|
|
getOfferEPL
|
|
purchaseEPL
|
|
redeemEPL
|
|
cancelPurchaseOrRedemptionEPL
|
|
getEarnActiveOrdersEPL
|
|
getFundingOrderHistoryEPL
|
|
getTickersEPL
|
|
getIndexTickersEPL
|
|
getOrderBookEPL
|
|
getCandlesticksEPL
|
|
getTradesRequestEPL
|
|
get24HTotalVolumeEPL
|
|
getOracleEPL
|
|
getExchangeRateRequestEPL
|
|
getIndexComponentsEPL
|
|
getBlockTickersEPL
|
|
getBlockTradesEPL
|
|
getInstrumentsEPL
|
|
getDeliveryExerciseHistoryEPL
|
|
getOpenInterestEPL
|
|
getFundingEPL
|
|
getFundingRateHistoryEPL
|
|
getLimitPriceEPL
|
|
getOptionMarketDateEPL
|
|
getEstimatedDeliveryPriceEPL
|
|
getDiscountRateAndInterestFreeQuotaEPL
|
|
getSystemTimeEPL
|
|
getLiquidationOrdersEPL
|
|
getMarkPriceEPL
|
|
getPositionTiersEPL
|
|
getInterestRateAndLoanQuotaEPL
|
|
getInterestRateAndLoanQuoteForVIPLoansEPL
|
|
getUnderlyingEPL
|
|
getInsuranceFundEPL
|
|
unitConvertEPL
|
|
getSupportCoinEPL
|
|
getTakerVolumeEPL
|
|
getMarginLendingRatioEPL
|
|
getLongShortRatioEPL
|
|
getContractsOpenInterestAndVolumeEPL
|
|
getOptionsOpenInterestAndVolumeEPL
|
|
getPutCallRatioEPL
|
|
getOpenInterestAndVolumeEPL
|
|
getTakerFlowEPL
|
|
getEventStatusEPL
|
|
getCandlestickHistoryEPL
|
|
getIndexCandlesticksEPL
|
|
)
|
|
|
|
// Limit executes rate limiting for Okx exchange given the context and EndpointLimit
|
|
func (r *RateLimit) Limit(ctx context.Context, f request.EndpointLimit) error {
|
|
switch f {
|
|
case placeOrderEPL:
|
|
return r.PlaceOrder.Wait(ctx)
|
|
case placeMultipleOrdersEPL:
|
|
return r.PlaceMultipleOrders.Wait(ctx)
|
|
case cancelOrderEPL:
|
|
return r.CancelOrder.Wait(ctx)
|
|
case cancelMultipleOrdersEPL:
|
|
return r.CancelMultipleOrders.Wait(ctx)
|
|
case amendOrderEPL:
|
|
return r.AmendOrder.Wait(ctx)
|
|
case amendMultipleOrdersEPL:
|
|
return r.AmendMultipleOrders.Wait(ctx)
|
|
case closePositionEPL:
|
|
return r.CloseDeposit.Wait(ctx)
|
|
case getOrderDetEPL:
|
|
return r.GetOrderDetails.Wait(ctx)
|
|
case getOrderListEPL:
|
|
return r.GetOrderList.Wait(ctx)
|
|
case getOrderHistory7DaysEPL:
|
|
return r.GetOrderHistory7Days.Wait(ctx)
|
|
case getOrderHistory3MonthsEPL:
|
|
return r.GetOrderHistory3Months.Wait(ctx)
|
|
case getTransactionDetail3DaysEPL:
|
|
return r.GetTransactionDetail3Days.Wait(ctx)
|
|
case getTransactionDetail3MonthsEPL:
|
|
return r.GetTransactionDetail3Months.Wait(ctx)
|
|
case placeAlgoOrderEPL:
|
|
return r.PlaceAlgoOrder.Wait(ctx)
|
|
case cancelAlgoOrderEPL:
|
|
return r.CancelAlgoOrder.Wait(ctx)
|
|
case cancelAdvanceAlgoOrderEPL:
|
|
return r.CancelAdvanceAlgoOrder.Wait(ctx)
|
|
case getAlgoOrderListEPL:
|
|
return r.GetAlgoOrderList.Wait(ctx)
|
|
case getAlgoOrderHistoryEPL:
|
|
return r.GetAlgoOrderHistory.Wait(ctx)
|
|
case getEasyConvertCurrencyListEPL:
|
|
return r.GetEasyConvertCurrencyList.Wait(ctx)
|
|
case placeEasyConvertEPL:
|
|
return r.PlaceEasyConvert.Wait(ctx)
|
|
case getEasyConvertHistoryEPL:
|
|
return r.GetEasyConvertHistory.Wait(ctx)
|
|
case getOneClickRepayHistoryEPL:
|
|
return r.GetOneClickRepayHistory.Wait(ctx)
|
|
case oneClickRepayCurrencyListEPL:
|
|
return r.OneClickRepayCurrencyList.Wait(ctx)
|
|
case tradeOneClickRepayEPL:
|
|
return r.TradeOneClickRepay.Wait(ctx)
|
|
case getCounterpartiesEPL:
|
|
return r.GetCounterparties.Wait(ctx)
|
|
case createRfqEPL:
|
|
return r.CreateRfq.Wait(ctx)
|
|
case cancelRfqEPL:
|
|
return r.CancelRfq.Wait(ctx)
|
|
case cancelMultipleRfqEPL:
|
|
return r.CancelMultipleRfq.Wait(ctx)
|
|
case cancelAllRfqsEPL:
|
|
return r.CancelAllRfqs.Wait(ctx)
|
|
case executeQuoteEPL:
|
|
return r.ExecuteQuote.Wait(ctx)
|
|
case setQuoteProductsEPL:
|
|
return r.SetQuoteProducts.Wait(ctx)
|
|
case restMMPStatusEPL:
|
|
return r.RestMMPStatus.Wait(ctx)
|
|
case createQuoteEPL:
|
|
return r.CreateQuote.Wait(ctx)
|
|
case cancelQuoteEPL:
|
|
return r.CancelQuote.Wait(ctx)
|
|
case cancelMultipleQuotesEPL:
|
|
return r.CancelMultipleQuotes.Wait(ctx)
|
|
case cancelAllQuotesEPL:
|
|
return r.CancelAllQuotes.Wait(ctx)
|
|
case getRfqsEPL:
|
|
return r.GetRfqs.Wait(ctx)
|
|
case getQuotesEPL:
|
|
return r.GetQuotes.Wait(ctx)
|
|
case getTradesEPL:
|
|
return r.GetTrades.Wait(ctx)
|
|
case getTradesHistoryEPL:
|
|
return r.GetTradesHistory.Wait(ctx)
|
|
case getPublicTradesEPL:
|
|
return r.GetPublicTrades.Wait(ctx)
|
|
case getCurrenciesEPL:
|
|
return r.GetCurrencies.Wait(ctx)
|
|
case getBalanceEPL:
|
|
return r.GetBalance.Wait(ctx)
|
|
case getAccountAssetValuationEPL:
|
|
return r.GetAccountAssetValuation.Wait(ctx)
|
|
case fundsTransferEPL:
|
|
return r.FundsTransfer.Wait(ctx)
|
|
case getFundsTransferStateEPL:
|
|
return r.GetFundsTransferState.Wait(ctx)
|
|
case assetBillsDetailsEPL:
|
|
return r.AssetBillsDetails.Wait(ctx)
|
|
case lightningDepositsEPL:
|
|
return r.LightningDeposits.Wait(ctx)
|
|
case getDepositAddressEPL:
|
|
return r.GetDepositAddress.Wait(ctx)
|
|
case getDepositHistoryEPL:
|
|
return r.GetDepositHistory.Wait(ctx)
|
|
case withdrawalEPL:
|
|
return r.Withdrawal.Wait(ctx)
|
|
case lightningWithdrawalsEPL:
|
|
return r.LightningWithdrawals.Wait(ctx)
|
|
case cancelWithdrawalEPL:
|
|
return r.CancelWithdrawal.Wait(ctx)
|
|
case getWithdrawalHistoryEPL:
|
|
return r.GetWithdrawalHistory.Wait(ctx)
|
|
case smallAssetsConvertEPL:
|
|
return r.SmallAssetsConvert.Wait(ctx)
|
|
case getSavingBalanceEPL:
|
|
return r.GetSavingBalance.Wait(ctx)
|
|
case savingsPurchaseRedemptionEPL:
|
|
return r.SavingsPurchaseRedempt.Wait(ctx)
|
|
case setLendingRateEPL:
|
|
return r.SetLendingRate.Wait(ctx)
|
|
case getLendingHistoryEPL:
|
|
return r.GetLendingHistory.Wait(ctx)
|
|
case getPublicBorrowInfoEPL:
|
|
return r.GetPublicBorrowInfo.Wait(ctx)
|
|
case getPublicBorrowHistoryEPL:
|
|
return r.GetPublicBorrowHistory.Wait(ctx)
|
|
case getConvertCurrenciesEPL:
|
|
return r.GetConvertCurrencies.Wait(ctx)
|
|
case getConvertCurrencyPairEPL:
|
|
return r.GetConvertCurrencyPair.Wait(ctx)
|
|
case estimateQuoteEPL:
|
|
return r.EstimateQuote.Wait(ctx)
|
|
case convertTradeEPL:
|
|
return r.ConvertTrade.Wait(ctx)
|
|
case getConvertHistoryEPL:
|
|
return r.GetConvertHistory.Wait(ctx)
|
|
case getAccountBalanceEPL:
|
|
return r.GetAccountBalance.Wait(ctx)
|
|
case getPositionsEPL:
|
|
return r.GetPositions.Wait(ctx)
|
|
case getPositionsHistoryEPL:
|
|
return r.GetPositionsHistory.Wait(ctx)
|
|
case getAccountAndPositionRiskEPL:
|
|
return r.GetAccountAndPositionRisk.Wait(ctx)
|
|
case getBillsDetailsEPL:
|
|
return r.GetBillsDetails.Wait(ctx)
|
|
case getAccountConfigurationEPL:
|
|
return r.GetAccountConfiguration.Wait(ctx)
|
|
case setPositionModeEPL:
|
|
return r.SetPositionMode.Wait(ctx)
|
|
case setLeverageEPL:
|
|
return r.SetLeverage.Wait(ctx)
|
|
case getMaximumBuyOrSellAmountEPL:
|
|
return r.GetMaximumBuyOrSellAmount.Wait(ctx)
|
|
case getMaximumAvailableTradableAmountEPL:
|
|
return r.GetMaximumAvailableTradableAmount.Wait(ctx)
|
|
case increaseOrDecreaseMarginEPL:
|
|
return r.IncreaseOrDecreaseMargin.Wait(ctx)
|
|
case getLeverageEPL:
|
|
return r.GetLeverage.Wait(ctx)
|
|
case getTheMaximumLoanOfInstrumentEPL:
|
|
return r.GetTheMaximumLoanOfInstrument.Wait(ctx)
|
|
case getFeeRatesEPL:
|
|
return r.GetFeeRates.Wait(ctx)
|
|
case getInterestAccruedDataEPL:
|
|
return r.GetInterestAccruedData.Wait(ctx)
|
|
case getInterestRateEPL:
|
|
return r.GetInterestRate.Wait(ctx)
|
|
case setGreeksEPL:
|
|
return r.SetGreeks.Wait(ctx)
|
|
case isolatedMarginTradingSettingsEPL:
|
|
return r.IsolatedMarginTradingSettings.Wait(ctx)
|
|
case getMaximumWithdrawalsEPL:
|
|
return r.GetMaximumWithdrawals.Wait(ctx)
|
|
case getAccountRiskStateEPL:
|
|
return r.GetAccountRiskState.Wait(ctx)
|
|
case vipLoansBorrowAnsRepayEPL:
|
|
return r.VipLoansBorrowAnsRepay.Wait(ctx)
|
|
case getBorrowAnsRepayHistoryHistoryEPL:
|
|
return r.GetBorrowAnsRepayHistoryHistory.Wait(ctx)
|
|
case getBorrowInterestAndLimitEPL:
|
|
return r.GetBorrowInterestAndLimit.Wait(ctx)
|
|
case positionBuilderEPL:
|
|
return r.PositionBuilder.Wait(ctx)
|
|
case getGreeksEPL:
|
|
return r.GetGreeks.Wait(ctx)
|
|
case getPMLimitationEPL:
|
|
return r.GetPMLimitation.Wait(ctx)
|
|
case viewSubaccountListEPL:
|
|
return r.ViewSubaccountList.Wait(ctx)
|
|
case resetSubAccountAPIKeyEPL:
|
|
return r.ResetSubAccountAPIKey.Wait(ctx)
|
|
case getSubaccountTradingBalanceEPL:
|
|
return r.GetSubaccountTradingBalance.Wait(ctx)
|
|
case getSubaccountFundingBalanceEPL:
|
|
return r.GetSubaccountFundingBalance.Wait(ctx)
|
|
case historyOfSubaccountTransferEPL:
|
|
return r.HistoryOfSubaccountTransfer.Wait(ctx)
|
|
case masterAccountsManageTransfersBetweenSubaccountEPL:
|
|
return r.MasterAccountsManageTransfersBetweenSubaccount.Wait(ctx)
|
|
case setPermissionOfTransferOutEPL:
|
|
return r.SetPermissionOfTransferOut.Wait(ctx)
|
|
case getCustodyTradingSubaccountListEPL:
|
|
return r.GetCustodyTradingSubaccountList.Wait(ctx)
|
|
case gridTradingEPL:
|
|
return r.GridTrading.Wait(ctx)
|
|
case amendGridAlgoOrderEPL:
|
|
return r.AmendGridAlgoOrder.Wait(ctx)
|
|
case stopGridAlgoOrderEPL:
|
|
return r.StopGridAlgoOrder.Wait(ctx)
|
|
case getGridAlgoOrderListEPL:
|
|
return r.GetGridAlgoOrderList.Wait(ctx)
|
|
case getGridAlgoOrderHistoryEPL:
|
|
return r.GetGridAlgoOrderHistory.Wait(ctx)
|
|
case getGridAlgoOrderDetailsEPL:
|
|
return r.GetGridAlgoOrderDetails.Wait(ctx)
|
|
case getGridAlgoSubOrdersEPL:
|
|
return r.GetGridAlgoSubOrders.Wait(ctx)
|
|
case getGridAlgoOrderPositionsEPL:
|
|
return r.GetGridAlgoOrderPositions.Wait(ctx)
|
|
case spotGridWithdrawIncomeEPL:
|
|
return r.SpotGridWithdrawIncome.Wait(ctx)
|
|
case computeMarginBalanceEPL:
|
|
return r.ComputeMarginBalance.Wait(ctx)
|
|
case adjustMarginBalanceEPL:
|
|
return r.AdjustMarginBalance.Wait(ctx)
|
|
case getGridAIParameterEPL:
|
|
return r.GetGridAIParameter.Wait(ctx)
|
|
case getOfferEPL:
|
|
return r.GetOffer.Wait(ctx)
|
|
case purchaseEPL:
|
|
return r.Purchase.Wait(ctx)
|
|
case redeemEPL:
|
|
return r.Redeem.Wait(ctx)
|
|
case cancelPurchaseOrRedemptionEPL:
|
|
return r.CancelPurchaseOrRedemption.Wait(ctx)
|
|
case getEarnActiveOrdersEPL:
|
|
return r.GetEarnActiveOrders.Wait(ctx)
|
|
case getFundingOrderHistoryEPL:
|
|
return r.GetFundingOrderHistory.Wait(ctx)
|
|
case getTickersEPL:
|
|
return r.GetTickers.Wait(ctx)
|
|
case getIndexTickersEPL:
|
|
return r.GetIndexTickers.Wait(ctx)
|
|
case getOrderBookEPL:
|
|
return r.GetOrderBook.Wait(ctx)
|
|
case getCandlesticksEPL:
|
|
return r.GetCandlesticks.Wait(ctx)
|
|
case getCandlestickHistoryEPL:
|
|
return r.GetCandlesticksHistory.Wait(ctx)
|
|
case getIndexCandlesticksEPL:
|
|
return r.GetIndexCandlesticks.Wait(ctx)
|
|
case getTradesRequestEPL:
|
|
return r.GetTradesRequest.Wait(ctx)
|
|
case get24HTotalVolumeEPL:
|
|
return r.Get24HTotalVolume.Wait(ctx)
|
|
case getOracleEPL:
|
|
return r.GetOracle.Wait(ctx)
|
|
case getExchangeRateRequestEPL:
|
|
return r.GetExchangeRateRequest.Wait(ctx)
|
|
case getIndexComponentsEPL:
|
|
return r.GetIndexComponents.Wait(ctx)
|
|
case getBlockTickersEPL:
|
|
return r.GetBlockTickers.Wait(ctx)
|
|
case getBlockTradesEPL:
|
|
return r.GetBlockTrades.Wait(ctx)
|
|
case getInstrumentsEPL:
|
|
return r.GetInstruments.Wait(ctx)
|
|
case getDeliveryExerciseHistoryEPL:
|
|
return r.GetDeliveryExerciseHistory.Wait(ctx)
|
|
case getOpenInterestEPL:
|
|
return r.GetOpenInterest.Wait(ctx)
|
|
case getFundingEPL:
|
|
return r.GetFunding.Wait(ctx)
|
|
case getFundingRateHistoryEPL:
|
|
return r.GetFundingRateHistory.Wait(ctx)
|
|
case getLimitPriceEPL:
|
|
return r.GetLimitPrice.Wait(ctx)
|
|
case getOptionMarketDateEPL:
|
|
return r.GetOptionMarketDate.Wait(ctx)
|
|
case getEstimatedDeliveryPriceEPL:
|
|
return r.GetEstimatedDeliveryExercisePrice.Wait(ctx)
|
|
case getDiscountRateAndInterestFreeQuotaEPL:
|
|
return r.GetDiscountRateAndInterestFreeQuota.Wait(ctx)
|
|
case getSystemTimeEPL:
|
|
return r.GetSystemTime.Wait(ctx)
|
|
case getLiquidationOrdersEPL:
|
|
return r.GetLiquidationOrders.Wait(ctx)
|
|
case getMarkPriceEPL:
|
|
return r.GetMarkPrice.Wait(ctx)
|
|
case getPositionTiersEPL:
|
|
return r.GetPositionTiers.Wait(ctx)
|
|
case getInterestRateAndLoanQuotaEPL:
|
|
return r.GetInterestRateAndLoanQuota.Wait(ctx)
|
|
case getInterestRateAndLoanQuoteForVIPLoansEPL:
|
|
return r.GetInterestRateAndLoanQuoteForVIPLoans.Wait(ctx)
|
|
case getUnderlyingEPL:
|
|
return r.GetUnderlying.Wait(ctx)
|
|
case getInsuranceFundEPL:
|
|
return r.GetInsuranceFund.Wait(ctx)
|
|
case unitConvertEPL:
|
|
return r.UnitConvert.Wait(ctx)
|
|
case getSupportCoinEPL:
|
|
return r.GetSupportCoin.Wait(ctx)
|
|
case getTakerVolumeEPL:
|
|
return r.GetTakerVolume.Wait(ctx)
|
|
case getMarginLendingRatioEPL:
|
|
return r.GetMarginLendingRatio.Wait(ctx)
|
|
case getLongShortRatioEPL:
|
|
return r.GetLongShortRatio.Wait(ctx)
|
|
case getContractsOpenInterestAndVolumeEPL:
|
|
return r.GetContractsOpenInterestAndVolume.Wait(ctx)
|
|
case getOptionsOpenInterestAndVolumeEPL:
|
|
return r.GetOptionsOpenInterestAndVolume.Wait(ctx)
|
|
case getPutCallRatioEPL:
|
|
return r.GetPutCallRatio.Wait(ctx)
|
|
case getOpenInterestAndVolumeEPL:
|
|
return r.GetOpenInterestAndVolume.Wait(ctx)
|
|
case getTakerFlowEPL:
|
|
return r.GetTakerFlow.Wait(ctx)
|
|
case getEventStatusEPL:
|
|
return r.GetEventStatus.Wait(ctx)
|
|
default:
|
|
return errors.New("endpoint rate limit functionality not found")
|
|
}
|
|
}
|
|
|
|
// SetRateLimit returns a RateLimit instance, which implements the request.Limiter interface.
|
|
func SetRateLimit() *RateLimit {
|
|
return &RateLimit{
|
|
// Trade Endpoints
|
|
PlaceOrder: request.NewRateLimit(twoSecondsInterval, placeOrderRate),
|
|
PlaceMultipleOrders: request.NewRateLimit(twoSecondsInterval, placeMultipleOrdersRate),
|
|
CancelOrder: request.NewRateLimit(twoSecondsInterval, cancelOrderRate),
|
|
CancelMultipleOrders: request.NewRateLimit(twoSecondsInterval, cancelMultipleOrdersRate),
|
|
AmendOrder: request.NewRateLimit(twoSecondsInterval, amendOrderRate),
|
|
AmendMultipleOrders: request.NewRateLimit(twoSecondsInterval, amendMultipleOrdersRate),
|
|
CloseDeposit: request.NewRateLimit(twoSecondsInterval, closeDepositions),
|
|
GetOrderDetails: request.NewRateLimit(twoSecondsInterval, getOrderDetails),
|
|
GetOrderList: request.NewRateLimit(twoSecondsInterval, getOrderListRate),
|
|
GetOrderHistory7Days: request.NewRateLimit(twoSecondsInterval, getOrderHistory7DaysRate),
|
|
GetOrderHistory3Months: request.NewRateLimit(twoSecondsInterval, getOrderHistory3MonthsRate),
|
|
GetTransactionDetail3Days: request.NewRateLimit(twoSecondsInterval, getTransactionDetail3DaysRate),
|
|
GetTransactionDetail3Months: request.NewRateLimit(twoSecondsInterval, getTransactionDetail3MonthsRate),
|
|
PlaceAlgoOrder: request.NewRateLimit(twoSecondsInterval, placeAlgoOrderRate),
|
|
CancelAlgoOrder: request.NewRateLimit(twoSecondsInterval, cancelAlgoOrderRate),
|
|
CancelAdvanceAlgoOrder: request.NewRateLimit(twoSecondsInterval, cancelAdvanceAlgoOrderRate),
|
|
GetAlgoOrderList: request.NewRateLimit(twoSecondsInterval, getAlgoOrderListRate),
|
|
GetAlgoOrderHistory: request.NewRateLimit(twoSecondsInterval, getAlgoOrderHistoryRate),
|
|
GetEasyConvertCurrencyList: request.NewRateLimit(twoSecondsInterval, getEasyConvertCurrencyListRate),
|
|
PlaceEasyConvert: request.NewRateLimit(twoSecondsInterval, placeEasyConvert),
|
|
GetEasyConvertHistory: request.NewRateLimit(twoSecondsInterval, getEasyConvertHistory),
|
|
GetOneClickRepayHistory: request.NewRateLimit(twoSecondsInterval, getOneClickRepayHistory),
|
|
OneClickRepayCurrencyList: request.NewRateLimit(twoSecondsInterval, oneClickRepayCurrencyList),
|
|
TradeOneClickRepay: request.NewRateLimit(twoSecondsInterval, tradeOneClickRepay),
|
|
|
|
// Block Trading endpoints
|
|
GetCounterparties: request.NewRateLimit(twoSecondsInterval, getCounterpartiesRate),
|
|
CreateRfq: request.NewRateLimit(twoSecondsInterval, createRfqRate),
|
|
CancelRfq: request.NewRateLimit(twoSecondsInterval, cancelRfqRate),
|
|
CancelMultipleRfq: request.NewRateLimit(twoSecondsInterval, cancelMultipleRfqRate),
|
|
CancelAllRfqs: request.NewRateLimit(twoSecondsInterval, cancelAllRfqsRate),
|
|
ExecuteQuote: request.NewRateLimit(threeSecondsInterval, executeQuoteRate),
|
|
SetQuoteProducts: request.NewRateLimit(twoSecondsInterval, setQuoteProducts),
|
|
RestMMPStatus: request.NewRateLimit(twoSecondsInterval, restMMPStatus),
|
|
CreateQuote: request.NewRateLimit(twoSecondsInterval, createQuoteRate),
|
|
CancelQuote: request.NewRateLimit(twoSecondsInterval, cancelQuoteRate),
|
|
CancelMultipleQuotes: request.NewRateLimit(twoSecondsInterval, cancelMultipleQuotesRate),
|
|
CancelAllQuotes: request.NewRateLimit(twoSecondsInterval, cancelAllQuotes),
|
|
GetRfqs: request.NewRateLimit(twoSecondsInterval, getRfqsRate),
|
|
GetQuotes: request.NewRateLimit(twoSecondsInterval, getQuotesRate),
|
|
GetTrades: request.NewRateLimit(twoSecondsInterval, getTradesRate),
|
|
GetTradesHistory: request.NewRateLimit(twoSecondsInterval, getTradesHistoryRate),
|
|
GetPublicTrades: request.NewRateLimit(twoSecondsInterval, getPublicTradesRate),
|
|
// Funding
|
|
GetCurrencies: request.NewRateLimit(oneSecondInterval, getCurrenciesRate),
|
|
GetBalance: request.NewRateLimit(oneSecondInterval, getBalanceRate),
|
|
GetAccountAssetValuation: request.NewRateLimit(twoSecondsInterval, getAccountAssetValuationRate),
|
|
FundsTransfer: request.NewRateLimit(oneSecondInterval, fundsTransferRate),
|
|
GetFundsTransferState: request.NewRateLimit(oneSecondInterval, getFundsTransferStateRate),
|
|
AssetBillsDetails: request.NewRateLimit(oneSecondInterval, assetBillsDetailsRate),
|
|
LightningDeposits: request.NewRateLimit(oneSecondInterval, lightningDepositsRate),
|
|
GetDepositAddress: request.NewRateLimit(oneSecondInterval, getDepositAddressRate),
|
|
GetDepositHistory: request.NewRateLimit(oneSecondInterval, getDepositHistoryRate),
|
|
Withdrawal: request.NewRateLimit(oneSecondInterval, withdrawalRate),
|
|
LightningWithdrawals: request.NewRateLimit(oneSecondInterval, lightningWithdrawalsRate),
|
|
CancelWithdrawal: request.NewRateLimit(oneSecondInterval, cancelWithdrawalRate),
|
|
GetWithdrawalHistory: request.NewRateLimit(oneSecondInterval, getWithdrawalHistoryRate),
|
|
SmallAssetsConvert: request.NewRateLimit(oneSecondInterval, smallAssetsConvertRate),
|
|
GetSavingBalance: request.NewRateLimit(oneSecondInterval, getSavingBalanceRate),
|
|
SavingsPurchaseRedempt: request.NewRateLimit(oneSecondInterval, savingsPurchaseRedemptionRate),
|
|
SetLendingRate: request.NewRateLimit(oneSecondInterval, setLendingRateRate),
|
|
GetLendingHistory: request.NewRateLimit(oneSecondInterval, getLendingHistoryRate),
|
|
GetPublicBorrowInfo: request.NewRateLimit(oneSecondInterval, getPublicBorrowInfoRate),
|
|
GetPublicBorrowHistory: request.NewRateLimit(oneSecondInterval, getPublicBorrowHistoryRate),
|
|
|
|
// Convert
|
|
GetConvertCurrencies: request.NewRateLimit(oneSecondInterval, getConvertCurrenciesRate),
|
|
GetConvertCurrencyPair: request.NewRateLimit(oneSecondInterval, getConvertCurrencyPairRate),
|
|
EstimateQuote: request.NewRateLimit(oneSecondInterval, estimateQuoteRate),
|
|
ConvertTrade: request.NewRateLimit(oneSecondInterval, convertTradeRate),
|
|
GetConvertHistory: request.NewRateLimit(oneSecondInterval, getConvertHistoryRate),
|
|
|
|
// Account
|
|
GetAccountBalance: request.NewRateLimit(twoSecondsInterval, getAccountBalanceRate),
|
|
GetPositions: request.NewRateLimit(twoSecondsInterval, getPositionsRate),
|
|
GetPositionsHistory: request.NewRateLimit(tenSecondsInterval, getPositionsHistoryRate),
|
|
GetAccountAndPositionRisk: request.NewRateLimit(twoSecondsInterval, getAccountAndPositionRiskRate),
|
|
GetBillsDetails: request.NewRateLimit(oneSecondInterval, getBillsDetailsRate),
|
|
GetAccountConfiguration: request.NewRateLimit(twoSecondsInterval, getAccountConfigurationRate),
|
|
SetPositionMode: request.NewRateLimit(twoSecondsInterval, setPositionModeRate),
|
|
SetLeverage: request.NewRateLimit(twoSecondsInterval, setLeverageRate),
|
|
GetMaximumBuyOrSellAmount: request.NewRateLimit(twoSecondsInterval, getMaximumBuyOrSellAmountRate),
|
|
GetMaximumAvailableTradableAmount: request.NewRateLimit(twoSecondsInterval, getMaximumAvailableTradableAmountRate),
|
|
IncreaseOrDecreaseMargin: request.NewRateLimit(twoSecondsInterval, increaseOrDecreaseMarginRate),
|
|
GetLeverage: request.NewRateLimit(twoSecondsInterval, getLeverageRate),
|
|
GetTheMaximumLoanOfInstrument: request.NewRateLimit(twoSecondsInterval, getTheMaximumLoanOfInstrumentRate),
|
|
GetFeeRates: request.NewRateLimit(twoSecondsInterval, getFeeRatesRate),
|
|
GetInterestAccruedData: request.NewRateLimit(twoSecondsInterval, getInterestAccruedDataRate),
|
|
GetInterestRate: request.NewRateLimit(twoSecondsInterval, getInterestRateRate),
|
|
SetGreeks: request.NewRateLimit(twoSecondsInterval, setGreeksRate),
|
|
IsolatedMarginTradingSettings: request.NewRateLimit(twoSecondsInterval, isolatedMarginTradingSettingsRate),
|
|
GetMaximumWithdrawals: request.NewRateLimit(twoSecondsInterval, getMaximumWithdrawalsRate),
|
|
GetAccountRiskState: request.NewRateLimit(twoSecondsInterval, getAccountRiskStateRate),
|
|
VipLoansBorrowAnsRepay: request.NewRateLimit(oneSecondInterval, vipLoansBorrowAndRepayRate),
|
|
GetBorrowAnsRepayHistoryHistory: request.NewRateLimit(twoSecondsInterval, getBorrowAnsRepayHistoryHistoryRate),
|
|
GetBorrowInterestAndLimit: request.NewRateLimit(twoSecondsInterval, getBorrowInterestAndLimitRate),
|
|
PositionBuilder: request.NewRateLimit(twoSecondsInterval, positionBuilderRate),
|
|
GetGreeks: request.NewRateLimit(twoSecondsInterval, getGreeksRate),
|
|
GetPMLimitation: request.NewRateLimit(twoSecondsInterval, getPMLimitation),
|
|
|
|
// Sub Account Endpoints
|
|
ViewSubaccountList: request.NewRateLimit(twoSecondsInterval, viewSubaccountListRate),
|
|
ResetSubAccountAPIKey: request.NewRateLimit(oneSecondInterval, resetSubAccountAPIKey),
|
|
GetSubaccountTradingBalance: request.NewRateLimit(twoSecondsInterval, getSubaccountTradingBalanceRate),
|
|
GetSubaccountFundingBalance: request.NewRateLimit(twoSecondsInterval, getSubaccountFundingBalanceRate),
|
|
HistoryOfSubaccountTransfer: request.NewRateLimit(oneSecondInterval, historyOfSubaccountTransferRate),
|
|
MasterAccountsManageTransfersBetweenSubaccount: request.NewRateLimit(oneSecondInterval, masterAccountsManageTransfersBetweenSubaccountRate),
|
|
SetPermissionOfTransferOut: request.NewRateLimit(oneSecondInterval, setPermissionOfTransferOutRate),
|
|
GetCustodyTradingSubaccountList: request.NewRateLimit(oneSecondInterval, getCustodyTradingSubaccountListRate),
|
|
|
|
// Grid Trading Endpoints
|
|
GridTrading: request.NewRateLimit(twoSecondsInterval, gridTradingRate),
|
|
AmendGridAlgoOrder: request.NewRateLimit(twoSecondsInterval, amendGridAlgoOrderRate),
|
|
StopGridAlgoOrder: request.NewRateLimit(twoSecondsInterval, stopGridAlgoOrderRate),
|
|
GetGridAlgoOrderList: request.NewRateLimit(twoSecondsInterval, getGridAlgoOrderListRate),
|
|
GetGridAlgoOrderHistory: request.NewRateLimit(twoSecondsInterval, getGridAlgoOrderHistoryRate),
|
|
GetGridAlgoOrderDetails: request.NewRateLimit(twoSecondsInterval, getGridAlgoOrderDetailsRate),
|
|
GetGridAlgoSubOrders: request.NewRateLimit(twoSecondsInterval, getGridAlgoSubOrdersRate),
|
|
GetGridAlgoOrderPositions: request.NewRateLimit(twoSecondsInterval, getGridAlgoOrderPositionsRate),
|
|
SpotGridWithdrawIncome: request.NewRateLimit(twoSecondsInterval, spotGridWithdrawIncomeRate),
|
|
ComputeMarginBalance: request.NewRateLimit(twoSecondsInterval, computeMarginBalance),
|
|
AdjustMarginBalance: request.NewRateLimit(twoSecondsInterval, adjustMarginBalance),
|
|
GetGridAIParameter: request.NewRateLimit(twoSecondsInterval, getGridAIParameter),
|
|
|
|
// Earn
|
|
GetOffer: request.NewRateLimit(oneSecondInterval, getOffer),
|
|
Purchase: request.NewRateLimit(oneSecondInterval, purchase),
|
|
Redeem: request.NewRateLimit(oneSecondInterval, redeem),
|
|
CancelPurchaseOrRedemption: request.NewRateLimit(oneSecondInterval, cancelPurchaseOrRedemption),
|
|
GetEarnActiveOrders: request.NewRateLimit(oneSecondInterval, getEarnActiveOrders),
|
|
GetFundingOrderHistory: request.NewRateLimit(oneSecondInterval, getFundingOrderHistory),
|
|
|
|
// Market Data
|
|
GetTickers: request.NewRateLimit(twoSecondsInterval, getTickersRate),
|
|
GetIndexTickers: request.NewRateLimit(twoSecondsInterval, getIndexTickersRate),
|
|
GetOrderBook: request.NewRateLimit(twoSecondsInterval, getOrderBookRate),
|
|
GetCandlesticks: request.NewRateLimit(twoSecondsInterval, getCandlesticksRate),
|
|
GetCandlesticksHistory: request.NewRateLimit(twoSecondsInterval, getCandlesticksHistoryRate),
|
|
GetIndexCandlesticks: request.NewRateLimit(twoSecondsInterval, getIndexCandlesticksRate),
|
|
GetMarkPriceCandlesticks: request.NewRateLimit(twoSecondsInterval, getMarkPriceCandlesticksRate),
|
|
GetTradesRequest: request.NewRateLimit(twoSecondsInterval, getTradesRequestRate),
|
|
Get24HTotalVolume: request.NewRateLimit(twoSecondsInterval, get24HTotalVolumeRate),
|
|
GetOracle: request.NewRateLimit(fiveSecondsInterval, getOracleRate),
|
|
GetExchangeRateRequest: request.NewRateLimit(twoSecondsInterval, getExchangeRateRequestRate),
|
|
GetIndexComponents: request.NewRateLimit(twoSecondsInterval, getIndexComponentsRate),
|
|
GetBlockTickers: request.NewRateLimit(twoSecondsInterval, getBlockTickersRate),
|
|
GetBlockTrades: request.NewRateLimit(twoSecondsInterval, getBlockTradesRate),
|
|
|
|
// Public Data Endpoints
|
|
GetInstruments: request.NewRateLimit(twoSecondsInterval, getInstrumentsRate),
|
|
GetDeliveryExerciseHistory: request.NewRateLimit(twoSecondsInterval, getDeliveryExerciseHistoryRate),
|
|
GetOpenInterest: request.NewRateLimit(twoSecondsInterval, getOpenInterestRate),
|
|
GetFunding: request.NewRateLimit(twoSecondsInterval, getFundingRate),
|
|
GetFundingRateHistory: request.NewRateLimit(twoSecondsInterval, getFundingRateHistoryRate),
|
|
GetLimitPrice: request.NewRateLimit(twoSecondsInterval, getLimitPriceRate),
|
|
GetOptionMarketDate: request.NewRateLimit(twoSecondsInterval, getOptionMarketDateRate),
|
|
GetEstimatedDeliveryExercisePrice: request.NewRateLimit(twoSecondsInterval, getEstimatedDeliveryExercisePriceRate),
|
|
GetDiscountRateAndInterestFreeQuota: request.NewRateLimit(twoSecondsInterval, getDiscountRateAndInterestFreeQuotaRate),
|
|
GetSystemTime: request.NewRateLimit(twoSecondsInterval, getSystemTimeRate),
|
|
GetLiquidationOrders: request.NewRateLimit(twoSecondsInterval, getLiquidationOrdersRate),
|
|
GetMarkPrice: request.NewRateLimit(twoSecondsInterval, getMarkPriceRate),
|
|
GetPositionTiers: request.NewRateLimit(twoSecondsInterval, getPositionTiersRate),
|
|
GetInterestRateAndLoanQuota: request.NewRateLimit(twoSecondsInterval, getInterestRateAndLoanQuotaRate),
|
|
GetInterestRateAndLoanQuoteForVIPLoans: request.NewRateLimit(twoSecondsInterval, getInterestRateAndLoanQuoteForVIPLoansRate),
|
|
GetUnderlying: request.NewRateLimit(twoSecondsInterval, getUnderlyingRate),
|
|
GetInsuranceFund: request.NewRateLimit(twoSecondsInterval, getInsuranceFundRate),
|
|
UnitConvert: request.NewRateLimit(twoSecondsInterval, unitConvertRate),
|
|
|
|
// Trading Data Endpoints
|
|
GetSupportCoin: request.NewRateLimit(twoSecondsInterval, getSupportCoinRate),
|
|
GetTakerVolume: request.NewRateLimit(twoSecondsInterval, getTakerVolumeRate),
|
|
GetMarginLendingRatio: request.NewRateLimit(twoSecondsInterval, getMarginLendingRatioRate),
|
|
GetLongShortRatio: request.NewRateLimit(twoSecondsInterval, getLongShortRatioRate),
|
|
GetContractsOpenInterestAndVolume: request.NewRateLimit(twoSecondsInterval, getContractsOpenInterestAndVolumeRate),
|
|
GetOptionsOpenInterestAndVolume: request.NewRateLimit(twoSecondsInterval, getOptionsOpenInterestAndVolumeRate),
|
|
GetPutCallRatio: request.NewRateLimit(twoSecondsInterval, getPutCallRatioRate),
|
|
GetOpenInterestAndVolume: request.NewRateLimit(twoSecondsInterval, getOpenInterestAndVolumeRate),
|
|
GetTakerFlow: request.NewRateLimit(twoSecondsInterval, getTakerFlowRate),
|
|
|
|
// Status Endpoints
|
|
GetEventStatus: request.NewRateLimit(fiveSecondsInterval, getEventStatusRate),
|
|
}
|
|
}
|