@yuants/vendor-okx 0.29.18 → 0.30.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.
package/dist/index.js CHANGED
@@ -14,4 +14,5 @@ import './strategy-account';
14
14
  import './trade';
15
15
  import './transfer';
16
16
  import './public-data/new-quote';
17
+ import './services/quotes';
17
18
  //# 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,6BAA6B,CAAC;AACrC,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","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/interest_rate';\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';\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,6BAA6B,CAAC;AACrC,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","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/interest_rate';\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';\n"]}
@@ -0,0 +1,70 @@
1
+ import { provideQuoteService } from '@yuants/exchange';
2
+ import { Terminal } from '@yuants/protocol';
3
+ import { encodePath } from '@yuants/utils';
4
+ import { getMarketTickers, getOpenInterest } from '../api/public-api';
5
+ const terminal = Terminal.fromNodeEnv();
6
+ const normalizeUpdatedAt = (ts) => (ts ? Number(ts) : Date.now());
7
+ provideQuoteService(terminal, {
8
+ product_id_prefix: 'OKX/SWAP/',
9
+ fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],
10
+ }, async () => {
11
+ var _a;
12
+ const res = await getMarketTickers({ instType: 'SWAP' });
13
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((ticker) => ({
14
+ product_id: encodePath('OKX', 'SWAP', ticker.instId),
15
+ updated_at: normalizeUpdatedAt(ticker.ts),
16
+ last_price: ticker.last,
17
+ ask_price: ticker.askPx,
18
+ ask_volume: ticker.askSz,
19
+ bid_price: ticker.bidPx,
20
+ bid_volume: ticker.bidSz,
21
+ }));
22
+ });
23
+ provideQuoteService(terminal, {
24
+ product_id_prefix: 'OKX/SPOT/',
25
+ fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],
26
+ }, async () => {
27
+ var _a;
28
+ const res = await getMarketTickers({ instType: 'SPOT' });
29
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((ticker) => ({
30
+ product_id: encodePath('OKX', 'SPOT', ticker.instId),
31
+ updated_at: normalizeUpdatedAt(ticker.ts),
32
+ last_price: ticker.last,
33
+ ask_price: ticker.askPx,
34
+ ask_volume: ticker.askSz,
35
+ bid_price: ticker.bidPx,
36
+ bid_volume: ticker.bidSz,
37
+ }));
38
+ });
39
+ provideQuoteService(terminal, {
40
+ product_id_prefix: 'OKX/MARGIN/',
41
+ fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],
42
+ }, async () => {
43
+ var _a;
44
+ const res = await getMarketTickers({ instType: 'SPOT' });
45
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((ticker) => ({
46
+ product_id: encodePath('OKX', 'MARGIN', ticker.instId),
47
+ updated_at: normalizeUpdatedAt(ticker.ts),
48
+ last_price: ticker.last,
49
+ ask_price: ticker.askPx,
50
+ ask_volume: ticker.askSz,
51
+ bid_price: ticker.bidPx,
52
+ bid_volume: ticker.bidSz,
53
+ }));
54
+ });
55
+ provideQuoteService(terminal, {
56
+ product_id_prefix: 'OKX/SWAP/',
57
+ fields: ['open_interest'],
58
+ }, async () => {
59
+ var _a;
60
+ const res = await getOpenInterest({ instType: 'SWAP' });
61
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((entry) => {
62
+ var _a;
63
+ return ({
64
+ product_id: encodePath('OKX', 'SWAP', entry.instId),
65
+ updated_at: normalizeUpdatedAt(entry.ts),
66
+ open_interest: (_a = entry.oi) !== null && _a !== void 0 ? _a : '0',
67
+ });
68
+ });
69
+ });
70
+ //# sourceMappingURL=quotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/services/quotes.ts"],"names":[],"mappings":"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","sourcesContent":["import { provideQuoteService } from '@yuants/exchange';\nimport { Terminal } from '@yuants/protocol';\nimport { encodePath } from '@yuants/utils';\nimport { getMarketTickers, getOpenInterest } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst normalizeUpdatedAt = (ts?: string) => (ts ? Number(ts) : Date.now());\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/SWAP/',\n fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],\n },\n async () => {\n const res = await getMarketTickers({ instType: 'SWAP' });\n return (res.data ?? []).map((ticker) => ({\n product_id: encodePath('OKX', 'SWAP', ticker.instId),\n updated_at: normalizeUpdatedAt(ticker.ts),\n last_price: ticker.last,\n ask_price: ticker.askPx,\n ask_volume: ticker.askSz,\n bid_price: ticker.bidPx,\n bid_volume: ticker.bidSz,\n }));\n },\n);\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/SPOT/',\n fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],\n },\n async () => {\n const res = await getMarketTickers({ instType: 'SPOT' });\n return (res.data ?? []).map((ticker) => ({\n product_id: encodePath('OKX', 'SPOT', ticker.instId),\n updated_at: normalizeUpdatedAt(ticker.ts),\n last_price: ticker.last,\n ask_price: ticker.askPx,\n ask_volume: ticker.askSz,\n bid_price: ticker.bidPx,\n bid_volume: ticker.bidSz,\n }));\n },\n);\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/MARGIN/',\n fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],\n },\n async () => {\n const res = await getMarketTickers({ instType: 'SPOT' });\n return (res.data ?? []).map((ticker) => ({\n product_id: encodePath('OKX', 'MARGIN', ticker.instId),\n updated_at: normalizeUpdatedAt(ticker.ts),\n last_price: ticker.last,\n ask_price: ticker.askPx,\n ask_volume: ticker.askSz,\n bid_price: ticker.bidPx,\n bid_volume: ticker.bidSz,\n }));\n },\n);\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/SWAP/',\n fields: ['open_interest'],\n },\n async () => {\n const res = await getOpenInterest({ instType: 'SWAP' });\n return (res.data ?? []).map((entry) => ({\n product_id: encodePath('OKX', 'SWAP', entry.instId),\n updated_at: normalizeUpdatedAt(entry.ts),\n open_interest: entry.oi ?? '0',\n }));\n },\n);\n"]}
package/lib/index.d.ts CHANGED
@@ -14,4 +14,5 @@ import './strategy-account';
14
14
  import './trade';
15
15
  import './transfer';
16
16
  import './public-data/new-quote';
17
+ import './services/quotes';
17
18
  //# 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,6BAA6B,CAAC;AACrC,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"}
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,6BAA6B,CAAC;AACrC,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"}
package/lib/index.js CHANGED
@@ -16,4 +16,5 @@ require("./strategy-account");
16
16
  require("./trade");
17
17
  require("./transfer");
18
18
  require("./public-data/new-quote");
19
+ require("./services/quotes");
19
20
  //# 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,uCAAqC;AACrC,sCAAoC;AACpC,8BAA4B;AAC5B,+BAA6B;AAC7B,sBAAoB;AACpB,8BAA4B;AAC5B,mBAAiB;AACjB,sBAAoB;AACpB,mCAAiC","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/interest_rate';\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';\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,uCAAqC;AACrC,sCAAoC;AACpC,8BAA4B;AAC5B,+BAA6B;AAC7B,sBAAoB;AACpB,8BAA4B;AAC5B,mBAAiB;AACjB,sBAAoB;AACpB,mCAAiC;AACjC,6BAA2B","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/interest_rate';\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';\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=quotes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotes.d.ts","sourceRoot":"","sources":["../../src/services/quotes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const exchange_1 = require("@yuants/exchange");
4
+ const protocol_1 = require("@yuants/protocol");
5
+ const utils_1 = require("@yuants/utils");
6
+ const public_api_1 = require("../api/public-api");
7
+ const terminal = protocol_1.Terminal.fromNodeEnv();
8
+ const normalizeUpdatedAt = (ts) => (ts ? Number(ts) : Date.now());
9
+ (0, exchange_1.provideQuoteService)(terminal, {
10
+ product_id_prefix: 'OKX/SWAP/',
11
+ fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],
12
+ }, async () => {
13
+ var _a;
14
+ const res = await (0, public_api_1.getMarketTickers)({ instType: 'SWAP' });
15
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((ticker) => ({
16
+ product_id: (0, utils_1.encodePath)('OKX', 'SWAP', ticker.instId),
17
+ updated_at: normalizeUpdatedAt(ticker.ts),
18
+ last_price: ticker.last,
19
+ ask_price: ticker.askPx,
20
+ ask_volume: ticker.askSz,
21
+ bid_price: ticker.bidPx,
22
+ bid_volume: ticker.bidSz,
23
+ }));
24
+ });
25
+ (0, exchange_1.provideQuoteService)(terminal, {
26
+ product_id_prefix: 'OKX/SPOT/',
27
+ fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],
28
+ }, async () => {
29
+ var _a;
30
+ const res = await (0, public_api_1.getMarketTickers)({ instType: 'SPOT' });
31
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((ticker) => ({
32
+ product_id: (0, utils_1.encodePath)('OKX', 'SPOT', ticker.instId),
33
+ updated_at: normalizeUpdatedAt(ticker.ts),
34
+ last_price: ticker.last,
35
+ ask_price: ticker.askPx,
36
+ ask_volume: ticker.askSz,
37
+ bid_price: ticker.bidPx,
38
+ bid_volume: ticker.bidSz,
39
+ }));
40
+ });
41
+ (0, exchange_1.provideQuoteService)(terminal, {
42
+ product_id_prefix: 'OKX/MARGIN/',
43
+ fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],
44
+ }, async () => {
45
+ var _a;
46
+ const res = await (0, public_api_1.getMarketTickers)({ instType: 'SPOT' });
47
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((ticker) => ({
48
+ product_id: (0, utils_1.encodePath)('OKX', 'MARGIN', ticker.instId),
49
+ updated_at: normalizeUpdatedAt(ticker.ts),
50
+ last_price: ticker.last,
51
+ ask_price: ticker.askPx,
52
+ ask_volume: ticker.askSz,
53
+ bid_price: ticker.bidPx,
54
+ bid_volume: ticker.bidSz,
55
+ }));
56
+ });
57
+ (0, exchange_1.provideQuoteService)(terminal, {
58
+ product_id_prefix: 'OKX/SWAP/',
59
+ fields: ['open_interest'],
60
+ }, async () => {
61
+ var _a;
62
+ const res = await (0, public_api_1.getOpenInterest)({ instType: 'SWAP' });
63
+ return ((_a = res.data) !== null && _a !== void 0 ? _a : []).map((entry) => {
64
+ var _a;
65
+ return ({
66
+ product_id: (0, utils_1.encodePath)('OKX', 'SWAP', entry.instId),
67
+ updated_at: normalizeUpdatedAt(entry.ts),
68
+ open_interest: (_a = entry.oi) !== null && _a !== void 0 ? _a : '0',
69
+ });
70
+ });
71
+ });
72
+ //# sourceMappingURL=quotes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotes.js","sourceRoot":"","sources":["../../src/services/quotes.ts"],"names":[],"mappings":"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","sourcesContent":["import { provideQuoteService } from '@yuants/exchange';\nimport { Terminal } from '@yuants/protocol';\nimport { encodePath } from '@yuants/utils';\nimport { getMarketTickers, getOpenInterest } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst normalizeUpdatedAt = (ts?: string) => (ts ? Number(ts) : Date.now());\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/SWAP/',\n fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],\n },\n async () => {\n const res = await getMarketTickers({ instType: 'SWAP' });\n return (res.data ?? []).map((ticker) => ({\n product_id: encodePath('OKX', 'SWAP', ticker.instId),\n updated_at: normalizeUpdatedAt(ticker.ts),\n last_price: ticker.last,\n ask_price: ticker.askPx,\n ask_volume: ticker.askSz,\n bid_price: ticker.bidPx,\n bid_volume: ticker.bidSz,\n }));\n },\n);\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/SPOT/',\n fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],\n },\n async () => {\n const res = await getMarketTickers({ instType: 'SPOT' });\n return (res.data ?? []).map((ticker) => ({\n product_id: encodePath('OKX', 'SPOT', ticker.instId),\n updated_at: normalizeUpdatedAt(ticker.ts),\n last_price: ticker.last,\n ask_price: ticker.askPx,\n ask_volume: ticker.askSz,\n bid_price: ticker.bidPx,\n bid_volume: ticker.bidSz,\n }));\n },\n);\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/MARGIN/',\n fields: ['last_price', 'ask_price', 'ask_volume', 'bid_price', 'bid_volume'],\n },\n async () => {\n const res = await getMarketTickers({ instType: 'SPOT' });\n return (res.data ?? []).map((ticker) => ({\n product_id: encodePath('OKX', 'MARGIN', ticker.instId),\n updated_at: normalizeUpdatedAt(ticker.ts),\n last_price: ticker.last,\n ask_price: ticker.askPx,\n ask_volume: ticker.askSz,\n bid_price: ticker.bidPx,\n bid_volume: ticker.bidSz,\n }));\n },\n);\n\nprovideQuoteService(\n terminal,\n {\n product_id_prefix: 'OKX/SWAP/',\n fields: ['open_interest'],\n },\n async () => {\n const res = await getOpenInterest({ instType: 'SWAP' });\n return (res.data ?? []).map((entry) => ({\n product_id: encodePath('OKX', 'SWAP', entry.instId),\n updated_at: normalizeUpdatedAt(entry.ts),\n open_interest: entry.oi ?? '0',\n }));\n },\n);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuants/vendor-okx",
3
- "version": "0.29.18",
3
+ "version": "0.30.0",
4
4
  "main": "lib/index.js",
5
5
  "files": [
6
6
  "dist",
@@ -1,13 +1,13 @@
1
1
  {
2
- "apps/vendor-okx/CHANGELOG.json": "66aee5b6551f664e22dfdcf4d46e72995fc37743",
3
- "apps/vendor-okx/CHANGELOG.md": "c2a6a56c2b3a0141cbd8208d8b5caab4416db5ba",
2
+ "apps/vendor-okx/CHANGELOG.json": "52cf284004bfdec7481f4bb1505c81031a4ecc96",
3
+ "apps/vendor-okx/CHANGELOG.md": "1cef29b11836b1a90e16181c10a7633635e54b81",
4
4
  "apps/vendor-okx/README.md": "68caeb8e383d77ece973cd70f4b167b86abb54c3",
5
5
  "apps/vendor-okx/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
6
6
  "apps/vendor-okx/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
7
7
  "apps/vendor-okx/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
8
8
  "apps/vendor-okx/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
9
9
  "apps/vendor-okx/etc/vendor-okx.api.md": "92c54ccd547d2ad81ca6088158ca193e85c208df",
10
- "apps/vendor-okx/package.json": "b83434d6a0ba50306bdfc58231a9dc38016a9772",
10
+ "apps/vendor-okx/package.json": "7a3b24f1a0cf5297ede1cd885d2eae73dd841568",
11
11
  "apps/vendor-okx/src/account-actions-with-credential.ts": "1a2de787b588e98ceef60b3ffb951f298504bf12",
12
12
  "apps/vendor-okx/src/account.ts": "672014c974457b438cf026f763d6eecfe585c82b",
13
13
  "apps/vendor-okx/src/accountInfos/earning.ts": "62aaeb3b62fa9197d07ee14155625530cdb9b1cd",
@@ -25,7 +25,7 @@
25
25
  "apps/vendor-okx/src/experimental/getOrders.ts": "f89b8334fa55163a78f91cf675cea8c7c869d4a7",
26
26
  "apps/vendor-okx/src/experimental/getPositions.ts": "5fe0bd5ebc3db151be7ae897aaad256dea878122",
27
27
  "apps/vendor-okx/src/experimental/product.ts": "808bb037c1559ead2260a6b1eb2552f246da45c6",
28
- "apps/vendor-okx/src/index.ts": "4bad32deb2845ce1314dd849bbd2780619b296f3",
28
+ "apps/vendor-okx/src/index.ts": "f59f1ff5f6c97ae517621d46c0ef5a46bcef3070",
29
29
  "apps/vendor-okx/src/order-actions-with-credential.ts": "f58b164c57a776db0fd0ad3a9f7197603ab2f66e",
30
30
  "apps/vendor-okx/src/order-actions.ts": "18907924c81ab679bf8a58142fcbc3addd160a94",
31
31
  "apps/vendor-okx/src/order.ts": "342f08dbc4a760e5f29bdaa1fe840872219f9ab5",
@@ -40,6 +40,7 @@
40
40
  "apps/vendor-okx/src/public-data/product.ts": "9caa1b0d9fa621800870ef47086767f6f5810ad9",
41
41
  "apps/vendor-okx/src/public-data/quote.ts": "da471098f6c59376f7221bf6fc3d2625eeacecee",
42
42
  "apps/vendor-okx/src/services.ts": "aeaf5f9d0a87347be6150b28961c5a7c0886b1d8",
43
+ "apps/vendor-okx/src/services/quotes.ts": "2f2278acf1884c8c8b29f9bb79221955b2eb8016",
43
44
  "apps/vendor-okx/src/strategy-account.ts": "2d8f913e19c4402eab249291aaab0b77bc4d9ff8",
44
45
  "apps/vendor-okx/src/trade.ts": "17a2afcdbf2ec69944a73d3d097660675dbe09a4",
45
46
  "apps/vendor-okx/src/transfer.ts": "381e4bf18846c8f79d3e970277d8800a2f94dacd",