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