@lifi/perps-sdk-provider-hyperliquid 4.0.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/cjs/HyperliquidProvider.d.ts.map +1 -1
  2. package/dist/cjs/HyperliquidProvider.js +1 -0
  3. package/dist/cjs/HyperliquidProvider.js.map +1 -1
  4. package/dist/cjs/services/getAccount.d.ts.map +1 -1
  5. package/dist/cjs/services/getAccount.js +1 -11
  6. package/dist/cjs/services/getAccount.js.map +1 -1
  7. package/dist/cjs/types/account.d.ts +1 -0
  8. package/dist/cjs/types/account.d.ts.map +1 -1
  9. package/dist/cjs/types/account.js +1 -0
  10. package/dist/cjs/types/account.js.map +1 -1
  11. package/dist/cjs/utils/index.d.ts +1 -0
  12. package/dist/cjs/utils/index.d.ts.map +1 -1
  13. package/dist/cjs/utils/index.js +3 -1
  14. package/dist/cjs/utils/index.js.map +1 -1
  15. package/dist/cjs/utils/spotCollateral.d.ts +7 -0
  16. package/dist/cjs/utils/spotCollateral.d.ts.map +1 -0
  17. package/dist/cjs/utils/spotCollateral.js +29 -0
  18. package/dist/cjs/utils/spotCollateral.js.map +1 -0
  19. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts +15 -1
  20. package/dist/cjs/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  21. package/dist/cjs/websocket/HyperliquidWsProvider.js +184 -27
  22. package/dist/cjs/websocket/HyperliquidWsProvider.js.map +1 -1
  23. package/dist/esm/HyperliquidProvider.d.ts.map +1 -1
  24. package/dist/esm/HyperliquidProvider.js +1 -0
  25. package/dist/esm/HyperliquidProvider.js.map +1 -1
  26. package/dist/esm/services/getAccount.d.ts.map +1 -1
  27. package/dist/esm/services/getAccount.js +2 -13
  28. package/dist/esm/services/getAccount.js.map +1 -1
  29. package/dist/esm/types/account.d.ts +3 -1
  30. package/dist/esm/types/account.d.ts.map +1 -1
  31. package/dist/esm/types/account.js +3 -1
  32. package/dist/esm/types/account.js.map +1 -1
  33. package/dist/esm/utils/index.d.ts +1 -0
  34. package/dist/esm/utils/index.d.ts.map +1 -1
  35. package/dist/esm/utils/index.js +1 -0
  36. package/dist/esm/utils/index.js.map +1 -1
  37. package/dist/esm/utils/spotCollateral.d.ts +14 -0
  38. package/dist/esm/utils/spotCollateral.d.ts.map +1 -0
  39. package/dist/esm/utils/spotCollateral.js +39 -0
  40. package/dist/esm/utils/spotCollateral.js.map +1 -0
  41. package/dist/esm/websocket/HyperliquidWsProvider.d.ts +23 -1
  42. package/dist/esm/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  43. package/dist/esm/websocket/HyperliquidWsProvider.js +223 -17
  44. package/dist/esm/websocket/HyperliquidWsProvider.js.map +1 -1
  45. package/dist/types/HyperliquidProvider.d.ts.map +1 -1
  46. package/dist/types/services/getAccount.d.ts.map +1 -1
  47. package/dist/types/types/account.d.ts +3 -1
  48. package/dist/types/types/account.d.ts.map +1 -1
  49. package/dist/types/utils/index.d.ts +1 -0
  50. package/dist/types/utils/index.d.ts.map +1 -1
  51. package/dist/types/utils/spotCollateral.d.ts +14 -0
  52. package/dist/types/utils/spotCollateral.d.ts.map +1 -0
  53. package/dist/types/websocket/HyperliquidWsProvider.d.ts +23 -1
  54. package/dist/types/websocket/HyperliquidWsProvider.d.ts.map +1 -1
  55. package/package.json +3 -3
  56. package/src/HyperliquidProvider.ts +2 -0
  57. package/src/services/getAccount.ts +8 -12
  58. package/src/types/account.ts +3 -1
  59. package/src/utils/index.ts +1 -0
  60. package/src/utils/spotCollateral.ts +50 -0
  61. package/src/websocket/HyperliquidWsProvider.ts +304 -18
@@ -1 +1 @@
1
- {"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EAaxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAuBxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAiBxD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAA;AAY3C,MAAM,WAAW,0BAA0B;IAOzC,MAAM,CAAC,EAAE,MAAM,CAAA;IAMf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAUD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IAEnE,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE5C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1E;AAuBD,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,0BAA+B,GACvC,wBAAwB,CAgQ1B"}
1
+ {"version":3,"file":"HyperliquidProvider.d.ts","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,mBAAmB,EAaxB,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAA;AAuBxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAiBxD,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,oCAAoC,CAAA;AAY3C,MAAM,WAAW,0BAA0B;IAOzC,MAAM,CAAC,EAAE,MAAM,CAAA;IAMf,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AAUD,MAAM,WAAW,wBAAyB,SAAQ,mBAAmB;IAEnE,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnD,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAE5C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5C,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1E;AAuBD,wBAAgB,mBAAmB,CACjC,OAAO,GAAE,0BAA+B,GACvC,wBAAwB,CAkQ1B"}
@@ -75,6 +75,7 @@ function hyperliquidProvider(options = {}) {
75
75
  };
76
76
  return {
77
77
  type: constants_js_1.PROVIDER_KEY,
78
+ internalSetupActions: [perps_types_1.ActionType.SET_REFERRAL],
78
79
  bind: (client) => contextRef.bind(client),
79
80
  getAgentAddress: async (address) => (await agentStore.get(address)).address,
80
81
  hasAgent: (address) => agentStore.has(address),
@@ -1 +1 @@
1
- {"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HyperliquidProvider.js","sourceRoot":"","sources":["../../src/HyperliquidProvider.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,EAKhB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAsBvD,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AAiHvD,eAAO,MAAM,UAAU,GACrB,oBAAoB,kBAAkB,EACtC,QAAQ,gBAAgB,EACxB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,eAAe,CA2GzB,CAAA"}
1
+ {"version":3,"file":"getAccount.d.ts","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EACV,eAAe,EAKhB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAuBvD,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAA;AA4GvD,eAAO,MAAM,UAAU,GACrB,oBAAoB,kBAAkB,EACtC,QAAQ,gBAAgB,EACxB,UAAU,iBAAiB,KAC1B,OAAO,CAAC,eAAe,CA2GzB,CAAA"}
@@ -31,17 +31,7 @@ const getMarginUsed = (abstraction, positions, stateByDex) => {
31
31
  const isUnifiedMode = (abstraction) => abstraction === index_js_1.HlAbstractionMode.UNIFIED_ACCOUNT ||
32
32
  abstraction === index_js_1.HlAbstractionMode.PORTFOLIO_MARGIN;
33
33
  const buildBalances = (abstraction, spotState, stateByDex, quoteAssetIds, priceById, quoteAssetByCategory) => {
34
- const balances = [];
35
- const collateralBalances = [];
36
- for (const b of spotState.balances) {
37
- const balance = (0, index_js_2.spotBalance)((0, index_js_2.spotAssetFromToken)(b), b.total, priceById);
38
- if (quoteAssetIds.has(balance.asset.id)) {
39
- collateralBalances.push(balance);
40
- }
41
- else {
42
- balances.push(balance);
43
- }
44
- }
34
+ const { balances, collateralBalances } = (0, index_js_2.partitionSpotBalances)(spotState.balances.map((b) => (0, index_js_2.spotBalance)((0, index_js_2.spotAssetFromToken)(b), b.total, priceById)), quoteAssetIds, abstraction === index_js_1.HlAbstractionMode.PORTFOLIO_MARGIN);
45
35
  if (!isUnifiedMode(abstraction)) {
46
36
  for (const [dex, state] of stateByDex) {
47
37
  const categoryId = dex || constants_js_1.PROVIDER_KEY;
@@ -1 +1 @@
1
- {"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getAccount.js","sourceRoot":"","sources":["../../../src/services/getAccount.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,7 @@ export type HlPreTransferCheck = {
45
45
  userExists: boolean;
46
46
  };
47
47
  export declare const HlAbstractionMode: {
48
+ readonly DEFAULT: "default";
48
49
  readonly DISABLED: "disabled";
49
50
  readonly UNIFIED_ACCOUNT: "unifiedAccount";
50
51
  readonly PORTFOLIO_MARGIN: "portfolioMargin";
@@ -1 +1 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,UAAU,CAAA;CACrB,CAAA;AAGD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,kBAAkB,EAAE;QAClB,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF,CAAA;AAGD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAGD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B,CAAA;AAGD,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;CAC/B,CAAA;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;AAQrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAOD,eAAO,MAAM,iBAAiB;;;;;CAKpB,CAAA;AAGV,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA"}
1
+ {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;CACF,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,UAAU,CAAA;CACrB,CAAA;AAGD,MAAM,MAAM,oBAAoB,GAAG;IACjC,cAAc,EAAE,eAAe,EAAE,CAAA;IACjC,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;IACD,kBAAkB,EAAE;QAClB,YAAY,EAAE,MAAM,CAAA;QACpB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF,CAAA;AAGD,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAGD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAC1B,CAAA;AAGD,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;CAC/B,CAAA;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;AAQrD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA;AAQD,eAAO,MAAM,iBAAiB;;;;;;CAMpB,CAAA;AAGV,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAA"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HlAbstractionMode = void 0;
4
4
  exports.HlAbstractionMode = {
5
+ DEFAULT: 'default',
5
6
  DISABLED: 'disabled',
6
7
  UNIFIED_ACCOUNT: 'unifiedAccount',
7
8
  PORTFOLIO_MARGIN: 'portfolioMargin',
@@ -1 +1 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":";;;AA0Ea,QAAA,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACzB,CAAA"}
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/types/account.ts"],"names":[],"mappings":";;;AA2Ea,QAAA,iBAAiB,GAAG;IAC/B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;CACzB,CAAA"}
@@ -13,4 +13,5 @@ export { coinAsset, perpsDexNames } from './marketDisplay.js';
13
13
  export { formatOrderPrice, formatOrderSize, getMaxPriceDecimals, } from './orderFormatting.js';
14
14
  export { priceStepToAggregation } from './priceStepToAggregation.js';
15
15
  export { spotAssetFromToken, spotBalance, spotPriceById, } from './spotBalance.js';
16
+ export { partitionSpotBalances, type SpotPartition } from './spotCollateral.js';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC9E,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,aAAa,GACd,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.spotPriceById = exports.spotBalance = exports.spotAssetFromToken = exports.priceStepToAggregation = exports.getMaxPriceDecimals = exports.formatOrderSize = exports.formatOrderPrice = exports.perpsDexNames = exports.coinAsset = exports.mapPosition = exports.isOpenAssetPosition = exports.mapTriggerOrder = exports.mapStatusReason = exports.mapOrderType = exports.mapOrderStatus = exports.mapOrder = exports.mapOpenOrder = exports.isTriggerType = exports.isTriggerOrder = exports.mapMarketContext = exports.mapMarket = exports.mapFill = exports.classifyFillFromPosition = exports.mapLedgerEntry = exports.mapFundingActivity = exports.calculateMaintenanceMarginRate = exports.calculateLiquidationPrice = exports.infoRequest = exports.hlInfoOptions = exports.decodeFastAssetCtxs = exports.decodeCompressedJson = exports.getProviderIndex = exports.calculateAssetId = exports.assetIsSpot = void 0;
3
+ exports.partitionSpotBalances = exports.spotPriceById = exports.spotBalance = exports.spotAssetFromToken = exports.priceStepToAggregation = exports.getMaxPriceDecimals = exports.formatOrderSize = exports.formatOrderPrice = exports.perpsDexNames = exports.coinAsset = exports.mapPosition = exports.isOpenAssetPosition = exports.mapTriggerOrder = exports.mapStatusReason = exports.mapOrderType = exports.mapOrderStatus = exports.mapOrder = exports.mapOpenOrder = exports.isTriggerType = exports.isTriggerOrder = exports.mapMarketContext = exports.mapMarket = exports.mapFill = exports.classifyFillFromPosition = exports.mapLedgerEntry = exports.mapFundingActivity = exports.calculateMaintenanceMarginRate = exports.calculateLiquidationPrice = exports.infoRequest = exports.hlInfoOptions = exports.decodeFastAssetCtxs = exports.decodeCompressedJson = exports.getProviderIndex = exports.calculateAssetId = exports.assetIsSpot = void 0;
4
4
  var assetId_js_1 = require("./assetId.js");
5
5
  Object.defineProperty(exports, "assetIsSpot", { enumerable: true, get: function () { return assetId_js_1.assetIsSpot; } });
6
6
  Object.defineProperty(exports, "calculateAssetId", { enumerable: true, get: function () { return assetId_js_1.calculateAssetId; } });
@@ -49,4 +49,6 @@ var spotBalance_js_1 = require("./spotBalance.js");
49
49
  Object.defineProperty(exports, "spotAssetFromToken", { enumerable: true, get: function () { return spotBalance_js_1.spotAssetFromToken; } });
50
50
  Object.defineProperty(exports, "spotBalance", { enumerable: true, get: function () { return spotBalance_js_1.spotBalance; } });
51
51
  Object.defineProperty(exports, "spotPriceById", { enumerable: true, get: function () { return spotBalance_js_1.spotPriceById; } });
52
+ var spotCollateral_js_1 = require("./spotCollateral.js");
53
+ Object.defineProperty(exports, "partitionSpotBalances", { enumerable: true, get: function () { return spotCollateral_js_1.partitionSpotBalances; } });
52
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAIA,2CAA8E;AAArE,yGAAA,WAAW,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACxD,mEAGiC;AAF/B,8HAAA,oBAAoB,OAAA;AACpB,6HAAA,mBAAmB,OAAA;AAGrB,iDAA4D;AAAnD,8GAAA,aAAa,OAAA;AAAE,4GAAA,WAAW,OAAA;AACnC,mDAGyB;AAFvB,2HAAA,yBAAyB,OAAA;AACzB,gIAAA,8BAA8B,OAAA;AAEhC,mDAAqE;AAA5D,oHAAA,kBAAkB,OAAA;AAAE,gHAAA,cAAc,OAAA;AAC3C,2CAAgE;AAAvD,sHAAA,wBAAwB,OAAA;AAAE,qGAAA,OAAO,OAAA;AAC1C,+CAA0C;AAAjC,yGAAA,SAAS,OAAA;AAClB,6DAAwD;AAA/C,uHAAA,gBAAgB,OAAA;AACzB,6CASsB;AARpB,6GAAA,cAAc,OAAA;AACd,4GAAA,aAAa,OAAA;AACb,2GAAA,YAAY,OAAA;AACZ,uGAAA,QAAQ,OAAA;AACR,6GAAA,cAAc,OAAA;AACd,2GAAA,YAAY,OAAA;AACZ,8GAAA,eAAe,OAAA;AACf,8GAAA,eAAe,OAAA;AAEjB,mDAAmE;AAA1D,qHAAA,mBAAmB,OAAA;AAAE,6GAAA,WAAW,OAAA;AACzC,uDAA6D;AAApD,6GAAA,SAAS,OAAA;AAAE,iHAAA,aAAa,OAAA;AACjC,2DAI6B;AAH3B,sHAAA,gBAAgB,OAAA;AAChB,qHAAA,eAAe,OAAA;AACf,yHAAA,mBAAmB,OAAA;AAErB,yEAAoE;AAA3D,mIAAA,sBAAsB,OAAA;AAC/B,mDAIyB;AAHvB,oHAAA,kBAAkB,OAAA;AAClB,6GAAA,WAAW,OAAA;AACX,+GAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;AAIA,2CAA8E;AAArE,yGAAA,WAAW,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AACxD,mEAGiC;AAF/B,8HAAA,oBAAoB,OAAA;AACpB,6HAAA,mBAAmB,OAAA;AAGrB,iDAA4D;AAAnD,8GAAA,aAAa,OAAA;AAAE,4GAAA,WAAW,OAAA;AACnC,mDAGyB;AAFvB,2HAAA,yBAAyB,OAAA;AACzB,gIAAA,8BAA8B,OAAA;AAEhC,mDAAqE;AAA5D,oHAAA,kBAAkB,OAAA;AAAE,gHAAA,cAAc,OAAA;AAC3C,2CAAgE;AAAvD,sHAAA,wBAAwB,OAAA;AAAE,qGAAA,OAAO,OAAA;AAC1C,+CAA0C;AAAjC,yGAAA,SAAS,OAAA;AAClB,6DAAwD;AAA/C,uHAAA,gBAAgB,OAAA;AACzB,6CASsB;AARpB,6GAAA,cAAc,OAAA;AACd,4GAAA,aAAa,OAAA;AACb,2GAAA,YAAY,OAAA;AACZ,uGAAA,QAAQ,OAAA;AACR,6GAAA,cAAc,OAAA;AACd,2GAAA,YAAY,OAAA;AACZ,8GAAA,eAAe,OAAA;AACf,8GAAA,eAAe,OAAA;AAEjB,mDAAmE;AAA1D,qHAAA,mBAAmB,OAAA;AAAE,6GAAA,WAAW,OAAA;AACzC,uDAA6D;AAApD,6GAAA,SAAS,OAAA;AAAE,iHAAA,aAAa,OAAA;AACjC,2DAI6B;AAH3B,sHAAA,gBAAgB,OAAA;AAChB,qHAAA,eAAe,OAAA;AACf,yHAAA,mBAAmB,OAAA;AAErB,yEAAoE;AAA3D,mIAAA,sBAAsB,OAAA;AAC/B,mDAIyB;AAHvB,oHAAA,kBAAkB,OAAA;AAClB,6GAAA,WAAW,OAAA;AACX,+GAAA,aAAa,OAAA;AAEf,yDAA+E;AAAtE,0HAAA,qBAAqB,OAAA"}
@@ -0,0 +1,7 @@
1
+ import type { Balance } from '@lifi/perps-types';
2
+ export interface SpotPartition {
3
+ collateralBalances: Balance[];
4
+ balances: Balance[];
5
+ }
6
+ export declare const partitionSpotBalances: (spotBalances: readonly Balance[], quoteAssetIds: ReadonlySet<string>, portfolioMargin: boolean) => SpotPartition;
7
+ //# sourceMappingURL=spotCollateral.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotCollateral.d.ts","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAgBhD,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,OAAO,EAAE,CAAA;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAA;CACpB;AAQD,eAAO,MAAM,qBAAqB,GAChC,cAAc,SAAS,OAAO,EAAE,EAChC,eAAe,WAAW,CAAC,MAAM,CAAC,EAClC,iBAAiB,OAAO,KACvB,aAkBF,CAAA"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.partitionSpotBalances = void 0;
4
+ const PORTFOLIO_MARGIN_LTV = {
5
+ HYPE: 0.5,
6
+ UBTC: 0.5,
7
+ };
8
+ const partitionSpotBalances = (spotBalances, quoteAssetIds, portfolioMargin) => {
9
+ const collateralBalances = [];
10
+ const balances = [];
11
+ for (const balance of spotBalances) {
12
+ if (quoteAssetIds.has(balance.asset.id)) {
13
+ collateralBalances.push(balance);
14
+ continue;
15
+ }
16
+ const ltv = portfolioMargin
17
+ ? PORTFOLIO_MARGIN_LTV[balance.asset.displaySymbol]
18
+ : undefined;
19
+ if (ltv !== undefined) {
20
+ collateralBalances.push({ ...balance, collateralWeight: ltv });
21
+ }
22
+ else {
23
+ balances.push(balance);
24
+ }
25
+ }
26
+ return { collateralBalances, balances };
27
+ };
28
+ exports.partitionSpotBalances = partitionSpotBalances;
29
+ //# sourceMappingURL=spotCollateral.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotCollateral.js","sourceRoot":"","sources":["../../../src/utils/spotCollateral.ts"],"names":[],"mappings":";;;AAUA,MAAM,oBAAoB,GAAqC;IAC7D,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACV,CAAA;AAcM,MAAM,qBAAqB,GAAG,CACnC,YAAgC,EAChC,aAAkC,EAClC,eAAwB,EACT,EAAE;IACjB,MAAM,kBAAkB,GAAc,EAAE,CAAA;IACxC,MAAM,QAAQ,GAAc,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAChC,SAAQ;QACV,CAAC;QACD,MAAM,GAAG,GAAG,eAAe;YACzB,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC;YACnD,CAAC,CAAC,SAAS,CAAA;QACb,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,kBAAkB,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAA;AACzC,CAAC,CAAA;AAtBY,QAAA,qBAAqB,yBAsBjC"}
@@ -1,4 +1,4 @@
1
- import { type PerpsSDKClient, type ProviderGetQuoteParams, type QuoteListener, WsProviderBase, type WsProviderFactory } from '@lifi/perps-sdk';
1
+ import { type PerpsSDKClient, type ProviderGetQuoteParams, type QuoteListener, type SubscriptionListener, WsProviderBase, type WsProviderFactory, type WsStatusListener } from '@lifi/perps-sdk';
2
2
  import { type Subscription } from '@lifi/perps-types';
3
3
  export declare const hyperliquidWsProvider: () => WsProviderFactory;
4
4
  export declare class HyperliquidWsProvider extends WsProviderBase<object> {
@@ -6,6 +6,11 @@ export declare class HyperliquidWsProvider extends WsProviderBase<object> {
6
6
  private readonly clearinghouseRefs;
7
7
  private readonly client;
8
8
  private readonly registry;
9
+ private readonly abstractionByUser;
10
+ private readonly spotRefs;
11
+ private readonly unifiedSummaryByUser;
12
+ private readonly latestPositionsByUser;
13
+ private readonly heldSummaryByUser;
9
14
  private perpCtxBySubDex;
10
15
  private spotCtxByMarketId;
11
16
  private marketsContextByMarketId;
@@ -18,6 +23,7 @@ export declare class HyperliquidWsProvider extends WsProviderBase<object> {
18
23
  private readonly sacDecodeChain;
19
24
  private readonly orderbookDecodeChain;
20
25
  constructor(wsUrl: string, providerKey: string, client?: PerpsSDKClient);
26
+ subscribe(sub: Subscription, listener: SubscriptionListener, onStatus?: WsStatusListener): Promise<() => void>;
21
27
  subscribeQuote(params: ProviderGetQuoteParams, onQuote: QuoteListener): Promise<() => void>;
22
28
  protected openChannel(sub: Subscription): Promise<() => void>;
23
29
  private claimOrderUpdatesKey;
@@ -53,6 +59,14 @@ export declare class HyperliquidWsProvider extends WsProviderBase<object> {
53
59
  private handleOrderUpdates;
54
60
  private handleUserFills;
55
61
  private handleAllDexsClearinghouseState;
62
+ private static summaryComputableFor;
63
+ private acquireSpotWire;
64
+ private syncUnifiedPipeline;
65
+ private emitUnifiedSummary;
66
+ private static readonly ABSTRACTION_TTL_MS;
67
+ private static readonly REFRESH_COALESCE_MS;
68
+ private emitSummaryIfModeAllows;
69
+ private fetchAbstractionMode;
56
70
  private handleSpotState;
57
71
  }
58
72
  //# sourceMappingURL=HyperliquidWsProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HyperliquidWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/HyperliquidWsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAGlB,cAAc,EACd,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAOL,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAA;AAuD1B,eAAO,MAAM,qBAAqB,QAC5B,iBAEgD,CAAA;AAgBtD,qBAAa,qBAAsB,SAAQ,cAAc,CAAC,MAAM,CAAC;IAC/D,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,eAAe,CAAsD;IAC7E,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,wBAAwB,CAAoC;IACpE,OAAO,CAAC,uBAAuB,CAAiC;IAChE,OAAO,CAAC,yBAAyB,CAAuC;IAKxE,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CACW;IAM/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG/B;IACD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG9B;IACD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAG9B;IACD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAGpC;gBAEW,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc;IASjE,cAAc,CAClB,MAAM,EAAE,sBAAsB,EAC9B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,IAAI,CAAC;cAkBN,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgGnE,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,gBAAgB;cAcL,OAAO,IAAI,IAAI;IAclC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9C,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM;IA4B1C,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,uBAAuB;IAa/B,OAAO,CAAC,WAAW;IA8CnB,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IA8EnC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,wBAAwB;IAyBhC,OAAO,CAAC,SAAS;IAoBjB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,wBAAwB;IAYhC,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,kBAAkB;IAyD1B,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,+BAA+B;IA2CvC,OAAO,CAAC,eAAe;CAaxB"}
1
+ {"version":3,"file":"HyperliquidWsProvider.d.ts","sourceRoot":"","sources":["../../../src/websocket/HyperliquidWsProvider.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ const perps_sdk_1 = require("@lifi/perps-sdk");
8
8
  const perps_types_1 = require("@lifi/perps-types");
9
9
  const big_js_1 = __importDefault(require("big.js"));
10
10
  const constants_js_1 = require("../constants.js");
11
- const index_js_1 = require("../utils/index.js");
11
+ const index_js_1 = require("../types/index.js");
12
+ const index_js_2 = require("../utils/index.js");
12
13
  const decodeChain_js_1 = require("./decodeChain.js");
13
14
  const HL_L2_BOOK_MAX_LEVELS_PER_SIDE = 20;
14
15
  const hyperliquidWsProvider = () => ({ provider, wsUrl, client }) => new HyperliquidWsProvider(wsUrl, provider, client);
@@ -18,6 +19,11 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
18
19
  clearinghouseRefs = new Map();
19
20
  client;
20
21
  registry;
22
+ abstractionByUser = new Map();
23
+ spotRefs = new Map();
24
+ unifiedSummaryByUser = new Map();
25
+ latestPositionsByUser = new Map();
26
+ heldSummaryByUser = new Map();
21
27
  perpCtxBySubDex = new Map();
22
28
  spotCtxByMarketId = {};
23
29
  marketsContextByMarketId = {};
@@ -34,6 +40,21 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
34
40
  this.client = client;
35
41
  this.registry = client && (0, perps_sdk_1.getMarketRegistry)(client, providerKey);
36
42
  }
43
+ async subscribe(sub, listener, onStatus) {
44
+ const unsubscribe = await super.subscribe(sub, listener, onStatus);
45
+ if (sub.channel === 'accountSummary') {
46
+ const user = sub.address.toLowerCase();
47
+ const entry = this.abstractionByUser.get(user);
48
+ if (entry === undefined) {
49
+ this.fetchAbstractionMode(sub.address, user);
50
+ }
51
+ else if (entry !== 'pending' &&
52
+ Date.now() - entry.readAt > HyperliquidWsProvider.REFRESH_COALESCE_MS) {
53
+ this.fetchAbstractionMode(sub.address, user, entry);
54
+ }
55
+ }
56
+ return unsubscribe;
57
+ }
37
58
  async subscribeQuote(params, onQuote) {
38
59
  const client = this.client;
39
60
  if (client === undefined) {
@@ -64,6 +85,11 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
64
85
  this.marketsContextByMarketId = {};
65
86
  };
66
87
  }
88
+ if (sub.channel === 'spotBalances') {
89
+ const release = await this.acquireSpotWire(sub.address);
90
+ await this.rws.ready();
91
+ return release;
92
+ }
67
93
  if (sub.channel === 'positions' || sub.channel === 'accountSummary') {
68
94
  const user = sub.address.toLowerCase();
69
95
  const wireKey = `clearinghouse:${user}`;
@@ -78,6 +104,10 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
78
104
  const remaining = (this.clearinghouseRefs.get(user) ?? 1) - 1;
79
105
  if (remaining <= 0) {
80
106
  this.clearinghouseRefs.delete(user);
107
+ this.abstractionByUser.delete(user);
108
+ this.heldSummaryByUser.delete(user);
109
+ this.latestPositionsByUser.delete(user);
110
+ this.syncUnifiedPipeline(user, user, null);
81
111
  this.unregisterSub(wireKey);
82
112
  this.rws.send(JSON.stringify({ method: 'unsubscribe', subscription: payload }));
83
113
  }
@@ -207,7 +237,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
207
237
  if (priceStep === undefined) {
208
238
  return {};
209
239
  }
210
- return (0, index_js_1.priceStepToAggregation)(priceStep, this.orderbookReferencePrice(marketId));
240
+ return (0, index_js_2.priceStepToAggregation)(priceStep, this.orderbookReferencePrice(marketId));
211
241
  }
212
242
  orderbookAggregationKey(marketId, priceStep) {
213
243
  const aggregation = this.orderbookAggregation(marketId, priceStep);
@@ -335,7 +365,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
335
365
  }
336
366
  handlePac(base64) {
337
367
  this.pacDecodeChain.push(async () => {
338
- this.emitMarketsContext(this.mergePerpAssetCtxEntries(await (0, index_js_1.decodeCompressedJson)(base64)));
368
+ this.emitMarketsContext(this.mergePerpAssetCtxEntries(await (0, index_js_2.decodeCompressedJson)(base64)));
339
369
  });
340
370
  }
341
371
  mergePerpAssetCtxEntries(entries) {
@@ -363,7 +393,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
363
393
  handleSac(base64) {
364
394
  this.sacDecodeChain.push(async () => {
365
395
  const spotMarketIdBySacKey = this.spotMarketIdBySacKey();
366
- const ctxs = await (0, index_js_1.decodeCompressedJson)(base64);
396
+ const ctxs = await (0, index_js_2.decodeCompressedJson)(base64);
367
397
  const touched = new Set();
368
398
  for (const [sacKey, ctx] of Object.entries(ctxs)) {
369
399
  const marketId = spotMarketIdBySacKey.get(sacKey);
@@ -392,7 +422,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
392
422
  }
393
423
  handleFastAssetCtxs(base64) {
394
424
  this.fastDecodeChain.push(async () => {
395
- const ctxs = await (0, index_js_1.decodeFastAssetCtxs)(base64);
425
+ const ctxs = await (0, index_js_2.decodeFastAssetCtxs)(base64);
396
426
  for (const [marketId, ctx] of Object.entries(ctxs)) {
397
427
  const prev = this.fastCtxByMarketId[marketId];
398
428
  this.fastCtxByMarketId[marketId] = {
@@ -433,7 +463,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
433
463
  perpCtx = byMarketId[marketId] ?? perpCtx;
434
464
  }
435
465
  if (perpCtx !== undefined) {
436
- const base = (0, index_js_1.mapMarketContext)(marketId, perpCtx);
466
+ const base = (0, index_js_2.mapMarketContext)(marketId, perpCtx);
437
467
  return {
438
468
  ...base,
439
469
  midPrice: fast?.midPx != null ? fast.midPx : base.midPrice,
@@ -455,7 +485,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
455
485
  }
456
486
  this.emit(`marketContext:${data.coin}`, {
457
487
  channel: 'marketContext',
458
- data: (0, index_js_1.mapMarketContext)(data.coin, ctx),
488
+ data: (0, index_js_2.mapMarketContext)(data.coin, ctx),
459
489
  });
460
490
  }
461
491
  handleActiveSpotAssetCtx(data) {
@@ -530,7 +560,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
530
560
  }
531
561
  const compressed = data.c;
532
562
  this.orderbookDecodeChain.push(async () => {
533
- this.handleCompactL2Delta(await (0, index_js_1.decodeCompressedJson)(compressed));
563
+ this.handleCompactL2Delta(await (0, index_js_2.decodeCompressedJson)(compressed));
534
564
  });
535
565
  }
536
566
  handleCompactL2Delta(delta) {
@@ -602,17 +632,17 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
602
632
  for (const detail of data) {
603
633
  const o = detail.order;
604
634
  const orderId = String(o.oid);
605
- if (!(0, perps_sdk_1.isActiveOrderStatus)((0, index_js_1.mapOrderStatus)(detail.status))) {
635
+ if (!(0, perps_sdk_1.isActiveOrderStatus)((0, index_js_2.mapOrderStatus)(detail.status))) {
606
636
  terminated.push(orderId);
607
637
  continue;
608
638
  }
609
- const type = (0, index_js_1.mapOrderType)(o.orderType);
639
+ const type = (0, index_js_2.mapOrderType)(o.orderType);
610
640
  const market = this.registry?.get(o.coin);
611
641
  if (!market) {
612
642
  continue;
613
643
  }
614
644
  const createdAt = new Date(o.timestamp).toISOString();
615
- if ((0, index_js_1.isTriggerOrder)(o)) {
645
+ if ((0, index_js_2.isTriggerOrder)(o)) {
616
646
  const isLimit = type === perps_types_1.OrderType.TAKE_PROFIT_LIMIT || type === perps_types_1.OrderType.STOP_LIMIT;
617
647
  triggerOrders.push({
618
648
  orderId,
@@ -650,7 +680,7 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
650
680
  ? []
651
681
  : data.fills.flatMap((f) => {
652
682
  const market = this.registry?.get(f.coin);
653
- return market ? [(0, index_js_1.mapFill)(f, market)] : [];
683
+ return market ? [(0, index_js_2.mapFill)(f, market)] : [];
654
684
  });
655
685
  this.emit(`userFills:${data.user.toLowerCase()}`, {
656
686
  channel: 'fills',
@@ -659,16 +689,18 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
659
689
  }
660
690
  handleAllDexsClearinghouseState(data) {
661
691
  const positions = data.clearinghouseStates.flatMap(([, state]) => state.assetPositions.flatMap((ap) => {
662
- if (!(0, index_js_1.isOpenAssetPosition)(ap)) {
692
+ if (!(0, index_js_2.isOpenAssetPosition)(ap)) {
663
693
  return [];
664
694
  }
665
695
  const market = this.registry?.get(ap.position.coin);
666
- return market ? [(0, index_js_1.mapPosition)(ap, market)] : [];
696
+ return market ? [(0, index_js_2.mapPosition)(ap, market)] : [];
667
697
  }));
668
698
  this.emit(`positions:${data.user.toLowerCase()}`, {
669
699
  channel: 'positions',
670
700
  data: positions,
671
701
  });
702
+ this.latestPositionsByUser.set(data.user.toLowerCase(), positions);
703
+ this.emitUnifiedSummary(data.user.toLowerCase());
672
704
  let accountValue = 0;
673
705
  let marginUsed = 0;
674
706
  for (const [, state] of data.clearinghouseStates) {
@@ -678,25 +710,150 @@ class HyperliquidWsProvider extends perps_sdk_1.WsProviderBase {
678
710
  Number.parseFloat(state.marginSummary?.totalMarginUsed ?? '') || 0;
679
711
  }
680
712
  const unrealizedPnl = positions.reduce((sum, p) => sum + (Number.parseFloat(p.unrealizedPnl) || 0), 0);
681
- this.emit(`accountSummary:${data.user.toLowerCase()}`, {
713
+ this.emitSummaryIfModeAllows(data.user, {
714
+ portfolioValue: accountValue.toString(),
715
+ availableMargin: (accountValue - marginUsed).toString(),
716
+ marginUsed: marginUsed.toString(),
717
+ unrealizedPnl: unrealizedPnl.toString(),
718
+ });
719
+ }
720
+ static summaryComputableFor(mode) {
721
+ return (mode !== index_js_1.HlAbstractionMode.UNIFIED_ACCOUNT &&
722
+ mode !== index_js_1.HlAbstractionMode.PORTFOLIO_MARGIN);
723
+ }
724
+ async acquireSpotWire(address) {
725
+ const user = address.toLowerCase();
726
+ const wireKey = `spot:${user}`;
727
+ const payload = { type: 'spotState', user };
728
+ const count = this.spotRefs.get(user) ?? 0;
729
+ this.spotRefs.set(user, count + 1);
730
+ if (count === 0) {
731
+ await this.registerSub(wireKey, payload);
732
+ }
733
+ let released = false;
734
+ return () => {
735
+ if (released) {
736
+ return;
737
+ }
738
+ released = true;
739
+ const remaining = (this.spotRefs.get(user) ?? 1) - 1;
740
+ if (remaining <= 0) {
741
+ this.spotRefs.delete(user);
742
+ this.unregisterSub(wireKey);
743
+ this.rws.send(JSON.stringify({ method: 'unsubscribe', subscription: payload }));
744
+ }
745
+ else {
746
+ this.spotRefs.set(user, remaining);
747
+ }
748
+ };
749
+ }
750
+ syncUnifiedPipeline(key, address, mode) {
751
+ const unified = !HyperliquidWsProvider.summaryComputableFor(mode);
752
+ const existing = this.unifiedSummaryByUser.get(key);
753
+ if (unified && existing === undefined) {
754
+ this.unifiedSummaryByUser.set(key, {
755
+ releaseSpot: this.acquireSpotWire(address).catch((error) => {
756
+ perps_sdk_1.wsLog.handlerFailure(this.providerKey, error);
757
+ return () => { };
758
+ }),
759
+ });
760
+ }
761
+ else if (!unified && existing !== undefined) {
762
+ this.unifiedSummaryByUser.delete(key);
763
+ void existing.releaseSpot.then((release) => release());
764
+ }
765
+ }
766
+ emitUnifiedSummary(key) {
767
+ const pipeline = this.unifiedSummaryByUser.get(key);
768
+ const positions = this.latestPositionsByUser.get(key);
769
+ if (pipeline?.spot === undefined || positions === undefined) {
770
+ return;
771
+ }
772
+ const summary = (0, perps_sdk_1.summarizeAccount)({
773
+ collateralBalances: pipeline.spot.collateralBalances,
774
+ balances: pipeline.spot.balances,
775
+ }, positions, 'gross');
776
+ this.emit(`accountSummary:${key}`, {
682
777
  channel: 'accountSummary',
683
- data: {
684
- portfolioValue: accountValue.toString(),
685
- availableMargin: (accountValue - marginUsed).toString(),
686
- marginUsed: marginUsed.toString(),
687
- unrealizedPnl: unrealizedPnl.toString(),
688
- },
778
+ data: summary,
779
+ });
780
+ }
781
+ static ABSTRACTION_TTL_MS = 15_000;
782
+ static REFRESH_COALESCE_MS = 200;
783
+ emitSummaryIfModeAllows(user, summary) {
784
+ const key = user.toLowerCase();
785
+ if (this.client === undefined) {
786
+ this.emit(`accountSummary:${key}`, {
787
+ channel: 'accountSummary',
788
+ data: summary,
789
+ });
790
+ return;
791
+ }
792
+ const entry = this.abstractionByUser.get(key);
793
+ if (entry === undefined || entry === 'pending') {
794
+ this.heldSummaryByUser.set(key, summary);
795
+ if (entry === undefined) {
796
+ this.fetchAbstractionMode(user, key);
797
+ }
798
+ return;
799
+ }
800
+ if (Date.now() - entry.readAt > HyperliquidWsProvider.ABSTRACTION_TTL_MS) {
801
+ this.fetchAbstractionMode(user, key, entry);
802
+ }
803
+ if (!HyperliquidWsProvider.summaryComputableFor(entry.mode)) {
804
+ return;
805
+ }
806
+ this.emit(`accountSummary:${key}`, {
807
+ channel: 'accountSummary',
808
+ data: summary,
809
+ });
810
+ }
811
+ fetchAbstractionMode(user, key, refreshing) {
812
+ const client = this.client;
813
+ if (client === undefined) {
814
+ return;
815
+ }
816
+ this.abstractionByUser.set(key, refreshing ? { ...refreshing, readAt: Date.now() } : 'pending');
817
+ (0, index_js_2.infoRequest)(constants_js_1.DEFAULT_HYPERLIQUID_API_URL, { type: 'userAbstraction', user }, (0, index_js_2.hlInfoOptions)(client)).then((mode) => {
818
+ this.abstractionByUser.set(key, { mode, readAt: Date.now() });
819
+ this.syncUnifiedPipeline(key, user, mode);
820
+ const held = this.heldSummaryByUser.get(key);
821
+ this.heldSummaryByUser.delete(key);
822
+ if (held && HyperliquidWsProvider.summaryComputableFor(mode)) {
823
+ this.emit(`accountSummary:${key}`, {
824
+ channel: 'accountSummary',
825
+ data: held,
826
+ });
827
+ }
828
+ }, (error) => {
829
+ if (!refreshing) {
830
+ this.abstractionByUser.delete(key);
831
+ }
832
+ perps_sdk_1.wsLog.handlerFailure(this.providerKey, error);
689
833
  });
690
834
  }
691
835
  handleSpotState(data) {
692
- const priceById = (0, index_js_1.spotPriceById)(this.registry?.markets ?? [], this.mergedMids());
693
- this.emit(`spotState:${data.user.toLowerCase()}`, {
836
+ const user = data.user.toLowerCase();
837
+ const markets = this.registry?.markets ?? [];
838
+ const priceById = (0, index_js_2.spotPriceById)(markets, this.mergedMids());
839
+ const rows = data.spotState.balances.map((b) => ({
840
+ balance: (0, index_js_2.spotBalance)((0, index_js_2.spotAssetFromToken)(b), b.total, priceById),
841
+ hold: b.hold,
842
+ }));
843
+ this.emit(`spotState:${user}`, {
694
844
  channel: 'spotBalances',
695
- data: data.spotState.balances.map((b) => ({
696
- ...(0, index_js_1.spotBalance)((0, index_js_1.spotAssetFromToken)(b), b.total, priceById),
697
- locked: b.hold,
698
- })),
845
+ data: rows.map(({ balance, hold }) => ({ ...balance, locked: hold })),
699
846
  });
847
+ const pipeline = this.unifiedSummaryByUser.get(user);
848
+ if (pipeline !== undefined) {
849
+ const quoteAssetIds = new Set(markets.map((m) => m.quoteAsset.id));
850
+ const entry = this.abstractionByUser.get(user);
851
+ const portfolioMargin = entry !== undefined &&
852
+ entry !== 'pending' &&
853
+ entry.mode === index_js_1.HlAbstractionMode.PORTFOLIO_MARGIN;
854
+ pipeline.spot = (0, index_js_2.partitionSpotBalances)(rows.map(({ balance }) => balance), quoteAssetIds, portfolioMargin);
855
+ this.emitUnifiedSummary(user);
856
+ }
700
857
  }
701
858
  }
702
859
  exports.HyperliquidWsProvider = HyperliquidWsProvider;