@yuants/vendor-okx 0.20.1 → 0.20.3
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/ohlc.js +17 -16
- package/dist/ohlc.js.map +1 -1
- package/lib/ohlc.js +17 -16
- package/lib/ohlc.js.map +1 -1
- package/package.json +13 -13
- package/temp/image-tag +1 -1
- package/temp/package-deps.json +16 -16
package/dist/ohlc.js
CHANGED
|
@@ -37,19 +37,19 @@ const DURATION_TO_OKX_BAR_TYPE = {
|
|
|
37
37
|
P1M: '1M',
|
|
38
38
|
};
|
|
39
39
|
const DURATION_TO_OKX_CANDLE_TYPE = {
|
|
40
|
-
PT1M: '
|
|
41
|
-
PT3M: '
|
|
42
|
-
PT5M: '
|
|
43
|
-
PT15M: '
|
|
44
|
-
PT30M: '
|
|
45
|
-
PT1H: '
|
|
46
|
-
PT2H: '
|
|
47
|
-
PT4H: '
|
|
48
|
-
PT6H: '
|
|
49
|
-
PT12H: '
|
|
50
|
-
P1D: '
|
|
51
|
-
P1W: '
|
|
52
|
-
P1M: '
|
|
40
|
+
PT1M: 'candle1m',
|
|
41
|
+
PT3M: 'candle3m',
|
|
42
|
+
PT5M: 'candle5m',
|
|
43
|
+
PT15M: 'candle15m',
|
|
44
|
+
PT30M: 'candle30m',
|
|
45
|
+
PT1H: 'candle1H',
|
|
46
|
+
PT2H: 'candle2H',
|
|
47
|
+
PT4H: 'candle4H',
|
|
48
|
+
PT6H: 'candle6H',
|
|
49
|
+
PT12H: 'candle12H',
|
|
50
|
+
P1D: 'candle1D',
|
|
51
|
+
P1W: 'candle1W',
|
|
52
|
+
P1M: 'candle1M',
|
|
53
53
|
};
|
|
54
54
|
createSeriesProvider(Terminal.fromNodeEnv(), {
|
|
55
55
|
tableName: 'ohlc',
|
|
@@ -127,21 +127,22 @@ Terminal.fromNodeEnv().channel.publishChannel('ohlc', { pattern: `^OKX/` }, (ser
|
|
|
127
127
|
throw 'duration is invalid';
|
|
128
128
|
}
|
|
129
129
|
const candleType = DURATION_TO_OKX_CANDLE_TYPE[duration];
|
|
130
|
-
console.info(formatTime(Date.now()), `subscribe`, series_id);
|
|
130
|
+
console.info(formatTime(Date.now()), `subscribe`, series_id, product_id);
|
|
131
131
|
return new Observable((subscriber) => {
|
|
132
132
|
console.info(formatTime(Date.now()), `subscribe`, candleType, instId);
|
|
133
133
|
const okxBusinessWsClient = new OKXWsClient('ws/v5/business');
|
|
134
134
|
okxBusinessWsClient.subscribe(candleType, instId, async (data) => {
|
|
135
|
+
console.info(formatTime(Date.now()), `#######Data`, data);
|
|
135
136
|
const created_at = Number(data[0]);
|
|
136
137
|
const closed_at = created_at + offset;
|
|
137
138
|
const open = data[1];
|
|
138
139
|
const high = data[2];
|
|
139
140
|
const low = data[3];
|
|
140
141
|
const close = data[4];
|
|
142
|
+
const volume = data[5];
|
|
141
143
|
if (isNaN(closed_at)) {
|
|
142
144
|
return;
|
|
143
145
|
}
|
|
144
|
-
console.info(formatTime(Date.now()), `insertData`, data);
|
|
145
146
|
const cancelData = {
|
|
146
147
|
closed_at: formatTime(closed_at),
|
|
147
148
|
created_at: formatTime(created_at),
|
|
@@ -153,7 +154,7 @@ Terminal.fromNodeEnv().channel.publishChannel('ohlc', { pattern: `^OKX/` }, (ser
|
|
|
153
154
|
datasource_id,
|
|
154
155
|
duration,
|
|
155
156
|
product_id,
|
|
156
|
-
volume
|
|
157
|
+
volume,
|
|
157
158
|
open_interest: '0',
|
|
158
159
|
};
|
|
159
160
|
subscriber.next(cancelData);
|
package/dist/ohlc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc.js","sourceRoot":"","sources":["../src/ohlc.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,UAAU,EAAM,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,aAAa;AACb,gCAAgC;AAChC,8BAA8B;AAC9B,8CAA8C;AAE9C,MAAM,wBAAwB,GAA2B;IACvD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IAEZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IAEZ,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,2BAA2B,GAA2B;IAC1D,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"ohlc.js","sourceRoot":"","sources":["../src/ohlc.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOHLC } from '@yuants/data-ohlc';\nimport { createSeriesProvider } from '@yuants/data-series';\nimport { Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, encodePath, formatTime } from '@yuants/utils';\nimport { firstValueFrom, Observable, of, timer } from 'rxjs';\nimport { client } from './api';\nimport { OKXWsClient } from './websocket';\nimport { writeToSQL } from '@yuants/sql';\n\n// 时间粒度,默认值1m\n// 如 [1m/3m/5m/15m/30m/1H/2H/4H]\n// 香港时间开盘价k线:[6H/12H/1D/1W/1M]\n// UTC时间开盘价k线:[6Hutc/12Hutc/1Dutc/1Wutc/1Mutc]\n\nconst DURATION_TO_OKX_BAR_TYPE: Record<string, string> = {\n PT1M: '1m',\n PT3M: '3m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n\n PT1H: '1H',\n PT2H: '2H',\n PT4H: '4H',\n PT6H: '6H',\n PT12H: '12H',\n\n P1D: '1D',\n P1W: '1W',\n P1M: '1M',\n};\n\nconst DURATION_TO_OKX_CANDLE_TYPE: Record<string, string> = {\n PT1M: 'candle1m',\n PT3M: 'candle3m',\n PT5M: 'candle5m',\n PT15M: 'candle15m',\n PT30M: 'candle30m',\n\n PT1H: 'candle1H',\n PT2H: 'candle2H',\n PT4H: 'candle4H',\n PT6H: 'candle6H',\n PT12H: 'candle12H',\n\n P1D: 'candle1D',\n P1W: 'candle1W',\n P1M: 'candle1M',\n};\n\ncreateSeriesProvider<IOHLC>(Terminal.fromNodeEnv(), {\n tableName: 'ohlc',\n series_id_prefix_parts: ['OKX'],\n reversed: true,\n serviceOptions: { concurrent: 1 },\n queryFn: async function* ({ series_id, ended_at }) {\n const [datasource_id, product_id, duration] = decodePath(series_id);\n const offset = convertDurationToOffset(duration);\n if (!datasource_id) {\n throw 'datasource_id is required';\n }\n if (!product_id) {\n throw 'product_id is required';\n }\n if (!offset) {\n throw 'duration is invalid';\n }\n const [instType, instId] = decodePath(product_id);\n if (!instId) {\n throw `invalid product_id: ${product_id}`;\n }\n\n const bar = DURATION_TO_OKX_BAR_TYPE[duration];\n if (!bar) {\n throw `unsupported duration: ${duration}`;\n }\n\n let currentStartTime = ended_at;\n\n while (true) {\n // 向前翻页,时间降序,不含 after 时间点\n const res = await client.getHistoryCandles({\n instId,\n bar,\n after: `${currentStartTime}`,\n limit: '100',\n });\n if (res.code !== '0') {\n throw `API failed: ${res.code} ${res.msg}`;\n }\n if (res.data.length === 0) break;\n currentStartTime = +res.data[res.data.length - 1][0];\n const data = res.data.map(\n (x): IOHLC => ({\n series_id,\n datasource_id,\n product_id,\n duration,\n created_at: formatTime(+x[0]),\n closed_at: formatTime(+x[0] + offset),\n open: x[1],\n high: x[2],\n low: x[3],\n close: x[4],\n volume: x[5],\n open_interest: '0',\n }),\n );\n yield data;\n await firstValueFrom(timer(1000));\n }\n },\n});\n\nTerminal.fromNodeEnv().channel.publishChannel('ohlc', { pattern: `^OKX/` }, (series_id) => {\n // const [] = decodePath(args)\n const [datasource_id, product_id, duration] = decodePath(series_id);\n const [, instId] = decodePath(product_id);\n const offset = convertDurationToOffset(duration);\n if (!datasource_id) {\n throw 'datasource_id is required';\n }\n if (!product_id) {\n throw 'product_id is required';\n }\n if (!offset) {\n throw 'duration is invalid';\n }\n const candleType = DURATION_TO_OKX_CANDLE_TYPE[duration];\n console.info(formatTime(Date.now()), `subscribe`, series_id, product_id);\n return new Observable<IOHLC>((subscriber) => {\n console.info(formatTime(Date.now()), `subscribe`, candleType, instId);\n const okxBusinessWsClient = new OKXWsClient('ws/v5/business');\n okxBusinessWsClient.subscribe(candleType, instId, async (data: string[]) => {\n console.info(formatTime(Date.now()), `#######Data`, data);\n const created_at = Number(data[0]);\n const closed_at = created_at + offset;\n const open = data[1];\n const high = data[2];\n const low = data[3];\n const close = data[4];\n const volume = data[5];\n if (isNaN(closed_at)) {\n return;\n }\n const cancelData: IOHLC = {\n closed_at: formatTime(closed_at),\n created_at: formatTime(created_at),\n open,\n high,\n low,\n close,\n series_id,\n datasource_id,\n duration,\n product_id,\n volume,\n open_interest: '0',\n };\n subscriber.next(cancelData);\n });\n return () => {\n okxBusinessWsClient.unsubscribe(candleType, instId);\n };\n }).pipe(\n writeToSQL({\n tableName: 'ohlc',\n conflictKeys: ['created_at', 'series_id'],\n writeInterval: 1000,\n terminal: Terminal.fromNodeEnv(),\n keyFn: (x) => encodePath(x.created_at, x.series_id),\n }),\n );\n});\n"]}
|
package/lib/ohlc.js
CHANGED
|
@@ -39,19 +39,19 @@ const DURATION_TO_OKX_BAR_TYPE = {
|
|
|
39
39
|
P1M: '1M',
|
|
40
40
|
};
|
|
41
41
|
const DURATION_TO_OKX_CANDLE_TYPE = {
|
|
42
|
-
PT1M: '
|
|
43
|
-
PT3M: '
|
|
44
|
-
PT5M: '
|
|
45
|
-
PT15M: '
|
|
46
|
-
PT30M: '
|
|
47
|
-
PT1H: '
|
|
48
|
-
PT2H: '
|
|
49
|
-
PT4H: '
|
|
50
|
-
PT6H: '
|
|
51
|
-
PT12H: '
|
|
52
|
-
P1D: '
|
|
53
|
-
P1W: '
|
|
54
|
-
P1M: '
|
|
42
|
+
PT1M: 'candle1m',
|
|
43
|
+
PT3M: 'candle3m',
|
|
44
|
+
PT5M: 'candle5m',
|
|
45
|
+
PT15M: 'candle15m',
|
|
46
|
+
PT30M: 'candle30m',
|
|
47
|
+
PT1H: 'candle1H',
|
|
48
|
+
PT2H: 'candle2H',
|
|
49
|
+
PT4H: 'candle4H',
|
|
50
|
+
PT6H: 'candle6H',
|
|
51
|
+
PT12H: 'candle12H',
|
|
52
|
+
P1D: 'candle1D',
|
|
53
|
+
P1W: 'candle1W',
|
|
54
|
+
P1M: 'candle1M',
|
|
55
55
|
};
|
|
56
56
|
(0, data_series_1.createSeriesProvider)(protocol_1.Terminal.fromNodeEnv(), {
|
|
57
57
|
tableName: 'ohlc',
|
|
@@ -129,21 +129,22 @@ protocol_1.Terminal.fromNodeEnv().channel.publishChannel('ohlc', { pattern: `^OK
|
|
|
129
129
|
throw 'duration is invalid';
|
|
130
130
|
}
|
|
131
131
|
const candleType = DURATION_TO_OKX_CANDLE_TYPE[duration];
|
|
132
|
-
console.info((0, utils_1.formatTime)(Date.now()), `subscribe`, series_id);
|
|
132
|
+
console.info((0, utils_1.formatTime)(Date.now()), `subscribe`, series_id, product_id);
|
|
133
133
|
return new rxjs_1.Observable((subscriber) => {
|
|
134
134
|
console.info((0, utils_1.formatTime)(Date.now()), `subscribe`, candleType, instId);
|
|
135
135
|
const okxBusinessWsClient = new websocket_1.OKXWsClient('ws/v5/business');
|
|
136
136
|
okxBusinessWsClient.subscribe(candleType, instId, async (data) => {
|
|
137
|
+
console.info((0, utils_1.formatTime)(Date.now()), `#######Data`, data);
|
|
137
138
|
const created_at = Number(data[0]);
|
|
138
139
|
const closed_at = created_at + offset;
|
|
139
140
|
const open = data[1];
|
|
140
141
|
const high = data[2];
|
|
141
142
|
const low = data[3];
|
|
142
143
|
const close = data[4];
|
|
144
|
+
const volume = data[5];
|
|
143
145
|
if (isNaN(closed_at)) {
|
|
144
146
|
return;
|
|
145
147
|
}
|
|
146
|
-
console.info((0, utils_1.formatTime)(Date.now()), `insertData`, data);
|
|
147
148
|
const cancelData = {
|
|
148
149
|
closed_at: (0, utils_1.formatTime)(closed_at),
|
|
149
150
|
created_at: (0, utils_1.formatTime)(created_at),
|
|
@@ -155,7 +156,7 @@ protocol_1.Terminal.fromNodeEnv().channel.publishChannel('ohlc', { pattern: `^OK
|
|
|
155
156
|
datasource_id,
|
|
156
157
|
duration,
|
|
157
158
|
product_id,
|
|
158
|
-
volume
|
|
159
|
+
volume,
|
|
159
160
|
open_interest: '0',
|
|
160
161
|
};
|
|
161
162
|
subscriber.next(cancelData);
|
package/lib/ohlc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc.js","sourceRoot":"","sources":["../src/ohlc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,qDAA2D;AAC3D,+CAA4C;AAC5C,yCAA4F;AAC5F,+BAA6D;AAC7D,+BAA+B;AAC/B,2CAA0C;AAC1C,qCAAyC;AAEzC,aAAa;AACb,gCAAgC;AAChC,8BAA8B;AAC9B,8CAA8C;AAE9C,MAAM,wBAAwB,GAA2B;IACvD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IAEZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IAEZ,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,2BAA2B,GAA2B;IAC1D,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"ohlc.js","sourceRoot":"","sources":["../src/ohlc.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOHLC } from '@yuants/data-ohlc';\nimport { createSeriesProvider } from '@yuants/data-series';\nimport { Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, encodePath, formatTime } from '@yuants/utils';\nimport { firstValueFrom, Observable, of, timer } from 'rxjs';\nimport { client } from './api';\nimport { OKXWsClient } from './websocket';\nimport { writeToSQL } from '@yuants/sql';\n\n// 时间粒度,默认值1m\n// 如 [1m/3m/5m/15m/30m/1H/2H/4H]\n// 香港时间开盘价k线:[6H/12H/1D/1W/1M]\n// UTC时间开盘价k线:[6Hutc/12Hutc/1Dutc/1Wutc/1Mutc]\n\nconst DURATION_TO_OKX_BAR_TYPE: Record<string, string> = {\n PT1M: '1m',\n PT3M: '3m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n\n PT1H: '1H',\n PT2H: '2H',\n PT4H: '4H',\n PT6H: '6H',\n PT12H: '12H',\n\n P1D: '1D',\n P1W: '1W',\n P1M: '1M',\n};\n\nconst DURATION_TO_OKX_CANDLE_TYPE: Record<string, string> = {\n PT1M: 'candle1m',\n PT3M: 'candle3m',\n PT5M: 'candle5m',\n PT15M: 'candle15m',\n PT30M: 'candle30m',\n\n PT1H: 'candle1H',\n PT2H: 'candle2H',\n PT4H: 'candle4H',\n PT6H: 'candle6H',\n PT12H: 'candle12H',\n\n P1D: 'candle1D',\n P1W: 'candle1W',\n P1M: 'candle1M',\n};\n\ncreateSeriesProvider<IOHLC>(Terminal.fromNodeEnv(), {\n tableName: 'ohlc',\n series_id_prefix_parts: ['OKX'],\n reversed: true,\n serviceOptions: { concurrent: 1 },\n queryFn: async function* ({ series_id, ended_at }) {\n const [datasource_id, product_id, duration] = decodePath(series_id);\n const offset = convertDurationToOffset(duration);\n if (!datasource_id) {\n throw 'datasource_id is required';\n }\n if (!product_id) {\n throw 'product_id is required';\n }\n if (!offset) {\n throw 'duration is invalid';\n }\n const [instType, instId] = decodePath(product_id);\n if (!instId) {\n throw `invalid product_id: ${product_id}`;\n }\n\n const bar = DURATION_TO_OKX_BAR_TYPE[duration];\n if (!bar) {\n throw `unsupported duration: ${duration}`;\n }\n\n let currentStartTime = ended_at;\n\n while (true) {\n // 向前翻页,时间降序,不含 after 时间点\n const res = await client.getHistoryCandles({\n instId,\n bar,\n after: `${currentStartTime}`,\n limit: '100',\n });\n if (res.code !== '0') {\n throw `API failed: ${res.code} ${res.msg}`;\n }\n if (res.data.length === 0) break;\n currentStartTime = +res.data[res.data.length - 1][0];\n const data = res.data.map(\n (x): IOHLC => ({\n series_id,\n datasource_id,\n product_id,\n duration,\n created_at: formatTime(+x[0]),\n closed_at: formatTime(+x[0] + offset),\n open: x[1],\n high: x[2],\n low: x[3],\n close: x[4],\n volume: x[5],\n open_interest: '0',\n }),\n );\n yield data;\n await firstValueFrom(timer(1000));\n }\n },\n});\n\nTerminal.fromNodeEnv().channel.publishChannel('ohlc', { pattern: `^OKX/` }, (series_id) => {\n // const [] = decodePath(args)\n const [datasource_id, product_id, duration] = decodePath(series_id);\n const [, instId] = decodePath(product_id);\n const offset = convertDurationToOffset(duration);\n if (!datasource_id) {\n throw 'datasource_id is required';\n }\n if (!product_id) {\n throw 'product_id is required';\n }\n if (!offset) {\n throw 'duration is invalid';\n }\n const candleType = DURATION_TO_OKX_CANDLE_TYPE[duration];\n console.info(formatTime(Date.now()), `subscribe`, series_id, product_id);\n return new Observable<IOHLC>((subscriber) => {\n console.info(formatTime(Date.now()), `subscribe`, candleType, instId);\n const okxBusinessWsClient = new OKXWsClient('ws/v5/business');\n okxBusinessWsClient.subscribe(candleType, instId, async (data: string[]) => {\n console.info(formatTime(Date.now()), `#######Data`, data);\n const created_at = Number(data[0]);\n const closed_at = created_at + offset;\n const open = data[1];\n const high = data[2];\n const low = data[3];\n const close = data[4];\n const volume = data[5];\n if (isNaN(closed_at)) {\n return;\n }\n const cancelData: IOHLC = {\n closed_at: formatTime(closed_at),\n created_at: formatTime(created_at),\n open,\n high,\n low,\n close,\n series_id,\n datasource_id,\n duration,\n product_id,\n volume,\n open_interest: '0',\n };\n subscriber.next(cancelData);\n });\n return () => {\n okxBusinessWsClient.unsubscribe(candleType, instId);\n };\n }).pipe(\n writeToSQL({\n tableName: 'ohlc',\n conflictKeys: ['created_at', 'series_id'],\n writeInterval: 1000,\n terminal: Terminal.fromNodeEnv(),\n keyFn: (x) => encodePath(x.created_at, x.series_id),\n }),\n );\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuants/vendor-okx",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.3",
|
|
4
4
|
"bin": "lib/cli.js",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
"temp"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@yuants/protocol": "0.
|
|
13
|
-
"@yuants/transfer": "0.2.
|
|
14
|
-
"@yuants/data-account": "0.3.
|
|
15
|
-
"@yuants/data-order": "0.2.
|
|
12
|
+
"@yuants/protocol": "0.38.0",
|
|
13
|
+
"@yuants/transfer": "0.2.6",
|
|
14
|
+
"@yuants/data-account": "0.3.7",
|
|
15
|
+
"@yuants/data-order": "0.2.3",
|
|
16
16
|
"@yuants/utils": "0.6.0",
|
|
17
|
-
"@yuants/sql": "0.8.
|
|
18
|
-
"@yuants/data-series": "0.3.
|
|
19
|
-
"@yuants/data-product": "0.2.
|
|
20
|
-
"@yuants/data-ohlc": "0.3.
|
|
21
|
-
"@yuants/data-interest-rate": "0.1.
|
|
22
|
-
"@yuants/data-quote": "0.2.
|
|
23
|
-
"@yuants/data-trade": "0.0.
|
|
24
|
-
"@yuants/secret": "0.2.
|
|
17
|
+
"@yuants/sql": "0.8.5",
|
|
18
|
+
"@yuants/data-series": "0.3.18",
|
|
19
|
+
"@yuants/data-product": "0.2.7",
|
|
20
|
+
"@yuants/data-ohlc": "0.3.14",
|
|
21
|
+
"@yuants/data-interest-rate": "0.1.15",
|
|
22
|
+
"@yuants/data-quote": "0.2.10",
|
|
23
|
+
"@yuants/data-trade": "0.0.3",
|
|
24
|
+
"@yuants/secret": "0.2.1",
|
|
25
25
|
"rxjs": "~7.5.6",
|
|
26
26
|
"crypto-js": "^4.2.0",
|
|
27
27
|
"ws": "~8.8.1"
|
package/temp/image-tag
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
sha-
|
|
1
|
+
sha-d47107a53156c430a73afd13422075525a1cbe97
|
package/temp/package-deps.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"apps/vendor-okx/CHANGELOG.json": "
|
|
3
|
-
"apps/vendor-okx/CHANGELOG.md": "
|
|
2
|
+
"apps/vendor-okx/CHANGELOG.json": "b54858a6ec1a44b6b4cec24503193b0a80cbad48",
|
|
3
|
+
"apps/vendor-okx/CHANGELOG.md": "c03f76933393d243ff22e1a44df8d9224db97854",
|
|
4
4
|
"apps/vendor-okx/README.md": "ac3d1f6c4c8d73066664699b0bb1b01db02e67a2",
|
|
5
5
|
"apps/vendor-okx/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
|
|
6
6
|
"apps/vendor-okx/build/Dockerfile": "e625b9593e496c343297c9ce133d6cc4be9617a7",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"apps/vendor-okx/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
|
|
9
9
|
"apps/vendor-okx/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
|
|
10
10
|
"apps/vendor-okx/etc/vendor-okx.api.md": "92c54ccd547d2ad81ca6088158ca193e85c208df",
|
|
11
|
-
"apps/vendor-okx/package.json": "
|
|
11
|
+
"apps/vendor-okx/package.json": "36edc59f6602310a5e16bb9331a162d1a034be6a",
|
|
12
12
|
"apps/vendor-okx/src/account.ts": "7e8bb44845269a401a850aff2e5bf170b0811bd8",
|
|
13
13
|
"apps/vendor-okx/src/api.ts": "ffcb8471e644c24089b266c88a83224abe177c6a",
|
|
14
14
|
"apps/vendor-okx/src/cli.ts": "9bf6b5559a6c6f33da20e74cc6c5d702c60ec891",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"apps/vendor-okx/src/legacy_index.ts": "1bf031b9f8f870a099d74867292b257346344e4d",
|
|
20
20
|
"apps/vendor-okx/src/loan-account.ts": "5e7662b41b90ba307ce1e5689b3613e84ff9ab0b",
|
|
21
21
|
"apps/vendor-okx/src/logger.ts": "d25d427e74f46819a601e0cb17d5358b22c8db7b",
|
|
22
|
-
"apps/vendor-okx/src/ohlc.ts": "
|
|
22
|
+
"apps/vendor-okx/src/ohlc.ts": "5db7fba55a52898c1a2ef256b5972ac3d18a1c92",
|
|
23
23
|
"apps/vendor-okx/src/order.ts": "09509ae5af4b212cc1c99c55c436b3b0ce8bda33",
|
|
24
24
|
"apps/vendor-okx/src/product.ts": "a2e7feb86bc01fe3b1af6dcb9a9ebfba6be91434",
|
|
25
25
|
"apps/vendor-okx/src/quote.ts": "d707e47749a5f6cbeff94934ba520624f15b0a4f",
|
|
@@ -27,19 +27,19 @@
|
|
|
27
27
|
"apps/vendor-okx/src/websocket.ts": "bf3d19090361e96a81ecafb47b9d00bff88193c7",
|
|
28
28
|
"apps/vendor-okx/tsconfig.json": "81da8f78196974b5d15da0edb6b2d9f48641063c",
|
|
29
29
|
"apps/vendor-okx/.rush/temp/shrinkwrap-deps.json": "0a6205550d411d42b6d36324572e5e2a0ba166b2",
|
|
30
|
-
"libraries/protocol/temp/package-deps.json": "
|
|
31
|
-
"libraries/transfer/temp/package-deps.json": "
|
|
32
|
-
"libraries/data-account/temp/package-deps.json": "
|
|
33
|
-
"libraries/data-order/temp/package-deps.json": "
|
|
30
|
+
"libraries/protocol/temp/package-deps.json": "da96f44ddaba5226fce49a5f221c01f0b7bcd718",
|
|
31
|
+
"libraries/transfer/temp/package-deps.json": "dd997577971e0c1e49850d4b26ff7a81cc07be8f",
|
|
32
|
+
"libraries/data-account/temp/package-deps.json": "f667d77139be601b4ea9a562ecc69bf86651c5df",
|
|
33
|
+
"libraries/data-order/temp/package-deps.json": "f586f2fefb78942acf908056aedae33ceace7eff",
|
|
34
34
|
"libraries/utils/temp/package-deps.json": "ecdd5e56cb2b6db83ee9caf8784ad342484f1699",
|
|
35
|
-
"libraries/sql/temp/package-deps.json": "
|
|
36
|
-
"libraries/data-series/temp/package-deps.json": "
|
|
37
|
-
"libraries/data-product/temp/package-deps.json": "
|
|
38
|
-
"libraries/data-ohlc/temp/package-deps.json": "
|
|
39
|
-
"libraries/data-interest-rate/temp/package-deps.json": "
|
|
40
|
-
"libraries/data-quote/temp/package-deps.json": "
|
|
41
|
-
"libraries/data-trade/temp/package-deps.json": "
|
|
42
|
-
"libraries/secret/temp/package-deps.json": "
|
|
35
|
+
"libraries/sql/temp/package-deps.json": "78a3b4ee6e225de3a42b2db94e5b07c9d43bccda",
|
|
36
|
+
"libraries/data-series/temp/package-deps.json": "d4542201cbd459b57e5c0ebeb5160ea7d9f50998",
|
|
37
|
+
"libraries/data-product/temp/package-deps.json": "afaa4fd98026b9c0e5b09f817c8ec246931a1759",
|
|
38
|
+
"libraries/data-ohlc/temp/package-deps.json": "3e83f0000684b1d3a0889cca889c59abca6e80d3",
|
|
39
|
+
"libraries/data-interest-rate/temp/package-deps.json": "b3d2590a1cbb83503faa00388325ad7a426fd4c3",
|
|
40
|
+
"libraries/data-quote/temp/package-deps.json": "ca41a15fc97421e5b2585d7cdd4476e51ee3ed76",
|
|
41
|
+
"libraries/data-trade/temp/package-deps.json": "fb510c6279b3a113a0719126a2f0c143aac31cb1",
|
|
42
|
+
"libraries/secret/temp/package-deps.json": "78ef25a9a721523ed6c912de1a8a5148af3c8376",
|
|
43
43
|
"libraries/extension/temp/package-deps.json": "f22ec5c30214f7aeeda63f46bd920290be555f57",
|
|
44
44
|
"tools/toolkit/temp/package-deps.json": "eb0447c467da3a90db0913ed01e42ec0de840234"
|
|
45
45
|
}
|