@keplr-ewallet/ewallet-sdk-eth
Version:
32 lines (31 loc) • 1.18 kB
TypeScript
import type { Address, AddEthereumChainParameter as RpcChain, RpcError } from "viem";
import type { RpcMethod, RpcRequestArgs, RpcResponseData } from "../rpc";
import type { EthSigner } from "../types";
import type { ProviderEventEmitter } from "./emitter";
export interface ProviderConnectInfo {
chainId: string;
}
export type ProviderEventMap = {
connect: ProviderConnectInfo;
disconnect: RpcError;
chainChanged: string;
accountsChanged: Address[];
};
export type ProviderEvent = keyof ProviderEventMap;
export type ProviderEventHandlers = {
connect: (info: ProviderConnectInfo) => void;
disconnect: (error: RpcError) => void;
chainChanged: (chainId: string) => void;
accountsChanged: (accounts: Address[]) => void;
};
export type ProviderEventHandler<K extends ProviderEvent> = (payload: ProviderEventMap[K]) => void;
export interface EIP1193Provider extends ProviderEventEmitter {
request<M extends RpcMethod>(args: RpcRequestArgs<M>): Promise<RpcResponseData<M>>;
}
export type RpcChainWithStatus = RpcChain & {
connected: boolean;
};
export type EWalletEIP1193ProviderOptions = {
chains: RpcChain[];
signer?: EthSigner;
};