├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── java_signature_demo.md ├── lombok.config ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── huobi │ │ ├── client │ │ ├── AccountClient.java │ │ ├── AlgoClient.java │ │ ├── CrossMarginClient.java │ │ ├── GenericClient.java │ │ ├── IsolatedMarginClient.java │ │ ├── MarketClient.java │ │ ├── SubUserClient.java │ │ ├── TradeClient.java │ │ ├── WalletClient.java │ │ └── req │ │ │ ├── account │ │ │ ├── AccountAssetValuationRequest.java │ │ │ ├── AccountBalanceRequest.java │ │ │ ├── AccountFuturesTransferRequest.java │ │ │ ├── AccountHistoryRequest.java │ │ │ ├── AccountLedgerRequest.java │ │ │ ├── AccountTransferRequest.java │ │ │ ├── AccountTransferV2Request.java │ │ │ ├── AccountValuationRequest.java │ │ │ ├── FeeSwitchRequest.java │ │ │ ├── GetBalanceRequest.java │ │ │ ├── PointRequest.java │ │ │ ├── PointTransferRequest.java │ │ │ ├── SubAccountChangeRequest.java │ │ │ ├── SubAccountUpdateRequest.java │ │ │ └── TransferSubuserRequest.java │ │ │ ├── algo │ │ │ ├── CancelAlgoAllOrderRequest.java │ │ │ ├── CancelAlgoOrderRequest.java │ │ │ ├── CreateAlgoOrderRequest.java │ │ │ ├── GetHistoryAlgoOrdersRequest.java │ │ │ └── GetOpenAlgoOrdersRequest.java │ │ │ ├── crossmargin │ │ │ ├── CrossMarginApplyLoanRequest.java │ │ │ ├── CrossMarginLoanOrdersRequest.java │ │ │ ├── CrossMarginRepayLoanRequest.java │ │ │ ├── CrossMarginTransferRequest.java │ │ │ ├── GeneralLoanOrdersRequest.java │ │ │ └── GeneralRepayLoanRequest.java │ │ │ ├── generic │ │ │ ├── ChainRequest.java │ │ │ └── CurrencyChainsRequest.java │ │ │ ├── margin │ │ │ ├── IsolatedMarginAccountRequest.java │ │ │ ├── IsolatedMarginApplyLoanRequest.java │ │ │ ├── IsolatedMarginLoanInfoRequest.java │ │ │ ├── IsolatedMarginLoanOrdersRequest.java │ │ │ ├── IsolatedMarginRepayLoanRequest.java │ │ │ ├── IsolatedMarginTransferRequest.java │ │ │ └── LeveragePositionLimitRequest.java │ │ │ ├── market │ │ │ ├── CandlestickRequest.java │ │ │ ├── MarketDepthRequest.java │ │ │ ├── MarketDetailMergedRequest.java │ │ │ ├── MarketDetailRequest.java │ │ │ ├── MarketHistoryTradeRequest.java │ │ │ ├── MarketTradeRequest.java │ │ │ ├── ReqCandlestickRequest.java │ │ │ ├── ReqMarketDepthRequest.java │ │ │ ├── ReqMarketDetailRequest.java │ │ │ ├── ReqMarketTickerRequest.java │ │ │ ├── ReqMarketTradeRequest.java │ │ │ ├── SubCandlestickRequest.java │ │ │ ├── SubMarketBBORequest.java │ │ │ ├── SubMarketDepthRequest.java │ │ │ ├── SubMarketDetailRequest.java │ │ │ ├── SubMarketTickerRequest.java │ │ │ ├── SubMarketTradeRequest.java │ │ │ ├── SubMbpIncrementalUpdateRequest.java │ │ │ └── SubMbpRefreshUpdateRequest.java │ │ │ ├── subuser │ │ │ ├── CreditRequest.java │ │ │ ├── DeductModeRequest.java │ │ │ ├── GetApiKeyListRequest.java │ │ │ ├── GetSubUserAccountListRequest.java │ │ │ ├── GetSubUserDepositRequest.java │ │ │ ├── GetSubUserListRequest.java │ │ │ ├── SubUserApiKeyDeletionRequest.java │ │ │ ├── SubUserApiKeyGenerationRequest.java │ │ │ ├── SubUserApiKeyModificationRequest.java │ │ │ ├── SubUserCreationParam.java │ │ │ ├── SubUserCreationRequest.java │ │ │ ├── SubUserManagementRequest.java │ │ │ ├── SubUserTradableMarketRequest.java │ │ │ └── SubUserTransferabilityRequest.java │ │ │ ├── trade │ │ │ ├── BatchCancelOpenOrdersRequest.java │ │ │ ├── BatchOrdersRequest.java │ │ │ ├── CancelOrderRequest.java │ │ │ ├── CreateOrderRequest.java │ │ │ ├── FeeRateRequest.java │ │ │ ├── MarginOrderRequest.java │ │ │ ├── MatchResultRequest.java │ │ │ ├── OpenOrdersRequest.java │ │ │ ├── OrderHistoryRequest.java │ │ │ ├── OrdersRequest.java │ │ │ ├── ReqOrderListRequest.java │ │ │ ├── SubOrderUpdateRequest.java │ │ │ ├── SubOrderUpdateV2Request.java │ │ │ └── SubTradeClearingRequest.java │ │ │ └── wallet │ │ │ ├── CreateWithdrawRequest.java │ │ │ ├── DepositAddressRequest.java │ │ │ ├── DepositWithdrawRequest.java │ │ │ ├── WithdrawAddressRequest.java │ │ │ └── WithdrawQuotaRequest.java │ │ ├── constant │ │ ├── Constants.java │ │ ├── EtfResult.java │ │ ├── HuobiOptions.java │ │ ├── Options.java │ │ ├── WebSocketConstants.java │ │ └── enums │ │ │ ├── AccountFuturesTransferTypeEnum.java │ │ │ ├── AccountHistoryTransactTypeEnum.java │ │ │ ├── AccountLedgerTransactTypeEnum.java │ │ │ ├── AccountStateEnum.java │ │ │ ├── AccountTransferAccountTypeEnum.java │ │ │ ├── AccountTypeEnum.java │ │ │ ├── AccountUpdateModeEnum.java │ │ │ ├── BalanceModeEnum.java │ │ │ ├── BalanceTypeEnum.java │ │ │ ├── BusinessLineAccountTypeEnum.java │ │ │ ├── CandlestickIntervalEnum.java │ │ │ ├── ConnectionStateEnum.java │ │ │ ├── CrossMarginAccountStateEnum.java │ │ │ ├── DealRoleEnum.java │ │ │ ├── DepositWithdrawTypeEnum.java │ │ │ ├── DepthLevels.java │ │ │ ├── DepthSizeEnum.java │ │ │ ├── DepthStepEnum.java │ │ │ ├── ExchangeEnum.java │ │ │ ├── IsolatedMarginAccountStateEnum.java │ │ │ ├── LoanOrderStateEnum.java │ │ │ ├── MarginTransferDirectionEnum.java │ │ │ ├── OrderSideEnum.java │ │ │ ├── OrderSourceEnum.java │ │ │ ├── OrderStateEnum.java │ │ │ ├── OrderTypeEnum.java │ │ │ ├── QueryDirectionEnum.java │ │ │ ├── QuerySortEnum.java │ │ │ ├── StopOrderOperatorEnum.java │ │ │ ├── SubUserApiKeyPermissionEnums.java │ │ │ ├── SubUserManagementActionEnum.java │ │ │ ├── TradableMarketAccountTypeEnum.java │ │ │ ├── TradableMarketActivationEnums.java │ │ │ ├── TradeDirectionEnum.java │ │ │ ├── TransferMasterTypeEnum.java │ │ │ ├── TransferabilityAccountTypeEnum.java │ │ │ └── algo │ │ │ ├── AlgoOrderSideEnum.java │ │ │ ├── AlgoOrderStatusEnum.java │ │ │ ├── AlgoOrderTimeInForceEnum.java │ │ │ └── AlgoOrderTypeEnum.java │ │ ├── exception │ │ └── SDKException.java │ │ ├── model │ │ ├── account │ │ │ ├── Account.java │ │ │ ├── AccountAssetValuationResult.java │ │ │ ├── AccountBalance.java │ │ │ ├── AccountChange.java │ │ │ ├── AccountChangeEvent.java │ │ │ ├── AccountFuturesTransferResult.java │ │ │ ├── AccountHistory.java │ │ │ ├── AccountLedger.java │ │ │ ├── AccountLedgerResult.java │ │ │ ├── AccountReq.java │ │ │ ├── AccountTransferResult.java │ │ │ ├── AccountTransferV2Result.java │ │ │ ├── AccountUpdate.java │ │ │ ├── AccountUpdateEvent.java │ │ │ ├── AccountValuationResult.java │ │ │ ├── Balance.java │ │ │ ├── Group.java │ │ │ ├── OverviewInfo.java │ │ │ ├── Point.java │ │ │ ├── PointTransferResult.java │ │ │ ├── ProfitAccountBalance.java │ │ │ ├── SubuserAggregateBalance.java │ │ │ ├── Updated.java │ │ │ └── UserInfo.java │ │ ├── algo │ │ │ ├── AlgoOrder.java │ │ │ ├── CancelAlgoAllOrderResult.java │ │ │ ├── CancelAlgoOrderResult.java │ │ │ ├── CreateAlgoOrderResult.java │ │ │ ├── GetHistoryAlgoOrdersResult.java │ │ │ └── GetOpenAlgoOrdersResult.java │ │ ├── crossmargin │ │ │ ├── CrossMarginAccount.java │ │ │ ├── CrossMarginCurrencyInfo.java │ │ │ ├── CrossMarginLoadOrder.java │ │ │ ├── GeneralRepayLoanRecord.java │ │ │ └── GeneralRepayLoanResult.java │ │ ├── generic │ │ │ ├── Chain.java │ │ │ ├── ChainV1.java │ │ │ ├── Currency.java │ │ │ ├── CurrencyChain.java │ │ │ ├── CurrencyV2.java │ │ │ ├── MarketStatus.java │ │ │ ├── MarketSymbol.java │ │ │ ├── Person.java │ │ │ ├── Symbol.java │ │ │ ├── SymbolV1.java │ │ │ └── SymbolV2.java │ │ ├── isolatedmargin │ │ │ ├── IsolatedMarginAccount.java │ │ │ ├── IsolatedMarginCurrencyInfo.java │ │ │ ├── IsolatedMarginLoadOrder.java │ │ │ ├── IsolatedMarginSymbolInfo.java │ │ │ └── LeveragePositionLimitResult.java │ │ ├── market │ │ │ ├── Candlestick.java │ │ │ ├── CandlestickEvent.java │ │ │ ├── CandlestickReq.java │ │ │ ├── MarketBBO.java │ │ │ ├── MarketBBOEvent.java │ │ │ ├── MarketDepth.java │ │ │ ├── MarketDepthEvent.java │ │ │ ├── MarketDepthReq.java │ │ │ ├── MarketDetail.java │ │ │ ├── MarketDetailEvent.java │ │ │ ├── MarketDetailMerged.java │ │ │ ├── MarketDetailReq.java │ │ │ ├── MarketTicker.java │ │ │ ├── MarketTickerEvent.java │ │ │ ├── MarketTickerReq.java │ │ │ ├── MarketTrade.java │ │ │ ├── MarketTradeEvent.java │ │ │ ├── MarketTradeReq.java │ │ │ ├── MbpIncrementalUpdateEvent.java │ │ │ ├── MbpRefreshUpdateEvent.java │ │ │ └── PriceLevel.java │ │ ├── subuser │ │ │ ├── ApiKeyInfo.java │ │ │ ├── GetApiKeyListResult.java │ │ │ ├── GetSubUserAccountListResult.java │ │ │ ├── GetSubUserDepositResult.java │ │ │ ├── GetSubUserListResult.java │ │ │ ├── SubUserAccount.java │ │ │ ├── SubUserAccountInfo.java │ │ │ ├── SubUserApiKeyGenerationResult.java │ │ │ ├── SubUserApiKeyModificationResult.java │ │ │ ├── SubUserCreationInfo.java │ │ │ ├── SubUserDeposit.java │ │ │ ├── SubUserManagementResult.java │ │ │ ├── SubUserState.java │ │ │ ├── SubUserTradableMarketResult.java │ │ │ ├── SubUserTradableMarketState.java │ │ │ ├── SubUserTransferabilityResult.java │ │ │ └── SubUserTransferabilityState.java │ │ ├── trade │ │ │ ├── BatchCancelOpenOrdersResult.java │ │ │ ├── BatchCancelOrderResult.java │ │ │ ├── BatchOrdersResult.java │ │ │ ├── CancelFailedResult.java │ │ │ ├── FeeRate.java │ │ │ ├── MatchResult.java │ │ │ ├── Order.java │ │ │ ├── OrderDetailReq.java │ │ │ ├── OrderListReq.java │ │ │ ├── OrderResp.java │ │ │ ├── OrderUpdate.java │ │ │ ├── OrderUpdateEvent.java │ │ │ ├── OrderUpdateV2.java │ │ │ ├── OrderUpdateV2Event.java │ │ │ ├── TradeClearing.java │ │ │ └── TradeClearingEvent.java │ │ └── wallet │ │ │ ├── DeductModeResult.java │ │ │ ├── DepositAddress.java │ │ │ ├── DepositWithdraw.java │ │ │ ├── WithdrawAddress.java │ │ │ ├── WithdrawAddressResult.java │ │ │ ├── WithdrawChainQuota.java │ │ │ ├── WithdrawOrderResult.java │ │ │ └── WithdrawQuota.java │ │ ├── service │ │ └── huobi │ │ │ ├── HuobiAccountService.java │ │ │ ├── HuobiAlgoService.java │ │ │ ├── HuobiCrossMarginService.java │ │ │ ├── HuobiGenericService.java │ │ │ ├── HuobiIsolatedMarginService.java │ │ │ ├── HuobiMarketService.java │ │ │ ├── HuobiSubUserService.java │ │ │ ├── HuobiTradeService.java │ │ │ ├── HuobiWalletService.java │ │ │ ├── connection │ │ │ ├── HuobiRestConnection.java │ │ │ ├── HuobiRestConnection25519.java │ │ │ └── HuobiWebSocketConnection.java │ │ │ ├── parser │ │ │ ├── HuobiModelParser.java │ │ │ ├── account │ │ │ │ ├── AccountAssetValuationResultParser.java │ │ │ │ ├── AccountBalanceParser.java │ │ │ │ ├── AccountChangeEventParser.java │ │ │ │ ├── AccountChangeParser.java │ │ │ │ ├── AccountFuturesTransferResultParser.java │ │ │ │ ├── AccountHistoryParser.java │ │ │ │ ├── AccountLedgerParser.java │ │ │ │ ├── AccountParser.java │ │ │ │ ├── AccountReqParser.java │ │ │ │ ├── AccountTransferResultParser.java │ │ │ │ ├── AccountTransferV2ResultParser.java │ │ │ │ ├── AccountUpdateEventParser.java │ │ │ │ ├── AccountUpdateParser.java │ │ │ │ ├── AccountValuationResultParser.java │ │ │ │ ├── BalanceParser.java │ │ │ │ ├── GeneralRepayLoanRecordParser.java │ │ │ │ ├── GeneralRepayLoanResultParser.java │ │ │ │ ├── OverviewInfoParser.java │ │ │ │ ├── PointParser.java │ │ │ │ ├── PointTransferResultParser.java │ │ │ │ ├── ProfitAccountBalanceParser.java │ │ │ │ ├── SubuserAggregateBalanceParser.java │ │ │ │ └── UserInfoParser.java │ │ │ ├── algo │ │ │ │ ├── AlgoOrderParser.java │ │ │ │ ├── CancelAlgoAllOrderResultParser.java │ │ │ │ ├── CancelAlgoOrderResultParser.java │ │ │ │ ├── CreateAlgoOrderResultParser.java │ │ │ │ ├── GetHistoryAlgoOrdersResultParser.java │ │ │ │ └── GetOpenAlgoOrdersResultParser.java │ │ │ ├── crossmargin │ │ │ │ ├── CrossMarginAccountParser.java │ │ │ │ ├── CrossMarginCurrencyInfoParser.java │ │ │ │ └── CrossMarginLoadOrderParser.java │ │ │ ├── generic │ │ │ │ ├── ChainV1Parser.java │ │ │ │ ├── CurrencyChainParser.java │ │ │ │ ├── CurrencyParser.java │ │ │ │ ├── CurrencyV2Parser.java │ │ │ │ ├── MarketStatusParser.java │ │ │ │ ├── MarketSymbolParser.java │ │ │ │ ├── SymbolParser.java │ │ │ │ ├── SymbolV1Parser.java │ │ │ │ └── SymbolV2Parser.java │ │ │ ├── isolatedmargin │ │ │ │ ├── IsolatedMarginAccountParser.java │ │ │ │ ├── IsolatedMarginCurrencyInfoParser.java │ │ │ │ ├── IsolatedMarginLoadOrderParser.java │ │ │ │ ├── IsolatedMarginSymbolInfoParser.java │ │ │ │ └── LeveragePositionLimitResultParser.java │ │ │ ├── market │ │ │ │ ├── CandlestickEventParser.java │ │ │ │ ├── CandlestickParser.java │ │ │ │ ├── CandlestickReqParser.java │ │ │ │ ├── MarketBBOEventParser.java │ │ │ │ ├── MarketBBOParser.java │ │ │ │ ├── MarketDepthEventParser.java │ │ │ │ ├── MarketDepthParser.java │ │ │ │ ├── MarketDepthReqParser.java │ │ │ │ ├── MarketDetailEventParser.java │ │ │ │ ├── MarketDetailMergedParser.java │ │ │ │ ├── MarketDetailParser.java │ │ │ │ ├── MarketDetailReqParser.java │ │ │ │ ├── MarketTickerEventParser.java │ │ │ │ ├── MarketTickerParser.java │ │ │ │ ├── MarketTickerReqParser.java │ │ │ │ ├── MarketTradeEventParser.java │ │ │ │ ├── MarketTradeParser.java │ │ │ │ ├── MarketTradeReqParser.java │ │ │ │ ├── MbpIncrementalUpdateEventParser.java │ │ │ │ ├── MbpRefreshUpdateEventParser.java │ │ │ │ └── PriceLevelParser.java │ │ │ ├── subuser │ │ │ │ ├── ApiKeyInfoParser.java │ │ │ │ ├── DeductModeResultParser.java │ │ │ │ ├── GetApiKeyListResultParser.java │ │ │ │ ├── GetSubUserAccountListResultParser.java │ │ │ │ ├── GetSubUserDepositResultParser.java │ │ │ │ ├── GetSubUserListResultParser.java │ │ │ │ ├── SubUserApiKeyGenerationResultParser.java │ │ │ │ ├── SubUserApiKeyModificationResultParser.java │ │ │ │ ├── SubUserCreationInfoParser.java │ │ │ │ ├── SubUserDepositParser.java │ │ │ │ ├── SubUserManagementResultParser.java │ │ │ │ ├── SubUserStateParser.java │ │ │ │ ├── SubUserTradableMarketResultParser.java │ │ │ │ ├── SubUserTradableMarketStateParser.java │ │ │ │ ├── SubUserTransferabilityResultParser.java │ │ │ │ └── SubUserTransferabilityStateParser.java │ │ │ ├── trade │ │ │ │ ├── BatchCancelOpenOrdersResultParser.java │ │ │ │ ├── BatchCancelOrderResultParser.java │ │ │ │ ├── BatchOrdersResultParser.java │ │ │ │ ├── CancelFailedResultParser.java │ │ │ │ ├── FeeRateParser.java │ │ │ │ ├── MatchResultParser.java │ │ │ │ ├── OrderDetailReqParser.java │ │ │ │ ├── OrderListReqParser.java │ │ │ │ ├── OrderParser.java │ │ │ │ ├── OrderRespParser.java │ │ │ │ ├── OrderUpdateEventParser.java │ │ │ │ ├── OrderUpdateEventV2Parser.java │ │ │ │ ├── OrderUpdateParser.java │ │ │ │ ├── OrderUpdateV2Parser.java │ │ │ │ ├── TradeClearingEventParser.java │ │ │ │ └── TradeClearingParser.java │ │ │ └── wallet │ │ │ │ ├── DepositAddressParser.java │ │ │ │ ├── DepositWithdrawParser.java │ │ │ │ ├── WithdrawAddressParser.java │ │ │ │ ├── WithdrawOrderResultParser.java │ │ │ │ └── WithdrawQuotaParser.java │ │ │ ├── signature │ │ │ ├── ApiSignature.java │ │ │ ├── ApiSignatureED25519.java │ │ │ ├── ApiSignatureV2.java │ │ │ └── UrlParamsBuilder.java │ │ │ └── utils │ │ │ ├── DataUtils.java │ │ │ ├── GoogleAuthHelper.java │ │ │ └── HuobiHttpInvoker.java │ │ └── utils │ │ ├── ConnectionFactory.java │ │ ├── IdGenerator.java │ │ ├── InputChecker.java │ │ ├── InternalUtils.java │ │ ├── ResponseCallback.java │ │ ├── SymbolUtils.java │ │ ├── WebSocketConnection.java │ │ └── WebSocketWatchDog.java └── resources │ └── logback.xml └── test └── java └── com └── huobi ├── ED25519Example └── AccountClientExample_ED25519.java ├── Hmac256examples ├── AccountClientExample.java ├── AlgoClientExamples.java ├── CrossMarginClientExample.java ├── GenericClientExample.java ├── IsolatedMarginClientExample.java ├── MarketClientExample.java ├── OrderBookExamples.java ├── SubUserClientExample.java ├── TradeClientExample.java └── WalletClientExample.java ├── service └── huobi │ ├── parser │ ├── account │ │ ├── AccountAssetValuationResultParserTest.java │ │ ├── AccountBalanceParserTest.java │ │ ├── AccountChangeEventParserTest.java │ │ ├── AccountParserTest.java │ │ ├── AccountReqParserTest.java │ │ ├── PointParserTest.java │ │ └── SubuserAggregateBalanceParserTest.java │ ├── crossmargin │ │ ├── CrossMarginAccountParserTest.java │ │ └── CrossMarginLoadOrderParserTest.java │ ├── generic │ │ ├── CurrencyChainParserTest.java │ │ └── SymbolParserTest.java │ ├── isolatedmargin │ │ ├── IsolatedMarginAccountParserTest.java │ │ └── IsolatedMarginLoadOrderParserTest.java │ └── wallet │ │ ├── DepositAddressParserTest.java │ │ ├── DepositWithdrawParserTest.java │ │ └── WithdrawQuotaParserTest.java │ └── signature │ └── ApiSignatureTest.java ├── test └── PerformanceTest.java └── utils └── ConnectionFactoryTest.java /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | logs/ 3 | target 4 | *.iml 5 | *.tmp 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | script: mvn clean package -DskipTests=true -Dmaven.javadoc.skip=true 3 | -------------------------------------------------------------------------------- /lombok.config: -------------------------------------------------------------------------------- 1 | #幸运的是,从版本0.8.0开始,Jacoco可以检测,识别和忽略Lombok生成的代码。 2 | #您作为开发人员唯一要做的就是在目录的根目录中创建一个名为lombok.config的文件,并设置以下标志: 3 | #这会将注释lombok.@Generated添加到相关的方法,类和字段中。 Jacoco知道这个注释,并会忽略带注释的代码 4 | #请注意,您至少需要0.8.0版本的Jacoco和龙目岛v1.16.14 5 | lombok.addLombokGeneratedAnnotation = true 6 | 7 | #lombok.equalsAndHashCode.callSuper=call 8 | # 9 | #lombok.accessors.chain = true -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/AlgoClient.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client; 2 | 3 | import com.huobi.client.req.algo.*; 4 | import com.huobi.constant.Options; 5 | import com.huobi.constant.enums.ExchangeEnum; 6 | import com.huobi.exception.SDKException; 7 | import com.huobi.model.algo.*; 8 | import com.huobi.service.huobi.HuobiAlgoService; 9 | 10 | public interface AlgoClient { 11 | 12 | CreateAlgoOrderResult createAlgoOrder(CreateAlgoOrderRequest request); 13 | 14 | CancelAlgoOrderResult cancelAlgoOrder(CancelAlgoOrderRequest request); 15 | 16 | GetOpenAlgoOrdersResult getOpenAlgoOrders(GetOpenAlgoOrdersRequest request); 17 | 18 | GetHistoryAlgoOrdersResult getHistoryAlgoOrders(GetHistoryAlgoOrdersRequest request); 19 | 20 | AlgoOrder getAlgoOrdersSpecific(String clientOrderId); 21 | 22 | CancelAlgoAllOrderResult cancelAlgoAllOrder(CancelAlgoAllOrderRequest request); 23 | 24 | 25 | static AlgoClient create(Options options) { 26 | 27 | if (options.getExchange().equals(ExchangeEnum.HUOBI)) { 28 | return new HuobiAlgoService(options); 29 | } 30 | throw new SDKException(SDKException.INPUT_ERROR, "Unsupport Exchange."); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountAssetValuationRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.AccountTypeEnum; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AccountAssetValuationRequest { 13 | 14 | AccountTypeEnum accountType; 15 | 16 | String valuationCurrency; 17 | 18 | Long subUid; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountBalanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class AccountBalanceRequest { 15 | 16 | private Long accountId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountFuturesTransferRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | import com.huobi.constant.enums.AccountFuturesTransferTypeEnum; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class AccountFuturesTransferRequest { 15 | 16 | private String currency; 17 | 18 | private BigDecimal amount; 19 | 20 | private AccountFuturesTransferTypeEnum type; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountHistoryRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | import org.apache.commons.lang.StringUtils; 7 | 8 | import com.huobi.constant.enums.QuerySortEnum; 9 | import com.huobi.constant.enums.AccountHistoryTransactTypeEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountHistoryRequest { 17 | 18 | private Long accountId; 19 | 20 | private String currency; 21 | 22 | private List types; 23 | 24 | private Long startTime; 25 | 26 | private Long endTime; 27 | 28 | private QuerySortEnum sort; 29 | 30 | private Integer size; 31 | 32 | private Long fromId; 33 | 34 | public String getTypesString(){ 35 | String typeString = null; 36 | if (this.getTypes() != null && this.getTypes().size() > 0) { 37 | typeString = StringUtils.join(types,","); 38 | } 39 | return typeString; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountLedgerRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | import org.apache.commons.lang.StringUtils; 7 | 8 | import com.huobi.constant.enums.AccountLedgerTransactTypeEnum; 9 | import com.huobi.constant.enums.QuerySortEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountLedgerRequest { 17 | 18 | private Long accountId; 19 | 20 | private String currency; 21 | 22 | private List types; 23 | 24 | private Long startTime; 25 | 26 | private Long endTime; 27 | 28 | private QuerySortEnum sort; 29 | 30 | private Integer limit; 31 | 32 | private Long fromId; 33 | 34 | public String getTypesString(){ 35 | String typeString = null; 36 | if (this.getTypes() != null && this.getTypes().size() > 0) { 37 | typeString = StringUtils.join(types,","); 38 | } 39 | return typeString; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountTransferRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | import com.huobi.constant.enums.AccountTransferAccountTypeEnum; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class AccountTransferRequest { 15 | 16 | private Long fromUser; 17 | 18 | private AccountTransferAccountTypeEnum fromAccountType; 19 | 20 | private Long fromAccount; 21 | 22 | private Long toUser; 23 | 24 | private AccountTransferAccountTypeEnum toAccountType; 25 | 26 | private Long toAccount; 27 | 28 | private String currency; 29 | 30 | private BigDecimal amount; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountTransferV2Request.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import com.huobi.constant.enums.BusinessLineAccountTypeEnum; 4 | import lombok.*; 5 | 6 | import java.math.BigDecimal; 7 | 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | @ToString 13 | public class AccountTransferV2Request { 14 | private BusinessLineAccountTypeEnum from; 15 | private BusinessLineAccountTypeEnum to; 16 | private String currency; 17 | private BigDecimal amount; 18 | private String marginAccount; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/AccountValuationRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import com.huobi.constant.enums.AccountTypeEnum; 4 | import lombok.*; 5 | 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | @ToString 11 | public class AccountValuationRequest { 12 | AccountTypeEnum accountType; 13 | String valuationCurrency; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/FeeSwitchRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class FeeSwitchRequest { 11 | private Integer switchType; 12 | private String deductionCurrency; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/GetBalanceRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class GetBalanceRequest { 11 | private Long subUid; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/PointRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | 4 | import lombok.*; 5 | 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | @ToString 11 | public class PointRequest { 12 | 13 | Long subUid; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/PointTransferRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | 4 | import java.math.BigDecimal; 5 | 6 | import lombok.*; 7 | 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class PointTransferRequest { 15 | 16 | private Long fromUid; 17 | 18 | private Long toUid; 19 | 20 | private Long groupId; 21 | 22 | private BigDecimal amount; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/SubAccountChangeRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.BalanceModeEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class SubAccountChangeRequest { 17 | 18 | private BalanceModeEnum balanceMode; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/SubAccountUpdateRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.AccountUpdateModeEnum; 10 | import com.huobi.constant.enums.BalanceModeEnum; 11 | 12 | @Data 13 | @Builder 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @ToString 17 | public class SubAccountUpdateRequest { 18 | 19 | private AccountUpdateModeEnum accountUpdateMode; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/account/TransferSubuserRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.account; 2 | 3 | 4 | import java.math.BigDecimal; 5 | 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | import lombok.ToString; 11 | 12 | import com.huobi.constant.enums.TransferMasterTypeEnum; 13 | 14 | @Data 15 | @Builder 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @ToString 19 | public class TransferSubuserRequest { 20 | 21 | private Long subUid; 22 | 23 | private String currency; 24 | 25 | private BigDecimal amount; 26 | 27 | private TransferMasterTypeEnum type; 28 | 29 | private String clientOrderId; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/algo/CancelAlgoAllOrderRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.algo; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class CancelAlgoAllOrderRequest { 11 | private Integer timeout; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/algo/CancelAlgoOrderRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.algo; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class CancelAlgoOrderRequest { 13 | 14 | private List clientOrderIds; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/algo/CreateAlgoOrderRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.algo; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | import com.huobi.constant.enums.algo.AlgoOrderSideEnum; 8 | import com.huobi.constant.enums.algo.AlgoOrderTimeInForceEnum; 9 | import com.huobi.constant.enums.algo.AlgoOrderTypeEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CreateAlgoOrderRequest { 17 | 18 | private String clientOrderId; 19 | 20 | private Long accountId; 21 | 22 | private String symbol; 23 | 24 | private AlgoOrderSideEnum orderSide; 25 | 26 | private AlgoOrderTypeEnum orderType; 27 | 28 | private AlgoOrderTimeInForceEnum timeInForce; 29 | 30 | private BigDecimal orderPrice; 31 | 32 | private BigDecimal orderSize; 33 | 34 | private BigDecimal orderValue; 35 | 36 | private BigDecimal stopPrice; 37 | 38 | private BigDecimal trailingRate; 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/algo/GetHistoryAlgoOrdersRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.algo; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.QuerySortEnum; 6 | import com.huobi.constant.enums.algo.AlgoOrderSideEnum; 7 | import com.huobi.constant.enums.algo.AlgoOrderStatusEnum; 8 | import com.huobi.constant.enums.algo.AlgoOrderTypeEnum; 9 | 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString 15 | public class GetHistoryAlgoOrdersRequest { 16 | 17 | private Long accountId; 18 | 19 | private String symbol; 20 | 21 | private AlgoOrderSideEnum orderSide; 22 | 23 | private AlgoOrderTypeEnum orderType; 24 | 25 | private AlgoOrderStatusEnum orderStatus; 26 | 27 | private Long startTime; 28 | 29 | private Long endTime; 30 | 31 | private QuerySortEnum sort; 32 | 33 | private Integer limit; 34 | 35 | private Long fromId; 36 | 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/algo/GetOpenAlgoOrdersRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.algo; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.QuerySortEnum; 6 | import com.huobi.constant.enums.algo.AlgoOrderSideEnum; 7 | import com.huobi.constant.enums.algo.AlgoOrderTypeEnum; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class GetOpenAlgoOrdersRequest { 15 | 16 | private Long accountId; 17 | 18 | private String symbol; 19 | 20 | private AlgoOrderSideEnum orderSide; 21 | 22 | private AlgoOrderTypeEnum orderType; 23 | 24 | private QuerySortEnum sort; 25 | 26 | private Integer limit; 27 | 28 | private Long fromId; 29 | 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/crossmargin/CrossMarginApplyLoanRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.crossmargin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CrossMarginApplyLoanRequest { 17 | 18 | private String currency; 19 | 20 | private BigDecimal amount; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/crossmargin/CrossMarginRepayLoanRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.crossmargin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CrossMarginRepayLoanRequest { 17 | 18 | private Long orderId; 19 | 20 | private BigDecimal amount; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/crossmargin/CrossMarginTransferRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.crossmargin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | import com.huobi.constant.enums.MarginTransferDirectionEnum; 12 | 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @ToString 18 | public class CrossMarginTransferRequest { 19 | 20 | private MarginTransferDirectionEnum direction; 21 | 22 | private String currency; 23 | 24 | private BigDecimal amount; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/crossmargin/GeneralLoanOrdersRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.crossmargin; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.QuerySortEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class GeneralLoanOrdersRequest { 17 | 18 | private String repayId; 19 | 20 | private String accountId; 21 | 22 | private String currency; 23 | 24 | private long startTime; 25 | 26 | private long endTime; 27 | 28 | private QuerySortEnum sort; 29 | 30 | private int limit; 31 | 32 | private long fromId; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/crossmargin/GeneralRepayLoanRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.crossmargin; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import lombok.ToString; 9 | 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString 15 | public class GeneralRepayLoanRequest { 16 | 17 | private String accountId; 18 | 19 | private String currency; 20 | 21 | private String amount; 22 | 23 | private String transactId; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/generic/ChainRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.generic; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class ChainRequest { 11 | private String showDesc; 12 | private String currency; 13 | private Long ts; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/generic/CurrencyChainsRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.generic; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class CurrencyChainsRequest { 15 | 16 | private String currency; 17 | 18 | @Builder.Default 19 | private boolean authorizedUser = true; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/margin/IsolatedMarginAccountRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.margin; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class IsolatedMarginAccountRequest { 15 | 16 | private String symbol; 17 | 18 | private Long subUid; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/margin/IsolatedMarginApplyLoanRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.margin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class IsolatedMarginApplyLoanRequest { 17 | 18 | private String symbol; 19 | 20 | private String currency; 21 | 22 | private BigDecimal amount; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/margin/IsolatedMarginLoanInfoRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.margin; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class IsolatedMarginLoanInfoRequest { 11 | 12 | private String symbols; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/margin/IsolatedMarginRepayLoanRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.margin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class IsolatedMarginRepayLoanRequest { 17 | 18 | private Long orderId; 19 | 20 | private BigDecimal amount; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/margin/IsolatedMarginTransferRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.margin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | import com.huobi.constant.enums.MarginTransferDirectionEnum; 12 | 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @ToString 18 | public class IsolatedMarginTransferRequest { 19 | 20 | private MarginTransferDirectionEnum direction; 21 | 22 | private String symbol; 23 | 24 | private String currency; 25 | 26 | private BigDecimal amount; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/margin/LeveragePositionLimitRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.margin; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class LeveragePositionLimitRequest { 11 | private String currency; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/CandlestickRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.CandlestickIntervalEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CandlestickRequest { 17 | 18 | private String symbol; 19 | 20 | private CandlestickIntervalEnum interval; 21 | 22 | private Integer size; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/MarketDepthRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.DepthSizeEnum; 10 | import com.huobi.constant.enums.DepthStepEnum; 11 | 12 | @Data 13 | @Builder 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @ToString 17 | public class MarketDepthRequest { 18 | 19 | private String symbol; 20 | 21 | private DepthSizeEnum depth; 22 | 23 | private DepthStepEnum step; 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/MarketDetailMergedRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketDetailMergedRequest { 15 | 16 | private String symbol; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/MarketDetailRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketDetailRequest { 15 | 16 | private String symbol; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/MarketHistoryTradeRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketHistoryTradeRequest { 15 | 16 | private String symbol; 17 | 18 | private Integer size; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/MarketTradeRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketTradeRequest { 15 | 16 | private String symbol; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/ReqCandlestickRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.CandlestickIntervalEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class ReqCandlestickRequest { 17 | 18 | private String symbol; 19 | 20 | private CandlestickIntervalEnum interval; 21 | 22 | private Long from; 23 | 24 | private Long to; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/ReqMarketDepthRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.DepthStepEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class ReqMarketDepthRequest { 17 | 18 | private String symbol; 19 | 20 | private DepthStepEnum step; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/ReqMarketDetailRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import lombok.ToString; 9 | 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString 15 | public class ReqMarketDetailRequest { 16 | 17 | private String symbol; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/ReqMarketTickerRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class ReqMarketTickerRequest { 11 | private String symbol; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/ReqMarketTradeRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class ReqMarketTradeRequest { 15 | 16 | private String symbol; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubCandlestickRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.CandlestickIntervalEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class SubCandlestickRequest { 17 | 18 | private String symbol; 19 | 20 | private CandlestickIntervalEnum interval; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMarketBBORequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class SubMarketBBORequest { 15 | 16 | private String symbol; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMarketDepthRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.DepthStepEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class SubMarketDepthRequest { 17 | private String symbol; 18 | 19 | private DepthStepEnum step; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMarketDetailRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import lombok.ToString; 9 | 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString 15 | public class SubMarketDetailRequest { 16 | 17 | private String symbol; 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMarketTickerRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubMarketTickerRequest { 11 | private String symbol; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMarketTradeRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class SubMarketTradeRequest { 15 | 16 | private String symbol; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMbpIncrementalUpdateRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.DepthLevels; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubMbpIncrementalUpdateRequest { 13 | 14 | private String symbol; 15 | 16 | private DepthLevels levels; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/market/SubMbpRefreshUpdateRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.market; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.DepthLevels; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubMbpRefreshUpdateRequest { 13 | 14 | private String symbols; 15 | 16 | private DepthLevels levels; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/CreditRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | import java.math.BigDecimal; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class CreditRequest { 13 | private Long transactionId; 14 | private String currency; 15 | private BigDecimal amount; 16 | private Long accountId; 17 | private Long userId; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/DeductModeRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class DeductModeRequest { 11 | private Long subUids; 12 | private String deductMode; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/GetApiKeyListRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class GetApiKeyListRequest { 11 | 12 | private Long uid; 13 | 14 | private String accessKey; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/GetSubUserAccountListRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class GetSubUserAccountListRequest { 11 | 12 | private Long subUid; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/GetSubUserDepositRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.QuerySortEnum; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetSubUserDepositRequest { 13 | 14 | private Long subUid; 15 | 16 | private String currency; 17 | 18 | private Long startTime; 19 | 20 | private Long endTime; 21 | 22 | private QuerySortEnum sort; 23 | 24 | private Integer limit; 25 | 26 | private Long fromId; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/GetSubUserListRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class GetSubUserListRequest { 11 | 12 | private Long fromId; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserApiKeyDeletionRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserApiKeyDeletionRequest { 11 | 12 | private Long subUid; 13 | 14 | private String accessKey; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserApiKeyGenerationRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserApiKeyGenerationRequest { 11 | 12 | private String otpToken; 13 | 14 | private Long subUid; 15 | 16 | private String note; 17 | 18 | private String permission; 19 | 20 | private String ipAddresses; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserApiKeyModificationRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserApiKeyModificationRequest { 11 | 12 | private Long subUid; 13 | 14 | private String accessKey; 15 | 16 | private String note; 17 | 18 | private String permission; 19 | 20 | private String ipAddresses; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserCreationParam.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserCreationParam { 11 | 12 | private String userName; 13 | 14 | private String note; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserCreationRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserCreationRequest { 13 | 14 | private List userList; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserManagementRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.SubUserManagementActionEnum; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserManagementRequest { 13 | 14 | private Long subUid; 15 | 16 | private SubUserManagementActionEnum action; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserTradableMarketRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.TradableMarketAccountTypeEnum; 6 | import com.huobi.constant.enums.TradableMarketActivationEnums; 7 | 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | @ToString 13 | public class SubUserTradableMarketRequest { 14 | 15 | private String subUids; 16 | 17 | private TradableMarketAccountTypeEnum accountType; 18 | 19 | private TradableMarketActivationEnums activation; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/subuser/SubUserTransferabilityRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.subuser; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.TransferabilityAccountTypeEnum; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserTransferabilityRequest { 13 | 14 | private String subUids; 15 | 16 | private TransferabilityAccountTypeEnum accountType; 17 | 18 | private String transferrable; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/BatchCancelOpenOrdersRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.OrderSideEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class BatchCancelOpenOrdersRequest { 17 | 18 | private Long accountId; 19 | 20 | private String symbol; 21 | 22 | private OrderSideEnum side; 23 | 24 | private Integer size; 25 | 26 | private String types; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/BatchOrdersRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import com.alibaba.fastjson.annotation.JSONField; 4 | import lombok.*; 5 | 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | @ToString 11 | public class BatchOrdersRequest { 12 | @JSONField(name = "account-id") 13 | private String accountId; 14 | private String symbol; 15 | private String type; 16 | private String amount; 17 | private String price; 18 | private String source; 19 | @JSONField(name = "client-order-id") 20 | private String clientOrderId; 21 | @JSONField(name = "self-match-prevent") 22 | private Integer selfMatchPrevent; 23 | @JSONField(name = "stop-price") 24 | private String stopPrice; 25 | private String operator; 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/CancelOrderRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class CancelOrderRequest { 11 | 12 | private Long orderId; 13 | 14 | private String symbol; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/FeeRateRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class FeeRateRequest { 15 | 16 | private String symbols; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/MarginOrderRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import com.alibaba.fastjson.annotation.JSONField; 4 | import lombok.*; 5 | 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | @ToString 11 | public class MarginOrderRequest { 12 | private String symbol; 13 | @JSONField(name = "account-id") 14 | private String accountId; 15 | private String amount; 16 | @JSONField(name = "market-amount") 17 | private String marketAmount; 18 | @JSONField(name = "borrow-amount") 19 | private String borrowAmount; 20 | private String type; 21 | @JSONField(name = "trade-purpose") 22 | private String tradePurpose; 23 | private String price; 24 | @JSONField(name = "stop-price") 25 | private String stopPrice; 26 | private String operator; 27 | private String source; 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/OpenOrdersRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.*; 4 | 5 | import com.huobi.constant.enums.OrderSideEnum; 6 | import com.huobi.constant.enums.QueryDirectionEnum; 7 | 8 | @Data 9 | @Builder 10 | @AllArgsConstructor 11 | @NoArgsConstructor 12 | @ToString 13 | public class OpenOrdersRequest { 14 | 15 | private String symbol; 16 | 17 | private Long accountId; 18 | 19 | private Integer size; 20 | 21 | private OrderSideEnum side; 22 | 23 | private QueryDirectionEnum direct; 24 | 25 | private Long from; 26 | 27 | private String types; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/OrderHistoryRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import java.util.Date; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | import com.huobi.constant.enums.QueryDirectionEnum; 12 | 13 | @Data 14 | @Builder 15 | @AllArgsConstructor 16 | @NoArgsConstructor 17 | @ToString 18 | public class OrderHistoryRequest { 19 | 20 | private String symbol; 21 | 22 | private Long startTime; 23 | 24 | private Long endTime; 25 | 26 | private QueryDirectionEnum direction; 27 | 28 | private Integer size; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/SubOrderUpdateRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class SubOrderUpdateRequest { 15 | 16 | private String symbols; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/SubOrderUpdateV2Request.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class SubOrderUpdateV2Request { 15 | 16 | private String symbols; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/trade/SubTradeClearingRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class SubTradeClearingRequest { 15 | 16 | private String symbols; 17 | 18 | private int[] modes; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/wallet/CreateWithdrawRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.wallet; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CreateWithdrawRequest { 17 | 18 | private String address; 19 | 20 | private BigDecimal amount; 21 | 22 | private BigDecimal fee; 23 | 24 | private String currency; 25 | 26 | private String chain; 27 | 28 | private String addrTag; 29 | 30 | private String clientOrderId; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/wallet/DepositAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.wallet; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class DepositAddressRequest { 15 | 16 | private String currency; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/wallet/DepositWithdrawRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.wallet; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.DepositWithdrawTypeEnum; 10 | import com.huobi.constant.enums.QueryDirectionEnum; 11 | 12 | @Data 13 | @Builder 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @ToString 17 | public class DepositWithdrawRequest { 18 | 19 | private DepositWithdrawTypeEnum type; 20 | 21 | private String currency; 22 | 23 | private Long from; 24 | 25 | private Integer size; 26 | 27 | private QueryDirectionEnum direction; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/wallet/WithdrawAddressRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.wallet; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class WithdrawAddressRequest { 11 | 12 | private String currency; 13 | 14 | private String chain; 15 | 16 | private String note; 17 | 18 | private Integer limit; 19 | 20 | private Long fromId; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/client/req/wallet/WithdrawQuotaRequest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.client.req.wallet; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class WithdrawQuotaRequest { 15 | 16 | private String currency; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/Constants.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant; 2 | /* 3 | *下面是Hmac256签名方式的变量,SIGN是“256”代表Hmac256签名方式,“25519”代表Ed25519签名方式。 4 | * API_KEY和SECRET_KEY是Hmac256方式需要的公钥和私钥。PUBLIC_KEY和PRIVATE_KEY是Ed25519的公钥和私钥。 5 | * 6 | * The following is the variable of the Hmac256 signature mode. 7 | * SIGN indicates the Hmac256 signature mode and 25519 indicates the Ed25519 signature mode. 8 | * API_KEY and SECRET_KEY are the public and private keys required for Hmac256 mode. 9 | * PUBLIC_KEY and PRIVATE_KEY are the public and private keys of Ed25519. 10 | * */ 11 | public class Constants { 12 | 13 | public static final String API_KEY = ""; 14 | public static final String SECRET_KEY = ""; 15 | public static final String SIGN = "256"; 16 | 17 | 18 | public static final String PUBLIC_KEY = ""; 19 | public static final String PRIVATE_KEY = ""; 20 | 21 | 22 | 23 | 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/Options.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant; 2 | 3 | import com.huobi.constant.enums.ExchangeEnum; 4 | 5 | public interface Options { 6 | 7 | String getApiKey(); 8 | 9 | String getSecretKey(); 10 | String getSign(); 11 | 12 | ExchangeEnum getExchange(); 13 | 14 | String getRestHost(); 15 | 16 | String getWebSocketHost(); 17 | 18 | boolean isWebSocketAutoConnect(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/WebSocketConstants.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant; 2 | 3 | public class WebSocketConstants { 4 | 5 | public static final String OP_SUB = "sub"; 6 | public static final String OP_REQ = "req"; 7 | 8 | public static final String ACTION_SUB = "sub"; 9 | public static final String ACTION_REP = "rep"; 10 | 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/AccountFuturesTransferTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum AccountFuturesTransferTypeEnum { 9 | 10 | PRO_TO_FUTURES("pro-to-futures"), 11 | FUTURE_TO_PRO("futures-to-pro") 12 | 13 | ; 14 | private String type; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/AccountHistoryTransactTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | public enum AccountHistoryTransactTypeEnum { 4 | 5 | TRADE("trade"), 6 | ETF("etf"), 7 | TRANSACT_FEE("transact-fee"), 8 | FEE_DEDUCTION("fee-deduction"), 9 | TRANSFER("transfer"), 10 | CREDIT("credit"), 11 | LIQUIDATION("liquidation"), 12 | INTEREST("interest"), 13 | DEPOSIT("deposit"), 14 | WITHDRAW("withdraw"), 15 | WITHDRAW_FEE("withdraw-fee"), 16 | EXCHANGE("exchange"), 17 | REBATE("rebate"), 18 | OTHER_TYPES("other-types") 19 | 20 | ; 21 | private final String code; 22 | 23 | AccountHistoryTransactTypeEnum(String code) { 24 | this.code = code; 25 | } 26 | 27 | public String getCode() { 28 | return code; 29 | } 30 | 31 | public static AccountHistoryTransactTypeEnum find(String code) { 32 | for (AccountHistoryTransactTypeEnum transactType : AccountHistoryTransactTypeEnum.values()) { 33 | if (transactType.getCode().equals(code)) { 34 | return transactType; 35 | } 36 | } 37 | return null; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/AccountLedgerTransactTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | public enum AccountLedgerTransactTypeEnum { 4 | 5 | TRANSFER("transfer"), 6 | ; 7 | private final String code; 8 | 9 | AccountLedgerTransactTypeEnum(String code) { 10 | this.code = code; 11 | } 12 | 13 | public String getCode() { 14 | return code; 15 | } 16 | 17 | public static AccountLedgerTransactTypeEnum find(String code) { 18 | for (AccountLedgerTransactTypeEnum transactType : AccountLedgerTransactTypeEnum.values()) { 19 | if (transactType.getCode().equals(code)) { 20 | return transactType; 21 | } 22 | } 23 | return null; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/AccountStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * working, lock. 7 | */ 8 | @Getter 9 | public enum AccountStateEnum { 10 | WORKING("working"), 11 | LOCK("lock"); 12 | 13 | private final String code; 14 | 15 | AccountStateEnum(String code) { 16 | this.code = code; 17 | } 18 | 19 | public static AccountStateEnum find(String code) { 20 | for (AccountStateEnum stateEnum : AccountStateEnum.values()) { 21 | if (stateEnum.getCode().equals(code)) { 22 | return stateEnum; 23 | } 24 | } 25 | return null; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/AccountTransferAccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum AccountTransferAccountTypeEnum { 9 | 10 | SPOT("spot"), 11 | MARGIN("margin"), 12 | 13 | ; 14 | private String accountType; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/AccountUpdateModeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * The balance mode used for subscribing the balance notification. 7 | */ 8 | @Getter 9 | public enum AccountUpdateModeEnum { 10 | 11 | /** 12 | * Subscribe available balance 13 | */ 14 | AVAILABLE_CHANGE("0"), 15 | 16 | /** 17 | * Subscribe TOTAL balance, total balance is the sum of available and frozen 18 | */ 19 | ACCOUNT_CHANGE("1"); 20 | 21 | private final String code; 22 | 23 | AccountUpdateModeEnum(String code) { 24 | this.code = code; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/BalanceModeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | /** 6 | * The balance mode used for subscribing the balance notification. 7 | */ 8 | @Getter 9 | public enum BalanceModeEnum { 10 | 11 | /** 12 | * Subscribe available balance 13 | */ 14 | AVAILABLE("0"), 15 | 16 | /** 17 | * Subscribe TOTAL balance, total balance is the sum of available and frozen 18 | */ 19 | TOTAL("1"); 20 | 21 | private final String code; 22 | 23 | BalanceModeEnum(String code) { 24 | this.code = code; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/BalanceTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum BalanceTypeEnum { 7 | TRADE("trade"), 8 | FROZEN("frozen"), 9 | LOAN("loan"), 10 | INTEREST("interest"), 11 | LOAN_AVAILABLE("loan-available"), 12 | TRANSFER_OUT_AVAILABLE("transfer-out-available"); 13 | 14 | 15 | 16 | private final String code; 17 | 18 | BalanceTypeEnum(String code) { 19 | this.code = code; 20 | } 21 | 22 | public static BalanceTypeEnum find(String code) { 23 | for (BalanceTypeEnum typeEnum : BalanceTypeEnum.values()) { 24 | if (typeEnum.getCode().equals(code)) { 25 | return typeEnum; 26 | } 27 | } 28 | return null; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/BusinessLineAccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum BusinessLineAccountTypeEnum { 7 | SPOT("spot"), 8 | LINEARSWAP("linear-swap"), 9 | FUTURES("futures"), 10 | SWAP("swap") 11 | ; 12 | 13 | 14 | private final String type; 15 | 16 | BusinessLineAccountTypeEnum(String type) { 17 | this.type = type; 18 | } 19 | 20 | public static BusinessLineAccountTypeEnum find(String type) { 21 | for (BusinessLineAccountTypeEnum typeEnum : BusinessLineAccountTypeEnum.values()) { 22 | if (typeEnum.getType().equals(type)) { 23 | return typeEnum; 24 | } 25 | } 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/CandlestickIntervalEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum CandlestickIntervalEnum { 7 | 8 | MIN1("1min"), 9 | MIN5("5min"), 10 | MIN15("15min"), 11 | MIN30("30min"), 12 | MIN60("60min"), 13 | HOUR4("4hour"), 14 | DAY1("1day"), 15 | MON1("1mon"), 16 | WEEK1("1week"), 17 | YEAR1("1year"); 18 | 19 | private final String code; 20 | 21 | CandlestickIntervalEnum(String code) { 22 | this.code = code; 23 | } 24 | 25 | 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/ConnectionStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | public enum ConnectionStateEnum { 4 | IDLE, 5 | DELAY_CONNECT, 6 | CONNECTED, 7 | CLOSED_ON_ERROR 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/CrossMarginAccountStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum CrossMarginAccountStateEnum { 9 | 10 | WORKING("working"), 11 | FL_SYS("fl-sys"), 12 | FL_END("fl-end"), 13 | FL_NEGATIVE("fl-negative") 14 | 15 | ; 16 | 17 | private String code; 18 | 19 | public static CrossMarginAccountStateEnum find(String code) { 20 | 21 | for (CrossMarginAccountStateEnum stateEnum : CrossMarginAccountStateEnum.values()) { 22 | if (stateEnum.getCode().equals(code)) { 23 | return stateEnum; 24 | } 25 | } 26 | return null; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/DealRoleEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum DealRoleEnum { 9 | 10 | /** 11 | * TAKER,MAKER 12 | */ 13 | 14 | TAKER("taker"), 15 | MAKER("maker") 16 | ; 17 | 18 | private final String role; 19 | 20 | public static DealRoleEnum find(String role) { 21 | for (DealRoleEnum fr : DealRoleEnum.values()) { 22 | if (fr.getRole().equals(role)) { 23 | return fr; 24 | } 25 | } 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/DepositWithdrawTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum DepositWithdrawTypeEnum { 9 | 10 | DEPOSIT("deposit"), 11 | WITHDRAW("withdraw"); 12 | 13 | private final String type; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/DepthLevels.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum DepthLevels { 9 | 10 | LEVEL_5(5), 11 | LEVEL_10(10), 12 | LEVEL_20(20), 13 | LEVEL_150(150), 14 | ; 15 | 16 | private final int level; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/DepthSizeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * The aggregation depth type. 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum DepthSizeEnum { 12 | 13 | /** 14 | * step0,step1,step2,step3,step4,step5 15 | */ 16 | SIZE_5(5), 17 | SIZE_10(10), 18 | SIZE_20(20), 19 | ; 20 | 21 | private final Integer size; 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/DepthStepEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * The aggregation depth type. 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum DepthStepEnum { 12 | 13 | /** 14 | * step0,step1,step2,step3,step4,step5 15 | */ 16 | STEP0("step0"), 17 | STEP1("step1"), 18 | STEP2("step2"), 19 | STEP3("step3"), 20 | STEP4("step4"), 21 | STEP5("step5"), 22 | ; 23 | 24 | private final String step; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/ExchangeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum ExchangeEnum { 7 | 8 | HUOBI("huobi"), 9 | 10 | ; 11 | private final String code; 12 | ExchangeEnum(String code) { 13 | this.code = code; 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/IsolatedMarginAccountStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum IsolatedMarginAccountStateEnum { 9 | 10 | WORKING("working"), 11 | FL_SYS("fl-sys"), 12 | FL_MGT("fl-mgt"), 13 | FL_END("fl-end") 14 | 15 | ; 16 | 17 | private String code; 18 | 19 | public static IsolatedMarginAccountStateEnum find(String code) { 20 | 21 | return null; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/LoanOrderStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * created, accrual, cleared, invalid. 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum LoanOrderStateEnum { 12 | 13 | CREATED("created"), 14 | ACCRUAL("accrual"), 15 | CLEARED("cleared"), 16 | INVALID("invalid"); 17 | 18 | private final String code; 19 | 20 | public static LoanOrderStateEnum find(String code) { 21 | 22 | for (LoanOrderStateEnum stateEnum : LoanOrderStateEnum.values()) { 23 | if (stateEnum.getCode().equals(code)) { 24 | return stateEnum; 25 | } 26 | } 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/MarginTransferDirectionEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | public enum MarginTransferDirectionEnum { 4 | 5 | SPOT_TO_MARGIN, 6 | MARGIN_TO_SPOT 7 | ; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/OrderSideEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * buy, sell, both. 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum OrderSideEnum { 12 | BUY("buy"), 13 | SELL("sell"); 14 | 15 | private final String code; 16 | } -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/OrderSourceEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * sys, web, api, app. 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum OrderSourceEnum { 12 | SYS("sys"), 13 | WEB("web"), 14 | API("api"), 15 | APP("app"), 16 | FLSYS("fl-sys"), 17 | FLMGT("fl-mgt"), 18 | SPOT_WEB("spot-web"), 19 | SPOT_API("spot-api"), 20 | SPOT_APP("spot-app"), 21 | MARGIN_API("margin-api"), 22 | MARGIN_WEB("margin-web"), 23 | MARGIN_APP("margin-app"), 24 | SUPER_MARGIN_WEB( "super-margin-web"), 25 | SUPER_MARGIN_API("super-margin-api"), 26 | SUPER_MARGIN_APP( "super-margin-app"), 27 | 28 | ; 29 | private final String code; 30 | 31 | public static OrderSourceEnum find(String code) { 32 | for (OrderSourceEnum sourceEnum : OrderSourceEnum.values()) { 33 | if (sourceEnum.getCode().equals(code)) { 34 | return sourceEnum; 35 | } 36 | } 37 | return null; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/OrderStateEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * SUBMITTED, PARTIALFILLED, CANCELLING. PARTIALCANCELED FILLED CANCELED CREATED 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum OrderStateEnum { 12 | SUBMITTED("submitted"), 13 | CREATED("created"), 14 | PARTIALFILLED("partial-filled"), 15 | CANCELLING("cancelling"), 16 | PARTIALCANCELED("partial-canceled"), 17 | FILLED("filled"), 18 | CANCELED("canceled"); 19 | 20 | private final String code; 21 | 22 | public static OrderStateEnum find(String code) { 23 | for (OrderStateEnum stateEnum : OrderStateEnum.values()) { 24 | if (stateEnum.getCode().equals(code)) { 25 | return stateEnum; 26 | } 27 | } 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/OrderTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * buy-market, sell-market, buy-limit, buy-ioc, sell-ioc, 8 | * buy-limit-maker, sell-limit-maker, buy-stop-limit, sell-stop-limit. 9 | */ 10 | @Getter 11 | @AllArgsConstructor 12 | public enum OrderTypeEnum { 13 | BUY_MARKET("buy-market"), 14 | SELL_MARKET("sell-market"), 15 | BUY_LIMIT("buy-limit"), 16 | SELL_LIMIT("sell-limit"), 17 | BUY_IOC("buy-ioc"), 18 | SELL_IOC("sell-ioc"), 19 | BUY_LIMIT_MAKER("buy-limit-maker"), 20 | SELL_LIMIT_MAKER("sell-limit-maker"), 21 | BUY_STOP_LIMIT("buy-stop-limit"), 22 | SELL_STOP_LIMIT("sell-stop-limit"), 23 | 24 | INVALID("invalid"); 25 | 26 | private final String code; 27 | 28 | 29 | public static OrderTypeEnum find(String code) { 30 | for (OrderTypeEnum typeEnum : OrderTypeEnum.values()) { 31 | if (typeEnum.getCode().equals(code)) { 32 | return typeEnum; 33 | } 34 | } 35 | return null; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/QueryDirectionEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum QueryDirectionEnum { 9 | PREV("prev"), 10 | NEXT("next"); 11 | 12 | private final String code; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/QuerySortEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum QuerySortEnum { 9 | ASC("asc"), 10 | DESC("desc"); 11 | 12 | private final String sort; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/StopOrderOperatorEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | 7 | @AllArgsConstructor 8 | @Getter 9 | public enum StopOrderOperatorEnum { 10 | /** 11 | * GTE,greater than and equal (>=) ,LTE less than and equal (<=) 12 | */ 13 | GTE("gte","greater than and equal (>=)"), 14 | LTE("lte","less than and equal (<=)"); 15 | 16 | private String operator; 17 | 18 | private String desc; 19 | 20 | public static StopOrderOperatorEnum find(String operator) { 21 | for (StopOrderOperatorEnum op : StopOrderOperatorEnum.values()) { 22 | if (op.getOperator().equals(operator)) { 23 | return op; 24 | } 25 | } 26 | return null; 27 | } 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/SubUserApiKeyPermissionEnums.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum SubUserApiKeyPermissionEnums { 9 | 10 | READ_ONLY("readOnly"), 11 | TRADE("trade"), 12 | 13 | ; 14 | private final String permission; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/SubUserManagementActionEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum SubUserManagementActionEnum { 9 | 10 | LOCK("lock"), 11 | UNLOCK("unlock"), 12 | 13 | ; 14 | private String action; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/TradableMarketAccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum TradableMarketAccountTypeEnum { 9 | 10 | ISOLATED_MARGIN("isolated-margin"), 11 | 12 | CROSS_MARGIN("cross-margin"), 13 | ; 14 | 15 | private final String accountType; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/TradableMarketActivationEnums.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum TradableMarketActivationEnums { 9 | 10 | ACTIVATED("activated"), 11 | DEACTIVATED("deactivated"), 12 | ; 13 | 14 | private final String activation; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/TradeDirectionEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * buy, sell. 8 | */ 9 | @Getter 10 | @AllArgsConstructor 11 | public enum TradeDirectionEnum { 12 | BUY("buy"), 13 | SELL("sell"); 14 | 15 | private final String code; 16 | 17 | public static TradeDirectionEnum find(String code) { 18 | for (TradeDirectionEnum directionEnum : TradeDirectionEnum.values()) { 19 | if (directionEnum.getCode().equals(code)) { 20 | return directionEnum; 21 | } 22 | } 23 | return null; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/TransferMasterTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum TransferMasterTypeEnum { 9 | 10 | 11 | MASTER_TRANSFER_IN("master-transfer-in"), 12 | MASTER_TRANSFER_OUT("master-transfer-out"), 13 | MASTER_POINT_TRANSFER_IN("master-point-transfer-in"), 14 | MASTER_POINT_TRANSFER_OUT("master-point-transfer-out"); 15 | 16 | private final String code; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/TransferabilityAccountTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum TransferabilityAccountTypeEnum { 9 | 10 | SPOT("spot"), 11 | ; 12 | 13 | private final String accountType; 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/algo/AlgoOrderSideEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums.algo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum AlgoOrderSideEnum { 9 | 10 | BUY("buy"), 11 | SELL("sell"), 12 | 13 | ; 14 | private final String side; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/algo/AlgoOrderStatusEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums.algo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum AlgoOrderStatusEnum { 9 | 10 | CREATED("created"), 11 | CANCELED("canceled"), 12 | TRIGGERED("triggered"), 13 | REJECTED("rejected"), 14 | 15 | ; 16 | private final String status; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/algo/AlgoOrderTimeInForceEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums.algo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum AlgoOrderTimeInForceEnum { 9 | 10 | GTC("gtc"), 11 | BOC("boc"), 12 | IOC("ioc"), 13 | FOK("fok"), 14 | ; 15 | private final String timeInForce; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/constant/enums/algo/AlgoOrderTypeEnum.java: -------------------------------------------------------------------------------- 1 | package com.huobi.constant.enums.algo; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | @Getter 7 | @AllArgsConstructor 8 | public enum AlgoOrderTypeEnum { 9 | 10 | LIMIT("limit"), 11 | MARKET("market"), 12 | 13 | ; 14 | private final String type; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/exception/SDKException.java: -------------------------------------------------------------------------------- 1 | package com.huobi.exception; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public class SDKException extends RuntimeException { 7 | 8 | public static final String INPUT_ERROR = "InputError"; 9 | 10 | public static final String RUNTIME_ERROR = "RuntimeError"; 11 | 12 | public static final String ENV_ERROR = "EnvironmentError"; 13 | 14 | public static final String EXEC_ERROR = "ExecuteError"; 15 | 16 | public static final String KEY_MISSING = "KeyMissingError"; 17 | 18 | public static final String SYS_ERROR = "SystemError"; 19 | 20 | private final String errCode; 21 | 22 | public SDKException(String errCode, String errMsg) { 23 | super(errMsg); 24 | this.errCode = errCode; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/Account.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class Account { 15 | 16 | private Long id; 17 | 18 | private String type; 19 | 20 | private String state; 21 | 22 | private String subtype; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountAssetValuationResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountAssetValuationResult { 17 | 18 | BigDecimal balance; 19 | 20 | Long timestamp; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountBalance.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountBalance { 17 | 18 | private Long id; 19 | 20 | private String type; 21 | 22 | private String state; 23 | 24 | private List list; 25 | 26 | private String subType; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountChange.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountChange { 17 | 18 | private Long accountId; 19 | 20 | private String currency; 21 | 22 | private String type; 23 | 24 | private BigDecimal balance; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountChangeEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountChangeEvent { 17 | 18 | private String event; 19 | 20 | private List list; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountFuturesTransferResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class AccountFuturesTransferResult { 11 | 12 | private Long data; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountHistory.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AccountHistory { 13 | 14 | private Long accountId; 15 | 16 | private String currency; 17 | 18 | private BigDecimal transactAmt; 19 | 20 | private String transactType; 21 | 22 | private BigDecimal availBalance; 23 | 24 | private BigDecimal acctBalance; 25 | 26 | private Long transactTime; 27 | 28 | private Long recordId; 29 | 30 | private Long nextId; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountLedger.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AccountLedger { 13 | 14 | /** 15 | * Account ID 16 | */ 17 | private Long accountId; 18 | 19 | /** 20 | * Currency 21 | */ 22 | private String currency; 23 | 24 | /** 25 | * Amount change (positive value if income, negative value if outcome) 26 | */ 27 | private BigDecimal transactAmt; 28 | 29 | /** 30 | * Amount change types 31 | */ 32 | private String transactType; 33 | 34 | private String transferType; 35 | /** 36 | * transaction Id 37 | */ 38 | private Long transactId; 39 | 40 | /** 41 | * Acccount transferred from 42 | */ 43 | private Long transferer; 44 | 45 | /** 46 | * Acccount transferred to 47 | */ 48 | private Long transferee; 49 | 50 | /** 51 | * Transaction time (database time) 52 | */ 53 | private Long transactTime; 54 | 55 | } 56 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountLedgerResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AccountLedgerResult { 13 | 14 | private Long nextId; 15 | 16 | private List ledgerList; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class AccountReq { 17 | 18 | private String topic; 19 | 20 | private Long ts; 21 | 22 | private String cid; 23 | 24 | private List balanceList; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountTransferResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class AccountTransferResult { 11 | 12 | private Long transactId; 13 | 14 | private Long transactTime; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountTransferV2Result.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class AccountTransferV2Result { 11 | private String success; 12 | private Long data; 13 | private Long code; 14 | private String message; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountUpdate.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AccountUpdate { 13 | 14 | private String currency; 15 | 16 | private Long accountId; 17 | 18 | private BigDecimal balance; 19 | 20 | private BigDecimal available; 21 | 22 | private String changeType; 23 | 24 | private String accountType; 25 | 26 | private Long changeTime; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class AccountUpdateEvent { 11 | 12 | private String action; 13 | 14 | private String topic; 15 | 16 | private AccountUpdate accountUpdate; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/AccountValuationResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | import java.util.List; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AccountValuationResult { 13 | private String totalBalance; 14 | private String todayProfit; 15 | private String todayProfitRate; 16 | List profitAccountBalanceList; 17 | Updated updated; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/Balance.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | /** 12 | * The balance of specified account. 13 | */ 14 | @Data 15 | @Builder 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @ToString 19 | public class Balance { 20 | 21 | private String currency; 22 | 23 | private String type; 24 | 25 | private BigDecimal balance; 26 | 27 | private Long seqNum; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/Group.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class Group { 15 | 16 | Long groupId; 17 | 18 | Long expiryDate; 19 | 20 | String remainAmt; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/OverviewInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class OverviewInfo { 11 | private String currency; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/Point.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class Point { 17 | 18 | Long accountId; 19 | 20 | String accountStatus; 21 | 22 | String acctBalance; 23 | 24 | List groupIds; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/PointTransferResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class PointTransferResult { 15 | 16 | String transactId; 17 | 18 | Long transactTime; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/ProfitAccountBalance.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class ProfitAccountBalance { 11 | private String distributionType; 12 | private Float balance; 13 | private Boolean success; 14 | private String accountBalance; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/SubuserAggregateBalance.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class SubuserAggregateBalance { 17 | 18 | private String currency; 19 | 20 | private String type; 21 | 22 | private BigDecimal balance; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/Updated.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class Updated { 11 | private Boolean success; 12 | private Long time; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/account/UserInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.account; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class UserInfo { 11 | private Integer pointSwitch; 12 | private Integer currencySwitch; 13 | private String deductionCurrency; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/algo/AlgoOrder.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.algo; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class AlgoOrder { 13 | 14 | private Long accountId; 15 | 16 | private String source; 17 | 18 | private String clientOrderId; 19 | 20 | private Long orderId; 21 | 22 | private String symbol; 23 | 24 | private BigDecimal orderPrice; 25 | 26 | private BigDecimal orderSize; 27 | 28 | private BigDecimal orderValue; 29 | 30 | private String timeInForce; 31 | 32 | private String orderType; 33 | 34 | private BigDecimal stopPrice; 35 | 36 | private BigDecimal trailingRate; 37 | 38 | private Long orderOrigTime; 39 | 40 | private Long lastActTime; 41 | 42 | private Long orderCreateTime; 43 | 44 | private String orderStatus; 45 | 46 | private Integer errCode; 47 | 48 | private String errMessage; 49 | 50 | private String orderSide; 51 | 52 | } 53 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/algo/CancelAlgoAllOrderResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.algo; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class CancelAlgoAllOrderResult { 11 | private Long currentTime; 12 | private Long triggerTime; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/algo/CancelAlgoOrderResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.algo; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class CancelAlgoOrderResult { 13 | 14 | private List accepted; 15 | 16 | private List rejected; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/algo/CreateAlgoOrderResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.algo; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class CreateAlgoOrderResult { 11 | 12 | private String clientOrderId; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/algo/GetHistoryAlgoOrdersResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.algo; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetHistoryAlgoOrdersResult { 13 | 14 | private List list; 15 | 16 | private Long nextId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/algo/GetOpenAlgoOrdersResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.algo; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetOpenAlgoOrdersResult { 13 | 14 | private List list; 15 | 16 | private Long nextId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/crossmargin/CrossMarginAccount.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.crossmargin; 2 | 3 | import java.math.BigDecimal; 4 | import java.util.List; 5 | 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | import lombok.ToString; 11 | 12 | import com.huobi.model.account.Balance; 13 | 14 | @Data 15 | @Builder 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @ToString 19 | public class CrossMarginAccount { 20 | 21 | private Long id; 22 | 23 | private String type; 24 | 25 | private String state; 26 | 27 | private BigDecimal riskRate; 28 | 29 | private BigDecimal acctBalanceSum; 30 | 31 | private BigDecimal debtBalanceSum; 32 | 33 | private List balanceList; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/crossmargin/CrossMarginCurrencyInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.crossmargin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class CrossMarginCurrencyInfo { 13 | 14 | private String currency; 15 | 16 | private BigDecimal interestRate; 17 | 18 | private BigDecimal minLoanAmt; 19 | 20 | private BigDecimal maxLoanAmt; 21 | 22 | private BigDecimal loanableAmt; 23 | 24 | private BigDecimal actualRate; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/crossmargin/CrossMarginLoadOrder.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.crossmargin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CrossMarginLoadOrder { 17 | 18 | private Long id; 19 | 20 | private Long userId; 21 | 22 | private Long accountId; 23 | 24 | private String currency; 25 | 26 | private BigDecimal loanAmount; 27 | 28 | private BigDecimal loanBalance; 29 | 30 | private BigDecimal interestAmount; 31 | 32 | private BigDecimal interestBalance; 33 | 34 | private BigDecimal filledPoints; 35 | 36 | private BigDecimal filledHt; 37 | 38 | private String state; 39 | 40 | private Long createdAt; 41 | 42 | private Long accruedAt; 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/crossmargin/GeneralRepayLoanRecord.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.crossmargin; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import lombok.ToString; 9 | 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString 15 | public class GeneralRepayLoanRecord { 16 | 17 | private String repayId; 18 | 19 | private long repayTime; 20 | 21 | private String accountId; 22 | 23 | private String currency; 24 | 25 | private String repaidAmount; 26 | 27 | private Transact transactIds; 28 | 29 | private long nextId; 30 | 31 | } 32 | 33 | @Data 34 | @Builder 35 | @AllArgsConstructor 36 | @NoArgsConstructor 37 | @ToString 38 | class Transact { 39 | private long transactId; 40 | 41 | private String repaidPrincipal; 42 | 43 | private String repaidInterest; 44 | 45 | private String paidHt; 46 | 47 | private String paidPoint; 48 | 49 | } 50 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/crossmargin/GeneralRepayLoanResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.crossmargin; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | import lombok.ToString; 9 | 10 | @Data 11 | @Builder 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @ToString 15 | public class GeneralRepayLoanResult { 16 | 17 | private String repayId; 18 | 19 | private Long repayTime; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/generic/CurrencyChain.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.generic; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CurrencyChain { 17 | 18 | private String currency; 19 | 20 | private String instStatus; 21 | 22 | private List chains; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/generic/CurrencyV2.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.generic; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class CurrencyV2 { 11 | private String cc; 12 | private String dn; 13 | private String fn; 14 | private Integer at; 15 | private Integer wp; 16 | private String ft; 17 | private String dma; 18 | private String wma; 19 | private String sp; 20 | private String w; 21 | private Boolean qc; 22 | private String state; 23 | private Boolean v; 24 | private Boolean whe; 25 | private Boolean cd; 26 | private Boolean de; 27 | private Boolean wed; 28 | private Boolean cawt; 29 | private Integer fc; 30 | private Integer sc; 31 | private String swd; 32 | private String wd; 33 | private String sdd; 34 | private String dd; 35 | private String svd; 36 | private String tags; 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/generic/MarketStatus.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.generic; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketStatus { 15 | 16 | private Integer marketStatus; 17 | 18 | private Long haltStartTime; 19 | 20 | private Long haltEndTime; 21 | 22 | private Integer haltReason; 23 | 24 | private String affectedSymbols; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/generic/Person.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.generic; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class Person { 11 | private Integer id; 12 | private String name; 13 | private Integer weight; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/isolatedmargin/IsolatedMarginAccount.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.isolatedmargin; 2 | 3 | import java.math.BigDecimal; 4 | import java.util.List; 5 | 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | import lombok.ToString; 11 | 12 | import com.huobi.model.account.Balance; 13 | 14 | @Data 15 | @Builder 16 | @AllArgsConstructor 17 | @NoArgsConstructor 18 | @ToString 19 | public class IsolatedMarginAccount { 20 | 21 | private Long id; 22 | 23 | private String symbol; 24 | 25 | private BigDecimal flPrice; 26 | 27 | private String flType; 28 | 29 | private BigDecimal riskRate; 30 | 31 | private String type; 32 | 33 | private String state; 34 | 35 | private List balanceList; 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/isolatedmargin/IsolatedMarginCurrencyInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.isolatedmargin; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class IsolatedMarginCurrencyInfo { 13 | 14 | private String currency; 15 | 16 | private BigDecimal interestRate; 17 | 18 | private BigDecimal minLoanAmt; 19 | 20 | private BigDecimal maxLoanAmt; 21 | 22 | private BigDecimal loanableAmt; 23 | 24 | private BigDecimal actualRate; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/isolatedmargin/IsolatedMarginSymbolInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.isolatedmargin; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class IsolatedMarginSymbolInfo { 13 | 14 | private String symbol; 15 | 16 | private List currencies; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/isolatedmargin/LeveragePositionLimitResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.isolatedmargin; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class LeveragePositionLimitResult { 11 | private String currency; 12 | private String maxHoldings; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/Candlestick.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class Candlestick { 17 | 18 | private Long id; 19 | 20 | private BigDecimal amount; 21 | 22 | private BigDecimal count; 23 | 24 | private BigDecimal open; 25 | 26 | private BigDecimal high; 27 | 28 | private BigDecimal low; 29 | 30 | private BigDecimal close; 31 | 32 | private BigDecimal vol; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/CandlestickEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class CandlestickEvent { 15 | 16 | private String ch; 17 | 18 | private Long ts; 19 | 20 | private Candlestick candlestick; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/CandlestickReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CandlestickReq { 17 | 18 | private String ch; 19 | 20 | private Long ts; 21 | 22 | private List candlestickList; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketBBO.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketBBO { 17 | 18 | private String symbol; 19 | 20 | private Long quoteTime; 21 | 22 | private BigDecimal bid; 23 | 24 | private BigDecimal bidSize; 25 | 26 | private BigDecimal ask; 27 | 28 | private BigDecimal askSize; 29 | 30 | private Long seqId; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketBBOEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketBBOEvent { 15 | 16 | private String ch; 17 | 18 | private Long ts; 19 | 20 | private MarketBBO bbo; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDepth.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketDepth { 17 | 18 | private long version; 19 | 20 | private Long ts; 21 | 22 | private List bids; 23 | 24 | private List asks; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDepthEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketDepthEvent { 15 | 16 | private String ch; 17 | 18 | private Long ts; 19 | 20 | private MarketDepth depth; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDepthReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketDepthReq { 15 | 16 | private String ch; 17 | 18 | private Long ts; 19 | 20 | private MarketDepth depth; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDetail.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketDetail { 17 | 18 | private Long id; 19 | 20 | private BigDecimal open; 21 | 22 | private BigDecimal close; 23 | 24 | private BigDecimal low; 25 | 26 | private BigDecimal high; 27 | 28 | private Long count; 29 | 30 | private BigDecimal vol; 31 | 32 | private BigDecimal amount; 33 | 34 | private Long version; 35 | 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDetailEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketDetailEvent { 15 | private String ch; 16 | 17 | private Long ts; 18 | 19 | private MarketDetail detail; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDetailMerged.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import com.alibaba.fastjson.annotation.JSONField; 6 | import lombok.AllArgsConstructor; 7 | import lombok.Builder; 8 | import lombok.Data; 9 | import lombok.NoArgsConstructor; 10 | import lombok.ToString; 11 | 12 | @Data 13 | @Builder 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @ToString 17 | public class MarketDetailMerged { 18 | 19 | private Long id; 20 | 21 | private BigDecimal amount; 22 | 23 | private Long count; 24 | 25 | private BigDecimal open; 26 | 27 | private BigDecimal close; 28 | 29 | private BigDecimal low; 30 | 31 | private BigDecimal high; 32 | 33 | private BigDecimal vol; 34 | 35 | @JSONField(deserialize = false) 36 | private PriceLevel bid; 37 | 38 | @JSONField(deserialize = false) 39 | private PriceLevel ask; 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketDetailReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class MarketDetailReq { 15 | private String ch; 16 | 17 | private Long ts; 18 | 19 | private MarketDetail detail; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketTicker.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketTicker { 17 | 18 | private String symbol; 19 | 20 | private BigDecimal open; 21 | 22 | private BigDecimal close; 23 | 24 | private BigDecimal low; 25 | 26 | private BigDecimal high; 27 | 28 | private BigDecimal amount; 29 | 30 | private Long count; 31 | 32 | private BigDecimal vol; 33 | 34 | private BigDecimal bid; 35 | 36 | private BigDecimal bidSize; 37 | 38 | private BigDecimal ask; 39 | 40 | private BigDecimal askSize; 41 | 42 | private BigDecimal lastPrice; 43 | 44 | private BigDecimal lastSize; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketTickerEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class MarketTickerEvent { 11 | private String ch; 12 | 13 | private Long ts; 14 | 15 | private MarketTicker ticker; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketTickerReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class MarketTickerReq { 11 | private String ch; 12 | 13 | private Long ts; 14 | 15 | private MarketTicker ticker; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketTrade.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketTrade { 17 | 18 | private String id; 19 | 20 | private Long tradeId; 21 | 22 | private BigDecimal price; 23 | 24 | private BigDecimal amount; 25 | 26 | private String direction; 27 | 28 | private Long ts; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketTradeEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketTradeEvent { 17 | 18 | private String ch; 19 | 20 | private Long ts; 21 | 22 | private List list; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MarketTradeReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MarketTradeReq { 17 | 18 | private String ch; 19 | 20 | private List list; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MbpIncrementalUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class MbpIncrementalUpdateEvent { 13 | 14 | private String action; 15 | 16 | private String topic; 17 | 18 | private Long ts; 19 | 20 | private Long prevSeqNum; 21 | 22 | private Long seqNum; 23 | 24 | private List bids; 25 | 26 | private List asks; 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/MbpRefreshUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class MbpRefreshUpdateEvent { 13 | 14 | private String topic; 15 | 16 | private Long ts; 17 | 18 | private Long seqNum; 19 | 20 | private List bids; 21 | 22 | private List asks; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/market/PriceLevel.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.market; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class PriceLevel { 17 | 18 | private BigDecimal price; 19 | 20 | private BigDecimal amount; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/ApiKeyInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class ApiKeyInfo { 11 | 12 | private String accessKey; 13 | 14 | private String note; 15 | 16 | private String permission; 17 | 18 | private String ipAddresses; 19 | 20 | private Integer validDays; 21 | 22 | private String status; 23 | 24 | private Long createTime; 25 | 26 | private Long updateTime; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/GetApiKeyListResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetApiKeyListResult { 13 | 14 | private List list; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/GetSubUserAccountListResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetSubUserAccountListResult { 13 | 14 | private Long uid; 15 | 16 | private String deductMode; 17 | 18 | private List list; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/GetSubUserDepositResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetSubUserDepositResult { 13 | 14 | private List list; 15 | 16 | private Long nextId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/GetSubUserListResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class GetSubUserListResult { 13 | 14 | private List userList; 15 | 16 | private Long nextId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserAccount.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserAccount { 11 | 12 | private Long accountId; 13 | 14 | private String subType; 15 | 16 | private String accountStatus; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserAccountInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserAccountInfo { 13 | 14 | private String accountType; 15 | 16 | private String activation; 17 | 18 | private Boolean transferrable; 19 | 20 | private List accountIds; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserApiKeyGenerationResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserApiKeyGenerationResult { 11 | 12 | private String note; 13 | 14 | private String accessKey; 15 | 16 | private String secretKey; 17 | 18 | private String permission; 19 | 20 | private String ipAddresses; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserApiKeyModificationResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserApiKeyModificationResult { 11 | 12 | private String note; 13 | 14 | private String permission; 15 | 16 | private String ipAddresses; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserCreationInfo.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserCreationInfo { 11 | 12 | private Long uid; 13 | 14 | private String userName; 15 | 16 | private String note; 17 | 18 | private String errCode; 19 | 20 | private String errMessage; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserDeposit.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserDeposit { 13 | 14 | private Long id; 15 | 16 | private String currency; 17 | 18 | private String txHash; 19 | 20 | private String chain; 21 | 22 | private BigDecimal amount; 23 | 24 | private String address; 25 | 26 | private String addressTag; 27 | 28 | private String state; 29 | 30 | private Long createTime; 31 | 32 | private Long updateTime; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserManagementResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserManagementResult { 11 | 12 | private Long subUid; 13 | 14 | private String userState; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserState.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserState { 11 | 12 | private Long uid; 13 | 14 | private String userState; 15 | 16 | private String subUserName; 17 | 18 | private String note; 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserTradableMarketResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserTradableMarketResult { 13 | 14 | private List list; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserTradableMarketState.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserTradableMarketState { 11 | 12 | private Long subUid; 13 | 14 | private String accountType; 15 | 16 | private String activation; 17 | 18 | private String errCode; 19 | 20 | private String errMessage; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserTransferabilityResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class SubUserTransferabilityResult { 13 | 14 | private List list; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/subuser/SubUserTransferabilityState.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.subuser; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class SubUserTransferabilityState { 11 | 12 | private Long subUid; 13 | 14 | private String accountType; 15 | 16 | private Boolean transferrable; 17 | 18 | private String errCode; 19 | 20 | private String errMessage; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/BatchCancelOpenOrdersResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class BatchCancelOpenOrdersResult { 11 | 12 | private Integer successCount; 13 | 14 | private Integer failedCount; 15 | 16 | private Long nextId; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/BatchCancelOrderResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class BatchCancelOrderResult { 13 | 14 | private List successList; 15 | 16 | private List failedList; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/BatchOrdersResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import com.alibaba.fastjson.annotation.JSONField; 4 | import lombok.*; 5 | 6 | @Data 7 | @Builder 8 | @AllArgsConstructor 9 | @NoArgsConstructor 10 | @ToString 11 | public class BatchOrdersResult { 12 | @JSONField(name = "order-id") 13 | private Long orderId; 14 | @JSONField(name = "client-order-id") 15 | private String clientOrderId; 16 | @JSONField(name = "err-code") 17 | private String errCode; 18 | @JSONField(name = "err-msg") 19 | private String errMsg; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/CancelFailedResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | import com.huobi.constant.enums.OrderStateEnum; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class CancelFailedResult { 17 | 18 | private Long orderId; 19 | 20 | private String errMsg; 21 | 22 | private String errCode; 23 | 24 | private Integer orderState; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/FeeRate.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | 12 | @Data 13 | @Builder 14 | @AllArgsConstructor 15 | @NoArgsConstructor 16 | @ToString 17 | public class FeeRate { 18 | 19 | private String symbol; 20 | 21 | private BigDecimal makerFeeRate; 22 | 23 | private BigDecimal takerFeeRate; 24 | 25 | private BigDecimal actualMakerRate; 26 | 27 | private BigDecimal actualTakerRate; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/MatchResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class MatchResult { 17 | 18 | private Long id; 19 | 20 | private Long orderId; 21 | 22 | private Long matchId; 23 | 24 | private String symbol; 25 | 26 | private String type; 27 | 28 | private String source; 29 | 30 | private BigDecimal price; 31 | 32 | private BigDecimal filledAmount; 33 | 34 | private BigDecimal filledFees; 35 | 36 | private String role; 37 | 38 | private BigDecimal filledPoints; 39 | 40 | private String feeDeductCurrency; 41 | 42 | private long createdAt; 43 | 44 | private String feeCurrency; 45 | 46 | private long tradeId; 47 | 48 | private String feeDeductState; 49 | 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/OrderDetailReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class OrderDetailReq { 15 | 16 | private String topic; 17 | 18 | private Long ts; 19 | 20 | private Order order; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/OrderListReq.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class OrderListReq { 17 | 18 | private String topic; 19 | 20 | private Long ts; 21 | 22 | private List orderList; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/OrderResp.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class OrderResp { 11 | private Long orderId; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/OrderUpdate.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | @Deprecated 17 | public class OrderUpdate { 18 | 19 | 20 | private Long orderId; 21 | 22 | private String clientOrderId; 23 | 24 | private Long matchId; 25 | 26 | private String symbol; 27 | 28 | private BigDecimal price; 29 | 30 | private BigDecimal unfilledAmount; 31 | 32 | private BigDecimal filledAmount; 33 | 34 | private BigDecimal filledCashAmount; 35 | 36 | private String orderType; 37 | 38 | private String orderState; 39 | 40 | private String role; 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/OrderUpdateEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class OrderUpdateEvent { 15 | 16 | private String topic; 17 | 18 | private Long ts; 19 | 20 | private OrderUpdate update; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/OrderUpdateV2Event.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class OrderUpdateV2Event { 11 | 12 | private String action; 13 | 14 | private String topic; 15 | 16 | private OrderUpdateV2 orderUpdate; 17 | 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/trade/TradeClearingEvent.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.trade; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class TradeClearingEvent { 11 | private String action; 12 | 13 | private String topic; 14 | 15 | private TradeClearing tradeClearing; 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/DeductModeResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class DeductModeResult { 11 | private String subUid; 12 | private String deductMode; 13 | private String errCode; 14 | private String errMessage; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/DepositAddress.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class DepositAddress { 15 | 16 | private String currency; 17 | 18 | private String address; 19 | 20 | private String addressTag; 21 | 22 | private String chain; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/DepositWithdraw.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import java.math.BigDecimal; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class DepositWithdraw { 17 | 18 | private Long id; 19 | 20 | private String type; 21 | 22 | private String currency; 23 | 24 | private String txHash; 25 | 26 | private String chain; 27 | 28 | private BigDecimal amount; 29 | 30 | private String address; 31 | 32 | private String addressTag; 33 | 34 | private BigDecimal fee; 35 | 36 | private String state; 37 | 38 | private String errorCode; 39 | 40 | private String errorMessage; 41 | 42 | private Long createdAt; 43 | 44 | private Long updatedAt; 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/WithdrawAddress.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import lombok.*; 4 | 5 | @Data 6 | @Builder 7 | @AllArgsConstructor 8 | @NoArgsConstructor 9 | @ToString 10 | public class WithdrawAddress { 11 | 12 | private String currency; 13 | 14 | private String chain; 15 | 16 | private String note; 17 | 18 | private String addressTag; 19 | 20 | private String address; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/WithdrawAddressResult.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import java.util.List; 4 | 5 | import lombok.*; 6 | 7 | @Data 8 | @Builder 9 | @AllArgsConstructor 10 | @NoArgsConstructor 11 | @ToString 12 | public class WithdrawAddressResult { 13 | 14 | private Long nextId; 15 | 16 | private List withdrawAddressList; 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/WithdrawChainQuota.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | import lombok.ToString; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | @ToString 14 | public class WithdrawChainQuota { 15 | 16 | private String chain; 17 | 18 | private String maxWithdrawAmt; 19 | 20 | private String withdrawQuotaPerDay; 21 | 22 | private String remainWithdrawQuotaPerDay; 23 | 24 | private String withdrawQuotaPerYear; 25 | 26 | private String remainWithdrawQuotaPerYear; 27 | 28 | private String withdrawQuotaTotal; 29 | 30 | private String remainWithdrawQuotaTotal; 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/model/wallet/WithdrawQuota.java: -------------------------------------------------------------------------------- 1 | package com.huobi.model.wallet; 2 | 3 | import java.util.List; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | import lombok.ToString; 10 | 11 | @Data 12 | @Builder 13 | @AllArgsConstructor 14 | @NoArgsConstructor 15 | @ToString 16 | public class WithdrawQuota { 17 | 18 | private String currency; 19 | 20 | private List chains; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/HuobiModelParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | public interface HuobiModelParser { 9 | 10 | 11 | T parse(JSONObject json); 12 | 13 | T parse(JSONArray json); 14 | 15 | List parseArray(JSONArray jsonArray); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountAssetValuationResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountAssetValuationResult; 9 | 10 | import com.huobi.service.huobi.parser.HuobiModelParser; 11 | 12 | public class AccountAssetValuationResultParser implements HuobiModelParser { 13 | 14 | @Override 15 | public AccountAssetValuationResult parse(JSONObject json) { 16 | return json.toJavaObject(AccountAssetValuationResult.class); 17 | } 18 | 19 | @Override 20 | public AccountAssetValuationResult parse(JSONArray json) { 21 | return null; 22 | } 23 | 24 | @Override 25 | public List parseArray(JSONArray jsonArray) { 26 | return null; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountChangeEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountChangeEvent; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AccountChangeEventParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AccountChangeEvent parse(JSONObject json) { 15 | 16 | JSONObject data = json.getJSONObject("data"); 17 | 18 | 19 | return AccountChangeEvent.builder() 20 | .event(data.getString("event")) 21 | .list(new AccountChangeParser().parseArray(data.getJSONArray("list"))) 22 | .build(); 23 | } 24 | 25 | @Override 26 | public AccountChangeEvent parse(JSONArray json) { 27 | return null; 28 | } 29 | 30 | 31 | @Override 32 | public List parseArray(JSONArray jsonArray) { 33 | return null; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountFuturesTransferResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountFuturesTransferResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AccountFuturesTransferResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AccountFuturesTransferResult parse(JSONObject json) { 15 | return AccountFuturesTransferResult.builder().data(json.getLong("data")).build(); 16 | } 17 | 18 | @Override 19 | public AccountFuturesTransferResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountLedgerParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountLedger; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AccountLedgerParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AccountLedger parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public AccountLedger parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(AccountLedger.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountReqParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountReq; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | import com.huobi.service.huobi.utils.DataUtils; 11 | 12 | public class AccountReqParser implements HuobiModelParser { 13 | 14 | @Override 15 | public AccountReq parse(JSONObject json) { 16 | String dataKey = DataUtils.getDataKey(json); 17 | return AccountReq.builder() 18 | .topic(json.getString("topic")) 19 | .ts(json.getLong("ts")) 20 | .cid(json.getString("cid")) 21 | .balanceList(new AccountBalanceParser().parseArray(json.getJSONArray(dataKey))) 22 | .build(); 23 | } 24 | 25 | @Override 26 | public AccountReq parse(JSONArray json) { 27 | return null; 28 | } 29 | 30 | @Override 31 | public List parseArray(JSONArray jsonArray) { 32 | return null; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountTransferResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountTransferResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AccountTransferResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AccountTransferResult parse(JSONObject json) { 15 | return AccountTransferResult.builder() 16 | .transactId(json.getLong("transact-id")) 17 | .transactTime(json.getLong("transact-time")) 18 | .build(); 19 | } 20 | 21 | @Override 22 | public AccountTransferResult parse(JSONArray json) { 23 | return null; 24 | } 25 | 26 | @Override 27 | public List parseArray(JSONArray jsonArray) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountUpdateEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountUpdateEvent; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AccountUpdateEventParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AccountUpdateEvent parse(JSONObject json) { 15 | 16 | JSONObject data = json.getJSONObject("data"); 17 | return AccountUpdateEvent.builder() 18 | .action(json.getString("action")) 19 | .topic(json.getString("ch")) 20 | .accountUpdate(new AccountUpdateParser().parse(data)) 21 | .build(); 22 | } 23 | 24 | @Override 25 | public AccountUpdateEvent parse(JSONArray json) { 26 | return null; 27 | } 28 | 29 | 30 | @Override 31 | public List parseArray(JSONArray jsonArray) { 32 | return null; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/AccountUpdateParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.AccountUpdate; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AccountUpdateParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AccountUpdate parse(JSONObject json) { 15 | AccountUpdate update = json.toJavaObject(AccountUpdate.class); 16 | return update; 17 | } 18 | 19 | @Override 20 | public AccountUpdate parse(JSONArray json) { 21 | return null; 22 | } 23 | 24 | @Override 25 | public List parseArray(JSONArray jsonArray) { 26 | return null; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/GeneralRepayLoanRecordParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.crossmargin.GeneralRepayLoanRecord; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GeneralRepayLoanRecordParser implements HuobiModelParser { 12 | @Override 13 | public GeneralRepayLoanRecord parse(JSONObject json) { 14 | return json.toJavaObject(GeneralRepayLoanRecord.class); 15 | } 16 | 17 | @Override 18 | public GeneralRepayLoanRecord parse(JSONArray json) { 19 | return null; 20 | } 21 | 22 | @Override 23 | public List parseArray(JSONArray jsonArray) { 24 | return jsonArray.toJavaList(GeneralRepayLoanRecord.class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/GeneralRepayLoanResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.crossmargin.GeneralRepayLoanResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GeneralRepayLoanResultParser implements HuobiModelParser { 12 | @Override 13 | public GeneralRepayLoanResult parse(JSONObject json) { 14 | return json.toJavaObject(GeneralRepayLoanResult.class); 15 | } 16 | 17 | @Override 18 | public GeneralRepayLoanResult parse(JSONArray json) { 19 | return null; 20 | } 21 | 22 | @Override 23 | public List parseArray(JSONArray jsonArray) { 24 | return jsonArray.toJavaList(GeneralRepayLoanResult.class); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/OverviewInfoParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.account.OverviewInfo; 6 | import com.huobi.model.account.UserInfo; 7 | import com.huobi.service.huobi.parser.HuobiModelParser; 8 | 9 | import java.util.List; 10 | 11 | public class OverviewInfoParser implements HuobiModelParser { 12 | @Override 13 | public OverviewInfo parse(JSONObject json) { 14 | return json.toJavaObject(OverviewInfo.class); 15 | } 16 | 17 | @Override 18 | public OverviewInfo parse(JSONArray json) { 19 | return null; 20 | } 21 | 22 | @Override 23 | public List parseArray(JSONArray jsonArray) { 24 | return null; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/PointParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.Point; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class PointParser implements HuobiModelParser { 12 | 13 | @Override 14 | public Point parse(JSONObject json) { 15 | return json.toJavaObject(Point.class); 16 | } 17 | 18 | @Override 19 | public Point parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/PointTransferResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.account.PointTransferResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class PointTransferResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public PointTransferResult parse(JSONObject json) { 15 | return json.toJavaObject(PointTransferResult.class); 16 | } 17 | 18 | @Override 19 | public PointTransferResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/account/UserInfoParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.account.AccountBalance; 6 | import com.huobi.model.account.UserInfo; 7 | import com.huobi.service.huobi.parser.HuobiModelParser; 8 | 9 | import java.util.List; 10 | 11 | public class UserInfoParser implements HuobiModelParser { 12 | 13 | @Override 14 | public UserInfo parse(JSONObject json) { 15 | return json.toJavaObject(UserInfo.class); 16 | } 17 | 18 | @Override 19 | public UserInfo parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/algo/AlgoOrderParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.algo; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.algo.AlgoOrder; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class AlgoOrderParser implements HuobiModelParser { 12 | 13 | @Override 14 | public AlgoOrder parse(JSONObject json) { 15 | return json.toJavaObject(AlgoOrder.class); 16 | } 17 | 18 | @Override 19 | public AlgoOrder parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(AlgoOrder.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/algo/CancelAlgoAllOrderResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.algo; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.algo.CancelAlgoAllOrderResult; 6 | import com.huobi.service.huobi.parser.HuobiModelParser; 7 | 8 | import java.util.List; 9 | 10 | public class CancelAlgoAllOrderResultParser implements HuobiModelParser { 11 | @Override 12 | public CancelAlgoAllOrderResult parse(JSONObject json) { 13 | return json.toJavaObject(CancelAlgoAllOrderResult.class); 14 | } 15 | 16 | @Override 17 | public CancelAlgoAllOrderResult parse(JSONArray json) { 18 | return null; 19 | } 20 | 21 | @Override 22 | public List parseArray(JSONArray jsonArray) { 23 | return null; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/algo/CancelAlgoOrderResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.algo; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.algo.CancelAlgoOrderResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class CancelAlgoOrderResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public CancelAlgoOrderResult parse(JSONObject json) { 15 | return json.toJavaObject(CancelAlgoOrderResult.class); 16 | } 17 | 18 | @Override 19 | public CancelAlgoOrderResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/algo/CreateAlgoOrderResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.algo; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.algo.CreateAlgoOrderResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class CreateAlgoOrderResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public CreateAlgoOrderResult parse(JSONObject json) { 15 | return CreateAlgoOrderResult.builder() 16 | .clientOrderId(json.getString("clientOrderId")) 17 | .build(); 18 | } 19 | 20 | @Override 21 | public CreateAlgoOrderResult parse(JSONArray json) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public List parseArray(JSONArray jsonArray) { 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/algo/GetHistoryAlgoOrdersResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.algo; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.algo.GetHistoryAlgoOrdersResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GetHistoryAlgoOrdersResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public GetHistoryAlgoOrdersResult parse(JSONObject json) { 15 | return GetHistoryAlgoOrdersResult.builder() 16 | .list(new AlgoOrderParser().parseArray(json.getJSONArray("data"))) 17 | .nextId(json.getLong("nextId")) 18 | .build(); 19 | } 20 | 21 | @Override 22 | public GetHistoryAlgoOrdersResult parse(JSONArray json) { 23 | return null; 24 | } 25 | 26 | @Override 27 | public List parseArray(JSONArray jsonArray) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/algo/GetOpenAlgoOrdersResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.algo; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.algo.GetOpenAlgoOrdersResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GetOpenAlgoOrdersResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public GetOpenAlgoOrdersResult parse(JSONObject json) { 15 | return GetOpenAlgoOrdersResult.builder() 16 | .list(new AlgoOrderParser().parseArray(json.getJSONArray("data"))) 17 | .nextId(json.getLong("nextId")) 18 | .build(); 19 | } 20 | 21 | @Override 22 | public GetOpenAlgoOrdersResult parse(JSONArray json) { 23 | return null; 24 | } 25 | 26 | @Override 27 | public List parseArray(JSONArray jsonArray) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/generic/CurrencyChainParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.generic; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.generic.CurrencyChain; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class CurrencyChainParser implements HuobiModelParser { 12 | 13 | @Override 14 | public CurrencyChain parse(JSONObject json) { 15 | return json.toJavaObject(CurrencyChain.class); 16 | } 17 | 18 | @Override 19 | public CurrencyChain parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(CurrencyChain.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/generic/CurrencyParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.generic; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.generic.Currency; 6 | 7 | import com.huobi.service.huobi.parser.HuobiModelParser; 8 | 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | public class CurrencyParser implements HuobiModelParser { 13 | @Override 14 | public Currency parse(JSONObject json) { 15 | return json.toJavaObject(Currency.class); 16 | } 17 | 18 | @Override 19 | public Currency parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | if (jsonArray == null || jsonArray.size() <= 0) { 26 | return new ArrayList<>(); 27 | } 28 | 29 | List list = new ArrayList<>(); 30 | for (int i = 0; i < jsonArray.size(); i++) { 31 | list.add(parse(jsonArray.getJSONObject(i))); 32 | } 33 | return list; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/generic/MarketStatusParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.generic; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.generic.MarketStatus; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class MarketStatusParser implements HuobiModelParser { 12 | 13 | @Override 14 | public MarketStatus parse(JSONObject json) { 15 | return json.toJavaObject(MarketStatus.class); 16 | } 17 | 18 | @Override 19 | public MarketStatus parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/generic/SymbolParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.generic; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.alibaba.fastjson.JSONArray; 7 | import com.alibaba.fastjson.JSONObject; 8 | 9 | import com.huobi.model.account.Point; 10 | import com.huobi.model.generic.Symbol; 11 | import com.huobi.service.huobi.parser.HuobiModelParser; 12 | 13 | public class SymbolParser implements HuobiModelParser { 14 | 15 | @Override 16 | public Symbol parse(JSONObject json) { 17 | return json.toJavaObject(Symbol.class); 18 | } 19 | 20 | @Override 21 | public Symbol parse(JSONArray json) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public List parseArray(JSONArray jsonArray) { 27 | if (jsonArray == null || jsonArray.size() <= 0) { 28 | return new ArrayList<>(); 29 | } 30 | 31 | List list = new ArrayList<>(); 32 | for (int i = 0; i < jsonArray.size(); i++) { 33 | list.add(parse(jsonArray.getJSONObject(i))); 34 | } 35 | 36 | return list; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/CandlestickEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.CandlestickEvent; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | import com.huobi.service.huobi.utils.DataUtils; 11 | 12 | public class CandlestickEventParser implements HuobiModelParser { 13 | 14 | @Override 15 | public CandlestickEvent parse(JSONObject json) { 16 | 17 | String dataKey = DataUtils.getDataKey(json); 18 | 19 | return CandlestickEvent.builder() 20 | .ch(json.getString("ch")) 21 | .ts(json.getLong("ts")) 22 | .candlestick(new CandlestickParser().parse(json.getJSONObject(dataKey))) 23 | .build(); 24 | } 25 | 26 | @Override 27 | public CandlestickEvent parse(JSONArray json) { 28 | return null; 29 | } 30 | 31 | @Override 32 | public List parseArray(JSONArray jsonArray) { 33 | return null; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/CandlestickParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.Candlestick; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class CandlestickParser implements HuobiModelParser { 12 | 13 | @Override 14 | public Candlestick parse(JSONObject json) { 15 | return json.toJavaObject(Candlestick.class); 16 | } 17 | 18 | @Override 19 | public Candlestick parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(Candlestick.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/CandlestickReqParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.CandlestickReq; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | import com.huobi.service.huobi.utils.DataUtils; 11 | 12 | public class CandlestickReqParser implements HuobiModelParser { 13 | 14 | @Override 15 | public CandlestickReq parse(JSONObject json) { 16 | 17 | String dataKey = DataUtils.getDataKey(json); 18 | 19 | return CandlestickReq.builder() 20 | .ch(json.getString("ch")) 21 | .ts(json.getLong("ts")) 22 | .candlestickList(new CandlestickParser().parseArray(json.getJSONArray(dataKey))) 23 | .build(); 24 | } 25 | 26 | @Override 27 | public CandlestickReq parse(JSONArray json) { 28 | return null; 29 | } 30 | 31 | @Override 32 | public List parseArray(JSONArray jsonArray) { 33 | return null; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketBBOEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketBBOEvent; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | import com.huobi.service.huobi.utils.DataUtils; 11 | 12 | public class MarketBBOEventParser implements HuobiModelParser { 13 | 14 | @Override 15 | public MarketBBOEvent parse(JSONObject json) { 16 | String dataKey = DataUtils.getDataKey(json); 17 | 18 | return MarketBBOEvent.builder() 19 | .ch(json.getString("ch")) 20 | .ts(json.getLong("ts")) 21 | .bbo(new MarketBBOParser().parse(json.getJSONObject(dataKey))) 22 | .build(); 23 | } 24 | 25 | @Override 26 | public MarketBBOEvent parse(JSONArray json) { 27 | return null; 28 | } 29 | 30 | @Override 31 | public List parseArray(JSONArray jsonArray) { 32 | return null; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketBBOParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketBBO; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class MarketBBOParser implements HuobiModelParser { 12 | 13 | @Override 14 | public MarketBBO parse(JSONObject json) { 15 | return json.toJavaObject(MarketBBO.class); 16 | } 17 | 18 | @Override 19 | public MarketBBO parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketDepthEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketDepthEvent; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | import com.huobi.service.huobi.utils.DataUtils; 11 | 12 | public class MarketDepthEventParser implements HuobiModelParser { 13 | 14 | @Override 15 | public MarketDepthEvent parse(JSONObject json) { 16 | String dataKey = DataUtils.getDataKey(json); 17 | return MarketDepthEvent.builder() 18 | .ch(json.getString("ch")) 19 | .ts(json.getLong("ts")) 20 | .depth(new MarketDepthParser().parse(json.getJSONObject(dataKey))) 21 | .build(); 22 | } 23 | 24 | @Override 25 | public MarketDepthEvent parse(JSONArray json) { 26 | return null; 27 | } 28 | 29 | @Override 30 | public List parseArray(JSONArray jsonArray) { 31 | return null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketDepthParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketDepth; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class MarketDepthParser implements HuobiModelParser { 12 | 13 | @Override 14 | public MarketDepth parse(JSONObject json) { 15 | return MarketDepth.builder() 16 | .version(json.getLong("version")) 17 | .ts(json.getLong("ts")) 18 | .bids(new PriceLevelParser().parseArray(json.getJSONArray("bids"))) 19 | .asks(new PriceLevelParser().parseArray(json.getJSONArray("asks"))) 20 | .build(); 21 | } 22 | 23 | @Override 24 | public MarketDepth parse(JSONArray json) { 25 | return null; 26 | } 27 | 28 | @Override 29 | public List parseArray(JSONArray jsonArray) { 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketDepthReqParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketDepthReq; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | import com.huobi.service.huobi.utils.DataUtils; 11 | 12 | public class MarketDepthReqParser implements HuobiModelParser { 13 | 14 | @Override 15 | public MarketDepthReq parse(JSONObject json) { 16 | String dataKey = DataUtils.getDataKey(json); 17 | return MarketDepthReq.builder() 18 | .ch(json.getString("ch")) 19 | .ts(json.getLong("ts")) 20 | .depth(new MarketDepthParser().parse(json.getJSONObject(dataKey))) 21 | .build(); 22 | } 23 | 24 | @Override 25 | public MarketDepthReq parse(JSONArray json) { 26 | return null; 27 | } 28 | 29 | @Override 30 | public List parseArray(JSONArray jsonArray) { 31 | return null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketDetailMergedParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.math.BigDecimal; 4 | import java.util.List; 5 | 6 | import com.alibaba.fastjson.JSONArray; 7 | import com.alibaba.fastjson.JSONObject; 8 | 9 | import com.huobi.model.market.MarketDetailMerged; 10 | import com.huobi.service.huobi.parser.HuobiModelParser; 11 | 12 | public class MarketDetailMergedParser implements HuobiModelParser { 13 | 14 | @Override 15 | public MarketDetailMerged parse(JSONObject json) { 16 | 17 | 18 | MarketDetailMerged detailMerged = json.toJavaObject(MarketDetailMerged.class); 19 | detailMerged.setAsk(new PriceLevelParser().parse(json.getJSONArray("ask"))); 20 | detailMerged.setBid(new PriceLevelParser().parse(json.getJSONArray("bid"))); 21 | return detailMerged; 22 | 23 | } 24 | 25 | @Override 26 | public MarketDetailMerged parse(JSONArray json) { 27 | return null; 28 | } 29 | 30 | @Override 31 | public List parseArray(JSONArray jsonArray) { 32 | return null; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketDetailParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketDetail; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class MarketDetailParser implements HuobiModelParser { 12 | 13 | @Override 14 | public MarketDetail parse(JSONObject json) { 15 | return json.toJavaObject(MarketDetail.class); 16 | } 17 | 18 | @Override 19 | public MarketDetail parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketTickerParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.math.BigDecimal; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | import com.alibaba.fastjson.JSONArray; 8 | import com.alibaba.fastjson.JSONObject; 9 | 10 | import com.huobi.model.market.MarketTicker; 11 | import com.huobi.service.huobi.parser.HuobiModelParser; 12 | 13 | public class MarketTickerParser implements HuobiModelParser { 14 | 15 | @Override 16 | public MarketTicker parse(JSONObject json) { 17 | return json.toJavaObject(MarketTicker.class); 18 | } 19 | 20 | @Override 21 | public MarketTicker parse(JSONArray json) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public List parseArray(JSONArray jsonArray) { 27 | if (jsonArray == null || jsonArray.size() <= 0) { 28 | return new ArrayList<>(); 29 | } 30 | 31 | return jsonArray.toJavaList(MarketTicker.class); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/market/MarketTradeReqParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.market; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.market.MarketTradeEvent; 9 | import com.huobi.model.market.MarketTradeReq; 10 | import com.huobi.service.huobi.parser.HuobiModelParser; 11 | import com.huobi.service.huobi.utils.DataUtils; 12 | 13 | public class MarketTradeReqParser implements HuobiModelParser { 14 | 15 | @Override 16 | public MarketTradeReq parse(JSONObject json) { 17 | String dataKey = DataUtils.getDataKey(json); 18 | 19 | JSONArray dataArray = json.getJSONArray(dataKey); 20 | 21 | return MarketTradeReq.builder() 22 | .ch(json.getString("req")) 23 | .list(new MarketTradeParser().parseArray(dataArray)) 24 | .build(); 25 | } 26 | 27 | @Override 28 | public MarketTradeReq parse(JSONArray json) { 29 | return null; 30 | } 31 | 32 | @Override 33 | public List parseArray(JSONArray jsonArray) { 34 | return null; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/ApiKeyInfoParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.ApiKeyInfo; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class ApiKeyInfoParser implements HuobiModelParser { 12 | 13 | @Override 14 | public ApiKeyInfo parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public ApiKeyInfo parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(ApiKeyInfo.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/DeductModeResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.wallet.DeductModeResult; 6 | import com.huobi.service.huobi.parser.HuobiModelParser; 7 | 8 | import java.util.List; 9 | 10 | public class DeductModeResultParser implements HuobiModelParser { 11 | @Override 12 | public DeductModeResult parse(JSONObject json) { 13 | return null; 14 | } 15 | 16 | @Override 17 | public DeductModeResult parse(JSONArray json) { 18 | return null; 19 | } 20 | 21 | @Override 22 | public List parseArray(JSONArray jsonArray) { 23 | return jsonArray.toJavaList(DeductModeResult.class); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/GetApiKeyListResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.GetApiKeyListResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GetApiKeyListResultParser implements HuobiModelParser { 12 | 13 | 14 | @Override 15 | public GetApiKeyListResult parse(JSONObject json) { 16 | return GetApiKeyListResult.builder() 17 | .list(new ApiKeyInfoParser().parseArray(json.getJSONArray("data"))) 18 | .build(); 19 | } 20 | 21 | @Override 22 | public GetApiKeyListResult parse(JSONArray json) { 23 | return null; 24 | } 25 | 26 | @Override 27 | public List parseArray(JSONArray jsonArray) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/GetSubUserAccountListResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.GetSubUserAccountListResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GetSubUserAccountListResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public GetSubUserAccountListResult parse(JSONObject json) { 15 | return json.toJavaObject(GetSubUserAccountListResult.class); 16 | } 17 | 18 | @Override 19 | public GetSubUserAccountListResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/GetSubUserDepositResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.GetSubUserDepositResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GetSubUserDepositResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public GetSubUserDepositResult parse(JSONObject json) { 15 | return GetSubUserDepositResult.builder() 16 | .nextId(json.getLong("nextId")) 17 | .list(new SubUserDepositParser().parseArray(json.getJSONArray("data"))) 18 | .build(); 19 | } 20 | 21 | @Override 22 | public GetSubUserDepositResult parse(JSONArray json) { 23 | return null; 24 | } 25 | 26 | @Override 27 | public List parseArray(JSONArray jsonArray) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/GetSubUserListResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.GetSubUserListResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class GetSubUserListResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public GetSubUserListResult parse(JSONObject json) { 15 | return GetSubUserListResult.builder() 16 | .userList(new SubUserStateParser().parseArray(json.getJSONArray("data"))) 17 | .nextId(json.getLong("nextId")) 18 | .build(); 19 | } 20 | 21 | @Override 22 | public GetSubUserListResult parse(JSONArray json) { 23 | return null; 24 | } 25 | 26 | @Override 27 | public List parseArray(JSONArray jsonArray) { 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserApiKeyGenerationResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserApiKeyGenerationResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserApiKeyGenerationResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserApiKeyGenerationResult parse(JSONObject json) { 15 | return json.toJavaObject(SubUserApiKeyGenerationResult.class); 16 | } 17 | 18 | @Override 19 | public SubUserApiKeyGenerationResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserApiKeyModificationResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserApiKeyModificationResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserApiKeyModificationResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserApiKeyModificationResult parse(JSONObject json) { 15 | return json.toJavaObject(SubUserApiKeyModificationResult.class); 16 | } 17 | 18 | @Override 19 | public SubUserApiKeyModificationResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserCreationInfoParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserCreationInfo; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserCreationInfoParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserCreationInfo parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public SubUserCreationInfo parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(SubUserCreationInfo.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserDepositParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserDeposit; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserDepositParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserDeposit parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public SubUserDeposit parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(SubUserDeposit.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserManagementResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserManagementResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserManagementResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserManagementResult parse(JSONObject json) { 15 | return json.toJavaObject(SubUserManagementResult.class); 16 | } 17 | 18 | @Override 19 | public SubUserManagementResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserStateParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.alibaba.fastjson.JSONArray; 7 | import com.alibaba.fastjson.JSONObject; 8 | 9 | import com.huobi.model.subuser.SubUserState; 10 | import com.huobi.service.huobi.parser.HuobiModelParser; 11 | 12 | public class SubUserStateParser implements HuobiModelParser { 13 | 14 | @Override 15 | public SubUserState parse(JSONObject json) { 16 | return json.toJavaObject(SubUserState.class); 17 | } 18 | 19 | @Override 20 | public SubUserState parse(JSONArray json) { 21 | return null; 22 | } 23 | 24 | @Override 25 | public List parseArray(JSONArray jsonArray) { 26 | if (jsonArray == null || jsonArray.isEmpty()) { 27 | return new ArrayList<>(); 28 | } 29 | return jsonArray.toJavaList(SubUserState.class); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserTradableMarketResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserTradableMarketResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserTradableMarketResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserTradableMarketResult parse(JSONObject json) { 15 | return SubUserTradableMarketResult.builder() 16 | .list(new SubUserTradableMarketStateParser().parseArray(json.getJSONArray("data"))) 17 | .build(); 18 | } 19 | 20 | @Override 21 | public SubUserTradableMarketResult parse(JSONArray json) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public List parseArray(JSONArray jsonArray) { 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserTradableMarketStateParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserTradableMarketState; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserTradableMarketStateParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserTradableMarketState parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public SubUserTradableMarketState parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(SubUserTradableMarketState.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserTransferabilityResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserTransferabilityResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserTransferabilityResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserTransferabilityResult parse(JSONObject json) { 15 | return SubUserTransferabilityResult.builder() 16 | .list(new SubUserTransferabilityStateParser().parseArray(json.getJSONArray("data"))) 17 | .build(); 18 | } 19 | 20 | @Override 21 | public SubUserTransferabilityResult parse(JSONArray json) { 22 | return null; 23 | } 24 | 25 | @Override 26 | public List parseArray(JSONArray jsonArray) { 27 | return null; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/subuser/SubUserTransferabilityStateParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.subuser; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.subuser.SubUserTransferabilityState; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class SubUserTransferabilityStateParser implements HuobiModelParser { 12 | 13 | @Override 14 | public SubUserTransferabilityState parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public SubUserTransferabilityState parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(SubUserTransferabilityState.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/BatchCancelOpenOrdersResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.BatchCancelOpenOrdersResult; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class BatchCancelOpenOrdersResultParser implements HuobiModelParser { 12 | 13 | @Override 14 | public BatchCancelOpenOrdersResult parse(JSONObject json) { 15 | return BatchCancelOpenOrdersResult.builder() 16 | .successCount(json.getInteger("success-count")) 17 | .failedCount(json.getInteger("failed-count")) 18 | .nextId(json.getLong("next-id")) 19 | .build(); 20 | } 21 | 22 | @Override 23 | public BatchCancelOpenOrdersResult parse(JSONArray json) { 24 | return null; 25 | } 26 | 27 | @Override 28 | public List parseArray(JSONArray jsonArray) { 29 | return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/BatchOrdersResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.trade.BatchOrdersResult; 6 | import com.huobi.model.trade.FeeRate; 7 | import com.huobi.service.huobi.parser.HuobiModelParser; 8 | 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | public class BatchOrdersResultParser implements HuobiModelParser { 13 | @Override 14 | public BatchOrdersResult parse(JSONObject json) { 15 | return json.toJavaObject(BatchOrdersResult.class); 16 | } 17 | 18 | @Override 19 | public BatchOrdersResult parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | 26 | if (jsonArray == null || jsonArray.size() <= 0) { 27 | return new ArrayList<>(); 28 | } 29 | 30 | return jsonArray.toJavaList(BatchOrdersResult.class); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/FeeRateParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import com.alibaba.fastjson.JSONArray; 7 | import com.alibaba.fastjson.JSONObject; 8 | 9 | import com.huobi.model.trade.FeeRate; 10 | import com.huobi.service.huobi.parser.HuobiModelParser; 11 | 12 | public class FeeRateParser implements HuobiModelParser { 13 | 14 | @Override 15 | public FeeRate parse(JSONObject json) { 16 | return json.toJavaObject(FeeRate.class); 17 | } 18 | 19 | @Override 20 | public FeeRate parse(JSONArray json) { 21 | return null; 22 | } 23 | 24 | @Override 25 | public List parseArray(JSONArray jsonArray) { 26 | 27 | if (jsonArray == null || jsonArray.size() <= 0) { 28 | return new ArrayList<>(); 29 | } 30 | 31 | return jsonArray.toJavaList(FeeRate.class); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/OrderDetailReqParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.OrderDetailReq; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class OrderDetailReqParser implements HuobiModelParser { 12 | 13 | @Override 14 | public OrderDetailReq parse(JSONObject json) { 15 | return OrderDetailReq.builder() 16 | .topic(json.getString("topic")) 17 | .ts(json.getLong("ts")) 18 | .order(new OrderParser().parse(json.getJSONObject("data"))) 19 | .build(); 20 | } 21 | 22 | @Override 23 | public OrderDetailReq parse(JSONArray json) { 24 | return null; 25 | } 26 | 27 | @Override 28 | public List parseArray(JSONArray jsonArray) { 29 | return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/OrderListReqParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.OrderListReq; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class OrderListReqParser implements HuobiModelParser { 12 | 13 | @Override 14 | public OrderListReq parse(JSONObject json) { 15 | return OrderListReq.builder() 16 | .topic(json.getString("topic")) 17 | .ts(json.getLong("ts")) 18 | .orderList(new OrderParser().parseArray(json.getJSONArray("data"))) 19 | .build(); 20 | } 21 | 22 | @Override 23 | public OrderListReq parse(JSONArray json) { 24 | return null; 25 | } 26 | 27 | @Override 28 | public List parseArray(JSONArray jsonArray) { 29 | return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/OrderRespParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.trade.OrderResp; 6 | import com.huobi.service.huobi.parser.HuobiModelParser; 7 | 8 | import java.util.List; 9 | 10 | public class OrderRespParser implements HuobiModelParser { 11 | @Override 12 | public OrderResp parse(JSONObject json) { 13 | return json.toJavaObject(OrderResp.class); 14 | } 15 | 16 | @Override 17 | public OrderResp parse(JSONArray json) { 18 | return null; 19 | } 20 | 21 | @Override 22 | public List parseArray(JSONArray jsonArray) { 23 | return null; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/OrderUpdateEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.OrderUpdateEvent; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | @Deprecated 12 | public class OrderUpdateEventParser implements HuobiModelParser { 13 | 14 | @Override 15 | public OrderUpdateEvent parse(JSONObject json) { 16 | return OrderUpdateEvent.builder() 17 | .topic(json.getString("topic")) 18 | .ts(json.getLong("ts")) 19 | .update(new OrderUpdateParser().parse(json.getJSONObject("data"))) 20 | .build(); 21 | } 22 | 23 | @Override 24 | public OrderUpdateEvent parse(JSONArray json) { 25 | return null; 26 | } 27 | 28 | @Override 29 | public List parseArray(JSONArray jsonArray) { 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/OrderUpdateEventV2Parser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.OrderUpdateV2Event; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class OrderUpdateEventV2Parser implements HuobiModelParser { 12 | 13 | @Override 14 | public OrderUpdateV2Event parse(JSONObject json) { 15 | return OrderUpdateV2Event.builder() 16 | .action(json.getString("action")) 17 | .topic(json.getString("ch")) 18 | .orderUpdate(new OrderUpdateV2Parser().parse(json.getJSONObject("data"))) 19 | .build(); 20 | } 21 | 22 | @Override 23 | public OrderUpdateV2Event parse(JSONArray json) { 24 | return null; 25 | } 26 | 27 | @Override 28 | public List parseArray(JSONArray jsonArray) { 29 | return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/OrderUpdateV2Parser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.OrderUpdateV2; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class OrderUpdateV2Parser implements HuobiModelParser { 12 | 13 | @Override 14 | public OrderUpdateV2 parse(JSONObject json) { 15 | return json.toJavaObject(OrderUpdateV2.class); 16 | } 17 | 18 | @Override 19 | public OrderUpdateV2 parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/TradeClearingEventParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.OrderUpdateV2Event; 9 | import com.huobi.model.trade.TradeClearingEvent; 10 | import com.huobi.service.huobi.parser.HuobiModelParser; 11 | 12 | public class TradeClearingEventParser implements HuobiModelParser { 13 | 14 | @Override 15 | public TradeClearingEvent parse(JSONObject json) { 16 | return TradeClearingEvent.builder() 17 | .action(json.getString("action")) 18 | .topic(json.getString("ch")) 19 | .tradeClearing(new TradeClearingParser().parse(json.getJSONObject("data"))) 20 | .build(); 21 | } 22 | 23 | @Override 24 | public TradeClearingEvent parse(JSONArray json) { 25 | return null; 26 | } 27 | 28 | @Override 29 | public List parseArray(JSONArray jsonArray) { 30 | return null; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/trade/TradeClearingParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.trade; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.trade.TradeClearing; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class TradeClearingParser implements HuobiModelParser { 12 | 13 | @Override 14 | public TradeClearing parse(JSONObject json) { 15 | return json.toJavaObject(TradeClearing.class); 16 | } 17 | 18 | @Override 19 | public TradeClearing parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/wallet/DepositAddressParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.wallet; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.wallet.DepositAddress; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class DepositAddressParser implements HuobiModelParser { 12 | 13 | @Override 14 | public DepositAddress parse(JSONObject json) { 15 | return json.toJavaObject(DepositAddress.class); 16 | } 17 | 18 | @Override 19 | public DepositAddress parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(DepositAddress.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/wallet/WithdrawAddressParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.wallet; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.wallet.WithdrawAddress; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class WithdrawAddressParser implements HuobiModelParser { 12 | 13 | @Override 14 | public WithdrawAddress parse(JSONObject json) { 15 | return null; 16 | } 17 | 18 | @Override 19 | public WithdrawAddress parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return jsonArray.toJavaList(WithdrawAddress.class); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/wallet/WithdrawOrderResultParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.wallet; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | import com.huobi.model.wallet.WithdrawOrderResult; 6 | import com.huobi.model.wallet.WithdrawQuota; 7 | import com.huobi.service.huobi.parser.HuobiModelParser; 8 | 9 | import java.util.List; 10 | 11 | public class WithdrawOrderResultParser implements HuobiModelParser { 12 | @Override 13 | public WithdrawOrderResult parse(JSONObject json) { 14 | return json.toJavaObject(WithdrawOrderResult.class); 15 | } 16 | 17 | @Override 18 | public WithdrawOrderResult parse(JSONArray json) { 19 | return null; 20 | } 21 | 22 | @Override 23 | public List parseArray(JSONArray jsonArray) { 24 | return null; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/parser/wallet/WithdrawQuotaParser.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.wallet; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.fastjson.JSONArray; 6 | import com.alibaba.fastjson.JSONObject; 7 | 8 | import com.huobi.model.wallet.WithdrawQuota; 9 | import com.huobi.service.huobi.parser.HuobiModelParser; 10 | 11 | public class WithdrawQuotaParser implements HuobiModelParser { 12 | 13 | @Override 14 | public WithdrawQuota parse(JSONObject json) { 15 | return json.toJavaObject(WithdrawQuota.class); 16 | } 17 | 18 | @Override 19 | public WithdrawQuota parse(JSONArray json) { 20 | return null; 21 | } 22 | 23 | @Override 24 | public List parseArray(JSONArray jsonArray) { 25 | return null; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/utils/DataUtils.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.utils; 2 | 3 | import com.alibaba.fastjson.JSONArray; 4 | import com.alibaba.fastjson.JSONObject; 5 | 6 | public class DataUtils { 7 | 8 | public static String getDataKey(JSONObject jsonObject) { 9 | String key = "data"; 10 | Object dataObj = jsonObject.get(key); 11 | if (dataObj == null) { 12 | key = "tick"; 13 | dataObj = jsonObject.get("tick"); 14 | } 15 | 16 | if (dataObj == null) { 17 | return null; 18 | } 19 | return key; 20 | } 21 | 22 | public static boolean isJSONArray(Object object) { 23 | if (object instanceof JSONArray) { 24 | return true; 25 | } 26 | return false; 27 | } 28 | 29 | public static boolean isJSONObject(Object object) { 30 | if (object instanceof JSONObject) { 31 | return true; 32 | } 33 | return false; 34 | } 35 | 36 | 37 | public static void timeWait(Long millis) { 38 | try { 39 | System.out.println("time wait " + millis + " ms"); 40 | Thread.sleep(millis); 41 | } catch (InterruptedException e) { 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/service/huobi/utils/HuobiHttpInvoker.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.utils; 2 | 3 | public class HuobiHttpInvoker { 4 | 5 | 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/utils/IdGenerator.java: -------------------------------------------------------------------------------- 1 | package com.huobi.utils; 2 | 3 | import java.util.HashSet; 4 | import java.util.Set; 5 | import java.util.concurrent.atomic.AtomicInteger; 6 | 7 | public class IdGenerator { 8 | private static AtomicInteger COUNTER = new AtomicInteger(); 9 | 10 | private static Set TIME_SET = new HashSet<>(); 11 | 12 | public static Long getNextId(){ 13 | 14 | Long time = System.currentTimeMillis(); 15 | 16 | if (!TIME_SET.contains(time)) { 17 | COUNTER.set(0); 18 | TIME_SET.clear(); 19 | TIME_SET.add(time); 20 | } 21 | 22 | Long id = (time * 1000) + COUNTER.addAndGet(1); 23 | return id; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/utils/ResponseCallback.java: -------------------------------------------------------------------------------- 1 | package com.huobi.utils; 2 | 3 | 4 | /** 5 | * The interface for define asynchronous invoking callback.
If you want to ues the asynchronous 6 | * invoking, you must implement the ResponseCallback yourself.
The onResponse method is 7 | * mandatory, when the asynchronous invoking completed, this method will be called.
You should 8 | * check the AsyncResult to know whether the asynchronous invoking is successful or not, and get the 9 | * response data from AsyncResult. 10 | */ 11 | @FunctionalInterface 12 | public interface ResponseCallback { 13 | 14 | /** 15 | * Be called when the request successful. 16 | * 17 | */ 18 | void onResponse(T response); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/utils/SymbolUtils.java: -------------------------------------------------------------------------------- 1 | package com.huobi.utils; 2 | 3 | import java.util.Arrays; 4 | import java.util.List; 5 | 6 | public class SymbolUtils { 7 | 8 | public static List parseSymbols(String symbol) { 9 | return Arrays.asList(symbol.split("[,]")); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/huobi/utils/WebSocketConnection.java: -------------------------------------------------------------------------------- 1 | package com.huobi.utils; 2 | 3 | import com.huobi.constant.enums.ConnectionStateEnum; 4 | 5 | public interface WebSocketConnection { 6 | 7 | ConnectionStateEnum getState(); 8 | 9 | Long getConnectionId(); 10 | 11 | void reConnect(); 12 | 13 | void reConnect(int delayInSecond); 14 | 15 | long getLastReceivedTime(); 16 | 17 | void send(String str); 18 | } 19 | -------------------------------------------------------------------------------- /src/test/java/com/huobi/service/huobi/parser/account/AccountAssetValuationResultParserTest.java: -------------------------------------------------------------------------------- 1 | package com.huobi.service.huobi.parser.account; 2 | 3 | import com.alibaba.fastjson.JSON; 4 | import org.junit.Assert; 5 | import org.junit.Before; 6 | import org.junit.Test; 7 | 8 | import com.huobi.model.account.AccountAssetValuationResult; 9 | 10 | 11 | public class AccountAssetValuationResultParserTest { 12 | public static final String JSON_STRING = "{\n" 13 | + " \"balance\": \"34.75\",\n" 14 | + " \"timestamp\": 1594901254363\n" 15 | + " }"; 16 | 17 | private AccountAssetValuationResultParser parser; 18 | 19 | @Before 20 | public void init() { 21 | parser = new AccountAssetValuationResultParser(); 22 | } 23 | 24 | @Test 25 | public void test_parse(){ 26 | AccountAssetValuationResult result = parser.parse(JSON.parseObject(JSON_STRING)); 27 | Assert.assertNotNull(result); 28 | Assert.assertNotNull(result.getBalance()); 29 | } 30 | } 31 | --------------------------------------------------------------------------------