@meshconnect/uwc-bridge-child 0.1.0 → 0.1.2-snapshot.153eb93
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/dist/BridgeChild.d.ts.map +1 -1
- package/dist/BridgeChild.js +29 -20
- package/dist/BridgeChild.js.map +1 -1
- package/dist/BridgeChild.test.js +114 -0
- package/dist/BridgeChild.test.js.map +1 -1
- package/package.json +1 -1
- package/src/BridgeChild.test.ts +131 -0
- package/src/BridgeChild.ts +28 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeChild.d.ts","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"AAgBA,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAC,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,sBAAsB,CAAQ;gBAE1B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;YAKtC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"BridgeChild.d.ts","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"AAgBA,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAC,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,sBAAsB,CAAQ;gBAE1B,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;YAKtC,oBAAoB;YAapB,cAAc;YAkDd,YAAY;CAwF3B"}
|
package/dist/BridgeChild.js
CHANGED
|
@@ -14,7 +14,7 @@ export class BridgeChild {
|
|
|
14
14
|
return;
|
|
15
15
|
}
|
|
16
16
|
window.UWCBridgeChildInitialized = true;
|
|
17
|
-
this.parentAPI = Comlink.wrap(Comlink.windowEndpoint(window.parent, self,
|
|
17
|
+
this.parentAPI = Comlink.wrap(Comlink.windowEndpoint(window.parent, self, '*'));
|
|
18
18
|
this.pollForWallets();
|
|
19
19
|
}
|
|
20
20
|
async pollForWallets() {
|
|
@@ -60,13 +60,10 @@ export class BridgeChild {
|
|
|
60
60
|
}
|
|
61
61
|
async checkWallets() {
|
|
62
62
|
try {
|
|
63
|
-
//
|
|
64
|
-
await this.parentAPI?.discoverTronWallets(this.tronInjectedIds);
|
|
65
|
-
// Check if EIP6963, Tron and Wallet Standard wallets are ready
|
|
63
|
+
// Check if EIP6963 and Wallet Standard wallets are ready
|
|
66
64
|
const eip6963Ready = await this.parentAPI?.eip6963WalletsReady;
|
|
67
65
|
const walletStandardReady = await this.parentAPI?.walletStandardWalletsReady;
|
|
68
|
-
|
|
69
|
-
if (!eip6963Ready || !walletStandardReady || !tronDiscoveryReady) {
|
|
66
|
+
if (!eip6963Ready || !walletStandardReady) {
|
|
70
67
|
return 'continue';
|
|
71
68
|
}
|
|
72
69
|
// Get EIP6963 wallets
|
|
@@ -99,21 +96,33 @@ export class BridgeChild {
|
|
|
99
96
|
walletStandardWallets.push(wallet);
|
|
100
97
|
}
|
|
101
98
|
}
|
|
102
|
-
// Get Tron wallets -
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const wallet = {
|
|
110
|
-
uuid: await this.parentAPI.tronWallets[index].uuid,
|
|
111
|
-
name: await this.parentAPI.tronWallets[index].name,
|
|
112
|
-
injectedId: await this.parentAPI.tronWallets[index].injectedId,
|
|
113
|
-
provider: this.parentAPI.tronWallets[index].provider
|
|
114
|
-
};
|
|
115
|
-
tronWallets.push(wallet);
|
|
99
|
+
// Get Tron wallets - wrapped in try/catch for backward compatibility
|
|
100
|
+
// with older BridgeParent versions that don't have Tron support
|
|
101
|
+
let tronWallets = [];
|
|
102
|
+
try {
|
|
103
|
+
if (!this.tronDiscoveryTriggered) {
|
|
104
|
+
await this.parentAPI?.discoverTronWallets?.(this.tronInjectedIds);
|
|
105
|
+
this.tronDiscoveryTriggered = true;
|
|
116
106
|
}
|
|
107
|
+
const tronReady = await this.parentAPI?.tronWalletsReady;
|
|
108
|
+
if (tronReady) {
|
|
109
|
+
const availableTronWallets = await this.parentAPI.tronWallets.length;
|
|
110
|
+
if (availableTronWallets > 0) {
|
|
111
|
+
for (let index = 0; index < availableTronWallets; index++) {
|
|
112
|
+
const wallet = {
|
|
113
|
+
uuid: await this.parentAPI.tronWallets[index].uuid,
|
|
114
|
+
name: await this.parentAPI.tronWallets[index].name,
|
|
115
|
+
injectedId: await this.parentAPI.tronWallets[index].injectedId,
|
|
116
|
+
provider: this.parentAPI.tronWallets[index].provider
|
|
117
|
+
};
|
|
118
|
+
tronWallets.push(wallet);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// Parent doesn't support Tron - use empty array
|
|
125
|
+
tronWallets = [];
|
|
117
126
|
}
|
|
118
127
|
// Set all wallet types on window
|
|
119
128
|
window.eip6963Wallets = eip6963Wallets;
|
package/dist/BridgeChild.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeChild.js","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,cAAc;AAEd,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAalC,MAAM,OAAO,WAAW;IACd,SAAS,CAA4B;IACrC,eAAe,CAAU;IACzB,sBAAsB,GAAG,KAAK,CAAA;IAEtC,YAAY,OAAwC;QAClD,IAAI,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,IAAI,EAAE,CAAA;QACrD,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC7B,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/C,OAAM;QACR,CAAC;QACD,MAAM,CAAC,yBAAyB,GAAG,IAAI,CAAA;QAEvC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAC3B,OAAO,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"BridgeChild.js","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"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"}
|
package/dist/BridgeChild.test.js
CHANGED
|
@@ -225,6 +225,120 @@ describe('BridgeChild', () => {
|
|
|
225
225
|
expect(window.eip6963Wallets).toBeDefined();
|
|
226
226
|
});
|
|
227
227
|
});
|
|
228
|
+
describe('backward compatibility with older BridgeParent (no Tron)', () => {
|
|
229
|
+
it('should still set EVM and Solana wallets when parent has no Tron support', async () => {
|
|
230
|
+
const eip6963Wallets = [
|
|
231
|
+
{
|
|
232
|
+
uuid: 'mm-1',
|
|
233
|
+
name: 'MetaMask',
|
|
234
|
+
icon: 'mm-icon',
|
|
235
|
+
rdns: 'io.metamask',
|
|
236
|
+
provider: { request: vi.fn() }
|
|
237
|
+
}
|
|
238
|
+
];
|
|
239
|
+
const walletStandardWallets = [
|
|
240
|
+
{
|
|
241
|
+
uuid: 'phantom-1',
|
|
242
|
+
name: 'Phantom',
|
|
243
|
+
chains: ['solana:mainnet'],
|
|
244
|
+
features: ['standard:connect'],
|
|
245
|
+
adapter: {}
|
|
246
|
+
}
|
|
247
|
+
];
|
|
248
|
+
// Simulate old parent that throws on any Tron property access
|
|
249
|
+
const oldParentAPI = {
|
|
250
|
+
eip6963WalletsReady: true,
|
|
251
|
+
walletStandardWalletsReady: true,
|
|
252
|
+
eip6963Wallets,
|
|
253
|
+
walletStandardWallets,
|
|
254
|
+
get tronWalletsReady() {
|
|
255
|
+
throw new Error('tronWalletsReady is not defined');
|
|
256
|
+
},
|
|
257
|
+
get tronWallets() {
|
|
258
|
+
throw new Error('tronWallets is not defined');
|
|
259
|
+
},
|
|
260
|
+
get discoverTronWallets() {
|
|
261
|
+
return undefined;
|
|
262
|
+
}
|
|
263
|
+
};
|
|
264
|
+
mockWrappedAPI = oldParentAPI;
|
|
265
|
+
await createBridgeChildInIframe({ tronInjectedIds: ['tronLink'] });
|
|
266
|
+
await vi.advanceTimersByTimeAsync(500);
|
|
267
|
+
// EVM and Solana should still be set
|
|
268
|
+
expect(window.eip6963Wallets).toHaveLength(1);
|
|
269
|
+
expect(window.eip6963Wallets[0].uuid).toBe('mm-1');
|
|
270
|
+
expect(window.walletStandardWallets).toHaveLength(1);
|
|
271
|
+
expect(window.walletStandardWallets[0].name).toBe('Phantom');
|
|
272
|
+
// Tron should fall back to empty array
|
|
273
|
+
expect(window.tronWallets).toEqual([]);
|
|
274
|
+
});
|
|
275
|
+
it('should set tron to empty array when discoverTronWallets throws', async () => {
|
|
276
|
+
const apiWithBrokenDiscover = {
|
|
277
|
+
eip6963WalletsReady: true,
|
|
278
|
+
walletStandardWalletsReady: true,
|
|
279
|
+
eip6963Wallets: [],
|
|
280
|
+
walletStandardWallets: [],
|
|
281
|
+
tronWalletsReady: true,
|
|
282
|
+
tronWallets: [],
|
|
283
|
+
discoverTronWallets: vi.fn(() => {
|
|
284
|
+
throw new Error('Method not supported');
|
|
285
|
+
})
|
|
286
|
+
};
|
|
287
|
+
mockWrappedAPI = apiWithBrokenDiscover;
|
|
288
|
+
await createBridgeChildInIframe({ tronInjectedIds: ['tronLink'] });
|
|
289
|
+
await vi.advanceTimersByTimeAsync(500);
|
|
290
|
+
expect(window.eip6963Wallets).toEqual([]);
|
|
291
|
+
expect(window.walletStandardWallets).toEqual([]);
|
|
292
|
+
expect(window.tronWallets).toEqual([]);
|
|
293
|
+
});
|
|
294
|
+
it('should not block on tron when tronWalletsReady is false', async () => {
|
|
295
|
+
const eip6963Wallets = [
|
|
296
|
+
{
|
|
297
|
+
uuid: 'mm-1',
|
|
298
|
+
name: 'MetaMask',
|
|
299
|
+
icon: 'mm-icon',
|
|
300
|
+
rdns: 'io.metamask',
|
|
301
|
+
provider: { request: vi.fn() }
|
|
302
|
+
}
|
|
303
|
+
];
|
|
304
|
+
mockWrappedAPI = createMockParentAPI({
|
|
305
|
+
eip6963Wallets,
|
|
306
|
+
tronReady: false,
|
|
307
|
+
tronWallets: []
|
|
308
|
+
});
|
|
309
|
+
await createBridgeChildInIframe();
|
|
310
|
+
await vi.advanceTimersByTimeAsync(500);
|
|
311
|
+
// EVM and Solana should be set even though tron is not ready
|
|
312
|
+
expect(window.eip6963Wallets).toHaveLength(1);
|
|
313
|
+
expect(window.walletStandardWallets).toEqual([]);
|
|
314
|
+
// Tron should be empty (not ready, so inner block skipped)
|
|
315
|
+
expect(window.tronWallets).toEqual([]);
|
|
316
|
+
});
|
|
317
|
+
it('should only call discoverTronWallets once across multiple polls', async () => {
|
|
318
|
+
// First poll: eip6963 not ready, so returns 'continue'
|
|
319
|
+
// Second poll: eip6963 ready, completes
|
|
320
|
+
let callCount = 0;
|
|
321
|
+
const progressiveAPI = {
|
|
322
|
+
get eip6963WalletsReady() {
|
|
323
|
+
callCount++;
|
|
324
|
+
return callCount > 1;
|
|
325
|
+
},
|
|
326
|
+
walletStandardWalletsReady: true,
|
|
327
|
+
tronWalletsReady: true,
|
|
328
|
+
eip6963Wallets: [],
|
|
329
|
+
walletStandardWallets: [],
|
|
330
|
+
tronWallets: [],
|
|
331
|
+
discoverTronWallets: vi.fn()
|
|
332
|
+
};
|
|
333
|
+
mockWrappedAPI = progressiveAPI;
|
|
334
|
+
await createBridgeChildInIframe({
|
|
335
|
+
tronInjectedIds: ['tronLink']
|
|
336
|
+
});
|
|
337
|
+
await vi.advanceTimersByTimeAsync(1000);
|
|
338
|
+
// discoverTronWallets should only be called once due to tronDiscoveryTriggered flag
|
|
339
|
+
expect(progressiveAPI.discoverTronWallets).toHaveBeenCalledTimes(1);
|
|
340
|
+
});
|
|
341
|
+
});
|
|
228
342
|
describe('checkWallets with all wallet types', () => {
|
|
229
343
|
it('should fetch all wallet types and set on window', async () => {
|
|
230
344
|
const eip6963Wallets = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeChild.test.js","sourceRoot":"","sources":["../src/BridgeChild.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BridgeChild.test.js","sourceRoot":"","sources":["../src/BridgeChild.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/BridgeChild.test.ts
CHANGED
|
@@ -291,6 +291,137 @@ describe('BridgeChild', () => {
|
|
|
291
291
|
})
|
|
292
292
|
})
|
|
293
293
|
|
|
294
|
+
describe('backward compatibility with older BridgeParent (no Tron)', () => {
|
|
295
|
+
it('should still set EVM and Solana wallets when parent has no Tron support', async () => {
|
|
296
|
+
const eip6963Wallets = [
|
|
297
|
+
{
|
|
298
|
+
uuid: 'mm-1',
|
|
299
|
+
name: 'MetaMask',
|
|
300
|
+
icon: 'mm-icon',
|
|
301
|
+
rdns: 'io.metamask',
|
|
302
|
+
provider: { request: vi.fn() }
|
|
303
|
+
}
|
|
304
|
+
]
|
|
305
|
+
const walletStandardWallets = [
|
|
306
|
+
{
|
|
307
|
+
uuid: 'phantom-1',
|
|
308
|
+
name: 'Phantom',
|
|
309
|
+
chains: ['solana:mainnet'],
|
|
310
|
+
features: ['standard:connect'],
|
|
311
|
+
adapter: {}
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
|
|
315
|
+
// Simulate old parent that throws on any Tron property access
|
|
316
|
+
const oldParentAPI = {
|
|
317
|
+
eip6963WalletsReady: true,
|
|
318
|
+
walletStandardWalletsReady: true,
|
|
319
|
+
eip6963Wallets,
|
|
320
|
+
walletStandardWallets,
|
|
321
|
+
get tronWalletsReady(): boolean {
|
|
322
|
+
throw new Error('tronWalletsReady is not defined')
|
|
323
|
+
},
|
|
324
|
+
get tronWallets(): unknown[] {
|
|
325
|
+
throw new Error('tronWallets is not defined')
|
|
326
|
+
},
|
|
327
|
+
get discoverTronWallets() {
|
|
328
|
+
return undefined
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
mockWrappedAPI = oldParentAPI as any
|
|
333
|
+
|
|
334
|
+
await createBridgeChildInIframe({ tronInjectedIds: ['tronLink'] })
|
|
335
|
+
await vi.advanceTimersByTimeAsync(500)
|
|
336
|
+
|
|
337
|
+
// EVM and Solana should still be set
|
|
338
|
+
expect((window as any).eip6963Wallets).toHaveLength(1)
|
|
339
|
+
expect((window as any).eip6963Wallets[0].uuid).toBe('mm-1')
|
|
340
|
+
expect((window as any).walletStandardWallets).toHaveLength(1)
|
|
341
|
+
expect((window as any).walletStandardWallets[0].name).toBe('Phantom')
|
|
342
|
+
// Tron should fall back to empty array
|
|
343
|
+
expect((window as any).tronWallets).toEqual([])
|
|
344
|
+
})
|
|
345
|
+
|
|
346
|
+
it('should set tron to empty array when discoverTronWallets throws', async () => {
|
|
347
|
+
const apiWithBrokenDiscover = {
|
|
348
|
+
eip6963WalletsReady: true,
|
|
349
|
+
walletStandardWalletsReady: true,
|
|
350
|
+
eip6963Wallets: [],
|
|
351
|
+
walletStandardWallets: [],
|
|
352
|
+
tronWalletsReady: true,
|
|
353
|
+
tronWallets: [],
|
|
354
|
+
discoverTronWallets: vi.fn(() => {
|
|
355
|
+
throw new Error('Method not supported')
|
|
356
|
+
})
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
mockWrappedAPI = apiWithBrokenDiscover as any
|
|
360
|
+
|
|
361
|
+
await createBridgeChildInIframe({ tronInjectedIds: ['tronLink'] })
|
|
362
|
+
await vi.advanceTimersByTimeAsync(500)
|
|
363
|
+
|
|
364
|
+
expect((window as any).eip6963Wallets).toEqual([])
|
|
365
|
+
expect((window as any).walletStandardWallets).toEqual([])
|
|
366
|
+
expect((window as any).tronWallets).toEqual([])
|
|
367
|
+
})
|
|
368
|
+
|
|
369
|
+
it('should not block on tron when tronWalletsReady is false', async () => {
|
|
370
|
+
const eip6963Wallets = [
|
|
371
|
+
{
|
|
372
|
+
uuid: 'mm-1',
|
|
373
|
+
name: 'MetaMask',
|
|
374
|
+
icon: 'mm-icon',
|
|
375
|
+
rdns: 'io.metamask',
|
|
376
|
+
provider: { request: vi.fn() }
|
|
377
|
+
}
|
|
378
|
+
]
|
|
379
|
+
|
|
380
|
+
mockWrappedAPI = createMockParentAPI({
|
|
381
|
+
eip6963Wallets,
|
|
382
|
+
tronReady: false,
|
|
383
|
+
tronWallets: []
|
|
384
|
+
})
|
|
385
|
+
|
|
386
|
+
await createBridgeChildInIframe()
|
|
387
|
+
await vi.advanceTimersByTimeAsync(500)
|
|
388
|
+
|
|
389
|
+
// EVM and Solana should be set even though tron is not ready
|
|
390
|
+
expect((window as any).eip6963Wallets).toHaveLength(1)
|
|
391
|
+
expect((window as any).walletStandardWallets).toEqual([])
|
|
392
|
+
// Tron should be empty (not ready, so inner block skipped)
|
|
393
|
+
expect((window as any).tronWallets).toEqual([])
|
|
394
|
+
})
|
|
395
|
+
|
|
396
|
+
it('should only call discoverTronWallets once across multiple polls', async () => {
|
|
397
|
+
// First poll: eip6963 not ready, so returns 'continue'
|
|
398
|
+
// Second poll: eip6963 ready, completes
|
|
399
|
+
let callCount = 0
|
|
400
|
+
const progressiveAPI = {
|
|
401
|
+
get eip6963WalletsReady() {
|
|
402
|
+
callCount++
|
|
403
|
+
return callCount > 1
|
|
404
|
+
},
|
|
405
|
+
walletStandardWalletsReady: true,
|
|
406
|
+
tronWalletsReady: true,
|
|
407
|
+
eip6963Wallets: [],
|
|
408
|
+
walletStandardWallets: [],
|
|
409
|
+
tronWallets: [],
|
|
410
|
+
discoverTronWallets: vi.fn()
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
mockWrappedAPI = progressiveAPI as any
|
|
414
|
+
|
|
415
|
+
await createBridgeChildInIframe({
|
|
416
|
+
tronInjectedIds: ['tronLink']
|
|
417
|
+
})
|
|
418
|
+
await vi.advanceTimersByTimeAsync(1000)
|
|
419
|
+
|
|
420
|
+
// discoverTronWallets should only be called once due to tronDiscoveryTriggered flag
|
|
421
|
+
expect(progressiveAPI.discoverTronWallets).toHaveBeenCalledTimes(1)
|
|
422
|
+
})
|
|
423
|
+
})
|
|
424
|
+
|
|
294
425
|
describe('checkWallets with all wallet types', () => {
|
|
295
426
|
it('should fetch all wallet types and set on window', async () => {
|
|
296
427
|
const eip6963Wallets = [
|
package/src/BridgeChild.ts
CHANGED
|
@@ -31,11 +31,7 @@ export class BridgeChild {
|
|
|
31
31
|
window.UWCBridgeChildInitialized = true
|
|
32
32
|
|
|
33
33
|
this.parentAPI = Comlink.wrap<ParentAPI>(
|
|
34
|
-
Comlink.windowEndpoint(
|
|
35
|
-
window.parent,
|
|
36
|
-
self,
|
|
37
|
-
new URL(document.referrer).origin
|
|
38
|
-
)
|
|
34
|
+
Comlink.windowEndpoint(window.parent, self, '*')
|
|
39
35
|
)
|
|
40
36
|
|
|
41
37
|
this.pollForWallets()
|
|
@@ -93,16 +89,12 @@ export class BridgeChild {
|
|
|
93
89
|
|
|
94
90
|
private async checkWallets(): Promise<string> {
|
|
95
91
|
try {
|
|
96
|
-
//
|
|
97
|
-
await this.parentAPI?.discoverTronWallets(this.tronInjectedIds)
|
|
98
|
-
|
|
99
|
-
// Check if EIP6963, Tron and Wallet Standard wallets are ready
|
|
92
|
+
// Check if EIP6963 and Wallet Standard wallets are ready
|
|
100
93
|
const eip6963Ready = await this.parentAPI?.eip6963WalletsReady
|
|
101
94
|
const walletStandardReady =
|
|
102
95
|
await this.parentAPI?.walletStandardWalletsReady
|
|
103
|
-
const tronDiscoveryReady = await this.parentAPI?.tronWalletsReady
|
|
104
96
|
|
|
105
|
-
if (!eip6963Ready || !walletStandardReady
|
|
97
|
+
if (!eip6963Ready || !walletStandardReady) {
|
|
106
98
|
return 'continue'
|
|
107
99
|
}
|
|
108
100
|
|
|
@@ -143,25 +135,34 @@ export class BridgeChild {
|
|
|
143
135
|
}
|
|
144
136
|
}
|
|
145
137
|
|
|
146
|
-
// Get Tron wallets -
|
|
147
|
-
//
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
// const providerProxy = this.parentAPI.tronWallets[index].provider
|
|
138
|
+
// Get Tron wallets - wrapped in try/catch for backward compatibility
|
|
139
|
+
// with older BridgeParent versions that don't have Tron support
|
|
140
|
+
let tronWallets: unknown[] = []
|
|
141
|
+
try {
|
|
142
|
+
if (!this.tronDiscoveryTriggered) {
|
|
143
|
+
await this.parentAPI?.discoverTronWallets?.(this.tronInjectedIds)
|
|
144
|
+
this.tronDiscoveryTriggered = true
|
|
145
|
+
}
|
|
155
146
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
147
|
+
const tronReady = await this.parentAPI?.tronWalletsReady
|
|
148
|
+
if (tronReady) {
|
|
149
|
+
const availableTronWallets = await this.parentAPI.tronWallets.length
|
|
150
|
+
|
|
151
|
+
if (availableTronWallets > 0) {
|
|
152
|
+
for (let index = 0; index < availableTronWallets; index++) {
|
|
153
|
+
const wallet = {
|
|
154
|
+
uuid: await this.parentAPI.tronWallets[index].uuid,
|
|
155
|
+
name: await this.parentAPI.tronWallets[index].name,
|
|
156
|
+
injectedId: await this.parentAPI.tronWallets[index].injectedId,
|
|
157
|
+
provider: this.parentAPI.tronWallets[index].provider
|
|
158
|
+
}
|
|
159
|
+
tronWallets.push(wallet)
|
|
160
|
+
}
|
|
161
161
|
}
|
|
162
|
-
|
|
163
|
-
tronWallets.push(wallet)
|
|
164
162
|
}
|
|
163
|
+
} catch {
|
|
164
|
+
// Parent doesn't support Tron - use empty array
|
|
165
|
+
tronWallets = []
|
|
165
166
|
}
|
|
166
167
|
|
|
167
168
|
// Set all wallet types on window
|