@vela-ventures/ao-sync-sdk
Version:
JavaScript SDK for Beacon wallet
67 lines (66 loc) • 2.73 kB
TypeScript
import { IClientOptions } from "mqtt";
import type Transaction from "arweave/web/lib/transaction";
import type { PermissionType, GatewayConfig, DispatchResult, DataItem, AppInfo, UserTokensResult, UserTokensOptions } from "arconnect";
import "./fonts";
export default class WalletClient {
private client;
uid: string | null;
private qrCode;
private modal;
private approvalModal;
private responseListeners;
private connectionListener;
private reconnectListener;
private responseTimeoutMs;
private txTimeoutMs;
private eventListeners;
private activeTimeouts;
private isConnected;
private reconnectionTimeout;
private connectOptions;
private browserWalletBackup;
private pendingRequests;
private isDarkMode;
sessionActive: boolean;
constructor(responseTimeoutMs?: number, txTimeoutMs?: number);
private createModal;
private createApprovalModal;
private handleMQTTMessage;
private base64UrlDecode;
private handleConnectResponse;
private handleDisconnectResponse;
private publishMessage;
private createResponsePromise;
private clearAllTimeouts;
connect({ permissions, appInfo, gateway, brokerUrl, options, }: {
permissions?: PermissionType[];
appInfo?: AppInfo;
gateway?: GatewayConfig;
brokerUrl?: string;
options?: IClientOptions;
}): Promise<void>;
reconnect(brokerUrl?: string, options?: IClientOptions): Promise<void>;
private processPendingRequests;
disconnect(): Promise<void>;
getActiveAddress(): Promise<string>;
getAllAddresses(): Promise<string[]>;
getPermissions(): Promise<PermissionType[]>;
getWalletNames(): Promise<{
[addr: string]: string;
}>;
encrypt(data: BufferSource, algorithm?: RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<Uint8Array>;
decrypt(data: BufferSource, algorithm?: RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise<Uint8Array>;
getArweaveConfig(): Promise<GatewayConfig>;
signature(data: Uint8Array, algorithm?: AlgorithmIdentifier | RsaPssParams | EcdsaParams): Promise<Uint8Array>;
getActivePublicKey(): Promise<string>;
addToken(id: string): Promise<void>;
sign(transaction: Transaction): Promise<Transaction>;
dispatch(transaction: Transaction): Promise<DispatchResult>;
signDataItem(dataItem: DataItem): Promise<ArrayBuffer>;
isAvailable(): Promise<boolean>;
on(event: string, listener: (data: any) => void): void;
off(event: string, listener: (data: any) => void): void;
private emit;
userTokens(options: UserTokensOptions): Promise<UserTokensResult>;
private populateWindowObject;
}