@tronweb3/tronwallet-adapter-tronlink
v1.2.0
Published
Wallet adapter for TronLink Wallet extension and TronLink app.
Readme
@tronweb3/tronwallet-adapter-tronlink
This package provides an adapter to enable TRON DApps to connect to the TronLink Wallet extension and TronLink Wallet App.
Demo
import { TronLinkAdapter } from '@tronweb3/tronwallet-adapter-tronlink';
import TronWeb from 'tronweb';
const tronWeb = new TronWeb({
fullHost: 'https://api.trongrid.io',
headers: { 'TRON-PRO-API-KEY': 'your api key' },
});
const adapter = new TronLinkAdapter();
// connect
await adapter.connect();
// then you can get address
console.log(adapter.address);
// create a send TRX transaction
const unSignedTransaction = await tronWeb.transactionBuilder.sendTrx(targetAddress, 100, adapter.address);
// using adapter to sign the transaction
const signedTransaction = await adapter.signTransaction(unSignedTransaction);
// broadcast the transaction
await tronWeb.trx.sendRawTransaction(signedTransaction);Documentation
API
Constructor(config: TronLinkAdapterConfig)interface TronLinkAdapterConfig { /** * Set if open Wallet's website url when wallet is not installed. * Default is true. */ openUrlWhenWalletNotFound?: boolean; /** * Timeout in millisecond for checking if TronLink wallet exists. * Default is 30 * 1000ms */ checkTimeout?: number; /** * Set if open TronLink app using DeepLink on mobile device. * Default is true. */ openAppWithDeeplink?: boolean; /** * The icon of your dapp. Used when open TronLink app in mobile device browsers. * Default is current website icon. */ dappIcon?: string; /** * The name of your dapp. Used when open TronLink app in mobile device browsers. * Default is `document.title`. */ dappName?: string; }network()method is supported to get current network information. The type of returned value isNetworkas follows:export enum NetworkType { Mainnet = 'Mainnet', Shasta = 'Shasta', Nile = 'Nile', /** * When use custom node */ Unknown = 'Unknown', } export type Network = { networkType: NetworkType; chainId: string; fullNode: string; solidityNode: string; eventServer: string; };
Security Check
TronLinkAdapter supports an optional securityOptions field for detecting wallet risks before connect(). When enabled, the adapter fetches a remote risk configuration and calls onRiskDetected if the wallet is flagged.
const adapter = new TronLinkAdapter({
securityOptions: {
enabled: true,
configUrls: ['https://your-server.com/security-config.json'],
onRiskDetected: async ({ risks }) => {
// Throw to block the connection, or log a warning
throw new Error(`Wallet risk detected: ${risks[0].title}`);
},
},
});For the full SecurityOptions API reference, see walletadapter.org/docs.
Caveats
- TronLink Doesn't support
disconnectby DApp. As TronLinkAdapter doesn't support disconnect by DApp website, calladapter.disconnect()won't disconnect from TronLink extension really. - Desktop discovery is asynchronous. On desktop, the adapter requests TIP-6963 providers first and then falls back to legacy
window.tron/window.tronLinkdetection beforecheckTimeout, soreadyStatemay stayLoadingbriefly after construction.
For more information about tronwallet adapters, please refer to @tronweb3/tronwallet-adapters
