UNPKG

@broxus/tvm-connect

Version:

TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.

67 lines (66 loc) 2.04 kB
import { type Permissions, type Provider } from 'everscale-inpage-provider'; import { type NekotonConnector } from './core'; export type Account = Permissions['accountInteraction']; export declare enum ConnectionType { NEKOTON_WALLET = "NEKOTON_WALLET", NEKOTON_ADAPTER = "NEKOTON_ADAPTER", EXTERNAL_APP = "EXTERNAL_APP" } export interface RecentConnectionMeta { chainId?: string; disconnected?: boolean; providerId: string; type?: ConnectionType; } export type TvmWalletAvailablePlatforms = 'ios' | 'android' | 'chromeExtension' | 'firefoxExtension'; export type TvmWalletPlatformLinks = Partial<Record<TvmWalletAvailablePlatforms, string>>; export type PopupType = 'drawer'; export interface TvmWalletProviderInfo { description?: string; hasScanner?: boolean; icon?: string; icons?: { dark?: string; light?: string; }; links?: TvmWalletPlatformLinks & { homepage?: string; universalLink?: string; }; name: string; } export interface TvmWalletProviderConfig { connector: NekotonConnector; id: string; info?: TvmWalletProviderInfo; isRecent?: boolean; minVersion?: string; } export declare enum TvmWalletRdnsList { SPARX_WALLET = "com.sparxwallet", SPARX_WALLET_MOBILE = "com.broxus.sparx.app", EVER_WALLET = "net.everwallet", EVER_WALLET_MOBILE = "com.broxus.crystal.app", VENOM_WALLET = "com.venomwallet", VENOM_WALLET_MOBILE = "com.venom.wallet" } export declare enum TvmProviderEvent { REQUEST_PROVIDER = "tvm:requestProvider", ANNOUNCE_PROVIDER = "tvm:announceProvider" } export interface TvmAnnounceProviderEvent extends CustomEvent { detail: TvmProviderDetail; type: TvmProviderEvent.ANNOUNCE_PROVIDER; } export interface TvmProviderDetail { info: TvmProviderInfo; provider: Provider; } export interface TvmProviderInfo { name: string; rdns?: string; } export interface NekotonConnectorInitCtorParams { autoInit?: boolean; fallbackAttempts?: number; }