@arcana/auth
Version:
Arcana Auth
120 lines (119 loc) • 3.9 kB
TypeScript
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, };