@meshconnect/uwc-bridge-child 0.2.2 → 0.2.3-snapshot.35caafb

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.
@@ -2,14 +2,22 @@ export declare class BridgeChild {
2
2
  private parentAPI?;
3
3
  private tronInjectedIds;
4
4
  private tonJsBridgeKeys;
5
- private tronDiscoveryTriggered;
6
- private tonDiscoveryTriggered;
5
+ private eip6963Done;
6
+ private solanaDone;
7
+ private tronDone;
8
+ private tonDone;
7
9
  constructor(options?: {
8
10
  tronInjectedIds?: string[];
9
11
  tonJsBridgeKeys?: string[];
10
12
  });
11
13
  private initializeConnection;
14
+ private anyWindowWalletsAlreadySet;
15
+ private syncParentOrigin;
12
16
  private pollForWallets;
13
- private checkWallets;
17
+ private fillEmptyDefaults;
18
+ private tryMarshalEip6963;
19
+ private tryMarshalSolana;
20
+ private tryMarshalTron;
21
+ private tryMarshalTon;
14
22
  }
15
23
  //# sourceMappingURL=BridgeChild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeChild.d.ts","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"AAqBA,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAC,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,sBAAsB,CAAQ;IACtC,OAAO,CAAC,qBAAqB,CAAQ;gBAEzB,OAAO,CAAC,EAAE;QACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;QAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAC3B;YAMa,oBAAoB;YAapB,cAAc;YAmDd,YAAY;CAmL3B"}
1
+ {"version":3,"file":"BridgeChild.d.ts","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"AA2BA,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAC,CAA2B;IAC7C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAAU;IAGjC,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAQ;gBAEX,OAAO,CAAC,EAAE;QACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;QAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAC3B;YAMa,oBAAoB;IA+BlC,OAAO,CAAC,0BAA0B;YAUpB,gBAAgB;IA0B9B,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,iBAAiB;YASX,iBAAiB;YA+BjB,gBAAgB;YAiChB,cAAc;YAsEd,aAAa;CAyG5B"}
@@ -2,12 +2,16 @@
2
2
  // @ts-nocheck
3
3
  import * as Comlink from 'comlink';
4
4
  import { hasInFrameTonBridge } from './tonInFrameBridge';
5
+ import { MAX_POLL_MS, POLL_INTERVAL_MS, raceParentRead, BridgeReadTimeout } from './bridge-timing';
5
6
  export class BridgeChild {
6
7
  parentAPI;
7
8
  tronInjectedIds;
8
9
  tonJsBridgeKeys;
9
- tronDiscoveryTriggered = false;
10
- tonDiscoveryTriggered = false;
10
+ // Per-namespace completion flags so we only marshal each set once.
11
+ eip6963Done = false;
12
+ solanaDone = false;
13
+ tronDone = false;
14
+ tonDone = false;
11
15
  constructor(options) {
12
16
  this.tronInjectedIds = options?.tronInjectedIds ?? [];
13
17
  this.tonJsBridgeKeys = options?.tonJsBridgeKeys ?? [];
@@ -18,180 +22,294 @@ export class BridgeChild {
18
22
  return;
19
23
  }
20
24
  window.UWCBridgeChildInitialized = true;
25
+ // If another bootstrap already published at least one non-empty wallet
26
+ // array, skip everything. Matches the old BridgeChild semantics for
27
+ // embedded flows. Note: a previously-set empty array (`[]`, distinct from
28
+ // `undefined`) does NOT short-circuit us — another module saying "I
29
+ // couldn't find any EVM wallets" shouldn't prevent us from still
30
+ // discovering TON/Tron via the bridge.
31
+ if (this.anyWindowWalletsAlreadySet()) {
32
+ return;
33
+ }
21
34
  this.parentAPI = Comlink.wrap(Comlink.windowEndpoint(window.parent, self, '*'));
35
+ // Tron/TON discovery is driven from the poll loop (tryMarshalTron/Ton),
36
+ // which re-issues discoverTron/TonWallets every tick until the parent
37
+ // answers. A single eager trigger here would be silently lost if it raced
38
+ // the parent's Comlink.expose (Comlink calls hang, never reject).
39
+ // Fetch the parent origin concurrently for TON Connect manifest URL.
40
+ this.syncParentOrigin();
22
41
  this.pollForWallets();
23
42
  }
24
- async pollForWallets() {
25
- const pollInterval = 100;
26
- const maxPollTime = 10000; // Poll for maximum 10 seconds
43
+ anyWindowWalletsAlreadySet() {
44
+ return Boolean((window.eip6963Wallets && window.eip6963Wallets.length > 0) ||
45
+ (window.walletStandardWallets &&
46
+ window.walletStandardWallets.length > 0) ||
47
+ (window.tronWallets && window.tronWallets.length > 0) ||
48
+ (window.tonWallets && window.tonWallets.length > 0));
49
+ }
50
+ async syncParentOrigin() {
51
+ // Same late-expose hazard as the wallet poll: a parentOrigin read posted
52
+ // before the parent's Comlink.expose hangs forever (the request message is
53
+ // dropped, so it never resolves even once the parent comes up). Retry with a
54
+ // per-read deadline until the parent answers or the poll budget elapses.
55
+ // A *resolved* read is final, not retried: the current BridgeParent sets
56
+ // parentOrigin to window.location.origin synchronously before expose, so a
57
+ // resolved value is always a real origin; a falsy resolve means an older
58
+ // parent without parentOrigin, where spinning the full budget is pointless.
27
59
  const startTime = Date.now();
28
- const poll = () => {
29
- // Check if we've exceeded the max poll time
30
- if (Date.now() - startTime > maxPollTime) {
60
+ while (Date.now() - startTime <= MAX_POLL_MS) {
61
+ try {
62
+ const origin = await raceParentRead(this.parentAPI?.parentOrigin);
63
+ if (origin)
64
+ window.uwcParentOrigin = origin;
31
65
  return;
32
66
  }
33
- // Check if global variables are already set
34
- if ((window.eip6963Wallets && window.eip6963Wallets.length > 0) ||
35
- (window.walletStandardWallets &&
36
- window.walletStandardWallets.length > 0) ||
37
- (window.tronWallets && window.tronWallets.length > 0) ||
38
- (window.tonWallets && window.tonWallets.length > 0)) {
67
+ catch (err) {
68
+ if (err instanceof BridgeReadTimeout) {
69
+ await new Promise(resolve => setTimeout(resolve, POLL_INTERVAL_MS));
70
+ continue;
71
+ }
72
+ // Older BridgeParent that throws on parentOrigin — ignore.
39
73
  return;
40
74
  }
41
- if (!this.parentAPI) {
42
- setTimeout(poll, pollInterval);
75
+ }
76
+ }
77
+ pollForWallets() {
78
+ const startTime = Date.now();
79
+ const poll = async () => {
80
+ if (!this.parentAPI)
81
+ return;
82
+ if (Date.now() - startTime > MAX_POLL_MS) {
83
+ this.fillEmptyDefaults();
43
84
  return;
44
85
  }
45
- // Create a timeout promise to prevent hanging
46
- const timeoutPromise = new Promise((_, reject) => {
47
- setTimeout(() => reject(new Error('Timeout accessing parent API')), 100);
48
- });
49
- // Try to check wallets with a timeout
50
- Promise.race([this.checkWallets(), timeoutPromise])
51
- .then(result => {
52
- if (result === 'continue') {
53
- // Continue polling
54
- setTimeout(poll, pollInterval);
55
- }
56
- // If result is 'stop', polling will stop
57
- })
58
- .catch(_error => {
59
- // Continue polling on error
60
- setTimeout(poll, pollInterval);
61
- });
86
+ // Run all four namespace marshals concurrently. Each short-circuits if
87
+ // already done or not yet ready, so the cost is a single
88
+ // `await ready` round-trip per pending namespace per tick.
89
+ await Promise.all([
90
+ this.tryMarshalEip6963(),
91
+ this.tryMarshalSolana(),
92
+ this.tryMarshalTron(),
93
+ this.tryMarshalTon()
94
+ ]);
95
+ // Tron/TON have no early default: tryMarshal{Tron,Ton} writes the real
96
+ // wallets (or [] on a ready-with-empty / unsupported parent), and the
97
+ // MAX_POLL_MS fillEmptyDefaults backstop covers a parent that never
98
+ // reports ready. Writing [] earlier would race a still-pending discovery
99
+ // and make the consumer's one-shot poll miss a wallet that lands a tick
100
+ // later.
101
+ if (this.eip6963Done &&
102
+ this.solanaDone &&
103
+ this.tronDone &&
104
+ this.tonDone) {
105
+ return;
106
+ }
107
+ setTimeout(poll, POLL_INTERVAL_MS);
62
108
  };
63
- // Start polling immediately
109
+ // Kick off synchronously — no first-tick delay.
64
110
  poll();
65
111
  }
66
- async checkWallets() {
112
+ fillEmptyDefaults() {
113
+ if (window.eip6963Wallets === undefined)
114
+ window.eip6963Wallets = [];
115
+ if (window.walletStandardWallets === undefined) {
116
+ window.walletStandardWallets = [];
117
+ }
118
+ if (window.tronWallets === undefined)
119
+ window.tronWallets = [];
120
+ if (window.tonWallets === undefined)
121
+ window.tonWallets = [];
122
+ }
123
+ async tryMarshalEip6963() {
124
+ if (this.eip6963Done || !this.parentAPI)
125
+ return;
67
126
  try {
68
- // Check if EIP6963 and Wallet Standard wallets are ready
69
- const eip6963Ready = await this.parentAPI?.eip6963WalletsReady;
70
- const walletStandardReady = await this.parentAPI?.walletStandardWalletsReady;
71
- if (!eip6963Ready || !walletStandardReady) {
72
- return 'continue';
73
- }
74
- // Get EIP6963 wallets
75
- const availableEip6963Wallets = await this.parentAPI?.eip6963Wallets.length;
76
- const eip6963Wallets = [];
77
- if (availableEip6963Wallets > 0) {
78
- for (let index = 0; index < availableEip6963Wallets; index++) {
79
- const wallet = {
80
- uuid: await this.parentAPI.eip6963Wallets[index].uuid,
81
- name: await this.parentAPI.eip6963Wallets[index].name,
82
- icon: await this.parentAPI.eip6963Wallets[index].icon,
83
- rdns: await this.parentAPI.eip6963Wallets[index].rdns,
84
- provider: this.parentAPI.eip6963Wallets[index].provider
85
- };
86
- eip6963Wallets.push(wallet);
87
- }
127
+ const ready = await raceParentRead(this.parentAPI.eip6963WalletsReady);
128
+ if (!ready)
129
+ return;
130
+ const len = await this.parentAPI.eip6963Wallets.length;
131
+ const wallets = [];
132
+ if (len > 0) {
133
+ const indices = Array.from({ length: len }, (_, i) => i);
134
+ const marshalled = await Promise.all(indices.map(async (i) => {
135
+ const entry = this.parentAPI.eip6963Wallets[i];
136
+ const [uuid, name, icon, rdns] = await Promise.all([
137
+ entry.uuid,
138
+ entry.name,
139
+ entry.icon,
140
+ entry.rdns
141
+ ]);
142
+ return { uuid, name, icon, rdns, provider: entry.provider };
143
+ }));
144
+ wallets.push(...marshalled);
88
145
  }
89
- // Get Wallet Standard wallets
90
- const availableWalletStandardWallets = await this.parentAPI.walletStandardWallets.length;
91
- const walletStandardWallets = [];
92
- if (availableWalletStandardWallets > 0) {
93
- for (let index = 0; index < availableWalletStandardWallets; index++) {
94
- const wallet = {
95
- uuid: await this.parentAPI.walletStandardWallets[index].uuid,
96
- name: await this.parentAPI.walletStandardWallets[index].name,
97
- chains: await this.parentAPI.walletStandardWallets[index].chains,
98
- features: await this.parentAPI.walletStandardWallets[index].features,
99
- adapter: this.parentAPI.walletStandardWallets[index].adapter
100
- };
101
- walletStandardWallets.push(wallet);
102
- }
146
+ window.eip6963Wallets = wallets;
147
+ this.eip6963Done = true;
148
+ }
149
+ catch {
150
+ // retry on next tick
151
+ }
152
+ }
153
+ async tryMarshalSolana() {
154
+ if (this.solanaDone || !this.parentAPI)
155
+ return;
156
+ try {
157
+ const ready = await raceParentRead(this.parentAPI.walletStandardWalletsReady);
158
+ if (!ready)
159
+ return;
160
+ const len = await this.parentAPI.walletStandardWallets.length;
161
+ const wallets = [];
162
+ if (len > 0) {
163
+ const indices = Array.from({ length: len }, (_, i) => i);
164
+ const marshalled = await Promise.all(indices.map(async (i) => {
165
+ const entry = this.parentAPI.walletStandardWallets[i];
166
+ const [uuid, name, chains, features] = await Promise.all([
167
+ entry.uuid,
168
+ entry.name,
169
+ entry.chains,
170
+ entry.features
171
+ ]);
172
+ return { uuid, name, chains, features, adapter: entry.adapter };
173
+ }));
174
+ wallets.push(...marshalled);
103
175
  }
104
- // Get Tron wallets - wrapped in try/catch for backward compatibility
105
- // with older BridgeParent versions that don't have Tron support
106
- let tronWallets = [];
176
+ window.walletStandardWallets = wallets;
177
+ this.solanaDone = true;
178
+ }
179
+ catch {
180
+ // retry on next tick
181
+ }
182
+ }
183
+ async tryMarshalTron() {
184
+ if (this.tronDone || !this.parentAPI)
185
+ return;
186
+ // (Re-)ask the parent to run Tron discovery on every tick. A one-shot
187
+ // trigger is silently lost if posted before the parent's Comlink.expose (the
188
+ // request hangs, never rejects), so re-issuing mirrors EIP-6963's per-tick
189
+ // resilience. Comlink calls return a Promise and never throw synchronously,
190
+ // so an unsupported parent is handled by the tronWalletsReady read below (or
191
+ // the MAX_POLL_MS backstop) — not here. The try only guards a non-Comlink
192
+ // stub whose call throws synchronously.
193
+ // Each pre-expose reissue leaves one lightweight Comlink pending-listener
194
+ // Map entry (requestResponseMessage — not a DOM listener or MessageChannel
195
+ // port); bounded by the expose delay and GC'd. An in-flight guard is
196
+ // intentionally avoided: it would deadlock recovery, since a never-settling
197
+ // pre-expose call would block all subsequent re-issues.
198
+ //
199
+ // Fired in a detached async IIFE so that the await — needed to make the
200
+ // try/catch absorb both sync throws (test stubs) and async rejections —
201
+ // does not block this tick. A pre-expose hang sits inside the IIFE
202
+ // harmlessly until the parent comes up or GC reaps it.
203
+ void (async () => {
107
204
  try {
108
- if (!this.tronDiscoveryTriggered) {
109
- await this.parentAPI?.discoverTronWallets?.(this.tronInjectedIds);
110
- this.tronDiscoveryTriggered = true;
111
- }
112
- const tronReady = await this.parentAPI?.tronWalletsReady;
113
- if (tronReady) {
114
- const availableTronWallets = await this.parentAPI.tronWallets.length;
115
- if (availableTronWallets > 0) {
116
- for (let index = 0; index < availableTronWallets; index++) {
117
- const wallet = {
118
- uuid: await this.parentAPI.tronWallets[index].uuid,
119
- name: await this.parentAPI.tronWallets[index].name,
120
- injectedId: await this.parentAPI.tronWallets[index].injectedId,
121
- provider: this.parentAPI.tronWallets[index].provider
122
- };
123
- tronWallets.push(wallet);
124
- }
125
- }
126
- }
205
+ await this.parentAPI.discoverTronWallets?.(this.tronInjectedIds);
127
206
  }
128
207
  catch {
129
- // Parent doesn't support Tron - use empty array
130
- tronWallets = [];
208
+ // absorb the readiness read below governs the outcome
131
209
  }
132
- // Get TON wallets - wrapped in try/catch for backward compatibility
133
- // with older BridgeParent versions that don't have TON support
134
- let tonWallets = [];
135
- try {
136
- if (!this.tonDiscoveryTriggered) {
137
- await this.parentAPI?.discoverTonWallets?.(this.tonJsBridgeKeys);
138
- this.tonDiscoveryTriggered = true;
139
- }
140
- const tonReady = await this.parentAPI?.tonWalletsReady;
141
- if (tonReady) {
142
- const availableTonWallets = await this.parentAPI.tonWallets.length;
143
- if (availableTonWallets > 0) {
144
- for (let index = 0; index < availableTonWallets; index++) {
145
- const wallet = {
146
- uuid: await this.parentAPI.tonWallets[index].uuid,
147
- name: await this.parentAPI.tonWallets[index].name,
148
- icon: await this.parentAPI.tonWallets[index].icon,
149
- jsBridgeKey: await this.parentAPI.tonWallets[index].jsBridgeKey,
150
- provider: this.parentAPI.tonWallets[index].provider
151
- };
152
- tonWallets.push(wallet);
153
- }
154
- }
155
- }
210
+ })();
211
+ let ready;
212
+ try {
213
+ ready = await raceParentRead(this.parentAPI.tronWalletsReady);
214
+ }
215
+ catch (err) {
216
+ // Read timed out → parent not live yet, retry next tick. Any other error
217
+ // (older parent throwing on the property) → no Tron support.
218
+ if (err instanceof BridgeReadTimeout) {
219
+ return;
156
220
  }
157
- catch {
158
- // Parent doesn't support TON - use empty array
159
- tonWallets = [];
221
+ window.tronWallets = [];
222
+ this.tronDone = true;
223
+ return;
224
+ }
225
+ if (!ready)
226
+ return;
227
+ try {
228
+ const len = await this.parentAPI.tronWallets.length;
229
+ const wallets = [];
230
+ if (len > 0) {
231
+ const indices = Array.from({ length: len }, (_, i) => i);
232
+ const marshalled = await Promise.all(indices.map(async (i) => {
233
+ const entry = this.parentAPI.tronWallets[i];
234
+ const [uuid, name, injectedId] = await Promise.all([
235
+ entry.uuid,
236
+ entry.name,
237
+ entry.injectedId
238
+ ]);
239
+ return { uuid, name, injectedId, provider: entry.provider };
240
+ }));
241
+ wallets.push(...marshalled);
160
242
  }
161
- // Set parent origin on window for TON Connect manifest URL resolution
243
+ window.tronWallets = wallets;
244
+ this.tronDone = true;
245
+ }
246
+ catch {
247
+ window.tronWallets = [];
248
+ this.tronDone = true;
249
+ }
250
+ }
251
+ async tryMarshalTon() {
252
+ if (this.tonDone || !this.parentAPI)
253
+ return;
254
+ // Re-issue discovery each tick — same expose-race resilience as Tron.
255
+ // See tryMarshalTron for the detached-IIFE rationale.
256
+ void (async () => {
162
257
  try {
163
- const origin = await this.parentAPI?.parentOrigin;
164
- if (origin) {
165
- window.uwcParentOrigin = origin;
166
- }
258
+ await this.parentAPI.discoverTonWallets?.(this.tonJsBridgeKeys);
167
259
  }
168
260
  catch {
169
- // Parent doesn't support parentOrigin - older BridgeParent version
261
+ // absorb the readiness read below governs the outcome
170
262
  }
171
- // Set all wallet types on window
172
- window.eip6963Wallets = eip6963Wallets;
173
- window.walletStandardWallets = walletStandardWallets;
174
- window.tronWallets = tronWallets;
175
- window.tonWallets = tonWallets;
176
- // Shim window[jsBridgeKey].tonconnect so @tonconnect/sdk finds the Comlink proxy.
177
- // We build a local adapter because:
178
- // - Static props (deviceInfo, walletInfo) must be sync, but Comlink returns Promises
179
- // - listen(callback) can't send functions via postMessage without Comlink.proxy()
180
- // - listen() must return a sync unsubscribe function, not a Promise
181
- for (const wallet of tonWallets) {
263
+ })();
264
+ let ready;
265
+ try {
266
+ ready = await raceParentRead(this.parentAPI.tonWalletsReady);
267
+ }
268
+ catch (err) {
269
+ if (err instanceof BridgeReadTimeout)
270
+ return;
271
+ window.tonWallets = [];
272
+ this.tonDone = true;
273
+ return;
274
+ }
275
+ if (!ready)
276
+ return;
277
+ try {
278
+ const len = await this.parentAPI.tonWallets.length;
279
+ const wallets = [];
280
+ if (len > 0) {
281
+ const indices = Array.from({ length: len }, (_, i) => i);
282
+ const marshalled = await Promise.all(indices.map(async (i) => {
283
+ const entry = this.parentAPI.tonWallets[i];
284
+ const [uuid, name, icon, jsBridgeKey] = await Promise.all([
285
+ entry.uuid,
286
+ entry.name,
287
+ entry.icon,
288
+ entry.jsBridgeKey
289
+ ]);
290
+ return { uuid, name, icon, jsBridgeKey, provider: entry.provider };
291
+ }));
292
+ wallets.push(...marshalled);
293
+ }
294
+ window.tonWallets = wallets;
295
+ // Shim window[jsBridgeKey].tonconnect so @tonconnect/sdk finds the
296
+ // Comlink proxy. Static props must be sync, but Comlink returns
297
+ // Promises — so we prefetch them here in parallel.
298
+ await Promise.all(wallets.map(async (wallet) => {
182
299
  if (!wallet.jsBridgeKey || !wallet.provider)
183
- continue;
184
- // keep a real in-frame provider so connect() attributes to the
185
- // iframe origin; shimming it would attribute to the parent, which the
300
+ return;
301
+ // Keep the real in-frame provider so connect() attributes to the
302
+ // iframe origin; shimming would attribute to the parent, which the
186
303
  // wallet's manifest origin check rejects.
187
304
  if (hasInFrameTonBridge(wallet.jsBridgeKey))
188
- continue;
305
+ return;
189
306
  const proxy = wallet.provider;
190
- // Read static properties upfront (they were transferred as values by Comlink)
191
- const deviceInfo = await proxy.deviceInfo;
192
- const walletInfo = await proxy.walletInfo;
193
- const protocolVersion = await proxy.protocolVersion;
194
- const isWalletBrowser = await proxy.isWalletBrowser;
307
+ const [deviceInfo, walletInfo, protocolVersion, isWalletBrowser] = await Promise.all([
308
+ proxy.deviceInfo,
309
+ proxy.walletInfo,
310
+ proxy.protocolVersion,
311
+ proxy.isWalletBrowser
312
+ ]);
195
313
  window[wallet.jsBridgeKey] = {
196
314
  tonconnect: {
197
315
  deviceInfo,
@@ -205,7 +323,6 @@ export class BridgeChild {
205
323
  const proxiedCallback = Comlink.proxy(callback);
206
324
  let unsubscribe = null;
207
325
  const result = proxy.listen(proxiedCallback);
208
- // Comlink returns a Promise; direct calls return the value
209
326
  Promise.resolve(result).then((unsub) => {
210
327
  unsubscribe = typeof unsub === 'function' ? unsub : () => { };
211
328
  });
@@ -217,11 +334,13 @@ export class BridgeChild {
217
334
  disconnect: () => proxy.disconnect?.()
218
335
  }
219
336
  };
220
- }
221
- return 'stop';
337
+ }));
338
+ this.tonDone = true;
222
339
  }
223
340
  catch {
224
- return 'continue';
341
+ // Parent doesn't support TON — mark done with empty list.
342
+ window.tonWallets = [];
343
+ this.tonDone = true;
225
344
  }
226
345
  }
227
346
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BridgeChild.js","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BridgeChild.js","sourceRoot":"","sources":["../src/BridgeChild.ts"],"names":[],"mappings":"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"}