UNPKG

@vela-ventures/ao-sync-sdk

Version:
75 lines (74 loc) 2.9 kB
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"; declare global { interface Window { __AOSYNC_VERSION__?: string; } } 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; private isAppleMobileDevice; private isInappBrowser; private autoSign; 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; }