@yuants/vendor-binance 0.6.18 → 0.6.20

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.
package/dist/product.js CHANGED
@@ -1,40 +1,36 @@
1
+ import { provideQueryProductsService } from '@yuants/data-product';
1
2
  import { Terminal } from '@yuants/protocol';
2
- import { createSQLWriter } from '@yuants/sql';
3
3
  import { encodePath } from '@yuants/utils';
4
- import { Subject, defer, from, map, mergeMap, repeat, retry, shareReplay, tap, toArray } from 'rxjs';
5
4
  import { client } from './api';
6
5
  const terminal = Terminal.fromNodeEnv();
7
- const product$ = new Subject();
8
- const futureExchangeInfo$ = defer(() => client.getFutureExchangeInfo()).pipe(repeat({ delay: 3600000 }), retry({ delay: 60000 }), shareReplay(1));
9
- const futureProducts$ = futureExchangeInfo$.pipe(mergeMap((x) => from(x.symbols).pipe(
10
- //
11
- map((symbol) => {
12
- return {
13
- datasource_id: 'BINANCE',
14
- product_id: encodePath('usdt-future', symbol.symbol),
15
- base_currency: symbol.baseAsset,
16
- quote_currency: symbol.quoteAsset,
17
- price_step: +`1e-${symbol.pricePrecision}`,
18
- value_scale: 1,
19
- volume_step: +`1e-${symbol.quantityPrecision}`,
20
- name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,
21
- value_scale_unit: '',
22
- margin_rate: +symbol.requiredMarginPercent / 100,
23
- value_based_cost: 0,
24
- volume_based_cost: 0,
25
- max_position: 0,
26
- max_volume: 0,
27
- allow_long: true,
28
- allow_short: true,
29
- market_id: 'BINANCE/USDT-FUTURE',
30
- no_interest_rate: false,
31
- };
32
- }), tap((v) => product$.next(v)), toArray())), shareReplay(1));
33
- futureProducts$.subscribe();
34
- createSQLWriter(terminal, {
35
- data$: product$,
36
- tableName: 'product',
37
- conflictKeys: ['datasource_id', 'product_id'],
38
- writeInterval: 1000,
6
+ // Provide QueryProducts service with the new design
7
+ const cache = provideQueryProductsService(terminal, 'BINANCE', async (req) => {
8
+ // Directly call the external API to get exchange info
9
+ const exchangeInfo = await client.getFutureExchangeInfo();
10
+ // Convert symbols to IProduct format
11
+ return exchangeInfo.symbols.map((symbol) => {
12
+ return {
13
+ datasource_id: 'BINANCE',
14
+ product_id: encodePath('usdt-future', symbol.symbol),
15
+ base_currency: symbol.baseAsset,
16
+ quote_currency: symbol.quoteAsset,
17
+ price_step: +`1e-${symbol.pricePrecision}`,
18
+ value_scale: 1,
19
+ volume_step: +`1e-${symbol.quantityPrecision}`,
20
+ name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,
21
+ value_scale_unit: '',
22
+ margin_rate: +symbol.requiredMarginPercent / 100,
23
+ value_based_cost: 0,
24
+ volume_based_cost: 0,
25
+ max_position: 0,
26
+ max_volume: 0,
27
+ allow_long: true,
28
+ allow_short: true,
29
+ market_id: 'BINANCE/USDT-FUTURE',
30
+ no_interest_rate: false,
31
+ };
32
+ });
33
+ }, {
34
+ auto_refresh_interval: 3600000,
39
35
  });
40
36
  //# sourceMappingURL=product.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAY,CAAC;AAEzC,MAAM,mBAAmB,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAC1E,MAAM,CAAC,EAAE,KAAK,EAAE,OAAQ,EAAE,CAAC,EAC3B,KAAK,CAAC,EAAE,KAAK,EAAE,KAAM,EAAE,CAAC,EACxB,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAC9C,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AAClB,EAAE;AACF,GAAG,CAAC,CAAC,MAAM,EAAY,EAAE;IACvB,OAAO;QACL,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,aAAa,EAAE,MAAM,CAAC,SAAS;QAC/B,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,UAAU,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE;QAC1C,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,EAAE;QAC9C,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,OAAO;QACrD,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG;QAChD,gBAAgB,EAAE,CAAC;QACnB,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,qBAAqB;QAChC,gBAAgB,EAAE,KAAK;KACxB,CAAC;AACJ,CAAC,CAAC,EACF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5B,OAAO,EAAE,CACV,CACF,EACD,WAAW,CAAC,CAAC,CAAC,CACf,CAAC;AAEF,eAAe,CAAC,SAAS,EAAE,CAAC;AAE5B,eAAe,CAAW,QAAQ,EAAE;IAClC,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;IAC7C,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC","sourcesContent":["import { IProduct } from '@yuants/data-product';\nimport { Terminal } from '@yuants/protocol';\nimport { createSQLWriter } from '@yuants/sql';\nimport { encodePath } from '@yuants/utils';\nimport { Subject, defer, from, map, mergeMap, repeat, retry, shareReplay, tap, toArray } from 'rxjs';\nimport { client } from './api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst product$ = new Subject<IProduct>();\n\nconst futureExchangeInfo$ = defer(() => client.getFutureExchangeInfo()).pipe(\n repeat({ delay: 3600_000 }),\n retry({ delay: 60_000 }),\n shareReplay(1),\n);\n\nconst futureProducts$ = futureExchangeInfo$.pipe(\n mergeMap((x) =>\n from(x.symbols).pipe(\n //\n map((symbol): IProduct => {\n return {\n datasource_id: 'BINANCE',\n product_id: encodePath('usdt-future', symbol.symbol),\n base_currency: symbol.baseAsset,\n quote_currency: symbol.quoteAsset,\n price_step: +`1e-${symbol.pricePrecision}`,\n value_scale: 1,\n volume_step: +`1e-${symbol.quantityPrecision}`,\n name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,\n value_scale_unit: '',\n margin_rate: +symbol.requiredMarginPercent / 100,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'BINANCE/USDT-FUTURE',\n no_interest_rate: false,\n };\n }),\n tap((v) => product$.next(v)),\n toArray(),\n ),\n ),\n shareReplay(1),\n);\n\nfutureProducts$.subscribe();\n\ncreateSQLWriter<IProduct>(terminal, {\n data$: product$,\n tableName: 'product',\n conflictKeys: ['datasource_id', 'product_id'],\n writeInterval: 1000,\n});\n"]}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,oDAAoD;AACpD,MAAM,KAAK,GAAG,2BAA2B,CACvC,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,GAA0B,EAAuB,EAAE;IACxD,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,qBAAqB,EAAE,CAAC;IAE1D,qCAAqC;IACrC,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAY,EAAE;QACnD,OAAO;YACL,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;YACpD,aAAa,EAAE,MAAM,CAAC,SAAS;YAC/B,cAAc,EAAE,MAAM,CAAC,UAAU;YACjC,UAAU,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE;YAC1C,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,EAAE;YAC9C,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,OAAO;YACrD,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG;YAChD,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,qBAAqB;YAChC,gBAAgB,EAAE,KAAK;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,EACD;IACE,qBAAqB,EAAE,OAAQ;CAChC,CACF,CAAC","sourcesContent":["import { IProduct, IQueryProductsRequest, provideQueryProductsService } from '@yuants/data-product';\nimport { Terminal } from '@yuants/protocol';\nimport { encodePath } from '@yuants/utils';\nimport { client } from './api';\n\nconst terminal = Terminal.fromNodeEnv();\n\n// Provide QueryProducts service with the new design\nconst cache = provideQueryProductsService(\n terminal,\n 'BINANCE',\n async (req: IQueryProductsRequest): Promise<IProduct[]> => {\n // Directly call the external API to get exchange info\n const exchangeInfo = await client.getFutureExchangeInfo();\n\n // Convert symbols to IProduct format\n return exchangeInfo.symbols.map((symbol): IProduct => {\n return {\n datasource_id: 'BINANCE',\n product_id: encodePath('usdt-future', symbol.symbol),\n base_currency: symbol.baseAsset,\n quote_currency: symbol.quoteAsset,\n price_step: +`1e-${symbol.pricePrecision}`,\n value_scale: 1,\n volume_step: +`1e-${symbol.quantityPrecision}`,\n name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,\n value_scale_unit: '',\n margin_rate: +symbol.requiredMarginPercent / 100,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'BINANCE/USDT-FUTURE',\n no_interest_rate: false,\n };\n });\n },\n {\n auto_refresh_interval: 3600_000,\n },\n);\n"]}
package/lib/product.js CHANGED
@@ -1,42 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const data_product_1 = require("@yuants/data-product");
3
4
  const protocol_1 = require("@yuants/protocol");
4
- const sql_1 = require("@yuants/sql");
5
5
  const utils_1 = require("@yuants/utils");
6
- const rxjs_1 = require("rxjs");
7
6
  const api_1 = require("./api");
8
7
  const terminal = protocol_1.Terminal.fromNodeEnv();
9
- const product$ = new rxjs_1.Subject();
10
- const futureExchangeInfo$ = (0, rxjs_1.defer)(() => api_1.client.getFutureExchangeInfo()).pipe((0, rxjs_1.repeat)({ delay: 3600000 }), (0, rxjs_1.retry)({ delay: 60000 }), (0, rxjs_1.shareReplay)(1));
11
- const futureProducts$ = futureExchangeInfo$.pipe((0, rxjs_1.mergeMap)((x) => (0, rxjs_1.from)(x.symbols).pipe(
12
- //
13
- (0, rxjs_1.map)((symbol) => {
14
- return {
15
- datasource_id: 'BINANCE',
16
- product_id: (0, utils_1.encodePath)('usdt-future', symbol.symbol),
17
- base_currency: symbol.baseAsset,
18
- quote_currency: symbol.quoteAsset,
19
- price_step: +`1e-${symbol.pricePrecision}`,
20
- value_scale: 1,
21
- volume_step: +`1e-${symbol.quantityPrecision}`,
22
- name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,
23
- value_scale_unit: '',
24
- margin_rate: +symbol.requiredMarginPercent / 100,
25
- value_based_cost: 0,
26
- volume_based_cost: 0,
27
- max_position: 0,
28
- max_volume: 0,
29
- allow_long: true,
30
- allow_short: true,
31
- market_id: 'BINANCE/USDT-FUTURE',
32
- no_interest_rate: false,
33
- };
34
- }), (0, rxjs_1.tap)((v) => product$.next(v)), (0, rxjs_1.toArray)())), (0, rxjs_1.shareReplay)(1));
35
- futureProducts$.subscribe();
36
- (0, sql_1.createSQLWriter)(terminal, {
37
- data$: product$,
38
- tableName: 'product',
39
- conflictKeys: ['datasource_id', 'product_id'],
40
- writeInterval: 1000,
8
+ // Provide QueryProducts service with the new design
9
+ const cache = (0, data_product_1.provideQueryProductsService)(terminal, 'BINANCE', async (req) => {
10
+ // Directly call the external API to get exchange info
11
+ const exchangeInfo = await api_1.client.getFutureExchangeInfo();
12
+ // Convert symbols to IProduct format
13
+ return exchangeInfo.symbols.map((symbol) => {
14
+ return {
15
+ datasource_id: 'BINANCE',
16
+ product_id: (0, utils_1.encodePath)('usdt-future', symbol.symbol),
17
+ base_currency: symbol.baseAsset,
18
+ quote_currency: symbol.quoteAsset,
19
+ price_step: +`1e-${symbol.pricePrecision}`,
20
+ value_scale: 1,
21
+ volume_step: +`1e-${symbol.quantityPrecision}`,
22
+ name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,
23
+ value_scale_unit: '',
24
+ margin_rate: +symbol.requiredMarginPercent / 100,
25
+ value_based_cost: 0,
26
+ volume_based_cost: 0,
27
+ max_position: 0,
28
+ max_volume: 0,
29
+ allow_long: true,
30
+ allow_short: true,
31
+ market_id: 'BINANCE/USDT-FUTURE',
32
+ no_interest_rate: false,
33
+ };
34
+ });
35
+ }, {
36
+ auto_refresh_interval: 3600000,
41
37
  });
42
38
  //# sourceMappingURL=product.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":";;AACA,+CAA4C;AAC5C,qCAA8C;AAC9C,yCAA2C;AAC3C,+BAAqG;AACrG,+BAA+B;AAE/B,MAAM,QAAQ,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,QAAQ,GAAG,IAAI,cAAO,EAAY,CAAC;AAEzC,MAAM,mBAAmB,GAAG,IAAA,YAAK,EAAC,GAAG,EAAE,CAAC,YAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC,IAAI,CAC1E,IAAA,aAAM,EAAC,EAAE,KAAK,EAAE,OAAQ,EAAE,CAAC,EAC3B,IAAA,YAAK,EAAC,EAAE,KAAK,EAAE,KAAM,EAAE,CAAC,EACxB,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;AAEF,MAAM,eAAe,GAAG,mBAAmB,CAAC,IAAI,CAC9C,IAAA,eAAQ,EAAC,CAAC,CAAC,EAAE,EAAE,CACb,IAAA,WAAI,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AAClB,EAAE;AACF,IAAA,UAAG,EAAC,CAAC,MAAM,EAAY,EAAE;IACvB,OAAO;QACL,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,IAAA,kBAAU,EAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,aAAa,EAAE,MAAM,CAAC,SAAS;QAC/B,cAAc,EAAE,MAAM,CAAC,UAAU;QACjC,UAAU,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE;QAC1C,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,EAAE;QAC9C,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,OAAO;QACrD,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG;QAChD,gBAAgB,EAAE,CAAC;QACnB,iBAAiB,EAAE,CAAC;QACpB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,qBAAqB;QAChC,gBAAgB,EAAE,KAAK;KACxB,CAAC;AACJ,CAAC,CAAC,EACF,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5B,IAAA,cAAO,GAAE,CACV,CACF,EACD,IAAA,kBAAW,EAAC,CAAC,CAAC,CACf,CAAC;AAEF,eAAe,CAAC,SAAS,EAAE,CAAC;AAE5B,IAAA,qBAAe,EAAW,QAAQ,EAAE;IAClC,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC;IAC7C,aAAa,EAAE,IAAI;CACpB,CAAC,CAAC","sourcesContent":["import { IProduct } from '@yuants/data-product';\nimport { Terminal } from '@yuants/protocol';\nimport { createSQLWriter } from '@yuants/sql';\nimport { encodePath } from '@yuants/utils';\nimport { Subject, defer, from, map, mergeMap, repeat, retry, shareReplay, tap, toArray } from 'rxjs';\nimport { client } from './api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst product$ = new Subject<IProduct>();\n\nconst futureExchangeInfo$ = defer(() => client.getFutureExchangeInfo()).pipe(\n repeat({ delay: 3600_000 }),\n retry({ delay: 60_000 }),\n shareReplay(1),\n);\n\nconst futureProducts$ = futureExchangeInfo$.pipe(\n mergeMap((x) =>\n from(x.symbols).pipe(\n //\n map((symbol): IProduct => {\n return {\n datasource_id: 'BINANCE',\n product_id: encodePath('usdt-future', symbol.symbol),\n base_currency: symbol.baseAsset,\n quote_currency: symbol.quoteAsset,\n price_step: +`1e-${symbol.pricePrecision}`,\n value_scale: 1,\n volume_step: +`1e-${symbol.quantityPrecision}`,\n name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,\n value_scale_unit: '',\n margin_rate: +symbol.requiredMarginPercent / 100,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'BINANCE/USDT-FUTURE',\n no_interest_rate: false,\n };\n }),\n tap((v) => product$.next(v)),\n toArray(),\n ),\n ),\n shareReplay(1),\n);\n\nfutureProducts$.subscribe();\n\ncreateSQLWriter<IProduct>(terminal, {\n data$: product$,\n tableName: 'product',\n conflictKeys: ['datasource_id', 'product_id'],\n writeInterval: 1000,\n});\n"]}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":";;AAAA,uDAAoG;AACpG,+CAA4C;AAC5C,yCAA2C;AAC3C,+BAA+B;AAE/B,MAAM,QAAQ,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,oDAAoD;AACpD,MAAM,KAAK,GAAG,IAAA,0CAA2B,EACvC,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,GAA0B,EAAuB,EAAE;IACxD,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,YAAM,CAAC,qBAAqB,EAAE,CAAC;IAE1D,qCAAqC;IACrC,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAY,EAAE;QACnD,OAAO;YACL,aAAa,EAAE,SAAS;YACxB,UAAU,EAAE,IAAA,kBAAU,EAAC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;YACpD,aAAa,EAAE,MAAM,CAAC,SAAS;YAC/B,cAAc,EAAE,MAAM,CAAC,UAAU;YACjC,UAAU,EAAE,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE;YAC1C,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC,MAAM,MAAM,CAAC,iBAAiB,EAAE;YAC9C,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,OAAO;YACrD,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,CAAC,MAAM,CAAC,qBAAqB,GAAG,GAAG;YAChD,gBAAgB,EAAE,CAAC;YACnB,iBAAiB,EAAE,CAAC;YACpB,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,qBAAqB;YAChC,gBAAgB,EAAE,KAAK;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,EACD;IACE,qBAAqB,EAAE,OAAQ;CAChC,CACF,CAAC","sourcesContent":["import { IProduct, IQueryProductsRequest, provideQueryProductsService } from '@yuants/data-product';\nimport { Terminal } from '@yuants/protocol';\nimport { encodePath } from '@yuants/utils';\nimport { client } from './api';\n\nconst terminal = Terminal.fromNodeEnv();\n\n// Provide QueryProducts service with the new design\nconst cache = provideQueryProductsService(\n terminal,\n 'BINANCE',\n async (req: IQueryProductsRequest): Promise<IProduct[]> => {\n // Directly call the external API to get exchange info\n const exchangeInfo = await client.getFutureExchangeInfo();\n\n // Convert symbols to IProduct format\n return exchangeInfo.symbols.map((symbol): IProduct => {\n return {\n datasource_id: 'BINANCE',\n product_id: encodePath('usdt-future', symbol.symbol),\n base_currency: symbol.baseAsset,\n quote_currency: symbol.quoteAsset,\n price_step: +`1e-${symbol.pricePrecision}`,\n value_scale: 1,\n volume_step: +`1e-${symbol.quantityPrecision}`,\n name: `${symbol.baseAsset}/${symbol.quoteAsset} PERP`,\n value_scale_unit: '',\n margin_rate: +symbol.requiredMarginPercent / 100,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'BINANCE/USDT-FUTURE',\n no_interest_rate: false,\n };\n });\n },\n {\n auto_refresh_interval: 3600_000,\n },\n);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuants/vendor-binance",
3
- "version": "0.6.18",
3
+ "version": "0.6.20",
4
4
  "bin": "lib/cli.js",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -14,8 +14,8 @@
14
14
  "@yuants/utils": "0.8.0",
15
15
  "@yuants/data-series": "0.3.29",
16
16
  "@yuants/sql": "0.9.8",
17
- "@yuants/data-product": "0.2.18",
18
- "@yuants/data-ohlc": "0.3.25",
17
+ "@yuants/data-product": "0.3.0",
18
+ "@yuants/data-ohlc": "0.4.0",
19
19
  "@yuants/data-order": "0.2.14",
20
20
  "@yuants/data-interest-rate": "0.1.26",
21
21
  "@yuants/transfer": "0.2.17",
@@ -1,19 +1,19 @@
1
1
  {
2
- "apps/vendor-binance/CHANGELOG.json": "b1e59f05c85018a9728ece85bec7efc3487e4d51",
3
- "apps/vendor-binance/CHANGELOG.md": "9fc6945c885ad04c9856243dfae32ecb91c30a57",
2
+ "apps/vendor-binance/CHANGELOG.json": "5cb5c96e1eeb655ff01534025023e567f13e1553",
3
+ "apps/vendor-binance/CHANGELOG.md": "9748b4170c15fc7cc1f032acc21d167e2ac1b35b",
4
4
  "apps/vendor-binance/README.md": "4ab94c08b3d07398aee74c3264a4f87d554d20fa",
5
5
  "apps/vendor-binance/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
6
6
  "apps/vendor-binance/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
7
7
  "apps/vendor-binance/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
8
8
  "apps/vendor-binance/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
9
9
  "apps/vendor-binance/etc/vendor-binance.api.md": "2094b84e9b5e7503f5c42b31fffee8d7db47fe7b",
10
- "apps/vendor-binance/package.json": "baba6968f057f143c3da052e3b2c5e842d6c9a4f",
10
+ "apps/vendor-binance/package.json": "ace6b1b313473445d7856933603a75b92a478725",
11
11
  "apps/vendor-binance/src/api.ts": "6278b55e9330d8f49362f9ab4f7df1d9d021b93e",
12
12
  "apps/vendor-binance/src/cli.ts": "9bf6b5559a6c6f33da20e74cc6c5d702c60ec891",
13
13
  "apps/vendor-binance/src/index.ts": "fdac26f4c4a5093e3d647bddcd3c9998c2de7b4c",
14
14
  "apps/vendor-binance/src/interest_rate.ts": "ee82ea130495c151b67850a8b90ca972cb8a8d84",
15
15
  "apps/vendor-binance/src/legacy_index.ts": "afa3d84ef50d5ec097d670542e43d7c48be69fee",
16
- "apps/vendor-binance/src/product.ts": "89a3303613ed35d9dd3c3612860a62b2695db3ab",
16
+ "apps/vendor-binance/src/product.ts": "ea88fc2e6d0e57ee01d13131b26eb052d8f29fb7",
17
17
  "apps/vendor-binance/tsconfig.json": "81da8f78196974b5d15da0edb6b2d9f48641063c",
18
18
  "apps/vendor-binance/.rush/temp/shrinkwrap-deps.json": "80a5c76b2afe850118bafcd332e4a9d737d2e08e",
19
19
  "libraries/protocol/temp/package-deps.json": "ff231b7689ff7d151498b496f70944d4598fcf33",
@@ -21,8 +21,8 @@
21
21
  "libraries/utils/temp/package-deps.json": "56def945d0e67a9d0ca13447d2333155be0138f2",
22
22
  "libraries/data-series/temp/package-deps.json": "dd0d2f8322b484f074ae09c050ceb53fbc1368f4",
23
23
  "libraries/sql/temp/package-deps.json": "2da55e5e704b1c1558acab11b6df163744d1b24a",
24
- "libraries/data-product/temp/package-deps.json": "fceed1ec7ecb23e7e3f9c36bc0abd3f053a27c75",
25
- "libraries/data-ohlc/temp/package-deps.json": "6ae0a1249855ee2e1aefd88a66f6d0c4a1f61dd5",
24
+ "libraries/data-product/temp/package-deps.json": "7c61716062e33869b203755b1b7db894e713b46f",
25
+ "libraries/data-ohlc/temp/package-deps.json": "01c6d44d10c9b10895a1a30ffee94d98975ce5d0",
26
26
  "libraries/data-order/temp/package-deps.json": "add9a90c23442334f0575f403ef48dc33ceb5fd4",
27
27
  "libraries/data-interest-rate/temp/package-deps.json": "246f09881d5bce801a352861086d7e2b90eb5b6b",
28
28
  "libraries/transfer/temp/package-deps.json": "2a26e3db2d5ef3318172d1d29ca257bfa94d1b21",