Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions huobi_contract_Java.iml
Original file line number Diff line number Diff line change
Expand Up @@ -73,4 +73,7 @@
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: org.java-websocket:Java-WebSocket:1.4.0" level="project" />
</component>
<component name="SonarLintModuleSettings">
<option name="uniqueId" value="7f7b8770-e852-4638-b9e0-15e3914fc134" />
</component>
</module>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.huobi.api.response.usdt.market;

import com.google.gson.annotations.SerializedName;
import com.sun.deploy.security.WSecureRandom;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,24 @@
import java.util.HashMap;
import java.util.Map;


public class AccountAPIServiceImpl implements AccountAPIService {

String api_key = ""; // huobi申请的apiKey
String secret_key = ""; // huobi申请的secretKey
// 这里的sign代表着是使用hmac256签名方法还是Ed25519签名方法。这里的key和secret代表了公钥和私钥。也就是hmac签名里面的accesskey和secretkey。在ed25519签名就是publickey和privatekey
// The sign indicates whether to use the hmac256 signature method or the Ed25519 signature method.Here key and secret stand for public and private keys. The accesskey and secretkey in the hmac signature. In ed25519, signatures are PublicKeys and privateKeys

String sign = "256";
String url_prex = "https://api.hbdm.com";

Logger logger = LoggerFactory.getLogger(getClass());

public AccountAPIServiceImpl(String api_key, String secret_key) {
this.api_key = api_key;
this.secret_key = secret_key;
}


@Override
public ContractAccountInfoResponse getContractAccountInfo(String symbol) {
String body;
Expand All @@ -36,7 +41,7 @@ public ContractAccountInfoResponse getContractAccountInfo(String symbol) {
if (StringUtils.isNotEmpty(symbol)) {
params.put("symbol", symbol.toUpperCase());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_ACCOUNT_INFO, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_ACCOUNT_INFO, params,sign);
ContractAccountInfoResponse response = JSON.parseObject(body, ContractAccountInfoResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -56,7 +61,7 @@ public ContractPositionInfoResponse getContractPositionInfo(String symbol) {
if (StringUtils.isNotEmpty(symbol)) {
params.put("symbol", symbol.toUpperCase());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_POSITION_INFO, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_POSITION_INFO, params,sign);
ContractPositionInfoResponse response = JSON.parseObject(body, ContractPositionInfoResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -82,7 +87,7 @@ public ContractSubAccountListResponse getContractSubAccountList(String symbol, S
if (fromId != null) {
params.put("from_id", fromId);
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_ACCOUNT_LIST, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_ACCOUNT_LIST, params,sign);
ContractSubAccountListResponse response = JSON.parseObject(body, ContractSubAccountListResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -103,7 +108,7 @@ public ContractSubAccountInfoResponse getContractSubAccountInfo(String symbol, L
params.put("symbol", symbol.toUpperCase());
}
params.put("sub_uid", subUid);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_ACCOUNT_INFO, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_ACCOUNT_INFO, params,sign);
ContractSubAccountInfoResponse response = JSON.parseObject(body, ContractSubAccountInfoResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -124,7 +129,7 @@ public ContractSubPositionInfoResponse getContractSubPositionInfo(String symbol,
params.put("symbol", symbol.toUpperCase());
}
params.put("sub_uid", subUid);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_POSITION_INFO, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_POSITION_INFO, params,sign);
ContractSubPositionInfoResponse response = JSON.parseObject(body, ContractSubPositionInfoResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -145,7 +150,7 @@ public ContractOrderLimitResponse getContractOrderLimitResponse(String symbol, S
params.put("symbol", symbol.toUpperCase());
}
params.put("order_price_type", orderPriceType);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_ORDER_LIMIT, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_ORDER_LIMIT, params,sign);
ContractOrderLimitResponse response = JSON.parseObject(body, ContractOrderLimitResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -165,7 +170,7 @@ public ContractFeeResponse getContractFeeResponse(String symbol) {
if (StringUtils.isNotEmpty(symbol)) {
params.put("symbol", symbol.toUpperCase());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_FEE, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_FEE, params,sign);
ContractFeeResponse response = JSON.parseObject(body, ContractFeeResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -185,7 +190,7 @@ public ContractTransferLimitResponse getContractTransferLimitResponse(String sym
if (StringUtils.isNotEmpty(symbol)) {
params.put("symbol", symbol.toUpperCase());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_TRANSFER_LIMIT, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_TRANSFER_LIMIT, params,sign);
ContractTransferLimitResponse response = JSON.parseObject(body, ContractTransferLimitResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -205,7 +210,7 @@ public ContractPositionLimitResponse getContractPositionLimitResponse(String sym
if (StringUtils.isNotEmpty(symbol)) {
params.put("symbol", symbol.toUpperCase());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_POSITION_LIMIT, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_POSITION_LIMIT, params,sign);
ContractPositionLimitResponse response = JSON.parseObject(body, ContractPositionLimitResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -227,7 +232,7 @@ public ContractMasterSubTransferResponse getContractMasterSubTransfer(ContractMa
params.put("amount", request.getAmount());
params.put("type", request.getType());
params.put("client_order_id", request.getClientOrderId());
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_MASTER_SUB_TRANSFER, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_MASTER_SUB_TRANSFER, params,sign);
ContractMasterSubTransferResponse response = JSON.parseObject(body, ContractMasterSubTransferResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -245,7 +250,7 @@ public ContractAccountPositionInfoResponse getContractAccountPositionInfo(String
try {
Map<String, Object> params = new HashMap<>();
params.put("symbol", symbol.toUpperCase());
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_ACCOUNT_POSITION_INFO, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_ACCOUNT_POSITION_INFO, params,sign);
ContractAccountPositionInfoResponse response = JSON.parseObject(body, ContractAccountPositionInfoResponse.class);
logger.debug("body:{}", body);
if ("ok".equalsIgnoreCase(response.getStatus())) {
Expand Down Expand Up @@ -275,7 +280,7 @@ public ContractUserSettlementRecordsResponse getContractUserSettlementRecords(Co
if (request.getPageSize() != null) {
params.put("page_size", request.getPageSize());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_USER_SETTLEMENT_RECORDS, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_USER_SETTLEMENT_RECORDS, params,sign);
ContractUserSettlementRecordsResponse response = JSON.parseObject(body, ContractUserSettlementRecordsResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand Down Expand Up @@ -303,7 +308,7 @@ public ContractMasterSubTransferRecordResponse getContractMasterSubTransferRecor
if (request.getPageSize() != null) {
params.put("page_size", request.getPageSize());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_MASTER_SUB_TRANSFER_RECORD, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_MASTER_SUB_TRANSFER_RECORD, params,sign);
ContractMasterSubTransferRecordResponse response = JSON.parseObject(body, ContractMasterSubTransferRecordResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand Down Expand Up @@ -337,7 +342,7 @@ public ContractAvailableLevelRateResponse getContractAvailableLevelRate(String s
try {
Map<String, Object> params = new HashMap<>();
params.put("symbol", symbol.toUpperCase());
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_AVAILABLE_LEVEL_RATE, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_AVAILABLE_LEVEL_RATE, params,sign);
ContractAvailableLevelRateResponse response = JSON.parseObject(body, ContractAvailableLevelRateResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
return response;
Expand All @@ -355,7 +360,7 @@ public ContractSubAuthResponse getContractSubAuth(String subUid, Integer subAuth
Map<String, Object> params = new HashMap<>();
params.put("sub_uid", subUid);
params.put("sub_auth",subAuth);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_AUTH, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_AUTH, params,sign);
logger.debug("body:{}",body);
ContractSubAuthResponse response = JSON.parseObject(body, ContractSubAuthResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
Expand All @@ -381,7 +386,7 @@ public ContractSubAccountInfoListResponse getContractSubAccountInfoList(Contract
if (request.getPageSize()!=null){
params.put("page_size",request.getPageSize());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_ACCOUNT_INFO_LIST, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_SUB_ACCOUNT_INFO_LIST, params,sign);
logger.debug("body:{}",body);
ContractSubAccountInfoListResponse response = JSON.parseObject(body, ContractSubAccountInfoListResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
Expand All @@ -401,7 +406,7 @@ public ContractBalanceValuationResponse getContractBalanceValuation(String Valua
if (StringUtils.isNotEmpty(ValuationAsset)){
params.put("valuation_asset",ValuationAsset.toUpperCase());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_BALANCE_VALUATION, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_BALANCE_VALUATION, params,sign);
logger.debug("body:{}",body);
ContractBalanceValuationResponse response = JSON.parseObject(body, ContractBalanceValuationResponse.class);
if ("ok".equalsIgnoreCase(response.getStatus())) {
Expand Down Expand Up @@ -436,7 +441,7 @@ public ContractFinancialRecordV3Response getContractFinancialRecordV3(ContractFi
if (StringUtils.isNotEmpty(request.getSymbol())) {
params.put("symbol", request.getSymbol());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_FINANCIAL_RECORD_V3, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_FINANCIAL_RECORD_V3, params,sign);
logger.debug("body:{}",body);
ContractFinancialRecordV3Response response = JSON.parseObject(body, ContractFinancialRecordV3Response.class);
if (response.getCode() != null && response.getCode() == 200) {
Expand Down Expand Up @@ -471,7 +476,7 @@ public ContractFinancialRecordExactV3Response getContractFinancialRecordExactV3(
if (StringUtils.isNotEmpty(request.getSymbol())) {
params.put("symbol", request.getSymbol());
}
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_FINANCIAL_RECORD_EXACT_V3, params);
body = HbdmHttpClient.getInstance().doPost(api_key, secret_key, url_prex + HuobiFutureAPIConstants.CONTRACT_FINANCIAL_RECORD_EXACT_V3, params,sign);
logger.debug("body:{}",body);
ContractFinancialRecordExactV3Response response = JSON.parseObject(body, ContractFinancialRecordExactV3Response.class);
if (response.getCode() != null && response.getCode() == 200) {
Expand Down
Loading