Skip to content

Commit 7ff4dbf

Browse files
authored
Merge pull request binance-exchange#253 from davemx/master
Allow a custom base domain name so binance.us can be used.
2 parents 956cb15 + 720dabf commit 7ff4dbf

File tree

6 files changed

+64
-23
lines changed

6 files changed

+64
-23
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.binance.api.client.config;
2+
3+
/**
4+
* Configuration used for Binance operations.
5+
*/
6+
public class BinanceApiConfig {
7+
8+
/**
9+
* Base domain for URLs.
10+
*/
11+
private static String BASE_DOMAIN = "binance.com";
12+
13+
/**
14+
* Set the URL base domain name (e.g., binance.com).
15+
*
16+
* @param baseDomain Base domain name
17+
*/
18+
public static void setBaseDomain(final String baseDomain) {
19+
BASE_DOMAIN = baseDomain;
20+
}
21+
22+
/**
23+
* Get the URL base domain name (e.g., binance.com).
24+
*
25+
* @return The base domain for URLs
26+
*/
27+
public static String getBaseDomain() {
28+
return BASE_DOMAIN;
29+
}
30+
31+
/**
32+
* REST API base URL.
33+
*/
34+
public static String getApiBaseUrl() {
35+
return String.format("https://api.%s", getBaseDomain());
36+
}
37+
38+
/**
39+
* Streaming API base URL.
40+
*/
41+
public static String getStreamApiBaseUrl() {
42+
return String.format("wss://stream.%s:9443/ws", getBaseDomain());
43+
}
44+
45+
/**
46+
* Asset info base URL.
47+
*/
48+
public static String getAssetInfoApiBaseUrl() {
49+
return String.format("https://%s/", getBaseDomain());
50+
}
51+
52+
}

src/main/java/com/binance/api/client/constant/BinanceApiConstants.java

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,6 @@
77
*/
88
public class BinanceApiConstants {
99

10-
/**
11-
* REST API base URL.
12-
*/
13-
public static final String API_BASE_URL = "https://api.binance.com";
14-
15-
/**
16-
* Streaming API base URL.
17-
*/
18-
public static final String WS_API_BASE_URL = "wss://stream.binance.com:9443/ws";
19-
20-
/**
21-
* Asset info base URL.
22-
*/
23-
public static final String ASSET_INFO_API_BASE_URL = "https://www.binance.com/";
24-
2510
/**
2611
* HTTP Header to be used for API-KEY authentication.
2712
*/
@@ -43,10 +28,10 @@ public class BinanceApiConstants {
4328
* Default receiving window.
4429
*/
4530
public static final long DEFAULT_RECEIVING_WINDOW = 60_000L;
46-
31+
4732
/**
48-
* Default ToStringStyle used by toString methods.
49-
* Override this to change the output format of the overridden toString methods.
33+
* Default ToStringStyle used by toString methods.
34+
* Override this to change the output format of the overridden toString methods.
5035
* - Example ToStringStyle.JSON_STYLE
5136
*/
5237
public static ToStringStyle TO_STRING_BUILDER_STYLE = ToStringStyle.SHORT_PREFIX_STYLE;

src/main/java/com/binance/api/client/impl/BinanceApiAsyncRestClientImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.binance.api.client.BinanceApiAsyncRestClient;
44
import com.binance.api.client.BinanceApiCallback;
5+
import com.binance.api.client.config.BinanceApiConfig;
56
import com.binance.api.client.constant.BinanceApiConstants;
67
import com.binance.api.client.domain.account.Account;
78
import com.binance.api.client.domain.account.DepositAddress;
@@ -64,7 +65,7 @@ public void getExchangeInfo(BinanceApiCallback<ExchangeInfo> callback) {
6465

6566
@Override
6667
public void getAllAssets(BinanceApiCallback<List<Asset>> callback) {
67-
binanceApiService.getAllAssets(BinanceApiConstants.ASSET_INFO_API_BASE_URL + "assetWithdraw/getAllAsset.html")
68+
binanceApiService.getAllAssets(BinanceApiConfig.getAssetInfoApiBaseUrl() + "assetWithdraw/getAllAsset.html")
6869
.enqueue(new BinanceApiCallbackAdapter<>(callback));
6970
}
7071

src/main/java/com/binance/api/client/impl/BinanceApiRestClientImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.binance.api.client.impl;
22

33
import com.binance.api.client.BinanceApiRestClient;
4+
import com.binance.api.client.config.BinanceApiConfig;
45
import com.binance.api.client.constant.BinanceApiConstants;
56
import com.binance.api.client.domain.account.Account;
67
import com.binance.api.client.domain.account.DepositAddress;
@@ -62,7 +63,7 @@ public ExchangeInfo getExchangeInfo() {
6263

6364
@Override
6465
public List<Asset> getAllAssets() {
65-
return executeSync(binanceApiService.getAllAssets(BinanceApiConstants.ASSET_INFO_API_BASE_URL + "assetWithdraw/getAllAsset.html"));
66+
return executeSync(binanceApiService.getAllAssets(BinanceApiConfig.getAssetInfoApiBaseUrl() + "assetWithdraw/getAllAsset.html"));
6667
}
6768

6869
// Market Data endpoints

src/main/java/com/binance/api/client/impl/BinanceApiServiceGenerator.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.binance.api.client.impl;
22

33
import com.binance.api.client.BinanceApiError;
4+
import com.binance.api.client.config.BinanceApiConfig;
45
import com.binance.api.client.constant.BinanceApiConstants;
56
import com.binance.api.client.exception.BinanceApiException;
67
import com.binance.api.client.security.AuthenticationInterceptor;
@@ -48,7 +49,7 @@ public static <S> S createService(Class<S> serviceClass) {
4849

4950
public static <S> S createService(Class<S> serviceClass, String apiKey, String secret) {
5051
Retrofit.Builder retrofitBuilder = new Retrofit.Builder()
51-
.baseUrl(BinanceApiConstants.API_BASE_URL)
52+
.baseUrl(BinanceApiConfig.getApiBaseUrl())
5253
.addConverterFactory(converterFactory);
5354

5455
if (StringUtils.isEmpty(apiKey) || StringUtils.isEmpty(secret)) {
@@ -94,4 +95,4 @@ public static BinanceApiError getBinanceApiError(Response<?> response) throws IO
9495
public static OkHttpClient getSharedClient() {
9596
return sharedClient;
9697
}
97-
}
98+
}

src/main/java/com/binance/api/client/impl/BinanceApiWebSocketClientImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.binance.api.client.BinanceApiCallback;
44
import com.binance.api.client.BinanceApiWebSocketClient;
5+
import com.binance.api.client.config.BinanceApiConfig;
56
import com.binance.api.client.constant.BinanceApiConstants;
67
import com.binance.api.client.domain.event.AggTradeEvent;
78
import com.binance.api.client.domain.event.AllMarketTickersEvent;
@@ -73,7 +74,7 @@ public Closeable onAllMarketTickersEvent(BinanceApiCallback<List<AllMarketTicker
7374
public void close() { }
7475

7576
private Closeable createNewWebSocket(String channel, BinanceApiWebSocketListener<?> listener) {
76-
String streamingUrl = String.format("%s/%s", BinanceApiConstants.WS_API_BASE_URL, channel);
77+
String streamingUrl = String.format("%s/%s", BinanceApiConfig.getStreamApiBaseUrl(), channel);
7778
Request request = new Request.Builder().url(streamingUrl).build();
7879
final WebSocket webSocket = client.newWebSocket(request, listener);
7980
return () -> {

0 commit comments

Comments
 (0)