mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
* update acccount ratelimits and added missing endpoints * completed mapping missing trade accoung REST endpoints and Rate Limit * added orderbook trading missing REST endpoints * Added few missing endpoints and unit tests * Completed grid trading and signal bot trading with unit tests * Added Recurring Buy endpoints and corresponding unit tests * Added copy trading endpoints and unit tests * added newly added block trading and spread endpoints * completed mapping spread endpoints * Added new endpoints and unit tests * Added round 1: Okx types and converts update. * Update endpoints handling and types update * Removed constants, updated unit tests, and updated endpoint methods * Slight endpoint and unit test update * Added spread and other websocket endpoints and update * completed Spread WS Orderbook handler * Added missing spread channels and handlers * Adding Bussinss websocket and missing subscriptions, update unit tests, and endpoints * Added spread endpoints to wrapper and unit tests update * Added missing websocket subscriptions and copy trading endpoints * Added missing endpoints and re-organize business websocket handlers * Docs update * Endpoints code updates * types, unit test and endpoints update * Minor unit tests update * spelling fix * fix unit test issues * Updating unit tests error handling * Updating unit tests error handling * Unit tests assertion handling update * Unit tests update * Resolve linter issues * linter issues fix * Orderbook unit test error fix * Minor fixes * Change on test handling and types * Updating unit tests and cleanups * Fix unit test issues * Add ratelimit test and update unit tests and methods * Update method parameters and error declarations * Added lending endpoints, unit tests, and update endpoint methods and error declarations * Update ratelimiters, add missing lending and trading endpoints and unit tests * Update websocket authentication and subscription handling * Minor update to unit test and types * Types, error handling, and other minor updates * Update unit tests and endpoint functions * error declarations update and unit tests * Overall update on unit endpoint, unit tests, and types * Adding review fixes * Update on endpoints, order types, and unit tests * Update unit tests and endpoint functions * Update on endpoint and update missing parameters * Implemented and tested newly added trading endpoints * endpoints update and unit tests * Update missing endpoints and update overall code * added and testing funding and fiat related endpoints * Update on convert and fiat related endpoints * linter fix, types, endpoints, and unit tests update * linter issues fix * revert changes on tempos * Fix Panic and update websocket auth calls handling * config linter issue fix * Fix panic issues and update unit tests * Fix race condition, TestAllExchangeWrappers unit test issues * Fix withdrawal manager test issue * Rename ClosePositionForContractrID --> ClosePositionForContractID * Rename ClosePositionForContractrID --> ClosePositionForContractID * Fix error * endpoints update and fix unit test issues * added unit tests, updated comments, and code sections * revert change in defaultSubscriptions * few types comments update * Minor changes * remove lending endpoints * rm mistakenly added code * fix unit test * minor unit test fix * Adding offline error tests, update endpoints function, config update * Update unit test coverage for offline error handliing * Updating wrapper algo order coverage, endpoint calls, and unit tests * Updating wrapper trade functions to accomodate algo orders * update wrapper unit tests * Fix wrapper order functions offline errors handling * Tested and updated wrapper order functions * Address review comments * update order unit tests, and okx endpoint functions * finalize affected order, endpoint, and margin endpoints * Slight change on margin unit test * fix margin unit test issues * Minor change on unit test * updates on contract settlement and future contract wrapper function * add test coverage for contract functions and minor fix on wrapper * Overall update and unit testing * codespell, unit tests, type declaration and naming, and code-structure updates * margin types value and validation function fix * Update tests and helper funcs * Improve test coverage * helper functions and unit tests update * Fix margin unit test * Minor review updates * minor fix on if statement * Update helper functions * error handling and functions naming update * update comment * minor error return fixes * minor unit test fix * Minor fix on spread websocket orders handling * codespell fix * skip orderbook depth with incomplete price * skip orderbook depth with incomplete price
284 lines
20 KiB
Go
284 lines
20 KiB
Go
package okx
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/thrasher-corp/gocryptotrader/exchanges/request"
|
|
)
|
|
|
|
func TestRateLimit_LimitStatic(t *testing.T) {
|
|
t.Parallel()
|
|
testTable := map[string]request.EndpointLimit{
|
|
"placeOrder": placeOrderEPL,
|
|
"placeMultipleOrders": placeMultipleOrdersEPL,
|
|
"cancelOrder": cancelOrderEPL,
|
|
"cancelMultipleOrders": cancelMultipleOrdersEPL,
|
|
"amendOrder": amendOrderEPL,
|
|
"amendMultipleOrders": amendMultipleOrdersEPL,
|
|
"closePosition": closePositionEPL,
|
|
"getOrderDet": getOrderDetEPL,
|
|
"getOrderList": getOrderListEPL,
|
|
"getOrderHistory7Days": getOrderHistory7DaysEPL,
|
|
"getOrderHistory3Months": getOrderHistory3MonthsEPL,
|
|
"getTransactionDetail3Days": getTransactionDetail3DaysEPL,
|
|
"getTransactionDetail3Months": getTransactionDetail3MonthsEPL,
|
|
"setTransactionDetail2YearInterval": setTransactionDetail2YearIntervalEPL,
|
|
"getTransactionDetailLast2Years": getTransactionDetailLast2YearsEPL,
|
|
"cancelAllAfterCountdown": cancelAllAfterCountdownEPL,
|
|
"placeAlgoOrder": placeAlgoOrderEPL,
|
|
"cancelAlgoOrder": cancelAlgoOrderEPL,
|
|
"amendAlgoOrder": amendAlgoOrderEPL,
|
|
"cancelAdvanceAlgoOrder": cancelAdvanceAlgoOrderEPL,
|
|
"getAlgoOrderDetail": getAlgoOrderDetailEPL,
|
|
"getAlgoOrderList": getAlgoOrderListEPL,
|
|
"getAlgoOrderHistory": getAlgoOrderHistoryEPL,
|
|
"getEasyConvertCurrencyList": getEasyConvertCurrencyListEPL,
|
|
"placeEasyConvert": placeEasyConvertEPL,
|
|
"getEasyConvertHistory": getEasyConvertHistoryEPL,
|
|
"getOneClickRepayHistory": getOneClickRepayHistoryEPL,
|
|
"oneClickRepayCurrencyList": oneClickRepayCurrencyListEPL,
|
|
"tradeOneClickRepay": tradeOneClickRepayEPL,
|
|
"massCancemMMPOrder": massCancemMMPOrderEPL,
|
|
"getCounterparties": getCounterpartiesEPL,
|
|
"createRFQ": createRFQEPL,
|
|
"cancelRFQ": cancelRFQEPL,
|
|
"cancelMultipleRFQ": cancelMultipleRFQEPL,
|
|
"cancelAllRFQs": cancelAllRFQsEPL,
|
|
"executeQuote": executeQuoteEPL,
|
|
"getQuoteProducts": getQuoteProductsEPL,
|
|
"setQuoteProducts": setQuoteProductsEPL,
|
|
"resetRFQMMP": resetRFQMMPEPL,
|
|
"setMMP": setMMPEPL,
|
|
"getMMPConfig": getMMPConfigEPL,
|
|
"createQuote": createQuoteEPL,
|
|
"cancelQuote": cancelQuoteEPL,
|
|
"cancelMultipleQuotes": cancelMultipleQuotesEPL,
|
|
"cancelAllQuotes": cancelAllQuotesEPL,
|
|
"getRFQs": getRFQsEPL,
|
|
"getQuotes": getQuotesEPL,
|
|
"getTrades": getTradesEPL,
|
|
"getTradesHistory": getTradesHistoryEPL,
|
|
"optionInstrumentTradeFamily": optionInstrumentTradeFamilyEPL,
|
|
"optionTrades": optionTradesEPL,
|
|
"getPublicTrades": getPublicTradesEPL,
|
|
"getCurrencies": getCurrenciesEPL,
|
|
"getBalance": getBalanceEPL,
|
|
"getNonTradableAssets": getNonTradableAssetsEPL,
|
|
"getAccountAssetValuation": getAccountAssetValuationEPL,
|
|
"fundsTransfer": fundsTransferEPL,
|
|
"getFundsTransferState": getFundsTransferStateEPL,
|
|
"assetBillsDetails": assetBillsDetailsEPL,
|
|
"lightningDeposits": lightningDepositsEPL,
|
|
"getDepositAddress": getDepositAddressEPL,
|
|
"getDepositHistory": getDepositHistoryEPL,
|
|
"withdrawal": withdrawalEPL,
|
|
"lightningWithdrawals": lightningWithdrawalsEPL,
|
|
"cancelWithdrawal": cancelWithdrawalEPL,
|
|
"getWithdrawalHistory": getWithdrawalHistoryEPL,
|
|
"getDepositWithdrawalStatus": getDepositWithdrawalStatusEPL,
|
|
"smallAssetsConvert": smallAssetsConvertEPL,
|
|
"getPublicExchangeList": getPublicExchangeListEPL,
|
|
"getSavingBalance": getSavingBalanceEPL,
|
|
"savingsPurchaseRedemption": savingsPurchaseRedemptionEPL,
|
|
"setLendingRate": setLendingRateEPL,
|
|
"getLendingHistory": getLendingHistoryEPL,
|
|
"getPublicBorrowInfo": getPublicBorrowInfoEPL,
|
|
"getPublicBorrowHistory": getPublicBorrowHistoryEPL,
|
|
"getConvertCurrencies": getConvertCurrenciesEPL,
|
|
"getConvertCurrencyPair": getConvertCurrencyPairEPL,
|
|
"estimateQuote": estimateQuoteEPL,
|
|
"convertTrade": convertTradeEPL,
|
|
"getConvertHistory": getConvertHistoryEPL,
|
|
"getAccountBalance": getAccountBalanceEPL,
|
|
"getPositions": getPositionsEPL,
|
|
"getPositionsHistory": getPositionsHistoryEPL,
|
|
"getAccountAndPositionRisk": getAccountAndPositionRiskEPL,
|
|
"getBillsDetails": getBillsDetailsEPL,
|
|
"getBillsDetailArchive": getBillsDetailArchiveEPL,
|
|
"getAccountConfiguration": getAccountConfigurationEPL,
|
|
"setPositionMode": setPositionModeEPL,
|
|
"setLeverage": setLeverageEPL,
|
|
"getMaximumBuyOrSellAmount": getMaximumBuyOrSellAmountEPL,
|
|
"getMaximumAvailableTradableAmount": getMaximumAvailableTradableAmountEPL,
|
|
"increaseOrDecreaseMargin": increaseOrDecreaseMarginEPL,
|
|
"getLeverage": getLeverageEPL,
|
|
"getLeverateEstimatedInfo": getLeverateEstimatedInfoEPL,
|
|
"getTheMaximumLoanOfInstrument": getTheMaximumLoanOfInstrumentEPL,
|
|
"getFeeRates": getFeeRatesEPL,
|
|
"getInterestAccruedData": getInterestAccruedDataEPL,
|
|
"getInterestRate": getInterestRateEPL,
|
|
"setGreeks": setGreeksEPL,
|
|
"isolatedMarginTradingSettings": isolatedMarginTradingSettingsEPL,
|
|
"getMaximumWithdrawals": getMaximumWithdrawalsEPL,
|
|
"getAccountRiskState": getAccountRiskStateEPL,
|
|
"manualBorrowAndRepay": manualBorrowAndRepayEPL,
|
|
"getBorrowAndRepayHistory": getBorrowAndRepayHistoryEPL,
|
|
"vipLoansBorrowAnsRepay": vipLoansBorrowAnsRepayEPL,
|
|
"getBorrowAnsRepayHistoryHistory": getBorrowAnsRepayHistoryHistoryEPL,
|
|
"getVIPInterestAccruedData": getVIPInterestAccruedDataEPL,
|
|
"getVIPInterestDeductedData": getVIPInterestDeductedDataEPL,
|
|
"getVIPLoanOrderList": getVIPLoanOrderListEPL,
|
|
"getVIPLoanOrderDetail": getVIPLoanOrderDetailEPL,
|
|
"getBorrowInterestAndLimit": getBorrowInterestAndLimitEPL,
|
|
"positionBuilder": positionBuilderEPL,
|
|
"getGreeks": getGreeksEPL,
|
|
"getPMLimitation": getPMLimitationEPL,
|
|
"setRiskOffsetLimiter": setRiskOffsetLimiterEPL,
|
|
"activateOption": activateOptionEPL,
|
|
"setAutoLoan": setAutoLoanEPL,
|
|
"setAccountLevel": setAccountLevelEPL,
|
|
"resetMMPStatus": resetMMPStatusEPL,
|
|
"viewSubaccountList": viewSubaccountListEPL,
|
|
"resetSubAccountAPIKey": resetSubAccountAPIKeyEPL,
|
|
"getSubaccountTradingBalance": getSubaccountTradingBalanceEPL,
|
|
"getSubaccountFundingBalance": getSubaccountFundingBalanceEPL,
|
|
"getSubAccountMaxWithdrawal": getSubAccountMaxWithdrawalEPL,
|
|
"historyOfSubaccountTransfer": historyOfSubaccountTransferEPL,
|
|
"managedSubAccountTransfer": managedSubAccountTransferEPL,
|
|
"masterAccountsManageTransfersBetweenSubaccount": masterAccountsManageTransfersBetweenSubaccountEPL,
|
|
"setPermissionOfTransferOut": setPermissionOfTransferOutEPL,
|
|
"getCustodyTradingSubaccountList": getCustodyTradingSubaccountListEPL,
|
|
"setSubAccountVIPLoanAllocation": setSubAccountVIPLoanAllocationEPL,
|
|
"getSubAccountBorrowInterestAndLimit": getSubAccountBorrowInterestAndLimitEPL,
|
|
"gridTrading": gridTradingEPL,
|
|
"amendGridAlgoOrder": amendGridAlgoOrderEPL,
|
|
"stopGridAlgoOrder": stopGridAlgoOrderEPL,
|
|
"closePositionForForContractGrid": closePositionForForContractGridEPL,
|
|
"cancelClosePositionOrderForContractGrid": cancelClosePositionOrderForContractGridEPL,
|
|
"instantTriggerGridAlgoOrder": instantTriggerGridAlgoOrderEPL,
|
|
"getGridAlgoOrderList": getGridAlgoOrderListEPL,
|
|
"getGridAlgoOrderHistory": getGridAlgoOrderHistoryEPL,
|
|
"getGridAlgoOrderDetails": getGridAlgoOrderDetailsEPL,
|
|
"getGridAlgoSubOrders": getGridAlgoSubOrdersEPL,
|
|
"getGridAlgoOrderPositions": getGridAlgoOrderPositionsEPL,
|
|
"spotGridWithdrawIncome": spotGridWithdrawIncomeEPL,
|
|
"computeMarginBalance": computeMarginBalanceEPL,
|
|
"adjustMarginBalance": adjustMarginBalanceEPL,
|
|
"getGridAIParameter": getGridAIParameterEPL,
|
|
"computeMinInvestment": computeMinInvestmentEPL,
|
|
"rsiBackTesting": rsiBackTestingEPL,
|
|
"signalBotOrderDetails": signalBotOrderDetailsEPL,
|
|
"signalBotOrderPositions": signalBotOrderPositionsEPL,
|
|
"signalBotSubOrders": signalBotSubOrdersEPL,
|
|
"signalBotEventHistory": signalBotEventHistoryEPL,
|
|
"placeRecurringBuyOrder": placeRecurringBuyOrderEPL,
|
|
"amendRecurringBuyOrder": amendRecurringBuyOrderEPL,
|
|
"stopRecurringBuyOrder": stopRecurringBuyOrderEPL,
|
|
"getRecurringBuyOrderList": getRecurringBuyOrderListEPL,
|
|
"getRecurringBuyOrderHistory": getRecurringBuyOrderHistoryEPL,
|
|
"getRecurringBuyOrderDetail": getRecurringBuyOrderDetailEPL,
|
|
"getRecurringBuySubOrders": getRecurringBuySubOrdersEPL,
|
|
"getExistingLeadingPositions": getExistingLeadingPositionsEPL,
|
|
"getLeadingPositionHistory": getLeadingPositionHistoryEPL,
|
|
"placeLeadingStopOrder": placeLeadingStopOrderEPL,
|
|
"closeLeadingPosition": closeLeadingPositionEPL,
|
|
"getLeadingInstruments": getLeadingInstrumentsEPL,
|
|
"getProfitSharingLimit": getProfitSharingLimitEPL,
|
|
"getTotalProfitSharing": getTotalProfitSharingEPL,
|
|
"setFirstCopySettings": setFirstCopySettingsEPL,
|
|
"amendFirstCopySettings": amendFirstCopySettingsEPL,
|
|
"stopCopying": stopCopyingEPL,
|
|
"getCopySettings": getCopySettingsEPL,
|
|
"getMultipleLeverages": getMultipleLeveragesEPL,
|
|
"setBatchLeverage": setBatchLeverageEPL,
|
|
"getMyLeadTraders": getMyLeadTradersEPL,
|
|
"getLeadTraderRanks": getLeadTraderRanksEPL,
|
|
"getLeadTraderWeeklyPNL": getLeadTraderWeeklyPNLEPL,
|
|
"getLeadTraderDailyPNL": getLeadTraderDailyPNLEPL,
|
|
"getLeadTraderStats": getLeadTraderStatsEPL,
|
|
"getLeadTraderCurrencyPreferences": getLeadTraderCurrencyPreferencesEPL,
|
|
"getTraderCurrentLeadPositions": getTraderCurrentLeadPositionsEPL,
|
|
"getLeadTraderLeadPositionHistory": getLeadTraderLeadPositionHistoryEPL,
|
|
"getOffer": getOfferEPL,
|
|
"purchase": purchaseEPL,
|
|
"redeem": redeemEPL,
|
|
"cancelPurchaseOrRedemption": cancelPurchaseOrRedemptionEPL,
|
|
"getEarnActiveOrders": getEarnActiveOrdersEPL,
|
|
"getFundingOrderHistory": getFundingOrderHistoryEPL,
|
|
"purchaseETHStaking": purchaseETHStakingEPL,
|
|
"redeemETHStaking": redeemETHStakingEPL,
|
|
"getBETHBalance": getBETHBalanceEPL,
|
|
"getPurchaseRedeemHistory": getPurchaseRedeemHistoryEPL,
|
|
"getAPYHistory": getAPYHistoryEPL,
|
|
"getTickers": getTickersEPL,
|
|
"getTicker": getTickerEPL,
|
|
"getIndexTickers": getIndexTickersEPL,
|
|
"getOrderBook": getOrderBookEPL,
|
|
"getOrderBookLite": getOrderBookLiteEPL,
|
|
"getCandlesticks": getCandlesticksEPL,
|
|
"getTradesRequest": getTradesRequestEPL,
|
|
"get24HTotalVolume": get24HTotalVolumeEPL,
|
|
"getOracle": getOracleEPL,
|
|
"getExchangeRateRequest": getExchangeRateRequestEPL,
|
|
"getIndexComponents": getIndexComponentsEPL,
|
|
"getBlockTickers": getBlockTickersEPL,
|
|
"getBlockTrades": getBlockTradesEPL,
|
|
"placeSpreadOrder": placeSpreadOrderEPL,
|
|
"cancelSpreadOrder": cancelSpreadOrderEPL,
|
|
"cancelAllSpreadOrder": cancelAllSpreadOrderEPL,
|
|
"amendSpreadOrder": amendSpreadOrderEPL,
|
|
"getSpreadOrderDetails": getSpreadOrderDetailsEPL,
|
|
"getSpreadOrderTrades": getSpreadOrderTradesEPL,
|
|
"getSpreads": getSpreadsEPL,
|
|
"getSpreadOrderbook": getSpreadOrderbookEPL,
|
|
"getSpreadTicker": getSpreadTickerEPL,
|
|
"getSpreadPublicTrades": getSpreadPublicTradesEPL,
|
|
"getActiveSpreadOrders": getActiveSpreadOrdersEPL,
|
|
"getSpreadOrders7Days": getSpreadOrders7DaysEPL,
|
|
"getInstruments": getInstrumentsEPL,
|
|
"getDeliveryExerciseHistory": getDeliveryExerciseHistoryEPL,
|
|
"getOpenInterest": getOpenInterestEPL,
|
|
"getFunding": getFundingEPL,
|
|
"getFundingRateHistory": getFundingRateHistoryEPL,
|
|
"getLimitPrice": getLimitPriceEPL,
|
|
"getOptionMarketDate": getOptionMarketDateEPL,
|
|
"getEstimatedDeliveryExercisePrice": getEstimatedDeliveryExercisePriceEPL,
|
|
"getDiscountRateAndInterestFreeQuota": getDiscountRateAndInterestFreeQuotaEPL,
|
|
"getSystemTime": getSystemTimeEPL,
|
|
"getLiquidationOrders": getLiquidationOrdersEPL,
|
|
"getMarkPrice": getMarkPriceEPL,
|
|
"getPositionTiers": getPositionTiersEPL,
|
|
"getInterestRateAndLoanQuota": getInterestRateAndLoanQuotaEPL,
|
|
"getInterestRateAndLoanQuoteForVIPLoans": getInterestRateAndLoanQuoteForVIPLoansEPL,
|
|
"getUnderlying": getUnderlyingEPL,
|
|
"getInsuranceFund": getInsuranceFundEPL,
|
|
"unitConvert": unitConvertEPL,
|
|
"optionTickBands": optionTickBandsEPL,
|
|
"getIndexTicker": getIndexTickerEPL,
|
|
"getSupportCoin": getSupportCoinEPL,
|
|
"getTakerVolume": getTakerVolumeEPL,
|
|
"getMarginLendingRatio": getMarginLendingRatioEPL,
|
|
"getLongShortRatio": getLongShortRatioEPL,
|
|
"getContractsOpenInterestAndVolume": getContractsOpenInterestAndVolumeEPL,
|
|
"getOptionsOpenInterestAndVolume": getOptionsOpenInterestAndVolumeEPL,
|
|
"getPutCallRatio": getPutCallRatioEPL,
|
|
"getOpenInterestAndVolume": getOpenInterestAndVolumeEPL,
|
|
"getTakerFlow": getTakerFlowEPL,
|
|
"getEventStatus": getEventStatusEPL,
|
|
"getCandlestickHistory": getCandlestickHistoryEPL,
|
|
"getIndexCandlesticks": getIndexCandlesticksEPL,
|
|
"getIndexCandlesticksHistory": getIndexCandlesticksHistoryEPL,
|
|
"getMarkPriceCandlesticksHistory": getMarkPriceCandlesticksHistoryEPL,
|
|
"getEconomicCalendar": getEconomicCalendarEPL,
|
|
"getEstimatedDeliveryPrice": getEstimatedDeliveryPriceEPL,
|
|
"getAffilateInviteesDetail": getAffilateInviteesDetailEPL,
|
|
"getUserAffilateRebateInformation": getUserAffiliateRebateInformationEPL,
|
|
}
|
|
|
|
rl, err := request.New("RateLimit_Static", http.DefaultClient, request.WithLimiter(GetRateLimit()))
|
|
require.NoError(t, err)
|
|
|
|
for name, tt := range testTable {
|
|
t.Run(name, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
if err := rl.InitiateRateLimit(context.Background(), tt); err != nil {
|
|
t.Fatalf("error applying rate limit: %v", err)
|
|
}
|
|
})
|
|
}
|
|
}
|