UNPKG

@arcana/auth

Version:

Arcana Auth

120 lines (119 loc) 3.9 kB
import { ArcanaProvider } from './provider'; import { AppConfig, BearerAuthentication, ConstructorParams, CustomProviderParams, EthereumProvider, FirebaseBearer, Logins, NetworkConfig, Position, Theme, ThemeConfig, UserInfo } from './typings'; import { ArcanaSolanaAPI } from './solana'; declare class AuthProvider { appId: string; private params; private providerInfo; private appConfig; private iframeWrapper; private networkConfig; private initStatus; private initPromises; private readonly _provider; private _solanaAPI; private connectCtrl; private _standaloneMode; constructor(clientId: string, p?: Partial<ConstructorParams>); /** * A function to initialize the wallet, should be called before getting provider */ init(): Promise<AuthProvider>; /** * A function to start otp login */ loginWithOTPStart: (email: string) => Promise<{ begin: () => Promise<void>; isCompleteRequired: boolean; }>; /** * A function to trigger custom login in the wallet */ loginWithCustomProvider: (params: CustomProviderParams) => Promise<EthereumProvider>; /** * A function to finish otp login */ loginWithOTPComplete: (otp: string, onMFAFlow?: () => void) => Promise<void>; /** * A function to open login plug n play modal */ connect(): Promise<EthereumProvider>; /** * A function to show wallet */ showWallet(): void; /** * A function to trigger social login in the wallet */ loginWithSocial: (loginType: string) => Promise<EthereumProvider>; /** * A function to trigger passwordless login in the wallet * @deprecated use loginWithOTPStart and loginWithOTPComplete instead */ loginWithLink: (email: string, emailSentHook?: () => void) => Promise<EthereumProvider>; private _loginWithOTPStart; private _loginWithOTPComplete; loginWithBearer: (type: BearerAuthentication, data: FirebaseBearer) => Promise<boolean>; get connected(): boolean; /** * A function to get user info for the logged-in user * @returns available user info */ getUser(): Promise<UserInfo>; /** * A function to determine whether the user is logged in */ isLoggedIn(): Promise<boolean>; /** * A function to log out the user */ logout(): Promise<void>; /** * A function to request public key of other users * * **NOTE**: Currently does not work by default for most applications. * MFA availability (which is enabled by default) has to be disabled for this to work. */ getPublicKey(email: string, verifier?: Logins): Promise<string>; /** * A function to request list of available logins */ getLogins(): Promise<Logins[]>; /** * A function to get web3 provider * @deprecated use .provider instead */ getProvider(): ArcanaProvider; /** * A function to be called before trying to .reconnect() */ canReconnect(): Promise<boolean>; /** * A function to try to reconnect to last login session. * Should be called on event of click function as it opens a popup. */ reconnect(): Promise<void>; /** * @internal */ get chainId(): string; private beginLogin; private waitForConnect; private setAppConfig; private waitForInit; private resolveInitPromises; /** * @internal */ get provider(): ArcanaProvider; get solana(): ArcanaSolanaAPI; get logo(): { horizontal: string; vertical: string; }; get theme(): Theme; private setProviders; private announceProvider; private standaloneMode; } export { AuthProvider, ConstructorParams, EthereumProvider, BearerAuthentication, AppConfig, Theme, Position, Logins, UserInfo, ThemeConfig, NetworkConfig, };