UNPKG

zksync-sso

Version:
39 lines 1.61 kB
import { EventEmitter } from "eventemitter3"; import type { RpcSchema as RpcSchemaGeneric, WalletClient } from "viem"; import type { ZksyncSsoSessionClient } from "../client/index.js"; import type { ExtractParams, ExtractReturnType, Method, RpcSchema } from "./rpc.js"; export interface RequestArguments<M extends Method<TSchema>, TSchema extends RpcSchemaGeneric = RpcSchema> { readonly method: M; readonly params?: ExtractParams<M, TSchema>; } export interface ProviderRpcError extends Error { message: string; code: number; data?: unknown; } interface ProviderMessage { type: string; data: unknown; } interface ProviderConnectInfo { readonly chainId: string; } export interface ProviderInterface extends EventEmitter { request<M extends Method>(args: RequestArguments<M>): Promise<ExtractReturnType<M>>; disconnect(): Promise<void>; getClient(parameters?: { chainId?: number; }): Promise<ZksyncSsoSessionClient | WalletClient> | (ZksyncSsoSessionClient | WalletClient); on(event: "connect", listener: (info: ProviderConnectInfo) => void): this; on(event: "disconnect", listener: (error: ProviderRpcError) => void): this; on(event: "chainChanged", listener: (chainId: string) => void): this; on(event: "accountsChanged", listener: (accounts: string[]) => void): this; on(event: "message", listener: (message: ProviderMessage) => void): this; } export interface AppMetadata { name: string; icon: string | null; configData: Record<string, string | number | boolean>; } export {}; //# sourceMappingURL=interface.d.ts.map