@yuants/vendor-hyperliquid 0.3.3 → 0.3.4

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/product.js CHANGED
@@ -63,7 +63,6 @@ tokenProduct$.subscribe();
63
63
  createSQLWriter(terminal, {
64
64
  data$: product$,
65
65
  tableName: 'product',
66
- keyFn: (x) => encodePath(x.datasource_id, x.product_id),
67
66
  conflictKeys: ['datasource_id', 'product_id'],
68
67
  writeInterval: 1000,
69
68
  });
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"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","sourcesContent":["import { IProduct } from '@yuants/data-product';\nimport { createSQLWriter } from '@yuants/sql';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { defer, repeat, retry, shareReplay, Subject, tap } from 'rxjs';\nimport { client } from './api';\nimport { terminal } from './terminal';\n\nconst product$ = new Subject<IProduct>();\n\nconst tokenProduct$ = defer(async () => {\n const res = await client.getSpotMetaData();\n return res.tokens.map(\n (token): IProduct => ({\n product_id: encodePath('SPOT', `${token.name}-USDC`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USDC',\n base_currency: token.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${token.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: false,\n market_id: 'Hyperliquid',\n no_interest_rate: true,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'SpotProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nexport const perpetualProduct$ = defer(async () => {\n const res = await client.getPerpetualsMetaData();\n return res.universe.map(\n (product): IProduct => ({\n product_id: encodePath('PERPETUAL', `${product.name}-USD`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USD',\n base_currency: product.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${product.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1 / product.maxLeverage,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'Hyperliquid',\n no_interest_rate: false,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'PerpetualProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nperpetualProduct$.subscribe();\ntokenProduct$.subscribe();\n\ncreateSQLWriter<IProduct>(terminal, {\n data$: product$,\n tableName: 'product',\n keyFn: (x) => encodePath(x.datasource_id, x.product_id),\n conflictKeys: ['datasource_id', 'product_id'],\n writeInterval: 1000,\n});\n"]}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"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","sourcesContent":["import { IProduct } from '@yuants/data-product';\nimport { createSQLWriter } from '@yuants/sql';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { defer, repeat, retry, shareReplay, Subject, tap } from 'rxjs';\nimport { client } from './api';\nimport { terminal } from './terminal';\n\nconst product$ = new Subject<IProduct>();\n\nconst tokenProduct$ = defer(async () => {\n const res = await client.getSpotMetaData();\n return res.tokens.map(\n (token): IProduct => ({\n product_id: encodePath('SPOT', `${token.name}-USDC`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USDC',\n base_currency: token.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${token.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: false,\n market_id: 'Hyperliquid',\n no_interest_rate: true,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'SpotProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nexport const perpetualProduct$ = defer(async () => {\n const res = await client.getPerpetualsMetaData();\n return res.universe.map(\n (product): IProduct => ({\n product_id: encodePath('PERPETUAL', `${product.name}-USD`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USD',\n base_currency: product.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${product.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1 / product.maxLeverage,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'Hyperliquid',\n no_interest_rate: false,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'PerpetualProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nperpetualProduct$.subscribe();\ntokenProduct$.subscribe();\n\ncreateSQLWriter<IProduct>(terminal, {\n data$: product$,\n tableName: 'product',\n conflictKeys: ['datasource_id', 'product_id'],\n writeInterval: 1000,\n});\n"]}
package/lib/product.js CHANGED
@@ -66,7 +66,6 @@ tokenProduct$.subscribe();
66
66
  (0, sql_1.createSQLWriter)(terminal_1.terminal, {
67
67
  data$: product$,
68
68
  tableName: 'product',
69
- keyFn: (x) => (0, utils_1.encodePath)(x.datasource_id, x.product_id),
70
69
  conflictKeys: ['datasource_id', 'product_id'],
71
70
  writeInterval: 1000,
72
71
  });
@@ -1 +1 @@
1
- {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"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","sourcesContent":["import { IProduct } from '@yuants/data-product';\nimport { createSQLWriter } from '@yuants/sql';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { defer, repeat, retry, shareReplay, Subject, tap } from 'rxjs';\nimport { client } from './api';\nimport { terminal } from './terminal';\n\nconst product$ = new Subject<IProduct>();\n\nconst tokenProduct$ = defer(async () => {\n const res = await client.getSpotMetaData();\n return res.tokens.map(\n (token): IProduct => ({\n product_id: encodePath('SPOT', `${token.name}-USDC`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USDC',\n base_currency: token.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${token.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: false,\n market_id: 'Hyperliquid',\n no_interest_rate: true,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'SpotProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nexport const perpetualProduct$ = defer(async () => {\n const res = await client.getPerpetualsMetaData();\n return res.universe.map(\n (product): IProduct => ({\n product_id: encodePath('PERPETUAL', `${product.name}-USD`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USD',\n base_currency: product.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${product.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1 / product.maxLeverage,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'Hyperliquid',\n no_interest_rate: false,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'PerpetualProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nperpetualProduct$.subscribe();\ntokenProduct$.subscribe();\n\ncreateSQLWriter<IProduct>(terminal, {\n data$: product$,\n tableName: 'product',\n keyFn: (x) => encodePath(x.datasource_id, x.product_id),\n conflictKeys: ['datasource_id', 'product_id'],\n writeInterval: 1000,\n});\n"]}
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../src/product.ts"],"names":[],"mappings":"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","sourcesContent":["import { IProduct } from '@yuants/data-product';\nimport { createSQLWriter } from '@yuants/sql';\nimport { encodePath, formatTime } from '@yuants/utils';\nimport { defer, repeat, retry, shareReplay, Subject, tap } from 'rxjs';\nimport { client } from './api';\nimport { terminal } from './terminal';\n\nconst product$ = new Subject<IProduct>();\n\nconst tokenProduct$ = defer(async () => {\n const res = await client.getSpotMetaData();\n return res.tokens.map(\n (token): IProduct => ({\n product_id: encodePath('SPOT', `${token.name}-USDC`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USDC',\n base_currency: token.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${token.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: false,\n market_id: 'Hyperliquid',\n no_interest_rate: true,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'SpotProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nexport const perpetualProduct$ = defer(async () => {\n const res = await client.getPerpetualsMetaData();\n return res.universe.map(\n (product): IProduct => ({\n product_id: encodePath('PERPETUAL', `${product.name}-USD`),\n datasource_id: 'HYPERLIQUID',\n quote_currency: 'USD',\n base_currency: product.name,\n price_step: 1e-2,\n volume_step: Number(`1e-${product.szDecimals}`),\n name: '',\n value_scale: 1,\n value_scale_unit: '',\n margin_rate: 1 / product.maxLeverage,\n value_based_cost: 0,\n volume_based_cost: 0,\n max_position: 0,\n max_volume: 0,\n allow_long: true,\n allow_short: true,\n market_id: 'Hyperliquid',\n no_interest_rate: false,\n }),\n );\n}).pipe(\n tap((list) => list.forEach((product) => product$.next(product))),\n tap({\n error: (e) => {\n console.error(formatTime(Date.now()), 'PerpetualProducts', e);\n },\n }),\n retry({ delay: 5000 }),\n repeat({ delay: 86400_000 }),\n shareReplay(1),\n);\n\nperpetualProduct$.subscribe();\ntokenProduct$.subscribe();\n\ncreateSQLWriter<IProduct>(terminal, {\n data$: product$,\n tableName: 'product',\n conflictKeys: ['datasource_id', 'product_id'],\n writeInterval: 1000,\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuants/vendor-hyperliquid",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "bin": "lib/cli.js",
5
5
  "main": "lib/index.js",
6
6
  "files": [
@@ -10,19 +10,19 @@
10
10
  ],
11
11
  "dependencies": {
12
12
  "@yuants/protocol": "0.39.1",
13
- "@yuants/transfer": "0.2.8",
14
- "@yuants/data-account": "0.3.9",
13
+ "@yuants/transfer": "0.2.9",
14
+ "@yuants/data-account": "0.3.10",
15
15
  "@yuants/utils": "0.7.1",
16
- "@yuants/sql": "0.8.7",
17
- "@yuants/data-product": "0.2.9",
18
- "@yuants/data-interest-rate": "0.1.17",
19
- "@yuants/data-series": "0.3.20",
16
+ "@yuants/sql": "0.9.0",
17
+ "@yuants/data-product": "0.2.10",
18
+ "@yuants/data-interest-rate": "0.1.18",
19
+ "@yuants/data-series": "0.3.21",
20
20
  "rxjs": "~7.5.6",
21
21
  "crypto-js": "^4.2.0",
22
22
  "hyperliquid": "~1.6.2",
23
23
  "ethers": "~6.13.5",
24
24
  "@msgpack/msgpack": "~3.1.2",
25
- "@yuants/data-ohlc": "0.3.16"
25
+ "@yuants/data-ohlc": "0.3.17"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@microsoft/api-extractor": "~7.30.0",
package/temp/image-tag CHANGED
@@ -1 +1 @@
1
- sha-0e963380453d540ab7e362ee06bc246a63abec71
1
+ sha-75e08b321f3b4babf4ca58dae62f6e8a8ee1730a
@@ -1,13 +1,13 @@
1
1
  {
2
- "apps/vendor-hyperliquid/CHANGELOG.json": "6ff8e100ab76a996235cc514dbfc58c32305b496",
3
- "apps/vendor-hyperliquid/CHANGELOG.md": "8817cf26da9fc2fe64c0608388f308011af0aec0",
2
+ "apps/vendor-hyperliquid/CHANGELOG.json": "60985c7d53a02dad4aef168abdaf2c33e8c20412",
3
+ "apps/vendor-hyperliquid/CHANGELOG.md": "0f51ad7fb13301e9ef44c939ec25b9820cd1bedd",
4
4
  "apps/vendor-hyperliquid/api-extractor.json": "62f4fd324425b9a235f0c117975967aab09ced0c",
5
5
  "apps/vendor-hyperliquid/build/Dockerfile": "1c2ae19b2c8549403281594a463aaae67d70400c",
6
6
  "apps/vendor-hyperliquid/config/jest.config.json": "4bb17bde3ee911163a3edb36a6eb71491d80b1bd",
7
7
  "apps/vendor-hyperliquid/config/rig.json": "f6c7b5537dc77a3170ba9f008bae3b6c3ee11956",
8
8
  "apps/vendor-hyperliquid/config/typescript.json": "854907e8a821f2050f6533368db160c649c25348",
9
9
  "apps/vendor-hyperliquid/etc/vendor-hyperliquid.api.md": "66675bd88afa1fe945f0d4023984c1c9c3e60a34",
10
- "apps/vendor-hyperliquid/package.json": "d5089fce178b173b814c2f3569322bece7cf4ba4",
10
+ "apps/vendor-hyperliquid/package.json": "723a4d6ad5f9612ef6b9a8fccf1713e5abd49cea",
11
11
  "apps/vendor-hyperliquid/src/api.ts": "041aa6e0e322b7c6ea5c822119c695b05d32295a",
12
12
  "apps/vendor-hyperliquid/src/cli.ts": "9bf6b5559a6c6f33da20e74cc6c5d702c60ec891",
13
13
  "apps/vendor-hyperliquid/src/extension.ts": "451dc84e9d62d0e87aec1e04a2a8375aaef873a3",
@@ -15,20 +15,20 @@
15
15
  "apps/vendor-hyperliquid/src/interest_rate.ts": "5b46f8a4904734d9801e3ddd1146813918e36835",
16
16
  "apps/vendor-hyperliquid/src/ohlc.ts": "b1272944f0ffe8dd77ef9e7e39429efb7d2e5006",
17
17
  "apps/vendor-hyperliquid/src/order.ts": "26bbe7b5e52a7b7fbff4ea7bb8944b7c7b42d664",
18
- "apps/vendor-hyperliquid/src/product.ts": "73a920896d1c825885d93c244de7d48ab93bb902",
18
+ "apps/vendor-hyperliquid/src/product.ts": "fec2d7f031f6aa594891e52096fcedcc8a65906c",
19
19
  "apps/vendor-hyperliquid/src/sign.ts": "94f4e5604a01d197d164b42415b17789ab2b6889",
20
20
  "apps/vendor-hyperliquid/src/terminal.ts": "04776a178d253a2e53f9c84c802e80f67aa9179b",
21
21
  "apps/vendor-hyperliquid/tsconfig.json": "81da8f78196974b5d15da0edb6b2d9f48641063c",
22
22
  "apps/vendor-hyperliquid/.rush/temp/shrinkwrap-deps.json": "a644dec0eeab2f37ea8753d3b91dda558ffaf336",
23
23
  "libraries/protocol/temp/package-deps.json": "9dd08f362a18e682103da293f1644d0be511dccb",
24
- "libraries/transfer/temp/package-deps.json": "a81e87872e38481e5212939ab0efde33b7fc5ac2",
25
- "libraries/data-account/temp/package-deps.json": "7ab036e5d2d0a357f7172898d1bcf707ccc2f2cf",
24
+ "libraries/transfer/temp/package-deps.json": "c419b1c288471f5bee32fc5de0c0268387526156",
25
+ "libraries/data-account/temp/package-deps.json": "c5c6eb88f71f51de98c4a9f541fe9344c1e50d30",
26
26
  "libraries/utils/temp/package-deps.json": "a8bc223d16ba49e526dfa5dff4b12043b9d69797",
27
- "libraries/sql/temp/package-deps.json": "f48e0ab5231bd2b5cb46f1ea81127b9f52bce805",
28
- "libraries/data-product/temp/package-deps.json": "88aa98e55a065c53676aeb4a3c7fde8b818027a3",
29
- "libraries/data-interest-rate/temp/package-deps.json": "43b8aedd1f0b1e9d21a506acc63c62e9aeb7cf4b",
30
- "libraries/data-series/temp/package-deps.json": "119eb9cf5b6f73069f0dd51407b2d11d71d5c1df",
31
- "libraries/data-ohlc/temp/package-deps.json": "1faf7cb62958df7ef9570e6cc2d956c712232cbb",
27
+ "libraries/sql/temp/package-deps.json": "d347d47dfab59676b5e403405cc51c4b67ba1587",
28
+ "libraries/data-product/temp/package-deps.json": "132c4d7ae32e2ef9cac9ba6de58a464e53be5822",
29
+ "libraries/data-interest-rate/temp/package-deps.json": "0c9266aab90a84e5a58dfbc02bba086596bd485f",
30
+ "libraries/data-series/temp/package-deps.json": "aaafbf4054f878174832d643c9cd53516a3a18d5",
31
+ "libraries/data-ohlc/temp/package-deps.json": "67fc51dd7a495daa51c37ab6245bf24836e34d21",
32
32
  "libraries/extension/temp/package-deps.json": "ab7027477e102e1ee21a68d54473d801d4430c98",
33
33
  "tools/toolkit/temp/package-deps.json": "3bef053db16659f0cdaceea64c8a8580c0131633"
34
34
  }