hyperliquid-prime 0.1.4 → 0.1.5
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/README.md +64 -28
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +5 -1
- package/dist/cli/program.js.map +1 -1
- package/dist/collateral/manager.d.ts +2 -2
- package/dist/collateral/manager.d.ts.map +1 -1
- package/dist/collateral/manager.js +487 -91
- package/dist/collateral/manager.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/execution/executor.d.ts +21 -0
- package/dist/execution/executor.d.ts.map +1 -1
- package/dist/execution/executor.js +311 -112
- package/dist/execution/executor.js.map +1 -1
- package/dist/execution/types.d.ts +23 -2
- package/dist/execution/types.d.ts.map +1 -1
- package/dist/index.d.ts +42 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +196 -14
- package/dist/index.js.map +1 -1
- package/dist/market/registry.d.ts +3 -0
- package/dist/market/registry.d.ts.map +1 -1
- package/dist/market/registry.js +53 -23
- package/dist/market/registry.js.map +1 -1
- package/dist/market/types.d.ts +6 -0
- package/dist/market/types.d.ts.map +1 -1
- package/dist/position/manager.d.ts +6 -3
- package/dist/position/manager.d.ts.map +1 -1
- package/dist/position/manager.js +58 -31
- package/dist/position/manager.js.map +1 -1
- package/dist/provider/nktkas.d.ts +38 -3
- package/dist/provider/nktkas.d.ts.map +1 -1
- package/dist/provider/nktkas.js +202 -35
- package/dist/provider/nktkas.js.map +1 -1
- package/dist/provider/provider.d.ts +29 -3
- package/dist/provider/provider.d.ts.map +1 -1
- package/dist/provider/schemas.d.ts +933 -0
- package/dist/provider/schemas.d.ts.map +1 -0
- package/dist/provider/schemas.js +330 -0
- package/dist/provider/schemas.js.map +1 -0
- package/dist/provider/types.d.ts +88 -1
- package/dist/provider/types.d.ts.map +1 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +96 -27
- package/dist/router/router.js.map +1 -1
- package/dist/router/scorer.d.ts +3 -1
- package/dist/router/scorer.d.ts.map +1 -1
- package/dist/router/scorer.js +28 -5
- package/dist/router/scorer.js.map +1 -1
- package/dist/router/types.d.ts +3 -0
- package/dist/router/types.d.ts.map +1 -1
- package/dist/router/types.js.map +1 -1
- package/dist/types/result.d.ts +16 -0
- package/dist/types/result.d.ts.map +1 -0
- package/dist/types/result.js +9 -0
- package/dist/types/result.js.map +1 -0
- package/dist/utils/asset.d.ts +2 -0
- package/dist/utils/asset.d.ts.map +1 -0
- package/dist/utils/asset.js +18 -0
- package/dist/utils/asset.js.map +1 -0
- package/dist/utils/order-precision.d.ts +16 -0
- package/dist/utils/order-precision.d.ts.map +1 -0
- package/dist/utils/order-precision.js +45 -0
- package/dist/utils/order-precision.js.map +1 -0
- package/package.json +7 -3
package/dist/router/router.js
CHANGED
|
@@ -2,6 +2,7 @@ import { FillSimulator } from "./simulator.js";
|
|
|
2
2
|
import { MarketScorer } from "./scorer.js";
|
|
3
3
|
import { SplitOptimizer } from "./splitter.js";
|
|
4
4
|
import { NoMarketsError, InsufficientLiquidityError, MarketDataUnavailableError, } from "../utils/errors.js";
|
|
5
|
+
import { quantizeOrderPrice, quantizeOrderSize, sizeDecimalsForMarket, } from "../utils/order-precision.js";
|
|
5
6
|
const BOOK_FETCH_TIMEOUT_MS = 2_500;
|
|
6
7
|
export class Router {
|
|
7
8
|
provider;
|
|
@@ -35,6 +36,7 @@ export class Router {
|
|
|
35
36
|
}
|
|
36
37
|
// Simulate + score each market
|
|
37
38
|
const scored = [];
|
|
39
|
+
const requestedLeverage = tradeOptions?.leverage;
|
|
38
40
|
for (const { market, book } of snapshots) {
|
|
39
41
|
const sim = this.simulator.simulate(book, side, size);
|
|
40
42
|
if (!sim) {
|
|
@@ -48,7 +50,7 @@ export class Router {
|
|
|
48
50
|
});
|
|
49
51
|
continue;
|
|
50
52
|
}
|
|
51
|
-
scored.push(this.scorer.score(sim, market, side, userCollateral));
|
|
53
|
+
scored.push(this.scorer.score(sim, market, side, userCollateral, undefined, requestedLeverage));
|
|
52
54
|
}
|
|
53
55
|
// Sort by score (lower = better)
|
|
54
56
|
scored.sort((a, b) => a.totalScore - b.totalScore);
|
|
@@ -70,9 +72,19 @@ export class Router {
|
|
|
70
72
|
throw new MarketDataUnavailableError(baseAsset, [best.market.coin]);
|
|
71
73
|
}
|
|
72
74
|
const sim = this.simulator.simulate(bestSnapshot.book, side, size);
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
const legResult = buildExecutionLeg({
|
|
76
|
+
market: best.market,
|
|
77
|
+
side,
|
|
78
|
+
rawSize: size,
|
|
79
|
+
estimatedAvgPrice: sim.avgPrice,
|
|
80
|
+
slippage,
|
|
81
|
+
requestedLeverage,
|
|
82
|
+
requestedIsCross: tradeOptions?.isCross,
|
|
83
|
+
});
|
|
84
|
+
warnings.push(...legResult.warnings);
|
|
85
|
+
if (!legResult.leg) {
|
|
86
|
+
throw new InsufficientLiquidityError(baseAsset, size);
|
|
87
|
+
}
|
|
76
88
|
return {
|
|
77
89
|
baseAsset,
|
|
78
90
|
side,
|
|
@@ -83,16 +95,7 @@ export class Router {
|
|
|
83
95
|
estimatedFundingRate: parseFloat(best.market.funding ?? "0"),
|
|
84
96
|
alternativesConsidered: scored,
|
|
85
97
|
warnings: warnings.length > 0 ? warnings : undefined,
|
|
86
|
-
plan:
|
|
87
|
-
market: best.market,
|
|
88
|
-
side,
|
|
89
|
-
size: size.toString(),
|
|
90
|
-
price: slippagePrice.toFixed(6), // TODO: respect tick size
|
|
91
|
-
orderType: { limit: { tif: "Ioc" } },
|
|
92
|
-
slippage,
|
|
93
|
-
leverage: tradeOptions?.leverage,
|
|
94
|
-
isCross: tradeOptions?.isCross,
|
|
95
|
-
},
|
|
98
|
+
plan: legResult.leg,
|
|
96
99
|
};
|
|
97
100
|
}
|
|
98
101
|
/**
|
|
@@ -144,6 +147,7 @@ export class Router {
|
|
|
144
147
|
]));
|
|
145
148
|
// Score each market for the alternativesConsidered list
|
|
146
149
|
const scored = [];
|
|
150
|
+
const requestedLeverage = tradeOptions?.leverage;
|
|
147
151
|
for (const alloc of splitResult.allocations) {
|
|
148
152
|
const book = bookMap.get(alloc.market.coin);
|
|
149
153
|
if (!book) {
|
|
@@ -152,26 +156,30 @@ export class Router {
|
|
|
152
156
|
}
|
|
153
157
|
const sim = this.simulator.simulate(book, side, alloc.size);
|
|
154
158
|
if (sim) {
|
|
155
|
-
scored.push(this.scorer.score(sim, alloc.market, side, userCollateral));
|
|
159
|
+
scored.push(this.scorer.score(sim, alloc.market, side, userCollateral, undefined, requestedLeverage));
|
|
156
160
|
}
|
|
157
161
|
}
|
|
158
162
|
scored.sort((a, b) => a.totalScore - b.totalScore);
|
|
159
|
-
// Build execution legs
|
|
160
|
-
const
|
|
161
|
-
const
|
|
162
|
-
? alloc.estimatedAvgPrice * (1 + slippage)
|
|
163
|
-
: alloc.estimatedAvgPrice * (1 - slippage);
|
|
164
|
-
return {
|
|
163
|
+
// Build execution legs with per-market leverage clamping
|
|
164
|
+
const rawLegs = splitResult.allocations.map((alloc) => {
|
|
165
|
+
const legResult = buildExecutionLeg({
|
|
165
166
|
market: alloc.market,
|
|
166
167
|
side,
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
orderType: { limit: { tif: "Ioc" } },
|
|
168
|
+
rawSize: alloc.size,
|
|
169
|
+
estimatedAvgPrice: alloc.estimatedAvgPrice,
|
|
170
170
|
slippage,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
};
|
|
171
|
+
requestedLeverage,
|
|
172
|
+
requestedIsCross: tradeOptions?.isCross,
|
|
173
|
+
});
|
|
174
|
+
for (const w of legResult.warnings) {
|
|
175
|
+
this.pushWarning(warnings, w);
|
|
176
|
+
}
|
|
177
|
+
return legResult.leg;
|
|
174
178
|
});
|
|
179
|
+
const legs = rawLegs.filter((leg) => leg !== null);
|
|
180
|
+
if (legs.length === 0) {
|
|
181
|
+
throw new InsufficientLiquidityError(baseAsset, size);
|
|
182
|
+
}
|
|
175
183
|
// Compute weighted funding rate
|
|
176
184
|
const weightedFunding = splitResult.allocations.reduce((sum, a) => sum + parseFloat(a.market.funding ?? "0") * a.proportion, 0);
|
|
177
185
|
// Use the largest allocation's market as the "selected" market (for backward compat)
|
|
@@ -257,4 +265,65 @@ export class Router {
|
|
|
257
265
|
}
|
|
258
266
|
}
|
|
259
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Clamp requested leverage to the market's max. Returns undefined if no leverage was requested.
|
|
270
|
+
*/
|
|
271
|
+
function clampLeverage(requested, market) {
|
|
272
|
+
if (requested === undefined)
|
|
273
|
+
return undefined;
|
|
274
|
+
return Math.min(requested, market.maxLeverage);
|
|
275
|
+
}
|
|
276
|
+
function resolveIsCross(requested, market, warnings) {
|
|
277
|
+
if (requested === undefined)
|
|
278
|
+
return undefined;
|
|
279
|
+
if (requested && market.onlyIsolated) {
|
|
280
|
+
const warning = `${market.coin}: cross margin unsupported on this asset; using isolated margin`;
|
|
281
|
+
if (!warnings.includes(warning)) {
|
|
282
|
+
warnings.push(warning);
|
|
283
|
+
}
|
|
284
|
+
return false;
|
|
285
|
+
}
|
|
286
|
+
return requested;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Build a single execution leg from raw inputs, applying slippage, leverage
|
|
290
|
+
* clamping, margin mode resolution, and size/price quantization.
|
|
291
|
+
*
|
|
292
|
+
* Shared between quote() and quoteSplit() to eliminate DRY violation.
|
|
293
|
+
* Returns null (with warnings) if the quantized size or price rounds to zero.
|
|
294
|
+
*/
|
|
295
|
+
function buildExecutionLeg(params) {
|
|
296
|
+
const warnings = [];
|
|
297
|
+
const slippagePrice = params.side === "buy"
|
|
298
|
+
? params.estimatedAvgPrice * (1 + params.slippage)
|
|
299
|
+
: params.estimatedAvgPrice * (1 - params.slippage);
|
|
300
|
+
const effectiveLeverage = clampLeverage(params.requestedLeverage, params.market);
|
|
301
|
+
if (params.requestedLeverage !== undefined && effectiveLeverage !== params.requestedLeverage) {
|
|
302
|
+
warnings.push(`${params.market.coin}: leverage clamped to ${effectiveLeverage}x (market max), requested ${params.requestedLeverage}x`);
|
|
303
|
+
}
|
|
304
|
+
const effectiveIsCross = resolveIsCross(params.requestedIsCross, params.market, warnings);
|
|
305
|
+
const orderSize = quantizeOrderSize(params.rawSize, params.market);
|
|
306
|
+
const orderPrice = quantizeOrderPrice(slippagePrice, params.side, params.market);
|
|
307
|
+
if (parseFloat(orderSize) <= 0) {
|
|
308
|
+
warnings.push(`${params.market.coin}: rounded order size to zero at ${sizeDecimalsForMarket(params.market)} decimals; leg skipped`);
|
|
309
|
+
return { leg: null, warnings };
|
|
310
|
+
}
|
|
311
|
+
if (parseFloat(orderPrice) <= 0) {
|
|
312
|
+
warnings.push(`${params.market.coin}: rounded order price to zero; leg skipped`);
|
|
313
|
+
return { leg: null, warnings };
|
|
314
|
+
}
|
|
315
|
+
return {
|
|
316
|
+
leg: {
|
|
317
|
+
market: params.market,
|
|
318
|
+
side: params.side,
|
|
319
|
+
size: orderSize,
|
|
320
|
+
price: orderPrice,
|
|
321
|
+
orderType: { limit: { tif: "Ioc" } },
|
|
322
|
+
slippage: params.slippage,
|
|
323
|
+
leverage: effectiveLeverage,
|
|
324
|
+
isCross: effectiveIsCross,
|
|
325
|
+
},
|
|
326
|
+
warnings,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
260
329
|
//# sourceMappingURL=router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router/router.ts"],"names":[],"mappings":"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"}
|
package/dist/router/scorer.d.ts
CHANGED
|
@@ -8,11 +8,13 @@ export declare class MarketScorer {
|
|
|
8
8
|
* 1. Price impact (dominant factor)
|
|
9
9
|
* 2. Funding rate (secondary — prefer favorable funding)
|
|
10
10
|
* 3. Collateral match (if user lacks collateral, penalize by estimated swap cost)
|
|
11
|
+
* 4. Leverage fit (penalty when market maxLeverage < requested leverage)
|
|
11
12
|
*
|
|
12
13
|
* @param swapCostBps Estimated cost to swap into this market's collateral.
|
|
13
14
|
* Pass 0 or omit when user already holds the collateral.
|
|
14
15
|
* When omitted and collateral is missing, uses a conservative default.
|
|
16
|
+
* @param requestedLeverage Target leverage requested by the user. When omitted, no leverage penalty is applied.
|
|
15
17
|
*/
|
|
16
|
-
score(simulation: SimulationResult, market: PerpMarket, side: "buy" | "sell", userCollateral: string[], swapCostBps?: number): MarketScore;
|
|
18
|
+
score(simulation: SimulationResult, market: PerpMarket, side: "buy" | "sell", userCollateral: string[], swapCostBps?: number, requestedLeverage?: number): MarketScore;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=scorer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../src/router/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../src/router/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAahE,qBAAa,YAAY;IACvB;;;;;;;;;;;;;OAaG;IACH,KAAK,CACH,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,KAAK,GAAG,MAAM,EACpB,cAAc,EAAE,MAAM,EAAE,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,iBAAiB,CAAC,EAAE,MAAM,GACzB,WAAW;CA8Cf"}
|
package/dist/router/scorer.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/** Default swap cost estimate (bps) when no spot book data is available */
|
|
2
2
|
const DEFAULT_SWAP_COST_BPS = 50;
|
|
3
|
+
/**
|
|
4
|
+
* Penalty (bps) per 1x of leverage clamping.
|
|
5
|
+
* E.g. requesting 20x on a 12x market → 8x gap → 8 * 25 = 200 bps penalty.
|
|
6
|
+
* This makes lower-leverage markets less attractive but doesn't exclude them,
|
|
7
|
+
* so the optimizer can still use their liquidity when it's price-competitive.
|
|
8
|
+
*/
|
|
9
|
+
const LEVERAGE_CLAMP_PENALTY_PER_X = 25;
|
|
3
10
|
export class MarketScorer {
|
|
4
11
|
/**
|
|
5
12
|
* Score a market for a given trade. Lower score = better.
|
|
@@ -8,12 +15,14 @@ export class MarketScorer {
|
|
|
8
15
|
* 1. Price impact (dominant factor)
|
|
9
16
|
* 2. Funding rate (secondary — prefer favorable funding)
|
|
10
17
|
* 3. Collateral match (if user lacks collateral, penalize by estimated swap cost)
|
|
18
|
+
* 4. Leverage fit (penalty when market maxLeverage < requested leverage)
|
|
11
19
|
*
|
|
12
20
|
* @param swapCostBps Estimated cost to swap into this market's collateral.
|
|
13
21
|
* Pass 0 or omit when user already holds the collateral.
|
|
14
22
|
* When omitted and collateral is missing, uses a conservative default.
|
|
23
|
+
* @param requestedLeverage Target leverage requested by the user. When omitted, no leverage penalty is applied.
|
|
15
24
|
*/
|
|
16
|
-
score(simulation, market, side, userCollateral, swapCostBps) {
|
|
25
|
+
score(simulation, market, side, userCollateral, swapCostBps, requestedLeverage) {
|
|
17
26
|
// Price impact: direct cost, measured in bps
|
|
18
27
|
const priceImpact = simulation.priceImpactBps;
|
|
19
28
|
// Funding: if going long and funding is negative (shorts pay longs), that's good
|
|
@@ -26,7 +35,22 @@ export class MarketScorer {
|
|
|
26
35
|
const collateralPenalty = hasCollateral
|
|
27
36
|
? 0
|
|
28
37
|
: (swapCostBps ?? DEFAULT_SWAP_COST_BPS);
|
|
29
|
-
|
|
38
|
+
// Leverage fit: penalize if the market can't meet the requested leverage
|
|
39
|
+
let leveragePenalty = 0;
|
|
40
|
+
let leverageClamped;
|
|
41
|
+
if (requestedLeverage !== undefined && requestedLeverage > market.maxLeverage) {
|
|
42
|
+
const gap = requestedLeverage - market.maxLeverage;
|
|
43
|
+
leveragePenalty = gap * LEVERAGE_CLAMP_PENALTY_PER_X;
|
|
44
|
+
leverageClamped = market.maxLeverage;
|
|
45
|
+
}
|
|
46
|
+
const totalScore = priceImpact - fundingScore + collateralPenalty + leveragePenalty;
|
|
47
|
+
const reasons = [];
|
|
48
|
+
if (!hasCollateral) {
|
|
49
|
+
reasons.push(`No ${market.collateral} balance (swap ~${collateralPenalty.toFixed(1)} bps)`);
|
|
50
|
+
}
|
|
51
|
+
if (leverageClamped !== undefined) {
|
|
52
|
+
reasons.push(`Leverage clamped to ${leverageClamped}x (max), requested ${requestedLeverage}x`);
|
|
53
|
+
}
|
|
30
54
|
return {
|
|
31
55
|
market,
|
|
32
56
|
priceImpact,
|
|
@@ -34,9 +58,8 @@ export class MarketScorer {
|
|
|
34
58
|
collateralMatch: hasCollateral,
|
|
35
59
|
totalScore,
|
|
36
60
|
swapCostBps: hasCollateral ? undefined : (swapCostBps ?? DEFAULT_SWAP_COST_BPS),
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
: undefined,
|
|
61
|
+
leverageClamped,
|
|
62
|
+
reason: reasons.length > 0 ? reasons.join("; ") : undefined,
|
|
40
63
|
};
|
|
41
64
|
}
|
|
42
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/router/scorer.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,MAAM,OAAO,YAAY;IACvB
|
|
1
|
+
{"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/router/scorer.ts"],"names":[],"mappings":"AAGA,2EAA2E;AAC3E,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,OAAO,YAAY;IACvB;;;;;;;;;;;;;OAaG;IACH,KAAK,CACH,UAA4B,EAC5B,MAAkB,EAClB,IAAoB,EACpB,cAAwB,EACxB,WAAoB,EACpB,iBAA0B;QAE1B,6CAA6C;QAC7C,MAAM,WAAW,GAAG,UAAU,CAAC,cAAc,CAAC;QAE9C,iFAAiF;QACjF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;QACnE,iFAAiF;QACjF,MAAM,YAAY,GAAG,cAAc,GAAG,KAAK,GAAG,CAAC,CAAC;QAEhD,2DAA2D;QAC3D,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,iBAAiB,GAAG,aAAa;YACrC,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,CAAC,WAAW,IAAI,qBAAqB,CAAC,CAAC;QAE3C,yEAAyE;QACzE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,eAAmC,CAAC;QACxC,IAAI,iBAAiB,KAAK,SAAS,IAAI,iBAAiB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAC9E,MAAM,GAAG,GAAG,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;YACnD,eAAe,GAAG,GAAG,GAAG,4BAA4B,CAAC;YACrD,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC;QACvC,CAAC;QAED,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,iBAAiB,GAAG,eAAe,CAAC;QAEpF,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,UAAU,mBAAmB,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,uBAAuB,eAAe,sBAAsB,iBAAiB,GAAG,CAAC,CAAC;QACjG,CAAC;QAED,OAAO;YACL,MAAM;YACN,WAAW;YACX,WAAW;YACX,eAAe,EAAE,aAAa;YAC9B,UAAU;YACV,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,qBAAqB,CAAC;YAC/E,eAAe;YACf,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC;IACJ,CAAC;CACF"}
|
package/dist/router/types.d.ts
CHANGED
|
@@ -26,6 +26,8 @@ export interface ExecutionPlan {
|
|
|
26
26
|
price: string;
|
|
27
27
|
orderType: OrderType;
|
|
28
28
|
slippage: number;
|
|
29
|
+
/** When true, order may only reduce an existing position. */
|
|
30
|
+
reduceOnly?: boolean;
|
|
29
31
|
leverage?: number;
|
|
30
32
|
isCross?: boolean;
|
|
31
33
|
}
|
|
@@ -36,6 +38,7 @@ export interface MarketScore {
|
|
|
36
38
|
collateralMatch: boolean;
|
|
37
39
|
totalScore: number;
|
|
38
40
|
swapCostBps?: number;
|
|
41
|
+
leverageClamped?: number;
|
|
39
42
|
reason?: string;
|
|
40
43
|
}
|
|
41
44
|
export interface SimulationResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,UAAU,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,WAAW,EAAE,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,kBAAkB,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,UAAU,CAEtD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"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"}
|
package/dist/router/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AA0FA,MAAM,UAAU,YAAY,CAAC,CAAQ;IACnC,OAAO,SAAS,IAAI,CAAC,IAAK,CAAgB,CAAC,OAAO,KAAK,IAAI,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic result wrapper that carries partial data alongside warnings.
|
|
3
|
+
* Used when an operation succeeds but some data sources failed.
|
|
4
|
+
*
|
|
5
|
+
* Example: fetching positions from 3 deployers where 1 is down returns
|
|
6
|
+
* the positions from the 2 healthy deployers plus a warning about the failed one.
|
|
7
|
+
*/
|
|
8
|
+
export type WithWarnings<T> = {
|
|
9
|
+
data: T;
|
|
10
|
+
warnings: string[];
|
|
11
|
+
};
|
|
12
|
+
/** Create a WithWarnings with no warnings. */
|
|
13
|
+
export declare function ok<T>(data: T): WithWarnings<T>;
|
|
14
|
+
/** Create a WithWarnings with warnings. */
|
|
15
|
+
export declare function withWarnings<T>(data: T, warnings: string[]): WithWarnings<T>;
|
|
16
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,8CAA8C;AAC9C,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAE9C;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAE5E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Create a WithWarnings with no warnings. */
|
|
2
|
+
export function ok(data) {
|
|
3
|
+
return { data, warnings: [] };
|
|
4
|
+
}
|
|
5
|
+
/** Create a WithWarnings with warnings. */
|
|
6
|
+
export function withWarnings(data, warnings) {
|
|
7
|
+
return { data, warnings };
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/types/result.ts"],"names":[],"mappings":"AAYA,8CAA8C;AAC9C,MAAM,UAAU,EAAE,CAAI,IAAO;IAC3B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,YAAY,CAAI,IAAO,EAAE,QAAkB;IACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../../src/utils/asset.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAkBxD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function assetVariants(value) {
|
|
2
|
+
const normalized = String(value ?? "").trim().toUpperCase();
|
|
3
|
+
const out = new Set();
|
|
4
|
+
if (!normalized)
|
|
5
|
+
return out;
|
|
6
|
+
out.add(normalized);
|
|
7
|
+
const slashBase = normalized.includes("/") ? (normalized.split("/")[0] ?? normalized) : normalized;
|
|
8
|
+
out.add(slashBase);
|
|
9
|
+
const colonBase = slashBase.includes(":")
|
|
10
|
+
? slashBase.slice(slashBase.indexOf(":") + 1)
|
|
11
|
+
: slashBase;
|
|
12
|
+
out.add(colonBase);
|
|
13
|
+
const stripped = colonBase.replace(/\d+$/, "");
|
|
14
|
+
if (stripped)
|
|
15
|
+
out.add(stripped);
|
|
16
|
+
return out;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=asset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../../src/utils/asset.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,IAAI,CAAC,UAAU;QAAE,OAAO,GAAG,CAAC;IAE5B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACnG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEnB,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,SAAS,CAAC;IACd,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEnB,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,QAAQ;QAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEhC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { PerpMarket } from "../market/types.js";
|
|
2
|
+
export declare function sizeDecimalsForMarket(market: PerpMarket): number;
|
|
3
|
+
export declare function quantizeOrderSize(size: number, market: PerpMarket): string;
|
|
4
|
+
/**
|
|
5
|
+
* Format a price to a valid Hyperliquid tick size using the official
|
|
6
|
+
* `@nktkas/hyperliquid` string-based formatting.
|
|
7
|
+
*
|
|
8
|
+
* Rules (per HL docs):
|
|
9
|
+
* - Max 5 significant figures
|
|
10
|
+
* - Max (6 - szDecimals) decimal places for perps
|
|
11
|
+
* - Integer prices always allowed
|
|
12
|
+
*
|
|
13
|
+
* Slippage is applied upstream, so truncation is safe for both directions.
|
|
14
|
+
*/
|
|
15
|
+
export declare function quantizeOrderPrice(price: number, _side: "buy" | "sell", market: PerpMarket): string;
|
|
16
|
+
//# sourceMappingURL=order-precision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-precision.d.ts","sourceRoot":"","sources":["../../src/utils/order-precision.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAKhE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAQ1E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,MAAM,EAAE,UAAU,GACjB,MAAM,CAQR"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { formatPrice, formatSize } from "@nktkas/hyperliquid/utils";
|
|
2
|
+
const DEFAULT_ORDER_SIZE_DECIMALS = 6;
|
|
3
|
+
const MAX_ORDER_SIZE_DECIMALS = 12;
|
|
4
|
+
export function sizeDecimalsForMarket(market) {
|
|
5
|
+
if (market.szDecimals === undefined)
|
|
6
|
+
return DEFAULT_ORDER_SIZE_DECIMALS;
|
|
7
|
+
if (!Number.isFinite(market.szDecimals))
|
|
8
|
+
return DEFAULT_ORDER_SIZE_DECIMALS;
|
|
9
|
+
const normalized = Math.floor(market.szDecimals);
|
|
10
|
+
return Math.max(0, Math.min(MAX_ORDER_SIZE_DECIMALS, normalized));
|
|
11
|
+
}
|
|
12
|
+
export function quantizeOrderSize(size, market) {
|
|
13
|
+
if (!Number.isFinite(size) || size <= 0)
|
|
14
|
+
return "0";
|
|
15
|
+
const szDecimals = sizeDecimalsForMarket(market);
|
|
16
|
+
try {
|
|
17
|
+
return formatSize(size, szDecimals);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return "0";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Format a price to a valid Hyperliquid tick size using the official
|
|
25
|
+
* `@nktkas/hyperliquid` string-based formatting.
|
|
26
|
+
*
|
|
27
|
+
* Rules (per HL docs):
|
|
28
|
+
* - Max 5 significant figures
|
|
29
|
+
* - Max (6 - szDecimals) decimal places for perps
|
|
30
|
+
* - Integer prices always allowed
|
|
31
|
+
*
|
|
32
|
+
* Slippage is applied upstream, so truncation is safe for both directions.
|
|
33
|
+
*/
|
|
34
|
+
export function quantizeOrderPrice(price, _side, market) {
|
|
35
|
+
if (!Number.isFinite(price) || price <= 0)
|
|
36
|
+
return "0";
|
|
37
|
+
const szDecimals = sizeDecimalsForMarket(market);
|
|
38
|
+
try {
|
|
39
|
+
return formatPrice(price, szDecimals, "perp");
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return "0";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=order-precision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"order-precision.js","sourceRoot":"","sources":["../../src/utils/order-precision.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGpE,MAAM,2BAA2B,GAAG,CAAC,CAAC;AACtC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACtD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,2BAA2B,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QAAE,OAAO,2BAA2B,CAAC;IAC5E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAkB;IAChE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACpD,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,KAAqB,EACrB,MAAkB;IAElB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IACtD,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hyperliquid-prime",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Prime broker SDK for Hyperliquid markets — unified trading across fragmented markets",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -36,15 +36,19 @@
|
|
|
36
36
|
],
|
|
37
37
|
"license": "MIT",
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@nktkas/hyperliquid": "^0.
|
|
39
|
+
"@nktkas/hyperliquid": "^0.31.0",
|
|
40
40
|
"better-sqlite3": "^11.0.0",
|
|
41
41
|
"commander": "^12.0.0",
|
|
42
42
|
"pino": "^9.0.0",
|
|
43
|
-
"viem": "^2.0.0"
|
|
43
|
+
"viem": "^2.0.0",
|
|
44
|
+
"ws": "^8.18.3",
|
|
45
|
+
"zod": "^4.3.6"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
48
|
"@types/better-sqlite3": "^7.0.0",
|
|
47
49
|
"@types/node": "^22.0.0",
|
|
50
|
+
"@typescript-eslint/eslint-plugin": "^8.57.0",
|
|
51
|
+
"@typescript-eslint/parser": "^8.57.0",
|
|
48
52
|
"eslint": "^9.0.0",
|
|
49
53
|
"pino-pretty": "^11.0.0",
|
|
50
54
|
"tsx": "^4.0.0",
|