@yuants/vendor-huobi 0.11.41 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/account-info.js +235 -0
  2. package/dist/account-info.js.map +1 -0
  3. package/dist/api/private-api.js +251 -0
  4. package/dist/api/private-api.js.map +1 -0
  5. package/dist/api/public-api.js +145 -0
  6. package/dist/api/public-api.js.map +1 -0
  7. package/dist/api.js +0 -279
  8. package/dist/api.js.map +1 -1
  9. package/dist/index.js +28 -524
  10. package/dist/index.js.map +1 -1
  11. package/dist/interest_rate.js +2 -2
  12. package/dist/interest_rate.js.map +1 -1
  13. package/dist/order-actions-with-credentials.js +15 -0
  14. package/dist/order-actions-with-credentials.js.map +1 -0
  15. package/dist/order-actions.js +17 -0
  16. package/dist/order-actions.js.map +1 -0
  17. package/dist/orders/submitOrder.js +93 -0
  18. package/dist/orders/submitOrder.js.map +1 -0
  19. package/dist/product.js +4 -4
  20. package/dist/product.js.map +1 -1
  21. package/dist/quote.js +5 -5
  22. package/dist/quote.js.map +1 -1
  23. package/dist/transfer.js +248 -0
  24. package/dist/transfer.js.map +1 -0
  25. package/dist/uid.js +22 -0
  26. package/dist/uid.js.map +1 -0
  27. package/lib/account-info.d.ts +35 -0
  28. package/lib/account-info.d.ts.map +1 -0
  29. package/lib/account-info.js +243 -0
  30. package/lib/account-info.js.map +1 -0
  31. package/lib/api/private-api.d.ts +474 -0
  32. package/lib/api/private-api.d.ts.map +1 -0
  33. package/lib/api/private-api.js +280 -0
  34. package/lib/api/private-api.js.map +1 -0
  35. package/lib/api/public-api.d.ts +308 -0
  36. package/lib/api/public-api.d.ts.map +1 -0
  37. package/lib/api/public-api.js +158 -0
  38. package/lib/api/public-api.js.map +1 -0
  39. package/lib/api.d.ts +2 -621
  40. package/lib/api.d.ts.map +1 -1
  41. package/lib/api.js +0 -279
  42. package/lib/api.js.map +1 -1
  43. package/lib/index.d.ts +1 -0
  44. package/lib/index.d.ts.map +1 -1
  45. package/lib/index.js +26 -522
  46. package/lib/index.js.map +1 -1
  47. package/lib/interest_rate.js +2 -2
  48. package/lib/interest_rate.js.map +1 -1
  49. package/lib/order-actions-with-credentials.d.ts +2 -0
  50. package/lib/order-actions-with-credentials.d.ts.map +1 -0
  51. package/lib/order-actions-with-credentials.js +17 -0
  52. package/lib/order-actions-with-credentials.js.map +1 -0
  53. package/lib/order-actions.d.ts +7 -0
  54. package/lib/order-actions.d.ts.map +1 -0
  55. package/lib/order-actions.js +21 -0
  56. package/lib/order-actions.js.map +1 -0
  57. package/lib/orders/submitOrder.d.ts +6 -0
  58. package/lib/orders/submitOrder.d.ts.map +1 -0
  59. package/lib/orders/submitOrder.js +97 -0
  60. package/lib/orders/submitOrder.js.map +1 -0
  61. package/lib/product.js +4 -4
  62. package/lib/product.js.map +1 -1
  63. package/lib/quote.js +5 -5
  64. package/lib/quote.js.map +1 -1
  65. package/lib/transfer.d.ts +19 -0
  66. package/lib/transfer.d.ts.map +1 -0
  67. package/lib/transfer.js +255 -0
  68. package/lib/transfer.js.map +1 -0
  69. package/lib/uid.d.ts +13 -0
  70. package/lib/uid.d.ts.map +1 -0
  71. package/lib/uid.js +26 -0
  72. package/lib/uid.js.map +1 -0
  73. package/package.json +3 -3
  74. package/temp/package-deps.json +18 -11
  75. package/dist/logger.js +0 -91
  76. package/dist/logger.js.map +0 -1
  77. package/lib/logger.d.ts +0 -21
  78. package/lib/logger.d.ts.map +0 -1
  79. package/lib/logger.js +0 -98
  80. package/lib/logger.js.map +0 -1
package/lib/api.js CHANGED
@@ -5,11 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.client = exports.HuobiClient = void 0;
7
7
  const protocol_1 = require("@yuants/protocol");
8
- const utils_1 = require("@yuants/utils");
9
8
  const rxjs_1 = require("rxjs");
10
9
  const zlib_1 = __importDefault(require("zlib"));
11
- // @ts-ignore
12
- const crypto_js_1 = __importDefault(require("crypto-js"));
13
10
  const createConnectionGzipWS = (URL) => {
14
11
  const conn = (0, protocol_1.createConnectionWs)(URL);
15
12
  const input$ = (0, rxjs_1.from)(conn.input$).pipe((0, rxjs_1.map)((msg) => zlib_1.default.gunzipSync(msg)), (0, rxjs_1.map)((msg) => msg.toString()), (0, rxjs_1.map)((msg) => JSON.parse(msg)), (0, rxjs_1.share)());
@@ -24,81 +21,6 @@ class HuobiClient {
24
21
  this.swap_api_root = 'api.hbdm.com';
25
22
  // https://www.htx.com/zh-cn/opend/newApiPages/?id=404
26
23
  this.spot_api_root = 'api.huobi.pro';
27
- /**
28
- * 【全仓】获取平台阶梯保证金
29
- *
30
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb72290-77b5-11ed-9966-0242ac110003
31
- */
32
- this.getSwapCrossLadderMargin = (params) => this.request('GET', '/linear-swap-api/v1/swap_cross_ladder_margin', this.swap_api_root, params);
33
- /**
34
- * 【通用】批量获取合约资金费率
35
- *
36
- * 接口权限: 读取
37
- *
38
- * 限频: 其他非行情类的公开接口,比如获取指数信息,限价信息,交割结算、平台持仓信息等,所有用户都是每个IP3秒最多240次请求(所有该IP的非行情类的公开接口请求共享3秒240次的额度)
39
- *
40
- * 接口描述: 该接口支持全仓模式和逐仓模式
41
- *
42
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb71b45-77b5-11ed-9966-0242ac110003
43
- */
44
- this.getSwapBatchFundingRate = (params) => {
45
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb7a7b5-77b5-11ed-9966-0242ac110003
46
- return this.request('GET', `/linear-swap-api/v1/swap_batch_funding_rate`, this.swap_api_root, params);
47
- };
48
- /**
49
- * 【通用】获取市场最近成交记录
50
- *
51
- * 接口权限: 读取
52
- *
53
- * 限频: 行情类的公开接口,比如:获取K线数据、获取聚合行情、市场行情、获取行情深度数据、获取溢价指数K线、获取实时预测资金费率k线,获取基差数据、获取市场最近成交记录:
54
- *
55
- * (1) restful接口:同一个IP, 所有业务(交割合约、币本位永续合约和U本位合约)总共1秒最多800个请求
56
- *
57
- * 接口描述: 该接口支持全仓模式和逐仓模式
58
- *
59
- * 请求参数contract_code支持交割合约代码,格式为BTC-USDT-210625;同时支持合约标识,格式为 BTC-USDT(永续)、BTC-USDT-CW(当周)、BTC-USDT-NW(次周)、BTC-USDT-CQ(当季)、BTC-USDT-NQ(次季)。
60
- *
61
- * business_type 在查询交割合约数据时为必填参数。且参数值要传:futures 或 all 。
62
- *
63
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb73c34-77b5-11ed-9966-0242ac110003
64
- */
65
- this.getSwapMarketTrade = (params) => this.request('GET', `/linear-swap-ex/market/trade`, this.swap_api_root, params);
66
- /**
67
- * 获得当前合约的总持仓量
68
- *
69
- * https://huobiapi.github.io/docs/usdt_swap/v1/cn/#3218e7531a
70
- */
71
- this.getSwapOpenInterest = (params) => this.request('GET', '/linear-swap-api/v1/swap_open_interest', this.swap_api_root, params);
72
- /**
73
- * 【通用】获取市场最优挂单
74
- *
75
- * 接口权限: 读取
76
- *
77
- * 限频: 行情类的公开接口,比如:获取K线数据、获取聚合行情、市场行情、获取行情深度数据、获取溢价指数K线、获取实时预测资金费率k线,获取基差数据、获取市场最近成交记录:
78
- *
79
- * (1) restful接口:同一个IP, 所有业务(交割合约、币本位永续合约和U本位合约)总共1秒最多800个请求
80
- *
81
- * 接口描述: 该接口支持全仓模式和逐仓模式
82
- *
83
- * 请求参数contract_code支持交割合约代码,格式为BTC-USDT-210625;同时支持合约标识,格式为 BTC-USDT(永续)、BTC-USDT-CW(当周)、BTC-USDT-NW(次周)、BTC-USDT-CQ(当季)、BTC-USDT-NQ(次季)。
84
- *
85
- * business_type 在查询交割合约数据时为必填参数。且参数值要传:futures 或 all 。
86
- *
87
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb735e0-77b5-11ed-9966-0242ac110003
88
- */
89
- this.getSwapMarketBbo = (params) => this.request('GET', `/linear-swap-ex/market/bbo`, this.swap_api_root, params);
90
- /**
91
- * APIv2币链参考信息
92
- *
93
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec478f0-7773-11ed-9966-0242ac110003
94
- */
95
- this.getV2ReferenceCurrencies = (params) => this.request('GET', '/v2/reference/currencies', this.spot_api_root, params);
96
- /**
97
- * APIv2币链参考信息
98
- *
99
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41049-7773-11ed-9966-0242ac110003
100
- */
101
- this.getAccountHistory = (params) => this.request('GET', '/v1/account/history', this.spot_api_root, params);
102
24
  this.spot_ws = createConnectionGzipWS(`wss://${this.spot_api_root}/ws`);
103
25
  (0, rxjs_1.from)(this.spot_ws.input$)
104
26
  .pipe(
@@ -108,207 +30,6 @@ class HuobiClient {
108
30
  }))
109
31
  .subscribe();
110
32
  }
111
- async request(method, path, api_root, params) {
112
- const noAuth = !(this.params.auth.access_key && this.params.auth.secret_key);
113
- if (noAuth) {
114
- const requestParams = `${method === 'GET' && params !== undefined
115
- ? `&${Object.entries(params)
116
- .sort(([a], [b]) => a.localeCompare(b))
117
- .map(([k, v]) => `${k}=${v}`)
118
- .join('&')}`
119
- : ''}`;
120
- const body = method === 'GET' ? '' : JSON.stringify(params);
121
- const url = new URL(`https://${api_root}${path}?${requestParams}`);
122
- // url.searchParams.sort();
123
- console.info((0, utils_1.formatTime)(Date.now()), method, url.href, body);
124
- const res = await fetch(url.href, {
125
- method,
126
- headers: { 'Content-Type': 'application/json' },
127
- body: body || undefined,
128
- });
129
- const retStr = await res.text();
130
- // console.info(formatTime(Date.now()), 'response', url.href, retStr);
131
- try {
132
- return JSON.parse(retStr);
133
- }
134
- catch (e) {
135
- console.error((0, utils_1.formatTime)(Date.now()), 'huobiRequestFailed', path, JSON.stringify(params), retStr);
136
- throw e;
137
- }
138
- }
139
- const requestParams = `AccessKeyId=${this.params.auth.access_key}&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=${encodeURIComponent(new Date().toISOString().split('.')[0])}${method === 'GET' && params !== undefined
140
- ? `&${Object.entries(params)
141
- .sort(([a], [b]) => a.localeCompare(b))
142
- .map(([k, v]) => `${k}=${v}`)
143
- .join('&')}`
144
- : ''}`;
145
- const body = method === 'GET' ? '' : JSON.stringify(params);
146
- const requestString = `${method}\n${api_root}\n${path}\n${requestParams}`;
147
- const str = crypto_js_1.default.enc.Base64.stringify(crypto_js_1.default.HmacSHA256(requestString, this.params.auth.secret_key));
148
- const url = new URL(`https://${api_root}${path}?${requestParams}&Signature=${encodeURIComponent(str)}`);
149
- // url.searchParams.sort();
150
- console.info((0, utils_1.formatTime)(Date.now()), method, url.href, body);
151
- const res = await fetch(url.href, {
152
- method,
153
- headers: { 'Content-Type': 'application/json' },
154
- body: body || undefined,
155
- });
156
- const retStr = await res.text();
157
- // console.info(formatTime(Date.now()), 'response', url.href, retStr);
158
- try {
159
- return JSON.parse(retStr);
160
- }
161
- catch (e) {
162
- console.error((0, utils_1.formatTime)(Date.now()), 'huobiRequestFailed', path, JSON.stringify(params), retStr);
163
- throw e;
164
- }
165
- }
166
- // swap_ws = new WebSocket(new URL(`wss://${this.swap_api_root}/linear-swap-ws`));
167
- getAccount() {
168
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec40743-7773-11ed-9966-0242ac110003
169
- return this.request('GET', '/v1/account/accounts', this.spot_api_root);
170
- }
171
- getPerpetualContractSymbols(params) {
172
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb72f34-77b5-11ed-9966-0242ac110003
173
- return this.request('GET', '/linear-swap-api/v1/swap_contract_info', this.swap_api_root, params);
174
- }
175
- getSpotSymbols() {
176
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec47f16-7773-11ed-9966-0242ac110003
177
- return this.request('GET', '/v2/settings/common/symbols', this.spot_api_root);
178
- }
179
- getUid() {
180
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec491c9-7773-11ed-9966-0242ac110003
181
- return this.request('GET', '/v2/user/uid', this.spot_api_root);
182
- }
183
- getUnifiedAccountInfo() {
184
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=10000073-77b7-11ed-9966-0242ac110003
185
- return this.request('GET', '/linear-swap-api/v3/unified_account_info', this.swap_api_root);
186
- }
187
- getSwapCrossPositionInfo(params) {
188
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb74963-77b5-11ed-9966-0242ac110003
189
- return this.request('POST', '/linear-swap-api/v1/swap_cross_position_info', this.swap_api_root, params);
190
- }
191
- getSwapOpenOrders(params) {
192
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb784d4-77b5-11ed-9966-0242ac110003
193
- return this.request('POST', '/linear-swap-api/v1/swap_cross_openorders', this.swap_api_root, params);
194
- }
195
- getSpotAccountBalance(account_uid) {
196
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec40922-7773-11ed-9966-0242ac110003
197
- return this.request('GET', `/v1/account/accounts/${account_uid}/balance`, this.spot_api_root);
198
- }
199
- getCrossMarginLoanInfo() {
200
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41863-7773-11ed-9966-0242ac110003
201
- return this.request('GET', '/v1/cross-margin/loan-info', this.spot_api_root);
202
- }
203
- getSpotTick(params) {
204
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec3fc25-7773-11ed-9966-0242ac110003
205
- return this.request('GET', `/market/detail/merged`, this.spot_api_root, params);
206
- }
207
- postSpotOrder(params) {
208
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=10000065-77b7-11ed-9966-0242ac110003
209
- return this.request('POST', `/v1/order/auto/place`, this.spot_api_root, params);
210
- }
211
- postSwapOrder(params) {
212
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb77159-77b5-11ed-9966-0242ac110003
213
- return this.request('POST', '/linear-swap-api/v1/swap_cross_order', this.swap_api_root, params);
214
- }
215
- getSpotAccountDepositAddresses(params) {
216
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec45fb7-7773-11ed-9966-0242ac110003
217
- return this.request('GET', `/v2/account/deposit/address`, this.spot_api_root, params);
218
- }
219
- getAccountLedger(params) {
220
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec4610b-7773-11ed-9966-0242ac110003
221
- return this.request('GET', `/v2/account/ledger`, this.spot_api_root, params);
222
- }
223
- postSuperMarginAccountTransferOut(params) {
224
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41ff0-7773-11ed-9966-0242ac110003
225
- return this.request('POST', `/v1/cross-margin/transfer-out`, this.spot_api_root, params);
226
- }
227
- postSuperMarginAccountTransferIn(params) {
228
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41f0e-7773-11ed-9966-0242ac110003
229
- return this.request('POST', `/v1/cross-margin/transfer-in`, this.spot_api_root, params);
230
- }
231
- postSpotAccountTransfer(params) {
232
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=10000095-77b7-11ed-9966-0242ac110003
233
- return this.request('POST', `/v2/account/transfer`, this.spot_api_root, params);
234
- }
235
- postBorrow(params) {
236
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41b5d-7773-11ed-9966-0242ac110003
237
- return this.request('POST', `/v1/cross-margin/orders`, this.spot_api_root, params);
238
- }
239
- postWithdraw(params) {
240
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec42cfd-7773-11ed-9966-0242ac110003
241
- return this.request('POST', `/v1/dw/withdraw/api/create`, this.spot_api_root, params);
242
- }
243
- getDepositWithdrawHistory(params) {
244
- // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec44f99-7773-11ed-9966-0242ac110003
245
- return this.request(`GET`, `/v1/query/deposit-withdraw`, this.spot_api_root, params);
246
- }
247
- /**
248
- * 获取合约的历史资金费率
249
- *
250
- * 接口权限: 读取
251
- *
252
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=5d51f1f9-77b6-11ed-9966-0242ac110003
253
- */
254
- getSwapHistoricalFundingRate(params) {
255
- return this.request('GET', `/linear-swap-api/v1/swap_historical_funding_rate`, this.swap_api_root, params);
256
- }
257
- /**
258
- * 资产划转(母子用户之间)
259
- *
260
- * 接口权限: 交易
261
- *
262
- * 限频: 2次/2s
263
- *
264
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec45d8e-7773-11ed-9966-0242ac110003
265
- */
266
- postSubUserTransfer(params) {
267
- return this.request('POST', '/v1/subuser/transfer', this.spot_api_root, params);
268
- }
269
- /**
270
- * 获取子用户列表
271
- *
272
- * 接口权限: 读取
273
- *
274
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec48f09-7773-11ed-9966-0242ac110003
275
- */
276
- getSubUserList(params) {
277
- return this.request('GET', `/v2/sub-user/user-list`, this.spot_api_root, params);
278
- }
279
- /**
280
- * 账户类型查询
281
- *
282
- * 是否验签: 是
283
- *
284
- * 接口权限: 读取
285
- *
286
- * 限频: 每个UID 3秒最多 144 次请求(交易接口3秒最多 72 次请求,查询接口3秒最多 72 次请求) (该UID的所有币种和不同到期日的合约的所有私有接口共享该限制) 。
287
- *
288
- * 接口描述: 此接口用于客户查询的账号类型,当前U本位合约有统一账户和非统一账户(全仓逐仓账户)类型。统一账户类型资产放在USDT一个账户上,全仓逐仓账户类型资产放在不同的币对。
289
- * 统一账户类型为最新升级的,当前不支持API下单。若需要用用API下单请切换账户类型为非统一账户。
290
- *
291
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb71825-77b5-11ed-9966-0242ac110003
292
- */
293
- getSwapUnifiedAccountType() {
294
- return this.request('GET', '/linear-swap-api/v3/swap_unified_account_type', this.swap_api_root);
295
- }
296
- /**
297
- * 账户类型更改接口
298
- *
299
- * 是否验签: 是
300
- *
301
- * 接口权限: 交易
302
- *
303
- * 限频: 每个UID 3秒最多 144 次请求(交易接口3秒最多 72 次请求,查询接口3秒最多 72 次请求) (该UID的所有币种和不同到期日的合约的所有私有接口共享该限制) 。
304
- *
305
- * 接口描述: 调用该接口前需要保证U本位合约无持仓和挂单,当由非统一账户(全仓逐仓账户)变为统一账户还需将资产从逐仓账户划转到全仓账户。
306
- *
307
- * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb7196b-77b5-11ed-9966-0242ac110003
308
- */
309
- postSwapSwitchAccountType(params) {
310
- return this.request('POST', '/linear-swap-api/v3/swap_switch_account_type', this.swap_api_root, params);
311
- }
312
33
  }
313
34
  exports.HuobiClient = HuobiClient;
314
35
  exports.client = new HuobiClient({
package/lib/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAmE;AACnE,yCAA2C;AAC3C,+BAA8D;AAC9D,gDAAwB;AAExB,aAAa;AACb,0DAAiC;AAKjC,MAAM,sBAAsB,GAAG,CAAU,GAAW,EAAkB,EAAE;IACtE,MAAM,IAAI,GAAG,IAAA,6BAAkB,EAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACnC,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAClC,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAC5B,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC7B,IAAA,YAAK,GAAE,CACR,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,cAAO,EAAO,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,uCACK,IAAI,KACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,IAChB;AACJ,CAAC,CAAC;AAEF,MAAa,WAAW;IAQtB,YAAmB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QAPvC,sDAAsD;QACtD,kBAAa,GAAG,cAAc,CAAC;QAC/B,sDAAsD;QACtD,kBAAa,GAAG,eAAe,CAAC;QAkOhC;;;;WAIG;QACH,6BAAwB,GAAG,CAAC,MAK3B,EAGE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,8CAA8C,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAiEtG;;;;;;;;;;WAUG;QACH,4BAAuB,GAAG,CAAC,MAE1B,EAaE,EAAE;YACH,uFAAuF;YACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,6CAA6C,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACxG,CAAC,CAAC;QAEF;;;;;;;;;;;;;;;;WAgBG;QACH,uBAAkB,GAAG,CAAC,MAGrB,EAoBE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,8BAA8B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEtF;;;;WAIG;QACH,wBAAmB,GAAG,CAAC,MAKtB,EAgBE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wCAAwC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEhG;;;;;;;;;;;;;;;;WAgBG;QACH,qBAAgB,GAAG,CAAC,MAEnB,EAYE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAuQpF;;;;WAIG;QACH,6BAAwB,GAAG,CAAC,MAG3B,EAiCE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,0BAA0B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAElF;;;;WAIG;QACH,sBAAiB,GAAG,CAAC,MASpB,EAkBE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAjwB3E,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,SAAS,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;QACxE,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACtB,IAAI;QACH,EAAE;QACF,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACrB,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CACH;aACA,SAAS,EAAE,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAY,EAAE,QAAgB,EAAE,MAAY;QACxE,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7E,IAAI,MAAM,EAAE;YACV,MAAM,aAAa,GAAG,GACpB,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS;gBACtC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;qBACvB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;qBAC5B,IAAI,CAAC,GAAG,CAAC,EAAE;gBAChB,CAAC,CAAC,EACN,EAAE,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAE5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,QAAQ,GAAG,IAAI,IAAI,aAAa,EAAE,CAAC,CAAC;YACnE,2BAA2B;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;gBAChC,MAAM;gBACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,IAAI,SAAS;aACxB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAChC,sEAAsE;YACtE,IAAI;gBACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;aAC3B;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;gBAClG,MAAM,CAAC,CAAC;aACT;SACF;QAED,MAAM,aAAa,GAAG,eACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UACnB,4DAA4D,kBAAkB,CAC5E,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACvC,GACC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,SAAS;YACtC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBACvB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC5B,IAAI,CAAC,GAAG,CAAC,EAAE;YAChB,CAAC,CAAC,EACN,EAAE,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,GAAG,MAAM,KAAK,QAAQ,KAAK,IAAI,KAAK,aAAa,EAAE,CAAC;QAE1E,MAAM,GAAG,GAAG,mBAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CACvC,mBAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAChE,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,WAAW,QAAQ,GAAG,IAAI,IAAI,aAAa,cAAc,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,2BAA2B;QAC3B,OAAO,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;YAChC,MAAM;YACN,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,IAAI,SAAS;SACxB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,sEAAsE;QACtE,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC3B;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,IAAA,kBAAU,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;YAClG,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAED,kFAAkF;IAElF,UAAU;QASR,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACzE,CAAC;IAED,2BAA2B,CAAC,MAM3B;QAmBC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wCAAwC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACnG,CAAC;IAED,cAAc;QAyCZ,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChF,CAAC;IAED,MAAM;QACJ,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAED,qBAAqB;QAYnB,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,0CAA0C,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7F,CAAC;IAED,wBAAwB,CAAC,MAIxB;QAgBC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,8CAA8C,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1G,CAAC;IAiBD,iBAAiB,CAAC,MAOjB;QAgBC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,2CAA2C,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACvG,CAAC;IAED,qBAAqB,CAAC,WAAmB;QAUvC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,WAAW,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAChG,CAAC;IAED,sBAAsB;QAQpB,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,WAAW,CAAC,MAA0B;QAMpC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,uBAAuB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IAwID,aAAa,CAAC,MAUb;QACC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,aAAa,CAAC,MASb;QACC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sCAAsC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClG,CAAC;IAED,8BAA8B,CAAC,MAA4B;QASzD,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,gBAAgB,CAAC,MAA+C;QAO9D,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,iCAAiC,CAAC,MAGjC;QACC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,+BAA+B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,gCAAgC,CAAC,MAGhC;QACC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,8BAA8B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED,uBAAuB,CAAC,MAMvB;QACC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IAED,UAAU,CAAC,MAA4C;QAIrD,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,yBAAyB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,YAAY,CAAC,MAMZ;QAIC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,4BAA4B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,yBAAyB,CAAC,MAMzB;QAmBC,uFAAuF;QACvF,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,4BAA4B,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;OAMG;IACH,4BAA4B,CAAC,MAI5B;QAkBC,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EACL,kDAAkD,EAClD,IAAI,CAAC,aAAa,EAClB,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,MAMnB;QAIC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAA4B;QAYzC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,yBAAyB;QAQvB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,+CAA+C,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAClG,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,yBAAyB,CAAC,MAAgC;QAQxD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,8CAA8C,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAC1G,CAAC;CA8EF;AA3wBD,kCA2wBC;AAEY,QAAA,MAAM,GAAG,IAAI,WAAW,CAAC;IACpC,IAAI,EAAE;QACJ,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW;QACnC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW;KACpC;CACF,CAAC,CAAC","sourcesContent":["import { IConnection, createConnectionWs } from '@yuants/protocol';\nimport { formatTime } from '@yuants/utils';\nimport { Subject, filter, from, map, share, tap } from 'rxjs';\nimport zlib from 'zlib';\n\n// @ts-ignore\nimport CryptoJS from 'crypto-js';\ninterface IHuobiParams {\n auth: { access_key: string; secret_key: string };\n}\n\nconst createConnectionGzipWS = <T = any>(URL: string): IConnection<T> => {\n const conn = createConnectionWs(URL);\n const input$ = from(conn.input$).pipe(\n map((msg) => zlib.gunzipSync(msg)),\n map((msg) => msg.toString()),\n map((msg) => JSON.parse(msg)),\n share(),\n );\n\n const output$ = new Subject<any>();\n output$.pipe(map((msg) => JSON.stringify(msg))).subscribe(conn.output$);\n return {\n ...conn,\n input$: input$,\n output$: output$,\n };\n};\n\nexport class HuobiClient {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=510\n swap_api_root = 'api.hbdm.com';\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=404\n spot_api_root = 'api.huobi.pro';\n\n spot_ws: IConnection<any>;\n\n constructor(public params: IHuobiParams) {\n this.spot_ws = createConnectionGzipWS(`wss://${this.spot_api_root}/ws`);\n from(this.spot_ws.input$)\n .pipe(\n //\n filter((v) => v.ping),\n tap((v) => {\n this.spot_ws.output$.next({ pong: v.ping });\n }),\n )\n .subscribe();\n }\n\n async request(method: string, path: string, api_root: string, params?: any) {\n const noAuth = !(this.params.auth.access_key && this.params.auth.secret_key);\n\n if (noAuth) {\n const requestParams = `${\n method === 'GET' && params !== undefined\n ? `&${Object.entries(params)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => `${k}=${v}`)\n .join('&')}`\n : ''\n }`;\n\n const body = method === 'GET' ? '' : JSON.stringify(params);\n\n const url = new URL(`https://${api_root}${path}?${requestParams}`);\n // url.searchParams.sort();\n console.info(formatTime(Date.now()), method, url.href, body);\n\n const res = await fetch(url.href, {\n method,\n headers: { 'Content-Type': 'application/json' },\n body: body || undefined,\n });\n\n const retStr = await res.text();\n // console.info(formatTime(Date.now()), 'response', url.href, retStr);\n try {\n return JSON.parse(retStr);\n } catch (e) {\n console.error(formatTime(Date.now()), 'huobiRequestFailed', path, JSON.stringify(params), retStr);\n throw e;\n }\n }\n\n const requestParams = `AccessKeyId=${\n this.params.auth.access_key\n }&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=${encodeURIComponent(\n new Date().toISOString().split('.')[0],\n )}${\n method === 'GET' && params !== undefined\n ? `&${Object.entries(params)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => `${k}=${v}`)\n .join('&')}`\n : ''\n }`;\n\n const body = method === 'GET' ? '' : JSON.stringify(params);\n\n const requestString = `${method}\\n${api_root}\\n${path}\\n${requestParams}`;\n\n const str = CryptoJS.enc.Base64.stringify(\n CryptoJS.HmacSHA256(requestString, this.params.auth.secret_key),\n );\n\n const url = new URL(`https://${api_root}${path}?${requestParams}&Signature=${encodeURIComponent(str)}`);\n // url.searchParams.sort();\n console.info(formatTime(Date.now()), method, url.href, body);\n const res = await fetch(url.href, {\n method,\n headers: { 'Content-Type': 'application/json' },\n body: body || undefined,\n });\n\n const retStr = await res.text();\n // console.info(formatTime(Date.now()), 'response', url.href, retStr);\n try {\n return JSON.parse(retStr);\n } catch (e) {\n console.error(formatTime(Date.now()), 'huobiRequestFailed', path, JSON.stringify(params), retStr);\n throw e;\n }\n }\n\n // swap_ws = new WebSocket(new URL(`wss://${this.swap_api_root}/linear-swap-ws`));\n\n getAccount(): Promise<{\n status: string;\n data: {\n id: number;\n type: string;\n state: string;\n subtype: string;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec40743-7773-11ed-9966-0242ac110003\n return this.request('GET', '/v1/account/accounts', this.spot_api_root);\n }\n\n getPerpetualContractSymbols(params?: {\n contract_code?: string;\n support_margin_mode?: string;\n pair?: string;\n contract_type?: string;\n business_type?: string;\n }): Promise<{\n status: string;\n data: {\n symbol: string;\n contract_code: string;\n contract_size: number;\n price_tick: number;\n settlement_date: string;\n delivery_time: string;\n create_date: string;\n contract_status: number;\n support_margin_mode: string;\n contract_type: string;\n pair: string;\n business_type: string;\n dilivery_date: string;\n }[];\n ts: string;\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb72f34-77b5-11ed-9966-0242ac110003\n return this.request('GET', '/linear-swap-api/v1/swap_contract_info', this.swap_api_root, params);\n }\n\n getSpotSymbols(): Promise<{\n status: string;\n data: {\n si: string;\n scr: string;\n sc: string;\n dn: string;\n bc: string;\n bcdn: string;\n qc: string;\n qcdn: string;\n state: string;\n whe: boolean;\n cd: boolean;\n te: boolean;\n toa: number;\n sp: string;\n w: number;\n ttp: number;\n tap: number;\n tpp: number;\n fp: number;\n suspend_desc: string;\n transfer_board_desc: string;\n tags: string;\n lr: number;\n smlr: number;\n flr: string;\n wr: string;\n d: number;\n elr: number;\n p: any;\n castate: string;\n ca1oa: number;\n ca2oa: number;\n }[];\n ts: string;\n full: number;\n err_code: string;\n err_msg: string;\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec47f16-7773-11ed-9966-0242ac110003\n return this.request('GET', '/v2/settings/common/symbols', this.spot_api_root);\n }\n\n getUid(): Promise<{ data: number; code: number }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec491c9-7773-11ed-9966-0242ac110003\n return this.request('GET', '/v2/user/uid', this.spot_api_root);\n }\n\n getUnifiedAccountInfo(): Promise<{\n status: string;\n code: number;\n msg: string;\n data: {\n margin_asset: string;\n margin_balance: number;\n cross_margin_static: number;\n cross_profit_unreal: number;\n withdraw_available: number;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=10000073-77b7-11ed-9966-0242ac110003\n return this.request('GET', '/linear-swap-api/v3/unified_account_info', this.swap_api_root);\n }\n\n getSwapCrossPositionInfo(params?: {\n contract_code?: string;\n pair?: string;\n contract_type: string;\n }): Promise<{\n status: string;\n ts: number;\n data: {\n contract_code: string;\n contract_type: string;\n direction: string;\n margin_mode: string;\n volume: number;\n available: number;\n cost_hold: number;\n last_price: number;\n profit_unreal: number;\n lever_rate: number;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb74963-77b5-11ed-9966-0242ac110003\n return this.request('POST', '/linear-swap-api/v1/swap_cross_position_info', this.swap_api_root, params);\n }\n\n /**\n * 【全仓】获取平台阶梯保证金\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb72290-77b5-11ed-9966-0242ac110003\n */\n getSwapCrossLadderMargin = (params?: {\n contract_code?: string;\n pair?: string;\n contract_type?: string;\n business_type?: string;\n }): Promise<{\n status: string;\n data: Array<{ contract_code: string; pair: string; list: Array<{ lever_rate: number }> }>;\n }> => this.request('GET', '/linear-swap-api/v1/swap_cross_ladder_margin', this.swap_api_root, params);\n\n getSwapOpenOrders(params?: {\n contract_code?: string;\n pair?: string;\n page_index?: number;\n page_size?: number;\n sort_by?: string;\n trade_type?: string;\n }): Promise<{\n status: string;\n data: {\n orders: {\n order_id_str: string;\n contract_code: string;\n order_price_type: string;\n direction: string;\n offset: string;\n volume: number;\n created_at: number;\n price: number;\n trade_volume: number;\n }[];\n };\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb784d4-77b5-11ed-9966-0242ac110003\n return this.request('POST', '/linear-swap-api/v1/swap_cross_openorders', this.swap_api_root, params);\n }\n\n getSpotAccountBalance(account_uid: number): Promise<{\n status: string;\n data: {\n list: {\n currency: string;\n balance: string;\n type: string;\n }[];\n };\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec40922-7773-11ed-9966-0242ac110003\n return this.request('GET', `/v1/account/accounts/${account_uid}/balance`, this.spot_api_root);\n }\n\n getCrossMarginLoanInfo(): Promise<{\n status: string;\n code: number;\n data: {\n currency: string;\n 'loanable-amt': string;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41863-7773-11ed-9966-0242ac110003\n return this.request('GET', '/v1/cross-margin/loan-info', this.spot_api_root);\n }\n\n getSpotTick(params: { symbol: string }): Promise<{\n status: string;\n tick: {\n close: number;\n };\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec3fc25-7773-11ed-9966-0242ac110003\n return this.request('GET', `/market/detail/merged`, this.spot_api_root, params);\n }\n\n /**\n * 【通用】批量获取合约资金费率\n *\n * 接口权限: 读取\n *\n * 限频: 其他非行情类的公开接口,比如获取指数信息,限价信息,交割结算、平台持仓信息等,所有用户都是每个IP3秒最多240次请求(所有该IP的非行情类的公开接口请求共享3秒240次的额度)\n *\n * 接口描述: 该接口支持全仓模式和逐仓模式\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb71b45-77b5-11ed-9966-0242ac110003\n */\n getSwapBatchFundingRate = (params: {\n contract_code?: string;\n }): Promise<{\n status: string;\n ts: number;\n data: {\n estimated_rate: null;\n funding_rate: string;\n contract_code: string;\n symbol: string;\n fee_asset: string;\n funding_time: string;\n next_funding_time: null;\n trade_partition: string;\n }[];\n }> => {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb7a7b5-77b5-11ed-9966-0242ac110003\n return this.request('GET', `/linear-swap-api/v1/swap_batch_funding_rate`, this.swap_api_root, params);\n };\n\n /**\n * 【通用】获取市场最近成交记录\n *\n * 接口权限: 读取\n *\n * 限频: 行情类的公开接口,比如:获取K线数据、获取聚合行情、市场行情、获取行情深度数据、获取溢价指数K线、获取实时预测资金费率k线,获取基差数据、获取市场最近成交记录:\n *\n * (1) restful接口:同一个IP, 所有业务(交割合约、币本位永续合约和U本位合约)总共1秒最多800个请求\n *\n * 接口描述: 该接口支持全仓模式和逐仓模式\n *\n * 请求参数contract_code支持交割合约代码,格式为BTC-USDT-210625;同时支持合约标识,格式为 BTC-USDT(永续)、BTC-USDT-CW(当周)、BTC-USDT-NW(次周)、BTC-USDT-CQ(当季)、BTC-USDT-NQ(次季)。\n *\n * business_type 在查询交割合约数据时为必填参数。且参数值要传:futures 或 all 。\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb73c34-77b5-11ed-9966-0242ac110003\n */\n getSwapMarketTrade = (params: {\n contract_code?: string;\n business_type?: string;\n }): Promise<{\n ch: string;\n status: string;\n tick: {\n data: {\n amount: string;\n quantity: string;\n trade_turnover: string;\n ts: number;\n id: number;\n price: string;\n direction: string;\n contract_code: string;\n business_type: string;\n trade_partition: string;\n }[];\n id: number;\n ts: number;\n };\n ts: number;\n }> => this.request('GET', `/linear-swap-ex/market/trade`, this.swap_api_root, params);\n\n /**\n * 获得当前合约的总持仓量\n *\n * https://huobiapi.github.io/docs/usdt_swap/v1/cn/#3218e7531a\n */\n getSwapOpenInterest = (params: {\n contract_code?: string;\n pair?: string;\n contract_type?: string;\n business_type?: string;\n }): Promise<{\n status: string;\n data: {\n volume: number;\n amount: number;\n symbol: string;\n value: number;\n contract_code: string;\n trade_amount: number;\n trade_volume: number;\n trade_turnover: number;\n business_type: string;\n pair: string;\n contract_type: string;\n }[];\n ts: number;\n }> => this.request('GET', '/linear-swap-api/v1/swap_open_interest', this.swap_api_root, params);\n\n /**\n * 【通用】获取市场最优挂单\n *\n * 接口权限: 读取\n *\n * 限频: 行情类的公开接口,比如:获取K线数据、获取聚合行情、市场行情、获取行情深度数据、获取溢价指数K线、获取实时预测资金费率k线,获取基差数据、获取市场最近成交记录:\n *\n * (1) restful接口:同一个IP, 所有业务(交割合约、币本位永续合约和U本位合约)总共1秒最多800个请求\n *\n * 接口描述: 该接口支持全仓模式和逐仓模式\n *\n * 请求参数contract_code支持交割合约代码,格式为BTC-USDT-210625;同时支持合约标识,格式为 BTC-USDT(永续)、BTC-USDT-CW(当周)、BTC-USDT-NW(次周)、BTC-USDT-CQ(当季)、BTC-USDT-NQ(次季)。\n *\n * business_type 在查询交割合约数据时为必填参数。且参数值要传:futures 或 all 。\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb735e0-77b5-11ed-9966-0242ac110003\n */\n getSwapMarketBbo = (params: {\n contract_code?: string;\n }): Promise<{\n status: string;\n ticks: {\n trade_partition: string;\n business_type: string;\n contract_code: string;\n ask: number[] | null;\n bid: number[] | null;\n mrid: number;\n ts: number;\n }[];\n ts: number;\n }> => this.request('GET', `/linear-swap-ex/market/bbo`, this.swap_api_root, params);\n\n postSpotOrder(params: {\n symbol: string;\n 'account-id': string;\n amount: string;\n market_amount?: string;\n 'borrow-amount'?: string;\n type: string;\n 'trade-purpose': string;\n price?: string;\n source: string;\n }): Promise<{ success: boolean; code: number; message: string }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=10000065-77b7-11ed-9966-0242ac110003\n return this.request('POST', `/v1/order/auto/place`, this.spot_api_root, params);\n }\n\n postSwapOrder(params: {\n contract_code: string;\n contract_type: string;\n price?: number;\n volume: number;\n offset: string;\n direction: string;\n lever_rate: number;\n order_price_type: string;\n }): Promise<{ status: string; ts: number; data: { order_id: number; order_id_str: string } }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb77159-77b5-11ed-9966-0242ac110003\n return this.request('POST', '/linear-swap-api/v1/swap_cross_order', this.swap_api_root, params);\n }\n\n getSpotAccountDepositAddresses(params: { currency: string }): Promise<{\n code: number;\n message: string;\n data: {\n currency: string;\n chain: string;\n address: string;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec45fb7-7773-11ed-9966-0242ac110003\n return this.request('GET', `/v2/account/deposit/address`, this.spot_api_root, params);\n }\n\n getAccountLedger(params: { accountId: string; currency: string }): Promise<{\n status: string;\n data: {\n transactTime: number;\n transactAmt: number;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec4610b-7773-11ed-9966-0242ac110003\n return this.request('GET', `/v2/account/ledger`, this.spot_api_root, params);\n }\n\n postSuperMarginAccountTransferOut(params: {\n currency: string;\n amount: string;\n }): Promise<{ status: string; data: number }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41ff0-7773-11ed-9966-0242ac110003\n return this.request('POST', `/v1/cross-margin/transfer-out`, this.spot_api_root, params);\n }\n\n postSuperMarginAccountTransferIn(params: {\n currency: string;\n amount: string;\n }): Promise<{ status: string; data: number }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41f0e-7773-11ed-9966-0242ac110003\n return this.request('POST', `/v1/cross-margin/transfer-in`, this.spot_api_root, params);\n }\n\n postSpotAccountTransfer(params: {\n from: string;\n to: string;\n currency: string;\n amount: number;\n 'margin-account': string;\n }): Promise<{ success: boolean; data: number; code: number; message: string }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=10000095-77b7-11ed-9966-0242ac110003\n return this.request('POST', `/v2/account/transfer`, this.spot_api_root, params);\n }\n\n postBorrow(params: { currency: string; amount: string }): Promise<{\n status: string;\n data: number;\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41b5d-7773-11ed-9966-0242ac110003\n return this.request('POST', `/v1/cross-margin/orders`, this.spot_api_root, params);\n }\n\n postWithdraw(params: {\n address: string;\n amount: string;\n currency: string;\n fee: string;\n chain: string;\n }): Promise<{\n status: string;\n data: number;\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec42cfd-7773-11ed-9966-0242ac110003\n return this.request('POST', `/v1/dw/withdraw/api/create`, this.spot_api_root, params);\n }\n\n getDepositWithdrawHistory(params: {\n currency: string;\n type: string;\n from?: string;\n size?: string;\n direct?: string;\n }): Promise<{\n status: string;\n 'error-code': string;\n 'error-msg': string;\n data: {\n id: number;\n type: string;\n currency: string;\n 'tx-hash': string;\n chain: string;\n amount: string;\n address: string;\n 'address-tag': string;\n fee: string;\n state: string;\n 'create-at': number;\n 'update-at': number;\n }[];\n }> {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec44f99-7773-11ed-9966-0242ac110003\n return this.request(`GET`, `/v1/query/deposit-withdraw`, this.spot_api_root, params);\n }\n\n /**\n * 获取合约的历史资金费率\n *\n * 接口权限: 读取\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=5d51f1f9-77b6-11ed-9966-0242ac110003\n */\n getSwapHistoricalFundingRate(params: {\n contract_code: string;\n page_index?: number;\n page_size?: number;\n }): Promise<{\n status: string;\n ts: number;\n data: {\n data: {\n symbol: string;\n contract_code: string;\n fee_asset: string;\n funding_time: string;\n funding_rate: string;\n realized_rate: string;\n avg_premium_index: string;\n }[];\n total_page: number;\n current_page: number;\n total_size: number;\n };\n }> {\n return this.request(\n 'GET',\n `/linear-swap-api/v1/swap_historical_funding_rate`,\n this.swap_api_root,\n params,\n );\n }\n\n /**\n * 资产划转(母子用户之间)\n *\n * 接口权限: 交易\n *\n * 限频: 2次/2s\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec45d8e-7773-11ed-9966-0242ac110003\n */\n postSubUserTransfer(params: {\n 'sub-uid': number;\n currency: string;\n amount: number;\n 'client-order-id'?: string;\n type: string;\n }): Promise<{\n data: number;\n status: string;\n }> {\n return this.request('POST', '/v1/subuser/transfer', this.spot_api_root, params);\n }\n\n /**\n * 获取子用户列表\n *\n * 接口权限: 读取\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec48f09-7773-11ed-9966-0242ac110003\n */\n getSubUserList(params?: { fromId?: number }): Promise<{\n code: number;\n message?: string;\n data: {\n uid: number;\n userState: string;\n subUserName: string;\n note: string;\n }[];\n nextId?: number;\n ok: boolean;\n }> {\n return this.request('GET', `/v2/sub-user/user-list`, this.spot_api_root, params);\n }\n\n /**\n * 账户类型查询\n *\n * 是否验签: 是\n *\n * 接口权限: 读取\n *\n * 限频: 每个UID 3秒最多 144 次请求(交易接口3秒最多 72 次请求,查询接口3秒最多 72 次请求) (该UID的所有币种和不同到期日的合约的所有私有接口共享该限制) 。\n *\n * 接口描述: 此接口用于客户查询的账号类型,当前U本位合约有统一账户和非统一账户(全仓逐仓账户)类型。统一账户类型资产放在USDT一个账户上,全仓逐仓账户类型资产放在不同的币对。\n * 统一账户类型为最新升级的,当前不支持API下单。若需要用用API下单请切换账户类型为非统一账户。\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb71825-77b5-11ed-9966-0242ac110003\n */\n getSwapUnifiedAccountType(): Promise<{\n code: number;\n msg: string;\n ts: number;\n data: {\n account_type: number;\n };\n }> {\n return this.request('GET', '/linear-swap-api/v3/swap_unified_account_type', this.swap_api_root);\n }\n\n /**\n * 账户类型更改接口\n *\n * 是否验签: 是\n *\n * 接口权限: 交易\n *\n * 限频: 每个UID 3秒最多 144 次请求(交易接口3秒最多 72 次请求,查询接口3秒最多 72 次请求) (该UID的所有币种和不同到期日的合约的所有私有接口共享该限制) 。\n *\n * 接口描述: 调用该接口前需要保证U本位合约无持仓和挂单,当由非统一账户(全仓逐仓账户)变为统一账户还需将资产从逐仓账户划转到全仓账户。\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=8cb7196b-77b5-11ed-9966-0242ac110003\n */\n postSwapSwitchAccountType(params: { account_type: number }): Promise<{\n code: number;\n msg: string;\n ts: number;\n data: {\n account_type: number;\n };\n }> {\n return this.request('POST', '/linear-swap-api/v3/swap_switch_account_type', this.swap_api_root, params);\n }\n\n /**\n * APIv2币链参考信息\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec478f0-7773-11ed-9966-0242ac110003\n */\n getV2ReferenceCurrencies = (params: {\n currency?: string;\n authorizedUser?: string;\n }): Promise<{\n code: number;\n data: {\n currency: string;\n assetType: number;\n chains: {\n chain: string;\n displayName: string;\n fullName: string;\n baseChain?: string;\n baseChainProtocol?: string;\n isDynamic?: boolean;\n numOfConfirmations: number;\n numOfFastConfirmations: number;\n depositStatus: string;\n minDepositAmt: string;\n withdrawStatus: string;\n minWithdrawAmt: string;\n withdrawPrecision: number;\n maxWithdrawAmt: string;\n withdrawQuotaPerDay: string;\n withdrawQuotaPerYear: null;\n withdrawQuotaTotal: null;\n withdrawFeeType: string;\n transactFeeWithdraw?: string;\n addrWithTag: boolean;\n addrDepositTag: boolean;\n minTransactFeeWithdraw?: string;\n transactFeeRateWithdraw?: string;\n maxTransactFeeWithdraw?: string;\n }[];\n instStatus: string;\n }[];\n }> => this.request('GET', '/v2/reference/currencies', this.spot_api_root, params);\n\n /**\n * APIv2币链参考信息\n *\n * https://www.htx.com/zh-cn/opend/newApiPages/?id=7ec41049-7773-11ed-9966-0242ac110003\n */\n getAccountHistory = (params: {\n 'account-id': string;\n currency?: string;\n 'transact-types'?: number;\n 'start-time'?: number;\n 'end-time'?: number;\n sort?: 'asc' | 'desc';\n size?: number;\n 'from-id'?: number;\n }): Promise<{\n // code: number;\n 'transact-amt': string;\n 'avail-balance': string;\n 'acct-balance': string;\n 'transact-time': string;\n 'record-id': string;\n status: string;\n data: {\n 'account-id': string;\n currency: string;\n 'record-id': string;\n 'transact-amt': string;\n 'transact-type': string;\n 'avail-balance': string;\n 'acct-balance': string;\n 'transact-time': string;\n }[];\n }> => this.request('GET', '/v1/account/history', this.spot_api_root, params);\n}\n\nexport const client = new HuobiClient({\n auth: {\n access_key: process.env.ACCESS_KEY!,\n secret_key: process.env.SECRET_KEY!,\n },\n});\n"]}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;AAAA,+CAAmE;AACnE,+BAA8D;AAC9D,gDAAwB;AAOxB,MAAM,sBAAsB,GAAG,CAAU,GAAW,EAAkB,EAAE;IACtE,MAAM,IAAI,GAAG,IAAA,6BAAkB,EAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACnC,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAClC,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAC5B,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAC7B,IAAA,YAAK,GAAE,CACR,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,cAAO,EAAO,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,IAAA,UAAG,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,uCACK,IAAI,KACP,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,IAChB;AACJ,CAAC,CAAC;AAEF,MAAa,WAAW;IAQtB,YAAmB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;QAPvC,sDAAsD;QACtD,kBAAa,GAAG,cAAc,CAAC;QAC/B,sDAAsD;QACtD,kBAAa,GAAG,eAAe,CAAC;QAK9B,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC,SAAS,IAAI,CAAC,aAAa,KAAK,CAAC,CAAC;QACxE,IAAA,WAAI,EAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;aACtB,IAAI;QACH,EAAE;QACF,IAAA,aAAM,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACrB,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CACH;aACA,SAAS,EAAE,CAAC;IACjB,CAAC;CAGF;AAtBD,kCAsBC;AAEY,QAAA,MAAM,GAAG,IAAI,WAAW,CAAC;IACpC,IAAI,EAAE;QACJ,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW;QACnC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW;KACpC;CACF,CAAC,CAAC","sourcesContent":["import { IConnection, createConnectionWs } from '@yuants/protocol';\nimport { Subject, filter, from, map, share, tap } from 'rxjs';\nimport zlib from 'zlib';\nimport { ICredential } from './api/private-api';\n\ninterface IHuobiParams {\n auth: ICredential;\n}\n\nconst createConnectionGzipWS = <T = any>(URL: string): IConnection<T> => {\n const conn = createConnectionWs(URL);\n const input$ = from(conn.input$).pipe(\n map((msg) => zlib.gunzipSync(msg)),\n map((msg) => msg.toString()),\n map((msg) => JSON.parse(msg)),\n share(),\n );\n\n const output$ = new Subject<any>();\n output$.pipe(map((msg) => JSON.stringify(msg))).subscribe(conn.output$);\n return {\n ...conn,\n input$: input$,\n output$: output$,\n };\n};\n\nexport class HuobiClient {\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=510\n swap_api_root = 'api.hbdm.com';\n // https://www.htx.com/zh-cn/opend/newApiPages/?id=404\n spot_api_root = 'api.huobi.pro';\n\n spot_ws: IConnection<any>;\n\n constructor(public params: IHuobiParams) {\n this.spot_ws = createConnectionGzipWS(`wss://${this.spot_api_root}/ws`);\n from(this.spot_ws.input$)\n .pipe(\n //\n filter((v) => v.ping),\n tap((v) => {\n this.spot_ws.output$.next({ pong: v.ping });\n }),\n )\n .subscribe();\n }\n\n // swap_ws = new WebSocket(new URL(`wss://${this.swap_api_root}/linear-swap-ws`));\n}\n\nexport const client = new HuobiClient({\n auth: {\n access_key: process.env.ACCESS_KEY!,\n secret_key: process.env.SECRET_KEY!,\n },\n});\n"]}
package/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  import './interest_rate';
2
+ import './order-actions-with-credentials';
2
3
  import './quote';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,iBAAiB,CAAC;AAEzB,OAAO,kCAAkC,CAAC;AAC1C,OAAO,SAAS,CAAC"}