@yuants/vendor-hyperliquid 0.9.1 → 0.9.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/services/interest-rate-service.js +1 -9
- package/dist/services/interest-rate-service.js.map +1 -1
- package/dist/services/ohlc-service.js +2 -10
- package/dist/services/ohlc-service.js.map +1 -1
- package/lib/services/interest-rate-service.js +1 -9
- package/lib/services/interest-rate-service.js.map +1 -1
- package/lib/services/ohlc-service.js +2 -10
- package/lib/services/ohlc-service.js.map +1 -1
- package/package.json +15 -15
- package/temp/package-deps.json +19 -19
|
@@ -3,14 +3,6 @@ import { Terminal } from '@yuants/protocol';
|
|
|
3
3
|
import { decodePath, formatTime } from '@yuants/utils';
|
|
4
4
|
import { getHistoricalFundingRates } from '../api/public-api';
|
|
5
5
|
const terminal = Terminal.fromNodeEnv();
|
|
6
|
-
const INGEST_SERVICE_OPTIONS = {
|
|
7
|
-
concurrent: 1,
|
|
8
|
-
max_pending_requests: 20,
|
|
9
|
-
ingress_token_capacity: 2,
|
|
10
|
-
ingress_token_refill_interval: 1000,
|
|
11
|
-
egress_token_capacity: 1,
|
|
12
|
-
egress_token_refill_interval: 1000,
|
|
13
|
-
};
|
|
14
6
|
const WINDOW_MS = 30 * 24 * 3600000;
|
|
15
7
|
const fetchInterestRateBackward = async (req) => {
|
|
16
8
|
const [, marketType, symbol] = decodePath(req.product_id);
|
|
@@ -41,5 +33,5 @@ const fetchInterestRateBackward = async (req) => {
|
|
|
41
33
|
provideInterestRateService(terminal, {
|
|
42
34
|
product_id_prefix: 'HYPERLIQUID/PERPETUAL/',
|
|
43
35
|
direction: 'backward',
|
|
44
|
-
}, fetchInterestRateBackward
|
|
36
|
+
}, fetchInterestRateBackward);
|
|
45
37
|
//# sourceMappingURL=interest-rate-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,OAAQ,CAAC;AAErC,MAAM,yBAAyB,GAAG,KAAK,EAAE,GAIxC,EAA4B,EAAE;IAC7B,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,UAAU,KAAK,WAAW,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAExG,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAiB,EAAE;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnC,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,aAAa;YAC5B,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1B,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE;YACrB,UAAU,EAAE,GAAG,IAAI,EAAE;YACrB,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,0BAA0B,CACxB,QAAQ,EACR;IACE,iBAAiB,EAAE,wBAAwB;IAC3C,SAAS,EAAE,UAAU;CACtB,EACD,yBAAyB,CAC1B,CAAC","sourcesContent":["import { IInterestRate } from '@yuants/data-interest-rate';\nimport { provideInterestRateService } from '@yuants/exchange';\nimport { Terminal } from '@yuants/protocol';\nimport { decodePath, formatTime } from '@yuants/utils';\nimport { getHistoricalFundingRates } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst WINDOW_MS = 30 * 24 * 3600_000;\n\nconst fetchInterestRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, marketType, symbol] = decodePath(req.product_id);\n if (marketType !== 'PERPETUAL' || !symbol) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const coin = symbol.split('-')[0];\n if (!coin) throw new Error(`Invalid symbol: ${symbol}`);\n\n const endTime = req.time;\n const startTime = Math.max(0, endTime - WINDOW_MS);\n\n const res = await getHistoricalFundingRates({ coin, startTime, endTime });\n\n return (res ?? [])\n .map((v): IInterestRate => {\n const ms = v.time;\n const rate = Number(v.fundingRate);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'HYPERLIQUID',\n created_at: formatTime(ms),\n long_rate: `${-rate}`,\n short_rate: `${rate}`,\n settlement_price: '',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endTime);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'HYPERLIQUID/PERPETUAL/',\n direction: 'backward',\n },\n fetchInterestRateBackward,\n);\n"]}
|
|
@@ -3,14 +3,6 @@ import { Terminal } from '@yuants/protocol';
|
|
|
3
3
|
import { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';
|
|
4
4
|
import { getCandleSnapshot } from '../api/public-api';
|
|
5
5
|
const terminal = Terminal.fromNodeEnv();
|
|
6
|
-
const INGEST_SERVICE_OPTIONS = {
|
|
7
|
-
concurrent: 1,
|
|
8
|
-
max_pending_requests: 20,
|
|
9
|
-
ingress_token_capacity: 2,
|
|
10
|
-
ingress_token_refill_interval: 1000,
|
|
11
|
-
egress_token_capacity: 1,
|
|
12
|
-
egress_token_refill_interval: 1000,
|
|
13
|
-
};
|
|
14
6
|
const DURATION_TO_HYPERLIQUID_INTERVAL = {
|
|
15
7
|
PT1M: '1m',
|
|
16
8
|
PT3M: '3m',
|
|
@@ -71,10 +63,10 @@ provideOHLCService(terminal, {
|
|
|
71
63
|
product_id_prefix: 'HYPERLIQUID/PERPETUAL/',
|
|
72
64
|
duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),
|
|
73
65
|
direction: 'backward',
|
|
74
|
-
}, fetchOHLCPageBackward
|
|
66
|
+
}, fetchOHLCPageBackward);
|
|
75
67
|
provideOHLCService(terminal, {
|
|
76
68
|
product_id_prefix: 'HYPERLIQUID/SPOT/',
|
|
77
69
|
duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),
|
|
78
70
|
direction: 'backward',
|
|
79
|
-
}, fetchOHLCPageBackward
|
|
71
|
+
}, fetchOHLCPageBackward);
|
|
80
72
|
//# sourceMappingURL=ohlc-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOHLC } from '@yuants/data-ohlc';\nimport { provideOHLCService } from '@yuants/exchange';\nimport { Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';\nimport { getCandleSnapshot } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst DURATION_TO_HYPERLIQUID_INTERVAL: Record<string, string> = {\n PT1M: '1m',\n PT3M: '3m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n PT1H: '1h',\n PT2H: '2h',\n PT4H: '4h',\n PT8H: '8h',\n PT12H: '12h',\n P1D: '1d',\n P3D: '3d',\n P1W: '1w',\n P1M: '1M',\n};\n\nconst DEFAULT_BAR_COUNT = 1000;\n\nconst fetchOHLCPageBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, marketType, symbol] = decodePath(req.product_id);\n if (!symbol) throw new Error(`Unsupported product_id: ${req.product_id}`);\n if (marketType !== 'PERPETUAL' && marketType !== 'SPOT') {\n throw new Error(`Unsupported product_id: ${req.product_id}`);\n }\n\n const coin = symbol.split('-')[0];\n if (!coin) throw new Error(`Invalid symbol: ${symbol}`);\n\n const interval = DURATION_TO_HYPERLIQUID_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const periodMs = convertDurationToOffset(req.duration);\n const endTime = req.time;\n const startTime = Math.max(0, endTime - DEFAULT_BAR_COUNT * periodMs);\n\n const res = await getCandleSnapshot({\n req: { coin, interval, startTime, endTime },\n });\n\n return (res ?? [])\n .map((x): IOHLC => {\n const createdAtMs = x.t;\n return {\n series_id: req.series_id,\n datasource_id: 'HYPERLIQUID',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(createdAtMs),\n closed_at: formatTime(createdAtMs + periodMs),\n open: x.o,\n high: x.h,\n low: x.l,\n close: x.c,\n volume: x.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endTime);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HYPERLIQUID/PERPETUAL/',\n duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),\n direction: 'backward',\n },\n fetchOHLCPageBackward,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HYPERLIQUID/SPOT/',\n duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),\n direction: 'backward',\n },\n fetchOHLCPageBackward,\n);\n"]}
|
|
@@ -5,14 +5,6 @@ const protocol_1 = require("@yuants/protocol");
|
|
|
5
5
|
const utils_1 = require("@yuants/utils");
|
|
6
6
|
const public_api_1 = require("../api/public-api");
|
|
7
7
|
const terminal = protocol_1.Terminal.fromNodeEnv();
|
|
8
|
-
const INGEST_SERVICE_OPTIONS = {
|
|
9
|
-
concurrent: 1,
|
|
10
|
-
max_pending_requests: 20,
|
|
11
|
-
ingress_token_capacity: 2,
|
|
12
|
-
ingress_token_refill_interval: 1000,
|
|
13
|
-
egress_token_capacity: 1,
|
|
14
|
-
egress_token_refill_interval: 1000,
|
|
15
|
-
};
|
|
16
8
|
const WINDOW_MS = 30 * 24 * 3600000;
|
|
17
9
|
const fetchInterestRateBackward = async (req) => {
|
|
18
10
|
const [, marketType, symbol] = (0, utils_1.decodePath)(req.product_id);
|
|
@@ -43,5 +35,5 @@ const fetchInterestRateBackward = async (req) => {
|
|
|
43
35
|
(0, exchange_1.provideInterestRateService)(terminal, {
|
|
44
36
|
product_id_prefix: 'HYPERLIQUID/PERPETUAL/',
|
|
45
37
|
direction: 'backward',
|
|
46
|
-
}, fetchInterestRateBackward
|
|
38
|
+
}, fetchInterestRateBackward);
|
|
47
39
|
//# sourceMappingURL=interest-rate-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":";;AACA,+CAA8D;AAC9D,+
|
|
1
|
+
{"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":";;AACA,+CAA8D;AAC9D,+CAA4C;AAC5C,yCAAuD;AACvD,kDAA8D;AAE9D,MAAM,QAAQ,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,OAAQ,CAAC;AAErC,MAAM,yBAAyB,GAAG,KAAK,EAAE,GAIxC,EAA4B,EAAE;IAC7B,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,UAAU,KAAK,WAAW,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAExG,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAExD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC;IAEnD,MAAM,GAAG,GAAG,MAAM,IAAA,sCAAyB,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;IAE1E,OAAO,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAiB,EAAE;QACxB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnC,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,aAAa;YAC5B,UAAU,EAAE,IAAA,kBAAU,EAAC,EAAE,CAAC;YAC1B,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE;YACrB,UAAU,EAAE,GAAG,IAAI,EAAE;YACrB,gBAAgB,EAAE,EAAE;SACrB,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC;AACvD,CAAC,CAAC;AAEF,IAAA,qCAA0B,EACxB,QAAQ,EACR;IACE,iBAAiB,EAAE,wBAAwB;IAC3C,SAAS,EAAE,UAAU;CACtB,EACD,yBAAyB,CAC1B,CAAC","sourcesContent":["import { IInterestRate } from '@yuants/data-interest-rate';\nimport { provideInterestRateService } from '@yuants/exchange';\nimport { Terminal } from '@yuants/protocol';\nimport { decodePath, formatTime } from '@yuants/utils';\nimport { getHistoricalFundingRates } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst WINDOW_MS = 30 * 24 * 3600_000;\n\nconst fetchInterestRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, marketType, symbol] = decodePath(req.product_id);\n if (marketType !== 'PERPETUAL' || !symbol) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const coin = symbol.split('-')[0];\n if (!coin) throw new Error(`Invalid symbol: ${symbol}`);\n\n const endTime = req.time;\n const startTime = Math.max(0, endTime - WINDOW_MS);\n\n const res = await getHistoricalFundingRates({ coin, startTime, endTime });\n\n return (res ?? [])\n .map((v): IInterestRate => {\n const ms = v.time;\n const rate = Number(v.fundingRate);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'HYPERLIQUID',\n created_at: formatTime(ms),\n long_rate: `${-rate}`,\n short_rate: `${rate}`,\n settlement_price: '',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endTime);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'HYPERLIQUID/PERPETUAL/',\n direction: 'backward',\n },\n fetchInterestRateBackward,\n);\n"]}
|
|
@@ -5,14 +5,6 @@ const protocol_1 = require("@yuants/protocol");
|
|
|
5
5
|
const utils_1 = require("@yuants/utils");
|
|
6
6
|
const public_api_1 = require("../api/public-api");
|
|
7
7
|
const terminal = protocol_1.Terminal.fromNodeEnv();
|
|
8
|
-
const INGEST_SERVICE_OPTIONS = {
|
|
9
|
-
concurrent: 1,
|
|
10
|
-
max_pending_requests: 20,
|
|
11
|
-
ingress_token_capacity: 2,
|
|
12
|
-
ingress_token_refill_interval: 1000,
|
|
13
|
-
egress_token_capacity: 1,
|
|
14
|
-
egress_token_refill_interval: 1000,
|
|
15
|
-
};
|
|
16
8
|
const DURATION_TO_HYPERLIQUID_INTERVAL = {
|
|
17
9
|
PT1M: '1m',
|
|
18
10
|
PT3M: '3m',
|
|
@@ -73,10 +65,10 @@ const fetchOHLCPageBackward = async (req) => {
|
|
|
73
65
|
product_id_prefix: 'HYPERLIQUID/PERPETUAL/',
|
|
74
66
|
duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),
|
|
75
67
|
direction: 'backward',
|
|
76
|
-
}, fetchOHLCPageBackward
|
|
68
|
+
}, fetchOHLCPageBackward);
|
|
77
69
|
(0, exchange_1.provideOHLCService)(terminal, {
|
|
78
70
|
product_id_prefix: 'HYPERLIQUID/SPOT/',
|
|
79
71
|
duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),
|
|
80
72
|
direction: 'backward',
|
|
81
|
-
}, fetchOHLCPageBackward
|
|
73
|
+
}, fetchOHLCPageBackward);
|
|
82
74
|
//# sourceMappingURL=ohlc-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":";;AACA,+CAAsD;AACtD,+
|
|
1
|
+
{"version":3,"file":"ohlc-service.js","sourceRoot":"","sources":["../../src/services/ohlc-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { IOHLC } from '@yuants/data-ohlc';\nimport { provideOHLCService } from '@yuants/exchange';\nimport { Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';\nimport { getCandleSnapshot } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst DURATION_TO_HYPERLIQUID_INTERVAL: Record<string, string> = {\n PT1M: '1m',\n PT3M: '3m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n PT1H: '1h',\n PT2H: '2h',\n PT4H: '4h',\n PT8H: '8h',\n PT12H: '12h',\n P1D: '1d',\n P3D: '3d',\n P1W: '1w',\n P1M: '1M',\n};\n\nconst DEFAULT_BAR_COUNT = 1000;\n\nconst fetchOHLCPageBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, marketType, symbol] = decodePath(req.product_id);\n if (!symbol) throw new Error(`Unsupported product_id: ${req.product_id}`);\n if (marketType !== 'PERPETUAL' && marketType !== 'SPOT') {\n throw new Error(`Unsupported product_id: ${req.product_id}`);\n }\n\n const coin = symbol.split('-')[0];\n if (!coin) throw new Error(`Invalid symbol: ${symbol}`);\n\n const interval = DURATION_TO_HYPERLIQUID_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const periodMs = convertDurationToOffset(req.duration);\n const endTime = req.time;\n const startTime = Math.max(0, endTime - DEFAULT_BAR_COUNT * periodMs);\n\n const res = await getCandleSnapshot({\n req: { coin, interval, startTime, endTime },\n });\n\n return (res ?? [])\n .map((x): IOHLC => {\n const createdAtMs = x.t;\n return {\n series_id: req.series_id,\n datasource_id: 'HYPERLIQUID',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(createdAtMs),\n closed_at: formatTime(createdAtMs + periodMs),\n open: x.o,\n high: x.h,\n low: x.l,\n close: x.c,\n volume: x.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endTime);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HYPERLIQUID/PERPETUAL/',\n duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),\n direction: 'backward',\n },\n fetchOHLCPageBackward,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'HYPERLIQUID/SPOT/',\n duration_list: Object.keys(DURATION_TO_HYPERLIQUID_INTERVAL),\n direction: 'backward',\n },\n fetchOHLCPageBackward,\n);\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuants/vendor-hyperliquid",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -8,23 +8,23 @@
|
|
|
8
8
|
"temp"
|
|
9
9
|
],
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@yuants/cache": "0.3.
|
|
12
|
-
"@yuants/protocol": "0.53.
|
|
13
|
-
"@yuants/transfer": "0.2.
|
|
14
|
-
"@yuants/data-account": "0.11.
|
|
15
|
-
"@yuants/utils": "0.
|
|
16
|
-
"@yuants/sql": "0.9.
|
|
17
|
-
"@yuants/data-product": "0.5.
|
|
18
|
-
"@yuants/data-interest-rate": "0.2.
|
|
19
|
-
"@yuants/data-order": "0.7.
|
|
20
|
-
"@yuants/data-series": "0.3.
|
|
21
|
-
"@yuants/data-quote": "0.4.
|
|
22
|
-
"@yuants/exchange": "0.8.
|
|
11
|
+
"@yuants/cache": "0.3.6",
|
|
12
|
+
"@yuants/protocol": "0.53.5",
|
|
13
|
+
"@yuants/transfer": "0.2.42",
|
|
14
|
+
"@yuants/data-account": "0.11.2",
|
|
15
|
+
"@yuants/utils": "0.17.0",
|
|
16
|
+
"@yuants/sql": "0.9.33",
|
|
17
|
+
"@yuants/data-product": "0.5.3",
|
|
18
|
+
"@yuants/data-interest-rate": "0.2.1",
|
|
19
|
+
"@yuants/data-order": "0.7.3",
|
|
20
|
+
"@yuants/data-series": "0.3.55",
|
|
21
|
+
"@yuants/data-quote": "0.4.2",
|
|
22
|
+
"@yuants/exchange": "0.8.3",
|
|
23
23
|
"rxjs": "~7.5.6",
|
|
24
24
|
"hyperliquid": "~1.6.2",
|
|
25
25
|
"ethers": "~6.13.5",
|
|
26
26
|
"@msgpack/msgpack": "~3.1.2",
|
|
27
|
-
"@yuants/data-ohlc": "0.5.
|
|
27
|
+
"@yuants/data-ohlc": "0.5.1"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@microsoft/api-extractor": "~7.30.0",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@rushstack/heft-node-rig": "~1.10.7",
|
|
34
34
|
"@types/heft-jest": "1.0.3",
|
|
35
35
|
"@types/node": "22",
|
|
36
|
-
"@yuants/extension": "0.2.
|
|
36
|
+
"@yuants/extension": "0.2.34",
|
|
37
37
|
"@yuants/tool-kit": "0.2.1",
|
|
38
38
|
"typescript": "~4.7.4",
|
|
39
39
|
"ts-node": "~10.9.2"
|
package/temp/package-deps.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"apps/vendor-hyperliquid/AGENTS.md": "f0f3df594ce55fbaf78fb040f2850d1abee3449a",
|
|
3
|
-
"apps/vendor-hyperliquid/CHANGELOG.json": "
|
|
4
|
-
"apps/vendor-hyperliquid/CHANGELOG.md": "
|
|
3
|
+
"apps/vendor-hyperliquid/CHANGELOG.json": "df37f85212c2a12ea83d5767979a119978bd6216",
|
|
4
|
+
"apps/vendor-hyperliquid/CHANGELOG.md": "88c1cbca1ef45a5da2ec2a2ee0e3180e1539a467",
|
|
5
5
|
"apps/vendor-hyperliquid/SESSION_NOTES.md": "5969eb7dceb736977bf0b36aa24f5cc1f5585656",
|
|
6
6
|
"apps/vendor-hyperliquid/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
|
|
7
7
|
"apps/vendor-hyperliquid/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
|
|
8
8
|
"apps/vendor-hyperliquid/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
|
|
9
9
|
"apps/vendor-hyperliquid/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
|
|
10
10
|
"apps/vendor-hyperliquid/etc/vendor-hyperliquid.api.md": "66675bd88afa1fe945f0d4023984c1c9c3e60a34",
|
|
11
|
-
"apps/vendor-hyperliquid/package.json": "
|
|
11
|
+
"apps/vendor-hyperliquid/package.json": "1013ca9df5221b17f0b59ddc00dfde99ffad2431",
|
|
12
12
|
"apps/vendor-hyperliquid/src/api/client.ts": "90eb3b63394c9729cc442e0ee5482bfd494aafdd",
|
|
13
13
|
"apps/vendor-hyperliquid/src/api/private-api.ts": "8fd176063af8f345aeab94444850e82979cef680",
|
|
14
14
|
"apps/vendor-hyperliquid/src/api/public-api.ts": "fbbb982308eea89a51b93cc21442de6ba45cfd60",
|
|
@@ -19,12 +19,12 @@
|
|
|
19
19
|
"apps/vendor-hyperliquid/src/services/accounts/perp.ts": "ee8784d7331889b97069d5b3f452340b2e19ee55",
|
|
20
20
|
"apps/vendor-hyperliquid/src/services/accounts/spot.ts": "814857d05bdda34ca7827fc69c2564db1f5f5d3d",
|
|
21
21
|
"apps/vendor-hyperliquid/src/services/exchange.ts": "e36dcefff1e239e6b44c7ea1aa0632f59cbce653",
|
|
22
|
-
"apps/vendor-hyperliquid/src/services/interest-rate-service.ts": "
|
|
22
|
+
"apps/vendor-hyperliquid/src/services/interest-rate-service.ts": "5eb252b2b33552f3c70a82b39b7a85927ceebeac",
|
|
23
23
|
"apps/vendor-hyperliquid/src/services/markets/interest-rate.ts": "a93246729016cbe8486bc45b5a00aff57fab07ec",
|
|
24
24
|
"apps/vendor-hyperliquid/src/services/markets/ohlc.ts": "6cea84e64ff68ef3a760b35d2e637b66a1ca1615",
|
|
25
25
|
"apps/vendor-hyperliquid/src/services/markets/product.ts": "406d7686f062288a63bcc2aa3146b0f0942ad724",
|
|
26
26
|
"apps/vendor-hyperliquid/src/services/markets/quote.ts": "9f7391d6253a1ff46cab63567a708954efde4f88",
|
|
27
|
-
"apps/vendor-hyperliquid/src/services/ohlc-service.ts": "
|
|
27
|
+
"apps/vendor-hyperliquid/src/services/ohlc-service.ts": "61cd4b3c4980b070a2cc38a90efd1d5a236fb2ad",
|
|
28
28
|
"apps/vendor-hyperliquid/src/services/orders/cancelOrder.ts": "eeb8b166a712c64df45873b83b0587238c249992",
|
|
29
29
|
"apps/vendor-hyperliquid/src/services/orders/listOrders.ts": "9ffd16181d23d98d5397e76b0a3f63f2bf7792ce",
|
|
30
30
|
"apps/vendor-hyperliquid/src/services/orders/modifyOrder.ts": "01fc9d965578f216f6e5beae4e52f7640c1d4a28",
|
|
@@ -33,19 +33,19 @@
|
|
|
33
33
|
"apps/vendor-hyperliquid/src/services/utils.ts": "a115e2f972368033e6eb7325602092dbd448c9c3",
|
|
34
34
|
"apps/vendor-hyperliquid/tsconfig.json": "fc376462cd03b4f9676999e8b78dd8e7e90bbbd3",
|
|
35
35
|
"apps/vendor-hyperliquid/.rush/temp/shrinkwrap-deps.json": "d9e7e51571c2f9512f75f378953ef8175952ed5c",
|
|
36
|
-
"libraries/cache/temp/package-deps.json": "
|
|
37
|
-
"libraries/protocol/temp/package-deps.json": "
|
|
38
|
-
"libraries/transfer/temp/package-deps.json": "
|
|
39
|
-
"libraries/data-account/temp/package-deps.json": "
|
|
40
|
-
"libraries/utils/temp/package-deps.json": "
|
|
41
|
-
"libraries/sql/temp/package-deps.json": "
|
|
42
|
-
"libraries/data-product/temp/package-deps.json": "
|
|
43
|
-
"libraries/data-interest-rate/temp/package-deps.json": "
|
|
44
|
-
"libraries/data-order/temp/package-deps.json": "
|
|
45
|
-
"libraries/data-series/temp/package-deps.json": "
|
|
46
|
-
"libraries/data-quote/temp/package-deps.json": "
|
|
47
|
-
"libraries/exchange/temp/package-deps.json": "
|
|
48
|
-
"libraries/data-ohlc/temp/package-deps.json": "
|
|
49
|
-
"libraries/extension/temp/package-deps.json": "
|
|
36
|
+
"libraries/cache/temp/package-deps.json": "6f7f290f9a9c2e42e937d8ce3b55a6b541d2e835",
|
|
37
|
+
"libraries/protocol/temp/package-deps.json": "359ac43a7382bafa1f91541e084256baec86d40b",
|
|
38
|
+
"libraries/transfer/temp/package-deps.json": "266da813de0fc7b8de0acb4f1a561bd5cab7f294",
|
|
39
|
+
"libraries/data-account/temp/package-deps.json": "a94782e226c47a0f5198a5cca619ae7815055f4a",
|
|
40
|
+
"libraries/utils/temp/package-deps.json": "acd039ba8f5f93e664764ad2c8474878bd105c3b",
|
|
41
|
+
"libraries/sql/temp/package-deps.json": "43f7034c83d7ac4b6c4224b8e916ac39fd78057d",
|
|
42
|
+
"libraries/data-product/temp/package-deps.json": "00c23f21d7977f38a942ed06f4812e5ddc2b6248",
|
|
43
|
+
"libraries/data-interest-rate/temp/package-deps.json": "5f955d9b9c04936964ba20a37d5e00816fb33f67",
|
|
44
|
+
"libraries/data-order/temp/package-deps.json": "e89dd8f11cdbe84eb8bdf474105abccdf51abfaa",
|
|
45
|
+
"libraries/data-series/temp/package-deps.json": "ba6b4e5b9beec9dbe54fcdc12820d8af70356d50",
|
|
46
|
+
"libraries/data-quote/temp/package-deps.json": "6ee7c2a4c28dd7947039fd9561ff045400848bde",
|
|
47
|
+
"libraries/exchange/temp/package-deps.json": "a254260f066adc3e196d020f7eae7354db045404",
|
|
48
|
+
"libraries/data-ohlc/temp/package-deps.json": "919692801e80ce34e9af7470712ac4d1c0086af7",
|
|
49
|
+
"libraries/extension/temp/package-deps.json": "89c372a6eab7dfe766edc0b102492364aa8684fe",
|
|
50
50
|
"tools/toolkit/temp/package-deps.json": "23e053490eb8feade23e4d45de4e54883e322711"
|
|
51
51
|
}
|