@meshconnect/uwc-injected-connector 0.15.0 → 0.15.2

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.
@@ -0,0 +1,2 @@
1
+ export declare const BRIDGE_WALLET_POLL_MS: number;
2
+ //# sourceMappingURL=bridge-poll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-poll.d.ts","sourceRoot":"","sources":["../src/bridge-poll.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,qBAAqB,QAAyB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { MAX_POLL_MS } from '@meshconnect/uwc-bridge-child';
2
+ /**
3
+ * Consumer-side budget for the bridge wallet poll
4
+ * (pollForBridgeWallets in eip6963/wallet-standard/tron/ton-discovery.ts).
5
+ *
6
+ * Derived as the bridge child's own budget (MAX_POLL_MS) plus a grace margin, so
7
+ * the invariant "consumer budget > child budget" is enforced by construction
8
+ * rather than by a comment. Why it must hold:
9
+ * - The child writes window.{tron,ton}Wallets — real wallets, or [] via its
10
+ * fillEmptyDefaults backstop — up to its own MAX_POLL_MS deadline.
11
+ * - Consumer-side wallet detection is ONE-SHOT: UniversalWalletConnector runs
12
+ * it once at construction, and connectTron later reads the cached result. A
13
+ * missed wallet there throws "tron provider was not detected" until reload.
14
+ * - A wallet that becomes ready on the child's LAST tick is written a few ms
15
+ * AFTER MAX_POLL_MS (the marshal is a Comlink round-trip). The grace covers
16
+ * that tail, so an equal deadline can't let the consumer resolve [] on the
17
+ * same tick and cache it.
18
+ */
19
+ const GRACE_MS = 300;
20
+ export const BRIDGE_WALLET_POLL_MS = MAX_POLL_MS + GRACE_MS;
21
+ //# sourceMappingURL=bridge-poll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-poll.js","sourceRoot":"","sources":["../src/bridge-poll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,QAAQ,GAAG,GAAG,CAAA;AAEpB,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963-discovery.d.ts","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IAGvD,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE9D,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAI1E,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAuCD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAqDjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CAAC,cAAc,EAAE,CAAC,CAkD3B"}
1
+ {"version":3,"file":"eip6963-discovery.d.ts","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAI5D,MAAM,WAAW,gBAAgB;IAE/B,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE/D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;CAC5E;AAED;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IAGvD,OAAO,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAEvE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAE9D,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,KAAK,IAAI,CAAA;IAI1E,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,mBAAmB,CAAA;IACzB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAED,MAAM,WAAW,4BAA6B,SAAQ,WAAW;IAC/D,IAAI,EAAE,0BAA0B,CAAA;IAChC,MAAM,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,WAAW,2BAA4B,SAAQ,KAAK;IACxD,IAAI,EAAE,yBAAyB,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AA0CD;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAqDjE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CAAC,cAAc,EAAE,CAAC,CAkD3B"}
@@ -3,13 +3,17 @@
3
3
  * https://eips.ethereum.org/EIPS/eip-6963
4
4
  */
5
5
  import { v4 as uuid } from 'uuid';
6
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll';
6
7
  /**
7
8
  * Polls for bridge wallets when UWCBridgeInitialized is true
8
9
  * @returns Promise that resolves to an array of detected wallets from the bridge
9
10
  */
10
11
  async function pollForBridgeWallets() {
11
- const pollInterval = 100; // Poll every 100ms
12
- const maxPollTime = 3000; // Poll for maximum 3 seconds
12
+ const pollInterval = 50; // Poll every 50ms
13
+ // Consumer budget see BRIDGE_WALLET_POLL_MS for rationale (couples this
14
+ // to the bridge child's MAX_POLL_MS + grace so we don't resolve `[]` while
15
+ // the child is still marshalling).
16
+ const maxPollTime = BRIDGE_WALLET_POLL_MS;
13
17
  const startTime = Date.now();
14
18
  return new Promise(resolve => {
15
19
  const poll = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"eip6963-discovery.js","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eip6963-discovery.js","sourceRoot":"","sources":["../src/eip6963-discovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,iCAAiC,EACjC,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAG3D,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,gBAAgB,CAAsB;gBAGpC,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,UAAU,EAAE,gBAAgB;IAGtC;;OAEG;IACG,wBAAwB,CAC5B,eAAe,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,EACrD,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;KACvC,CAAC;IAyJF;;OAEG;YACW,4BAA4B;IAgD1C;;OAEG;YACW,0BAA0B;IAiDxC;;OAEG;YACW,wBAAwB;IAuCtC;;;;OAIG;YACW,uBAAuB;IAgCrC;;;OAGG;YACW,kCAAkC;IAmBhD;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAgDjC;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IA2C3B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IA8C3B;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAyC3B;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAuC3B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAInD;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAgBlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,iCAAiC,EACjC,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAiD3D,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,gBAAgB,CAAsB;gBAGpC,eAAe,EAAE,qBAAqB,EACtC,aAAa,EAAE,mBAAmB,EAClC,WAAW,EAAE,iBAAiB,EAC9B,UAAU,EAAE,gBAAgB;IAGtC;;OAEG;IACG,wBAAwB,CAC5B,eAAe,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,EACrD,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,kBAAkB,EAAE,gBAAgB,EAAE,CAAA;KACvC,CAAC;IAyJF;;OAEG;YACW,4BAA4B;IAkD1C;;OAEG;YACW,0BAA0B;IAmDxC;;OAEG;YACW,wBAAwB;IA0CtC;;;;OAIG;YACW,uBAAuB;IAgCrC;;;OAGG;YACW,kCAAkC;IAmBhD;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAgDjC;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IA2C3B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IA8C3B;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAyC3B;;OAEG;IACG,UAAU,CACd,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,eAAe,CAAC;IAuC3B;;OAEG;IACG,aAAa,CACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,yBAAyB,GAAG,iCAAiC,GACtE,OAAO,CAAC,mBAAmB,CAAC;IAgF/B;;OAEG;IACH,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAInD;;OAEG;IACH,iBAAiB,IAAI,MAAM,GAAG,IAAI;IAgBlC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CASlC"}
@@ -3,6 +3,43 @@ import { SolanaWalletService } from './solana/solana-wallet-service';
3
3
  import { TronWalletService } from './tron/tron-wallet-service';
4
4
  import { TonWalletService } from './ton/ton-wallet-service';
5
5
  import { parseError } from '../utils/error-utils';
6
+ /**
7
+ * True when running inside an iframe (`window.top !== window.self`). The
8
+ * try/catch is a safety net for sandboxed/restricted frames where evaluating
9
+ * that can throw — any such error is treated as "framed".
10
+ */
11
+ function isFramedEmbed() {
12
+ try {
13
+ return typeof window !== 'undefined' && window.top !== window.self;
14
+ }
15
+ catch {
16
+ return true;
17
+ }
18
+ }
19
+ /** The UWC bridge populates these `window` arrays with top-frame provider
20
+ * proxies. An absent/empty list means no bridged provider is available for that
21
+ * namespace, so a connect would fall to the iframe-local provider. */
22
+ function bridgedListEmpty(key) {
23
+ if (typeof window === 'undefined')
24
+ return true;
25
+ const list = window[key];
26
+ return !Array.isArray(list) || list.length === 0;
27
+ }
28
+ /**
29
+ * Whether to skip an EAGER cross-namespace `connect()` for a SECONDARY namespace
30
+ * (the ONC-3429 gather). Inside an iframe, an injected wallet's connect prompt is
31
+ * frame-position-gated (e.g. Trust Wallet → `dapp.frames-disallowed`). The
32
+ * non-gating path is the UWC bridge, which exposes top-frame providers via the
33
+ * `window.*Wallets` lists. So skip the eager connect only when we are framed AND
34
+ * the bridge has not populated that namespace's list — meaning the connect would
35
+ * hit the gating iframe-local provider. When the list is populated the connect
36
+ * routes to the top frame and is safe; in the top frame (extension) we never
37
+ * skip, preserving the eager gather. The TARGET namespace is connected via its
38
+ * own path in `connectToNamespace` and is unaffected.
39
+ */
40
+ function skipFramedSecondaryConnect(bridgeKey) {
41
+ return isFramedEmbed() && bridgedListEmpty(bridgeKey);
42
+ }
6
43
  export class ConnectionManager {
7
44
  ethereumService;
8
45
  solanaService;
@@ -139,7 +176,9 @@ export class ConnectionManager {
139
176
  const accounts = await this.ethereumService.checkExistingConnection(ethWallet.provider);
140
177
  const ethAddress = accounts && accounts.length > 0
141
178
  ? accounts[0]
142
- : await this.ethereumService.connect(ethWallet.provider);
179
+ : skipFramedSecondaryConnect('eip6963Wallets')
180
+ ? undefined
181
+ : await this.ethereumService.connect(ethWallet.provider);
143
182
  if (ethAddress) {
144
183
  ethAccount = ethAddress;
145
184
  this.ethereumService.setConnectionState(ethWallet.provider, ethAddress);
@@ -171,7 +210,9 @@ export class ConnectionManager {
171
210
  if (solanaWallet?.adapter) {
172
211
  try {
173
212
  const solanaAddress = (await this.solanaService.checkExistingConnection(solanaWallet.adapter, solanaWalletUuid)) ||
174
- (await this.solanaService.connect(solanaWallet.adapter, solanaWalletUuid));
213
+ (skipFramedSecondaryConnect('walletStandardWallets')
214
+ ? undefined
215
+ : await this.solanaService.connect(solanaWallet.adapter, solanaWalletUuid));
175
216
  if (solanaAddress) {
176
217
  solanaAccount = solanaAddress;
177
218
  this.solanaService.setConnectionState(solanaWallet.adapter, solanaAddress, solanaWalletUuid);
@@ -201,7 +242,10 @@ export class ConnectionManager {
201
242
  const tronWallet = this.tronService.findWalletByUuid(tronWalletUuid);
202
243
  if (tronWallet?.provider) {
203
244
  try {
204
- const address = (await this.tronService.checkExistingConnection(tronWallet.provider)) || (await this.tronService.connect(tronWallet.provider));
245
+ const address = (await this.tronService.checkExistingConnection(tronWallet.provider)) ||
246
+ (skipFramedSecondaryConnect('tronWallets')
247
+ ? undefined
248
+ : await this.tronService.connect(tronWallet.provider));
205
249
  if (address) {
206
250
  tronAccount = address;
207
251
  this.tronService.setConnectionState(tronWallet.provider, address);
@@ -231,7 +275,7 @@ export class ConnectionManager {
231
275
  }
232
276
  if (!tonAccount) {
233
277
  const jsBridgeKey = provider.namespaceMetaData?.tvm?.detectedWallet?.jsBridgeKey;
234
- if (jsBridgeKey) {
278
+ if (jsBridgeKey && !skipFramedSecondaryConnect('tonWallets')) {
235
279
  try {
236
280
  const result = await this.tonService.connect(jsBridgeKey);
237
281
  tonAccount = result.address;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/services/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ton-discovery.d.ts","sourceRoot":"","sources":["../src/ton-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,UAAU,gBAAgB;IACxB,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACtE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;IACzD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AA+ED,wBAAsB,aAAa,CACjC,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0B9B"}
1
+ {"version":3,"file":"ton-discovery.d.ts","sourceRoot":"","sources":["../src/ton-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,UAAU,gBAAgB;IACxB,UAAU,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IACtE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAA;IACzD,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,gBAAgB,CAAA;CAC3B;AAiFD,wBAAsB,aAAa,CACjC,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0B9B"}
@@ -6,6 +6,7 @@
6
6
  * window[jsBridgeKey].tonconnect. Unlike EVM (EIP-6963), there is no
7
7
  * announcement event — we check known keys from wallet config.
8
8
  */
9
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll';
9
10
  function isTonConnectBridge(value) {
10
11
  if (!value || typeof value !== 'object')
11
12
  return false;
@@ -47,8 +48,10 @@ function discoverTonProviders(jsBridgeKeys) {
47
48
  return wallets;
48
49
  }
49
50
  async function pollForBridgeTonWallets() {
50
- const pollInterval = 100;
51
- const maxPollTime = 1000;
51
+ const pollInterval = 50;
52
+ // Consumer poll budget — see BRIDGE_WALLET_POLL_MS for rationale + the
53
+ // must-exceed-child-budget invariant. Ceiling, not a fixed wait.
54
+ const maxPollTime = BRIDGE_WALLET_POLL_MS;
52
55
  const startTime = Date.now();
53
56
  return new Promise(resolve => {
54
57
  const poll = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ton-discovery.js","sourceRoot":"","sources":["../src/ton-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ton-discovery.js","sourceRoot":"","sources":["../src/ton-discovery.ts"],"names":[],"mappings":"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"}
@@ -58,8 +58,7 @@ export interface DetectedTronWallet {
58
58
  /**
59
59
  * Discovers Tron wallets by checking known injection paths on the window object.
60
60
  * When running inside an iframe with the UWC bridge, checks for bridge-proxied
61
- * wallets first. Otherwise polls for up to 3 seconds to handle wallets that
62
- * inject their provider lazily.
61
+ * wallets first. Otherwise checks injected providers on the window object.
63
62
  */
64
63
  export declare function getTronWallets(expectedWallets?: WalletMetadata[]): Promise<DetectedTronWallet[]>;
65
64
  //# sourceMappingURL=tron-discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tron-discovery.d.ts","sourceRoot":"","sources":["../src/tron-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAE5D,MAAM,WAAW,OAAO;IACtB,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;QACvB,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KACrB,CAAA;IACD,kEAAkE;IAClE,iBAAiB,CAAC,IAAI,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;QACvB,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KACrB,CAAC,CAAA;IACF,GAAG,EAAE;QACH,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/C,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KACjE,CAAA;IACD,kBAAkB,EAAE;QAElB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/D,oBAAoB,CAClB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EAExB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAE5B,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,GAAG,CAAA;SAAE,CAAC,EAC9C,aAAa,EAAE,MAAM,GAEpB,OAAO,CAAC;YAAE,WAAW,EAAE,GAAG,CAAC;YAAC,MAAM,EAAE;gBAAE,MAAM,EAAE,OAAO,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAC9D,CAAA;IACD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IAE9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE,OAAO,EAAE,OAAO,CAAA;IAEhB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;CACvB;AA6FD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
1
+ {"version":3,"file":"tron-discovery.d.ts","sourceRoot":"","sources":["../src/tron-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,MAAM,WAAW,OAAO;IACtB,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;QACvB,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KACrB,CAAA;IACD,kEAAkE;IAClE,iBAAiB,CAAC,IAAI,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;QACvB,GAAG,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KACrB,CAAC,CAAA;IACF,GAAG,EAAE;QACH,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/C,kBAAkB,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KACjE,CAAA;IACD,kBAAkB,EAAE;QAElB,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/D,oBAAoB,CAClB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,MAAM,EAExB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAE5B,SAAS,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,GAAG,CAAA;SAAE,CAAC,EAC9C,aAAa,EAAE,MAAM,GAEpB,OAAO,CAAC;YAAE,WAAW,EAAE,GAAG,CAAC;YAAC,MAAM,EAAE;gBAAE,MAAM,EAAE,OAAO,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAC9D,CAAA;IACD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IAE9B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxE,OAAO,EAAE,OAAO,CAAA;IAEhB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,YAAY,CAAA;CACvB;AAiGD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,eAAe,GAAE,cAAc,EAAO,GACrC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
@@ -9,6 +9,7 @@
9
9
  *
10
10
  * Each provider has a `tronWeb` property containing the TronWeb API.
11
11
  */
12
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll';
12
13
  /**
13
14
  * Resolves a nested property on the window object using dot notation
14
15
  */
@@ -60,8 +61,12 @@ function discoverTronProviders(injectedIds) {
60
61
  * Polls for bridge Tron wallets when UWCBridgeChildInitialized is true
61
62
  */
62
63
  async function pollForBridgeTronWallets() {
63
- const pollInterval = 100;
64
- const maxPollTime = 1000;
64
+ const pollInterval = 50;
65
+ // Consumer poll budget — rationale + the must-exceed-child-budget invariant
66
+ // are documented on BRIDGE_WALLET_POLL_MS. The child resolves the array (real
67
+ // wallets or []) as soon as the parent answers, so this is a ceiling, not a
68
+ // fixed wait.
69
+ const maxPollTime = BRIDGE_WALLET_POLL_MS;
65
70
  const startTime = Date.now();
66
71
  return new Promise(resolve => {
67
72
  const poll = () => {
@@ -86,28 +91,24 @@ async function pollForBridgeTronWallets() {
86
91
  /**
87
92
  * Discovers Tron wallets by checking known injection paths on the window object.
88
93
  * When running inside an iframe with the UWC bridge, checks for bridge-proxied
89
- * wallets first. Otherwise polls for up to 3 seconds to handle wallets that
90
- * inject their provider lazily.
94
+ * wallets first. Otherwise checks injected providers on the window object.
91
95
  */
92
96
  export async function getTronWallets(expectedWallets = []) {
93
97
  try {
94
98
  const injectedIds = expectedWallets
95
99
  .map(w => w.extensionInjectedProvider?.namespaceMetaData?.tron?.injectedId)
96
100
  .filter((id) => !!id);
97
- // Check for bridge-proxied wallets first (iframe mode)
98
101
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
99
102
  // @ts-ignore - window.UWCBridgeChildInitialized is set by the bridge
100
- if (window.UWCBridgeChildInitialized === true) {
103
+ const bridgeMode = window.UWCBridgeChildInitialized === true;
104
+ // Check for bridge-proxied wallets first (iframe mode)
105
+ if (bridgeMode) {
101
106
  const wallets = await pollForBridgeTronWallets();
102
- if (wallets.length > 0) {
103
- return wallets;
104
- }
107
+ return wallets.length > 0 ? wallets : [];
105
108
  }
106
- else {
107
- // Native discovery: check injected providers on the window object, only if bridge parent is not initialized
108
- return discoverTronProviders(injectedIds);
109
- }
110
- return [];
109
+ // Native discovery: check injected providers on the window object.
110
+ const wallets = discoverTronProviders(injectedIds);
111
+ return wallets;
111
112
  }
112
113
  catch {
113
114
  // Return empty array if discovery fails
@@ -1 +1 @@
1
- {"version":3,"file":"tron-discovery.js","sourceRoot":"","sources":["../src/tron-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tron-discovery.js","sourceRoot":"","sources":["../src/tron-discovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-standard-discovery.d.ts","sourceRoot":"","sources":["../src/wallet-standard-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,eAAe,EAAE,CACb,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,GAC/B,4BAA4B,CAC/B,EAAE,CAAA;IACH,yBAAyB,EAAE,CACzB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,MAAM,CAAC,CAAA;IACpB,yBAAyB,EAAE,CACzB,WAAW,EAAE,OAAO,KACjB,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,CAAA;IACjC,6BAA6B,EAAE,CAC7B,YAAY,EAAE,OAAO,EAAE,KACpB,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC,CAAA;IAGnC,0BAA0B,EAAE,CAC1B,WAAW,EAAE,OAAO,EACpB,gBAAgB,CAAC,EAAE,MAAM,KACtB,OAAO,CAAC,UAAU,CAAC,CAAA;CACzB;AAED,MAAM,MAAM,aAAa,GACrB,6BAA6B,GAC7B,qBAAqB,CAAA;AAEzB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAA;CACnC;AA6CD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwCtE"}
1
+ {"version":3,"file":"wallet-standard-discovery.d.ts","sourceRoot":"","sources":["../src/wallet-standard-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,eAAe,EAAE,CACb,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,GAC/B,4BAA4B,CAC/B,EAAE,CAAA;IACH,yBAAyB,EAAE,CACzB,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,MAAM,CAAC,CAAA;IACpB,yBAAyB,EAAE,CACzB,WAAW,EAAE,OAAO,KACjB,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,CAAA;IACjC,6BAA6B,EAAE,CAC7B,YAAY,EAAE,OAAO,EAAE,KACpB,OAAO,CAAC,KAAK,GAAG,WAAW,EAAE,CAAC,CAAA;IAGnC,0BAA0B,EAAE,CAC1B,WAAW,EAAE,OAAO,EACpB,gBAAgB,CAAC,EAAE,MAAM,KACtB,OAAO,CAAC,UAAU,CAAC,CAAA;CACzB;AAED,MAAM,MAAM,aAAa,GACrB,6BAA6B,GAC7B,qBAAqB,CAAA;AAEzB,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,aAAa,GAAG,SAAS,CAAA;CACnC;AAiDD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwCtE"}
@@ -6,13 +6,18 @@
6
6
  import { getWallets } from '@wallet-standard/app';
7
7
  import { isWalletAdapterCompatibleStandardWallet } from '@solana/wallet-adapter-base';
8
8
  import { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base';
9
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll';
9
10
  /**
10
11
  * Polls for bridge wallets when UWCBridgeInitialized is true
11
12
  * @returns Promise that resolves to an array of detected wallets from the bridge
12
13
  */
13
14
  async function pollForBridgeWallets() {
14
- const pollInterval = 100; // Poll every 100ms
15
- const maxPollTime = 3000; // Poll for maximum 3 seconds
15
+ const pollInterval = 50; // Poll every 50ms
16
+ // Consumer budget see BRIDGE_WALLET_POLL_MS for rationale. Even though
17
+ // Solana is published early by BridgeParent, a late-exposing parent can
18
+ // push the child's marshal past 500ms; that race silently cached Solana
19
+ // injected wallets as "not installed".
20
+ const maxPollTime = BRIDGE_WALLET_POLL_MS;
16
21
  const startTime = Date.now();
17
22
  return new Promise(resolve => {
18
23
  const poll = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-standard-discovery.js","sourceRoot":"","sources":["../src/wallet-standard-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-standard-discovery.js","sourceRoot":"","sources":["../src/wallet-standard-discovery.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/uwc-injected-connector",
3
- "version": "0.15.0",
3
+ "version": "0.15.2",
4
4
  "description": "Injected connector for Universal Wallet Connector",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,11 +27,11 @@
27
27
  "buffer": "^6.0.3",
28
28
  "uuid": "^13.0.0",
29
29
  "viem": "^2.44.4",
30
- "@meshconnect/uwc-bridge-child": "0.2.2",
31
- "@meshconnect/uwc-constants": "0.6.6",
32
- "@meshconnect/uwc-ton-connector": "0.6.5",
33
- "@meshconnect/uwc-tron-connector": "0.2.0",
34
- "@meshconnect/uwc-types": "0.16.0"
30
+ "@meshconnect/uwc-bridge-child": "0.2.3",
31
+ "@meshconnect/uwc-constants": "0.6.7",
32
+ "@meshconnect/uwc-ton-connector": "0.6.6",
33
+ "@meshconnect/uwc-tron-connector": "0.3.0",
34
+ "@meshconnect/uwc-types": "0.16.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "typescript": "^5.9.3"
@@ -0,0 +1,22 @@
1
+ import { MAX_POLL_MS } from '@meshconnect/uwc-bridge-child'
2
+
3
+ /**
4
+ * Consumer-side budget for the bridge wallet poll
5
+ * (pollForBridgeWallets in eip6963/wallet-standard/tron/ton-discovery.ts).
6
+ *
7
+ * Derived as the bridge child's own budget (MAX_POLL_MS) plus a grace margin, so
8
+ * the invariant "consumer budget > child budget" is enforced by construction
9
+ * rather than by a comment. Why it must hold:
10
+ * - The child writes window.{tron,ton}Wallets — real wallets, or [] via its
11
+ * fillEmptyDefaults backstop — up to its own MAX_POLL_MS deadline.
12
+ * - Consumer-side wallet detection is ONE-SHOT: UniversalWalletConnector runs
13
+ * it once at construction, and connectTron later reads the cached result. A
14
+ * missed wallet there throws "tron provider was not detected" until reload.
15
+ * - A wallet that becomes ready on the child's LAST tick is written a few ms
16
+ * AFTER MAX_POLL_MS (the marshal is a Comlink round-trip). The grace covers
17
+ * that tail, so an equal deadline can't let the consumer resolve [] on the
18
+ * same tick and cache it.
19
+ */
20
+ const GRACE_MS = 300
21
+
22
+ export const BRIDGE_WALLET_POLL_MS = MAX_POLL_MS + GRACE_MS
@@ -76,7 +76,7 @@ describe('EIP-6963 Discovery', () => {
76
76
  const result = await discoverWallets()
77
77
 
78
78
  expect(result).toEqual([])
79
- })
79
+ }, 7000)
80
80
 
81
81
  it('should handle invalid bridge wallets array', async () => {
82
82
  mockWindow.UWCBridgeChildInitialized = true
@@ -85,7 +85,7 @@ describe('EIP-6963 Discovery', () => {
85
85
  const result = await discoverWallets()
86
86
 
87
87
  expect(result).toEqual([])
88
- })
88
+ }, 7000)
89
89
  })
90
90
 
91
91
  describe('getAvailableWallets', () => {
@@ -5,6 +5,7 @@
5
5
 
6
6
  import type { WalletMetadata } from '@meshconnect/uwc-types'
7
7
  import { v4 as uuid } from 'uuid'
8
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll'
8
9
 
9
10
  export interface EthereumProvider {
10
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -67,8 +68,11 @@ export interface DetectedWallet {
67
68
  * @returns Promise that resolves to an array of detected wallets from the bridge
68
69
  */
69
70
  async function pollForBridgeWallets(): Promise<DetectedWallet[]> {
70
- const pollInterval = 100 // Poll every 100ms
71
- const maxPollTime = 3000 // Poll for maximum 3 seconds
71
+ const pollInterval = 50 // Poll every 50ms
72
+ // Consumer budget see BRIDGE_WALLET_POLL_MS for rationale (couples this
73
+ // to the bridge child's MAX_POLL_MS + grace so we don't resolve `[]` while
74
+ // the child is still marshalling).
75
+ const maxPollTime = BRIDGE_WALLET_POLL_MS
72
76
  const startTime = Date.now()
73
77
 
74
78
  return new Promise(resolve => {
@@ -1,4 +1,4 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest'
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest'
2
2
  import type { ExtensionInjectedProvider, Network } from '@meshconnect/uwc-types'
3
3
  import { ConnectionManager } from './connection-manager'
4
4
 
@@ -478,3 +478,100 @@ describe('ConnectionManager — cross-namespace error resilience (ONC-2696)', ()
478
478
  expect(namespaces).not.toContain('eip155')
479
479
  })
480
480
  })
481
+
482
+ // ONC-3383: inside an iframe, an injected wallet's connect prompt is
483
+ // frame-position-gated (Trust Wallet → dapp.frames-disallowed). The eager
484
+ // cross-namespace gather must not fire a SECONDARY-namespace connect on the
485
+ // gating iframe-local provider — it may only do so when that namespace's bridge
486
+ // list is populated (the connect then routes to the top frame).
487
+ describe('ConnectionManager — iframe-safe cross-namespace gather (ONC-3383)', () => {
488
+ let ethService: ReturnType<typeof makeEthService>
489
+ let solanaService: ReturnType<typeof makeSolanaService>
490
+ let tronService: ReturnType<typeof makeTronService>
491
+ let tonService: ReturnType<typeof makeTonService>
492
+ let manager: ConnectionManager
493
+
494
+ beforeEach(() => {
495
+ ethService = makeEthService()
496
+ solanaService = makeSolanaService()
497
+ tronService = makeTronService()
498
+ tonService = makeTonService()
499
+ manager = new ConnectionManager(
500
+ ethService as any,
501
+ solanaService as any,
502
+ tronService as any,
503
+ tonService as any
504
+ )
505
+ // Simulate running inside an iframe: window.top !== window.self
506
+ Object.defineProperty(window, 'top', { value: {}, configurable: true })
507
+ })
508
+
509
+ afterEach(() => {
510
+ Object.defineProperty(window, 'top', { value: window, configurable: true })
511
+ const w = window as unknown as Record<string, unknown>
512
+ delete w['eip6963Wallets']
513
+ delete w['walletStandardWallets']
514
+ delete w['tronWallets']
515
+ delete w['tonWallets']
516
+ })
517
+
518
+ it('skips the eager EVM connect when framed and the bridge list is empty (avoids frames-disallowed prompt)', async () => {
519
+ solanaService.findWalletByUuid.mockReturnValue({ adapter: {} })
520
+ solanaService.connect.mockResolvedValue('SolAddr1')
521
+
522
+ // EVM detected but not already permitted; the bridge has NOT populated
523
+ // window.eip6963Wallets → resolving EVM would hit the gating local provider.
524
+ ethService.findWalletByUuid.mockReturnValue({ provider: {} })
525
+ ethService.checkExistingConnection.mockResolvedValue(null)
526
+ ethService.connect.mockResolvedValue('0xABC')
527
+
528
+ const provider = makeProvider({
529
+ eip155: { detectedWallet: { uuid: 'mm-eip155' } },
530
+ solana: { detectedWallet: { uuid: 'mm-solana' } }
531
+ })
532
+
533
+ const result = await manager.connectSolana(
534
+ makeNetwork('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'solana'),
535
+ provider
536
+ )
537
+
538
+ expect(result.address).toBe('SolAddr1')
539
+ // The eager EVM connect (eth_requestAccounts) must NOT fire in the iframe.
540
+ expect(ethService.connect).not.toHaveBeenCalled()
541
+ const namespaces = result.availableAddresses.map(
542
+ a => a.networkId.split(':')[0]
543
+ )
544
+ expect(namespaces).toContain('solana')
545
+ expect(namespaces).not.toContain('eip155')
546
+ })
547
+
548
+ it('still performs the eager EVM connect when framed but the bridge list is populated (routes via the top frame)', async () => {
549
+ solanaService.findWalletByUuid.mockReturnValue({ adapter: {} })
550
+ solanaService.connect.mockResolvedValue('SolAddr1')
551
+
552
+ ethService.findWalletByUuid.mockReturnValue({ provider: {} })
553
+ ethService.checkExistingConnection.mockResolvedValue(null)
554
+ ethService.connect.mockResolvedValue('0xABC')
555
+
556
+ // Bridge populated the EVM list → the connect routes to the top frame (safe).
557
+ ;(window as unknown as Record<string, unknown>)['eip6963Wallets'] = [
558
+ { uuid: 'trust', provider: {} }
559
+ ]
560
+
561
+ const provider = makeProvider({
562
+ eip155: { detectedWallet: { uuid: 'mm-eip155' } },
563
+ solana: { detectedWallet: { uuid: 'mm-solana' } }
564
+ })
565
+
566
+ const result = await manager.connectSolana(
567
+ makeNetwork('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp', 'solana'),
568
+ provider
569
+ )
570
+
571
+ expect(ethService.connect).toHaveBeenCalled()
572
+ const namespaces = result.availableAddresses.map(
573
+ a => a.networkId.split(':')[0]
574
+ )
575
+ expect(namespaces).toContain('eip155')
576
+ })
577
+ })
@@ -12,6 +12,52 @@ import { TronWalletService } from './tron/tron-wallet-service'
12
12
  import { TonWalletService } from './ton/ton-wallet-service'
13
13
  import { parseError } from '../utils/error-utils'
14
14
 
15
+ /**
16
+ * True when running inside an iframe (`window.top !== window.self`). The
17
+ * try/catch is a safety net for sandboxed/restricted frames where evaluating
18
+ * that can throw — any such error is treated as "framed".
19
+ */
20
+ function isFramedEmbed(): boolean {
21
+ try {
22
+ return typeof window !== 'undefined' && window.top !== window.self
23
+ } catch {
24
+ return true
25
+ }
26
+ }
27
+
28
+ /** The UWC bridge populates these `window` arrays with top-frame provider
29
+ * proxies. An absent/empty list means no bridged provider is available for that
30
+ * namespace, so a connect would fall to the iframe-local provider. */
31
+ function bridgedListEmpty(
32
+ key: 'eip6963Wallets' | 'walletStandardWallets' | 'tronWallets' | 'tonWallets'
33
+ ): boolean {
34
+ if (typeof window === 'undefined') return true
35
+ const list = (window as unknown as Record<string, unknown>)[key]
36
+ return !Array.isArray(list) || list.length === 0
37
+ }
38
+
39
+ /**
40
+ * Whether to skip an EAGER cross-namespace `connect()` for a SECONDARY namespace
41
+ * (the ONC-3429 gather). Inside an iframe, an injected wallet's connect prompt is
42
+ * frame-position-gated (e.g. Trust Wallet → `dapp.frames-disallowed`). The
43
+ * non-gating path is the UWC bridge, which exposes top-frame providers via the
44
+ * `window.*Wallets` lists. So skip the eager connect only when we are framed AND
45
+ * the bridge has not populated that namespace's list — meaning the connect would
46
+ * hit the gating iframe-local provider. When the list is populated the connect
47
+ * routes to the top frame and is safe; in the top frame (extension) we never
48
+ * skip, preserving the eager gather. The TARGET namespace is connected via its
49
+ * own path in `connectToNamespace` and is unaffected.
50
+ */
51
+ function skipFramedSecondaryConnect(
52
+ bridgeKey:
53
+ | 'eip6963Wallets'
54
+ | 'walletStandardWallets'
55
+ | 'tronWallets'
56
+ | 'tonWallets'
57
+ ): boolean {
58
+ return isFramedEmbed() && bridgedListEmpty(bridgeKey)
59
+ }
60
+
15
61
  export class ConnectionManager {
16
62
  private currentNetworkId: string | null = null
17
63
 
@@ -209,7 +255,9 @@ export class ConnectionManager {
209
255
  const ethAddress =
210
256
  accounts && accounts.length > 0
211
257
  ? accounts[0]
212
- : await this.ethereumService.connect(ethWallet.provider)
258
+ : skipFramedSecondaryConnect('eip6963Wallets')
259
+ ? undefined
260
+ : await this.ethereumService.connect(ethWallet.provider)
213
261
  if (ethAddress) {
214
262
  ethAccount = ethAddress
215
263
  this.ethereumService.setConnectionState(
@@ -258,10 +306,12 @@ export class ConnectionManager {
258
306
  solanaWallet.adapter,
259
307
  solanaWalletUuid
260
308
  )) ||
261
- (await this.solanaService.connect(
262
- solanaWallet.adapter,
263
- solanaWalletUuid
264
- ))
309
+ (skipFramedSecondaryConnect('walletStandardWallets')
310
+ ? undefined
311
+ : await this.solanaService.connect(
312
+ solanaWallet.adapter,
313
+ solanaWalletUuid
314
+ ))
265
315
  if (solanaAddress) {
266
316
  solanaAccount = solanaAddress
267
317
  this.solanaService.setConnectionState(
@@ -307,7 +357,10 @@ export class ConnectionManager {
307
357
  const address =
308
358
  (await this.tronService.checkExistingConnection(
309
359
  tronWallet.provider
310
- )) || (await this.tronService.connect(tronWallet.provider))
360
+ )) ||
361
+ (skipFramedSecondaryConnect('tronWallets')
362
+ ? undefined
363
+ : await this.tronService.connect(tronWallet.provider))
311
364
  if (address) {
312
365
  tronAccount = address
313
366
  this.tronService.setConnectionState(tronWallet.provider, address)
@@ -347,7 +400,7 @@ export class ConnectionManager {
347
400
  if (!tonAccount) {
348
401
  const jsBridgeKey =
349
402
  provider.namespaceMetaData?.tvm?.detectedWallet?.jsBridgeKey
350
- if (jsBridgeKey) {
403
+ if (jsBridgeKey && !skipFramedSecondaryConnect('tonWallets')) {
351
404
  try {
352
405
  const result = await this.tonService.connect(jsBridgeKey)
353
406
  tonAccount = result.address
@@ -14,7 +14,10 @@ vi.mock('./services/tron/tron-wallet-service')
14
14
  vi.mock('./services/connection-manager')
15
15
  vi.mock('./services/signature-service')
16
16
  vi.mock('./services/transaction-service')
17
- vi.mock('@meshconnect/uwc-bridge-child', () => ({ BridgeChild: vi.fn() }))
17
+ vi.mock('@meshconnect/uwc-bridge-child', () => ({
18
+ BridgeChild: vi.fn(),
19
+ MAX_POLL_MS: 5000
20
+ }))
18
21
 
19
22
  // SolanaWalletService needs fine-grained control — we mock at the module level
20
23
  // and override getConnectedAdapter per test.
@@ -142,6 +142,7 @@ describe('getTonWallets / discoverTonProviders', () => {
142
142
  describe('getTonWallets / bridge polling', () => {
143
143
  beforeEach(() => {
144
144
  vi.resetModules()
145
+ vi.useFakeTimers()
145
146
  mockWindow.UWCBridgeChildInitialized = undefined
146
147
  mockWindow.tonkeeper = undefined
147
148
  mockWindow.mytonwallet = undefined
@@ -150,6 +151,7 @@ describe('getTonWallets / bridge polling', () => {
150
151
  })
151
152
 
152
153
  afterEach(() => {
154
+ vi.useRealTimers()
153
155
  vi.restoreAllMocks()
154
156
  })
155
157
 
@@ -185,10 +187,12 @@ describe('getTonWallets / bridge polling', () => {
185
187
  // No tonWallets set — polling will time out
186
188
 
187
189
  const { getTonWallets } = await import('./ton-discovery')
188
- const wallets = await getTonWallets([makeWalletMeta('tonkeeper')])
190
+ const resultPromise = getTonWallets([makeWalletMeta('tonkeeper')])
191
+ await vi.advanceTimersByTimeAsync(5400)
192
+ const wallets = await resultPromise
189
193
 
190
194
  expect(wallets).toEqual([])
191
- }, 3000)
195
+ })
192
196
 
193
197
  it('uses the in-frame (local) provider in bridge mode without waiting for the parent', async () => {
194
198
  mockWindow.UWCBridgeChildInitialized = true
@@ -197,7 +201,9 @@ describe('getTonWallets / bridge polling', () => {
197
201
  mockWindow.tonkeeper = { tonconnect: localBridge }
198
202
 
199
203
  const { getTonWallets } = await import('./ton-discovery')
200
- const wallets = await getTonWallets([makeWalletMeta('tonkeeper')])
204
+ const resultPromise = getTonWallets([makeWalletMeta('tonkeeper')])
205
+ await vi.advanceTimersByTimeAsync(5400)
206
+ const wallets = await resultPromise
201
207
 
202
208
  expect(wallets).toHaveLength(1)
203
209
  expect(wallets[0].jsBridgeKey).toBe('tonkeeper')
@@ -253,18 +259,46 @@ describe('getTonWallets / bridge polling', () => {
253
259
  }, 200)
254
260
 
255
261
  const { getTonWallets } = await import('./ton-discovery')
256
- const wallets = await getTonWallets([makeWalletMeta('tonkeeper')])
262
+ const resultPromise = getTonWallets([makeWalletMeta('tonkeeper')])
263
+ await vi.advanceTimersByTimeAsync(400)
264
+ const wallets = await resultPromise
257
265
 
258
266
  expect(wallets).toEqual([bridgeWallet])
259
- }, 3000)
267
+ })
260
268
 
261
269
  it('handles invalid bridge wallets array', async () => {
262
270
  mockWindow.UWCBridgeChildInitialized = true
263
271
  mockWindow.tonWallets = 'not-an-array'
264
272
 
265
273
  const { getTonWallets } = await import('./ton-discovery')
266
- const wallets = await getTonWallets([makeWalletMeta('tonkeeper')])
274
+ const resultPromise = getTonWallets([makeWalletMeta('tonkeeper')])
275
+ await vi.advanceTimersByTimeAsync(5400)
276
+ const wallets = await resultPromise
267
277
 
268
278
  expect(wallets).toEqual([])
269
- }, 3000)
279
+ })
280
+
281
+ it('picks up a wallet the child writes inside the grace window (t≈5050ms)', async () => {
282
+ // The child can marshal on its final tick, writing window.tonWallets just
283
+ // after its own 5000ms budget. The consumer's BRIDGE_WALLET_POLL_MS (5300ms)
284
+ // grace must still observe it — an equal 5000ms deadline would miss it.
285
+ mockWindow.UWCBridgeChildInitialized = true
286
+ const bridgeWallet = {
287
+ uuid: 'ton-tonkeeper',
288
+ name: 'Tonkeeper',
289
+ icon: '',
290
+ jsBridgeKey: 'tonkeeper',
291
+ provider: makeBridge('Tonkeeper')
292
+ }
293
+ setTimeout(() => {
294
+ mockWindow.tonWallets = [bridgeWallet]
295
+ }, 5050)
296
+
297
+ const { getTonWallets } = await import('./ton-discovery')
298
+ const resultPromise = getTonWallets([makeWalletMeta('tonkeeper')])
299
+ await vi.advanceTimersByTimeAsync(5200)
300
+ const wallets = await resultPromise
301
+
302
+ expect(wallets).toEqual([bridgeWallet])
303
+ })
270
304
  })
@@ -8,6 +8,7 @@
8
8
  */
9
9
 
10
10
  import type { WalletMetadata } from '@meshconnect/uwc-types'
11
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll'
11
12
 
12
13
  interface TonConnectBridge {
13
14
  deviceInfo: { platform: string; appName: string }
@@ -74,8 +75,10 @@ function discoverTonProviders(jsBridgeKeys: string[]): DetectedTonWallet[] {
74
75
  }
75
76
 
76
77
  async function pollForBridgeTonWallets(): Promise<DetectedTonWallet[]> {
77
- const pollInterval = 100
78
- const maxPollTime = 1000
78
+ const pollInterval = 50
79
+ // Consumer poll budget — see BRIDGE_WALLET_POLL_MS for rationale + the
80
+ // must-exceed-child-budget invariant. Ceiling, not a fixed wait.
81
+ const maxPollTime = BRIDGE_WALLET_POLL_MS
79
82
  const startTime = Date.now()
80
83
 
81
84
  return new Promise(resolve => {
@@ -236,8 +236,8 @@ describe('Tron Discovery', () => {
236
236
 
237
237
  const resultPromise = getTronWallets()
238
238
 
239
- // Fast-forward past the 1000ms max poll time
240
- await vi.advanceTimersByTimeAsync(1200)
239
+ // Fast-forward past the bridge poll budget (BRIDGE_WALLET_POLL_MS = 5300ms)
240
+ await vi.advanceTimersByTimeAsync(5400)
241
241
 
242
242
  const result = await resultPromise
243
243
 
@@ -251,7 +251,7 @@ describe('Tron Discovery', () => {
251
251
  const { getTronWallets } = await import('./tron-discovery')
252
252
 
253
253
  const resultPromise = getTronWallets()
254
- await vi.advanceTimersByTimeAsync(1200)
254
+ await vi.advanceTimersByTimeAsync(5400)
255
255
 
256
256
  const result = await resultPromise
257
257
 
@@ -301,8 +301,8 @@ describe('Tron Discovery', () => {
301
301
 
302
302
  const resultPromise = getTronWallets(createExpectedWallets(['tronLink']))
303
303
 
304
- // Fast-forward past the 1000ms max poll time
305
- await vi.advanceTimersByTimeAsync(1200)
304
+ // Fast-forward past the bridge poll budget (BRIDGE_WALLET_POLL_MS = 5300ms)
305
+ await vi.advanceTimersByTimeAsync(5400)
306
306
 
307
307
  const result = await resultPromise
308
308
 
@@ -323,6 +323,29 @@ describe('Tron Discovery', () => {
323
323
  expect(result[0].uuid).toBe('tron-tronlink')
324
324
  expect(result[0].injectedId).toBe('tronLink')
325
325
  })
326
+
327
+ it('picks up a wallet the child writes inside the grace window (t≈5050ms)', async () => {
328
+ // The child can marshal on its final tick, writing window.tronWallets just
329
+ // after its own 5000ms budget. The consumer's BRIDGE_WALLET_POLL_MS (5300ms)
330
+ // grace must still observe it — an equal 5000ms deadline would miss it.
331
+ mockWindow.UWCBridgeChildInitialized = true
332
+ const bridgeWallet = {
333
+ uuid: 'tron-tronlink',
334
+ name: 'tronLink',
335
+ injectedId: 'tronLink',
336
+ provider: createMockTronProvider()
337
+ }
338
+ setTimeout(() => {
339
+ mockWindow.tronWallets = [bridgeWallet]
340
+ }, 5050)
341
+
342
+ const { getTronWallets } = await import('./tron-discovery')
343
+ const resultPromise = getTronWallets()
344
+ await vi.advanceTimersByTimeAsync(5200)
345
+ const result = await resultPromise
346
+
347
+ expect(result).toEqual([bridgeWallet])
348
+ })
326
349
  })
327
350
 
328
351
  describe('error handling', () => {
@@ -11,6 +11,7 @@
11
11
  */
12
12
 
13
13
  import type { WalletMetadata } from '@meshconnect/uwc-types'
14
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll'
14
15
 
15
16
  export interface TronWeb {
16
17
  defaultAddress?: {
@@ -124,8 +125,12 @@ function discoverTronProviders(injectedIds: string[]): DetectedTronWallet[] {
124
125
  * Polls for bridge Tron wallets when UWCBridgeChildInitialized is true
125
126
  */
126
127
  async function pollForBridgeTronWallets(): Promise<DetectedTronWallet[]> {
127
- const pollInterval = 100
128
- const maxPollTime = 1000
128
+ const pollInterval = 50
129
+ // Consumer poll budget — rationale + the must-exceed-child-budget invariant
130
+ // are documented on BRIDGE_WALLET_POLL_MS. The child resolves the array (real
131
+ // wallets or []) as soon as the parent answers, so this is a ceiling, not a
132
+ // fixed wait.
133
+ const maxPollTime = BRIDGE_WALLET_POLL_MS
129
134
  const startTime = Date.now()
130
135
 
131
136
  return new Promise(resolve => {
@@ -155,8 +160,7 @@ async function pollForBridgeTronWallets(): Promise<DetectedTronWallet[]> {
155
160
  /**
156
161
  * Discovers Tron wallets by checking known injection paths on the window object.
157
162
  * When running inside an iframe with the UWC bridge, checks for bridge-proxied
158
- * wallets first. Otherwise polls for up to 3 seconds to handle wallets that
159
- * inject their provider lazily.
163
+ * wallets first. Otherwise checks injected providers on the window object.
160
164
  */
161
165
  export async function getTronWallets(
162
166
  expectedWallets: WalletMetadata[] = []
@@ -168,19 +172,19 @@ export async function getTronWallets(
168
172
  )
169
173
  .filter((id): id is string => !!id)
170
174
 
171
- // Check for bridge-proxied wallets first (iframe mode)
172
175
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
173
176
  // @ts-ignore - window.UWCBridgeChildInitialized is set by the bridge
174
- if (window.UWCBridgeChildInitialized === true) {
177
+ const bridgeMode = window.UWCBridgeChildInitialized === true
178
+
179
+ // Check for bridge-proxied wallets first (iframe mode)
180
+ if (bridgeMode) {
175
181
  const wallets = await pollForBridgeTronWallets()
176
- if (wallets.length > 0) {
177
- return wallets
178
- }
179
- } else {
180
- // Native discovery: check injected providers on the window object, only if bridge parent is not initialized
181
- return discoverTronProviders(injectedIds)
182
+ return wallets.length > 0 ? wallets : []
182
183
  }
183
- return []
184
+
185
+ // Native discovery: check injected providers on the window object.
186
+ const wallets = discoverTronProviders(injectedIds)
187
+ return wallets
184
188
  } catch {
185
189
  // Return empty array if discovery fails
186
190
  return []
@@ -9,6 +9,7 @@ import { getWallets } from '@wallet-standard/app'
9
9
  import { isWalletAdapterCompatibleStandardWallet } from '@solana/wallet-adapter-base'
10
10
  import { StandardWalletAdapter } from '@solana/wallet-standard-wallet-adapter-base'
11
11
  import type { Transaction } from '@solana/web3.js'
12
+ import { BRIDGE_WALLET_POLL_MS } from './bridge-poll'
12
13
 
13
14
  export interface ExtendedStandardWalletAdapter extends StandardWalletAdapter {
14
15
  customFunctions: (
@@ -52,8 +53,12 @@ export interface WalletStandardInfo {
52
53
  * @returns Promise that resolves to an array of detected wallets from the bridge
53
54
  */
54
55
  async function pollForBridgeWallets(): Promise<WalletStandardInfo[]> {
55
- const pollInterval = 100 // Poll every 100ms
56
- const maxPollTime = 3000 // Poll for maximum 3 seconds
56
+ const pollInterval = 50 // Poll every 50ms
57
+ // Consumer budget see BRIDGE_WALLET_POLL_MS for rationale. Even though
58
+ // Solana is published early by BridgeParent, a late-exposing parent can
59
+ // push the child's marshal past 500ms; that race silently cached Solana
60
+ // injected wallets as "not installed".
61
+ const maxPollTime = BRIDGE_WALLET_POLL_MS
57
62
  const startTime = Date.now()
58
63
 
59
64
  return new Promise(resolve => {