UNPKG

@broxus/tvm-connect

Version:

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

53 lines (52 loc) 2.55 kB
import { type TvmNetworkConfig, AbstractStore } from '@broxus/js-core'; import { type AddNetwork, type Address, type AssetType, type Network } from 'everscale-inpage-provider'; import { type IReactionDisposer } from 'mobx'; import * as React from 'react'; import * as ReactDOM from 'react-dom/client'; import { type DisconnectOptions, type NekotonConnector } from '../core'; import { type TvmConnectServiceCtorParams, TvmConnectService } from '../services'; import { TvmConnectDialogStore } from '../stores'; import { type Account, type PopupType, type TvmWalletProviderConfig, type TvmWalletProviderInfo } from '../types'; export interface TvmConnectCtorParams extends TvmConnectServiceCtorParams { agreementsNote?: React.ReactNode | false; getProviderInfo?: (providerId: string, info: TvmWalletProviderInfo) => TvmWalletProviderInfo; locale?: string; popupType?: PopupType; qrEnabled?: boolean; onPreconnect?: (connector: NekotonConnector) => (Promise<void> | void); } export interface TvmConnectWatchData { account?: Account; address?: Account['address']; balance?: string; chainId?: number; network?: TvmNetworkConfig; } export type TvmConnectWatchCallback = (data: TvmConnectWatchData) => Promise<void> | void; interface ConnectParams { network?: TvmNetworkConfig; popupType?: PopupType; qrEnabled?: boolean; } export declare class TvmConnect extends AbstractStore { protected readonly params?: Readonly<TvmConnectCtorParams> | undefined; readonly name = "TvmConnect"; protected _root: ReactDOM.Root | undefined; protected _dialog: TvmConnectDialogStore; protected _service: TvmConnectService; constructor(params?: Readonly<TvmConnectCtorParams> | undefined); getDialog(): TvmConnectDialogStore; getService(): TvmConnectService; connect(params?: ConnectParams): Promise<NekotonConnector | undefined>; connectTo(providerConfig: TvmWalletProviderConfig, params?: ConnectParams): Promise<NekotonConnector | undefined>; disconnect(options?: DisconnectOptions): Promise<void>; addAsset(address: Address | string, type?: AssetType): Promise<boolean | undefined>; changeAccount(): Promise<void>; addNetwork(network: AddNetwork, switchNetwork?: boolean): Promise<Network | null>; switchNetwork(networkIdOParams: number | AddNetwork): Promise<Network | null>; watch(callback: TvmConnectWatchCallback): this; unwatch(): this; protected _render(): void; protected _watchDisposer: IReactionDisposer | undefined; } export {};