openbroker 1.7.1 → 1.8.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.
- package/dist/core/client.d.ts +29 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +99 -65
- package/dist/core/ws.d.ts +65 -0
- package/dist/core/ws.d.ts.map +1 -1
- package/dist/core/ws.js +39 -0
- package/package.json +1 -1
- package/scripts/core/client.ts +114 -69
- package/scripts/core/ws.ts +87 -0
package/dist/core/client.d.ts
CHANGED
|
@@ -536,6 +536,35 @@ export declare class HyperliquidClient {
|
|
|
536
536
|
* the global index in assetMap (which is keyed by the prefixed name).
|
|
537
537
|
*/
|
|
538
538
|
private stampAssetId;
|
|
539
|
+
/**
|
|
540
|
+
* Merge per-dex clearinghouse states into ONE canonical `ClearinghouseState`: coins canonicalized to
|
|
541
|
+
* the prefixed `{dex}:{coin}` form + `assetId` stamped, and margin either aggregated across dexes
|
|
542
|
+
* (standard accounts) or derived from USDC spot equity (unified accounts). This is the single source
|
|
543
|
+
* of merge truth shared by the REST `getUserStateAll` and the WS `userStateAllFromWs` paths, so both
|
|
544
|
+
* return byte-identical shapes. `perDex` may arrive in any order; the native dex (dexName '' / null)
|
|
545
|
+
* is found and used as the margin base. Does not mutate the input summaries (clones the base).
|
|
546
|
+
*/
|
|
547
|
+
private mergeUserStateAll;
|
|
548
|
+
/**
|
|
549
|
+
* Reconstruct the canonical merged `ClearinghouseState` from a WS `allDexsClearinghouseState` event
|
|
550
|
+
* (and, for unified accounts, a WS `spotState` balances list) — the zero-REST equivalent of
|
|
551
|
+
* `getUserStateAll()`. Requires the asset maps to be warmed (a `getMetaAndAssetCtxs()` at startup
|
|
552
|
+
* does this); falls back to bare coins for any asset not yet in the map (still canonicalized by dex).
|
|
553
|
+
*/
|
|
554
|
+
userStateAllFromWs(clearinghouseStates: ReadonlyArray<[string, ClearinghouseState & {
|
|
555
|
+
withdrawable?: string;
|
|
556
|
+
}]>, unified: boolean, spotBalances?: {
|
|
557
|
+
balances: Array<{
|
|
558
|
+
coin: string;
|
|
559
|
+
total: string;
|
|
560
|
+
hold: string;
|
|
561
|
+
}>;
|
|
562
|
+
}): ClearinghouseState;
|
|
563
|
+
/**
|
|
564
|
+
* Get user state across all dexes (main + HIP-3) over REST.
|
|
565
|
+
* For unified accounts: equity comes from spotClearinghouseState (single USDC balance).
|
|
566
|
+
* For standard accounts: aggregates margin summaries from each dex.
|
|
567
|
+
*/
|
|
539
568
|
getUserStateAll(user?: string): Promise<ClearinghouseState>;
|
|
540
569
|
getOpenOrders(user?: string): Promise<OpenOrder[]>;
|
|
541
570
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../scripts/core/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../scripts/core/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/client.js
CHANGED
|
@@ -1410,99 +1410,133 @@ export class HyperliquidClient {
|
|
|
1410
1410
|
if (idx !== undefined)
|
|
1411
1411
|
position.assetId = idx;
|
|
1412
1412
|
}
|
|
1413
|
+
/**
|
|
1414
|
+
* Merge per-dex clearinghouse states into ONE canonical `ClearinghouseState`: coins canonicalized to
|
|
1415
|
+
* the prefixed `{dex}:{coin}` form + `assetId` stamped, and margin either aggregated across dexes
|
|
1416
|
+
* (standard accounts) or derived from USDC spot equity (unified accounts). This is the single source
|
|
1417
|
+
* of merge truth shared by the REST `getUserStateAll` and the WS `userStateAllFromWs` paths, so both
|
|
1418
|
+
* return byte-identical shapes. `perDex` may arrive in any order; the native dex (dexName '' / null)
|
|
1419
|
+
* is found and used as the margin base. Does not mutate the input summaries (clones the base).
|
|
1420
|
+
*/
|
|
1421
|
+
mergeUserStateAll(perDex, unified, spotBalances) {
|
|
1422
|
+
const emptySummary = () => ({
|
|
1423
|
+
accountValue: '0', totalNtlPos: '0', totalRawUsd: '0', totalMarginUsed: '0', withdrawable: '0',
|
|
1424
|
+
});
|
|
1425
|
+
const base = perDex.find((d) => !d.dexName) ?? perDex[0];
|
|
1426
|
+
const result = {
|
|
1427
|
+
assetPositions: [],
|
|
1428
|
+
marginSummary: { ...(base?.state.marginSummary ?? emptySummary()) },
|
|
1429
|
+
crossMarginSummary: { ...(base?.state.crossMarginSummary ?? emptySummary()) },
|
|
1430
|
+
crossMaintenanceMarginUsed: base?.state.crossMaintenanceMarginUsed ?? '0',
|
|
1431
|
+
};
|
|
1432
|
+
const safeAdd = (a, b) => String((parseFloat(a ?? '0') || 0) + (parseFloat(b ?? '0') || 0));
|
|
1433
|
+
const addToSummary = (summary, m) => {
|
|
1434
|
+
summary.accountValue = safeAdd(summary.accountValue, m.accountValue);
|
|
1435
|
+
summary.totalNtlPos = safeAdd(summary.totalNtlPos, m.totalNtlPos);
|
|
1436
|
+
summary.totalRawUsd = safeAdd(summary.totalRawUsd, m.totalRawUsd);
|
|
1437
|
+
summary.totalMarginUsed = safeAdd(summary.totalMarginUsed, m.totalMarginUsed);
|
|
1438
|
+
summary.withdrawable = safeAdd(summary.withdrawable, m.withdrawable);
|
|
1439
|
+
};
|
|
1440
|
+
for (const { dexName, state } of perDex) {
|
|
1441
|
+
for (const ap of state.assetPositions ?? []) {
|
|
1442
|
+
// Native coins are bare/canonical (dexName falsy → no prefix); HIP-3 coins get prefixed.
|
|
1443
|
+
// stampAssetId is idempotent (guards on an existing ':') so re-merging a cached WS event is safe.
|
|
1444
|
+
this.stampAssetId(ap.position, dexName ?? undefined);
|
|
1445
|
+
result.assetPositions.push(ap);
|
|
1446
|
+
}
|
|
1447
|
+
// Standard accounts: aggregate each NON-base (HIP-3) dex's margin onto the base.
|
|
1448
|
+
if (!unified && dexName && state.marginSummary) {
|
|
1449
|
+
addToSummary(result.marginSummary, state.marginSummary);
|
|
1450
|
+
addToSummary(result.crossMarginSummary, state.marginSummary);
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
// Unified accounts: equity is the USDC spot balance, margin/notional summed from the positions.
|
|
1454
|
+
if (unified && spotBalances) {
|
|
1455
|
+
const usdc = (spotBalances.balances ?? []).find((b) => b.coin?.toUpperCase() === 'USDC');
|
|
1456
|
+
if (usdc) {
|
|
1457
|
+
const totalUsdc = usdc.total;
|
|
1458
|
+
const withdrawable = String(parseFloat(totalUsdc) - parseFloat(usdc.hold));
|
|
1459
|
+
let totalMarginUsed = 0;
|
|
1460
|
+
let totalNtlPos = 0;
|
|
1461
|
+
for (const ap of result.assetPositions) {
|
|
1462
|
+
const pos = ap.position;
|
|
1463
|
+
if (parseFloat(pos.szi) === 0)
|
|
1464
|
+
continue;
|
|
1465
|
+
totalMarginUsed += parseFloat(pos.marginUsed);
|
|
1466
|
+
totalNtlPos += Math.abs(parseFloat(pos.positionValue));
|
|
1467
|
+
}
|
|
1468
|
+
const summary = {
|
|
1469
|
+
accountValue: totalUsdc,
|
|
1470
|
+
totalNtlPos: String(totalNtlPos),
|
|
1471
|
+
totalRawUsd: totalUsdc,
|
|
1472
|
+
totalMarginUsed: String(totalMarginUsed),
|
|
1473
|
+
withdrawable,
|
|
1474
|
+
};
|
|
1475
|
+
result.marginSummary = summary;
|
|
1476
|
+
result.crossMarginSummary = { ...summary };
|
|
1477
|
+
}
|
|
1478
|
+
}
|
|
1479
|
+
return result;
|
|
1480
|
+
}
|
|
1481
|
+
/**
|
|
1482
|
+
* Reconstruct the canonical merged `ClearinghouseState` from a WS `allDexsClearinghouseState` event
|
|
1483
|
+
* (and, for unified accounts, a WS `spotState` balances list) — the zero-REST equivalent of
|
|
1484
|
+
* `getUserStateAll()`. Requires the asset maps to be warmed (a `getMetaAndAssetCtxs()` at startup
|
|
1485
|
+
* does this); falls back to bare coins for any asset not yet in the map (still canonicalized by dex).
|
|
1486
|
+
*/
|
|
1487
|
+
userStateAllFromWs(clearinghouseStates, unified, spotBalances) {
|
|
1488
|
+
const perDex = clearinghouseStates.map(([dexName, raw]) => {
|
|
1489
|
+
// The WS state has `withdrawable` at the top level; fold it into marginSummary (the shape REST
|
|
1490
|
+
// getUserState returns and the merge / collateral gate read). Clone so the cached event is untouched.
|
|
1491
|
+
const w = raw.withdrawable;
|
|
1492
|
+
const state = {
|
|
1493
|
+
...raw,
|
|
1494
|
+
marginSummary: raw.marginSummary && w != null ? { ...raw.marginSummary, withdrawable: w } : raw.marginSummary,
|
|
1495
|
+
crossMarginSummary: raw.crossMarginSummary && w != null ? { ...raw.crossMarginSummary, withdrawable: w } : raw.crossMarginSummary,
|
|
1496
|
+
};
|
|
1497
|
+
return { dexName: dexName || null, state };
|
|
1498
|
+
});
|
|
1499
|
+
return this.mergeUserStateAll(perDex, unified, spotBalances);
|
|
1500
|
+
}
|
|
1501
|
+
/**
|
|
1502
|
+
* Get user state across all dexes (main + HIP-3) over REST.
|
|
1503
|
+
* For unified accounts: equity comes from spotClearinghouseState (single USDC balance).
|
|
1504
|
+
* For standard accounts: aggregates margin summaries from each dex.
|
|
1505
|
+
*/
|
|
1413
1506
|
async getUserStateAll(user) {
|
|
1414
1507
|
await this.getMetaAndAssetCtxs(); // Ensure HIP-3 dex list is loaded
|
|
1415
1508
|
const unified = await this.isUnifiedAccount(user);
|
|
1416
1509
|
const mainState = await this.getUserState(user);
|
|
1417
|
-
// Stamp native positions (dexIdx 0; coins are already bare/canonical).
|
|
1418
|
-
for (const ap of mainState.assetPositions ?? [])
|
|
1419
|
-
this.stampAssetId(ap.position);
|
|
1420
1510
|
// Collect positions from all HIP-3 dexes (in parallel; testnet: only loaded dexes)
|
|
1421
1511
|
const validDexs = await this.getIterableHip3Dexs();
|
|
1422
1512
|
const dexResults = await this.batchSettled(validDexs.map((dex) => async () => {
|
|
1423
1513
|
const dexState = await this.getUserState(user, dex.name);
|
|
1424
1514
|
return { dex, dexState };
|
|
1425
1515
|
}));
|
|
1516
|
+
const perDex = [{ dexName: '', state: mainState }];
|
|
1426
1517
|
let hip3Errors = 0;
|
|
1427
|
-
const safeAdd = (a, b) => {
|
|
1428
|
-
const va = parseFloat(a ?? '0') || 0;
|
|
1429
|
-
const vb = parseFloat(b ?? '0') || 0;
|
|
1430
|
-
return String(va + vb);
|
|
1431
|
-
};
|
|
1432
1518
|
for (const result of dexResults) {
|
|
1433
1519
|
if (result.status === 'rejected') {
|
|
1434
1520
|
hip3Errors++;
|
|
1435
1521
|
this.log(`Failed to fetch state for HIP-3 dex:`, result.reason instanceof Error ? result.reason.message : String(result.reason));
|
|
1436
1522
|
continue;
|
|
1437
1523
|
}
|
|
1438
|
-
|
|
1439
|
-
if (dexState.assetPositions?.length > 0) {
|
|
1440
|
-
// Canonicalize + stamp asset index using the dex we fetched under.
|
|
1441
|
-
for (const ap of dexState.assetPositions)
|
|
1442
|
-
this.stampAssetId(ap.position, dex.name);
|
|
1443
|
-
mainState.assetPositions.push(...dexState.assetPositions);
|
|
1444
|
-
}
|
|
1445
|
-
// For standard accounts, aggregate margin from each dex
|
|
1446
|
-
if (!unified) {
|
|
1447
|
-
const dexMargin = dexState.marginSummary;
|
|
1448
|
-
if (dexMargin) {
|
|
1449
|
-
const addToSummary = (summary) => {
|
|
1450
|
-
summary.accountValue = safeAdd(summary.accountValue, dexMargin.accountValue);
|
|
1451
|
-
summary.totalNtlPos = safeAdd(summary.totalNtlPos, dexMargin.totalNtlPos);
|
|
1452
|
-
summary.totalRawUsd = safeAdd(summary.totalRawUsd, dexMargin.totalRawUsd);
|
|
1453
|
-
summary.totalMarginUsed = safeAdd(summary.totalMarginUsed, dexMargin.totalMarginUsed);
|
|
1454
|
-
summary.withdrawable = safeAdd(summary.withdrawable, dexMargin.withdrawable);
|
|
1455
|
-
};
|
|
1456
|
-
addToSummary(mainState.marginSummary);
|
|
1457
|
-
addToSummary(mainState.crossMarginSummary);
|
|
1458
|
-
}
|
|
1459
|
-
}
|
|
1524
|
+
perDex.push({ dexName: result.value.dex.name, state: result.value.dexState });
|
|
1460
1525
|
}
|
|
1461
1526
|
if (hip3Errors > 0) {
|
|
1462
1527
|
this.log(`Warning: ${hip3Errors} HIP-3 dex queries failed — some positions may be missing. Use --verbose for details.`);
|
|
1463
1528
|
}
|
|
1464
|
-
|
|
1529
|
+
let spotBalances;
|
|
1465
1530
|
if (unified) {
|
|
1466
1531
|
try {
|
|
1467
|
-
|
|
1468
|
-
this.log('Unified spot balances:', JSON.stringify(
|
|
1469
|
-
// Find USDC balance (case-insensitive, handles variations)
|
|
1470
|
-
const balances = spotState?.balances ?? [];
|
|
1471
|
-
const usdcBalance = balances.find(b => b.coin?.toUpperCase() === 'USDC');
|
|
1472
|
-
if (usdcBalance) {
|
|
1473
|
-
const totalUsdc = usdcBalance.total;
|
|
1474
|
-
const holdUsdc = usdcBalance.hold;
|
|
1475
|
-
const withdrawable = String(parseFloat(totalUsdc) - parseFloat(holdUsdc));
|
|
1476
|
-
// Compute total margin used and notional from all positions
|
|
1477
|
-
let totalMarginUsed = 0;
|
|
1478
|
-
let totalNtlPos = 0;
|
|
1479
|
-
for (const ap of mainState.assetPositions) {
|
|
1480
|
-
const pos = ap.position;
|
|
1481
|
-
if (parseFloat(pos.szi) === 0)
|
|
1482
|
-
continue;
|
|
1483
|
-
totalMarginUsed += parseFloat(pos.marginUsed);
|
|
1484
|
-
totalNtlPos += Math.abs(parseFloat(pos.positionValue));
|
|
1485
|
-
}
|
|
1486
|
-
const summary = {
|
|
1487
|
-
accountValue: totalUsdc,
|
|
1488
|
-
totalNtlPos: String(totalNtlPos),
|
|
1489
|
-
totalRawUsd: totalUsdc,
|
|
1490
|
-
totalMarginUsed: String(totalMarginUsed),
|
|
1491
|
-
withdrawable,
|
|
1492
|
-
};
|
|
1493
|
-
mainState.marginSummary = summary;
|
|
1494
|
-
mainState.crossMarginSummary = { ...summary };
|
|
1495
|
-
this.log(`Unified account: USDC balance $${parseFloat(totalUsdc).toFixed(2)}, margin used $${totalMarginUsed.toFixed(2)}`);
|
|
1496
|
-
}
|
|
1497
|
-
else {
|
|
1498
|
-
this.log('Unified account: no USDC balance found in spot state. Balances:', balances.map(b => b.coin));
|
|
1499
|
-
}
|
|
1532
|
+
spotBalances = await this.getSpotBalances(user);
|
|
1533
|
+
this.log('Unified spot balances:', JSON.stringify(spotBalances));
|
|
1500
1534
|
}
|
|
1501
1535
|
catch (err) {
|
|
1502
1536
|
this.log('Failed to fetch spot balances for unified account:', err instanceof Error ? err.message : String(err));
|
|
1503
1537
|
}
|
|
1504
1538
|
}
|
|
1505
|
-
return
|
|
1539
|
+
return this.mergeUserStateAll(perDex, unified, spotBalances);
|
|
1506
1540
|
}
|
|
1507
1541
|
async getOpenOrders(user) {
|
|
1508
1542
|
this.log('Fetching openOrders for:', user ?? this.address);
|
package/dist/core/ws.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ISubscription } from '@nktkas/hyperliquid';
|
|
2
2
|
import type { UserEventsWsEvent } from '@nktkas/hyperliquid';
|
|
3
|
+
import type { ClearinghouseState } from './types.js';
|
|
3
4
|
export interface WsEventMap {
|
|
4
5
|
/** L2 order book snapshot for a specific coin */
|
|
5
6
|
l2Book: {
|
|
@@ -22,6 +23,52 @@ export interface WsEventMap {
|
|
|
22
23
|
allMids: {
|
|
23
24
|
mids: Record<string, string>;
|
|
24
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Asset contexts (funding / mark / oracle / OI / premium / impact) for EVERY dex — native and all
|
|
28
|
+
* HIP-3 deployers — in a single push. `ctxs` is `[dexName, ctx[]]` tuples; `ctx[i]` aligns
|
|
29
|
+
* positionally with that dex's `meta.universe[i]` (same join as the REST `metaAndAssetCtxs`), so a
|
|
30
|
+
* consumer must hold the static universe to map index → coin. Lets a consumer drop the weight-20
|
|
31
|
+
* per-dex `metaAndAssetCtxs` REST poll entirely. Fields typed are the ones we read; the SDK emits a
|
|
32
|
+
* structurally-assignable superset.
|
|
33
|
+
*/
|
|
34
|
+
allDexsAssetCtxs: {
|
|
35
|
+
ctxs: Array<[
|
|
36
|
+
string,
|
|
37
|
+
Array<{
|
|
38
|
+
funding: string;
|
|
39
|
+
openInterest: string;
|
|
40
|
+
dayNtlVlm: string;
|
|
41
|
+
premium: string | null;
|
|
42
|
+
oraclePx: string;
|
|
43
|
+
markPx: string;
|
|
44
|
+
midPx?: string | null;
|
|
45
|
+
prevDayPx?: string;
|
|
46
|
+
impactPxs?: readonly string[] | null;
|
|
47
|
+
}>
|
|
48
|
+
]>;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Clearinghouse state (positions + margin) for EVERY dex for one user, in a single push — the WS
|
|
52
|
+
* equivalent of `getUserStateAll`'s inputs. `clearinghouseStates` is `[dexName, state]` tuples
|
|
53
|
+
* (dexName '' = native/main). Feed it to `client.userStateAllFromWs(...)` to get the same merged,
|
|
54
|
+
* coin-canonicalized `ClearinghouseState` the REST path returns, with no REST weight.
|
|
55
|
+
*/
|
|
56
|
+
allDexsClearinghouseState: {
|
|
57
|
+
user: string;
|
|
58
|
+
clearinghouseStates: Array<[string, ClearinghouseState & {
|
|
59
|
+
withdrawable?: string;
|
|
60
|
+
}]>;
|
|
61
|
+
};
|
|
62
|
+
/** User spot balances (the shared collateral pool for unified accounts). */
|
|
63
|
+
spotState: {
|
|
64
|
+
balances: Array<{
|
|
65
|
+
coin: string;
|
|
66
|
+
token: number;
|
|
67
|
+
total: string;
|
|
68
|
+
hold: string;
|
|
69
|
+
entryNtl?: string;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
25
72
|
/** Order status changed (filled, canceled, rejected, etc.) */
|
|
26
73
|
orderUpdate: {
|
|
27
74
|
order: {
|
|
@@ -107,6 +154,24 @@ export declare class WebSocketManager {
|
|
|
107
154
|
* Subscribe to L2 order book snapshots for a specific coin.
|
|
108
155
|
*/
|
|
109
156
|
subscribeL2Book(coin: string): Promise<ISubscription>;
|
|
157
|
+
/**
|
|
158
|
+
* Subscribe to asset contexts for ALL dexes (native + every HIP-3 deployer) in one stream. Replaces
|
|
159
|
+
* the weight-20-per-dex `metaAndAssetCtxs` REST poll for the dynamic ctx fields (funding/mark/oracle/
|
|
160
|
+
* OI/premium/impact). The static universe (coin name / szDecimals / maxLeverage) is NOT in this
|
|
161
|
+
* stream — keep refreshing that on a slow cadence and join positionally.
|
|
162
|
+
*/
|
|
163
|
+
subscribeAllDexsAssetCtxs(): Promise<ISubscription>;
|
|
164
|
+
/**
|
|
165
|
+
* Subscribe to clearinghouse state (positions + margin) across ALL dexes for a user, in one stream.
|
|
166
|
+
* Replaces per-cycle `getUserStateAll` REST polling. Pair the emitted event with
|
|
167
|
+
* `client.userStateAllFromWs(...)` to reconstruct the merged, coin-canonicalized state.
|
|
168
|
+
*/
|
|
169
|
+
subscribeAllDexsClearinghouseState(user: `0x${string}`): Promise<ISubscription>;
|
|
170
|
+
/**
|
|
171
|
+
* Subscribe to a user's spot balances (the unified-account collateral pool). Replaces
|
|
172
|
+
* `getSpotBalances` REST polling in the collateral gate.
|
|
173
|
+
*/
|
|
174
|
+
subscribeSpotState(user: `0x${string}`): Promise<ISubscription>;
|
|
110
175
|
/**
|
|
111
176
|
* Subscribe to order lifecycle events (fill, cancel, reject, etc.).
|
|
112
177
|
* This is the most important subscription for trading automations.
|
package/dist/core/ws.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../scripts/core/ws.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAKV,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ws.d.ts","sourceRoot":"","sources":["../../scripts/core/ws.ts"],"names":[],"mappings":"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"}
|
package/dist/core/ws.js
CHANGED
|
@@ -122,7 +122,46 @@ export class WebSocketManager {
|
|
|
122
122
|
});
|
|
123
123
|
return this.trackSub(sub);
|
|
124
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Subscribe to asset contexts for ALL dexes (native + every HIP-3 deployer) in one stream. Replaces
|
|
127
|
+
* the weight-20-per-dex `metaAndAssetCtxs` REST poll for the dynamic ctx fields (funding/mark/oracle/
|
|
128
|
+
* OI/premium/impact). The static universe (coin name / szDecimals / maxLeverage) is NOT in this
|
|
129
|
+
* stream — keep refreshing that on a slow cadence and join positionally.
|
|
130
|
+
*/
|
|
131
|
+
async subscribeAllDexsAssetCtxs() {
|
|
132
|
+
const client = this.ensureClient();
|
|
133
|
+
const sub = await client.allDexsAssetCtxs((data) => {
|
|
134
|
+
this.emit('allDexsAssetCtxs', data);
|
|
135
|
+
});
|
|
136
|
+
return this.trackSub(sub);
|
|
137
|
+
}
|
|
125
138
|
// ── User subscriptions ────────────────────────────────────────
|
|
139
|
+
/**
|
|
140
|
+
* Subscribe to clearinghouse state (positions + margin) across ALL dexes for a user, in one stream.
|
|
141
|
+
* Replaces per-cycle `getUserStateAll` REST polling. Pair the emitted event with
|
|
142
|
+
* `client.userStateAllFromWs(...)` to reconstruct the merged, coin-canonicalized state.
|
|
143
|
+
*/
|
|
144
|
+
async subscribeAllDexsClearinghouseState(user) {
|
|
145
|
+
const client = this.ensureClient();
|
|
146
|
+
const sub = await client.allDexsClearinghouseState({ user }, (data) => {
|
|
147
|
+
this.emit('allDexsClearinghouseState', data);
|
|
148
|
+
});
|
|
149
|
+
return this.trackSub(sub);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Subscribe to a user's spot balances (the unified-account collateral pool). Replaces
|
|
153
|
+
* `getSpotBalances` REST polling in the collateral gate.
|
|
154
|
+
*/
|
|
155
|
+
async subscribeSpotState(user) {
|
|
156
|
+
const client = this.ensureClient();
|
|
157
|
+
const sub = await client.spotState({ user }, (data) => {
|
|
158
|
+
// The SDK event nests balances under `spotState` ({ user, spotState: { balances } }); flatten to
|
|
159
|
+
// the same `{ balances }` shape the REST getSpotBalances returns so consumers are uniform.
|
|
160
|
+
const balances = data.spotState?.balances ?? [];
|
|
161
|
+
this.emit('spotState', { balances });
|
|
162
|
+
});
|
|
163
|
+
return this.trackSub(sub);
|
|
164
|
+
}
|
|
126
165
|
/**
|
|
127
166
|
* Subscribe to order lifecycle events (fill, cancel, reject, etc.).
|
|
128
167
|
* This is the most important subscription for trading automations.
|
package/package.json
CHANGED
package/scripts/core/client.ts
CHANGED
|
@@ -12,6 +12,7 @@ import type {
|
|
|
12
12
|
AssetMeta,
|
|
13
13
|
AssetCtx,
|
|
14
14
|
ClearinghouseState,
|
|
15
|
+
MarginSummary,
|
|
15
16
|
OpenOrder,
|
|
16
17
|
OutcomeMetaResponse,
|
|
17
18
|
OutcomeMarket,
|
|
@@ -1998,13 +1999,118 @@ export class HyperliquidClient {
|
|
|
1998
1999
|
if (idx !== undefined) position.assetId = idx;
|
|
1999
2000
|
}
|
|
2000
2001
|
|
|
2002
|
+
/**
|
|
2003
|
+
* Merge per-dex clearinghouse states into ONE canonical `ClearinghouseState`: coins canonicalized to
|
|
2004
|
+
* the prefixed `{dex}:{coin}` form + `assetId` stamped, and margin either aggregated across dexes
|
|
2005
|
+
* (standard accounts) or derived from USDC spot equity (unified accounts). This is the single source
|
|
2006
|
+
* of merge truth shared by the REST `getUserStateAll` and the WS `userStateAllFromWs` paths, so both
|
|
2007
|
+
* return byte-identical shapes. `perDex` may arrive in any order; the native dex (dexName '' / null)
|
|
2008
|
+
* is found and used as the margin base. Does not mutate the input summaries (clones the base).
|
|
2009
|
+
*/
|
|
2010
|
+
private mergeUserStateAll(
|
|
2011
|
+
perDex: ReadonlyArray<{ dexName: string | null; state: ClearinghouseState }>,
|
|
2012
|
+
unified: boolean,
|
|
2013
|
+
spotBalances?: { balances: Array<{ coin: string; total: string; hold: string }> },
|
|
2014
|
+
): ClearinghouseState {
|
|
2015
|
+
const emptySummary = (): MarginSummary => ({
|
|
2016
|
+
accountValue: '0', totalNtlPos: '0', totalRawUsd: '0', totalMarginUsed: '0', withdrawable: '0',
|
|
2017
|
+
});
|
|
2018
|
+
const base = perDex.find((d) => !d.dexName) ?? perDex[0];
|
|
2019
|
+
const result: ClearinghouseState = {
|
|
2020
|
+
assetPositions: [],
|
|
2021
|
+
marginSummary: { ...(base?.state.marginSummary ?? emptySummary()) },
|
|
2022
|
+
crossMarginSummary: { ...(base?.state.crossMarginSummary ?? emptySummary()) },
|
|
2023
|
+
crossMaintenanceMarginUsed: base?.state.crossMaintenanceMarginUsed ?? '0',
|
|
2024
|
+
};
|
|
2025
|
+
|
|
2026
|
+
const safeAdd = (a: string | undefined, b: string | undefined): string =>
|
|
2027
|
+
String((parseFloat(a ?? '0') || 0) + (parseFloat(b ?? '0') || 0));
|
|
2028
|
+
const addToSummary = (summary: MarginSummary, m: MarginSummary) => {
|
|
2029
|
+
summary.accountValue = safeAdd(summary.accountValue, m.accountValue);
|
|
2030
|
+
summary.totalNtlPos = safeAdd(summary.totalNtlPos, m.totalNtlPos);
|
|
2031
|
+
summary.totalRawUsd = safeAdd(summary.totalRawUsd, m.totalRawUsd);
|
|
2032
|
+
summary.totalMarginUsed = safeAdd(summary.totalMarginUsed, m.totalMarginUsed);
|
|
2033
|
+
summary.withdrawable = safeAdd(summary.withdrawable, m.withdrawable);
|
|
2034
|
+
};
|
|
2035
|
+
|
|
2036
|
+
for (const { dexName, state } of perDex) {
|
|
2037
|
+
for (const ap of state.assetPositions ?? []) {
|
|
2038
|
+
// Native coins are bare/canonical (dexName falsy → no prefix); HIP-3 coins get prefixed.
|
|
2039
|
+
// stampAssetId is idempotent (guards on an existing ':') so re-merging a cached WS event is safe.
|
|
2040
|
+
this.stampAssetId(ap.position, dexName ?? undefined);
|
|
2041
|
+
result.assetPositions.push(ap);
|
|
2042
|
+
}
|
|
2043
|
+
// Standard accounts: aggregate each NON-base (HIP-3) dex's margin onto the base.
|
|
2044
|
+
if (!unified && dexName && state.marginSummary) {
|
|
2045
|
+
addToSummary(result.marginSummary, state.marginSummary);
|
|
2046
|
+
addToSummary(result.crossMarginSummary, state.marginSummary);
|
|
2047
|
+
}
|
|
2048
|
+
}
|
|
2049
|
+
|
|
2050
|
+
// Unified accounts: equity is the USDC spot balance, margin/notional summed from the positions.
|
|
2051
|
+
if (unified && spotBalances) {
|
|
2052
|
+
const usdc = (spotBalances.balances ?? []).find((b) => b.coin?.toUpperCase() === 'USDC');
|
|
2053
|
+
if (usdc) {
|
|
2054
|
+
const totalUsdc = usdc.total;
|
|
2055
|
+
const withdrawable = String(parseFloat(totalUsdc) - parseFloat(usdc.hold));
|
|
2056
|
+
let totalMarginUsed = 0;
|
|
2057
|
+
let totalNtlPos = 0;
|
|
2058
|
+
for (const ap of result.assetPositions) {
|
|
2059
|
+
const pos = ap.position;
|
|
2060
|
+
if (parseFloat(pos.szi) === 0) continue;
|
|
2061
|
+
totalMarginUsed += parseFloat(pos.marginUsed);
|
|
2062
|
+
totalNtlPos += Math.abs(parseFloat(pos.positionValue));
|
|
2063
|
+
}
|
|
2064
|
+
const summary: MarginSummary = {
|
|
2065
|
+
accountValue: totalUsdc,
|
|
2066
|
+
totalNtlPos: String(totalNtlPos),
|
|
2067
|
+
totalRawUsd: totalUsdc,
|
|
2068
|
+
totalMarginUsed: String(totalMarginUsed),
|
|
2069
|
+
withdrawable,
|
|
2070
|
+
};
|
|
2071
|
+
result.marginSummary = summary;
|
|
2072
|
+
result.crossMarginSummary = { ...summary };
|
|
2073
|
+
}
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
return result;
|
|
2077
|
+
}
|
|
2078
|
+
|
|
2079
|
+
/**
|
|
2080
|
+
* Reconstruct the canonical merged `ClearinghouseState` from a WS `allDexsClearinghouseState` event
|
|
2081
|
+
* (and, for unified accounts, a WS `spotState` balances list) — the zero-REST equivalent of
|
|
2082
|
+
* `getUserStateAll()`. Requires the asset maps to be warmed (a `getMetaAndAssetCtxs()` at startup
|
|
2083
|
+
* does this); falls back to bare coins for any asset not yet in the map (still canonicalized by dex).
|
|
2084
|
+
*/
|
|
2085
|
+
userStateAllFromWs(
|
|
2086
|
+
clearinghouseStates: ReadonlyArray<[string, ClearinghouseState & { withdrawable?: string }]>,
|
|
2087
|
+
unified: boolean,
|
|
2088
|
+
spotBalances?: { balances: Array<{ coin: string; total: string; hold: string }> },
|
|
2089
|
+
): ClearinghouseState {
|
|
2090
|
+
const perDex = clearinghouseStates.map(([dexName, raw]) => {
|
|
2091
|
+
// The WS state has `withdrawable` at the top level; fold it into marginSummary (the shape REST
|
|
2092
|
+
// getUserState returns and the merge / collateral gate read). Clone so the cached event is untouched.
|
|
2093
|
+
const w = raw.withdrawable;
|
|
2094
|
+
const state: ClearinghouseState = {
|
|
2095
|
+
...raw,
|
|
2096
|
+
marginSummary: raw.marginSummary && w != null ? { ...raw.marginSummary, withdrawable: w } : raw.marginSummary,
|
|
2097
|
+
crossMarginSummary: raw.crossMarginSummary && w != null ? { ...raw.crossMarginSummary, withdrawable: w } : raw.crossMarginSummary,
|
|
2098
|
+
};
|
|
2099
|
+
return { dexName: dexName || null, state };
|
|
2100
|
+
});
|
|
2101
|
+
return this.mergeUserStateAll(perDex, unified, spotBalances);
|
|
2102
|
+
}
|
|
2103
|
+
|
|
2104
|
+
/**
|
|
2105
|
+
* Get user state across all dexes (main + HIP-3) over REST.
|
|
2106
|
+
* For unified accounts: equity comes from spotClearinghouseState (single USDC balance).
|
|
2107
|
+
* For standard accounts: aggregates margin summaries from each dex.
|
|
2108
|
+
*/
|
|
2001
2109
|
async getUserStateAll(user?: string): Promise<ClearinghouseState> {
|
|
2002
2110
|
await this.getMetaAndAssetCtxs(); // Ensure HIP-3 dex list is loaded
|
|
2003
2111
|
|
|
2004
2112
|
const unified = await this.isUnifiedAccount(user);
|
|
2005
2113
|
const mainState = await this.getUserState(user);
|
|
2006
|
-
// Stamp native positions (dexIdx 0; coins are already bare/canonical).
|
|
2007
|
-
for (const ap of mainState.assetPositions ?? []) this.stampAssetId(ap.position);
|
|
2008
2114
|
|
|
2009
2115
|
// Collect positions from all HIP-3 dexes (in parallel; testnet: only loaded dexes)
|
|
2010
2116
|
const validDexs = await this.getIterableHip3Dexs();
|
|
@@ -2015,92 +2121,31 @@ export class HyperliquidClient {
|
|
|
2015
2121
|
})
|
|
2016
2122
|
);
|
|
2017
2123
|
|
|
2124
|
+
const perDex: Array<{ dexName: string | null; state: ClearinghouseState }> = [{ dexName: '', state: mainState }];
|
|
2018
2125
|
let hip3Errors = 0;
|
|
2019
|
-
const safeAdd = (a: string | undefined, b: string | undefined): string => {
|
|
2020
|
-
const va = parseFloat(a ?? '0') || 0;
|
|
2021
|
-
const vb = parseFloat(b ?? '0') || 0;
|
|
2022
|
-
return String(va + vb);
|
|
2023
|
-
};
|
|
2024
|
-
|
|
2025
2126
|
for (const result of dexResults) {
|
|
2026
2127
|
if (result.status === 'rejected') {
|
|
2027
2128
|
hip3Errors++;
|
|
2028
2129
|
this.log(`Failed to fetch state for HIP-3 dex:`, result.reason instanceof Error ? result.reason.message : String(result.reason));
|
|
2029
2130
|
continue;
|
|
2030
2131
|
}
|
|
2031
|
-
|
|
2032
|
-
if (dexState.assetPositions?.length > 0) {
|
|
2033
|
-
// Canonicalize + stamp asset index using the dex we fetched under.
|
|
2034
|
-
for (const ap of dexState.assetPositions) this.stampAssetId(ap.position, dex.name);
|
|
2035
|
-
mainState.assetPositions.push(...dexState.assetPositions);
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
// For standard accounts, aggregate margin from each dex
|
|
2039
|
-
if (!unified) {
|
|
2040
|
-
const dexMargin = dexState.marginSummary;
|
|
2041
|
-
if (dexMargin) {
|
|
2042
|
-
const addToSummary = (summary: { accountValue: string; totalNtlPos: string; totalRawUsd: string; totalMarginUsed: string; withdrawable: string }) => {
|
|
2043
|
-
summary.accountValue = safeAdd(summary.accountValue, dexMargin.accountValue);
|
|
2044
|
-
summary.totalNtlPos = safeAdd(summary.totalNtlPos, dexMargin.totalNtlPos);
|
|
2045
|
-
summary.totalRawUsd = safeAdd(summary.totalRawUsd, dexMargin.totalRawUsd);
|
|
2046
|
-
summary.totalMarginUsed = safeAdd(summary.totalMarginUsed, dexMargin.totalMarginUsed);
|
|
2047
|
-
summary.withdrawable = safeAdd(summary.withdrawable, dexMargin.withdrawable);
|
|
2048
|
-
};
|
|
2049
|
-
addToSummary(mainState.marginSummary);
|
|
2050
|
-
addToSummary(mainState.crossMarginSummary);
|
|
2051
|
-
}
|
|
2052
|
-
}
|
|
2132
|
+
perDex.push({ dexName: result.value.dex.name, state: result.value.dexState });
|
|
2053
2133
|
}
|
|
2054
|
-
|
|
2055
2134
|
if (hip3Errors > 0) {
|
|
2056
2135
|
this.log(`Warning: ${hip3Errors} HIP-3 dex queries failed — some positions may be missing. Use --verbose for details.`);
|
|
2057
2136
|
}
|
|
2058
2137
|
|
|
2059
|
-
|
|
2138
|
+
let spotBalances: { balances: Array<{ coin: string; total: string; hold: string }> } | undefined;
|
|
2060
2139
|
if (unified) {
|
|
2061
2140
|
try {
|
|
2062
|
-
|
|
2063
|
-
this.log('Unified spot balances:', JSON.stringify(
|
|
2064
|
-
|
|
2065
|
-
// Find USDC balance (case-insensitive, handles variations)
|
|
2066
|
-
const balances = spotState?.balances ?? [];
|
|
2067
|
-
const usdcBalance = balances.find(b => b.coin?.toUpperCase() === 'USDC');
|
|
2068
|
-
|
|
2069
|
-
if (usdcBalance) {
|
|
2070
|
-
const totalUsdc = usdcBalance.total;
|
|
2071
|
-
const holdUsdc = usdcBalance.hold;
|
|
2072
|
-
const withdrawable = String(parseFloat(totalUsdc) - parseFloat(holdUsdc));
|
|
2073
|
-
|
|
2074
|
-
// Compute total margin used and notional from all positions
|
|
2075
|
-
let totalMarginUsed = 0;
|
|
2076
|
-
let totalNtlPos = 0;
|
|
2077
|
-
for (const ap of mainState.assetPositions) {
|
|
2078
|
-
const pos = ap.position;
|
|
2079
|
-
if (parseFloat(pos.szi) === 0) continue;
|
|
2080
|
-
totalMarginUsed += parseFloat(pos.marginUsed);
|
|
2081
|
-
totalNtlPos += Math.abs(parseFloat(pos.positionValue));
|
|
2082
|
-
}
|
|
2083
|
-
|
|
2084
|
-
const summary = {
|
|
2085
|
-
accountValue: totalUsdc,
|
|
2086
|
-
totalNtlPos: String(totalNtlPos),
|
|
2087
|
-
totalRawUsd: totalUsdc,
|
|
2088
|
-
totalMarginUsed: String(totalMarginUsed),
|
|
2089
|
-
withdrawable,
|
|
2090
|
-
};
|
|
2091
|
-
mainState.marginSummary = summary;
|
|
2092
|
-
mainState.crossMarginSummary = { ...summary };
|
|
2093
|
-
|
|
2094
|
-
this.log(`Unified account: USDC balance $${parseFloat(totalUsdc).toFixed(2)}, margin used $${totalMarginUsed.toFixed(2)}`);
|
|
2095
|
-
} else {
|
|
2096
|
-
this.log('Unified account: no USDC balance found in spot state. Balances:', balances.map(b => b.coin));
|
|
2097
|
-
}
|
|
2141
|
+
spotBalances = await this.getSpotBalances(user);
|
|
2142
|
+
this.log('Unified spot balances:', JSON.stringify(spotBalances));
|
|
2098
2143
|
} catch (err) {
|
|
2099
2144
|
this.log('Failed to fetch spot balances for unified account:', err instanceof Error ? err.message : String(err));
|
|
2100
2145
|
}
|
|
2101
2146
|
}
|
|
2102
2147
|
|
|
2103
|
-
return
|
|
2148
|
+
return this.mergeUserStateAll(perDex, unified, spotBalances);
|
|
2104
2149
|
}
|
|
2105
2150
|
|
|
2106
2151
|
async getOpenOrders(user?: string): Promise<OpenOrder[]> {
|
package/scripts/core/ws.ts
CHANGED
|
@@ -9,7 +9,11 @@ import type {
|
|
|
9
9
|
OrderUpdatesWsEvent,
|
|
10
10
|
UserFillsWsEvent,
|
|
11
11
|
UserEventsWsEvent,
|
|
12
|
+
AllDexsAssetCtxsWsEvent,
|
|
13
|
+
AllDexsClearinghouseStateWsEvent,
|
|
14
|
+
SpotStateWsEvent,
|
|
12
15
|
} from '@nktkas/hyperliquid';
|
|
16
|
+
import type { ClearinghouseState } from './types.js';
|
|
13
17
|
import { isMainnet } from './config.js';
|
|
14
18
|
|
|
15
19
|
// ── Event types ────────────────────────────────────────────────────
|
|
@@ -26,6 +30,47 @@ export interface WsEventMap {
|
|
|
26
30
|
};
|
|
27
31
|
/** Mid prices for all assets updated */
|
|
28
32
|
allMids: { mids: Record<string, string> };
|
|
33
|
+
/**
|
|
34
|
+
* Asset contexts (funding / mark / oracle / OI / premium / impact) for EVERY dex — native and all
|
|
35
|
+
* HIP-3 deployers — in a single push. `ctxs` is `[dexName, ctx[]]` tuples; `ctx[i]` aligns
|
|
36
|
+
* positionally with that dex's `meta.universe[i]` (same join as the REST `metaAndAssetCtxs`), so a
|
|
37
|
+
* consumer must hold the static universe to map index → coin. Lets a consumer drop the weight-20
|
|
38
|
+
* per-dex `metaAndAssetCtxs` REST poll entirely. Fields typed are the ones we read; the SDK emits a
|
|
39
|
+
* structurally-assignable superset.
|
|
40
|
+
*/
|
|
41
|
+
allDexsAssetCtxs: {
|
|
42
|
+
ctxs: Array<[
|
|
43
|
+
string,
|
|
44
|
+
Array<{
|
|
45
|
+
funding: string;
|
|
46
|
+
openInterest: string;
|
|
47
|
+
dayNtlVlm: string;
|
|
48
|
+
premium: string | null;
|
|
49
|
+
oraclePx: string;
|
|
50
|
+
markPx: string;
|
|
51
|
+
midPx?: string | null;
|
|
52
|
+
prevDayPx?: string;
|
|
53
|
+
impactPxs?: readonly string[] | null;
|
|
54
|
+
}>,
|
|
55
|
+
]>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Clearinghouse state (positions + margin) for EVERY dex for one user, in a single push — the WS
|
|
59
|
+
* equivalent of `getUserStateAll`'s inputs. `clearinghouseStates` is `[dexName, state]` tuples
|
|
60
|
+
* (dexName '' = native/main). Feed it to `client.userStateAllFromWs(...)` to get the same merged,
|
|
61
|
+
* coin-canonicalized `ClearinghouseState` the REST path returns, with no REST weight.
|
|
62
|
+
*/
|
|
63
|
+
allDexsClearinghouseState: {
|
|
64
|
+
user: string;
|
|
65
|
+
// Each per-dex state carries `withdrawable` at the TOP level (not inside marginSummary), like the
|
|
66
|
+
// raw SDK clearinghouseState; `userStateAllFromWs` folds it into marginSummary.withdrawable to
|
|
67
|
+
// match the REST getUserState shape.
|
|
68
|
+
clearinghouseStates: Array<[string, ClearinghouseState & { withdrawable?: string }]>;
|
|
69
|
+
};
|
|
70
|
+
/** User spot balances (the shared collateral pool for unified accounts). */
|
|
71
|
+
spotState: {
|
|
72
|
+
balances: Array<{ coin: string; token: number; total: string; hold: string; entryNtl?: string }>;
|
|
73
|
+
};
|
|
29
74
|
/** Order status changed (filled, canceled, rejected, etc.) */
|
|
30
75
|
orderUpdate: {
|
|
31
76
|
order: {
|
|
@@ -215,8 +260,50 @@ export class WebSocketManager {
|
|
|
215
260
|
return this.trackSub(sub);
|
|
216
261
|
}
|
|
217
262
|
|
|
263
|
+
/**
|
|
264
|
+
* Subscribe to asset contexts for ALL dexes (native + every HIP-3 deployer) in one stream. Replaces
|
|
265
|
+
* the weight-20-per-dex `metaAndAssetCtxs` REST poll for the dynamic ctx fields (funding/mark/oracle/
|
|
266
|
+
* OI/premium/impact). The static universe (coin name / szDecimals / maxLeverage) is NOT in this
|
|
267
|
+
* stream — keep refreshing that on a slow cadence and join positionally.
|
|
268
|
+
*/
|
|
269
|
+
async subscribeAllDexsAssetCtxs(): Promise<ISubscription> {
|
|
270
|
+
const client = this.ensureClient();
|
|
271
|
+
const sub = await client.allDexsAssetCtxs((data: AllDexsAssetCtxsWsEvent) => {
|
|
272
|
+
this.emit('allDexsAssetCtxs', data as WsEventMap['allDexsAssetCtxs']);
|
|
273
|
+
});
|
|
274
|
+
return this.trackSub(sub);
|
|
275
|
+
}
|
|
276
|
+
|
|
218
277
|
// ── User subscriptions ────────────────────────────────────────
|
|
219
278
|
|
|
279
|
+
/**
|
|
280
|
+
* Subscribe to clearinghouse state (positions + margin) across ALL dexes for a user, in one stream.
|
|
281
|
+
* Replaces per-cycle `getUserStateAll` REST polling. Pair the emitted event with
|
|
282
|
+
* `client.userStateAllFromWs(...)` to reconstruct the merged, coin-canonicalized state.
|
|
283
|
+
*/
|
|
284
|
+
async subscribeAllDexsClearinghouseState(user: `0x${string}`): Promise<ISubscription> {
|
|
285
|
+
const client = this.ensureClient();
|
|
286
|
+
const sub = await client.allDexsClearinghouseState({ user }, (data: AllDexsClearinghouseStateWsEvent) => {
|
|
287
|
+
this.emit('allDexsClearinghouseState', data as unknown as WsEventMap['allDexsClearinghouseState']);
|
|
288
|
+
});
|
|
289
|
+
return this.trackSub(sub);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Subscribe to a user's spot balances (the unified-account collateral pool). Replaces
|
|
294
|
+
* `getSpotBalances` REST polling in the collateral gate.
|
|
295
|
+
*/
|
|
296
|
+
async subscribeSpotState(user: `0x${string}`): Promise<ISubscription> {
|
|
297
|
+
const client = this.ensureClient();
|
|
298
|
+
const sub = await client.spotState({ user }, (data: SpotStateWsEvent) => {
|
|
299
|
+
// The SDK event nests balances under `spotState` ({ user, spotState: { balances } }); flatten to
|
|
300
|
+
// the same `{ balances }` shape the REST getSpotBalances returns so consumers are uniform.
|
|
301
|
+
const balances = (data as { spotState?: { balances?: WsEventMap['spotState']['balances'] } }).spotState?.balances ?? [];
|
|
302
|
+
this.emit('spotState', { balances });
|
|
303
|
+
});
|
|
304
|
+
return this.trackSub(sub);
|
|
305
|
+
}
|
|
306
|
+
|
|
220
307
|
/**
|
|
221
308
|
* Subscribe to order lifecycle events (fill, cancel, reject, etc.).
|
|
222
309
|
* This is the most important subscription for trading automations.
|