@lifi/perps-types 0.1.1-alpha.0 → 0.1.1-alpha.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.
Files changed (92) hide show
  1. package/package.json +8 -2
  2. package/providers/hyperliquid/package.json +5 -0
  3. package/src/_cjs/index.js +2 -0
  4. package/src/_cjs/index.js.map +1 -1
  5. package/src/_cjs/providers/hyperliquid/assetId.js +19 -0
  6. package/src/_cjs/providers/hyperliquid/assetId.js.map +1 -0
  7. package/src/_cjs/providers/hyperliquid/index.js +20 -0
  8. package/src/_cjs/providers/hyperliquid/index.js.map +1 -0
  9. package/src/_cjs/providers/hyperliquid/mappers/history.js +22 -0
  10. package/src/_cjs/providers/hyperliquid/mappers/history.js.map +1 -0
  11. package/src/_cjs/providers/hyperliquid/mappers/index.js +15 -0
  12. package/src/_cjs/providers/hyperliquid/mappers/index.js.map +1 -0
  13. package/src/_cjs/providers/hyperliquid/mappers/market.js +28 -0
  14. package/src/_cjs/providers/hyperliquid/mappers/market.js.map +1 -0
  15. package/src/_cjs/providers/hyperliquid/mappers/order.js +77 -0
  16. package/src/_cjs/providers/hyperliquid/mappers/order.js.map +1 -0
  17. package/src/_cjs/providers/hyperliquid/mappers/position.js +29 -0
  18. package/src/_cjs/providers/hyperliquid/mappers/position.js.map +1 -0
  19. package/src/_cjs/providers/hyperliquid/mappers/shared.js +12 -0
  20. package/src/_cjs/providers/hyperliquid/mappers/shared.js.map +1 -0
  21. package/src/_cjs/providers/hyperliquid/types.js +3 -0
  22. package/src/_cjs/providers/hyperliquid/types.js.map +1 -0
  23. package/src/_cjs/subscriptions.js +3 -0
  24. package/src/_cjs/subscriptions.js.map +1 -0
  25. package/src/_cjs/withdrawal.js +3 -0
  26. package/src/_cjs/withdrawal.js.map +1 -0
  27. package/src/_esm/index.js +2 -0
  28. package/src/_esm/index.js.map +1 -1
  29. package/src/_esm/providers/hyperliquid/assetId.js +23 -0
  30. package/src/_esm/providers/hyperliquid/assetId.js.map +1 -0
  31. package/src/_esm/providers/hyperliquid/index.js +4 -0
  32. package/src/_esm/providers/hyperliquid/index.js.map +1 -0
  33. package/src/_esm/providers/hyperliquid/mappers/history.js +18 -0
  34. package/src/_esm/providers/hyperliquid/mappers/history.js.map +1 -0
  35. package/src/_esm/providers/hyperliquid/mappers/index.js +6 -0
  36. package/src/_esm/providers/hyperliquid/mappers/index.js.map +1 -0
  37. package/src/_esm/providers/hyperliquid/mappers/market.js +24 -0
  38. package/src/_esm/providers/hyperliquid/mappers/market.js.map +1 -0
  39. package/src/_esm/providers/hyperliquid/mappers/order.js +72 -0
  40. package/src/_esm/providers/hyperliquid/mappers/order.js.map +1 -0
  41. package/src/_esm/providers/hyperliquid/mappers/position.js +25 -0
  42. package/src/_esm/providers/hyperliquid/mappers/position.js.map +1 -0
  43. package/src/_esm/providers/hyperliquid/mappers/shared.js +13 -0
  44. package/src/_esm/providers/hyperliquid/mappers/shared.js.map +1 -0
  45. package/src/_esm/providers/hyperliquid/types.js +5 -0
  46. package/src/_esm/providers/hyperliquid/types.js.map +1 -0
  47. package/src/_esm/subscriptions.js +2 -0
  48. package/src/_esm/subscriptions.js.map +1 -0
  49. package/src/_esm/withdrawal.js +2 -0
  50. package/src/_esm/withdrawal.js.map +1 -0
  51. package/src/_types/index.d.ts +2 -0
  52. package/src/_types/index.d.ts.map +1 -1
  53. package/src/_types/market.d.ts +1 -0
  54. package/src/_types/market.d.ts.map +1 -1
  55. package/src/_types/providers/hyperliquid/assetId.d.ts +12 -0
  56. package/src/_types/providers/hyperliquid/assetId.d.ts.map +1 -0
  57. package/src/_types/providers/hyperliquid/index.d.ts +4 -0
  58. package/src/_types/providers/hyperliquid/index.d.ts.map +1 -0
  59. package/src/_types/providers/hyperliquid/mappers/history.d.ts +4 -0
  60. package/src/_types/providers/hyperliquid/mappers/history.d.ts.map +1 -0
  61. package/src/_types/providers/hyperliquid/mappers/index.d.ts +6 -0
  62. package/src/_types/providers/hyperliquid/mappers/index.d.ts.map +1 -0
  63. package/src/_types/providers/hyperliquid/mappers/market.d.ts +4 -0
  64. package/src/_types/providers/hyperliquid/mappers/market.d.ts.map +1 -0
  65. package/src/_types/providers/hyperliquid/mappers/order.d.ts +6 -0
  66. package/src/_types/providers/hyperliquid/mappers/order.d.ts.map +1 -0
  67. package/src/_types/providers/hyperliquid/mappers/position.d.ts +4 -0
  68. package/src/_types/providers/hyperliquid/mappers/position.d.ts.map +1 -0
  69. package/src/_types/providers/hyperliquid/mappers/shared.d.ts +7 -0
  70. package/src/_types/providers/hyperliquid/mappers/shared.d.ts.map +1 -0
  71. package/src/_types/providers/hyperliquid/types.d.ts +177 -0
  72. package/src/_types/providers/hyperliquid/types.d.ts.map +1 -0
  73. package/src/_types/subscriptions.d.ts +70 -0
  74. package/src/_types/subscriptions.d.ts.map +1 -0
  75. package/src/_types/typedData.d.ts +2 -3
  76. package/src/_types/typedData.d.ts.map +1 -1
  77. package/src/_types/withdrawal.d.ts +37 -0
  78. package/src/_types/withdrawal.d.ts.map +1 -0
  79. package/src/index.ts +2 -0
  80. package/src/market.ts +1 -0
  81. package/src/providers/hyperliquid/assetId.ts +26 -0
  82. package/src/providers/hyperliquid/index.ts +3 -0
  83. package/src/providers/hyperliquid/mappers/history.ts +25 -0
  84. package/src/providers/hyperliquid/mappers/index.ts +5 -0
  85. package/src/providers/hyperliquid/mappers/market.ts +35 -0
  86. package/src/providers/hyperliquid/mappers/order.ts +89 -0
  87. package/src/providers/hyperliquid/mappers/position.ts +35 -0
  88. package/src/providers/hyperliquid/mappers/shared.ts +15 -0
  89. package/src/providers/hyperliquid/types.ts +200 -0
  90. package/src/subscriptions.ts +72 -0
  91. package/src/typedData.ts +2 -8
  92. package/src/withdrawal.ts +44 -0
@@ -4,5 +4,7 @@ export * from './market.js';
4
4
  export * from './authorization.js';
5
5
  export * from './account.js';
6
6
  export * from './trading.js';
7
+ export * from './withdrawal.js';
7
8
  export * from './errors.js';
9
+ export * from './subscriptions.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA"}
@@ -14,6 +14,7 @@ export interface Dex {
14
14
  logoURI: string;
15
15
  authorizations: Authorization[];
16
16
  extraData?: Record<string, unknown>;
17
+ wsUrl?: string;
17
18
  }
18
19
  export interface DexesResponse {
19
20
  dexes: Dex[];
@@ -1 +1 @@
1
- {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../market.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACrC,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,EAAE,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,WAAW,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB"}
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../market.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IACrC,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAC9B;AAED,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,aAAa,EAAE,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,GAAG,EAAE,CAAA;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,OAAO,CAAA;IACrB,OAAO,EAAE,WAAW,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,MAAM,MAAM,aAAa,GACrB,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAA;AAER,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Calculate the asset ID for a given DEX index and asset index.
3
+ *
4
+ * Main DEX (dex = ''): assetId = indexInDex
5
+ * HIP-3 DEXes (dex = 'xyz'): assetId = 100_000 + perpDexIndex * 10_000 + indexInDex
6
+ */
7
+ export declare const calculateAssetId: (dexIndex: number, indexInDex: number) => number;
8
+ /**
9
+ * Get the DEX index from the given list of dex names.
10
+ */
11
+ export declare const getDexIndex: (dex: string, dexNames: string[]) => number;
12
+ //# sourceMappingURL=assetId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetId.d.ts","sourceRoot":"","sources":["../../../providers/hyperliquid/assetId.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,EAChB,YAAY,MAAM,KACjB,MAKF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,UAAU,MAAM,EAAE,KAAG,MAM7D,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './types.js';
2
+ export * from './assetId.js';
3
+ export * from './mappers/index.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../providers/hyperliquid/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { HistoryItem } from '../../../account.js';
2
+ import type { HlUserFill } from '../types.js';
3
+ export declare const mapHistoryItem: (fill: HlUserFill, dexKey: string, assetIdLookup: Map<string, number>) => HistoryItem;
4
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/history.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAI7C,eAAO,MAAM,cAAc,GACzB,MAAM,UAAU,EAChB,QAAQ,MAAM,EACd,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,WAcD,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { resolveAssetIdFromLookup } from './shared.js';
2
+ export { mapMarket } from './market.js';
3
+ export { mapOpenOrder, mapOrder } from './order.js';
4
+ export { mapPosition } from './position.js';
5
+ export { mapHistoryItem } from './history.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Market } from '../../../market.js';
2
+ import type { HlAssetCtx, HlUniverseItem } from '../types.js';
3
+ export declare const mapMarket: (universe: HlUniverseItem, assetCtx: HlAssetCtx, dexIndex: number, indexInDex: number, dexKey: string) => Market;
4
+ //# sourceMappingURL=market.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market.d.ts","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/market.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAI7D,eAAO,MAAM,SAAS,GACpB,UAAU,cAAc,EACxB,UAAU,UAAU,EACpB,UAAU,MAAM,EAChB,YAAY,MAAM,EAClB,QAAQ,MAAM,KACb,MAsBF,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { OpenOrder } from '../../../account.js';
2
+ import type { Order } from '../../../trading.js';
3
+ import type { HlFrontendOpenOrder, HlOrderDetail } from '../types.js';
4
+ export declare const mapOpenOrder: (o: HlFrontendOpenOrder, dexKey: string, assetIdLookup: Map<string, number>) => OpenOrder;
5
+ export declare const mapOrder: (detail: HlOrderDetail) => Order;
6
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/order.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAIrE,eAAO,MAAM,YAAY,GACvB,GAAG,mBAAmB,EACtB,QAAQ,MAAM,EACd,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,SAcD,CAAA;AAoCF,eAAO,MAAM,QAAQ,GAAI,QAAQ,aAAa,KAAG,KAsBhD,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Position } from '../../../account.js';
2
+ import type { HlAssetPosition } from '../types.js';
3
+ export declare const mapPosition: (ap: HlAssetPosition, dexKey: string, assetIdLookup: Map<string, number>) => Position;
4
+ //# sourceMappingURL=position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/position.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAIlD,eAAO,MAAM,WAAW,GACtB,IAAI,eAAe,EACnB,QAAQ,MAAM,EACd,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KACjC,QAwBF,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Look up an asset ID by symbol, throwing if the symbol is unknown.
3
+ * Asset ID 0 is a valid Hyperliquid asset (BTC-PERP), so a fallback
4
+ * to 0 would silently corrupt data.
5
+ */
6
+ export declare const resolveAssetIdFromLookup: (lookup: Map<string, number>, symbol: string) => number;
7
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../providers/hyperliquid/mappers/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,QAAQ,MAAM,KACb,MAMF,CAAA"}
@@ -0,0 +1,177 @@
1
+ export type HlUniverseItem = {
2
+ name: string;
3
+ szDecimals: number;
4
+ maxLeverage: number;
5
+ onlyIsolated: boolean;
6
+ isDelisted: boolean;
7
+ };
8
+ export type HlMeta = {
9
+ universe: HlUniverseItem[];
10
+ };
11
+ export type HlAssetCtx = {
12
+ funding: string;
13
+ openInterest: string;
14
+ dayNtlVlm: string;
15
+ markPx: string;
16
+ };
17
+ export type HlMetaAndAssetCtxs = [HlMeta, HlAssetCtx[]];
18
+ export type HlUniverse = HlMeta['universe'];
19
+ export type HlAllMids = Record<string, string>;
20
+ export type HlCandle = {
21
+ t: number;
22
+ o: string;
23
+ h: string;
24
+ l: string;
25
+ c: string;
26
+ v: string;
27
+ };
28
+ export type HlCandleSnapshot = HlCandle[];
29
+ export type HlLevel = {
30
+ px: string;
31
+ sz: string;
32
+ n: number;
33
+ };
34
+ export type HlL2Book = {
35
+ levels: [HlLevel[], HlLevel[]];
36
+ time: number;
37
+ };
38
+ export type HlPosition = {
39
+ coin: string;
40
+ szi: string;
41
+ entryPx: string;
42
+ positionValue: string;
43
+ liquidationPx: string;
44
+ unrealizedPnl: string;
45
+ marginUsed: string;
46
+ leverage: {
47
+ type: string;
48
+ value: number;
49
+ };
50
+ };
51
+ export type HlAssetPosition = {
52
+ position: HlPosition;
53
+ };
54
+ export type HlClearinghouseState = {
55
+ assetPositions: HlAssetPosition[];
56
+ marginSummary: {
57
+ accountValue: string;
58
+ totalMarginUsed: string;
59
+ };
60
+ crossMarginSummary: {
61
+ accountValue: string;
62
+ totalMarginUsed: string;
63
+ };
64
+ };
65
+ export type HlSpotBalance = {
66
+ coin: string;
67
+ token: number;
68
+ total: string;
69
+ hold: string;
70
+ entryNtl: string;
71
+ };
72
+ export type HlSpotClearinghouseState = {
73
+ balances: HlSpotBalance[];
74
+ };
75
+ export type HlUserFees = {
76
+ userAddRate: string;
77
+ userCrossRate: string;
78
+ activeReferralDiscount: string;
79
+ };
80
+ export type HlFrontendOpenOrder = {
81
+ oid: number;
82
+ coin: string;
83
+ side: string;
84
+ sz: string;
85
+ limitPx: string;
86
+ orderType: string;
87
+ origSz: string;
88
+ reduceOnly: boolean;
89
+ timestamp: number;
90
+ };
91
+ export type HlFrontendOpenOrders = HlFrontendOpenOrder[];
92
+ export type HlExtraAgents = Array<Record<string, unknown>>;
93
+ export type HlUserFill = {
94
+ tid: number;
95
+ coin: string;
96
+ side: string;
97
+ sz: string;
98
+ px: string;
99
+ dir: string;
100
+ fee: string;
101
+ closedPnl: string;
102
+ time: number;
103
+ };
104
+ export type HlUserFills = HlUserFill[];
105
+ export type HlUserFillsByTime = HlUserFill[];
106
+ export type HlOrderStatusFound = {
107
+ status: 'order';
108
+ order: HlOrderDetail;
109
+ };
110
+ export type HlOrderDetail = {
111
+ order: {
112
+ oid: number;
113
+ coin: string;
114
+ side: string;
115
+ sz: string;
116
+ limitPx: string;
117
+ orderType: string;
118
+ origSz: string;
119
+ reduceOnly: boolean;
120
+ timestamp: number;
121
+ tif: string | null;
122
+ cloid: string | null;
123
+ triggerCondition: string;
124
+ triggerPx: string | null;
125
+ };
126
+ status: string;
127
+ statusTimestamp: number;
128
+ };
129
+ export type HlOrderStatusResponse = HlOrderStatusFound | {
130
+ status: 'unknownOid';
131
+ };
132
+ export type HlPerpDexs = Array<null | {
133
+ name: string;
134
+ }>;
135
+ export type HlExchangeRequest = {
136
+ action: Record<string, unknown>;
137
+ signature: {
138
+ r: string;
139
+ s: string;
140
+ v: number;
141
+ };
142
+ nonce: number;
143
+ vaultAddress?: string | null;
144
+ };
145
+ export type HlExchangeResponse = {
146
+ status: string;
147
+ response?: string | {
148
+ type: string;
149
+ data?: {
150
+ statuses?: Array<string | {
151
+ filled: {
152
+ totalSz: string;
153
+ avgPx: string;
154
+ oid: number;
155
+ };
156
+ } | {
157
+ resting: {
158
+ oid: number;
159
+ };
160
+ } | {
161
+ waitingForFill: {
162
+ oid: number;
163
+ };
164
+ } | {
165
+ waitingForTrigger: {
166
+ oid: number;
167
+ };
168
+ } | {
169
+ success: true;
170
+ } | {
171
+ error: string;
172
+ }>;
173
+ status?: unknown;
174
+ };
175
+ };
176
+ };
177
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../providers/hyperliquid/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import type { Address } from './typedData.js';
2
+ import type { Candle, OhlcvInterval, OrderbookResponse, PricesResponse } from './market.js';
3
+ import type { HistoryItem, Position } from './account.js';
4
+ import type { Order } from './trading.js';
5
+ export type PricesSubscription = {
6
+ channel: 'prices';
7
+ dex: string;
8
+ };
9
+ export type OrderbookSubscription = {
10
+ channel: 'orderbook';
11
+ dex: string;
12
+ symbol: string;
13
+ };
14
+ export type TradesSubscription = {
15
+ channel: 'trades';
16
+ dex: string;
17
+ symbol: string;
18
+ };
19
+ export type CandleSubscription = {
20
+ channel: 'candle';
21
+ dex: string;
22
+ symbol: string;
23
+ interval: OhlcvInterval;
24
+ };
25
+ export type OrderUpdatesSubscription = {
26
+ channel: 'orderUpdates';
27
+ dex: string;
28
+ address: Address;
29
+ };
30
+ export type FillsSubscription = {
31
+ channel: 'fills';
32
+ dex: string;
33
+ address: Address;
34
+ };
35
+ export type PositionsSubscription = {
36
+ channel: 'positions';
37
+ dex: string;
38
+ address: Address;
39
+ };
40
+ export type Subscription = PricesSubscription | OrderbookSubscription | TradesSubscription | CandleSubscription | OrderUpdatesSubscription | FillsSubscription | PositionsSubscription;
41
+ export type PricesEvent = {
42
+ channel: 'prices';
43
+ data: PricesResponse;
44
+ };
45
+ export type OrderbookEvent = {
46
+ channel: 'orderbook';
47
+ data: OrderbookResponse;
48
+ };
49
+ export type TradesEvent = {
50
+ channel: 'trades';
51
+ data: HistoryItem[];
52
+ };
53
+ export type CandleEvent = {
54
+ channel: 'candle';
55
+ data: Candle;
56
+ };
57
+ export type OrderUpdatesEvent = {
58
+ channel: 'orderUpdates';
59
+ data: Order[];
60
+ };
61
+ export type FillsEvent = {
62
+ channel: 'fills';
63
+ data: HistoryItem[];
64
+ };
65
+ export type PositionsEvent = {
66
+ channel: 'positions';
67
+ data: Position[];
68
+ };
69
+ export type SubscriptionEvent = PricesEvent | OrderbookEvent | TradesEvent | CandleEvent | OrderUpdatesEvent | FillsEvent | PositionsEvent;
70
+ //# sourceMappingURL=subscriptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,cAAc,EACf,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAIzC,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACnE,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,QAAQ,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AACD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,QAAQ,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,aAAa,CAAA;CACxB,CAAA;AACD,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AACD,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,kBAAkB,GAClB,wBAAwB,GACxB,iBAAiB,GACjB,qBAAqB,CAAA;AAIzB,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAA;AACrE,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAC9E,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AACpE,MAAM,MAAM,WAAW,GAAG;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAC7D,MAAM,MAAM,iBAAiB,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,KAAK,EAAE,CAAA;CAAE,CAAA;AAC1E,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAA;CAAE,CAAA;AAClE,MAAM,MAAM,cAAc,GAAG;IAAE,OAAO,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAA;AAEvE,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,cAAc,GACd,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,UAAU,GACV,cAAc,CAAA"}
@@ -1,11 +1,10 @@
1
1
  import type { TypedData, SignedTypedData } from '@lifi/types';
2
2
  import type { Address, Hex, TypedDataDomain, TypedDataParameter } from 'viem';
3
- export type PerpsTypedDataPrimaryType = 'HyperliquidTransaction:ApproveAgent' | 'HyperliquidTransaction:ApproveBuilderFee' | 'HyperliquidTransaction:UserSetAbstraction' | 'Agent';
4
3
  export type PerpsTypedData = Omit<TypedData, 'primaryType'> & {
5
- primaryType: PerpsTypedDataPrimaryType;
4
+ primaryType: string;
6
5
  };
7
6
  export type PerpsSignedTypedData = Omit<SignedTypedData, 'primaryType'> & {
8
- primaryType: PerpsTypedDataPrimaryType;
7
+ primaryType: string;
9
8
  };
10
9
  export type { Address, Hex, TypedDataDomain, TypedDataParameter };
11
10
  //# sourceMappingURL=typedData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAE7E,MAAM,MAAM,yBAAyB,GACjC,qCAAqC,GACrC,0CAA0C,GAC1C,2CAA2C,GAC3C,OAAO,CAAA;AAEX,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG;IAC5D,WAAW,EAAE,yBAAyB,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG;IACxE,WAAW,EAAE,yBAAyB,CAAA;CACvC,CAAA;AAGD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAE7E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,GAAG;IAC5D,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG;IACxE,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAGD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,37 @@
1
+ import type { Address, Hex, PerpsTypedData } from './typedData.js';
2
+ export interface WithdrawalInput {
3
+ destination: Address;
4
+ amount: string;
5
+ }
6
+ export interface CreateWithdrawalRequest {
7
+ dex: string;
8
+ address: Address;
9
+ withdrawal: WithdrawalInput;
10
+ }
11
+ export interface WithdrawalAction {
12
+ action: string;
13
+ description?: string;
14
+ typedData: PerpsTypedData;
15
+ }
16
+ export interface CreateWithdrawalResponse {
17
+ action: WithdrawalAction;
18
+ }
19
+ export interface SignedWithdrawal {
20
+ action: string;
21
+ typedData: PerpsTypedData;
22
+ signature: Hex;
23
+ }
24
+ export interface SubmitWithdrawalRequest {
25
+ dex: string;
26
+ address: Address;
27
+ action: SignedWithdrawal;
28
+ }
29
+ export interface WithdrawalResult {
30
+ action: string;
31
+ success: boolean;
32
+ error?: string;
33
+ }
34
+ export interface SubmitWithdrawalResponse {
35
+ result: WithdrawalResult;
36
+ }
37
+ //# sourceMappingURL=withdrawal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withdrawal.d.ts","sourceRoot":"","sources":["../withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAElE,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,cAAc,CAAA;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,cAAc,CAAA;IACzB,SAAS,EAAE,GAAG,CAAA;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,gBAAgB,CAAA;CACzB"}
package/src/index.ts CHANGED
@@ -4,4 +4,6 @@ export * from './market.js'
4
4
  export * from './authorization.js'
5
5
  export * from './account.js'
6
6
  export * from './trading.js'
7
+ export * from './withdrawal.js'
7
8
  export * from './errors.js'
9
+ export * from './subscriptions.js'
package/src/market.ts CHANGED
@@ -16,6 +16,7 @@ export interface Dex {
16
16
  logoURI: string
17
17
  authorizations: Authorization[]
18
18
  extraData?: Record<string, unknown>
19
+ wsUrl?: string
19
20
  }
20
21
 
21
22
  export interface DexesResponse {
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Calculate the asset ID for a given DEX index and asset index.
3
+ *
4
+ * Main DEX (dex = ''): assetId = indexInDex
5
+ * HIP-3 DEXes (dex = 'xyz'): assetId = 100_000 + perpDexIndex * 10_000 + indexInDex
6
+ */
7
+ export const calculateAssetId = (
8
+ dexIndex: number,
9
+ indexInDex: number
10
+ ): number => {
11
+ if (dexIndex === 0) {
12
+ return indexInDex
13
+ }
14
+ return 100_000 + dexIndex * 10_000 + indexInDex
15
+ }
16
+
17
+ /**
18
+ * Get the DEX index from the given list of dex names.
19
+ */
20
+ export const getDexIndex = (dex: string, dexNames: string[]): number => {
21
+ const index = dexNames.indexOf(dex)
22
+ if (index === -1) {
23
+ throw new Error(`Unknown sub-dex: ${dex}`)
24
+ }
25
+ return index
26
+ }
@@ -0,0 +1,3 @@
1
+ export * from './types.js'
2
+ export * from './assetId.js'
3
+ export * from './mappers/index.js'
@@ -0,0 +1,25 @@
1
+ import { HistoryItemStatus, OrderSide, OrderType } from '../../../enums.js'
2
+ import type { HistoryItem } from '../../../account.js'
3
+ import type { HlUserFill } from '../types.js'
4
+
5
+ import { resolveAssetIdFromLookup } from './shared.js'
6
+
7
+ export const mapHistoryItem = (
8
+ fill: HlUserFill,
9
+ dexKey: string,
10
+ assetIdLookup: Map<string, number>
11
+ ): HistoryItem => ({
12
+ id: String(fill.tid),
13
+ symbol: fill.coin,
14
+ assetId: resolveAssetIdFromLookup(assetIdLookup, fill.coin),
15
+ dex: dexKey,
16
+ side: fill.side === 'B' ? OrderSide.BUY : OrderSide.SELL,
17
+ type: fill.dir?.includes('Limit') ? OrderType.LIMIT : OrderType.MARKET,
18
+ size: fill.sz,
19
+ price: fill.px,
20
+ status: HistoryItemStatus.FILLED,
21
+ filledSize: fill.sz,
22
+ fee: fill.fee,
23
+ realizedPnl: fill.closedPnl === '0' ? null : fill.closedPnl,
24
+ createdAt: new Date(fill.time).toISOString(),
25
+ })
@@ -0,0 +1,5 @@
1
+ export { resolveAssetIdFromLookup } from './shared.js'
2
+ export { mapMarket } from './market.js'
3
+ export { mapOpenOrder, mapOrder } from './order.js'
4
+ export { mapPosition } from './position.js'
5
+ export { mapHistoryItem } from './history.js'
@@ -0,0 +1,35 @@
1
+ import type { Market } from '../../../market.js'
2
+ import { calculateAssetId } from '../assetId.js'
3
+ import type { HlAssetCtx, HlUniverseItem } from '../types.js'
4
+
5
+ const NEXT_FUNDING_INTERVAL_MS = 60 * 60 * 1000 // 1 hour
6
+
7
+ export const mapMarket = (
8
+ universe: HlUniverseItem,
9
+ assetCtx: HlAssetCtx,
10
+ dexIndex: number,
11
+ indexInDex: number,
12
+ dexKey: string
13
+ ): Market => {
14
+ const now = Date.now()
15
+ const nextFundingTime =
16
+ Math.ceil(now / NEXT_FUNDING_INTERVAL_MS) * NEXT_FUNDING_INTERVAL_MS
17
+
18
+ return {
19
+ symbol: universe.name,
20
+ name: universe.name,
21
+ logoURI: `https://app.hyperliquid.xyz/coins/${universe.name}.svg`,
22
+ assetId: calculateAssetId(dexIndex, indexInDex),
23
+ dex: dexKey,
24
+ szDecimals: universe.szDecimals,
25
+ maxLeverage: universe.maxLeverage,
26
+ onlyIsolated: universe.onlyIsolated === true,
27
+ funding: {
28
+ rate: assetCtx.funding,
29
+ nextFundingTime,
30
+ },
31
+ openInterest: assetCtx.openInterest,
32
+ volume24h: assetCtx.dayNtlVlm,
33
+ markPrice: assetCtx.markPx,
34
+ }
35
+ }