@tronweb3/tronwallet-adapter-trust 1.0.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -46,6 +46,8 @@ interface TrustAdapterConfig {
46
46
  /**
47
47
  * Timeout in millisecond for checking if Trust is supported.
48
48
  * Default is 2 * 1000ms
49
+ * Must be a finite number between 0 and 600000 (10 minutes);
50
+ * anything else throws at construction.
49
51
  */
50
52
  checkTimeout?: number;
51
53
 
@@ -79,6 +81,43 @@ interface TrustAdapterConfig {
79
81
  };
80
82
  ```
81
83
 
84
+ ### Deeplink and URL privacy
85
+
86
+ `openAppWithDeeplink` is **enabled by default**.
87
+
88
+ When it is on and the dApp runs in a mobile browser outside the Trust app, the adapter opens the wallet through Trust's deeplink service. The **entire current page URL — including its query string and hash — is passed to that service** as the `url` parameter of `https://link.trustwallet.com/open_url`. If the app is not installed, or the universal link does not resolve to it, the browser requests that HTTPS address, so the URL reaches Trust's servers.
89
+
90
+ Because of that:
91
+
92
+ - **Do not put sensitive values in the page URL** — access tokens, OAuth codes, session IDs, one-time credentials, and anything else that grants access. This is good practice regardless of this adapter (URLs end up in browser history, `Referer` headers and server logs), but the deeplink sends the URL somewhere it would otherwise never go.
93
+ - **URL-encoding is not encryption.** `encodeURIComponent` only makes the value safe to carry inside a URL; the original text is trivially recoverable.
94
+ - **If the URL can contain sensitive data, act before connecting.** Either strip it — move the value out of the URL, or clear it with `history.replaceState()` once it has been consumed — or turn the deeplink off:
95
+
96
+ ```typescript
97
+ const adapter = new TrustAdapter({ openAppWithDeeplink: false });
98
+ ```
99
+
100
+ With `openAppWithDeeplink: false` the adapter never hands the URL to the deeplink service. The trade-off is that a mobile user without the wallet's in-app browser is no longer prompted to open the app, so guide them there yourself.
101
+
102
+ ### Security Check
103
+
104
+ `TrustAdapter` 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.
105
+
106
+ ```typescript
107
+ const adapter = new TrustAdapter({
108
+ securityOptions: {
109
+ enabled: true,
110
+ configUrls: ['https://your-server.com/security-config.json'],
111
+ onRiskDetected: async ({ risks }) => {
112
+ // Throw to block the connection, or log a warning
113
+ throw new Error(`Wallet risk detected: ${risks[0].title}`);
114
+ },
115
+ },
116
+ });
117
+ ```
118
+
119
+ For the full `SecurityOptions` API reference, see [walletadapter.org/docs](https://walletadapter.org/docs/index.html).
120
+
82
121
  ### Caveats
83
122
 
84
123
  - Only wallet that imported by mnemonic can be used on TRON network.
@@ -14,27 +14,63 @@ const tronwallet_abstract_adapter_1 = require("@tronweb3/tronwallet-abstract-ada
14
14
  const tronwallet_adapter_tronlink_1 = require("@tronweb3/tronwallet-adapter-tronlink");
15
15
  const utils_js_1 = require("./utils.js");
16
16
  exports.TrustAdapterName = 'Trust';
17
- class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
17
+ class TrustAdapter extends tronwallet_abstract_adapter_1.AddonAdapter {
18
18
  constructor(config = {}) {
19
- super();
19
+ super(config);
20
20
  this.name = exports.TrustAdapterName;
21
21
  this.url = 'https://trustwallet.com';
22
22
  this.icon = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTgiIGhlaWdodD0iNjUiIHZpZXdCb3g9IjAgMCA1OCA2NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAgOS4zODk0OUwyOC44OTA3IDBWNjUuMDA0MkM4LjI1NDUgNTYuMzM2OSAwIDM5LjcyNDggMCAzMC4zMzUzVjkuMzg5NDlaIiBmaWxsPSIjMDUwMEZGIi8+CjxwYXRoIGQ9Ik01Ny43ODIyIDkuMzg5NDlMMjguODkxNSAwVjY1LjAwNDJDNDkuNTI3NyA1Ni4zMzY5IDU3Ljc4MjIgMzkuNzI0OCA1Ny43ODIyIDMwLjMzNTNWOS4zODk0OVoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8yMjAxXzY5NDIpIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjIwMV82OTQyIiB4MT0iNTEuMzYxNSIgeTE9Ii00LjE1MjkzIiB4Mj0iMjkuNTM4NCIgeTI9IjY0LjUxNDciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agb2Zmc2V0PSIwLjAyMTEyIiBzdG9wLWNvbG9yPSIjMDAwMEZGIi8+CjxzdG9wIG9mZnNldD0iMC4wNzYyNDIzIiBzdG9wLWNvbG9yPSIjMDA5NEZGIi8+CjxzdG9wIG9mZnNldD0iMC4xNjMwODkiIHN0b3AtY29sb3I9IiM0OEZGOTEiLz4KPHN0b3Agb2Zmc2V0PSIwLjQyMDA0OSIgc3RvcC1jb2xvcj0iIzAwOTRGRiIvPgo8c3RvcCBvZmZzZXQ9IjAuNjgyODg2IiBzdG9wLWNvbG9yPSIjMDAzOEZGIi8+CjxzdG9wIG9mZnNldD0iMC45MDI0NjUiIHN0b3AtY29sb3I9IiMwNTAwRkYiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K';
23
23
  this._readyState = (0, tronwallet_abstract_adapter_1.isInBrowser)() ? tronwallet_abstract_adapter_1.WalletReadyState.Loading : tronwallet_abstract_adapter_1.WalletReadyState.NotFound;
24
24
  this._state = tronwallet_abstract_adapter_1.AdapterState.Loading;
25
- this.messageHandler = (e) => {
26
- var _a, _b, _c;
25
+ this._accountsChangedTimer = null;
26
+ /**
27
+ * Incremented whenever the listening session ends. Deferred `accountsChanged`
28
+ * work and the awaited `connect` handler capture the value before they yield and
29
+ * abandon themselves if it no longer matches, so an event that started before
30
+ * `disconnect()` cannot write state after it.
31
+ */
32
+ this._eventGeneration = 0;
33
+ this.messageHandler = (e) => __awaiter(this, void 0, void 0, function* () {
34
+ var _a, _b, _c, _d, _e;
35
+ if (e.origin !== window.location.origin) {
36
+ return;
37
+ }
27
38
  const message = (_a = e.data) === null || _a === void 0 ? void 0 : _a.message;
28
39
  if (!message) {
29
40
  return;
30
41
  }
31
42
  if (message.action === 'accountsChanged') {
32
- setTimeout(() => {
43
+ if (this._accountsChangedTimer) {
44
+ clearTimeout(this._accountsChangedTimer);
45
+ }
46
+ const generation = this._eventGeneration;
47
+ this._accountsChangedTimer = setTimeout(() => __awaiter(this, void 0, void 0, function* () {
33
48
  var _a;
49
+ this._accountsChangedTimer = null;
50
+ if (generation !== this._eventGeneration)
51
+ return;
34
52
  const preAddr = this.address || '';
35
- if ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.ready) {
36
- const address = message.data.address;
37
- this.setAddress(address);
53
+ const curAddr = message.data.address || '';
54
+ // An empty account is a disconnection, not a connection to the empty
55
+ // address. Going Connected here leaves `connected === true` with no
56
+ // address, and the block below then emits `disconnect` against a state
57
+ // that still says Connected.
58
+ if (curAddr && ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.ready)) {
59
+ try {
60
+ yield this.checkSecurity();
61
+ }
62
+ catch (_b) {
63
+ if (generation !== this._eventGeneration)
64
+ return;
65
+ this.setAddress(null);
66
+ this.setState(tronwallet_abstract_adapter_1.AdapterState.Disconnect);
67
+ return;
68
+ }
69
+ // `checkSecurity()` was awaited, so the session may have ended while it
70
+ // was pending — re-check before writing any state.
71
+ if (generation !== this._eventGeneration)
72
+ return;
73
+ this.setAddress(curAddr);
38
74
  this.setState(tronwallet_abstract_adapter_1.AdapterState.Connected);
39
75
  }
40
76
  else {
@@ -51,12 +87,38 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
51
87
  else if (preAddr && !this.address) {
52
88
  this.emit('disconnect');
53
89
  }
54
- }, 200);
90
+ }), 200);
55
91
  }
56
92
  else if (message.action === 'connect') {
93
+ const generation = this._eventGeneration;
94
+ // Trust may post a `connect` message before the address is available;
95
+ // ignore it so we don't report a connection (and emit connect) with no address.
96
+ if (!((_c = (_b = this._wallet.tronWeb) === null || _b === void 0 ? void 0 : _b.defaultAddress) === null || _c === void 0 ? void 0 : _c.base58)) {
97
+ return;
98
+ }
99
+ try {
100
+ yield this.checkSecurity();
101
+ }
102
+ catch (_f) {
103
+ // A stale rejection must not tear down a session that has since been
104
+ // re-established, so the generation is honoured on this path too.
105
+ if (generation !== this._eventGeneration)
106
+ return;
107
+ this.setAddress(null);
108
+ this.setState(tronwallet_abstract_adapter_1.AdapterState.Disconnect);
109
+ return;
110
+ }
111
+ // `checkSecurity()` was awaited, so the session may have ended while it
112
+ // was pending — re-check before writing any state.
113
+ if (generation !== this._eventGeneration)
114
+ return;
115
+ // Re-read after the await: the account may have changed or been cleared
116
+ // while the check was pending.
117
+ const address = ((_e = (_d = this._wallet.tronWeb) === null || _d === void 0 ? void 0 : _d.defaultAddress) === null || _e === void 0 ? void 0 : _e.base58) || '';
118
+ if (!address)
119
+ return;
57
120
  const isCurConnected = this.connected;
58
121
  const preAddress = this.address || '';
59
- const address = ((_c = (_b = this._wallet.tronWeb) === null || _b === void 0 ? void 0 : _b.defaultAddress) === null || _c === void 0 ? void 0 : _c.base58) || '';
60
122
  this.setAddress(address);
61
123
  this.setState(tronwallet_abstract_adapter_1.AdapterState.Connected);
62
124
  if (!isCurConnected) {
@@ -71,17 +133,36 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
71
133
  this.setState(tronwallet_abstract_adapter_1.AdapterState.Disconnect);
72
134
  this.emit('disconnect');
73
135
  }
74
- };
136
+ });
75
137
  this._checkPromise = null;
76
- this._updateWallet = () => {
138
+ /**
139
+ * Detection polls for the full `checkTimeout` only once. Later attempts re-check a
140
+ * single time, so retrying is free when the wallet is genuinely absent.
141
+ */
142
+ this._hasRunInitialDetection = false;
143
+ this._updateWallet = () => __awaiter(this, void 0, void 0, function* () {
77
144
  var _a, _b;
78
- let state = this.state;
79
- let address = this.address;
145
+ let state;
146
+ let address;
80
147
  if ((0, utils_js_1.supportTrust)()) {
81
148
  this._wallet = window.trustwallet.tronLink;
82
149
  this._listenEvent();
83
150
  address = ((_b = (_a = this._wallet.tronWeb) === null || _a === void 0 ? void 0 : _a.defaultAddress) === null || _b === void 0 ? void 0 : _b.base58) || null;
84
- state = this._wallet.ready ? tronwallet_abstract_adapter_1.AdapterState.Connected : tronwallet_abstract_adapter_1.AdapterState.Disconnect;
151
+ if (address) {
152
+ // Only run the security check once the wallet is actually connected.
153
+ try {
154
+ yield this.checkSecurity();
155
+ }
156
+ catch (_c) {
157
+ this.setAddress(null);
158
+ this.setState(tronwallet_abstract_adapter_1.AdapterState.Disconnect);
159
+ return;
160
+ }
161
+ state = tronwallet_abstract_adapter_1.AdapterState.Connected;
162
+ }
163
+ else {
164
+ state = tronwallet_abstract_adapter_1.AdapterState.Disconnect;
165
+ }
85
166
  }
86
167
  else {
87
168
  this._wallet = null;
@@ -90,16 +171,8 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
90
171
  }
91
172
  this.setAddress(address);
92
173
  this.setState(state);
93
- };
94
- const { checkTimeout = 2 * 1000, openUrlWhenWalletNotFound = true, openAppWithDeeplink = true } = config;
95
- if (typeof checkTimeout !== 'number') {
96
- throw new Error('[TrustAdapter] config.checkTimeout should be a number');
97
- }
98
- this.config = {
99
- checkTimeout,
100
- openAppWithDeeplink,
101
- openUrlWhenWalletNotFound,
102
- };
174
+ });
175
+ this.config = Object.assign({}, this.commonConfig);
103
176
  this._connecting = false;
104
177
  this._wallet = null;
105
178
  this._address = null;
@@ -110,7 +183,11 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
110
183
  }
111
184
  if ((0, utils_js_1.supportTrust)()) {
112
185
  this._readyState = tronwallet_abstract_adapter_1.WalletReadyState.Found;
113
- this._updateWallet();
186
+ this._updateWallet().then(() => {
187
+ if (this.connected) {
188
+ this.emit('connect', this.address || '');
189
+ }
190
+ });
114
191
  }
115
192
  else {
116
193
  this._checkWallet().then(() => {
@@ -158,48 +235,36 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
158
235
  }
159
236
  });
160
237
  }
161
- connect() {
238
+ _connect() {
162
239
  return __awaiter(this, void 0, void 0, function* () {
163
240
  var _a;
164
241
  try {
165
- this.checkIfopenTrustWallet();
166
- if (this.connected || this.connecting)
242
+ if (!(yield this._beforeConnect()))
167
243
  return;
168
- yield this._checkWallet();
169
- if (this.state === tronwallet_abstract_adapter_1.AdapterState.NotFound) {
170
- if (this.config.openUrlWhenWalletNotFound !== false && (0, tronwallet_abstract_adapter_1.isInBrowser)()) {
171
- window.open(this.url, '_blank');
172
- }
173
- throw new tronwallet_abstract_adapter_1.WalletNotFoundError();
174
- }
175
244
  if (!this._wallet)
176
245
  return;
177
246
  this._connecting = true;
178
247
  const wallet = this._wallet;
179
- try {
180
- const res = yield wallet.request({ method: 'tron_requestAccounts' });
181
- if (!res) {
182
- throw new tronwallet_abstract_adapter_1.WalletConnectionError('Request connect error.');
183
- }
184
- if (res.code === 4000) {
185
- throw new tronwallet_abstract_adapter_1.WalletConnectionError('The same DApp has already initiated a request to connect to trustwallet, and the pop-up window has not been closed.');
186
- }
187
- if (res.code === 4001) {
188
- throw new tronwallet_abstract_adapter_1.WalletConnectionError('The user rejected connection.');
189
- }
248
+ const res = yield wallet.request({ method: 'tron_requestAccounts' });
249
+ if (!res) {
250
+ throw new tronwallet_abstract_adapter_1.WalletConnectionError('Request connect error.');
190
251
  }
191
- catch (error) {
192
- throw new tronwallet_abstract_adapter_1.WalletConnectionError(error === null || error === void 0 ? void 0 : error.message, error);
252
+ if (res.code === 4000) {
253
+ throw new tronwallet_abstract_adapter_1.WalletConnectionError('The same DApp has already initiated a request to connect to trustwallet, and the pop-up window has not been closed.');
254
+ }
255
+ if (res.code === 4001) {
256
+ throw new tronwallet_abstract_adapter_1.WalletConnectionError('The user rejected connection.');
193
257
  }
194
- const address = ((_a = wallet.tronWeb.defaultAddress) === null || _a === void 0 ? void 0 : _a.base58) || '';
258
+ const address = (0, tronwallet_abstract_adapter_1.assertConnectAddress)((_a = wallet.tronWeb.defaultAddress) === null || _a === void 0 ? void 0 : _a.base58);
195
259
  this.setAddress(address);
196
260
  this.setState(tronwallet_abstract_adapter_1.AdapterState.Connected);
197
261
  this._listenEvent();
198
262
  this.connected && this.emit('connect', this.address || '');
199
263
  }
200
264
  catch (error) {
201
- this.emit('error', error);
202
- throw error;
265
+ const err = error instanceof tronwallet_abstract_adapter_1.WalletError ? error : new tronwallet_abstract_adapter_1.WalletConnectionError(error === null || error === void 0 ? void 0 : error.message, error);
266
+ this.emit('error', err);
267
+ throw err;
203
268
  }
204
269
  finally {
205
270
  this._connecting = false;
@@ -309,6 +374,11 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
309
374
  window.addEventListener('message', this.messageHandler);
310
375
  }
311
376
  _stopListenEvent() {
377
+ this._eventGeneration++;
378
+ if (this._accountsChangedTimer) {
379
+ clearTimeout(this._accountsChangedTimer);
380
+ this._accountsChangedTimer = null;
381
+ }
312
382
  window.removeEventListener('message', this.messageHandler);
313
383
  }
314
384
  checkIfopenTrustWallet() {
@@ -319,6 +389,12 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
319
389
  throw new tronwallet_abstract_adapter_1.WalletNotFoundError();
320
390
  }
321
391
  }
392
+ _openAppByDeepLinkIfNeed() {
393
+ if (this.config.openAppWithDeeplink === false) {
394
+ return false;
395
+ }
396
+ return (0, utils_js_1.openTrustWallet)();
397
+ }
322
398
  /**
323
399
  * check if wallet exists by interval, the promise only resolve when wallet detected or timeout
324
400
  * @returns if trustwallet exists
@@ -331,9 +407,10 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
331
407
  return this._checkPromise;
332
408
  }
333
409
  const interval = 100;
334
- const maxTimes = Math.floor(this.config.checkTimeout / interval);
410
+ const maxTimes = this._hasRunInitialDetection ? 0 : Math.floor(this.config.checkTimeout / interval);
411
+ this._hasRunInitialDetection = true;
335
412
  let times = 0, timer;
336
- this._checkPromise = new Promise((resolve) => {
413
+ const detection = new Promise((resolve) => {
337
414
  const check = () => {
338
415
  times++;
339
416
  const isSupport = (0, utils_js_1.supportTrust)();
@@ -348,7 +425,16 @@ class TrustAdapter extends tronwallet_abstract_adapter_1.Adapter {
348
425
  timer = setInterval(check, interval);
349
426
  check();
350
427
  });
351
- return this._checkPromise;
428
+ this._checkPromise = detection;
429
+ // Never cache a failed detection. The extension may inject late, be switched on at
430
+ // runtime, or a mobile WebView may still be initialising — in all of those cases the
431
+ // next call has to look again instead of replaying the old negative answer.
432
+ void detection.then((found) => {
433
+ if (!found && this._checkPromise === detection) {
434
+ this._checkPromise = null;
435
+ }
436
+ });
437
+ return detection;
352
438
  }
353
439
  setAddress(address) {
354
440
  this._address = address;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}