@reown/appkit-wallet
Version:
#### 🔗 [Website](https://reown.com/appkit)
142 lines (141 loc) • 6.07 kB
TypeScript
import type { EmbeddedWalletTimeoutReason } from '@reown/appkit-common';
import { W3mFrameLogger } from './W3mFrameLogger.js';
import type { W3mFrameTypes } from './W3mFrameTypes.js';
interface W3mFrameProviderConfig {
projectId: string;
chainId?: W3mFrameTypes.Network['chainId'];
enableLogger?: boolean;
onTimeout?: (reason: EmbeddedWalletTimeoutReason) => void;
abortController: AbortController;
}
export declare class W3mFrameProvider {
w3mLogger?: W3mFrameLogger;
private w3mFrame;
private abortController;
private openRpcRequests;
private rpcRequestHandler?;
private rpcSuccessHandler?;
private rpcErrorHandler?;
onTimeout?: (reason: EmbeddedWalletTimeoutReason) => void;
user?: W3mFrameTypes.Responses['FrameGetUserResponse'];
private initPromise;
constructor({ projectId, chainId, enableLogger, onTimeout, abortController }: W3mFrameProviderConfig);
init(): Promise<void>;
getLoginEmailUsed(): boolean;
getEmail(): string | null;
getUsername(): string | null;
reload(): Promise<void>;
connectEmail(payload: W3mFrameTypes.Requests['AppConnectEmailRequest']): Promise<{
action: "VERIFY_DEVICE" | "VERIFY_OTP" | "CONNECT";
}>;
connectDevice(): Promise<undefined>;
connectOtp(payload: W3mFrameTypes.Requests['AppConnectOtpRequest']): Promise<undefined>;
isConnected(): Promise<{
isConnected: boolean;
}>;
getChainId(): Promise<{
chainId: string | number;
}>;
getSocialRedirectUri(payload: W3mFrameTypes.Requests['AppGetSocialRedirectUriRequest']): Promise<{
uri: string;
}>;
updateEmail(payload: W3mFrameTypes.Requests['AppUpdateEmailRequest']): Promise<{
action: "VERIFY_PRIMARY_OTP" | "VERIFY_SECONDARY_OTP";
}>;
updateEmailPrimaryOtp(payload: W3mFrameTypes.Requests['AppUpdateEmailPrimaryOtpRequest']): Promise<undefined>;
updateEmailSecondaryOtp(payload: W3mFrameTypes.Requests['AppUpdateEmailSecondaryOtpRequest']): Promise<{
newEmail: string;
}>;
syncTheme(payload: W3mFrameTypes.Requests['AppSyncThemeRequest']): Promise<undefined>;
syncDappData(payload: W3mFrameTypes.Requests['AppSyncDappDataRequest']): Promise<W3mFrameTypes.Responses['FrameSyncDappDataResponse']>;
getSmartAccountEnabledNetworks(): Promise<{
smartAccountEnabledNetworks: number[];
}>;
setPreferredAccount(type: W3mFrameTypes.AccountType): Promise<{
type: string;
address: string;
}>;
connect(payload?: W3mFrameTypes.Requests['AppGetUserRequest']): Promise<{
chainId: string | number;
address: string;
email?: string | null | undefined;
smartAccountDeployed?: boolean | undefined;
accounts?: {
type: "eoa" | "smartAccount";
address: string;
}[] | undefined;
preferredAccountType?: string | undefined;
}>;
getUser(payload: W3mFrameTypes.Requests['AppGetUserRequest']): Promise<{
chainId: string | number;
address: string;
email?: string | null | undefined;
smartAccountDeployed?: boolean | undefined;
accounts?: {
type: "eoa" | "smartAccount";
address: string;
}[] | undefined;
preferredAccountType?: string | undefined;
}>;
connectSocial(uri: string): Promise<{
chainId: string | number;
address: string;
email?: string | null | undefined;
accounts?: {
type: "eoa" | "smartAccount";
address: string;
}[] | undefined;
userName?: string | null | undefined;
}>;
getFarcasterUri(): Promise<{
url: string;
}>;
connectFarcaster(): Promise<{
userName: string;
}>;
switchNetwork(chainId: number | string): Promise<{
chainId: string | number;
}>;
disconnect(): Promise<undefined>;
request(req: W3mFrameTypes.RPCRequest): Promise<W3mFrameTypes.RPCResponse>;
onRpcRequest(callback: (request: W3mFrameTypes.RPCRequest) => void): void;
onRpcSuccess(callback: (response: W3mFrameTypes.FrameEvent, request: W3mFrameTypes.RPCRequest) => void): void;
onRpcError(callback: (error: Error, request: W3mFrameTypes.RPCRequest) => void): void;
onIsConnected(callback: () => void): void;
onNotConnected(callback: () => void): void;
onConnect(callback: (user: W3mFrameTypes.Responses['FrameGetUserResponse']) => void): void;
onSocialConnected(callback: (user: W3mFrameTypes.Responses['FrameConnectSocialResponse']) => void): void;
getCapabilities(): Promise<Record<`0x${string}`, W3mFrameTypes.WalletCapabilities>>;
onSetPreferredAccount(callback: ({ type, address }: {
type: string;
address?: string;
}) => void): void;
onGetSmartAccountEnabledNetworks(callback: (networks: number[]) => void): void;
getAvailableChainIds(): string[];
rejectRpcRequests(): void;
private appEvent;
private setNewLastEmailLoginTime;
private setSocialLoginSuccess;
private setLoginSuccess;
private deleteAuthLoginCache;
private setLastUsedChainId;
getLastUsedChainId(): string | number | undefined;
private persistSmartAccountEnabledNetworks;
}
export interface W3mFrameProviderMethods {
connectEmail: W3mFrameProvider['connectEmail'];
connectOtp: W3mFrameProvider['connectOtp'];
updateEmail: W3mFrameProvider['updateEmail'];
updateEmailPrimaryOtp: W3mFrameProvider['updateEmailPrimaryOtp'];
updateEmailSecondaryOtp: W3mFrameProvider['updateEmailSecondaryOtp'];
getEmail: W3mFrameProvider['getEmail'];
connectDevice: W3mFrameProvider['connectDevice'];
connectSocial: W3mFrameProvider['connectSocial'];
getSocialRedirectUri: W3mFrameProvider['getSocialRedirectUri'];
connectFarcaster: W3mFrameProvider['connectFarcaster'];
getFarcasterUri: W3mFrameProvider['getFarcasterUri'];
syncTheme: W3mFrameProvider['syncTheme'];
syncDappData: W3mFrameProvider['syncDappData'];
switchNetwork: W3mFrameProvider['switchNetwork'];
}
export {};