@yuants/vendor-okx 0.32.1 → 0.32.2

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/index.js CHANGED
@@ -17,4 +17,5 @@ import './services/quotes';
17
17
  import './services/ohlc-service';
18
18
  import './services/interest-rate-service';
19
19
  import './services/interest-ledger-service';
20
+ import './services/trade-history-service';
20
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,mCAAmC,CAAC;AAC3C,OAAO,eAAe,CAAC;AACvB,OAAO,yBAAyB,CAAC;AACjC,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iCAAiC,CAAC;AACzC,OAAO,4BAA4B,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,YAAY,CAAC;AACpB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,SAAS,CAAC;AACjB,OAAO,YAAY,CAAC;AACpB,OAAO,yBAAyB,CAAC;AACjC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC","sourcesContent":["import './account';\nimport './account-actions-with-credential';\nimport './api-service';\nimport './experimental/exchange';\nimport './order';\nimport './order-actions';\nimport './order-actions-with-credential';\nimport './public-data/market-order';\nimport './public-data/ohlc';\nimport './public-data/quote';\nimport './services';\nimport './strategy-account';\nimport './trade';\nimport './transfer';\nimport './public-data/new-quote';\nimport './services/quotes';\nimport './services/ohlc-service';\nimport './services/interest-rate-service';\nimport './services/interest-ledger-service';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,mCAAmC,CAAC;AAC3C,OAAO,eAAe,CAAC;AACvB,OAAO,yBAAyB,CAAC;AACjC,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iCAAiC,CAAC;AACzC,OAAO,4BAA4B,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,YAAY,CAAC;AACpB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,SAAS,CAAC;AACjB,OAAO,YAAY,CAAC;AACpB,OAAO,yBAAyB,CAAC;AACjC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,kCAAkC,CAAC","sourcesContent":["import './account';\nimport './account-actions-with-credential';\nimport './api-service';\nimport './experimental/exchange';\nimport './order';\nimport './order-actions';\nimport './order-actions-with-credential';\nimport './public-data/market-order';\nimport './public-data/ohlc';\nimport './public-data/quote';\nimport './services';\nimport './strategy-account';\nimport './trade';\nimport './transfer';\nimport './public-data/new-quote';\nimport './services/quotes';\nimport './services/ohlc-service';\nimport './services/interest-rate-service';\nimport './services/interest-ledger-service';\nimport './services/trade-history-service';\n"]}
@@ -0,0 +1,59 @@
1
+ import { Terminal } from '@yuants/protocol';
2
+ import { encodePath, formatTime } from '@yuants/utils';
3
+ import { provideTradeHistoryService } from '@yuants/exchange';
4
+ import { getAccountBillsArchive } from '../api/private-api';
5
+ import { createClientProductCache } from '@yuants/data-product';
6
+ const terminal = Terminal.fromNodeEnv();
7
+ const productsCache = createClientProductCache(terminal, { expire: 7200000 });
8
+ const WINDOW_MS = 10 * 24 * 3600000;
9
+ const fetchTradeHistoryBackward = async (req) => {
10
+ var _a;
11
+ if (req.trade_type === 'USDT_SWAP') {
12
+ const res = await getAccountBillsArchive(req.credential.payload, {
13
+ type: '2',
14
+ instType: 'SWAP',
15
+ end: req.time.toString(),
16
+ begin: (req.time - WINDOW_MS).toString(),
17
+ });
18
+ return (await Promise.all(((_a = res.data) !== null && _a !== void 0 ? _a : []).map(async (v) => {
19
+ const ms = Number(v.ts);
20
+ let direction = 'OPEN_LONG';
21
+ if (v.subType === '1')
22
+ direction = 'OPEN_LONG';
23
+ if (v.subType === '2')
24
+ direction = 'CLOSE_LONG';
25
+ if (v.subType === '3')
26
+ direction = 'OPEN_LONG';
27
+ if (v.subType === '4')
28
+ direction = 'OPEN_SHORT';
29
+ if (v.subType === '5')
30
+ direction = 'CLOSE_LONG';
31
+ if (v.subType === '6')
32
+ direction = 'CLOSE_SHORT';
33
+ const product_id = encodePath('OKX', v.instType, v.instId);
34
+ const product = await productsCache.query(product_id);
35
+ if (!product)
36
+ return;
37
+ const size = (Number(v.sz) * Number(product.value_scale)).toString();
38
+ return {
39
+ id: v.billId,
40
+ product_id,
41
+ size,
42
+ account_id: req.account_id,
43
+ direction,
44
+ price: v.px,
45
+ fee: v.fee,
46
+ fee_currency: v.ccy,
47
+ pnl: v.pnl,
48
+ created_at: formatTime(ms),
49
+ };
50
+ }))).filter((x) => !!x && Date.parse(x.created_at) <= req.time);
51
+ }
52
+ return [];
53
+ };
54
+ provideTradeHistoryService(terminal, {
55
+ direction: 'backward',
56
+ type: 'OKX',
57
+ trade_type: ['USDT_SWAP'],
58
+ }, fetchTradeHistoryBackward);
59
+ //# sourceMappingURL=trade-history-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-history-service.js","sourceRoot":"","sources":["../../src/services/trade-history-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Terminal } from '@yuants/protocol';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { provideTradeHistoryService } from '@yuants/exchange';\nimport { getAccountBillsArchive } from '../api/private-api';\nimport { ITradeHistory } from '@yuants/data-trade';\nimport { createClientProductCache } from '@yuants/data-product';\ninterface IExchangeCredential {\n type: string;\n payload: any;\n}\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst productsCache = createClientProductCache(terminal, { expire: 7200_000 });\n\nconst WINDOW_MS = 10 * 24 * 3600_000;\nconst fetchTradeHistoryBackward = async (req: {\n credential: IExchangeCredential;\n account_id: string;\n time: number;\n trade_type: string;\n}): Promise<ITradeHistory[]> => {\n if (req.trade_type === 'USDT_SWAP') {\n const res = await getAccountBillsArchive(req.credential.payload, {\n type: '2',\n instType: 'SWAP',\n end: req.time.toString(),\n begin: (req.time - WINDOW_MS).toString(),\n });\n return (\n await Promise.all(\n (res.data ?? []).map(async (v): Promise<ITradeHistory | undefined> => {\n const ms = Number(v.ts);\n let direction = 'OPEN_LONG';\n if (v.subType === '1') direction = 'OPEN_LONG';\n if (v.subType === '2') direction = 'CLOSE_LONG';\n if (v.subType === '3') direction = 'OPEN_LONG';\n if (v.subType === '4') direction = 'OPEN_SHORT';\n if (v.subType === '5') direction = 'CLOSE_LONG';\n if (v.subType === '6') direction = 'CLOSE_SHORT';\n const product_id = encodePath('OKX', v.instType, v.instId);\n const product = await productsCache.query(product_id);\n if (!product) return;\n const size = (Number(v.sz) * Number(product.value_scale)).toString();\n return {\n id: v.billId,\n product_id,\n size,\n account_id: req.account_id,\n direction,\n price: v.px,\n fee: v.fee,\n fee_currency: v.ccy,\n pnl: v.pnl,\n created_at: formatTime(ms),\n } as ITradeHistory;\n }),\n )\n ).filter((x): x is Exclude<typeof x, undefined> => !!x && Date.parse(x.created_at!) <= req.time);\n }\n return [];\n};\n\nprovideTradeHistoryService(\n terminal,\n {\n direction: 'backward',\n type: 'OKX',\n trade_type: ['USDT_SWAP'],\n },\n fetchTradeHistoryBackward,\n);\n"]}
package/lib/index.d.ts CHANGED
@@ -17,4 +17,5 @@ import './services/quotes';
17
17
  import './services/ohlc-service';
18
18
  import './services/interest-rate-service';
19
19
  import './services/interest-ledger-service';
20
+ import './services/trade-history-service';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,mCAAmC,CAAC;AAC3C,OAAO,eAAe,CAAC;AACvB,OAAO,yBAAyB,CAAC;AACjC,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iCAAiC,CAAC;AACzC,OAAO,4BAA4B,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,YAAY,CAAC;AACpB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,SAAS,CAAC;AACjB,OAAO,YAAY,CAAC;AACpB,OAAO,yBAAyB,CAAC;AACjC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,mCAAmC,CAAC;AAC3C,OAAO,eAAe,CAAC;AACvB,OAAO,yBAAyB,CAAC;AACjC,OAAO,SAAS,CAAC;AACjB,OAAO,iBAAiB,CAAC;AACzB,OAAO,iCAAiC,CAAC;AACzC,OAAO,4BAA4B,CAAC;AACpC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,YAAY,CAAC;AACpB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,SAAS,CAAC;AACjB,OAAO,YAAY,CAAC;AACpB,OAAO,yBAAyB,CAAC;AACjC,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,kCAAkC,CAAC;AAC1C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,kCAAkC,CAAC"}
package/lib/index.js CHANGED
@@ -19,4 +19,5 @@ require("./services/quotes");
19
19
  require("./services/ohlc-service");
20
20
  require("./services/interest-rate-service");
21
21
  require("./services/interest-ledger-service");
22
+ require("./services/trade-history-service");
22
23
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,qBAAmB;AACnB,6CAA2C;AAC3C,yBAAuB;AACvB,mCAAiC;AACjC,mBAAiB;AACjB,2BAAyB;AACzB,2CAAyC;AACzC,sCAAoC;AACpC,8BAA4B;AAC5B,+BAA6B;AAC7B,sBAAoB;AACpB,8BAA4B;AAC5B,mBAAiB;AACjB,sBAAoB;AACpB,mCAAiC;AACjC,6BAA2B;AAC3B,mCAAiC;AACjC,4CAA0C;AAC1C,8CAA4C","sourcesContent":["import './account';\nimport './account-actions-with-credential';\nimport './api-service';\nimport './experimental/exchange';\nimport './order';\nimport './order-actions';\nimport './order-actions-with-credential';\nimport './public-data/market-order';\nimport './public-data/ohlc';\nimport './public-data/quote';\nimport './services';\nimport './strategy-account';\nimport './trade';\nimport './transfer';\nimport './public-data/new-quote';\nimport './services/quotes';\nimport './services/ohlc-service';\nimport './services/interest-rate-service';\nimport './services/interest-ledger-service';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,qBAAmB;AACnB,6CAA2C;AAC3C,yBAAuB;AACvB,mCAAiC;AACjC,mBAAiB;AACjB,2BAAyB;AACzB,2CAAyC;AACzC,sCAAoC;AACpC,8BAA4B;AAC5B,+BAA6B;AAC7B,sBAAoB;AACpB,8BAA4B;AAC5B,mBAAiB;AACjB,sBAAoB;AACpB,mCAAiC;AACjC,6BAA2B;AAC3B,mCAAiC;AACjC,4CAA0C;AAC1C,8CAA4C;AAC5C,4CAA0C","sourcesContent":["import './account';\nimport './account-actions-with-credential';\nimport './api-service';\nimport './experimental/exchange';\nimport './order';\nimport './order-actions';\nimport './order-actions-with-credential';\nimport './public-data/market-order';\nimport './public-data/ohlc';\nimport './public-data/quote';\nimport './services';\nimport './strategy-account';\nimport './trade';\nimport './transfer';\nimport './public-data/new-quote';\nimport './services/quotes';\nimport './services/ohlc-service';\nimport './services/interest-rate-service';\nimport './services/interest-ledger-service';\nimport './services/trade-history-service';\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trade-history-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-history-service.d.ts","sourceRoot":"","sources":["../../src/services/trade-history-service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const protocol_1 = require("@yuants/protocol");
4
+ const utils_1 = require("@yuants/utils");
5
+ const exchange_1 = require("@yuants/exchange");
6
+ const private_api_1 = require("../api/private-api");
7
+ const data_product_1 = require("@yuants/data-product");
8
+ const terminal = protocol_1.Terminal.fromNodeEnv();
9
+ const productsCache = (0, data_product_1.createClientProductCache)(terminal, { expire: 7200000 });
10
+ const WINDOW_MS = 10 * 24 * 3600000;
11
+ const fetchTradeHistoryBackward = async (req) => {
12
+ var _a;
13
+ if (req.trade_type === 'USDT_SWAP') {
14
+ const res = await (0, private_api_1.getAccountBillsArchive)(req.credential.payload, {
15
+ type: '2',
16
+ instType: 'SWAP',
17
+ end: req.time.toString(),
18
+ begin: (req.time - WINDOW_MS).toString(),
19
+ });
20
+ return (await Promise.all(((_a = res.data) !== null && _a !== void 0 ? _a : []).map(async (v) => {
21
+ const ms = Number(v.ts);
22
+ let direction = 'OPEN_LONG';
23
+ if (v.subType === '1')
24
+ direction = 'OPEN_LONG';
25
+ if (v.subType === '2')
26
+ direction = 'CLOSE_LONG';
27
+ if (v.subType === '3')
28
+ direction = 'OPEN_LONG';
29
+ if (v.subType === '4')
30
+ direction = 'OPEN_SHORT';
31
+ if (v.subType === '5')
32
+ direction = 'CLOSE_LONG';
33
+ if (v.subType === '6')
34
+ direction = 'CLOSE_SHORT';
35
+ const product_id = (0, utils_1.encodePath)('OKX', v.instType, v.instId);
36
+ const product = await productsCache.query(product_id);
37
+ if (!product)
38
+ return;
39
+ const size = (Number(v.sz) * Number(product.value_scale)).toString();
40
+ return {
41
+ id: v.billId,
42
+ product_id,
43
+ size,
44
+ account_id: req.account_id,
45
+ direction,
46
+ price: v.px,
47
+ fee: v.fee,
48
+ fee_currency: v.ccy,
49
+ pnl: v.pnl,
50
+ created_at: (0, utils_1.formatTime)(ms),
51
+ };
52
+ }))).filter((x) => !!x && Date.parse(x.created_at) <= req.time);
53
+ }
54
+ return [];
55
+ };
56
+ (0, exchange_1.provideTradeHistoryService)(terminal, {
57
+ direction: 'backward',
58
+ type: 'OKX',
59
+ trade_type: ['USDT_SWAP'],
60
+ }, fetchTradeHistoryBackward);
61
+ //# sourceMappingURL=trade-history-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trade-history-service.js","sourceRoot":"","sources":["../../src/services/trade-history-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Terminal } from '@yuants/protocol';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { provideTradeHistoryService } from '@yuants/exchange';\nimport { getAccountBillsArchive } from '../api/private-api';\nimport { ITradeHistory } from '@yuants/data-trade';\nimport { createClientProductCache } from '@yuants/data-product';\ninterface IExchangeCredential {\n type: string;\n payload: any;\n}\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst productsCache = createClientProductCache(terminal, { expire: 7200_000 });\n\nconst WINDOW_MS = 10 * 24 * 3600_000;\nconst fetchTradeHistoryBackward = async (req: {\n credential: IExchangeCredential;\n account_id: string;\n time: number;\n trade_type: string;\n}): Promise<ITradeHistory[]> => {\n if (req.trade_type === 'USDT_SWAP') {\n const res = await getAccountBillsArchive(req.credential.payload, {\n type: '2',\n instType: 'SWAP',\n end: req.time.toString(),\n begin: (req.time - WINDOW_MS).toString(),\n });\n return (\n await Promise.all(\n (res.data ?? []).map(async (v): Promise<ITradeHistory | undefined> => {\n const ms = Number(v.ts);\n let direction = 'OPEN_LONG';\n if (v.subType === '1') direction = 'OPEN_LONG';\n if (v.subType === '2') direction = 'CLOSE_LONG';\n if (v.subType === '3') direction = 'OPEN_LONG';\n if (v.subType === '4') direction = 'OPEN_SHORT';\n if (v.subType === '5') direction = 'CLOSE_LONG';\n if (v.subType === '6') direction = 'CLOSE_SHORT';\n const product_id = encodePath('OKX', v.instType, v.instId);\n const product = await productsCache.query(product_id);\n if (!product) return;\n const size = (Number(v.sz) * Number(product.value_scale)).toString();\n return {\n id: v.billId,\n product_id,\n size,\n account_id: req.account_id,\n direction,\n price: v.px,\n fee: v.fee,\n fee_currency: v.ccy,\n pnl: v.pnl,\n created_at: formatTime(ms),\n } as ITradeHistory;\n }),\n )\n ).filter((x): x is Exclude<typeof x, undefined> => !!x && Date.parse(x.created_at!) <= req.time);\n }\n return [];\n};\n\nprovideTradeHistoryService(\n terminal,\n {\n direction: 'backward',\n type: 'OKX',\n trade_type: ['USDT_SWAP'],\n },\n fetchTradeHistoryBackward,\n);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuants/vendor-okx",
3
- "version": "0.32.1",
3
+ "version": "0.32.2",
4
4
  "main": "lib/index.js",
5
5
  "files": [
6
6
  "dist",
@@ -10,20 +10,20 @@
10
10
  "dependencies": {
11
11
  "rxjs": "~7.5.6",
12
12
  "ws": "~8.8.1",
13
- "@yuants/transfer": "0.2.48",
14
- "@yuants/data-account": "0.11.8",
15
13
  "@yuants/protocol": "0.54.1",
16
14
  "@yuants/data-order": "0.7.9",
15
+ "@yuants/data-account": "0.11.8",
16
+ "@yuants/transfer": "0.2.48",
17
17
  "@yuants/utils": "0.19.4",
18
18
  "@yuants/cache": "0.3.12",
19
19
  "@yuants/sql": "0.9.39",
20
20
  "@yuants/data-series": "0.3.61",
21
- "@yuants/data-ohlc": "0.6.4",
22
21
  "@yuants/data-product": "0.5.9",
23
22
  "@yuants/data-interest-rate": "0.2.8",
24
- "@yuants/data-quote": "0.4.8",
25
- "@yuants/data-trade": "0.1.30",
26
- "@yuants/exchange": "0.8.12"
23
+ "@yuants/data-ohlc": "0.6.4",
24
+ "@yuants/data-trade": "0.1.31",
25
+ "@yuants/exchange": "0.8.13",
26
+ "@yuants/data-quote": "0.4.8"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@microsoft/api-extractor": "~7.55.2",
@@ -35,8 +35,8 @@
35
35
  "typescript": "~5.9.3",
36
36
  "ts-node": "~10.9.2",
37
37
  "@types/ws": "~8.5.3",
38
- "@yuants/extension": "0.2.40",
39
- "@yuants/tool-kit": "0.2.2"
38
+ "@yuants/tool-kit": "0.2.2",
39
+ "@yuants/extension": "0.2.40"
40
40
  },
41
41
  "publishConfig": {
42
42
  "registry": "https://registry.npmjs.org",