From 134f4c8631b50081dd1f1c4b5e201382cfe44b77 Mon Sep 17 00:00:00 2001 From: vromashkin Date: Fri, 14 Feb 2025 10:40:24 +0000 Subject: [PATCH] feat: add get transferable amount endpoint --- .../client/impl/BybitApiAccountRestClientImpl.java | 5 +++++ .../impl/BybitApiAsyncAccountRestClientImpl.java | 6 ++++++ .../api/client/restApi/BybitApiAccountRestClient.java | 1 + .../restApi/BybitApiAsyncAccountRestClient.java | 1 + .../com/bybit/api/client/restApi/BybitApiService.java | 11 +++++++++++ .../bybit/api/domain/account/AccountBalanceTest.java | 8 +++++++- 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/bybit/api/client/impl/BybitApiAccountRestClientImpl.java b/src/main/java/com/bybit/api/client/impl/BybitApiAccountRestClientImpl.java index d14d93c..ad80833 100644 --- a/src/main/java/com/bybit/api/client/impl/BybitApiAccountRestClientImpl.java +++ b/src/main/java/com/bybit/api/client/impl/BybitApiAccountRestClientImpl.java @@ -25,6 +25,11 @@ public Object getWalletBalance(AccountDataRequest walletBalanceRequest) { )); } + @Override + public Object getTransferableAmount(AccountDataRequest transferableAmountRequest) { + return executeSync(bybitApiService.getWithdrawal(transferableAmountRequest.getCoin())); + } + @Override public Object upgradeAccountToUTA() { return executeSync(bybitApiService.upgradeAccountToUTA()); diff --git a/src/main/java/com/bybit/api/client/impl/BybitApiAsyncAccountRestClientImpl.java b/src/main/java/com/bybit/api/client/impl/BybitApiAsyncAccountRestClientImpl.java index d189e69..9eb20a7 100644 --- a/src/main/java/com/bybit/api/client/impl/BybitApiAsyncAccountRestClientImpl.java +++ b/src/main/java/com/bybit/api/client/impl/BybitApiAsyncAccountRestClientImpl.java @@ -26,6 +26,12 @@ public void getWalletBalance(AccountDataRequest walletBalanceRequest, BybitApiCa ).enqueue(new BybitApiCallbackAdapter<>(callback)); } + @Override + public void getTransferableAmount(AccountDataRequest transferableAmountRequest, BybitApiCallback callback) { + bybitApiService.getWithdrawal(transferableAmountRequest.getCoin()) + .enqueue(new BybitApiCallbackAdapter<>(callback)); + } + @Override public void upgradeAccountToUTA(BybitApiCallback callback) { bybitApiService.upgradeAccountToUTA().enqueue(new BybitApiCallbackAdapter<>(callback)); diff --git a/src/main/java/com/bybit/api/client/restApi/BybitApiAccountRestClient.java b/src/main/java/com/bybit/api/client/restApi/BybitApiAccountRestClient.java index 5282360..3230cb1 100644 --- a/src/main/java/com/bybit/api/client/restApi/BybitApiAccountRestClient.java +++ b/src/main/java/com/bybit/api/client/restApi/BybitApiAccountRestClient.java @@ -6,6 +6,7 @@ public interface BybitApiAccountRestClient { // Account endpoints Object getWalletBalance(AccountDataRequest walletBalanceRequest); + Object getTransferableAmount(AccountDataRequest transferableAmountRequest); Object upgradeAccountToUTA(); Object getAccountBorrowHistory(AccountDataRequest borrowHistoryRequest); Object setAccountCollateralCoin(AccountDataRequest setCollateralCoinRequest); diff --git a/src/main/java/com/bybit/api/client/restApi/BybitApiAsyncAccountRestClient.java b/src/main/java/com/bybit/api/client/restApi/BybitApiAsyncAccountRestClient.java index 202dc18..a850af6 100644 --- a/src/main/java/com/bybit/api/client/restApi/BybitApiAsyncAccountRestClient.java +++ b/src/main/java/com/bybit/api/client/restApi/BybitApiAsyncAccountRestClient.java @@ -6,6 +6,7 @@ public interface BybitApiAsyncAccountRestClient { // Account endpoints void getWalletBalance(AccountDataRequest walletBalanceRequest, BybitApiCallback callback); + void getTransferableAmount(AccountDataRequest transferableAmountRequest, BybitApiCallback callback); void upgradeAccountToUTA(BybitApiCallback callback); void getAccountBorrowHistory(AccountDataRequest borrowHistoryRequest, BybitApiCallback callback); void setAccountCollateralCoin(AccountDataRequest setCollateralCoinRequest, BybitApiCallback callback); diff --git a/src/main/java/com/bybit/api/client/restApi/BybitApiService.java b/src/main/java/com/bybit/api/client/restApi/BybitApiService.java index 573ba64..8e5dbe5 100644 --- a/src/main/java/com/bybit/api/client/restApi/BybitApiService.java +++ b/src/main/java/com/bybit/api/client/restApi/BybitApiService.java @@ -2873,6 +2873,17 @@ Call getPreUpgradeUsdcSettlement(@Query("category") String category, Call getWalletBalance(@Query("accountType") String accountType, @Query("coin") String coin); + /** + * Query the available amount to transfer of a specific coin in the Unified wallet. + * @param coin true string Coin name, uppercase only + * @return Response Parameters + * Parameter Type Comments + * > availableWithdrawal String Transferable amount + */ + @Headers(BybitApiConstants.ENDPOINT_SECURITY_TYPE_SIGNED_HEADER) + @GET("/v5/account/withdrawal") + Call getWithdrawal(@Query("coinName") String coin); + /** * Upgrade to Unified Account * Upgrade Unified Account diff --git a/src/test/java/com/bybit/api/domain/account/AccountBalanceTest.java b/src/test/java/com/bybit/api/domain/account/AccountBalanceTest.java index 8f3d1e5..96a65d1 100644 --- a/src/test/java/com/bybit/api/domain/account/AccountBalanceTest.java +++ b/src/test/java/com/bybit/api/domain/account/AccountBalanceTest.java @@ -2,7 +2,6 @@ import com.bybit.api.client.config.BybitApiConfig; import com.bybit.api.client.domain.account.AccountType; -import com.bybit.api.client.domain.account.SpotHedgingMode; import com.bybit.api.client.domain.account.request.AccountDataRequest; import com.bybit.api.client.restApi.BybitApiAccountRestClient; import com.bybit.api.client.service.BybitApiClientFactory; @@ -17,4 +16,11 @@ public void Test_GetAccountBalance() { var result = client.getWalletBalance(unifyWalletBalanceRequest); System.out.println(result); } + + @Test + public void Test_GetCoinTransferableAmount() { + var getTransferableAmountRequest = AccountDataRequest.builder().coin("USDT").build(); + var result = client.getTransferableAmount(getTransferableAmountRequest); + System.out.println(result); + } }