@tronweb3/tronwallet-adapter-tronlink
Version:
Wallet adapter for TronLink Wallet extension and TronLink app.
117 lines • 3.98 kB
TypeScript
import { AdapterState, WalletReadyState, NetworkType, AddonAdapter } from '@tronweb3/tronwallet-abstract-adapter';
import type { Transaction, SignedTransaction, AdapterName, BaseAdapterConfig, Network, TypedData } 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 5000ms
*/
checkTimeout?: number;
/**
* Set if open TronLink app using DeepLink.
* Default is true.
*/
openAppWithDeeplink?: boolean;
/**
* @deprecated Please use `openAppWithDeeplink`
*/
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 AddonAdapter {
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>;
private _checkAndSign;
signTransaction(transaction: Transaction): Promise<SignedTransaction>;
/**
*
* @param transaction transaction to be signed
* @param _, false to use tronWeb.trx.multiSign
* @param permissionId permissionId for multiSign
* @returns
*/
multiSign(transaction: Transaction, options?: {
permissionId?: number;
}): Promise<SignedTransaction>;
signMessage(message: string): Promise<string>;
protected _signTypedData(typedData: TypedData): 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;
protected _openAppByDeepLinkIfNeed(): boolean;
private _listenTronEvent;
private _stopListenTronEvent;
private _onChainChanged;
private _onAccountsChanged;
private _checkPromise;
private isLegacyTronLinkProvider;
private hasDesktopLegacyTronLinkProvider;
/**
* check if wallet exists by interval, the promise only resolve when wallet detected or timeout
* @returns if wallet exists
*/
protected _checkWallet(): Promise<boolean>;
private _updateWallet;
private checkReadyInterval;
private checkForWalletReadyForApp;
private setAddress;
private setState;
}
//# sourceMappingURL=adapter.d.ts.map