UNPKG

@broxus/tvm-connect

Version:

Nekoton-compatible wallets connector.

62 lines (61 loc) 3.05 kB
import { AbstractStore } from '@broxus/js-core'; import { type AddNetwork, type Address, type AssetType, type Network, type ProviderEvents, type ProviderProperties, type ProviderRpcClient, type Subscription } from 'everscale-inpage-provider'; import { type Account, type ConnectionType, type TvmProviderPlatformLinks } from '../types'; export interface NekotonConnectorCtorParams { fallbackProviderFactory?: () => Promise<ProviderRpcClient> | ProviderRpcClient; info?: { description?: string; icon?: string; links?: TvmProviderPlatformLinks & { homepage?: string; universalLink?: string; }; name: string; }; options?: ProviderProperties; onDisconnect?: (err: any) => Promise<void> | void; } export interface NekotonConnectorData { account?: Account; chainId?: number; version?: string; } export interface NekotonConnectorState { isConnecting?: boolean; isDisconnecting?: boolean; isInitialized?: boolean; isInitializing?: boolean; } export interface ConnectOptions { onConnect?: (connector: NekotonConnector) => Promise<void> | void; } export interface DisconnectOptions { force?: boolean; onDisconnect?: (connector: NekotonConnector) => Promise<void> | void; } export declare abstract class NekotonConnector extends AbstractStore<NekotonConnectorData, NekotonConnectorState> { protected readonly params?: Readonly<NekotonConnectorCtorParams> | undefined; abstract readonly type: ConnectionType; provider?: ProviderRpcClient; protected constructor(params?: Readonly<NekotonConnectorCtorParams> | undefined); abstract init(): Promise<ProviderRpcClient | undefined>; connect(networkIdOParams?: number | AddNetwork, options?: ConnectOptions): Promise<void>; disconnect(options?: DisconnectOptions): Promise<void>; addAsset(address: Address | string, type?: AssetType): Promise<boolean>; addNetwork(network: AddNetwork, switchNetwork?: boolean): Promise<Network | null>; switchNetwork(networkIdOParams: number | AddNetwork): Promise<Network | null>; get account(): NekotonConnectorData['account']; get chainId(): NekotonConnectorData['chainId']; get version(): NekotonConnectorData['version']; get isConnecting(): NekotonConnectorState['isConnecting']; get isDisconnecting(): NekotonConnectorState['isDisconnecting']; get isInitialized(): NekotonConnectorState['isInitialized']; get isInitializing(): NekotonConnectorState['isInitializing']; protected handlePermissionsChanged(event: ProviderEvents['permissionsChanged']): Promise<void>; protected handleNetworkChanged(event: ProviderEvents['networkChanged']): Promise<void>; protected handleDisconnected(err: Error): void; protected runSubscriptions(): Promise<void>; protected stopSubscriptions(): Promise<void>; protected networkChangeSubscription: Subscription<'networkChanged'> | undefined; protected permissionsSubscription: Subscription<'permissionsChanged'> | undefined; }