@nktkas/hyperliquid
Version:
Hyperliquid API SDK for all major JS runtimes, written in TypeScript.
119 lines • 3.96 kB
TypeScript
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