hyperliquid-prime 0.1.3 → 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 +87 -30
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +32 -7
- 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 +23 -0
- package/dist/execution/executor.d.ts.map +1 -1
- package/dist/execution/executor.js +346 -102
- 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 +51 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +227 -26
- 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 +3 -3
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +98 -25
- 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 +11 -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
|
@@ -13,14 +13,35 @@ export interface ExecutionReceipt {
|
|
|
13
13
|
raw?: unknown;
|
|
14
14
|
}
|
|
15
15
|
export type OrderStatusType = "pending" | "open" | "filled" | "partially_filled" | "cancelled" | "rejected";
|
|
16
|
-
|
|
16
|
+
/** Per-leg receipt within a split execution. */
|
|
17
|
+
export interface LegReceipt {
|
|
18
|
+
market: PerpMarket;
|
|
19
|
+
side: "buy" | "sell";
|
|
20
|
+
requestedSize: string;
|
|
21
|
+
filledSize: string;
|
|
22
|
+
avgPrice: string;
|
|
23
|
+
orderId: number | undefined;
|
|
17
24
|
success: boolean;
|
|
18
|
-
|
|
25
|
+
error?: string;
|
|
26
|
+
raw?: unknown;
|
|
27
|
+
}
|
|
28
|
+
export interface SplitExecutionReceipt {
|
|
29
|
+
/** True only if ALL legs succeeded. */
|
|
30
|
+
allSucceeded: boolean;
|
|
31
|
+
/** True if at least one leg succeeded but not all. */
|
|
32
|
+
partialFill: boolean;
|
|
33
|
+
/** Individual per-leg results. */
|
|
34
|
+
legs: LegReceipt[];
|
|
19
35
|
collateralReceipt: CollateralReceipt;
|
|
20
36
|
totalRequestedSize: string;
|
|
21
37
|
totalFilledSize: string;
|
|
38
|
+
/** Weighted average price across all filled legs. */
|
|
22
39
|
aggregateAvgPrice: string;
|
|
23
40
|
timestamp: number;
|
|
41
|
+
/** Warnings generated during execution. */
|
|
42
|
+
warnings: string[];
|
|
24
43
|
error?: string;
|
|
44
|
+
/** @deprecated Use allSucceeded instead. */
|
|
45
|
+
success: boolean;
|
|
25
46
|
}
|
|
26
47
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,MAAM,GACN,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,UAAU,CAAC;AAEf,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/execution/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,MAAM,GACN,QAAQ,GACR,kBAAkB,GAClB,WAAW,GACX,UAAU,CAAC;AAEf,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,WAAW,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,12 @@ import type { HyperliquidPrimeConfig } from "./config.js";
|
|
|
2
2
|
import type { HLProvider } from "./provider/provider.js";
|
|
3
3
|
import { MarketRegistry } from "./market/registry.js";
|
|
4
4
|
import type { PerpMarket, MarketGroup, AggregatedBook, FundingComparison } from "./market/types.js";
|
|
5
|
-
import type { Quote, ExecutionPlan, SplitQuote, SplitExecutionPlan } from "./router/types.js";
|
|
5
|
+
import type { Quote, ExecutionPlan, SplitQuote, SplitExecutionPlan, TradeExecutionOptions } from "./router/types.js";
|
|
6
6
|
import type { ExecutionReceipt, SplitExecutionReceipt } from "./execution/types.js";
|
|
7
7
|
import type { LogicalPosition } from "./position/types.js";
|
|
8
|
+
import type { CollateralPlan } from "./collateral/types.js";
|
|
9
|
+
import type { ReferralResponse } from "./provider/types.js";
|
|
10
|
+
import type { WithWarnings } from "./types/result.js";
|
|
8
11
|
export declare class HyperliquidPrime {
|
|
9
12
|
private provider;
|
|
10
13
|
private _registry;
|
|
@@ -31,24 +34,29 @@ export declare class HyperliquidPrime {
|
|
|
31
34
|
/** Compare funding rates across all markets for an asset. */
|
|
32
35
|
getFundingComparison(baseAsset: string): Promise<FundingComparison>;
|
|
33
36
|
/** Generate a routing quote. Does NOT execute. */
|
|
34
|
-
quote(baseAsset: string, side: "buy" | "sell", size: number): Promise<Quote>;
|
|
37
|
+
quote(baseAsset: string, side: "buy" | "sell", size: number, options?: TradeExecutionOptions): Promise<Quote>;
|
|
35
38
|
/** Execute a previously generated quote. */
|
|
36
39
|
execute(plan: ExecutionPlan): Promise<ExecutionReceipt>;
|
|
37
40
|
/** Convenience: quote + execute in one call. */
|
|
38
|
-
long(baseAsset: string, size: number): Promise<ExecutionReceipt>;
|
|
39
|
-
short(baseAsset: string, size: number): Promise<ExecutionReceipt>;
|
|
41
|
+
long(baseAsset: string, size: number, options?: TradeExecutionOptions): Promise<ExecutionReceipt>;
|
|
42
|
+
short(baseAsset: string, size: number, options?: TradeExecutionOptions): Promise<ExecutionReceipt>;
|
|
40
43
|
/** Generate a split quote across multiple HIP-3 markets. Does NOT execute. */
|
|
41
|
-
quoteSplit(baseAsset: string, side: "buy" | "sell", size: number): Promise<SplitQuote>;
|
|
44
|
+
quoteSplit(baseAsset: string, side: "buy" | "sell", size: number, options?: TradeExecutionOptions): Promise<SplitQuote>;
|
|
42
45
|
/** Execute a previously generated split quote. */
|
|
43
46
|
executeSplit(plan: SplitExecutionPlan): Promise<SplitExecutionReceipt>;
|
|
47
|
+
/**
|
|
48
|
+
* Estimate collateral swaps required for a split execution plan.
|
|
49
|
+
* Read-only: no transfers, swaps, or abstraction writes are performed.
|
|
50
|
+
*/
|
|
51
|
+
estimateSplitCollateral(plan: SplitExecutionPlan, userAddress?: string): Promise<CollateralPlan>;
|
|
44
52
|
/** Convenience: split quote + execute in one call. */
|
|
45
|
-
longSplit(baseAsset: string, size: number): Promise<SplitExecutionReceipt>;
|
|
46
|
-
shortSplit(baseAsset: string, size: number): Promise<SplitExecutionReceipt>;
|
|
53
|
+
longSplit(baseAsset: string, size: number, options?: TradeExecutionOptions): Promise<SplitExecutionReceipt>;
|
|
54
|
+
shortSplit(baseAsset: string, size: number, options?: TradeExecutionOptions): Promise<SplitExecutionReceipt>;
|
|
47
55
|
close(baseAsset: string): Promise<ExecutionReceipt[]>;
|
|
48
|
-
/** Get all positions. */
|
|
49
|
-
getPositions(): Promise<LogicalPosition[]
|
|
50
|
-
/** Get positions grouped by base asset (unified view). */
|
|
51
|
-
getGroupedPositions(): Promise<Map<string, LogicalPosition[]
|
|
56
|
+
/** Get all positions with warnings about any failed deployer fetches. */
|
|
57
|
+
getPositions(): Promise<WithWarnings<LogicalPosition[]>>;
|
|
58
|
+
/** Get positions grouped by base asset (unified view) with warnings. */
|
|
59
|
+
getGroupedPositions(): Promise<WithWarnings<Map<string, LogicalPosition[]>>>;
|
|
52
60
|
/** Get perp account balance/margin summary. */
|
|
53
61
|
getBalance(): Promise<{
|
|
54
62
|
accountValue: string;
|
|
@@ -56,21 +64,50 @@ export declare class HyperliquidPrime {
|
|
|
56
64
|
totalNtlPos: string;
|
|
57
65
|
totalRawUsd: string;
|
|
58
66
|
}>;
|
|
67
|
+
/** Approve an agent wallet to trade on behalf of this account. Master signs. */
|
|
68
|
+
approveAgent(agentAddress: `0x${string}`, agentName?: string): Promise<void>;
|
|
69
|
+
/** List approved agent wallets for the current user. */
|
|
70
|
+
listAgents(): Promise<{
|
|
71
|
+
address: `0x${string}`;
|
|
72
|
+
name: string;
|
|
73
|
+
validUntil: number;
|
|
74
|
+
}[]>;
|
|
75
|
+
/** List approved agent wallets for any user address (no wallet required). */
|
|
76
|
+
listAgentsFor(user: `0x${string}`): Promise<{
|
|
77
|
+
address: `0x${string}`;
|
|
78
|
+
name: string;
|
|
79
|
+
validUntil: number;
|
|
80
|
+
}[]>;
|
|
81
|
+
/** Set abstraction mode for the user. Master signs. */
|
|
82
|
+
setAbstraction(abstraction: "dexAbstraction" | "unifiedAccount" | "portfolioMargin" | "disabled"): Promise<void>;
|
|
83
|
+
/** Set abstraction mode as an agent. Agent signs. */
|
|
84
|
+
agentSetAbstraction(abstraction: "i" | "u" | "p"): Promise<void>;
|
|
85
|
+
/** Get referral data for any user (public read, no wallet needed). */
|
|
86
|
+
getReferral(user: string): Promise<ReferralResponse>;
|
|
87
|
+
/**
|
|
88
|
+
* Reset the cached builder-fee approval state so the next trade re-checks on-chain.
|
|
89
|
+
* Call after the master wallet approves the builder fee (e.g. after setup flow completes).
|
|
90
|
+
*/
|
|
91
|
+
resetBuilderApprovalCheck(): void;
|
|
59
92
|
/** Direct access to the provider for raw HL API calls. */
|
|
60
93
|
get api(): HLProvider;
|
|
61
94
|
/** Direct access to the market registry. */
|
|
62
95
|
get markets(): MarketRegistry;
|
|
63
96
|
disconnect(): Promise<void>;
|
|
64
97
|
private resolveUserCollateral;
|
|
98
|
+
private normalizeTradeOptions;
|
|
99
|
+
private buildAllocationsFromSplitPlan;
|
|
65
100
|
}
|
|
66
101
|
export type { HyperliquidPrimeConfig, BuilderConfig } from "./config.js";
|
|
67
102
|
export type { HLProvider } from "./provider/provider.js";
|
|
68
103
|
export type { PerpMarket, HIP3Market, MarketGroup, AggregatedBook, FundingComparison } from "./market/types.js";
|
|
69
104
|
export type { Quote, ExecutionPlan, MarketScore, SimulationResult, SplitQuote, SplitExecutionPlan, SplitAllocation, SplitResult } from "./router/types.js";
|
|
70
105
|
export { isSplitQuote } from "./router/types.js";
|
|
71
|
-
export type { ExecutionReceipt, SplitExecutionReceipt } from "./execution/types.js";
|
|
106
|
+
export type { ExecutionReceipt, SplitExecutionReceipt, LegReceipt } from "./execution/types.js";
|
|
72
107
|
export type { CollateralPlan, CollateralRequirement, CollateralReceipt } from "./collateral/types.js";
|
|
108
|
+
export type { ReferralResponse, ReferralUserState } from "./provider/types.js";
|
|
73
109
|
export type { LogicalPosition, ManagedPositionState, RiskProfile } from "./position/types.js";
|
|
110
|
+
export type { TradeExecutionOptions } from "./router/types.js";
|
|
74
111
|
export type { Logger } from "./logging/logger.js";
|
|
75
112
|
export { MarketRegistry } from "./market/registry.js";
|
|
76
113
|
export { BookAggregator } from "./market/aggregator.js";
|
|
@@ -84,4 +121,6 @@ export { PositionManager } from "./position/manager.js";
|
|
|
84
121
|
export { NktkasProvider } from "./provider/nktkas.js";
|
|
85
122
|
export { createLogger } from "./logging/logger.js";
|
|
86
123
|
export { HyperliquidPrimeError, NoMarketsError, InsufficientLiquidityError, MarketDataUnavailableError, NoWalletError, NotConnectedError, ExecutionError, } from "./utils/errors.js";
|
|
124
|
+
export type { WithWarnings } from "./types/result.js";
|
|
125
|
+
export { ok, withWarnings } from "./types/result.js";
|
|
87
126
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAiB,MAAM,aAAa,CAAC;AAEzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,8 @@ import { CollateralManager } from "./collateral/manager.js";
|
|
|
9
9
|
import { PositionManager } from "./position/manager.js";
|
|
10
10
|
import { createLogger } from "./logging/logger.js";
|
|
11
11
|
import { HyperliquidPrimeError, NoWalletError, NotConnectedError } from "./utils/errors.js";
|
|
12
|
+
import { assetVariants } from "./utils/asset.js";
|
|
13
|
+
import { quantizeOrderSize, quantizeOrderPrice } from "./utils/order-precision.js";
|
|
12
14
|
export class HyperliquidPrime {
|
|
13
15
|
provider;
|
|
14
16
|
_registry;
|
|
@@ -22,24 +24,31 @@ export class HyperliquidPrime {
|
|
|
22
24
|
walletAddress;
|
|
23
25
|
connected = false;
|
|
24
26
|
constructor(config) {
|
|
27
|
+
if (config.privateKey && config.wallet) {
|
|
28
|
+
throw new HyperliquidPrimeError("Provide either privateKey or wallet, not both.");
|
|
29
|
+
}
|
|
25
30
|
this._config = config;
|
|
26
31
|
this.logger = createLogger({
|
|
27
32
|
level: config.logLevel ?? "info",
|
|
28
33
|
pretty: config.prettyLogs ?? false,
|
|
29
34
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
testnet: config.testnet ?? false,
|
|
33
|
-
});
|
|
34
|
-
// Derive wallet address if private key is provided
|
|
35
|
+
// Derive wallet address if private key is provided. Abstract wallets must pass
|
|
36
|
+
// walletAddress or signerAddress explicitly because construction is synchronous.
|
|
35
37
|
if (config.privateKey) {
|
|
36
38
|
this.walletAddress =
|
|
37
39
|
config.walletAddress ??
|
|
38
40
|
privateKeyToAccount(config.privateKey).address;
|
|
39
41
|
}
|
|
40
42
|
else {
|
|
41
|
-
this.walletAddress = config.walletAddress;
|
|
43
|
+
this.walletAddress = config.walletAddress ?? config.signerAddress;
|
|
42
44
|
}
|
|
45
|
+
this.provider = new NktkasProvider({
|
|
46
|
+
privateKey: config.privateKey,
|
|
47
|
+
wallet: config.wallet,
|
|
48
|
+
walletAddress: this.walletAddress,
|
|
49
|
+
signerAddress: config.signerAddress,
|
|
50
|
+
testnet: config.testnet ?? false,
|
|
51
|
+
});
|
|
43
52
|
this._registry = new MarketRegistry(this.provider, this.logger);
|
|
44
53
|
this.aggregator = new BookAggregator(this.provider, this._registry, this.logger);
|
|
45
54
|
this.collateralManager = new CollateralManager(this.provider, this.logger);
|
|
@@ -111,10 +120,11 @@ export class HyperliquidPrime {
|
|
|
111
120
|
return comparison;
|
|
112
121
|
}
|
|
113
122
|
/** Generate a routing quote. Does NOT execute. */
|
|
114
|
-
async quote(baseAsset, side, size) {
|
|
123
|
+
async quote(baseAsset, side, size, options) {
|
|
115
124
|
this.ensureConnected();
|
|
125
|
+
const tradeOptions = this.normalizeTradeOptions(options);
|
|
116
126
|
const { collateral, warnings } = await this.resolveUserCollateral();
|
|
117
|
-
const quote = await this.router.quote(baseAsset, side, size, collateral, this._config.defaultSlippage ?? 0.01);
|
|
127
|
+
const quote = await this.router.quote(baseAsset, side, size, collateral, this._config.defaultSlippage ?? 0.01, tradeOptions);
|
|
118
128
|
if (warnings.length > 0) {
|
|
119
129
|
quote.warnings = [...(quote.warnings ?? []), ...warnings];
|
|
120
130
|
}
|
|
@@ -125,22 +135,25 @@ export class HyperliquidPrime {
|
|
|
125
135
|
async execute(plan) {
|
|
126
136
|
this.ensureConnected();
|
|
127
137
|
const user = this.ensureWallet();
|
|
128
|
-
|
|
138
|
+
const receipt = await this.executor.execute(plan, user);
|
|
139
|
+
this.provider.invalidateBalanceCaches?.();
|
|
140
|
+
return receipt;
|
|
129
141
|
}
|
|
130
142
|
/** Convenience: quote + execute in one call. */
|
|
131
|
-
async long(baseAsset, size) {
|
|
132
|
-
const q = await this.quote(baseAsset, "buy", size);
|
|
143
|
+
async long(baseAsset, size, options) {
|
|
144
|
+
const q = await this.quote(baseAsset, "buy", size, options);
|
|
133
145
|
return this.execute(q.plan);
|
|
134
146
|
}
|
|
135
|
-
async short(baseAsset, size) {
|
|
136
|
-
const q = await this.quote(baseAsset, "sell", size);
|
|
147
|
+
async short(baseAsset, size, options) {
|
|
148
|
+
const q = await this.quote(baseAsset, "sell", size, options);
|
|
137
149
|
return this.execute(q.plan);
|
|
138
150
|
}
|
|
139
151
|
/** Generate a split quote across multiple HIP-3 markets. Does NOT execute. */
|
|
140
|
-
async quoteSplit(baseAsset, side, size) {
|
|
152
|
+
async quoteSplit(baseAsset, side, size, options) {
|
|
141
153
|
this.ensureConnected();
|
|
154
|
+
const tradeOptions = this.normalizeTradeOptions(options);
|
|
142
155
|
const { collateral, warnings } = await this.resolveUserCollateral();
|
|
143
|
-
const quote = await this.router.quoteSplit(baseAsset, side, size, collateral, this._config.defaultSlippage ?? 0.01);
|
|
156
|
+
const quote = await this.router.quoteSplit(baseAsset, side, size, collateral, this._config.defaultSlippage ?? 0.01, tradeOptions);
|
|
144
157
|
if (warnings.length > 0) {
|
|
145
158
|
quote.warnings = [...(quote.warnings ?? []), ...warnings];
|
|
146
159
|
}
|
|
@@ -150,39 +163,143 @@ export class HyperliquidPrime {
|
|
|
150
163
|
async executeSplit(plan) {
|
|
151
164
|
this.ensureConnected();
|
|
152
165
|
const user = this.ensureWallet();
|
|
153
|
-
|
|
166
|
+
const receipt = await this.executor.executeSplit(plan, this.collateralManager, user);
|
|
167
|
+
this.provider.invalidateBalanceCaches?.();
|
|
168
|
+
return receipt;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Estimate collateral swaps required for a split execution plan.
|
|
172
|
+
* Read-only: no transfers, swaps, or abstraction writes are performed.
|
|
173
|
+
*/
|
|
174
|
+
async estimateSplitCollateral(plan, userAddress) {
|
|
175
|
+
this.ensureConnected();
|
|
176
|
+
const user = userAddress ?? this.walletAddress;
|
|
177
|
+
if (!user)
|
|
178
|
+
throw new NoWalletError();
|
|
179
|
+
const allocations = this.buildAllocationsFromSplitPlan(plan);
|
|
180
|
+
return this.collateralManager.estimateRequirements(allocations, user);
|
|
154
181
|
}
|
|
155
182
|
/** Convenience: split quote + execute in one call. */
|
|
156
|
-
async longSplit(baseAsset, size) {
|
|
157
|
-
const q = await this.quoteSplit(baseAsset, "buy", size);
|
|
183
|
+
async longSplit(baseAsset, size, options) {
|
|
184
|
+
const q = await this.quoteSplit(baseAsset, "buy", size, options);
|
|
158
185
|
return this.executeSplit(q.splitPlan);
|
|
159
186
|
}
|
|
160
|
-
async shortSplit(baseAsset, size) {
|
|
161
|
-
const q = await this.quoteSplit(baseAsset, "sell", size);
|
|
187
|
+
async shortSplit(baseAsset, size, options) {
|
|
188
|
+
const q = await this.quoteSplit(baseAsset, "sell", size, options);
|
|
162
189
|
return this.executeSplit(q.splitPlan);
|
|
163
190
|
}
|
|
164
191
|
async close(baseAsset) {
|
|
165
192
|
this.ensureConnected();
|
|
166
193
|
const user = this.ensureWallet();
|
|
167
|
-
|
|
168
|
-
|
|
194
|
+
// Invalidate cached clearinghouse state so we fetch fresh positions.
|
|
195
|
+
// Without this, the 30-second cache can serve stale data that doesn't
|
|
196
|
+
// include positions opened externally (e.g. on the Hyperliquid UI).
|
|
197
|
+
this.provider.invalidateBalanceCaches?.();
|
|
198
|
+
const normalizedRequest = String(baseAsset ?? "").trim().toUpperCase();
|
|
199
|
+
const requestedCoin = normalizedRequest.includes(":") ? normalizedRequest : null;
|
|
200
|
+
const requestedVariants = requestedCoin ? new Set() : assetVariants(baseAsset);
|
|
201
|
+
const { data: allPositions, warnings } = await this.positions.getPositions(user);
|
|
202
|
+
if (allPositions.length === 0) {
|
|
203
|
+
this.logger.warn({ user, baseAsset, warnings }, "close: getPositions returned empty — no positions found for user");
|
|
204
|
+
}
|
|
205
|
+
const toClose = allPositions.filter((p) => {
|
|
206
|
+
if (p.size <= 0)
|
|
207
|
+
return false;
|
|
208
|
+
if (requestedCoin) {
|
|
209
|
+
return p.coin.toUpperCase() === requestedCoin;
|
|
210
|
+
}
|
|
211
|
+
if (requestedVariants.size === 0)
|
|
212
|
+
return false;
|
|
213
|
+
const positionVariants = new Set([
|
|
214
|
+
...assetVariants(p.baseAsset),
|
|
215
|
+
...assetVariants(p.coin),
|
|
216
|
+
]);
|
|
217
|
+
for (const variant of positionVariants) {
|
|
218
|
+
if (requestedVariants.has(variant))
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
return false;
|
|
222
|
+
});
|
|
223
|
+
if (allPositions.length > 0 && toClose.length === 0) {
|
|
224
|
+
this.logger.warn({
|
|
225
|
+
baseAsset,
|
|
226
|
+
requestedCoin,
|
|
227
|
+
requestedVariants: [...requestedVariants],
|
|
228
|
+
positions: allPositions.map((p) => ({
|
|
229
|
+
coin: p.coin,
|
|
230
|
+
baseAsset: p.baseAsset,
|
|
231
|
+
size: p.size,
|
|
232
|
+
side: p.side,
|
|
233
|
+
})),
|
|
234
|
+
}, "close: positions exist but none match the requested asset variants");
|
|
235
|
+
}
|
|
236
|
+
const slippage = this._config.defaultSlippage ?? 0.01;
|
|
169
237
|
const receipts = [];
|
|
170
238
|
for (const pos of toClose) {
|
|
171
239
|
const side = pos.side === "long" ? "sell" : "buy";
|
|
172
|
-
|
|
173
|
-
|
|
240
|
+
if (!pos.market) {
|
|
241
|
+
this.logger.error({ coin: pos.coin, baseAsset: pos.baseAsset }, "Cannot close position: no market data available in registry");
|
|
242
|
+
receipts.push({
|
|
243
|
+
success: false,
|
|
244
|
+
market: { coin: pos.coin, baseAsset: pos.baseAsset, assetIndex: -1 },
|
|
245
|
+
side,
|
|
246
|
+
requestedSize: String(pos.size),
|
|
247
|
+
filledSize: "0",
|
|
248
|
+
avgPrice: "0",
|
|
249
|
+
orderId: undefined,
|
|
250
|
+
timestamp: Date.now(),
|
|
251
|
+
error: `No market data found for ${pos.coin}`,
|
|
252
|
+
});
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
// Build execution plan directly from position data, bypassing the
|
|
256
|
+
// router's market selection. This ensures we target the exact market
|
|
257
|
+
// where the position exists rather than whatever the router picks as
|
|
258
|
+
// "best" (which may be a different deployer market entirely).
|
|
259
|
+
const slippageMultiplier = side === "buy" ? (1 + slippage) : (1 - slippage);
|
|
260
|
+
const limitPrice = pos.markPrice * slippageMultiplier;
|
|
261
|
+
const orderSize = quantizeOrderSize(pos.size, pos.market);
|
|
262
|
+
const orderPrice = quantizeOrderPrice(limitPrice, side, pos.market);
|
|
263
|
+
if (parseFloat(orderSize) <= 0 || parseFloat(orderPrice) <= 0) {
|
|
264
|
+
this.logger.error({ coin: pos.coin, size: pos.size, markPrice: pos.markPrice, orderSize, orderPrice }, "Cannot close position: quantized size or price is zero");
|
|
265
|
+
receipts.push({
|
|
266
|
+
success: false,
|
|
267
|
+
market: pos.market,
|
|
268
|
+
side,
|
|
269
|
+
requestedSize: String(pos.size),
|
|
270
|
+
filledSize: "0",
|
|
271
|
+
avgPrice: "0",
|
|
272
|
+
orderId: undefined,
|
|
273
|
+
timestamp: Date.now(),
|
|
274
|
+
error: `Quantized order size (${orderSize}) or price (${orderPrice}) is zero for ${pos.coin}`,
|
|
275
|
+
});
|
|
276
|
+
continue;
|
|
277
|
+
}
|
|
278
|
+
// Match Hyperliquid UI close behavior: reduceOnly + FrontendMarket TIF.
|
|
279
|
+
// Without reduceOnly the exchange treats the order as a new position open,
|
|
280
|
+
// which fails with "Vault not registered" on HIP-3 deployer markets.
|
|
281
|
+
const plan = {
|
|
282
|
+
market: pos.market,
|
|
283
|
+
side,
|
|
284
|
+
size: orderSize,
|
|
285
|
+
price: orderPrice,
|
|
286
|
+
orderType: { limit: { tif: "FrontendMarket" } },
|
|
287
|
+
slippage,
|
|
288
|
+
reduceOnly: true,
|
|
289
|
+
};
|
|
290
|
+
const receipt = await this.execute(plan);
|
|
174
291
|
receipts.push(receipt);
|
|
175
292
|
}
|
|
176
293
|
return receipts;
|
|
177
294
|
}
|
|
178
295
|
// === Positions ===
|
|
179
|
-
/** Get all positions. */
|
|
296
|
+
/** Get all positions with warnings about any failed deployer fetches. */
|
|
180
297
|
async getPositions() {
|
|
181
298
|
this.ensureConnected();
|
|
182
299
|
const user = this.ensureWallet();
|
|
183
300
|
return this.positions.getPositions(user);
|
|
184
301
|
}
|
|
185
|
-
/** Get positions grouped by base asset (unified view). */
|
|
302
|
+
/** Get positions grouped by base asset (unified view) with warnings. */
|
|
186
303
|
async getGroupedPositions() {
|
|
187
304
|
this.ensureConnected();
|
|
188
305
|
const user = this.ensureWallet();
|
|
@@ -196,6 +313,53 @@ export class HyperliquidPrime {
|
|
|
196
313
|
const state = await this.provider.clearinghouseState(user);
|
|
197
314
|
return state.marginSummary;
|
|
198
315
|
}
|
|
316
|
+
// === Agent Wallet Management ===
|
|
317
|
+
/** Approve an agent wallet to trade on behalf of this account. Master signs. */
|
|
318
|
+
async approveAgent(agentAddress, agentName) {
|
|
319
|
+
this.ensureConnected();
|
|
320
|
+
return this.provider.approveAgent({
|
|
321
|
+
agentAddress,
|
|
322
|
+
agentName: agentName ?? null,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
/** List approved agent wallets for the current user. */
|
|
326
|
+
async listAgents() {
|
|
327
|
+
this.ensureConnected();
|
|
328
|
+
const user = this.ensureWallet();
|
|
329
|
+
return this.provider.extraAgents(user);
|
|
330
|
+
}
|
|
331
|
+
/** List approved agent wallets for any user address (no wallet required). */
|
|
332
|
+
async listAgentsFor(user) {
|
|
333
|
+
this.ensureConnected();
|
|
334
|
+
return this.provider.extraAgents(user);
|
|
335
|
+
}
|
|
336
|
+
/** Set abstraction mode for the user. Master signs. */
|
|
337
|
+
async setAbstraction(abstraction) {
|
|
338
|
+
this.ensureConnected();
|
|
339
|
+
const user = this.ensureWallet();
|
|
340
|
+
return this.provider.userSetAbstraction({
|
|
341
|
+
user: user,
|
|
342
|
+
abstraction,
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
/** Set abstraction mode as an agent. Agent signs. */
|
|
346
|
+
async agentSetAbstraction(abstraction) {
|
|
347
|
+
this.ensureConnected();
|
|
348
|
+
return this.provider.agentSetAbstraction({ abstraction });
|
|
349
|
+
}
|
|
350
|
+
// === Referral ===
|
|
351
|
+
/** Get referral data for any user (public read, no wallet needed). */
|
|
352
|
+
async getReferral(user) {
|
|
353
|
+
this.ensureConnected();
|
|
354
|
+
return this.provider.referral(user);
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Reset the cached builder-fee approval state so the next trade re-checks on-chain.
|
|
358
|
+
* Call after the master wallet approves the builder fee (e.g. after setup flow completes).
|
|
359
|
+
*/
|
|
360
|
+
resetBuilderApprovalCheck() {
|
|
361
|
+
this.executor.resetBuilderApprovalCheck();
|
|
362
|
+
}
|
|
199
363
|
// === Escape Hatches ===
|
|
200
364
|
/** Direct access to the provider for raw HL API calls. */
|
|
201
365
|
get api() {
|
|
@@ -232,6 +396,42 @@ export class HyperliquidPrime {
|
|
|
232
396
|
}
|
|
233
397
|
return { collateral, warnings };
|
|
234
398
|
}
|
|
399
|
+
normalizeTradeOptions(options) {
|
|
400
|
+
if (!options)
|
|
401
|
+
return undefined;
|
|
402
|
+
if (options.isCross !== undefined && options.leverage === undefined) {
|
|
403
|
+
throw new HyperliquidPrimeError("isCross requires leverage. Provide leverage when specifying margin mode.");
|
|
404
|
+
}
|
|
405
|
+
if (options.leverage === undefined) {
|
|
406
|
+
return undefined;
|
|
407
|
+
}
|
|
408
|
+
if (!Number.isFinite(options.leverage) || options.leverage <= 0) {
|
|
409
|
+
throw new HyperliquidPrimeError(`Invalid leverage "${options.leverage}". Expected a positive number.`);
|
|
410
|
+
}
|
|
411
|
+
return {
|
|
412
|
+
leverage: options.leverage,
|
|
413
|
+
isCross: options.isCross ?? true,
|
|
414
|
+
};
|
|
415
|
+
}
|
|
416
|
+
buildAllocationsFromSplitPlan(plan) {
|
|
417
|
+
const totalSize = plan.legs.reduce((sum, leg) => sum + parseFloat(leg.size), 0);
|
|
418
|
+
return plan.legs.map((leg) => {
|
|
419
|
+
const size = parseFloat(leg.size);
|
|
420
|
+
const estimatedAvgPrice = parseFloat(leg.price);
|
|
421
|
+
const notional = size * estimatedAvgPrice;
|
|
422
|
+
const leverage = Number.isFinite(leg.leverage) && (leg.leverage ?? 0) > 0
|
|
423
|
+
? leg.leverage
|
|
424
|
+
: 1;
|
|
425
|
+
const estimatedCost = notional / leverage;
|
|
426
|
+
return {
|
|
427
|
+
market: leg.market,
|
|
428
|
+
size,
|
|
429
|
+
estimatedCost,
|
|
430
|
+
estimatedAvgPrice,
|
|
431
|
+
proportion: totalSize > 0 ? size / totalSize : 0,
|
|
432
|
+
};
|
|
433
|
+
});
|
|
434
|
+
}
|
|
235
435
|
}
|
|
236
436
|
export { isSplitQuote } from "./router/types.js";
|
|
237
437
|
export { MarketRegistry } from "./market/registry.js";
|
|
@@ -246,4 +446,5 @@ export { PositionManager } from "./position/manager.js";
|
|
|
246
446
|
export { NktkasProvider } from "./provider/nktkas.js";
|
|
247
447
|
export { createLogger } from "./logging/logger.js";
|
|
248
448
|
export { HyperliquidPrimeError, NoMarketsError, InsufficientLiquidityError, MarketDataUnavailableError, NoWalletError, NotConnectedError, ExecutionError, } from "./utils/errors.js";
|
|
449
|
+
export { ok, withWarnings } from "./types/result.js";
|
|
249
450
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO5F,MAAM,OAAO,gBAAgB;IACnB,QAAQ,CAAa;IACrB,SAAS,CAAiB;IAC1B,MAAM,CAAS;IACf,QAAQ,CAAW;IACnB,iBAAiB,CAAoB;IACrC,SAAS,CAAkB;IAC3B,UAAU,CAAiB;IAC3B,MAAM,CAAS;IACf,OAAO,CAAyB;IAChC,aAAa,CAAqB;IAClC,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,MAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YACzB,KAAK,EAAE,MAAM,CAAC,QAAQ,IAAI,MAAM;YAChC,MAAM,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;SACnC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;SACjC,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa;gBAChB,MAAM,CAAC,aAAa;oBACpB,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAClC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,CAChB,CAAC;QAEF,gFAAgF;QAChF,MAAM,eAAe,GACnB,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe;YAC5C,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI;gBAChC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAErB,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,qBAAqB,CAC7B,eAAe,eAAe,CAAC,MAAM,8BAA8B,CACpE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAClC,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;IAClD,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,iBAAiB,EAAE,CAAC;IACrD,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,aAAa,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,yCAAyC;IAEzC,0CAA0C;IAC1C,UAAU,CAAC,SAAiB;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,6DAA6D;IAC7D,oBAAoB;QAClB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,CAAC;IACpD,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,oBAAoB,CACxB,SAAiB;QAEjB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,UAAU,GAAsB;YACpC,SAAS;YACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;gBACzC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,IAAI,GAAG,CAAC;gBAC/C,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,IAAI,GAAG,CAAC;aAC1C,CAAC,CAAC;YACH,WAAW,EAAE,EAAE;YACf,YAAY,EAAE,EAAE;SACjB,CAAC;QAEF,sDAAsD;QACtD,8CAA8C;QAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CACxC,CAAC;QACF,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAC/C,UAAU,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QAEhE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,IAAoB,EACpB,IAAY;QAEZ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CACnC,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CACrC,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,oCAAoC;IAEpC,4CAA4C;IAC5C,KAAK,CAAC,OAAO,CAAC,IAAmB;QAC/B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,IAAI,CACR,SAAiB,EACjB,IAAY;QAEZ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CACT,SAAiB,EACjB,IAAY;QAEZ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,8EAA8E;IAC9E,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,IAAoB,EACpB,IAAY;QAEZ,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CACxC,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,UAAU,EACV,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,IAAI,CACrC,CAAC;QACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,YAAY,CAAC,IAAwB;QACzC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAC/B,IAAI,EACJ,IAAI,CAAC,iBAAiB,EACtB,IAAI,CACL,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,SAAS,CACb,SAAiB,EACjB,IAAY;QAEZ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,IAAY;QAEZ,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAC3E,CAAC;QAEF,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YAClD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,oBAAoB;IAEpB,yBAAyB;IACzB,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,mBAAmB;QACvB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB;IAElB,+CAA+C;IAC/C,KAAK,CAAC,UAAU;QAMd,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC,aAAa,CAAC;IAC7B,CAAC;IAED,yBAAyB;IAEzB,0DAA0D;IAC1D,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,oBAAoB;IAEpB,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,qBAAqB;QAIjC,IAAI,UAAU,GAAa,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAC1D,IAAI,CAAC,aAAa,CACnB,CAAC;YACF,UAAU,GAAG,SAAS,CAAC,QAAQ;iBAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CACX,0EAA0E,CAC3E,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,EAAE,KAAK,EAAE,EACT,0EAA0E,CAC3E,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF;AAOD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { PerpMarket, MarketGroup } from "./types.js";
|
|
|
4
4
|
export declare class MarketRegistry {
|
|
5
5
|
private provider;
|
|
6
6
|
private groups;
|
|
7
|
+
private coinIndex;
|
|
7
8
|
private spotTokens;
|
|
8
9
|
private logger;
|
|
9
10
|
constructor(provider: HLProvider, logger: Logger);
|
|
@@ -12,6 +13,8 @@ export declare class MarketRegistry {
|
|
|
12
13
|
getGroup(baseAsset: string): MarketGroup | undefined;
|
|
13
14
|
getAllGroups(): MarketGroup[];
|
|
14
15
|
getGroupsWithAlternatives(): MarketGroup[];
|
|
16
|
+
/** O(1) lookup of a market by its full coin name (e.g. "xyz:TSLA"). */
|
|
17
|
+
findByCoin(coin: string): PerpMarket | undefined;
|
|
15
18
|
private parseAsset;
|
|
16
19
|
private extractBaseAsset;
|
|
17
20
|
private resolveCollateralToken;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/market/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/market/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ;IANlB,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,MAAM,CAAS;gBAGb,QAAQ,EAAE,UAAU,EAC5B,MAAM,EAAE,MAAM;IAKV,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyH/B,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE;IAI3C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIpD,YAAY,IAAI,WAAW,EAAE;IAI7B,yBAAyB,IAAI,WAAW,EAAE;IAI1C,uEAAuE;IACvE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIhD,OAAO,CAAC,UAAU;IA+BlB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,sBAAsB;CAQ/B"}
|