UNPKG

@nfid/identitykit

Version:

A React library for adding wallet connections to dApps.

69 lines (68 loc) 2.46 kB
import type { Signer } from "@slide-computer/signer"; import { type SignerStorage } from "@slide-computer/signer-storage"; import { AuthClientStorage } from "@dfinity/auth-client"; import { SubAccount } from "@dfinity/ledger-icp"; import { Principal } from "@dfinity/principal"; import { IdleManager, IdleManagerOptions } from "../timeout-managers/idle-manager"; export declare const STORAGE_KEY = "client"; export declare const STORAGE_CONNECTED_OWNER_KEY = "connected-owner"; export declare const STORAGE_CONNECTED_SUBACCOUNT_KEY = "connected-subaccount"; export interface IdleOptions extends IdleManagerOptions { /** * Disables idle functionality for {@link IdleManager} * @default false */ disableIdle?: boolean; /** * Disables default idle behavior - call logout * @default false */ disableDefaultIdleCallback?: boolean; } export interface SignerClientOptions { signer: Signer; /** * Optional, used to generate random bytes * @default uses browser/node Crypto by default */ crypto?: Pick<Crypto, "getRandomValues" | "randomUUID">; /** * Optional storage with get, set, and remove. Uses {@link IdbStorage} by default */ storage?: AuthClientStorage; /** * Options to handle idle timeouts * @default after 30 minutes, invalidates the identity */ idleOptions?: IdleOptions; derivationOrigin?: string; onLogout?: () => Promise<unknown>; } export declare abstract class SignerClient { protected options: SignerClientOptions; protected idleManager: IdleManager | undefined; protected storage: SignerStorage; connectedUser: { principal: Principal; subAccount?: SubAccount; } | undefined; constructor(options: SignerClientOptions); protected registerDefaultIdleCallback(): void; protected logout(options?: { returnTo?: string; }): Promise<void>; protected setConnectedUser(user: { owner: string; subAccount?: ArrayBuffer; } | undefined): Promise<void>; protected setConnectedUserToStorage(user: { owner: string; subAccount?: ArrayBuffer; } | undefined): Promise<void>; static shouldCheckIsUserConnected(): boolean; protected getConnectedUserFromStorage(): Promise<{ owner: string; subAccount?: ArrayBuffer; } | undefined>; protected get crypto(): Pick<Crypto, "getRandomValues" | "randomUUID">; }