@arcana/auth
Version:
Arcana Auth
55 lines (54 loc) • 2.05 kB
TypeScript
import { CustomProviderParams, EthereumProvider, JsonRpcId } from './typings';
import SafeEventEmitter from '@metamask/safe-event-emitter';
import IframeWrapper from './iframeWrapper';
export interface RequestArguments {
method: string;
params?: unknown[] | Record<string, unknown>;
}
interface AuthProvider {
loginWithSocial(loginType: string): void;
loginWithLink(email: string): void;
connect(): Promise<EthereumProvider>;
appId: string;
}
export declare class ArcanaProvider extends SafeEventEmitter implements EthereumProvider {
private authUrl;
chainId: string;
connected: boolean;
private auth;
private communication;
private subscriber;
private iframe;
private logger;
private popup;
constructor(authUrl: string);
isArcana(): boolean;
init(iframe: IframeWrapper, auth: AuthProvider): Promise<void>;
private onResponse;
isLoggedIn(): Promise<boolean>;
connect(): Promise<EthereumProvider>;
isConnected(): Promise<boolean>;
isLoginAvailable(type: string): Promise<boolean>;
initCustomLogin(params: CustomProviderParams): Promise<string>;
requestUserInfo(): Promise<import("./typings").UserInfo>;
getReconnectionUrl(): Promise<string>;
initOTPLogin(email: string): Promise<string | void>;
completeOTPLogin(otp: string): Promise<void>;
getPublicKey(email: string, verifier: string): Promise<string>;
getAvailableLogins(): Promise<import("./typings").Logins[]>;
logout(): Promise<void>;
initPasswordlessLogin(email: string): Promise<string | {
sessionId: string;
setToken: string;
}>;
initSocialLogin(kind: string): Promise<string>;
expandWallet(): Promise<void>;
getKeySpaceConfigType(): Promise<string>;
private getCommunication;
request(args: RequestArguments): Promise<unknown>;
getResponse<U>(method: string, id: JsonRpcId): Promise<U>;
private createRequestUrl;
setChainId(val: unknown): void;
handleEvents: (t: string, val: unknown) => void;
}
export {};