|
| 1 | +package com.binance.api.client.impl.async; |
| 2 | + |
| 3 | +import com.binance.api.client.api.BinanceApiCallback; |
| 4 | +import com.binance.api.client.api.async.BinanceApiSwapAsyncRestClient; |
| 5 | +import com.binance.api.client.constant.BinanceApiConstants; |
| 6 | +import com.binance.api.client.domain.SwapRemoveType; |
| 7 | +import com.binance.api.client.domain.account.*; |
| 8 | +import com.binance.api.client.impl.BinanceApiCallbackAdapter; |
| 9 | +import com.binance.api.client.impl.BinanceApiService; |
| 10 | +import com.binance.api.client.impl.BinanceApiServiceGenerator; |
| 11 | + |
| 12 | +import java.util.List; |
| 13 | + |
| 14 | + |
| 15 | +/** |
| 16 | + * Implementation of Binance's REST API using Retrofit with asynchronous/non-blocking method calls. |
| 17 | + */ |
| 18 | +public class BinanceApiSwapAsyncRestClientImpl implements BinanceApiSwapAsyncRestClient { |
| 19 | + |
| 20 | + private final BinanceApiService binanceApiService; |
| 21 | + |
| 22 | + public BinanceApiSwapAsyncRestClientImpl(String apiKey, String secret, String apiUrl) { |
| 23 | + binanceApiService = BinanceApiServiceGenerator.createService(BinanceApiService.class, apiKey, secret, apiUrl); |
| 24 | + } |
| 25 | + |
| 26 | + |
| 27 | + @Override |
| 28 | + public void listAllSwapPools(BinanceApiCallback<List<Pool>> callback) { |
| 29 | + binanceApiService.listAllSwapPools().enqueue(new BinanceApiCallbackAdapter<>(callback)); |
| 30 | + } |
| 31 | + |
| 32 | + @Override |
| 33 | + public void getPoolLiquidityInfo(String poolId, BinanceApiCallback<Liquidity> callback) { |
| 34 | + //TODO: not implemented yet ... |
| 35 | + } |
| 36 | + |
| 37 | + @Override |
| 38 | + public void addLiquidity(String poolId, String asset, String quantity, BinanceApiCallback<LiquidityOperationRecord> callback) { |
| 39 | + long timestamp = System.currentTimeMillis(); |
| 40 | + binanceApiService.addLiquidity(poolId, |
| 41 | + asset, |
| 42 | + quantity, |
| 43 | + BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, |
| 44 | + timestamp).enqueue(new BinanceApiCallbackAdapter<>(callback)); |
| 45 | + } |
| 46 | + |
| 47 | + @Override |
| 48 | + public void removeLiquidity(String poolId, SwapRemoveType type, List<String> assetList, String shareAmount, BinanceApiCallback<LiquidityOperationRecord> callback) { |
| 49 | + long timestamp = System.currentTimeMillis(); |
| 50 | + binanceApiService.removeLiquidity(poolId, |
| 51 | + type, |
| 52 | + assetList, |
| 53 | + shareAmount, |
| 54 | + BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, |
| 55 | + timestamp).enqueue(new BinanceApiCallbackAdapter<>(callback)); |
| 56 | + |
| 57 | + } |
| 58 | + |
| 59 | + @Override |
| 60 | + public void getPoolLiquidityOperationRecords(String poolId, Integer limit, BinanceApiCallback<List<LiquidityOperationRecord>> callback) { |
| 61 | + long timestamp = System.currentTimeMillis(); |
| 62 | + binanceApiService.getPoolLiquidityOperationRecords(poolId, limit, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, timestamp) |
| 63 | + .enqueue(new BinanceApiCallbackAdapter<>(callback)); |
| 64 | + } |
| 65 | + |
| 66 | + @Override |
| 67 | + public void getLiquidityOperationRecord(String operationId, BinanceApiCallback<LiquidityOperationRecord> callback) { |
| 68 | + long timestamp = System.currentTimeMillis(); |
| 69 | + binanceApiService.getLiquidityOperationRecord(operationId, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, timestamp); |
| 70 | + } |
| 71 | + |
| 72 | + @Override |
| 73 | + public void requestQuote(String quoteAsset, String baseAsset, String quoteQty, BinanceApiCallback<SwapQuote> callback) { |
| 74 | + long timestamp = System.currentTimeMillis(); |
| 75 | + binanceApiService.requestQuote(quoteAsset, baseAsset, quoteQty, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, timestamp); |
| 76 | + } |
| 77 | + |
| 78 | + @Override |
| 79 | + public void swap(String quoteAsset, String baseAsset, String quoteQty, BinanceApiCallback<SwapRecord> callback) { |
| 80 | + long timestamp = System.currentTimeMillis(); |
| 81 | + binanceApiService.swap(quoteAsset, baseAsset, quoteQty, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, timestamp); |
| 82 | + } |
| 83 | + |
| 84 | + @Override |
| 85 | + public void getSwapHistory(String swapId, BinanceApiCallback<SwapHistory> callback) { |
| 86 | + long timestamp = System.currentTimeMillis(); |
| 87 | + binanceApiService.getSwapHistory(swapId, BinanceApiConstants.DEFAULT_RECEIVING_WINDOW, timestamp); |
| 88 | + } |
| 89 | +} |
0 commit comments