UNPKG

@better-auth-ui/core

Version:

Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.

66 lines (65 loc) 2 kB
export type SiweConnectedWallet = { address: string; chainId: number; }; /** Adapts an injected wallet, Wagmi, RainbowKit, or another wallet client. */ export interface SiweWalletConnector { readonly id: string; readonly label: string; connect(): Promise<SiweConnectedWallet>; signMessage(input: { address: string; message: string; }): Promise<string>; } export type Eip1193Request = { method: string; params?: readonly unknown[] | object; }; export interface Eip1193Provider { request(request: Eip1193Request): Promise<unknown>; } /** Creates a connector for EIP-1193 providers such as `window.ethereum`. */ export declare function createEip1193WalletConnector(options?: { provider?: Eip1193Provider; id?: string; label?: string; }): SiweWalletConnector; export type SiweMessageInput = SiweConnectedWallet & { domain: string; uri: string; nonce: string; statement?: string; issuedAt?: Date; expirationTime?: Date; notBefore?: Date; requestId?: string; resources?: string[]; }; /** Builds an ERC-4361 Sign-In with Ethereum message. */ export declare function createSiweMessage(input: SiweMessageInput): string; export type SiweWalletAccount = { id: string; address: string; chainId: number; isPrimary: boolean; createdAt: Date; }; export type SiweWalletLinkChallenge = { message: string; }; export type SiweWalletLinkInput = SiweConnectedWallet & { message: string; signature: string; }; /** * Application-owned, server-backed wallet operations. * Implementations must authorize every operation from the server session. */ export interface SiweWalletManager { list(signal?: AbortSignal): Promise<SiweWalletAccount[]>; createLinkChallenge(wallet: SiweConnectedWallet): Promise<SiweWalletLinkChallenge>; link(input: SiweWalletLinkInput): Promise<void>; unlink(walletId: string): Promise<void>; setPrimary(walletId: string): Promise<void>; }