zksync-sso
Version:
ZKsync Smart Sign On SDK
39 lines • 1.61 kB
TypeScript
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