UNPKG

@nktkas/hyperliquid

Version:

Unofficial Hyperliquid API SDK for all major JS runtimes, written in TypeScript and provided with tests

97 lines 2.87 kB
import type { Hex } from "../../base.js"; import type { PortfolioPeriods } from "./accounts.js"; /** Details about a vault. */ export interface VaultDetails { /** Vault name. */ name: string; /** Vault address. */ vaultAddress: Hex; /** Leader address. */ leader: Hex; /** Vault description. */ description: string; /** Vault portfolio metrics grouped by time periods. */ portfolio: PortfolioPeriods; /** Annual percentage rate. */ apr: number; /** Current user's follower state */ followerState: VaultFollowerState | null; /** Ownership percentage held by leader. */ leaderFraction: number; /** Leader's commission percentage. */ leaderCommission: number; /** Vault followers list. */ followers: (Omit<VaultFollowerState, "user"> & { /** Follower's address or Leader. */ user: Hex | "Leader"; })[]; /** Maximum distributable amount. */ maxDistributable: number; /** Maximum withdrawable amount. */ maxWithdrawable: number; /** Vault closure status. */ isClosed: boolean; /** Vault relationship type. */ relationship: VaultRelationship; /** Deposit permission status. */ allowDeposits: boolean; /** Position closure policy on withdrawal. */ alwaysCloseOnWithdraw: boolean; } /** User's vault equity details. */ export interface VaultEquity { /** Vault address. */ vaultAddress: Hex; /** User's deposited equity. */ equity: string; /** Timestamp when the user can withdraw their equity. */ lockedUntilTimestamp: number; } /** Vault follower state. */ export interface VaultFollowerState { /** Follower address. */ user: Hex; /** Follower's vault equity. */ vaultEquity: string; /** Current profit and loss. */ pnl: string; /** All-time profit and loss. */ allTimePnl: string; /** Subscription duration in days. */ daysFollowing: number; /** Vault entry timestamp. */ vaultEntryTime: number; /** Timestamp when funds become unlocked. */ lockupUntil: number; } /** Vault relationship configuration. */ export type VaultRelationship = { /** Relationship type. */ type: "normal" | "child"; } | { /** Relationship type. */ type: "parent"; /** Child vault information. */ data: { /** Child vault addresses. */ childAddresses: Hex[]; }; }; /** Summary of a vault. */ export interface VaultSummary { /** Vault name. */ name: string; /** Vault address. */ vaultAddress: Hex; /** Leader address. */ leader: Hex; /** Total value locked. */ tvl: string; /** Vault closure status. */ isClosed: boolean; /** Vault relationship type. */ relationship: VaultRelationship; /** Creation timestamp. */ createTimeMillis: number; } //# sourceMappingURL=vaults.d.ts.map