diff --git a/futures_api_example_java/pom.xml b/futures_api_example_java/pom.xml index cd638f6..6d0ee67 100644 --- a/futures_api_example_java/pom.xml +++ b/futures_api_example_java/pom.xml @@ -91,6 +91,36 @@ -Xlint:unchecked + + + org.apache.maven.plugins + maven-assembly-plugin + 3.3.0 + + + package + + single + + + + ${project.basedir}/build + + + + true + + com.bitrue.futures.sdk.client.Main + + + + + jar-with-dependencies + + + + + \ No newline at end of file diff --git a/futures_api_example_java/readme.md b/futures_api_example_java/readme.md index 2b50da6..baaee52 100644 --- a/futures_api_example_java/readme.md +++ b/futures_api_example_java/readme.md @@ -1,25 +1,15 @@ ## Getting started -#### Public API +#### How to run this project -* junit -run MarketTest +* To create a new self executable jar + * run the command on the terminal > mvn clean install + * run self executable jar > java -jar e.g. bitrue-future-client-0.9.0-SNAPSHOT-jar-with-dependencies.jar + * run unit test > mvn test + * skip unit test > mvn clean install -DskipTests -#### Trade & Account API - -``` java - -public class PrivateConfig { - - public static final String API_KEY = "XXXXXX"; - public static final String SECRET_KEY = "XXXXXX"; - -} - -# junit: -TradeTest -AccountTest -``` +#### API key and signature +* See the class PrivateConfig.java, add your Bittrue APIKey and Signature diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/PrivateConfig.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/PrivateConfig.java index e3b736b..f335bb9 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/PrivateConfig.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/PrivateConfig.java @@ -1,7 +1,6 @@ package com.bitrue.futures.sdk.client; public class PrivateConfig { - public static final String API_KEY = "yyy"; public static final String SECRET_KEY = "xxx"; } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/RequestOptions.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/RequestOptions.java index 38034b6..bd448f5 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/RequestOptions.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/RequestOptions.java @@ -1,5 +1,6 @@ package com.bitrue.futures.sdk.client; +import com.bitrue.futures.sdk.client.constant.FuturesApiConstants; import com.bitrue.futures.sdk.client.exception.BitrueApiException; import java.net.URL; diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/FuturesApiConstants.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/constant/FuturesApiConstants.java similarity index 96% rename from futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/FuturesApiConstants.java rename to futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/constant/FuturesApiConstants.java index 410764e..c19fadf 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/FuturesApiConstants.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/constant/FuturesApiConstants.java @@ -1,4 +1,4 @@ -package com.bitrue.futures.sdk.client; +package com.bitrue.futures.sdk.client.constant; import org.apache.commons.lang.builder.ToStringStyle; @@ -38,4 +38,4 @@ public class FuturesApiConstants { * ToStringStyle.JSON_STYLE */ public static ToStringStyle TO_STRING_BUILDER_STYLE = ToStringStyle.SHORT_PREFIX_STYLE; -} +} \ No newline at end of file diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/exception/BitrueApiException.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/exception/BitrueApiException.java index d352161..bc0be4c 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/exception/BitrueApiException.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/exception/BitrueApiException.java @@ -2,15 +2,10 @@ public class BitrueApiException extends RuntimeException { - /** - * - */ private static final long serialVersionUID = 4360108982268949009L; public static final String RUNTIME_ERROR = "RuntimeError"; public static final String INPUT_ERROR = "InputError"; public static final String KEY_MISSING = "KeyMissing"; - public static final String SYS_ERROR = "SysError"; - public static final String SUBSCRIPTION_ERROR = "SubscriptionError"; public static final String ENV_ERROR = "EnvironmentError"; public static final String EXEC_ERROR = "ExecuteError"; private final String errCode; diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/ApiSignature.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/ApiSignature.java index 86f4273..61cf7b8 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/ApiSignature.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/ApiSignature.java @@ -1,6 +1,5 @@ package com.bitrue.futures.sdk.client.impl; -import com.bitrue.futures.sdk.client.FuturesApiConstants; import com.bitrue.futures.sdk.client.exception.BitrueApiException; import com.bitrue.futures.sdk.client.utils.UrlParamsBuilder; import org.apache.commons.codec.binary.Hex; @@ -12,8 +11,6 @@ class ApiSignature { -// static final String op = "op"; -// static final String opValue = "auth"; private static final String signatureMethodValue = "HmacSHA256"; public static final String signatureVersionValue = "2"; @@ -23,13 +20,6 @@ String createSignature(String ts, String path, String accessKey, String secretKe throw new BitrueApiException(BitrueApiException.KEY_MISSING, "API key and secret key are required"); } -// if(builder.getMethod().equals("GET")){ -// builder.putToUrl("recvWindow", Long.toString(FuturesApiConstants.DEFAULT_RECEIVING_WINDOW)); -// } -// else if(builder.getMethod().equals("POST")){ -// builder.putToPost("recvWindow",Long.toString(FuturesApiConstants.DEFAULT_RECEIVING_WINDOW)); -// } - Mac hmacSha256; try { hmacSha256 = Mac.getInstance(signatureMethodValue); @@ -49,5 +39,4 @@ String createSignature(String ts, String path, String accessKey, String secretKe return actualSign; } - } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/BitrueApiInternalFactory.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/BitrueApiInternalFactory.java index 1e15272..477ce95 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/BitrueApiInternalFactory.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/BitrueApiInternalFactory.java @@ -25,4 +25,4 @@ public SyncRequestClient createSyncRequestInverseClient(String apiKey, String se InverseRestApiRquestImpl inverseRequestImpl = new InverseRestApiRquestImpl(apiKey, secKey, options); return new SyncRequestImpl(inverseRequestImpl); } -} +} \ No newline at end of file diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/InverseRestApiRquestImpl.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/InverseRestApiRquestImpl.java index 02fe934..b084ead 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/InverseRestApiRquestImpl.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/InverseRestApiRquestImpl.java @@ -26,9 +26,7 @@ RestApiRequest getServerTime(){ RestApiRequest request = new RestApiRequest<>(); UrlParamsBuilder builder = UrlParamsBuilder.build(); request.request = createRequestByGet("/dapi/v1/time", builder); - request.jsonParser = (jsonWrapper -> { - return ServerTime.builder().serverMillis(jsonWrapper.getLong("serverTime")).timeZone(jsonWrapper.getString("timezone")).build(); - }); + request.jsonParser = (jsonWrapper -> ServerTime.builder().serverMillis(jsonWrapper.getLong("serverTime")).timeZone(jsonWrapper.getString("timezone")).build()); return request; } @@ -69,7 +67,7 @@ RestApiRequest> getContractList() { @Override RestApiRequest getOrderBook(String contractName, Integer limit) { - RestApiRequest request = new RestApiRequest(); + RestApiRequest request = new RestApiRequest<>(); UrlParamsBuilder builder = UrlParamsBuilder.build() .putToUrl("contractName", contractName) .putToUrl("limit", limit); @@ -112,17 +110,14 @@ RestApiRequest get24HrTickerPriceChange(String contractName){ request.request = createRequestByGet("/dapi/v1/ticker", builder); - request.jsonParser = (jsonWrapper ->{ - PriceChangeTicker result = PriceChangeTicker.builder() - .high(jsonWrapper.getBigDecimal("high")) - .low(jsonWrapper.getBigDecimal("low")) - .last(jsonWrapper.getBigDecimal("last")) - .vol(jsonWrapper.getBigDecimal("vol")) - .rose(jsonWrapper.getBigDecimal("rose")) - .time(jsonWrapper.getLong("time")) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> PriceChangeTicker.builder() + .high(jsonWrapper.getBigDecimal("high")) + .low(jsonWrapper.getBigDecimal("low")) + .last(jsonWrapper.getBigDecimal("last")) + .vol(jsonWrapper.getBigDecimal("vol")) + .rose(jsonWrapper.getBigDecimal("rose")) + .time(jsonWrapper.getLong("time")) + .build()); return request; } @@ -171,14 +166,11 @@ RestApiRequest postOrder(String contractName, String price, String volume request.request = createRequestByPostWithSignature("/dapi/v1/order", builder); - request.jsonParser = (jsonWrapper -> { - Order result = Order.builder() - .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).price(new BigDecimal(price)) - .orgiQty(new BigDecimal(volume)).type(orderType.name()).contractName(contractName).side(side.name()) - .postionAction(action.name()).timeInForce(timeInForce.name()) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> Order.builder() + .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).price(new BigDecimal(price)) + .orgiQty(new BigDecimal(volume)).type(orderType.name()).contractName(contractName).side(side.name()) + .postionAction(action.name()).timeInForce(timeInForce.name()) + .build()); return request; } @@ -198,14 +190,11 @@ RestApiRequest marketOrder(String contractName, String volume, OrderSide request.request = createRequestByPostWithSignature("/dapi/v1/order", builder); - request.jsonParser = (jsonWrapper -> { - Order result = Order.builder() - .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")) - .orgiQty(new BigDecimal(volume)).type(OrderType.MARKET.name()).contractName(contractName).side(side.name()) - .postionAction(action.name()).timeInForce(OrderType.MARKET.name()) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> Order.builder() + .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")) + .orgiQty(new BigDecimal(volume)).type(OrderType.MARKET.name()).contractName(contractName).side(side.name()) + .postionAction(action.name()).timeInForce(OrderType.MARKET.name()) + .build()); return request; } @@ -219,12 +208,9 @@ public RestApiRequest cancelOrder(String contractName, Long orderId, Stri .putToPost("clientOrderId", clientOrdId); request.request = createRequestByPostWithSignature("/dapi/v1/cancel", builder); - request.jsonParser = (jsonWrapper -> { - Order result = Order.builder() - .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).contractName(contractName) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> Order.builder() + .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).contractName(contractName) + .build()); return request; } @@ -260,14 +246,12 @@ public RestApiRequest queryOrder(String contractName, Long orderId){ builder.putToUrl("orderId", String.valueOf(orderId)); request.request = createRequestByGetWithSignature("/dapi/v1/order", builder); - request.jsonParser = (wrapper -> { - return Order.builder().orderId(wrapper.getLong("orderId")).side(wrapper.getString("side")) - .executeQty(wrapper.getBigDecimalOrDefault("executedQty", BigDecimal.ZERO)) - .price(wrapper.getBigDecimal("price")).orgiQty(wrapper.getBigDecimal("origQty")) - .avgPrice(wrapper.getBigDecimalOrDefault("avgPrice", BigDecimal.ZERO)) - .type(wrapper.getString("type")).status(wrapper.getString("status")) - .postionAction(wrapper.getString("action")).ctime(wrapper.getLong("transactTime")).build(); - }); + request.jsonParser = (wrapper -> Order.builder().orderId(wrapper.getLong("orderId")).side(wrapper.getString("side")) + .executeQty(wrapper.getBigDecimalOrDefault("executedQty", BigDecimal.ZERO)) + .price(wrapper.getBigDecimal("price")).orgiQty(wrapper.getBigDecimal("origQty")) + .avgPrice(wrapper.getBigDecimalOrDefault("avgPrice", BigDecimal.ZERO)) + .type(wrapper.getString("type")).status(wrapper.getString("status")) + .postionAction(wrapper.getString("action")).ctime(wrapper.getLong("transactTime")).build()); return request; } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiInvoker.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiInvoker.java index 2f7e299..6d5c7f0 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiInvoker.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiInvoker.java @@ -7,7 +7,6 @@ import org.slf4j.LoggerFactory; abstract class RestApiInvoker { - private static final Logger log = LoggerFactory.getLogger(RestApiInvoker.class); private static final OkHttpClient client = new OkHttpClient(); @@ -66,5 +65,4 @@ static T callSync(RestApiRequest request) { "[Invoking] Unexpected error: " + e.getMessage()); } } - } \ No newline at end of file diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequest.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequest.java index bc9edec..3d2580a 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequest.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequest.java @@ -3,8 +3,6 @@ import okhttp3.Request; public class RestApiRequest { - public Request request; - RestApiJsonParser jsonParser; } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequestImpl.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequestImpl.java index 25fb974..21b3ce9 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequestImpl.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/impl/RestApiRequestImpl.java @@ -1,6 +1,6 @@ package com.bitrue.futures.sdk.client.impl; -import com.bitrue.futures.sdk.client.FuturesApiConstants; +import com.bitrue.futures.sdk.client.constant.FuturesApiConstants; import com.bitrue.futures.sdk.client.RequestOptions; import com.bitrue.futures.sdk.client.exception.BitrueApiException; import com.bitrue.futures.sdk.client.model.account.Account; @@ -11,22 +11,16 @@ import com.bitrue.futures.sdk.client.model.trade.Order; import com.bitrue.futures.sdk.client.utils.JsonWrapperArray; import com.bitrue.futures.sdk.client.utils.UrlParamsBuilder; -import com.sun.tools.corba.se.idl.constExpr.Or; import okhttp3.Request; import java.math.BigDecimal; -import java.security.URIParameter; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; public class RestApiRequestImpl { - private String apiKey; - private String secretKey; - private String serverUrl; + private final String apiKey; + private final String secretKey; + private final String serverUrl; RestApiRequestImpl(String apiKey, String secretKey, RequestOptions options) { this.apiKey = apiKey; @@ -178,9 +172,7 @@ RestApiRequest getServerTime(){ RestApiRequest request = new RestApiRequest<>(); UrlParamsBuilder builder = UrlParamsBuilder.build(); request.request = createRequestByGet("/fapi/v1/time", builder); - request.jsonParser = (jsonWrapper -> { - return ServerTime.builder().serverMillis(jsonWrapper.getLong("serverTime")).timeZone(jsonWrapper.getString("timezone")).build(); - }); + request.jsonParser = (jsonWrapper -> ServerTime.builder().serverMillis(jsonWrapper.getLong("serverTime")).timeZone(jsonWrapper.getString("timezone")).build()); return request; } @@ -219,7 +211,7 @@ RestApiRequest> getContractList() { } RestApiRequest getOrderBook(String contractName, Integer limit) { - RestApiRequest request = new RestApiRequest(); + RestApiRequest request = new RestApiRequest<>(); UrlParamsBuilder builder = UrlParamsBuilder.build() .putToUrl("contractName", contractName) .putToUrl("limit", limit); @@ -261,17 +253,14 @@ RestApiRequest get24HrTickerPriceChange(String contractName){ request.request = createRequestByGet("/fapi/v1/ticker", builder); - request.jsonParser = (jsonWrapper ->{ - PriceChangeTicker result = PriceChangeTicker.builder() - .high(jsonWrapper.getBigDecimal("high")) - .low(jsonWrapper.getBigDecimal("low")) - .last(jsonWrapper.getBigDecimal("last")) - .vol(jsonWrapper.getBigDecimal("vol")) - .rose(jsonWrapper.getBigDecimal("rose")) - .time(jsonWrapper.getLong("time")) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> PriceChangeTicker.builder() + .high(jsonWrapper.getBigDecimal("high")) + .low(jsonWrapper.getBigDecimal("low")) + .last(jsonWrapper.getBigDecimal("last")) + .vol(jsonWrapper.getBigDecimal("vol")) + .rose(jsonWrapper.getBigDecimal("rose")) + .time(jsonWrapper.getLong("time")) + .build()); return request; } @@ -339,14 +328,11 @@ RestApiRequest postOrder(String contractName, String price, String volume request.request = createRequestByPostWithSignature("/fapi/v1/order", builder); - request.jsonParser = (jsonWrapper -> { - Order result = Order.builder() - .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).price(new BigDecimal(price)) - .orgiQty(new BigDecimal(volume)).type(orderType.name()).contractName(contractName).side(side.name()) - .postionAction(action.name()).timeInForce(timeInForce.name()) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> Order.builder() + .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).price(new BigDecimal(price)) + .orgiQty(new BigDecimal(volume)).type(orderType.name()).contractName(contractName).side(side.name()) + .postionAction(action.name()).timeInForce(timeInForce.name()) + .build()); return request; } @@ -365,14 +351,11 @@ RestApiRequest marketOrder(String contractName, String volume, OrderSide request.request = createRequestByPostWithSignature("/fapi/v1/order", builder); - request.jsonParser = (jsonWrapper -> { - Order result = Order.builder() - .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")) - .orgiQty(new BigDecimal(volume)).type(OrderType.MARKET.name()).contractName(contractName).side(side.name()) - .postionAction(action.name()).timeInForce(OrderType.MARKET.name()) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> Order.builder() + .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")) + .orgiQty(new BigDecimal(volume)).type(OrderType.MARKET.name()).contractName(contractName).side(side.name()) + .postionAction(action.name()).timeInForce(OrderType.MARKET.name()) + .build()); return request; } @@ -385,12 +368,9 @@ public RestApiRequest cancelOrder(String contractName, Long orderId, Stri .putToPost("clientOrderId", clientOrdId); request.request = createRequestByPostWithSignature("/fapi/v1/cancel", builder); - request.jsonParser = (jsonWrapper -> { - Order result = Order.builder() - .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).contractName(contractName) - .build(); - return result; - }); + request.jsonParser = (jsonWrapper -> Order.builder() + .clientOrdId(clientOrdId).orderId(jsonWrapper.getLong("orderId")).contractName(contractName) + .build()); return request; } @@ -425,14 +405,12 @@ public RestApiRequest queryOrder(String contractName, Long orderId){ builder.putToUrl("orderId", String.valueOf(orderId)); request.request = createRequestByGetWithSignature("/fapi/v1/order", builder); - request.jsonParser = (wrapper -> { - return Order.builder().orderId(wrapper.getLong("orderId")).side(wrapper.getString("side")) - .executeQty(wrapper.getBigDecimalOrDefault("executedQty", BigDecimal.ZERO)) - .price(wrapper.getBigDecimal("price")).orgiQty(wrapper.getBigDecimal("origQty")) - .avgPrice(wrapper.getBigDecimalOrDefault("avgPrice", BigDecimal.ZERO)) - .type(wrapper.getString("type")).status(wrapper.getString("status")) - .postionAction(wrapper.getString("action")).ctime(wrapper.getLong("transactTime")).build(); - }); + request.jsonParser = (wrapper -> Order.builder().orderId(wrapper.getLong("orderId")).side(wrapper.getString("side")) + .executeQty(wrapper.getBigDecimalOrDefault("executedQty", BigDecimal.ZERO)) + .price(wrapper.getBigDecimal("price")).orgiQty(wrapper.getBigDecimal("origQty")) + .avgPrice(wrapper.getBigDecimalOrDefault("avgPrice", BigDecimal.ZERO)) + .type(wrapper.getString("type")).status(wrapper.getString("status")) + .postionAction(wrapper.getString("action")).ctime(wrapper.getLong("transactTime")).build()); return request; } @@ -545,17 +523,4 @@ public RestApiRequest> getPositions(String contractName) { }); return request; } - -// public static void main(String[] args){ -// ZoneId utc = ZoneId.of("Etc/UTC"); -// DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern( -// "MM/dd/yyyy hh:mm:ss a zzz", Locale.ENGLISH); -// -// String itsAlarmDttm = "2013-10-22T01:37:56"; -// ZonedDateTime utcDateTime = LocalDateTime.parse(itsAlarmDttm) -// .atZone(ZoneId.systemDefault()) -// .withZoneSameInstant(utc); -// String formatterUtcDateTime = utcDateTime.format(targetFormatter); -// System.out.println(formatterUtcDateTime); -// } } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Account.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Account.java index 6399655..4be6e25 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Account.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Account.java @@ -6,6 +6,9 @@ import java.math.BigDecimal; import java.util.List; +/** + * Account details + */ @Data @Builder public class Account { diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Position.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Position.java index f01c7dc..3d2bb09 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Position.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/Position.java @@ -7,8 +7,10 @@ import java.math.BigDecimal; import java.time.ZonedDateTime; -import java.util.Date; +/** + * Position details + */ @Data @Builder public class Position { diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/PositionVO.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/PositionVO.java index 47293b9..643227f 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/PositionVO.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/account/PositionVO.java @@ -5,6 +5,9 @@ import java.util.List; +/** + * Position Value Object details + */ @Data @Builder public class PositionVO { diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/ContractSide.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/ContractSide.java index f87d148..8b13385 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/ContractSide.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/ContractSide.java @@ -1,19 +1,14 @@ package com.bitrue.futures.sdk.client.model.enums; -import com.bitrue.futures.sdk.client.model.market.ContractInfo; - /** * @author superatom */ public enum ContractSide { - FORWARD(1), REVERSE(2); - - private int value; + FORWARD(), REVERSE(); - ContractSide(int value){ - this.value = value; + ContractSide(){ } public static ContractSide forInt(int v){ diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/Interval.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/Interval.java index b1089bb..3b61e38 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/Interval.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/Interval.java @@ -11,7 +11,7 @@ public enum Interval { /** * value */ - private String value; + private final String value; Interval(String v){ this.value = v; diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderSide.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderSide.java index 67e6cb2..fbe1fef 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderSide.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderSide.java @@ -1,6 +1,5 @@ package com.bitrue.futures.sdk.client.model.enums; public enum OrderSide { - - BUY, SELL; -} + BUY, SELL +} \ No newline at end of file diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderType.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderType.java index e163705..0a50373 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderType.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/OrderType.java @@ -1,6 +1,5 @@ package com.bitrue.futures.sdk.client.model.enums; public enum OrderType { - - LIMIT, MARKET; + LIMIT, MARKET } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionActiion.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionActiion.java index e90c63f..042965b 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionActiion.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionActiion.java @@ -1,5 +1,5 @@ package com.bitrue.futures.sdk.client.model.enums; public enum PositionActiion { - OPEN, CLOSE; + OPEN, CLOSE } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionType.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionType.java index 709ce0d..a062177 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionType.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/PositionType.java @@ -3,11 +3,10 @@ /** * @author superatom */ - public enum PositionType { CROSS(1), ISOLATED(2); - private int value; + private final int value; PositionType(int i){ this.value = i; } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/TimeInForce.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/TimeInForce.java index 171a09c..d789f7f 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/TimeInForce.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/enums/TimeInForce.java @@ -1,6 +1,5 @@ package com.bitrue.futures.sdk.client.model.enums; public enum TimeInForce { - IOC, FOK, POST_ONLY, LIMIT, MARKET; } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ContractInfo.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ContractInfo.java index 027ad76..a6065c4 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ContractInfo.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ContractInfo.java @@ -1,7 +1,6 @@ package com.bitrue.futures.sdk.client.model.market; import com.bitrue.futures.sdk.client.model.enums.ContractSide; -import com.oracle.webservices.internal.api.databinding.DatabindingMode; import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; @@ -9,7 +8,7 @@ import java.math.BigDecimal; /** - * + * Contract details * @author superatom */ @Data diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/KlineBar.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/KlineBar.java index 9078165..7baf245 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/KlineBar.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/KlineBar.java @@ -6,7 +6,7 @@ import java.math.BigDecimal; /** - * + * KlineBar details */ @Data @Builder @@ -18,5 +18,4 @@ public class KlineBar { private BigDecimal high; private BigDecimal low; private BigDecimal vol; - } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBook.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBook.java index 29847a2..40e130b 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBook.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBook.java @@ -1,10 +1,13 @@ package com.bitrue.futures.sdk.client.model.market; -import com.bitrue.futures.sdk.client.FuturesApiConstants; +import com.bitrue.futures.sdk.client.constant.FuturesApiConstants; import org.apache.commons.lang.builder.ToStringBuilder; import java.util.List; +/** + * Order Book Details + */ public class OrderBook { private List bids; diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBookEntry.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBookEntry.java index 94811e9..f7eae04 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBookEntry.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/OrderBookEntry.java @@ -1,6 +1,6 @@ package com.bitrue.futures.sdk.client.model.market; -import com.bitrue.futures.sdk.client.FuturesApiConstants; +import com.bitrue.futures.sdk.client.constant.FuturesApiConstants; import lombok.Builder; import lombok.Data; import org.apache.commons.lang.builder.ToStringBuilder; diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/PriceChangeTicker.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/PriceChangeTicker.java index 0e867ca..42fb642 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/PriceChangeTicker.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/PriceChangeTicker.java @@ -5,6 +5,9 @@ import java.math.BigDecimal; +/** + * Price Change Ticker + */ @Builder @Data public class PriceChangeTicker { diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ServerTime.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ServerTime.java index cfdaa9c..c851743 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ServerTime.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/market/ServerTime.java @@ -3,6 +3,9 @@ import lombok.Builder; import lombok.Data; +/** + * Server time details + */ @Data @Builder public class ServerTime { diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/trade/Order.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/trade/Order.java index 59288cf..b8dea25 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/trade/Order.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/model/trade/Order.java @@ -6,6 +6,7 @@ import java.math.BigDecimal; /** + * Order Details * @author superatom */ @Data diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/Handler.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/Handler.java index 0fa3c26..7cfd736 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/Handler.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/Handler.java @@ -2,6 +2,5 @@ @FunctionalInterface public interface Handler { - void handle(T t); } diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapper.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapper.java index 02d7298..cc372fb 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapper.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapper.java @@ -220,7 +220,7 @@ public void getJsonObject(String name, Handler todo) { public JsonWrapperArray getJsonArray(String name) { checkMandatoryField(name); - JSONArray array = null; + JSONArray array; try { array = json.getJSONArray(name); } catch (Exception e) { diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapperArray.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapperArray.java index b56c30a..73fd010 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapperArray.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/JsonWrapperArray.java @@ -10,7 +10,7 @@ public class JsonWrapperArray { - private JSONArray array = null; + private JSONArray array; public JsonWrapperArray(JSONArray array) { this.array = array; diff --git a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/UrlParamsBuilder.java b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/UrlParamsBuilder.java index 907bd85..abac9ec 100644 --- a/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/UrlParamsBuilder.java +++ b/futures_api_example_java/src/main/java/com/bitrue/futures/sdk/client/utils/UrlParamsBuilder.java @@ -1,20 +1,16 @@ package com.bitrue.futures.sdk.client.utils; import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.bitrue.futures.sdk.client.exception.BitrueApiException; +import okhttp3.MediaType; +import okhttp3.RequestBody; +import org.apache.commons.lang.StringUtils; + import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.net.URLEncoder; import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.LinkedHashMap; -import okhttp3.MediaType; -import okhttp3.RequestBody; -import org.apache.commons.lang.StringUtils; +import java.util.*; public class UrlParamsBuilder { diff --git a/futures_api_example_java/src/test/java/com/bitrue/futures/sdk/client/TradeTest.java b/futures_api_example_java/src/test/java/com/bitrue/futures/sdk/client/TradeTest.java index 9fb22f7..84daaa3 100644 --- a/futures_api_example_java/src/test/java/com/bitrue/futures/sdk/client/TradeTest.java +++ b/futures_api_example_java/src/test/java/com/bitrue/futures/sdk/client/TradeTest.java @@ -27,6 +27,7 @@ public void testPlaceOrder(){ } // @Test + @Test public void testInversePlaceOrder(){ SyncRequestClient client = SyncRequestClient.createInverse(PrivateConfig.API_KEY, PrivateConfig.SECRET_KEY, new RequestOptions()); int i = UUID.randomUUID().hashCode(); @@ -43,6 +44,7 @@ public void testInversePlaceOrder(){ // @Test + @Test public void testCancel(){ SyncRequestClient client = SyncRequestClient.create(PrivateConfig.API_KEY, PrivateConfig.SECRET_KEY, new RequestOptions()); Order ord = Order.builder().clientOrdId("1534994023").orderId(1141178101970600166L).contractName("E-ETH-USDT").build(); @@ -51,24 +53,28 @@ public void testCancel(){ } // @Test + @Test public void testOpenOrders(){ SyncRequestClient client = SyncRequestClient.create(PrivateConfig.API_KEY, PrivateConfig.SECRET_KEY, new RequestOptions()); System.out.println(client.getOpenOrder("E-ETH-USDT")); } // @Test + @Test public void testInverseOpenOrders(){ SyncRequestClient client = SyncRequestClient.createInverse(PrivateConfig.API_KEY, PrivateConfig.SECRET_KEY, new RequestOptions()); System.out.println(client.getOpenOrder("E-BTC-USD")); } // @Test + @Test public void testQueryOrder(){ SyncRequestClient client = SyncRequestClient.create(PrivateConfig.API_KEY, PrivateConfig.SECRET_KEY, new RequestOptions()); System.out.println(client.queryOrder("E-ETH-USDT", 1141178101970600166L)); } // @Test + @Test public void testInverseQueryOrder(){ SyncRequestClient client = SyncRequestClient.createInverse(PrivateConfig.API_KEY, PrivateConfig.SECRET_KEY, new RequestOptions()); System.out.println(client.queryOrder("E-BTC-USD", 1194156214330328799L));