@continuumdao/ctm-mpc-defi 0.2.43 → 0.2.45
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/agent/catalog.cjs +276 -11
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +780 -9
- package/dist/agent/catalog.js +268 -12
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/aave-v4/SKILL.md +9 -1
- package/dist/agent/skills/euler-v2/SKILL.md +9 -0
- package/dist/agent/skills/hyperliquid/SKILL.md +32 -2
- package/dist/agent/skills/morpho/SKILL.md +8 -2
- package/dist/agent/skills/yield-compare/SKILL.md +4 -1
- package/dist/merklDistributor-CdqtZC9N.d.ts +65 -0
- package/dist/multisign-Dr0j9fHm.d.ts +489 -0
- package/dist/protocols/evm/aave-v4/index.cjs +207 -2
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +12 -467
- package/dist/protocols/evm/aave-v4/index.js +192 -3
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +209 -1
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +9 -1
- package/dist/protocols/evm/euler-v2/index.js +208 -2
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.cjs +320 -0
- package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.d.ts +153 -1
- package/dist/protocols/evm/hyperliquid/index.js +303 -1
- package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +169 -1
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +9 -1
- package/dist/protocols/evm/morpho/index.js +155 -2
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -316,7 +316,66 @@ declare function hyperliquidFetchStakingSummary(args: {
|
|
|
316
316
|
delegated: string;
|
|
317
317
|
undelegated: string;
|
|
318
318
|
}>;
|
|
319
|
+
type HyperliquidSpotToken = {
|
|
320
|
+
name: string;
|
|
321
|
+
tokenIndex: number;
|
|
322
|
+
szDecimals: number;
|
|
323
|
+
};
|
|
324
|
+
declare function hyperliquidFetchSpotTokens(args: {
|
|
325
|
+
chainId: number;
|
|
326
|
+
}): Promise<{
|
|
327
|
+
tokens: HyperliquidSpotToken[];
|
|
328
|
+
}>;
|
|
329
|
+
type HyperliquidBorrowLendReserveState = {
|
|
330
|
+
borrowYearlyRate: string;
|
|
331
|
+
supplyYearlyRate: string;
|
|
332
|
+
balance: string;
|
|
333
|
+
utilization: string;
|
|
334
|
+
oraclePx: string;
|
|
335
|
+
ltv: string;
|
|
336
|
+
totalSupplied: string;
|
|
337
|
+
totalBorrowed: string;
|
|
338
|
+
};
|
|
339
|
+
type HyperliquidBorrowLendReserveTuple = [number, HyperliquidBorrowLendReserveState];
|
|
340
|
+
type HyperliquidBorrowLendTokenBalance = {
|
|
341
|
+
basis: string;
|
|
342
|
+
value: string;
|
|
343
|
+
};
|
|
344
|
+
type HyperliquidBorrowLendUserTokenState = {
|
|
345
|
+
borrow: HyperliquidBorrowLendTokenBalance;
|
|
346
|
+
supply: HyperliquidBorrowLendTokenBalance;
|
|
347
|
+
};
|
|
348
|
+
type HyperliquidBorrowLendUserState = {
|
|
349
|
+
tokenToState: Array<[number, HyperliquidBorrowLendUserTokenState]>;
|
|
350
|
+
health: string;
|
|
351
|
+
healthFactor: string | null;
|
|
352
|
+
};
|
|
353
|
+
type HyperliquidUserAbstraction = 'unifiedAccount' | 'portfolioMargin' | 'disabled' | 'default' | 'dexAbstraction';
|
|
354
|
+
declare function hyperliquidFetchAllBorrowLendReserveStates(args: {
|
|
355
|
+
chainId: number;
|
|
356
|
+
}): Promise<{
|
|
357
|
+
reserves: HyperliquidBorrowLendReserveTuple[];
|
|
358
|
+
}>;
|
|
359
|
+
declare function hyperliquidFetchBorrowLendReserveState(args: {
|
|
360
|
+
chainId: number;
|
|
361
|
+
token: number;
|
|
362
|
+
}): Promise<{
|
|
363
|
+
reserve: HyperliquidBorrowLendReserveState;
|
|
364
|
+
}>;
|
|
365
|
+
declare function hyperliquidFetchBorrowLendUserState(args: {
|
|
366
|
+
chainId: number;
|
|
367
|
+
user: string;
|
|
368
|
+
}): Promise<{
|
|
369
|
+
state: HyperliquidBorrowLendUserState;
|
|
370
|
+
}>;
|
|
371
|
+
declare function hyperliquidFetchUserAbstraction(args: {
|
|
372
|
+
chainId: number;
|
|
373
|
+
user: string;
|
|
374
|
+
}): Promise<{
|
|
375
|
+
abstraction: HyperliquidUserAbstraction | string;
|
|
376
|
+
}>;
|
|
319
377
|
|
|
378
|
+
declare function hyperliquidCanonicalLendCoin(coin: string): string;
|
|
320
379
|
declare function hyperliquidResolvePerpAsset(args: {
|
|
321
380
|
chainId: number;
|
|
322
381
|
coin: string;
|
|
@@ -344,6 +403,15 @@ declare function hyperliquidResolveAsset(args: {
|
|
|
344
403
|
maxLeverage?: number;
|
|
345
404
|
}>;
|
|
346
405
|
declare function hyperliquidIsSpotAssetId(asset: number): boolean;
|
|
406
|
+
/** Resolve a Core lend/spot token id (not perp/spot asset id). Accepts USDC, USDT, BTC, UBTC, or a token index. */
|
|
407
|
+
declare function hyperliquidResolveSpotToken(args: {
|
|
408
|
+
chainId: number;
|
|
409
|
+
coin: string;
|
|
410
|
+
}): Promise<{
|
|
411
|
+
tokenIndex: number;
|
|
412
|
+
coin: string;
|
|
413
|
+
szDecimals: number;
|
|
414
|
+
}>;
|
|
347
415
|
|
|
348
416
|
type HyperliquidPerpAnnotation = {
|
|
349
417
|
category?: string;
|
|
@@ -590,6 +658,69 @@ declare function hyperliquidFetchOhlcvSummary(args: {
|
|
|
590
658
|
dex: string | null;
|
|
591
659
|
}>;
|
|
592
660
|
|
|
661
|
+
type HyperliquidLendMarketRole = 'collateral' | 'quote';
|
|
662
|
+
type HyperliquidLendMarketRow = {
|
|
663
|
+
tokenIndex: number;
|
|
664
|
+
coin: string;
|
|
665
|
+
role: HyperliquidLendMarketRole;
|
|
666
|
+
szDecimals: number | null;
|
|
667
|
+
supplyYearlyRate: string;
|
|
668
|
+
borrowYearlyRate: string;
|
|
669
|
+
supplyAprPercent: number | null;
|
|
670
|
+
borrowAprPercent: number | null;
|
|
671
|
+
utilization: string;
|
|
672
|
+
oraclePx: string;
|
|
673
|
+
ltv: string;
|
|
674
|
+
totalSupplied: string;
|
|
675
|
+
totalBorrowed: string;
|
|
676
|
+
balance: string;
|
|
677
|
+
};
|
|
678
|
+
type HyperliquidLendPositionRow = {
|
|
679
|
+
tokenIndex: number;
|
|
680
|
+
coin: string;
|
|
681
|
+
role: HyperliquidLendMarketRole | null;
|
|
682
|
+
suppliedBasis: string;
|
|
683
|
+
suppliedValue: string;
|
|
684
|
+
borrowedBasis: string;
|
|
685
|
+
borrowedValue: string;
|
|
686
|
+
};
|
|
687
|
+
type HyperliquidLendPositionsSummary = {
|
|
688
|
+
positions: HyperliquidLendPositionRow[];
|
|
689
|
+
health: string;
|
|
690
|
+
healthFactor: string | null;
|
|
691
|
+
userAbstraction: string;
|
|
692
|
+
manualBorrowEnabled: boolean;
|
|
693
|
+
notes: string;
|
|
694
|
+
};
|
|
695
|
+
declare function hyperliquidLendRoleFromLtv(ltv: string | undefined): HyperliquidLendMarketRole;
|
|
696
|
+
declare function parseHyperliquidBorrowLendReserveTuples(raw: unknown): HyperliquidBorrowLendReserveTuple[];
|
|
697
|
+
declare function parseHyperliquidBorrowLendUserState(raw: unknown): HyperliquidBorrowLendUserState;
|
|
698
|
+
declare function mapHyperliquidLendMarketRows(args: {
|
|
699
|
+
reserves: HyperliquidBorrowLendReserveTuple[];
|
|
700
|
+
tokens: HyperliquidSpotToken[];
|
|
701
|
+
}): HyperliquidLendMarketRow[];
|
|
702
|
+
declare function hyperliquidManualBorrowEnabled(abstraction: string): boolean;
|
|
703
|
+
/** MCP: all Core lend reserves with current supply/borrow APR. */
|
|
704
|
+
declare function hyperliquidFetchLendMarketsSummary(args: {
|
|
705
|
+
chainId: number;
|
|
706
|
+
}): Promise<{
|
|
707
|
+
markets: HyperliquidLendMarketRow[];
|
|
708
|
+
notes: string;
|
|
709
|
+
}>;
|
|
710
|
+
/** MCP: user Core lend positions, health, and whether manual borrow is enabled. */
|
|
711
|
+
declare function hyperliquidFetchLendPositionsSummary(args: {
|
|
712
|
+
chainId: number;
|
|
713
|
+
executorAddress: string;
|
|
714
|
+
}): Promise<HyperliquidLendPositionsSummary>;
|
|
715
|
+
declare function hyperliquidResolveLendTokenForChain(args: {
|
|
716
|
+
chainId: number;
|
|
717
|
+
coin: string;
|
|
718
|
+
}): Promise<{
|
|
719
|
+
tokenIndex: number;
|
|
720
|
+
coin: string;
|
|
721
|
+
szDecimals: number;
|
|
722
|
+
}>;
|
|
723
|
+
|
|
593
724
|
/** Hyperliquid CoreWriter uses 1e8 fixed-point for prices and sizes. */
|
|
594
725
|
declare function hyperliquidEncodePx8(human: string | number): bigint;
|
|
595
726
|
/** USD notional amounts on HyperCore typically use 6 decimals. */
|
|
@@ -689,6 +820,19 @@ declare function buildHyperliquidUpdateLeverageAction(args: {
|
|
|
689
820
|
leverage: number;
|
|
690
821
|
isCross?: boolean;
|
|
691
822
|
}): HyperliquidUpdateLeverageAction;
|
|
823
|
+
type HyperliquidBorrowLendOperation = 'supply' | 'withdraw' | 'repay' | 'borrow';
|
|
824
|
+
type HyperliquidBorrowLendAction = {
|
|
825
|
+
type: 'borrowLend';
|
|
826
|
+
operation: HyperliquidBorrowLendOperation;
|
|
827
|
+
token: number;
|
|
828
|
+
amount: string | null;
|
|
829
|
+
};
|
|
830
|
+
declare function parseHyperliquidBorrowLendAmount(amountHuman: string | null | undefined): string | null;
|
|
831
|
+
declare function buildHyperliquidBorrowLendAction(args: {
|
|
832
|
+
operation: HyperliquidBorrowLendOperation;
|
|
833
|
+
token: number;
|
|
834
|
+
amount: string | null;
|
|
835
|
+
}): HyperliquidBorrowLendAction;
|
|
692
836
|
type HyperliquidL1Tif = 'Alo' | 'Gtc' | 'Ioc';
|
|
693
837
|
type HyperliquidTpslExecMode = 'limit_at_trigger' | 'market';
|
|
694
838
|
type HyperliquidOrderGrouping = 'na' | 'normalTpsl' | 'positionTpsl';
|
|
@@ -866,6 +1010,14 @@ type HyperliquidLimitOrderWithTpslMultisignArgs = HyperliquidExchangeMultisignCo
|
|
|
866
1010
|
};
|
|
867
1011
|
declare function buildHyperliquidLimitOrderWithTpslMultisign(args: HyperliquidLimitOrderWithTpslMultisignArgs): Promise<MultisignBuildResult>;
|
|
868
1012
|
declare function buildHyperliquidUpdateLeverageMultisign(args: HyperliquidUpdateLeverageMultisignArgs): Promise<MultisignBuildResult>;
|
|
1013
|
+
type HyperliquidBorrowLendMultisignArgs = HyperliquidExchangeMultisignCommon & {
|
|
1014
|
+
coin: string;
|
|
1015
|
+
operation: HyperliquidBorrowLendOperation;
|
|
1016
|
+
/** Human amount; omit / empty / "max" for full withdraw or repay. */
|
|
1017
|
+
amountHuman?: string | null;
|
|
1018
|
+
amountMax?: boolean;
|
|
1019
|
+
};
|
|
1020
|
+
declare function buildHyperliquidBorrowLendMultisign(args: HyperliquidBorrowLendMultisignArgs): Promise<MultisignBuildResult>;
|
|
869
1021
|
|
|
870
1022
|
/** Minimum Bridge2 deposit; smaller amounts are not credited. */
|
|
871
1023
|
declare const HYPERLIQUID_BRIDGE_MIN_DEPOSIT_USDC = 5;
|
|
@@ -1004,4 +1156,4 @@ declare function hyperliquidPendingCloseByCoin(args: {
|
|
|
1004
1156
|
declare const HYPERLIQUID_PROTOCOL_ID = "hyperliquid";
|
|
1005
1157
|
declare const hyperliquidProtocolModule: ProtocolModule;
|
|
1006
1158
|
|
|
1007
|
-
export { HYPERLIQUID_BRIDGE_ARBITRUM_MAINNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ARBITRUM_TESTNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ERC20_TRANSFER_FALLBACK_GAS, HYPERLIQUID_BRIDGE_MIN_DEPOSIT_USDC, HYPERLIQUID_CORE_WRITER_ADDRESS, HYPERLIQUID_CORE_WRITER_GAS_FALLBACK, HYPERLIQUID_DEFAULT_CANDLE_LIMIT, HYPERLIQUID_DEFAULT_LOOKBACK_DAYS, HYPERLIQUID_DEFAULT_OHLCV_INTERVAL, HYPERLIQUID_HLP_VAULT_ADDRESS, HYPERLIQUID_HYPEREVM_USDC_MAINNET, HYPERLIQUID_HYPEREVM_USDC_TESTNET, HYPERLIQUID_INTERVAL_MS, HYPERLIQUID_MAX_CANDLE_LIMIT, HYPERLIQUID_MAX_LOOKBACK_DAYS, HYPERLIQUID_MAX_OHLCV_BARS, HYPERLIQUID_PROTOCOL_ID, HYPERLIQUID_SPOT_ASSET_OFFSET, HYPERLIQUID_SUPPORTED_CHAIN_IDS, HYPERLIQUID_TIF, HYPERLIQUID_USER_SIGNED_DOMAIN, HYPERLIQUID_USER_SIGNED_SIGNATURE_CHAIN_ID, HYPERLIQUID_WITHDRAW_SIGN_TYPES, type HyperliquidActiveAssetContext, type HyperliquidBridgeArbitrumChainId, type HyperliquidCancelOrderArgs, type HyperliquidCloseOrderArgs, type HyperliquidDelegateArgs, type HyperliquidFrontendOpenOrder, type HyperliquidL1Action, type HyperliquidL1Tif, type HyperliquidLimitOrderArgs, type HyperliquidLimitOrderWithTpslMultisignArgs, type HyperliquidLivePrice, type HyperliquidMarketSearchHit, type HyperliquidMarketSnapshot, type HyperliquidOhlcvCandle, type HyperliquidOhlcvInterval, type HyperliquidOhlcvRange, type HyperliquidOpenMarketContext, type HyperliquidOpenOrder, type HyperliquidOrderAction, type HyperliquidOrderGrouping, type HyperliquidOrderWire, type HyperliquidPendingCloseSummary, type HyperliquidPerpAccountSummary, type HyperliquidPerpAnnotation, type HyperliquidPerpConciseAnnotation, type HyperliquidPerpDex, type HyperliquidPerpMarket, type HyperliquidPositionDisplayRow, type HyperliquidSpotMarket, type HyperliquidSupportedChainId, type HyperliquidTifKey, type HyperliquidTpslExecMode, type HyperliquidUpdateLeverageAction, type HyperliquidUpdateLeverageMultisignArgs, type HyperliquidUsdClassBalances, type HyperliquidUsdClassTransferArgs, type HyperliquidVaultDepositArgs, type HyperliquidVaultEquity, type HyperliquidVaultSummary, type HyperliquidVaultWithdrawArgs, type HyperliquidWithdraw3Action, buildCoreWriterCancelByCloidCalldata, buildCoreWriterCancelByOidCalldata, buildCoreWriterLimitOrderCalldata, buildCoreWriterStakingDepositCalldata, buildCoreWriterStakingWithdrawCalldata, buildCoreWriterTokenDelegateCalldata, buildCoreWriterUsdClassTransferCalldata, buildCoreWriterVaultTransferCalldata, buildEvmMultisignBodyHyperliquidBridgeDepositBatch, buildEvmMultisignBodyHyperliquidCancelBatch, buildEvmMultisignBodyHyperliquidCloseBatch, buildEvmMultisignBodyHyperliquidDelegateBatch, buildEvmMultisignBodyHyperliquidDelegateOnlyBatch, buildEvmMultisignBodyHyperliquidLimitOrderBatch, buildEvmMultisignBodyHyperliquidStakeDepositBatch, buildEvmMultisignBodyHyperliquidStakeWithdrawBatch, buildEvmMultisignBodyHyperliquidUndelegateBatch, buildEvmMultisignBodyHyperliquidUsdClassTransferBatch, buildEvmMultisignBodyHyperliquidVaultDepositBatch, buildEvmMultisignBodyHyperliquidVaultWithdrawBatch, buildHyperliquidAgentTypedData, buildHyperliquidBridgeWithdrawMultisign, buildHyperliquidLimitOrderWire, buildHyperliquidLimitOrderWithTpslMultisign, buildHyperliquidNormalTpslOrderWires, buildHyperliquidOrderAction, buildHyperliquidTriggerOrderWire, buildHyperliquidUpdateLeverageAction, buildHyperliquidUpdateLeverageMultisign, buildHyperliquidWithdraw3Action, buildHyperliquidWithdraw3TypedData, coreWriterStep, createHyperliquidL1ActionHash, hyperliquidApiBaseUrl, hyperliquidBridgeArbitrumChainId, hyperliquidBridgeConfig, hyperliquidCollectAllPerpMarkets, hyperliquidCollectHip3StockMarkets, hyperliquidCollectNativePerpMarkets, hyperliquidEncodePx8, hyperliquidEncodeUsd6, hyperliquidEncodeWei8, hyperliquidFetchActiveAssetData, hyperliquidFetchAllMids, hyperliquidFetchCandles, hyperliquidFetchClearinghouseState, hyperliquidFetchDelegations, hyperliquidFetchDelegationsForExecutor, hyperliquidFetchDexList, hyperliquidFetchFrontendOpenOrders, hyperliquidFetchMarketSnapshot, hyperliquidFetchMarketSnapshotSummary, hyperliquidFetchMarketsSummary, hyperliquidFetchOhlcvRange, hyperliquidFetchOhlcvSummary, hyperliquidFetchOpenContextSummary, hyperliquidFetchOpenMarketContext, hyperliquidFetchOpenOrders, hyperliquidFetchOpenOrdersSummary, hyperliquidFetchOrdersForExecutor, hyperliquidFetchPerpAssetContext, hyperliquidFetchPerpConciseAnnotations, hyperliquidFetchPerpMeta, hyperliquidFetchPositionDisplayRows, hyperliquidFetchPositionsForExecutor, hyperliquidFetchSpotClearinghouseState, hyperliquidFetchSpotMeta, hyperliquidFetchStakingSummary, hyperliquidFetchStakingSummaryForExecutor, hyperliquidFetchStockMarketsSummary, hyperliquidFetchUsdClassBalances, hyperliquidFetchUsdClassBalancesSummary, hyperliquidFetchUserVaultEquities, hyperliquidFetchUserVaultEquitiesSummary, hyperliquidFetchVaultApysSummary, hyperliquidFetchVaultCatalogSummary, hyperliquidFetchVaultSummaries, hyperliquidFloatToWire, hyperliquidInferDexFromCoin, hyperliquidIsSpotAssetId, hyperliquidL1TifFromKey, hyperliquidMarketSymbol, hyperliquidOrderClosesPosition, hyperliquidOrderCountsAsPendingClose, hyperliquidPendingCloseByCoin, hyperliquidPendingCloseForPosition, hyperliquidProtocolModule, hyperliquidResolveAsset, hyperliquidResolveOhlcvWindow, hyperliquidResolvePerpAsset, hyperliquidResolvePerpMarket, hyperliquidResolveSpotAsset, hyperliquidResolveTif, hyperliquidSearchMarkets, hyperliquidSearchMarketsSummary, hyperliquidVaultStatsUrl, isHyperliquidBridgeArbitrumChainSupported, isHyperliquidBridgeArbitrumUsdcRow, isHyperliquidChainSupported, isHyperliquidHyperEvmUsdcRow, validateHyperliquidTpslGeometry };
|
|
1159
|
+
export { HYPERLIQUID_BRIDGE_ARBITRUM_MAINNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ARBITRUM_TESTNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ERC20_TRANSFER_FALLBACK_GAS, HYPERLIQUID_BRIDGE_MIN_DEPOSIT_USDC, HYPERLIQUID_CORE_WRITER_ADDRESS, HYPERLIQUID_CORE_WRITER_GAS_FALLBACK, HYPERLIQUID_DEFAULT_CANDLE_LIMIT, HYPERLIQUID_DEFAULT_LOOKBACK_DAYS, HYPERLIQUID_DEFAULT_OHLCV_INTERVAL, HYPERLIQUID_HLP_VAULT_ADDRESS, HYPERLIQUID_HYPEREVM_USDC_MAINNET, HYPERLIQUID_HYPEREVM_USDC_TESTNET, HYPERLIQUID_INTERVAL_MS, HYPERLIQUID_MAX_CANDLE_LIMIT, HYPERLIQUID_MAX_LOOKBACK_DAYS, HYPERLIQUID_MAX_OHLCV_BARS, HYPERLIQUID_PROTOCOL_ID, HYPERLIQUID_SPOT_ASSET_OFFSET, HYPERLIQUID_SUPPORTED_CHAIN_IDS, HYPERLIQUID_TIF, HYPERLIQUID_USER_SIGNED_DOMAIN, HYPERLIQUID_USER_SIGNED_SIGNATURE_CHAIN_ID, HYPERLIQUID_WITHDRAW_SIGN_TYPES, type HyperliquidActiveAssetContext, type HyperliquidBorrowLendAction, type HyperliquidBorrowLendMultisignArgs, type HyperliquidBorrowLendOperation, type HyperliquidBorrowLendReserveState, type HyperliquidBorrowLendReserveTuple, type HyperliquidBorrowLendTokenBalance, type HyperliquidBorrowLendUserState, type HyperliquidBorrowLendUserTokenState, type HyperliquidBridgeArbitrumChainId, type HyperliquidCancelOrderArgs, type HyperliquidCloseOrderArgs, type HyperliquidDelegateArgs, type HyperliquidFrontendOpenOrder, type HyperliquidL1Action, type HyperliquidL1Tif, type HyperliquidLendMarketRole, type HyperliquidLendMarketRow, type HyperliquidLendPositionRow, type HyperliquidLendPositionsSummary, type HyperliquidLimitOrderArgs, type HyperliquidLimitOrderWithTpslMultisignArgs, type HyperliquidLivePrice, type HyperliquidMarketSearchHit, type HyperliquidMarketSnapshot, type HyperliquidOhlcvCandle, type HyperliquidOhlcvInterval, type HyperliquidOhlcvRange, type HyperliquidOpenMarketContext, type HyperliquidOpenOrder, type HyperliquidOrderAction, type HyperliquidOrderGrouping, type HyperliquidOrderWire, type HyperliquidPendingCloseSummary, type HyperliquidPerpAccountSummary, type HyperliquidPerpAnnotation, type HyperliquidPerpConciseAnnotation, type HyperliquidPerpDex, type HyperliquidPerpMarket, type HyperliquidPositionDisplayRow, type HyperliquidSpotMarket, type HyperliquidSpotToken, type HyperliquidSupportedChainId, type HyperliquidTifKey, type HyperliquidTpslExecMode, type HyperliquidUpdateLeverageAction, type HyperliquidUpdateLeverageMultisignArgs, type HyperliquidUsdClassBalances, type HyperliquidUsdClassTransferArgs, type HyperliquidUserAbstraction, type HyperliquidVaultDepositArgs, type HyperliquidVaultEquity, type HyperliquidVaultSummary, type HyperliquidVaultWithdrawArgs, type HyperliquidWithdraw3Action, buildCoreWriterCancelByCloidCalldata, buildCoreWriterCancelByOidCalldata, buildCoreWriterLimitOrderCalldata, buildCoreWriterStakingDepositCalldata, buildCoreWriterStakingWithdrawCalldata, buildCoreWriterTokenDelegateCalldata, buildCoreWriterUsdClassTransferCalldata, buildCoreWriterVaultTransferCalldata, buildEvmMultisignBodyHyperliquidBridgeDepositBatch, buildEvmMultisignBodyHyperliquidCancelBatch, buildEvmMultisignBodyHyperliquidCloseBatch, buildEvmMultisignBodyHyperliquidDelegateBatch, buildEvmMultisignBodyHyperliquidDelegateOnlyBatch, buildEvmMultisignBodyHyperliquidLimitOrderBatch, buildEvmMultisignBodyHyperliquidStakeDepositBatch, buildEvmMultisignBodyHyperliquidStakeWithdrawBatch, buildEvmMultisignBodyHyperliquidUndelegateBatch, buildEvmMultisignBodyHyperliquidUsdClassTransferBatch, buildEvmMultisignBodyHyperliquidVaultDepositBatch, buildEvmMultisignBodyHyperliquidVaultWithdrawBatch, buildHyperliquidAgentTypedData, buildHyperliquidBorrowLendAction, buildHyperliquidBorrowLendMultisign, buildHyperliquidBridgeWithdrawMultisign, buildHyperliquidLimitOrderWire, buildHyperliquidLimitOrderWithTpslMultisign, buildHyperliquidNormalTpslOrderWires, buildHyperliquidOrderAction, buildHyperliquidTriggerOrderWire, buildHyperliquidUpdateLeverageAction, buildHyperliquidUpdateLeverageMultisign, buildHyperliquidWithdraw3Action, buildHyperliquidWithdraw3TypedData, coreWriterStep, createHyperliquidL1ActionHash, hyperliquidApiBaseUrl, hyperliquidBridgeArbitrumChainId, hyperliquidBridgeConfig, hyperliquidCanonicalLendCoin, hyperliquidCollectAllPerpMarkets, hyperliquidCollectHip3StockMarkets, hyperliquidCollectNativePerpMarkets, hyperliquidEncodePx8, hyperliquidEncodeUsd6, hyperliquidEncodeWei8, hyperliquidFetchActiveAssetData, hyperliquidFetchAllBorrowLendReserveStates, hyperliquidFetchAllMids, hyperliquidFetchBorrowLendReserveState, hyperliquidFetchBorrowLendUserState, hyperliquidFetchCandles, hyperliquidFetchClearinghouseState, hyperliquidFetchDelegations, hyperliquidFetchDelegationsForExecutor, hyperliquidFetchDexList, hyperliquidFetchFrontendOpenOrders, hyperliquidFetchLendMarketsSummary, hyperliquidFetchLendPositionsSummary, hyperliquidFetchMarketSnapshot, hyperliquidFetchMarketSnapshotSummary, hyperliquidFetchMarketsSummary, hyperliquidFetchOhlcvRange, hyperliquidFetchOhlcvSummary, hyperliquidFetchOpenContextSummary, hyperliquidFetchOpenMarketContext, hyperliquidFetchOpenOrders, hyperliquidFetchOpenOrdersSummary, hyperliquidFetchOrdersForExecutor, hyperliquidFetchPerpAssetContext, hyperliquidFetchPerpConciseAnnotations, hyperliquidFetchPerpMeta, hyperliquidFetchPositionDisplayRows, hyperliquidFetchPositionsForExecutor, hyperliquidFetchSpotClearinghouseState, hyperliquidFetchSpotMeta, hyperliquidFetchSpotTokens, hyperliquidFetchStakingSummary, hyperliquidFetchStakingSummaryForExecutor, hyperliquidFetchStockMarketsSummary, hyperliquidFetchUsdClassBalances, hyperliquidFetchUsdClassBalancesSummary, hyperliquidFetchUserAbstraction, hyperliquidFetchUserVaultEquities, hyperliquidFetchUserVaultEquitiesSummary, hyperliquidFetchVaultApysSummary, hyperliquidFetchVaultCatalogSummary, hyperliquidFetchVaultSummaries, hyperliquidFloatToWire, hyperliquidInferDexFromCoin, hyperliquidIsSpotAssetId, hyperliquidL1TifFromKey, hyperliquidLendRoleFromLtv, hyperliquidManualBorrowEnabled, hyperliquidMarketSymbol, hyperliquidOrderClosesPosition, hyperliquidOrderCountsAsPendingClose, hyperliquidPendingCloseByCoin, hyperliquidPendingCloseForPosition, hyperliquidProtocolModule, hyperliquidResolveAsset, hyperliquidResolveLendTokenForChain, hyperliquidResolveOhlcvWindow, hyperliquidResolvePerpAsset, hyperliquidResolvePerpMarket, hyperliquidResolveSpotAsset, hyperliquidResolveSpotToken, hyperliquidResolveTif, hyperliquidSearchMarkets, hyperliquidSearchMarketsSummary, hyperliquidVaultStatsUrl, isHyperliquidBridgeArbitrumChainSupported, isHyperliquidBridgeArbitrumUsdcRow, isHyperliquidChainSupported, isHyperliquidHyperEvmUsdcRow, mapHyperliquidLendMarketRows, parseHyperliquidBorrowLendAmount, parseHyperliquidBorrowLendReserveTuples, parseHyperliquidBorrowLendUserState, validateHyperliquidTpslGeometry };
|
|
@@ -479,6 +479,49 @@ async function hyperliquidFetchStakingSummary(args) {
|
|
|
479
479
|
});
|
|
480
480
|
return { delegated: raw?.delegated ?? "0", undelegated: raw?.undelegated ?? "0" };
|
|
481
481
|
}
|
|
482
|
+
async function hyperliquidFetchSpotTokens(args) {
|
|
483
|
+
const meta = await hyperliquidInfoPost(args.chainId, { type: "spotMeta" });
|
|
484
|
+
const tokens = (meta.tokens ?? []).map((t) => ({
|
|
485
|
+
name: t.name,
|
|
486
|
+
tokenIndex: t.index,
|
|
487
|
+
szDecimals: t.szDecimals
|
|
488
|
+
}));
|
|
489
|
+
return { tokens };
|
|
490
|
+
}
|
|
491
|
+
async function hyperliquidFetchAllBorrowLendReserveStates(args) {
|
|
492
|
+
const raw = await hyperliquidInfoPost(args.chainId, {
|
|
493
|
+
type: "allBorrowLendReserveStates"
|
|
494
|
+
});
|
|
495
|
+
return { reserves: Array.isArray(raw) ? raw : [] };
|
|
496
|
+
}
|
|
497
|
+
async function hyperliquidFetchBorrowLendReserveState(args) {
|
|
498
|
+
const reserve = await hyperliquidInfoPost(args.chainId, {
|
|
499
|
+
type: "borrowLendReserveState",
|
|
500
|
+
token: args.token
|
|
501
|
+
});
|
|
502
|
+
return { reserve };
|
|
503
|
+
}
|
|
504
|
+
async function hyperliquidFetchBorrowLendUserState(args) {
|
|
505
|
+
const state = await hyperliquidInfoPost(args.chainId, {
|
|
506
|
+
type: "borrowLendUserState",
|
|
507
|
+
user: args.user
|
|
508
|
+
});
|
|
509
|
+
return {
|
|
510
|
+
state: {
|
|
511
|
+
tokenToState: Array.isArray(state?.tokenToState) ? state.tokenToState : [],
|
|
512
|
+
health: String(state?.health ?? "healthy"),
|
|
513
|
+
healthFactor: state?.healthFactor ?? null
|
|
514
|
+
}
|
|
515
|
+
};
|
|
516
|
+
}
|
|
517
|
+
async function hyperliquidFetchUserAbstraction(args) {
|
|
518
|
+
const raw = await hyperliquidInfoPost(args.chainId, {
|
|
519
|
+
type: "userAbstraction",
|
|
520
|
+
user: args.user
|
|
521
|
+
});
|
|
522
|
+
if (typeof raw === "string" && raw.trim()) return { abstraction: raw.trim() };
|
|
523
|
+
return { abstraction: "default" };
|
|
524
|
+
}
|
|
482
525
|
|
|
483
526
|
// src/protocols/evm/hyperliquid/marketSearch.ts
|
|
484
527
|
function normalizeQuery(value) {
|
|
@@ -634,6 +677,21 @@ async function hyperliquidResolvePerpMarket(args) {
|
|
|
634
677
|
}
|
|
635
678
|
|
|
636
679
|
// src/protocols/evm/hyperliquid/assets.ts
|
|
680
|
+
var HYPERLIQUID_LEND_TOKEN_ALIASES = {
|
|
681
|
+
btc: "UBTC",
|
|
682
|
+
ubtc: "UBTC",
|
|
683
|
+
usdt: "USDT0",
|
|
684
|
+
usdt0: "USDT0",
|
|
685
|
+
usdc: "USDC",
|
|
686
|
+
hype: "HYPE",
|
|
687
|
+
usdh: "USDH"
|
|
688
|
+
};
|
|
689
|
+
function hyperliquidCanonicalLendCoin(coin) {
|
|
690
|
+
const trimmed = coin.trim();
|
|
691
|
+
if (!trimmed) return trimmed;
|
|
692
|
+
const aliased = HYPERLIQUID_LEND_TOKEN_ALIASES[trimmed.toLowerCase()];
|
|
693
|
+
return aliased ?? trimmed;
|
|
694
|
+
}
|
|
637
695
|
async function hyperliquidResolvePerpAsset(args) {
|
|
638
696
|
const resolved = await hyperliquidResolvePerpMarket(args);
|
|
639
697
|
return { asset: resolved.asset, szDecimals: resolved.szDecimals, maxLeverage: resolved.maxLeverage };
|
|
@@ -655,6 +713,21 @@ async function hyperliquidResolveAsset(args) {
|
|
|
655
713
|
function hyperliquidIsSpotAssetId(asset) {
|
|
656
714
|
return asset >= HYPERLIQUID_SPOT_ASSET_OFFSET;
|
|
657
715
|
}
|
|
716
|
+
async function hyperliquidResolveSpotToken(args) {
|
|
717
|
+
const raw = args.coin.trim();
|
|
718
|
+
if (!raw) throw new Error("Hyperliquid lend token is required.");
|
|
719
|
+
const asIndex = Number.parseInt(raw, 10);
|
|
720
|
+
const { tokens } = await hyperliquidFetchSpotTokens({ chainId: args.chainId });
|
|
721
|
+
if (/^\d+$/.test(raw) && Number.isFinite(asIndex)) {
|
|
722
|
+
const hit2 = tokens.find((t) => t.tokenIndex === asIndex);
|
|
723
|
+
if (!hit2) throw new Error(`Unknown Hyperliquid spot token index: ${raw}`);
|
|
724
|
+
return { tokenIndex: hit2.tokenIndex, coin: hit2.name, szDecimals: hit2.szDecimals };
|
|
725
|
+
}
|
|
726
|
+
const canonical = hyperliquidCanonicalLendCoin(raw);
|
|
727
|
+
const hit = tokens.find((t) => t.name.toLowerCase() === canonical.toLowerCase());
|
|
728
|
+
if (!hit) throw new Error(`Unknown Hyperliquid spot token: ${raw}`);
|
|
729
|
+
return { tokenIndex: hit.tokenIndex, coin: hit.name, szDecimals: hit.szDecimals };
|
|
730
|
+
}
|
|
658
731
|
|
|
659
732
|
// src/protocols/evm/hyperliquid/reads.ts
|
|
660
733
|
function hyperliquidUsdAmountString(value) {
|
|
@@ -866,6 +939,149 @@ async function hyperliquidFetchOhlcvSummary(args) {
|
|
|
866
939
|
});
|
|
867
940
|
return { ohlcv, resolvedCoin: resolved.name, dex: resolved.dex ?? null };
|
|
868
941
|
}
|
|
942
|
+
|
|
943
|
+
// src/protocols/evm/hyperliquid/lendReads.ts
|
|
944
|
+
function yearlyRateToAprPercent(raw) {
|
|
945
|
+
const n = Number.parseFloat(String(raw ?? "").trim());
|
|
946
|
+
if (!Number.isFinite(n)) return null;
|
|
947
|
+
return n * 100;
|
|
948
|
+
}
|
|
949
|
+
function decimalGtZero(raw) {
|
|
950
|
+
const n = Number.parseFloat(String(raw ?? "").trim());
|
|
951
|
+
return Number.isFinite(n) && n > 0;
|
|
952
|
+
}
|
|
953
|
+
function hyperliquidLendRoleFromLtv(ltv) {
|
|
954
|
+
return decimalGtZero(ltv) ? "collateral" : "quote";
|
|
955
|
+
}
|
|
956
|
+
function parseHyperliquidBorrowLendReserveTuples(raw) {
|
|
957
|
+
if (!Array.isArray(raw)) return [];
|
|
958
|
+
const out = [];
|
|
959
|
+
for (const entry of raw) {
|
|
960
|
+
if (!Array.isArray(entry) || entry.length < 2) continue;
|
|
961
|
+
const tokenIndex = Number(entry[0]);
|
|
962
|
+
const state = entry[1];
|
|
963
|
+
if (!Number.isFinite(tokenIndex) || !state || typeof state !== "object") continue;
|
|
964
|
+
out.push([
|
|
965
|
+
tokenIndex,
|
|
966
|
+
{
|
|
967
|
+
borrowYearlyRate: String(state.borrowYearlyRate ?? "0"),
|
|
968
|
+
supplyYearlyRate: String(state.supplyYearlyRate ?? "0"),
|
|
969
|
+
balance: String(state.balance ?? "0"),
|
|
970
|
+
utilization: String(state.utilization ?? "0"),
|
|
971
|
+
oraclePx: String(state.oraclePx ?? "0"),
|
|
972
|
+
ltv: String(state.ltv ?? "0"),
|
|
973
|
+
totalSupplied: String(state.totalSupplied ?? "0"),
|
|
974
|
+
totalBorrowed: String(state.totalBorrowed ?? "0")
|
|
975
|
+
}
|
|
976
|
+
]);
|
|
977
|
+
}
|
|
978
|
+
return out;
|
|
979
|
+
}
|
|
980
|
+
function parseHyperliquidBorrowLendUserState(raw) {
|
|
981
|
+
const o = raw && typeof raw === "object" ? raw : {};
|
|
982
|
+
const tokenToState = [];
|
|
983
|
+
const rows = Array.isArray(o.tokenToState) ? o.tokenToState : [];
|
|
984
|
+
for (const entry of rows) {
|
|
985
|
+
if (!Array.isArray(entry) || entry.length < 2) continue;
|
|
986
|
+
const tokenIndex = Number(entry[0]);
|
|
987
|
+
const state = entry[1];
|
|
988
|
+
if (!Number.isFinite(tokenIndex) || !state || typeof state !== "object") continue;
|
|
989
|
+
tokenToState.push([
|
|
990
|
+
tokenIndex,
|
|
991
|
+
{
|
|
992
|
+
borrow: {
|
|
993
|
+
basis: String(state.borrow?.basis ?? "0.0"),
|
|
994
|
+
value: String(state.borrow?.value ?? "0.0")
|
|
995
|
+
},
|
|
996
|
+
supply: {
|
|
997
|
+
basis: String(state.supply?.basis ?? "0.0"),
|
|
998
|
+
value: String(state.supply?.value ?? "0.0")
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
]);
|
|
1002
|
+
}
|
|
1003
|
+
return {
|
|
1004
|
+
tokenToState,
|
|
1005
|
+
health: String(o.health ?? "healthy"),
|
|
1006
|
+
healthFactor: o.healthFactor == null ? null : String(o.healthFactor)
|
|
1007
|
+
};
|
|
1008
|
+
}
|
|
1009
|
+
function mapHyperliquidLendMarketRows(args) {
|
|
1010
|
+
const tokenByIndex = new Map(args.tokens.map((t) => [t.tokenIndex, t]));
|
|
1011
|
+
return args.reserves.map(([tokenIndex, state]) => {
|
|
1012
|
+
const token = tokenByIndex.get(tokenIndex);
|
|
1013
|
+
const role = hyperliquidLendRoleFromLtv(state.ltv);
|
|
1014
|
+
return {
|
|
1015
|
+
tokenIndex,
|
|
1016
|
+
coin: token?.name ?? `token:${tokenIndex}`,
|
|
1017
|
+
role,
|
|
1018
|
+
szDecimals: token?.szDecimals ?? null,
|
|
1019
|
+
supplyYearlyRate: state.supplyYearlyRate,
|
|
1020
|
+
borrowYearlyRate: state.borrowYearlyRate,
|
|
1021
|
+
supplyAprPercent: yearlyRateToAprPercent(state.supplyYearlyRate),
|
|
1022
|
+
borrowAprPercent: yearlyRateToAprPercent(state.borrowYearlyRate),
|
|
1023
|
+
utilization: state.utilization,
|
|
1024
|
+
oraclePx: state.oraclePx,
|
|
1025
|
+
ltv: state.ltv,
|
|
1026
|
+
totalSupplied: state.totalSupplied,
|
|
1027
|
+
totalBorrowed: state.totalBorrowed,
|
|
1028
|
+
balance: state.balance
|
|
1029
|
+
};
|
|
1030
|
+
});
|
|
1031
|
+
}
|
|
1032
|
+
function hyperliquidManualBorrowEnabled(abstraction) {
|
|
1033
|
+
return abstraction.trim() !== "portfolioMargin";
|
|
1034
|
+
}
|
|
1035
|
+
async function hyperliquidFetchLendMarketsSummary(args) {
|
|
1036
|
+
const [{ reserves }, { tokens }] = await Promise.all([
|
|
1037
|
+
hyperliquidFetchAllBorrowLendReserveStates({ chainId: args.chainId }),
|
|
1038
|
+
hyperliquidFetchSpotTokens({ chainId: args.chainId })
|
|
1039
|
+
]);
|
|
1040
|
+
const markets = mapHyperliquidLendMarketRows({
|
|
1041
|
+
reserves: parseHyperliquidBorrowLendReserveTuples(reserves),
|
|
1042
|
+
tokens
|
|
1043
|
+
});
|
|
1044
|
+
return {
|
|
1045
|
+
markets,
|
|
1046
|
+
notes: "Hyperliquid Core lend yearly rates are APR (supplyYearlyRate / borrowYearlyRate), not APY. Collateral (HYPE, UBTC) does not earn supply interest. Quote supply (USDC, USDT0, USDH) earns utilization APR but does not increase borrow capacity. Rates update hourly."
|
|
1047
|
+
};
|
|
1048
|
+
}
|
|
1049
|
+
async function hyperliquidFetchLendPositionsSummary(args) {
|
|
1050
|
+
const user = args.executorAddress.trim().toLowerCase();
|
|
1051
|
+
const [{ state }, { abstraction }, { tokens }, { reserves }] = await Promise.all([
|
|
1052
|
+
hyperliquidFetchBorrowLendUserState({ chainId: args.chainId, user }),
|
|
1053
|
+
hyperliquidFetchUserAbstraction({ chainId: args.chainId, user }),
|
|
1054
|
+
hyperliquidFetchSpotTokens({ chainId: args.chainId }),
|
|
1055
|
+
hyperliquidFetchAllBorrowLendReserveStates({ chainId: args.chainId })
|
|
1056
|
+
]);
|
|
1057
|
+
const parsed = parseHyperliquidBorrowLendUserState(state);
|
|
1058
|
+
const tokenByIndex = new Map(tokens.map((t) => [t.tokenIndex, t]));
|
|
1059
|
+
const roleByIndex = new Map(
|
|
1060
|
+
parseHyperliquidBorrowLendReserveTuples(reserves).map(([idx, s]) => [idx, hyperliquidLendRoleFromLtv(s.ltv)])
|
|
1061
|
+
);
|
|
1062
|
+
const positions = parsed.tokenToState.filter(([, s]) => decimalGtZero(s.supply.value) || decimalGtZero(s.borrow.value)).map(([tokenIndex, s]) => ({
|
|
1063
|
+
tokenIndex,
|
|
1064
|
+
coin: tokenByIndex.get(tokenIndex)?.name ?? `token:${tokenIndex}`,
|
|
1065
|
+
role: roleByIndex.get(tokenIndex) ?? null,
|
|
1066
|
+
suppliedBasis: s.supply.basis,
|
|
1067
|
+
suppliedValue: s.supply.value,
|
|
1068
|
+
borrowedBasis: s.borrow.basis,
|
|
1069
|
+
borrowedValue: s.borrow.value
|
|
1070
|
+
}));
|
|
1071
|
+
const manualBorrowEnabled = hyperliquidManualBorrowEnabled(abstraction);
|
|
1072
|
+
const summary = {
|
|
1073
|
+
positions,
|
|
1074
|
+
health: parsed.health,
|
|
1075
|
+
healthFactor: parsed.healthFactor,
|
|
1076
|
+
userAbstraction: abstraction,
|
|
1077
|
+
manualBorrowEnabled,
|
|
1078
|
+
notes: manualBorrowEnabled ? "Manual borrow is available on this account. Portfolio-margin accounts use automated borrow instead." : "Portfolio-margin account: borrowing is automated and the manual borrow action is disabled. Supply/withdraw/repay may still apply."
|
|
1079
|
+
};
|
|
1080
|
+
return summary;
|
|
1081
|
+
}
|
|
1082
|
+
async function hyperliquidResolveLendTokenForChain(args) {
|
|
1083
|
+
return hyperliquidResolveSpotToken({ chainId: args.chainId, coin: args.coin });
|
|
1084
|
+
}
|
|
869
1085
|
var coreWriterAbi = parseAbi(["function sendRawAction(bytes data) external"]);
|
|
870
1086
|
var ACTION_LIMIT_ORDER = 1;
|
|
871
1087
|
var ACTION_VAULT_TRANSFER = 2;
|
|
@@ -1378,6 +1594,28 @@ function buildHyperliquidUpdateLeverageAction(args) {
|
|
|
1378
1594
|
leverage
|
|
1379
1595
|
};
|
|
1380
1596
|
}
|
|
1597
|
+
function parseHyperliquidBorrowLendAmount(amountHuman) {
|
|
1598
|
+
if (amountHuman == null) return null;
|
|
1599
|
+
const trimmed = String(amountHuman).trim();
|
|
1600
|
+
if (!trimmed || trimmed.toLowerCase() === "max") return null;
|
|
1601
|
+
return hyperliquidFloatToWire(trimmed);
|
|
1602
|
+
}
|
|
1603
|
+
function buildHyperliquidBorrowLendAction(args) {
|
|
1604
|
+
const operation = args.operation;
|
|
1605
|
+
if (operation !== "supply" && operation !== "withdraw" && operation !== "repay" && operation !== "borrow") {
|
|
1606
|
+
throw new Error("operation must be supply, withdraw, repay, or borrow");
|
|
1607
|
+
}
|
|
1608
|
+
const token = Math.trunc(args.token);
|
|
1609
|
+
if (!Number.isFinite(token) || token < 0) {
|
|
1610
|
+
throw new Error("token must be a non-negative integer token index");
|
|
1611
|
+
}
|
|
1612
|
+
return {
|
|
1613
|
+
type: "borrowLend",
|
|
1614
|
+
operation,
|
|
1615
|
+
token,
|
|
1616
|
+
amount: args.amount
|
|
1617
|
+
};
|
|
1618
|
+
}
|
|
1381
1619
|
function hyperliquidFloatToWire(value) {
|
|
1382
1620
|
const n = typeof value === "number" ? value : Number.parseFloat(String(value).trim());
|
|
1383
1621
|
if (!Number.isFinite(n)) throw new Error("Invalid Hyperliquid wire number.");
|
|
@@ -1623,6 +1861,57 @@ async function buildHyperliquidUpdateLeverageMultisign(args) {
|
|
|
1623
1861
|
]
|
|
1624
1862
|
});
|
|
1625
1863
|
}
|
|
1864
|
+
async function buildHyperliquidBorrowLendMultisign(args) {
|
|
1865
|
+
const { tokenIndex, coin } = await hyperliquidResolveSpotToken({
|
|
1866
|
+
chainId: args.chainId,
|
|
1867
|
+
coin: args.coin
|
|
1868
|
+
});
|
|
1869
|
+
const amount = args.amountMax === true ? null : parseHyperliquidBorrowLendAmount(args.amountHuman);
|
|
1870
|
+
if (amount == null && args.operation !== "withdraw" && args.operation !== "repay" && args.amountMax !== true) {
|
|
1871
|
+
throw new Error("amountHuman is required unless amountMax is true (full withdraw/repay).");
|
|
1872
|
+
}
|
|
1873
|
+
const action = buildHyperliquidBorrowLendAction({
|
|
1874
|
+
operation: args.operation,
|
|
1875
|
+
token: tokenIndex,
|
|
1876
|
+
amount
|
|
1877
|
+
});
|
|
1878
|
+
const nonce = args.nonce ?? Date.now();
|
|
1879
|
+
const isTestnet = args.chainId === 998;
|
|
1880
|
+
const typed = buildHyperliquidAgentTypedData({ action, nonce, isTestnet });
|
|
1881
|
+
return buildEip712Multisign({
|
|
1882
|
+
keyGen: args.keyGen,
|
|
1883
|
+
purposeText: args.purposeText,
|
|
1884
|
+
destinationChainID: String(args.chainId),
|
|
1885
|
+
destinationAddress: ZERO_ADDRESS,
|
|
1886
|
+
legs: [
|
|
1887
|
+
{
|
|
1888
|
+
typedData: {
|
|
1889
|
+
domain: typed.domain,
|
|
1890
|
+
types: typed.types,
|
|
1891
|
+
primaryType: typed.primaryType,
|
|
1892
|
+
message: typed.message
|
|
1893
|
+
},
|
|
1894
|
+
delivery: {
|
|
1895
|
+
kind: "hyperliquid_exchange",
|
|
1896
|
+
chainId: args.chainId,
|
|
1897
|
+
isTestnet,
|
|
1898
|
+
action,
|
|
1899
|
+
nonce
|
|
1900
|
+
},
|
|
1901
|
+
audit: {
|
|
1902
|
+
protocol: "hyperliquid",
|
|
1903
|
+
action: "borrowLend",
|
|
1904
|
+
operation: args.operation,
|
|
1905
|
+
coin,
|
|
1906
|
+
token: tokenIndex,
|
|
1907
|
+
amount,
|
|
1908
|
+
nonce,
|
|
1909
|
+
connectionId: typed.connectionId
|
|
1910
|
+
}
|
|
1911
|
+
}
|
|
1912
|
+
]
|
|
1913
|
+
});
|
|
1914
|
+
}
|
|
1626
1915
|
|
|
1627
1916
|
// src/protocols/evm/hyperliquid/multisign.ts
|
|
1628
1917
|
function hasHyperliquidBracketTpsl(args) {
|
|
@@ -2215,6 +2504,19 @@ var hyperliquidProtocolModule = {
|
|
|
2215
2504
|
marketKind: { type: "string", required: false, description: "perp (default) or spot" }
|
|
2216
2505
|
}
|
|
2217
2506
|
},
|
|
2507
|
+
{
|
|
2508
|
+
id: "hyperliquid.lend",
|
|
2509
|
+
protocolId: HYPERLIQUID_PROTOCOL_ID,
|
|
2510
|
+
chainCategory: "evm",
|
|
2511
|
+
description: "Hyperliquid Core borrow/lend via L1 /exchange EIP-712 (supply, withdraw, borrow, repay). Not CoreWriter.",
|
|
2512
|
+
commonParams: ["keyGen", "purposeText"],
|
|
2513
|
+
params: {
|
|
2514
|
+
coin: { type: "string", required: true, description: "Spot token e.g. USDC, USDT, HYPE, BTC/UBTC" },
|
|
2515
|
+
operation: { type: "string", required: true, description: "supply | withdraw | borrow | repay" },
|
|
2516
|
+
amountHuman: { type: "string", required: false, description: "Amount; omit or max for full withdraw/repay" },
|
|
2517
|
+
amountMax: { type: "boolean", required: false, description: "true = full amount (amount null on wire)" }
|
|
2518
|
+
}
|
|
2519
|
+
},
|
|
2218
2520
|
{
|
|
2219
2521
|
id: "hyperliquid.undelegate",
|
|
2220
2522
|
protocolId: HYPERLIQUID_PROTOCOL_ID,
|
|
@@ -2230,6 +2532,6 @@ var hyperliquidProtocolModule = {
|
|
|
2230
2532
|
};
|
|
2231
2533
|
registerProtocolModule(hyperliquidProtocolModule);
|
|
2232
2534
|
|
|
2233
|
-
export { HYPERLIQUID_BRIDGE_ARBITRUM_MAINNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ARBITRUM_TESTNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ERC20_TRANSFER_FALLBACK_GAS, HYPERLIQUID_BRIDGE_MIN_DEPOSIT_USDC, HYPERLIQUID_CORE_WRITER_ADDRESS, HYPERLIQUID_CORE_WRITER_GAS_FALLBACK, HYPERLIQUID_DEFAULT_CANDLE_LIMIT, HYPERLIQUID_DEFAULT_LOOKBACK_DAYS, HYPERLIQUID_DEFAULT_OHLCV_INTERVAL, HYPERLIQUID_HLP_VAULT_ADDRESS, HYPERLIQUID_HYPEREVM_USDC_MAINNET, HYPERLIQUID_HYPEREVM_USDC_TESTNET, HYPERLIQUID_INTERVAL_MS, HYPERLIQUID_MAX_CANDLE_LIMIT, HYPERLIQUID_MAX_LOOKBACK_DAYS, HYPERLIQUID_MAX_OHLCV_BARS, HYPERLIQUID_PROTOCOL_ID, HYPERLIQUID_SPOT_ASSET_OFFSET, HYPERLIQUID_SUPPORTED_CHAIN_IDS, HYPERLIQUID_TIF, HYPERLIQUID_USER_SIGNED_DOMAIN, HYPERLIQUID_USER_SIGNED_SIGNATURE_CHAIN_ID, HYPERLIQUID_WITHDRAW_SIGN_TYPES, buildCoreWriterCancelByCloidCalldata, buildCoreWriterCancelByOidCalldata, buildCoreWriterLimitOrderCalldata, buildCoreWriterStakingDepositCalldata, buildCoreWriterStakingWithdrawCalldata, buildCoreWriterTokenDelegateCalldata, buildCoreWriterUsdClassTransferCalldata, buildCoreWriterVaultTransferCalldata, buildEvmMultisignBodyHyperliquidBridgeDepositBatch, buildEvmMultisignBodyHyperliquidCancelBatch, buildEvmMultisignBodyHyperliquidCloseBatch, buildEvmMultisignBodyHyperliquidDelegateBatch, buildEvmMultisignBodyHyperliquidDelegateOnlyBatch, buildEvmMultisignBodyHyperliquidLimitOrderBatch, buildEvmMultisignBodyHyperliquidStakeDepositBatch, buildEvmMultisignBodyHyperliquidStakeWithdrawBatch, buildEvmMultisignBodyHyperliquidUndelegateBatch, buildEvmMultisignBodyHyperliquidUsdClassTransferBatch, buildEvmMultisignBodyHyperliquidVaultDepositBatch, buildEvmMultisignBodyHyperliquidVaultWithdrawBatch, buildHyperliquidAgentTypedData, buildHyperliquidBridgeWithdrawMultisign, buildHyperliquidLimitOrderWire, buildHyperliquidLimitOrderWithTpslMultisign, buildHyperliquidNormalTpslOrderWires, buildHyperliquidOrderAction, buildHyperliquidTriggerOrderWire, buildHyperliquidUpdateLeverageAction, buildHyperliquidUpdateLeverageMultisign, buildHyperliquidWithdraw3Action, buildHyperliquidWithdraw3TypedData, coreWriterStep, createHyperliquidL1ActionHash, hyperliquidApiBaseUrl, hyperliquidBridgeArbitrumChainId, hyperliquidBridgeConfig, hyperliquidCollectAllPerpMarkets, hyperliquidCollectHip3StockMarkets, hyperliquidCollectNativePerpMarkets, hyperliquidEncodePx8, hyperliquidEncodeUsd6, hyperliquidEncodeWei8, hyperliquidFetchActiveAssetData, hyperliquidFetchAllMids, hyperliquidFetchCandles, hyperliquidFetchClearinghouseState, hyperliquidFetchDelegations, hyperliquidFetchDelegationsForExecutor, hyperliquidFetchDexList, hyperliquidFetchFrontendOpenOrders, hyperliquidFetchMarketSnapshot, hyperliquidFetchMarketSnapshotSummary, hyperliquidFetchMarketsSummary, hyperliquidFetchOhlcvRange, hyperliquidFetchOhlcvSummary, hyperliquidFetchOpenContextSummary, hyperliquidFetchOpenMarketContext, hyperliquidFetchOpenOrders, hyperliquidFetchOpenOrdersSummary, hyperliquidFetchOrdersForExecutor, hyperliquidFetchPerpAssetContext, hyperliquidFetchPerpConciseAnnotations, hyperliquidFetchPerpMeta, hyperliquidFetchPositionDisplayRows, hyperliquidFetchPositionsForExecutor, hyperliquidFetchSpotClearinghouseState, hyperliquidFetchSpotMeta, hyperliquidFetchStakingSummary, hyperliquidFetchStakingSummaryForExecutor, hyperliquidFetchStockMarketsSummary, hyperliquidFetchUsdClassBalances, hyperliquidFetchUsdClassBalancesSummary, hyperliquidFetchUserVaultEquities, hyperliquidFetchUserVaultEquitiesSummary, hyperliquidFetchVaultApysSummary, hyperliquidFetchVaultCatalogSummary, hyperliquidFetchVaultSummaries, hyperliquidFloatToWire, hyperliquidInferDexFromCoin, hyperliquidIsSpotAssetId, hyperliquidL1TifFromKey, hyperliquidMarketSymbol, hyperliquidOrderClosesPosition, hyperliquidOrderCountsAsPendingClose, hyperliquidPendingCloseByCoin, hyperliquidPendingCloseForPosition, hyperliquidProtocolModule, hyperliquidResolveAsset, hyperliquidResolveOhlcvWindow, hyperliquidResolvePerpAsset, hyperliquidResolvePerpMarket, hyperliquidResolveSpotAsset, hyperliquidResolveTif, hyperliquidSearchMarkets, hyperliquidSearchMarketsSummary, hyperliquidVaultStatsUrl, isHyperliquidBridgeArbitrumChainSupported, isHyperliquidBridgeArbitrumUsdcRow, isHyperliquidChainSupported, isHyperliquidHyperEvmUsdcRow, validateHyperliquidTpslGeometry };
|
|
2535
|
+
export { HYPERLIQUID_BRIDGE_ARBITRUM_MAINNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ARBITRUM_TESTNET_CHAIN_ID, HYPERLIQUID_BRIDGE_ERC20_TRANSFER_FALLBACK_GAS, HYPERLIQUID_BRIDGE_MIN_DEPOSIT_USDC, HYPERLIQUID_CORE_WRITER_ADDRESS, HYPERLIQUID_CORE_WRITER_GAS_FALLBACK, HYPERLIQUID_DEFAULT_CANDLE_LIMIT, HYPERLIQUID_DEFAULT_LOOKBACK_DAYS, HYPERLIQUID_DEFAULT_OHLCV_INTERVAL, HYPERLIQUID_HLP_VAULT_ADDRESS, HYPERLIQUID_HYPEREVM_USDC_MAINNET, HYPERLIQUID_HYPEREVM_USDC_TESTNET, HYPERLIQUID_INTERVAL_MS, HYPERLIQUID_MAX_CANDLE_LIMIT, HYPERLIQUID_MAX_LOOKBACK_DAYS, HYPERLIQUID_MAX_OHLCV_BARS, HYPERLIQUID_PROTOCOL_ID, HYPERLIQUID_SPOT_ASSET_OFFSET, HYPERLIQUID_SUPPORTED_CHAIN_IDS, HYPERLIQUID_TIF, HYPERLIQUID_USER_SIGNED_DOMAIN, HYPERLIQUID_USER_SIGNED_SIGNATURE_CHAIN_ID, HYPERLIQUID_WITHDRAW_SIGN_TYPES, buildCoreWriterCancelByCloidCalldata, buildCoreWriterCancelByOidCalldata, buildCoreWriterLimitOrderCalldata, buildCoreWriterStakingDepositCalldata, buildCoreWriterStakingWithdrawCalldata, buildCoreWriterTokenDelegateCalldata, buildCoreWriterUsdClassTransferCalldata, buildCoreWriterVaultTransferCalldata, buildEvmMultisignBodyHyperliquidBridgeDepositBatch, buildEvmMultisignBodyHyperliquidCancelBatch, buildEvmMultisignBodyHyperliquidCloseBatch, buildEvmMultisignBodyHyperliquidDelegateBatch, buildEvmMultisignBodyHyperliquidDelegateOnlyBatch, buildEvmMultisignBodyHyperliquidLimitOrderBatch, buildEvmMultisignBodyHyperliquidStakeDepositBatch, buildEvmMultisignBodyHyperliquidStakeWithdrawBatch, buildEvmMultisignBodyHyperliquidUndelegateBatch, buildEvmMultisignBodyHyperliquidUsdClassTransferBatch, buildEvmMultisignBodyHyperliquidVaultDepositBatch, buildEvmMultisignBodyHyperliquidVaultWithdrawBatch, buildHyperliquidAgentTypedData, buildHyperliquidBorrowLendAction, buildHyperliquidBorrowLendMultisign, buildHyperliquidBridgeWithdrawMultisign, buildHyperliquidLimitOrderWire, buildHyperliquidLimitOrderWithTpslMultisign, buildHyperliquidNormalTpslOrderWires, buildHyperliquidOrderAction, buildHyperliquidTriggerOrderWire, buildHyperliquidUpdateLeverageAction, buildHyperliquidUpdateLeverageMultisign, buildHyperliquidWithdraw3Action, buildHyperliquidWithdraw3TypedData, coreWriterStep, createHyperliquidL1ActionHash, hyperliquidApiBaseUrl, hyperliquidBridgeArbitrumChainId, hyperliquidBridgeConfig, hyperliquidCanonicalLendCoin, hyperliquidCollectAllPerpMarkets, hyperliquidCollectHip3StockMarkets, hyperliquidCollectNativePerpMarkets, hyperliquidEncodePx8, hyperliquidEncodeUsd6, hyperliquidEncodeWei8, hyperliquidFetchActiveAssetData, hyperliquidFetchAllBorrowLendReserveStates, hyperliquidFetchAllMids, hyperliquidFetchBorrowLendReserveState, hyperliquidFetchBorrowLendUserState, hyperliquidFetchCandles, hyperliquidFetchClearinghouseState, hyperliquidFetchDelegations, hyperliquidFetchDelegationsForExecutor, hyperliquidFetchDexList, hyperliquidFetchFrontendOpenOrders, hyperliquidFetchLendMarketsSummary, hyperliquidFetchLendPositionsSummary, hyperliquidFetchMarketSnapshot, hyperliquidFetchMarketSnapshotSummary, hyperliquidFetchMarketsSummary, hyperliquidFetchOhlcvRange, hyperliquidFetchOhlcvSummary, hyperliquidFetchOpenContextSummary, hyperliquidFetchOpenMarketContext, hyperliquidFetchOpenOrders, hyperliquidFetchOpenOrdersSummary, hyperliquidFetchOrdersForExecutor, hyperliquidFetchPerpAssetContext, hyperliquidFetchPerpConciseAnnotations, hyperliquidFetchPerpMeta, hyperliquidFetchPositionDisplayRows, hyperliquidFetchPositionsForExecutor, hyperliquidFetchSpotClearinghouseState, hyperliquidFetchSpotMeta, hyperliquidFetchSpotTokens, hyperliquidFetchStakingSummary, hyperliquidFetchStakingSummaryForExecutor, hyperliquidFetchStockMarketsSummary, hyperliquidFetchUsdClassBalances, hyperliquidFetchUsdClassBalancesSummary, hyperliquidFetchUserAbstraction, hyperliquidFetchUserVaultEquities, hyperliquidFetchUserVaultEquitiesSummary, hyperliquidFetchVaultApysSummary, hyperliquidFetchVaultCatalogSummary, hyperliquidFetchVaultSummaries, hyperliquidFloatToWire, hyperliquidInferDexFromCoin, hyperliquidIsSpotAssetId, hyperliquidL1TifFromKey, hyperliquidLendRoleFromLtv, hyperliquidManualBorrowEnabled, hyperliquidMarketSymbol, hyperliquidOrderClosesPosition, hyperliquidOrderCountsAsPendingClose, hyperliquidPendingCloseByCoin, hyperliquidPendingCloseForPosition, hyperliquidProtocolModule, hyperliquidResolveAsset, hyperliquidResolveLendTokenForChain, hyperliquidResolveOhlcvWindow, hyperliquidResolvePerpAsset, hyperliquidResolvePerpMarket, hyperliquidResolveSpotAsset, hyperliquidResolveSpotToken, hyperliquidResolveTif, hyperliquidSearchMarkets, hyperliquidSearchMarketsSummary, hyperliquidVaultStatsUrl, isHyperliquidBridgeArbitrumChainSupported, isHyperliquidBridgeArbitrumUsdcRow, isHyperliquidChainSupported, isHyperliquidHyperEvmUsdcRow, mapHyperliquidLendMarketRows, parseHyperliquidBorrowLendAmount, parseHyperliquidBorrowLendReserveTuples, parseHyperliquidBorrowLendUserState, validateHyperliquidTpslGeometry };
|
|
2234
2536
|
//# sourceMappingURL=index.js.map
|
|
2235
2537
|
//# sourceMappingURL=index.js.map
|