@broxus/tvm-connect
Version:
TypeScript SDK for connecting to Nekoton-compatible wallets using a unified interface.
67 lines (66 loc) • 2.04 kB
TypeScript
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;
}