UNPKG

@tronweb3/tronwallet-adapter-tronlink

Version:

Wallet adapter for TronLink Wallet extension and TronLink app.

103 lines 3.59 kB
import { Adapter, AdapterState, WalletReadyState, NetworkType } from '@tronweb3/tronwallet-abstract-adapter'; import type { Transaction, SignedTransaction, AdapterName, BaseAdapterConfig, Network } from '@tronweb3/tronwallet-abstract-adapter'; import type { ReqestAccountsResponse, Tron, TronWeb } from './types.js'; export interface TronLinkWallet { ready: boolean; tronWeb: TronWeb; request(config: Record<string, unknown>): Promise<ReqestAccountsResponse | null>; } export declare const chainIdNetworkMap: Record<string, NetworkType>; export declare function getNetworkInfoByTronWeb(tronWeb: TronWeb): Promise<{ networkType: NetworkType; chainId: string; fullNode: string; solidityNode: string; eventServer: string; }>; declare global { interface Window { tronLink?: TronLinkWallet; tronWeb?: TronWeb & { ready?: boolean; }; tron?: Tron; } } export interface TronLinkAdapterConfig extends BaseAdapterConfig { /** * Timeout in millisecond for checking if TronLink wallet exists. * Default is 30 * 1000ms */ checkTimeout?: number; /** * Set if open TronLink app using DeepLink. * Default is true. */ openTronLinkAppOnMobile?: boolean; /** * The icon of your dapp. Used when open TronLink app in mobile device browsers. */ dappIcon?: string; /** * The name of your dapp. Used when open TronLink app in mobile device browsers. */ dappName?: string; } export declare const TronLinkAdapterName: AdapterName<"TronLink">; export declare class TronLinkAdapter extends Adapter { name: AdapterName<"TronLink">; url: string; icon: string; config: Required<TronLinkAdapterConfig>; private _readyState; private _state; private _connecting; private _wallet; private _address; private _supportNewTronProtocol; constructor(config?: TronLinkAdapterConfig); get address(): string | null; get state(): AdapterState; get readyState(): WalletReadyState; get connecting(): boolean; /** * Get network information used by TronLink. * @returns {Network} Current network information. */ network(): Promise<Network>; connect(): Promise<void>; disconnect(): Promise<void>; signTransaction(transaction: Transaction, privateKey?: string): Promise<SignedTransaction>; multiSign(transaction: Transaction, privateKey?: string | false, permissionId?: number): Promise<SignedTransaction>; signMessage(message: string, privateKey?: string): Promise<string>; /** * Switch to target chain. If current chain is the same as target chain, the call will success immediately. * Available chainIds: * - Mainnet: 0x2b6653dc * - Shasta: 0x94a9059e * - Nile: 0xcd8690dc * @param chainId chainId */ switchChain(chainId: string): Promise<void>; private checkAndGetWallet; private _listenTronLinkEvent; private _stopListenTronLinkEvent; private _tronLinkMessageHandler; private checkIfOpenTronLink; private _listenTronEvent; private _stopListenTronEvent; private _onChainChanged; private _onAccountsChanged; private _checkPromise; /** * check if wallet exists by interval, the promise only resolve when wallet detected or timeout * @returns if wallet exists */ private _checkWallet; private _updateWallet; private checkReadyInterval; private checkForWalletReadyForApp; private setAddress; private setState; } //# sourceMappingURL=adapter.d.ts.map