UNPKG

@nktkas/hyperliquid

Version:

Hyperliquid API SDK for all major JS runtimes, written in TypeScript.

119 lines 3.96 kB
import { HyperliquidError } from "../_base.js"; /** Abstract interface for an {@link https://docs.ethers.org/v6/api/providers/#Signer | ethers.js v6} */ export interface AbstractEthersV6Signer { signTypedData(domain: { name: string; version: string; chainId: number; verifyingContract: string; }, types: { [key: string]: { name: string; type: string; }[]; }, value: Record<string, unknown>): Promise<string>; getAddress(): Promise<string>; provider?: { getNetwork(): Promise<{ chainId: number | bigint; }>; } | null; } /** Abstract interface for an {@link https://docs.ethers.org/v5/api/signer/ | ethers.js v5} */ export interface AbstractEthersV5Signer { _signTypedData(domain: { name: string; version: string; chainId: number; verifyingContract: string; }, types: { [key: string]: { name: string; type: string; }[]; }, value: Record<string, unknown>): Promise<string>; getAddress(): Promise<string>; provider?: { getNetwork(): Promise<{ chainId: number | bigint; }>; } | null; } /** Abstract interface for a {@link https://viem.sh/docs/accounts/jsonRpc#json-rpc-account | viem JSON-RPC Account}. */ export interface AbstractViemJsonRpcAccount { signTypedData(params: { domain: { name: string; version: string; chainId: number; verifyingContract: `0x${string}`; }; types: { [key: string]: { name: string; type: string; }[]; }; primaryType: string; message: Record<string, unknown>; }, options?: unknown): Promise<`0x${string}`>; getAddresses(): Promise<`0x${string}`[]>; getChainId(): Promise<number>; } /** Abstract interface for a {@link https://viem.sh/docs/accounts/local | viem Local Account}. */ export interface AbstractViemLocalAccount { signTypedData(params: { domain: { name: string; version: string; chainId: number; verifyingContract: `0x${string}`; }; types: { [key: string]: { name: string; type: string; }[]; }; primaryType: string; message: Record<string, unknown>; }, options?: unknown): Promise<`0x${string}`>; address: `0x${string}`; } /** Abstract interface for a wallet that can sign typed data. */ export type AbstractWallet = AbstractViemJsonRpcAccount | AbstractViemLocalAccount | AbstractEthersV6Signer | AbstractEthersV5Signer; /** ECDSA signature components. */ export interface Signature { /** First 32-byte component of ECDSA signature */ r: `0x${string}`; /** Second 32-byte component of ECDSA signature */ s: `0x${string}`; /** Recovery identifier */ v: 27 | 28; } /** Thrown when an error occurs in AbstractWallet operations (e.g., signing, getting address). */ export declare class AbstractWalletError extends HyperliquidError { constructor(message: string, options?: ErrorOptions); } export declare function signTypedData(args: { wallet: AbstractWallet; domain: { name: string; version: string; chainId: number; verifyingContract: `0x${string}`; }; types: { [key: string]: { name: string; type: string; }[]; }; primaryType: string; message: Record<string, unknown>; }): Promise<Signature>; /** Get the chain ID of the wallet. */ export declare function getWalletChainId(wallet: AbstractWallet): Promise<`0x${string}`>; /** Get the lowercase wallet address from various wallet types. */ export declare function getWalletAddress(wallet: AbstractWallet): Promise<`0x${string}`>; //# sourceMappingURL=_abstractWallet.d.ts.map