@yuants/vendor-gate 0.6.0 → 0.6.1

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.
@@ -3,6 +3,14 @@ import { Terminal } from '@yuants/protocol';
3
3
  import { decodePath, formatTime } from '@yuants/utils';
4
4
  import { getFutureFundingRate } 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
+ };
6
14
  const WINDOW_SEC = 365 * 86400;
7
15
  const fetchFundingRateBackward = async (req) => {
8
16
  const [, instType, contract] = decodePath(req.product_id);
@@ -31,5 +39,5 @@ const fetchFundingRateBackward = async (req) => {
31
39
  provideInterestRateService(terminal, {
32
40
  product_id_prefix: 'GATE/FUTURE/',
33
41
  direction: 'backward',
34
- }, fetchFundingRateBackward);
42
+ }, fetchFundingRateBackward, INGEST_SERVICE_OPTIONS);
35
43
  //# 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,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC;AAE/B,MAAM,wBAAwB,GAAG,KAAK,EAAE,GAIvC,EAA4B,EAAE;IAC7B,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAErG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAErF,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAiB,EAAE;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,MAAM;YACrB,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,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,0BAA0B,CACxB,QAAQ,EACR;IACE,iBAAiB,EAAE,cAAc;IACjC,SAAS,EAAE,UAAU;CACtB,EACD,wBAAwB,CACzB,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 { getFutureFundingRate } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst WINDOW_SEC = 365 * 86400;\n\nconst fetchFundingRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, to - WINDOW_SEC);\n\n const rows = await getFutureFundingRate('usdt', { contract, from, to, limit: 1000 });\n\n return (rows ?? [])\n .map((entry): IInterestRate => {\n const ms = entry.t * 1000;\n const rate = Number(entry.r);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'GATE',\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) < endedAtMs);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n direction: 'backward',\n },\n fetchFundingRateBackward,\n);\n"]}
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,EAAmB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,sBAAsB,GAAoB;IAC9C,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,EAAE;IACxB,sBAAsB,EAAE,CAAC;IACzB,6BAA6B,EAAE,IAAI;IACnC,qBAAqB,EAAE,CAAC;IACxB,4BAA4B,EAAE,IAAI;CACnC,CAAC;AAEF,MAAM,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC;AAE/B,MAAM,wBAAwB,GAAG,KAAK,EAAE,GAIvC,EAA4B,EAAE;IAC7B,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAErG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAErF,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAiB,EAAE;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,MAAM;YACrB,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,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,0BAA0B,CACxB,QAAQ,EACR;IACE,iBAAiB,EAAE,cAAc;IACjC,SAAS,EAAE,UAAU;CACtB,EACD,wBAAwB,EACxB,sBAAsB,CACvB,CAAC","sourcesContent":["import { IInterestRate } from '@yuants/data-interest-rate';\nimport { provideInterestRateService } from '@yuants/exchange';\nimport { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { decodePath, formatTime } from '@yuants/utils';\nimport { getFutureFundingRate } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst WINDOW_SEC = 365 * 86400;\n\nconst fetchFundingRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, to - WINDOW_SEC);\n\n const rows = await getFutureFundingRate('usdt', { contract, from, to, limit: 1000 });\n\n return (rows ?? [])\n .map((entry): IInterestRate => {\n const ms = entry.t * 1000;\n const rate = Number(entry.r);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'GATE',\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) < endedAtMs);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n direction: 'backward',\n },\n fetchFundingRateBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
@@ -3,6 +3,14 @@ import { Terminal } from '@yuants/protocol';
3
3
  import { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';
4
4
  import { getFuturesCandlesticks, getSpotCandlesticks } 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
+ };
6
14
  const DURATION_TO_GATE_INTERVAL = {
7
15
  PT1M: '1m',
8
16
  PT5M: '5m',
@@ -105,10 +113,10 @@ provideOHLCService(terminal, {
105
113
  product_id_prefix: 'GATE/FUTURE/',
106
114
  duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),
107
115
  direction: 'backward',
108
- }, fetchFuturesOHLCBackward);
116
+ }, fetchFuturesOHLCBackward, INGEST_SERVICE_OPTIONS);
109
117
  provideOHLCService(terminal, {
110
118
  product_id_prefix: 'GATE/SPOT/',
111
119
  duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),
112
120
  direction: 'backward',
113
- }, fetchSpotOHLCBackward);
121
+ }, fetchSpotOHLCBackward, INGEST_SERVICE_OPTIONS);
114
122
  //# sourceMappingURL=ohlc-service.js.map
@@ -1 +1 @@
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 { getFuturesCandlesticks, getSpotCandlesticks } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst DURATION_TO_GATE_INTERVAL: Record<string, string> = {\n PT1M: '1m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n PT1H: '1h',\n PT4H: '4h',\n PT8H: '8h',\n P1D: '1d',\n P1W: '1w',\n};\n\nconst normalizeCandle = (\n raw:\n | { t: number; o: string; h: string; l: string; c: string; v: string }\n | [string, string, string, string, string, string],\n): { tMs: number; o: string; h: string; l: string; c: string; v: string } => {\n if (Array.isArray(raw)) {\n const t = Number(raw[0]);\n const tMs = t < 1e12 ? t * 1000 : t;\n const volume = raw[1];\n const close = raw[2];\n const high = raw[3];\n const low = raw[4];\n const open = raw[5];\n return { tMs, o: open, h: high, l: low, c: close, v: volume };\n }\n const t = Number(raw.t);\n const tMs = t < 1e12 ? t * 1000 : t;\n return { tMs, o: raw.o, h: raw.h, l: raw.l, c: raw.c, v: raw.v };\n};\n\nconst fetchFuturesOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getFuturesCandlesticks('usdt', {\n contract,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nconst fetchSpotOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, currency_pair] = decodePath(req.product_id);\n if (instType !== 'SPOT' || !currency_pair) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getSpotCandlesticks({\n currency_pair,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchFuturesOHLCBackward,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/SPOT/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchSpotOHLCBackward,\n);\n"]}
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 { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';\nimport { getFuturesCandlesticks, getSpotCandlesticks } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst DURATION_TO_GATE_INTERVAL: Record<string, string> = {\n PT1M: '1m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n PT1H: '1h',\n PT4H: '4h',\n PT8H: '8h',\n P1D: '1d',\n P1W: '1w',\n};\n\nconst normalizeCandle = (\n raw:\n | { t: number; o: string; h: string; l: string; c: string; v: string }\n | [string, string, string, string, string, string],\n): { tMs: number; o: string; h: string; l: string; c: string; v: string } => {\n if (Array.isArray(raw)) {\n const t = Number(raw[0]);\n const tMs = t < 1e12 ? t * 1000 : t;\n const volume = raw[1];\n const close = raw[2];\n const high = raw[3];\n const low = raw[4];\n const open = raw[5];\n return { tMs, o: open, h: high, l: low, c: close, v: volume };\n }\n const t = Number(raw.t);\n const tMs = t < 1e12 ? t * 1000 : t;\n return { tMs, o: raw.o, h: raw.h, l: raw.l, c: raw.c, v: raw.v };\n};\n\nconst fetchFuturesOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getFuturesCandlesticks('usdt', {\n contract,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nconst fetchSpotOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, currency_pair] = decodePath(req.product_id);\n if (instType !== 'SPOT' || !currency_pair) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getSpotCandlesticks({\n currency_pair,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchFuturesOHLCBackward,\n INGEST_SERVICE_OPTIONS,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/SPOT/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchSpotOHLCBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
@@ -5,6 +5,14 @@ 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
+ };
8
16
  const WINDOW_SEC = 365 * 86400;
9
17
  const fetchFundingRateBackward = async (req) => {
10
18
  const [, instType, contract] = (0, utils_1.decodePath)(req.product_id);
@@ -33,5 +41,5 @@ const fetchFundingRateBackward = async (req) => {
33
41
  (0, exchange_1.provideInterestRateService)(terminal, {
34
42
  product_id_prefix: 'GATE/FUTURE/',
35
43
  direction: 'backward',
36
- }, fetchFundingRateBackward);
44
+ }, fetchFundingRateBackward, INGEST_SERVICE_OPTIONS);
37
45
  //# 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,+CAA4C;AAC5C,yCAAuD;AACvD,kDAAyD;AAEzD,MAAM,QAAQ,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC;AAE/B,MAAM,wBAAwB,GAAG,KAAK,EAAE,GAIvC,EAA4B,EAAE;IAC7B,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAErG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAoB,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAErF,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAiB,EAAE;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,MAAM;YACrB,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,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,IAAA,qCAA0B,EACxB,QAAQ,EACR;IACE,iBAAiB,EAAE,cAAc;IACjC,SAAS,EAAE,UAAU;CACtB,EACD,wBAAwB,CACzB,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 { getFutureFundingRate } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst WINDOW_SEC = 365 * 86400;\n\nconst fetchFundingRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, to - WINDOW_SEC);\n\n const rows = await getFutureFundingRate('usdt', { contract, from, to, limit: 1000 });\n\n return (rows ?? [])\n .map((entry): IInterestRate => {\n const ms = entry.t * 1000;\n const rate = Number(entry.r);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'GATE',\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) < endedAtMs);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n direction: 'backward',\n },\n fetchFundingRateBackward,\n);\n"]}
1
+ {"version":3,"file":"interest-rate-service.js","sourceRoot":"","sources":["../../src/services/interest-rate-service.ts"],"names":[],"mappings":";;AACA,+CAA8D;AAC9D,+CAA6D;AAC7D,yCAAuD;AACvD,kDAAyD;AAEzD,MAAM,QAAQ,GAAG,mBAAQ,CAAC,WAAW,EAAE,CAAC;AAExC,MAAM,sBAAsB,GAAoB;IAC9C,UAAU,EAAE,CAAC;IACb,oBAAoB,EAAE,EAAE;IACxB,sBAAsB,EAAE,CAAC;IACzB,6BAA6B,EAAE,IAAI;IACnC,qBAAqB,EAAE,CAAC;IACxB,4BAA4B,EAAE,IAAI;CACnC,CAAC;AAEF,MAAM,UAAU,GAAG,GAAG,GAAG,KAAK,CAAC;AAE/B,MAAM,wBAAwB,GAAG,KAAK,EAAE,GAIvC,EAA4B,EAAE;IAC7B,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAErG,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;IAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAoB,EAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAErF,OAAO,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;SAChB,GAAG,CAAC,CAAC,KAAK,EAAiB,EAAE;QAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,aAAa,EAAE,MAAM;YACrB,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,SAAS,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,IAAA,qCAA0B,EACxB,QAAQ,EACR;IACE,iBAAiB,EAAE,cAAc;IACjC,SAAS,EAAE,UAAU;CACtB,EACD,wBAAwB,EACxB,sBAAsB,CACvB,CAAC","sourcesContent":["import { IInterestRate } from '@yuants/data-interest-rate';\nimport { provideInterestRateService } from '@yuants/exchange';\nimport { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { decodePath, formatTime } from '@yuants/utils';\nimport { getFutureFundingRate } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst WINDOW_SEC = 365 * 86400;\n\nconst fetchFundingRateBackward = async (req: {\n product_id: string;\n time: number;\n series_id: string;\n}): Promise<IInterestRate[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n const from = Math.max(0, to - WINDOW_SEC);\n\n const rows = await getFutureFundingRate('usdt', { contract, from, to, limit: 1000 });\n\n return (rows ?? [])\n .map((entry): IInterestRate => {\n const ms = entry.t * 1000;\n const rate = Number(entry.r);\n return {\n series_id: req.series_id,\n product_id: req.product_id,\n datasource_id: 'GATE',\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) < endedAtMs);\n};\n\nprovideInterestRateService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n direction: 'backward',\n },\n fetchFundingRateBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
@@ -5,6 +5,14 @@ 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
+ };
8
16
  const DURATION_TO_GATE_INTERVAL = {
9
17
  PT1M: '1m',
10
18
  PT5M: '5m',
@@ -107,10 +115,10 @@ const fetchSpotOHLCBackward = async (req) => {
107
115
  product_id_prefix: 'GATE/FUTURE/',
108
116
  duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),
109
117
  direction: 'backward',
110
- }, fetchFuturesOHLCBackward);
118
+ }, fetchFuturesOHLCBackward, INGEST_SERVICE_OPTIONS);
111
119
  (0, exchange_1.provideOHLCService)(terminal, {
112
120
  product_id_prefix: 'GATE/SPOT/',
113
121
  duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),
114
122
  direction: 'backward',
115
- }, fetchSpotOHLCBackward);
123
+ }, fetchSpotOHLCBackward, INGEST_SERVICE_OPTIONS);
116
124
  //# sourceMappingURL=ohlc-service.js.map
@@ -1 +1 @@
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 { getFuturesCandlesticks, getSpotCandlesticks } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst DURATION_TO_GATE_INTERVAL: Record<string, string> = {\n PT1M: '1m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n PT1H: '1h',\n PT4H: '4h',\n PT8H: '8h',\n P1D: '1d',\n P1W: '1w',\n};\n\nconst normalizeCandle = (\n raw:\n | { t: number; o: string; h: string; l: string; c: string; v: string }\n | [string, string, string, string, string, string],\n): { tMs: number; o: string; h: string; l: string; c: string; v: string } => {\n if (Array.isArray(raw)) {\n const t = Number(raw[0]);\n const tMs = t < 1e12 ? t * 1000 : t;\n const volume = raw[1];\n const close = raw[2];\n const high = raw[3];\n const low = raw[4];\n const open = raw[5];\n return { tMs, o: open, h: high, l: low, c: close, v: volume };\n }\n const t = Number(raw.t);\n const tMs = t < 1e12 ? t * 1000 : t;\n return { tMs, o: raw.o, h: raw.h, l: raw.l, c: raw.c, v: raw.v };\n};\n\nconst fetchFuturesOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getFuturesCandlesticks('usdt', {\n contract,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nconst fetchSpotOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, currency_pair] = decodePath(req.product_id);\n if (instType !== 'SPOT' || !currency_pair) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getSpotCandlesticks({\n currency_pair,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchFuturesOHLCBackward,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/SPOT/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchSpotOHLCBackward,\n);\n"]}
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 { IServiceOptions, Terminal } from '@yuants/protocol';\nimport { convertDurationToOffset, decodePath, formatTime } from '@yuants/utils';\nimport { getFuturesCandlesticks, getSpotCandlesticks } from '../api/public-api';\n\nconst terminal = Terminal.fromNodeEnv();\n\nconst INGEST_SERVICE_OPTIONS: IServiceOptions = {\n concurrent: 1,\n max_pending_requests: 20,\n ingress_token_capacity: 2,\n ingress_token_refill_interval: 1000,\n egress_token_capacity: 1,\n egress_token_refill_interval: 1000,\n};\n\nconst DURATION_TO_GATE_INTERVAL: Record<string, string> = {\n PT1M: '1m',\n PT5M: '5m',\n PT15M: '15m',\n PT30M: '30m',\n PT1H: '1h',\n PT4H: '4h',\n PT8H: '8h',\n P1D: '1d',\n P1W: '1w',\n};\n\nconst normalizeCandle = (\n raw:\n | { t: number; o: string; h: string; l: string; c: string; v: string }\n | [string, string, string, string, string, string],\n): { tMs: number; o: string; h: string; l: string; c: string; v: string } => {\n if (Array.isArray(raw)) {\n const t = Number(raw[0]);\n const tMs = t < 1e12 ? t * 1000 : t;\n const volume = raw[1];\n const close = raw[2];\n const high = raw[3];\n const low = raw[4];\n const open = raw[5];\n return { tMs, o: open, h: high, l: low, c: close, v: volume };\n }\n const t = Number(raw.t);\n const tMs = t < 1e12 ? t * 1000 : t;\n return { tMs, o: raw.o, h: raw.h, l: raw.l, c: raw.c, v: raw.v };\n};\n\nconst fetchFuturesOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, contract] = decodePath(req.product_id);\n if (instType !== 'FUTURE' || !contract) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getFuturesCandlesticks('usdt', {\n contract,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nconst fetchSpotOHLCBackward = async (req: {\n product_id: string;\n duration: string;\n time: number;\n series_id: string;\n}): Promise<IOHLC[]> => {\n const [, instType, currency_pair] = decodePath(req.product_id);\n if (instType !== 'SPOT' || !currency_pair) throw new Error(`Unsupported product_id: ${req.product_id}`);\n\n const interval = DURATION_TO_GATE_INTERVAL[req.duration];\n if (!interval) throw new Error(`Unsupported duration: ${req.duration}`);\n\n const offset = convertDurationToOffset(req.duration);\n const endedAtMs = req.time;\n const to = Math.floor(endedAtMs / 1000);\n\n const rows = await getSpotCandlesticks({\n currency_pair,\n interval,\n to,\n limit: 1000,\n });\n\n return (rows ?? [])\n .map((raw): IOHLC => {\n const k = normalizeCandle(raw);\n return {\n series_id: req.series_id,\n datasource_id: 'GATE',\n product_id: req.product_id,\n duration: req.duration,\n created_at: formatTime(k.tMs),\n closed_at: formatTime(k.tMs + offset),\n open: k.o,\n high: k.h,\n low: k.l,\n close: k.c,\n volume: k.v,\n open_interest: '0',\n };\n })\n .filter((x) => Date.parse(x.created_at) < endedAtMs);\n};\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/FUTURE/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchFuturesOHLCBackward,\n INGEST_SERVICE_OPTIONS,\n);\n\nprovideOHLCService(\n terminal,\n {\n product_id_prefix: 'GATE/SPOT/',\n duration_list: Object.keys(DURATION_TO_GATE_INTERVAL),\n direction: 'backward',\n },\n fetchSpotOHLCBackward,\n INGEST_SERVICE_OPTIONS,\n);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuants/vendor-gate",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "main": "lib/index.js",
5
5
  "files": [
6
6
  "lib",
@@ -8,19 +8,19 @@
8
8
  "temp"
9
9
  ],
10
10
  "dependencies": {
11
- "@yuants/cache": "0.3.4",
12
- "@yuants/protocol": "0.53.3",
13
- "@yuants/transfer": "0.2.40",
14
- "@yuants/data-account": "0.11.0",
15
- "@yuants/data-order": "0.7.1",
16
- "@yuants/data-ohlc": "0.4.23",
17
- "@yuants/sql": "0.9.31",
18
- "@yuants/data-product": "0.5.1",
19
- "@yuants/utils": "0.15.0",
20
- "@yuants/data-series": "0.3.53",
21
- "@yuants/data-interest-rate": "0.1.49",
22
- "@yuants/exchange": "0.8.1",
23
- "@yuants/data-quote": "0.4.0",
11
+ "@yuants/cache": "0.3.5",
12
+ "@yuants/protocol": "0.53.4",
13
+ "@yuants/transfer": "0.2.41",
14
+ "@yuants/data-account": "0.11.1",
15
+ "@yuants/data-order": "0.7.2",
16
+ "@yuants/data-ohlc": "0.5.0",
17
+ "@yuants/sql": "0.9.32",
18
+ "@yuants/data-product": "0.5.2",
19
+ "@yuants/utils": "0.16.0",
20
+ "@yuants/data-series": "0.3.54",
21
+ "@yuants/data-interest-rate": "0.2.0",
22
+ "@yuants/exchange": "0.8.2",
23
+ "@yuants/data-quote": "0.4.1",
24
24
  "rxjs": "~7.5.6"
25
25
  },
26
26
  "devDependencies": {
@@ -30,7 +30,7 @@
30
30
  "@rushstack/heft-node-rig": "~1.10.7",
31
31
  "@types/heft-jest": "1.0.3",
32
32
  "@types/node": "22",
33
- "@yuants/extension": "0.2.32",
33
+ "@yuants/extension": "0.2.33",
34
34
  "@yuants/tool-kit": "0.2.1",
35
35
  "typescript": "~4.7.4"
36
36
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "apps/vendor-gate/AGENTS.md": "59be8d734f8a91ae5f7377e7c688f1fccb8641b7",
3
- "apps/vendor-gate/CHANGELOG.json": "01aa1c737bba1f76f25bb2dfa2fe59bcabc401a4",
4
- "apps/vendor-gate/CHANGELOG.md": "e4ae0a1526b403e7362bd66827d4c1de77267f2f",
3
+ "apps/vendor-gate/CHANGELOG.json": "202399a93affeac3b86f62a1b9360082ae909de3",
4
+ "apps/vendor-gate/CHANGELOG.md": "28337cd5e4bba72b54801bdd3eb906633eb32640",
5
5
  "apps/vendor-gate/README.md": "ea5ee3a61cd87d9104d729902dfaccac9b9913e0",
6
6
  "apps/vendor-gate/SESSION_NOTES.md": "eefeaa9e02b039bde7180b6a479fc3fa0e72321c",
7
7
  "apps/vendor-gate/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
@@ -9,7 +9,7 @@
9
9
  "apps/vendor-gate/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
10
10
  "apps/vendor-gate/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
11
11
  "apps/vendor-gate/etc/vendor-gate.api.md": "970682cd589432de553cc5cee2a0abe73814a515",
12
- "apps/vendor-gate/package.json": "331ad65f8f32b5d07487797b8c71f8113fcf6d7d",
12
+ "apps/vendor-gate/package.json": "41de87af2db21fb29c5ea3a076a44e994df9ad64",
13
13
  "apps/vendor-gate/src/api/http-client.ts": "97e0e70454c6072f388f90442ec4afabe6feb93b",
14
14
  "apps/vendor-gate/src/api/private-api.ts": "7a3e2f74881651ee940d23d34025deab07abe3f0",
15
15
  "apps/vendor-gate/src/api/public-api.ts": "02743d258c70cd0fbfc7fcc80a0603dd45f3a75e",
@@ -19,11 +19,11 @@
19
19
  "apps/vendor-gate/src/services/accounts/unified.ts": "2955a652857c54404f2c14142ef31d2ad67a05e0",
20
20
  "apps/vendor-gate/src/services/default-credential.ts": "b9ffa157b818148450bfaaf4851597e91901190c",
21
21
  "apps/vendor-gate/src/services/exchange.ts": "3a8fbaecaf7ea0c5a03f3a61f21fb8d2d4588394",
22
- "apps/vendor-gate/src/services/interest-rate-service.ts": "2711ce1172fc1ea337871e3397d4b46214061f29",
22
+ "apps/vendor-gate/src/services/interest-rate-service.ts": "88767416bc626e8b0248950589920f1b69242cdb",
23
23
  "apps/vendor-gate/src/services/markets/interest-rate.ts": "e669eb1d664448f309bb062907b273157d1c111e",
24
24
  "apps/vendor-gate/src/services/markets/product.ts": "1e62a06379a7833936ca1385bf639b5be5d5e07e",
25
25
  "apps/vendor-gate/src/services/markets/quote.ts": "a213aa6505f0619e456403c764ee14d9d7cf3931",
26
- "apps/vendor-gate/src/services/ohlc-service.ts": "9e5b037cfdae4b573ce8a3e464c8d5d60eb7d0f3",
26
+ "apps/vendor-gate/src/services/ohlc-service.ts": "4fda4f79d6405d223df5db28753e9448f8916f9d",
27
27
  "apps/vendor-gate/src/services/orders/cancelOrder.ts": "7dfdd30eaac89742f1050bf0fb47d8053ccecb28",
28
28
  "apps/vendor-gate/src/services/orders/listOrders.ts": "cc59845c6ab9acb6b0513866aff56031a68328c2",
29
29
  "apps/vendor-gate/src/services/orders/submitOrder.ts": "321398ad18bb4012d2a40e4f704bc827ccfaff93",
@@ -31,19 +31,19 @@
31
31
  "apps/vendor-gate/src/services/transfer.ts": "a1a7df99d74d5301b4f36ee9c168079874e73a40",
32
32
  "apps/vendor-gate/tsconfig.json": "81da8f78196974b5d15da0edb6b2d9f48641063c",
33
33
  "apps/vendor-gate/.rush/temp/shrinkwrap-deps.json": "95f71ca2cec03122dda0b5c63c809ffede0bb891",
34
- "libraries/cache/temp/package-deps.json": "e1f94620bc6245add32a4f9d379ed2901129d818",
35
- "libraries/protocol/temp/package-deps.json": "c94931cb0eab7180d90a06d740c1a97c0ac0c6b6",
36
- "libraries/transfer/temp/package-deps.json": "7b0db8291734d10d4f1d9c2c25d9e3918cabc79e",
37
- "libraries/data-account/temp/package-deps.json": "d49586cd2fc2d6d025e585e5a5dd04d37c41263c",
38
- "libraries/data-order/temp/package-deps.json": "8aa3e27ff80629d417bfe920e85d8525fbb52f42",
39
- "libraries/data-ohlc/temp/package-deps.json": "8415ee90c49d7e84faaa2565cc1122fdacf73dab",
40
- "libraries/sql/temp/package-deps.json": "041074e0102f9a01820c0fddcf82b9eaee226c79",
41
- "libraries/data-product/temp/package-deps.json": "899bba8ace3f04b2035488ff9059e40732ef1d97",
42
- "libraries/utils/temp/package-deps.json": "7f1eab07acae68df931b001594a522f050ace396",
43
- "libraries/data-series/temp/package-deps.json": "a94e2f373c448a6205ee6c47e41d9283a76ee352",
44
- "libraries/data-interest-rate/temp/package-deps.json": "5a1011b097b18b96c2d8c932d874f69472621efd",
45
- "libraries/exchange/temp/package-deps.json": "0f0549ddf97292ceadb8c3cbcc8799e31e7a0901",
46
- "libraries/data-quote/temp/package-deps.json": "c2f009f818a503342bef588da21c9abd52beea00",
47
- "libraries/extension/temp/package-deps.json": "3e0a81b0c863c2daf342dfaf284b8fd7d18c8562",
34
+ "libraries/cache/temp/package-deps.json": "2e6c6db8f750a2e173a3c4b9a57d22fbd6f9181d",
35
+ "libraries/protocol/temp/package-deps.json": "a30b39ceb4cd530ed6bc4e97433f995b026b26d9",
36
+ "libraries/transfer/temp/package-deps.json": "6d0942aa4c50b35a8e47a500fe494fb4a08a99e5",
37
+ "libraries/data-account/temp/package-deps.json": "363f171a8ec4ae558e4b20626b06bc8ae145ce8a",
38
+ "libraries/data-order/temp/package-deps.json": "daedd350fe85f0564f7739c73689fb09664132de",
39
+ "libraries/data-ohlc/temp/package-deps.json": "2115e384567d1b0958c085f455da9bed5a638780",
40
+ "libraries/sql/temp/package-deps.json": "252d819797cb0a4bbc579075867624b05b19dabb",
41
+ "libraries/data-product/temp/package-deps.json": "4f525fda6d65677f9fbdcd1b4480970dd6ff9e5b",
42
+ "libraries/utils/temp/package-deps.json": "7a9e2336d7ad44e827d81e9722767d6cdf99fc1f",
43
+ "libraries/data-series/temp/package-deps.json": "71b373ec83ce1188001e341aefaca704aa4a5c38",
44
+ "libraries/data-interest-rate/temp/package-deps.json": "0aa2057c1c5c432be87e97b8df22984bdcab307c",
45
+ "libraries/exchange/temp/package-deps.json": "5267eb70cd2e7df4a645f94133ad3428b52c567e",
46
+ "libraries/data-quote/temp/package-deps.json": "07e342d9dba4d5f5d89b62c74f079425b560cb1f",
47
+ "libraries/extension/temp/package-deps.json": "fcddc4a668ecf969ca593c67ff02543fe69a6829",
48
48
  "tools/toolkit/temp/package-deps.json": "23e053490eb8feade23e4d45de4e54883e322711"
49
49
  }