@meshconnect/uwc-core 0.7.4 → 0.7.5-snapshot.c90b3e8

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.
Files changed (50) hide show
  1. package/README.md +924 -0
  2. package/dist/events.d.ts +71 -0
  3. package/dist/events.d.ts.map +1 -0
  4. package/dist/events.js +2 -0
  5. package/dist/events.js.map +1 -0
  6. package/dist/index.d.ts +2 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1 -3
  9. package/dist/index.js.map +1 -1
  10. package/dist/managers/event-manager.d.ts +22 -3
  11. package/dist/managers/event-manager.d.ts.map +1 -1
  12. package/dist/managers/event-manager.js +63 -7
  13. package/dist/managers/event-manager.js.map +1 -1
  14. package/dist/services/connection-service.d.ts +5 -2
  15. package/dist/services/connection-service.d.ts.map +1 -1
  16. package/dist/services/connection-service.js +19 -7
  17. package/dist/services/connection-service.js.map +1 -1
  18. package/dist/services/network-switch-service.d.ts +2 -1
  19. package/dist/services/network-switch-service.d.ts.map +1 -1
  20. package/dist/services/network-switch-service.js +15 -3
  21. package/dist/services/network-switch-service.js.map +1 -1
  22. package/dist/services/signature-service.d.ts +3 -1
  23. package/dist/services/signature-service.d.ts.map +1 -1
  24. package/dist/services/signature-service.js +10 -5
  25. package/dist/services/signature-service.js.map +1 -1
  26. package/dist/services/transaction-service.d.ts +3 -1
  27. package/dist/services/transaction-service.d.ts.map +1 -1
  28. package/dist/services/transaction-service.js +10 -5
  29. package/dist/services/transaction-service.js.map +1 -1
  30. package/dist/services/wallet-capabilities-service.d.ts +2 -1
  31. package/dist/services/wallet-capabilities-service.d.ts.map +1 -1
  32. package/dist/services/wallet-capabilities-service.js +9 -2
  33. package/dist/services/wallet-capabilities-service.js.map +1 -1
  34. package/dist/universal-wallet-connector.d.ts +52 -6
  35. package/dist/universal-wallet-connector.d.ts.map +1 -1
  36. package/dist/universal-wallet-connector.js +271 -177
  37. package/dist/universal-wallet-connector.js.map +1 -1
  38. package/package.json +5 -5
  39. package/src/events.ts +73 -0
  40. package/src/index.ts +11 -3
  41. package/src/managers/event-manager.test.ts +70 -0
  42. package/src/managers/event-manager.ts +80 -9
  43. package/src/services/connection-service.test.ts +11 -3
  44. package/src/services/connection-service.ts +34 -7
  45. package/src/services/network-switch-service.ts +22 -3
  46. package/src/services/signature-service.ts +13 -5
  47. package/src/services/transaction-service.ts +13 -5
  48. package/src/services/wallet-capabilities-service.ts +14 -2
  49. package/src/universal-wallet-connector.test.ts +87 -3
  50. package/src/universal-wallet-connector.ts +395 -204
@@ -1,3 +1,4 @@
1
+ import { WalletConnectorError } from '@meshconnect/uwc-types';
1
2
  import { InjectedConnector } from '@meshconnect/uwc-injected-connector';
2
3
  import { WalletConnectConnector } from '@meshconnect/uwc-wallet-connect-connector';
3
4
  import { TonConnectConnector } from '@meshconnect/uwc-ton-connector';
@@ -10,6 +11,7 @@ import { TransactionService } from './services/transaction-service';
10
11
  import { WalletCapabilitiesService } from './services/wallet-capabilities-service';
11
12
  import { createNetworkRpcMap } from './utils/network-rpc-utils';
12
13
  export class UniversalWalletConnector {
14
+ static instance = null;
13
15
  static instanceCount = 0;
14
16
  static hasWarnedAboutMultipleInstances = false;
15
17
  sessionManager;
@@ -25,48 +27,93 @@ export class UniversalWalletConnector {
25
27
  usingIntegratedBrowser;
26
28
  detectionComplete = false;
27
29
  networkRpcMap;
28
- constructor(networks, wallets = [], usingIntegratedBrowser = false, walletConnectConfig, tonConnectConfig) {
29
- // Track instance creation
30
+ /**
31
+ * Recommended entry point: returns the shared instance, creating it on the
32
+ * first call. Subsequent calls ignore the `config` argument — use
33
+ * `resetInstance()` first if you need to reinitialise (e.g. in tests).
34
+ */
35
+ static getInstance(config) {
36
+ if (UniversalWalletConnector.instance) {
37
+ return UniversalWalletConnector.instance;
38
+ }
39
+ if (!config) {
40
+ throw new Error('UniversalWalletConnector.getInstance() was called before an instance existed. Pass a config on the first call.');
41
+ }
42
+ return new UniversalWalletConnector(config);
43
+ }
44
+ /** Clear the shared instance reference. Primarily for tests and full-logout flows. */
45
+ static resetInstance() {
46
+ UniversalWalletConnector.instance = null;
47
+ UniversalWalletConnector.instanceCount = 0;
48
+ UniversalWalletConnector.hasWarnedAboutMultipleInstances = false;
49
+ }
50
+ constructor(networksOrConfig, wallets = [], usingIntegratedBrowser = false, walletConnectConfig, tonConnectConfig) {
51
+ if (!networksOrConfig) {
52
+ throw new Error('Universal Wallet Connector must be initialized with at least one network');
53
+ }
54
+ let config;
55
+ if (Array.isArray(networksOrConfig)) {
56
+ config = {
57
+ networks: networksOrConfig,
58
+ wallets,
59
+ usingIntegratedBrowser
60
+ };
61
+ if (walletConnectConfig) {
62
+ config.walletConnectConfig = walletConnectConfig;
63
+ }
64
+ if (tonConnectConfig) {
65
+ config.tonConnectConfig = tonConnectConfig;
66
+ }
67
+ }
68
+ else {
69
+ config = networksOrConfig;
70
+ }
71
+ const { networks, wallets: configuredWallets = [], usingIntegratedBrowser: configuredUsingIntegratedBrowser = false, walletConnectConfig: configuredWalletConnectConfig, tonConnectConfig: configuredTonConnectConfig } = config;
72
+ // Track instance creation and warn on duplicates
30
73
  UniversalWalletConnector.instanceCount++;
31
- // Warn about multiple instances
32
74
  if (UniversalWalletConnector.instanceCount > 1 &&
33
75
  !UniversalWalletConnector.hasWarnedAboutMultipleInstances) {
34
76
  // eslint-disable-next-line no-console
35
77
  console.error(`⚠️ WARNING: Multiple instances of UniversalWalletConnector detected (${UniversalWalletConnector.instanceCount} instances). ` +
36
78
  'This can lead to state inconsistencies and unexpected behavior. ' +
37
79
  'Please ensure you create only one instance and reuse it throughout your application. ' +
38
- 'Consider using a singleton pattern or a context provider. ' +
80
+ 'Use UniversalWalletConnector.getInstance(config) instead of `new` to guarantee a single instance. ' +
39
81
  'You can ignore this warning if you are using React Strict Mode, which intentionally mounts components twice in development to help identify side effects.');
40
82
  UniversalWalletConnector.hasWarnedAboutMultipleInstances = true;
41
83
  }
42
84
  if (!networks) {
43
85
  throw new Error('Universal Wallet Connector must be initialized with at least one network');
44
86
  }
45
- if (!wallets) {
87
+ if (!configuredWallets) {
46
88
  throw new Error('Universal Wallet Connector must be initialized with at least one wallet');
47
89
  }
48
- this.wallets = wallets;
49
- this.usingIntegratedBrowser = usingIntegratedBrowser;
90
+ this.wallets = configuredWallets;
91
+ this.usingIntegratedBrowser = configuredUsingIntegratedBrowser;
50
92
  // Create RPC map from networks
51
93
  this.networkRpcMap = createNetworkRpcMap(networks);
52
94
  // Initialize connectors with RPC map
53
95
  this.connectors = new Map();
54
- this.injectedConnector = new InjectedConnector(this.networkRpcMap, this.wallets, tonConnectConfig);
96
+ this.injectedConnector = new InjectedConnector(this.networkRpcMap, this.wallets, configuredTonConnectConfig);
55
97
  this.connectors.set('injected', this.injectedConnector);
56
- if (tonConnectConfig) {
57
- this.connectors.set('tonConnect', new TonConnectConnector(tonConnectConfig));
98
+ if (configuredTonConnectConfig) {
99
+ this.connectors.set('tonConnect', new TonConnectConnector(configuredTonConnectConfig));
58
100
  }
59
101
  // Only add WalletConnect connector if config is provided
60
- if (walletConnectConfig) {
61
- this.connectors.set('walletConnect', new WalletConnectConnector(walletConnectConfig, this.networkRpcMap));
102
+ if (configuredWalletConnectConfig) {
103
+ this.connectors.set('walletConnect', new WalletConnectConnector(configuredWalletConnectConfig, this.networkRpcMap));
62
104
  }
63
105
  this.sessionManager = new SessionManager();
64
106
  this.eventManager = new EventManager();
65
- this.connectionService = new ConnectionService(networks, this.wallets, this.sessionManager, this.connectors, usingIntegratedBrowser, this.eventManager);
66
- this.networkSwitchService = new NetworkSwitchService(networks, this.sessionManager, this.connectors, usingIntegratedBrowser, this.eventManager);
107
+ this.connectionService = new ConnectionService(networks, this.wallets, this.sessionManager, this.connectors, configuredUsingIntegratedBrowser, this.eventManager);
108
+ this.networkSwitchService = new NetworkSwitchService(networks, this.sessionManager, this.connectors, configuredUsingIntegratedBrowser, this.eventManager);
67
109
  this.signatureService = new SignatureService(this.sessionManager, this.connectors);
68
110
  this.transactionService = new TransactionService(this.sessionManager, this.connectors);
69
111
  this.walletCapabilitiesService = new WalletCapabilitiesService(networks, this.connectors, this.sessionManager, this.eventManager);
112
+ // Register as the shared instance so getInstance() works
113
+ // (only set if no instance exists, to avoid overwriting an earlier one)
114
+ if (!UniversalWalletConnector.instance) {
115
+ UniversalWalletConnector.instance = this;
116
+ }
70
117
  // Initialize detected wallets after services are created
71
118
  this.initializeDetectedWallets();
72
119
  }
@@ -87,137 +134,122 @@ export class UniversalWalletConnector {
87
134
  });
88
135
  }
89
136
  });
90
- // Check available wallets for each namespace across all connectors
137
+ // Run every namespace × connector detection concurrently.
138
+ // The namespace loop used to be sequential and `await`-ed each call,
139
+ // which meant a 100ms EIP-6963 native timeout + any bridge polling
140
+ // added up. With Promise.all the total time is the slowest single
141
+ // call, not the sum.
142
+ const detectionTasks = [];
91
143
  for (const namespace of namespaces) {
92
144
  for (const [, connector] of this.connectors) {
93
- // Check if connector supports getAvailableWallets
94
- if (typeof connector.getAvailableWallets === 'function') {
95
- try {
96
- const detectedWallets = await connector.getAvailableWallets(namespace, this.wallets);
97
- // Update wallets with detected information
98
- detectedWallets.forEach(detected => {
99
- // Find matching wallet based on namespace-specific naming
100
- let wallet;
101
- if (namespace === 'eip155') {
102
- // For EIP155, match by eip155Name
103
- wallet = this.wallets.find(w => {
104
- const provider = this.usingIntegratedBrowser
105
- ? w.integratedBrowserInjectedProvider
106
- : w.extensionInjectedProvider;
107
- return (provider?.namespaceMetaData?.eip155?.eip155Name?.toLowerCase() ===
108
- detected.name.toLowerCase());
109
- });
110
- }
111
- else if (namespace === 'solana') {
112
- // For Solana, match by walletStandardName
113
- wallet = this.wallets.find(w => {
114
- const provider = this.usingIntegratedBrowser
115
- ? w.integratedBrowserInjectedProvider
116
- : w.extensionInjectedProvider;
117
- return (provider?.namespaceMetaData?.solana?.walletStandardName?.toLowerCase() ===
118
- detected.name.toLowerCase());
119
- });
120
- }
121
- else if (namespace === 'tron') {
122
- // For Tron, match by injectedId path prefix
123
- const tronDetected = detected;
124
- wallet = this.wallets.find(w => {
125
- const provider = this.usingIntegratedBrowser
126
- ? w.integratedBrowserInjectedProvider
127
- : w.extensionInjectedProvider;
128
- const injectedId = provider?.namespaceMetaData?.tron?.injectedId;
129
- return (injectedId &&
130
- tronDetected.uuid ===
131
- `tron-${injectedId}`.toLowerCase().replace(/\./g, '-'));
132
- });
133
- }
134
- else if (namespace === 'tvm') {
135
- // For TON, match by jsBridgeKey
136
- const tonDetected = detected;
137
- wallet = this.wallets.find(w => {
138
- const provider = this.usingIntegratedBrowser
139
- ? w.integratedBrowserInjectedProvider
140
- : w.extensionInjectedProvider;
141
- return (provider?.namespaceMetaData?.tvm?.jsBridgeKey ===
142
- tonDetected.jsBridgeKey);
143
- });
144
- }
145
- else {
146
- // For other namespaces, fall back to wallet name
147
- wallet = this.wallets.find(w => w.name.toLowerCase() === detected.name.toLowerCase());
148
- }
149
- if (wallet) {
150
- // Determine which provider to update based on usingIntegratedBrowser
151
- const provider = this.usingIntegratedBrowser
152
- ? wallet.integratedBrowserInjectedProvider
153
- : wallet.extensionInjectedProvider;
154
- // Update the appropriate namespace metadata
155
- if (provider?.namespaceMetaData) {
156
- const nsMetadata = provider.namespaceMetaData[namespace];
157
- if (nsMetadata && namespace === 'eip155') {
158
- // For EIP155, we have specific fields
159
- const eip155Metadata = nsMetadata;
160
- eip155Metadata.installed = true;
161
- const eip155Detected = detected;
162
- eip155Metadata.detectedWallet = {
163
- uuid: eip155Detected.uuid,
164
- name: eip155Detected.name,
165
- icon: eip155Detected.icon,
166
- rdns: eip155Detected.rdns
167
- };
168
- }
169
- else if (namespace === 'solana') {
170
- // For Solana, we have different fields
171
- const solanaMetadata = nsMetadata;
172
- solanaMetadata.installed = true;
173
- const solanaDetected = detected;
174
- solanaMetadata.detectedWallet = {
175
- uuid: solanaDetected.uuid,
176
- name: solanaDetected.name,
177
- features: solanaDetected.features
178
- };
179
- }
180
- else if (namespace === 'tron') {
181
- const tronMetadata = nsMetadata;
182
- tronMetadata.installed = true;
183
- const tronDetected = detected;
184
- tronMetadata.detectedWallet = {
185
- uuid: tronDetected.uuid,
186
- name: tronDetected.name
187
- };
188
- }
189
- else if (namespace === 'tvm') {
190
- const tonMetadata = nsMetadata;
191
- tonMetadata.installed = true;
192
- const tonDetected = detected;
193
- tonMetadata.detectedWallet = {
194
- uuid: tonDetected.uuid,
195
- name: tonDetected.name,
196
- icon: tonDetected.icon,
197
- jsBridgeKey: tonDetected.jsBridgeKey
198
- };
199
- }
200
- }
201
- }
202
- });
203
- }
204
- catch {
205
- // Silently handle errors for individual connector/namespace combinations
145
+ if (typeof connector.getAvailableWallets !== 'function')
146
+ continue;
147
+ detectionTasks.push(Promise.resolve()
148
+ .then(() => connector.getAvailableWallets(namespace, this.wallets))
149
+ .then(detected => {
150
+ for (const d of detected) {
151
+ this.applyDetectedWallet(namespace, d);
206
152
  }
207
- }
153
+ })
154
+ .catch(() => {
155
+ // Silently handle errors for individual connector/namespace combinations
156
+ }));
208
157
  }
209
158
  }
159
+ await Promise.all(detectionTasks);
210
160
  // Notify the connection service to update its internal wallets reference
211
161
  this.connectionService.updateWallets(this.wallets);
212
162
  // Mark detection as complete
213
163
  this.detectionComplete = true;
214
- // Notify listeners about the update
215
- this.eventManager.notify();
164
+ this.eventManager.emit('walletsDetected', { wallets: this.wallets });
165
+ this.eventManager.emit('ready', undefined);
216
166
  }
217
- catch {
218
- // Silently handle error during initialization
167
+ catch (error) {
219
168
  this.detectionComplete = true;
220
- this.eventManager.notify();
169
+ this.emitError(error, 'initialize');
170
+ this.eventManager.emit('ready', undefined);
171
+ }
172
+ }
173
+ /**
174
+ * Merge a single detected wallet (from one namespace × connector run) into
175
+ * the configured wallet metadata. Factored out so detection tasks can run
176
+ * in parallel without racing on the merge logic.
177
+ */
178
+ applyDetectedWallet(namespace, detected) {
179
+ let wallet;
180
+ const pickProvider = (w) => this.usingIntegratedBrowser
181
+ ? w.integratedBrowserInjectedProvider
182
+ : w.extensionInjectedProvider;
183
+ if (namespace === 'eip155') {
184
+ wallet = this.wallets.find(w => pickProvider(w)?.namespaceMetaData?.eip155?.eip155Name?.toLowerCase() ===
185
+ detected.name.toLowerCase());
186
+ }
187
+ else if (namespace === 'solana') {
188
+ wallet = this.wallets.find(w => pickProvider(w)?.namespaceMetaData?.solana?.walletStandardName?.toLowerCase() ===
189
+ detected.name.toLowerCase());
190
+ }
191
+ else if (namespace === 'tron') {
192
+ const tronDetected = detected;
193
+ wallet = this.wallets.find(w => {
194
+ const injectedId = pickProvider(w)?.namespaceMetaData?.tron?.injectedId;
195
+ return (injectedId &&
196
+ tronDetected.uuid ===
197
+ `tron-${injectedId}`.toLowerCase().replace(/\./g, '-'));
198
+ });
199
+ }
200
+ else if (namespace === 'tvm') {
201
+ const tonDetected = detected;
202
+ wallet = this.wallets.find(w => pickProvider(w)?.namespaceMetaData?.tvm?.jsBridgeKey ===
203
+ tonDetected.jsBridgeKey);
204
+ }
205
+ else {
206
+ wallet = this.wallets.find(w => w.name.toLowerCase() === detected.name.toLowerCase());
207
+ }
208
+ if (!wallet)
209
+ return;
210
+ const provider = pickProvider(wallet);
211
+ if (!provider?.namespaceMetaData)
212
+ return;
213
+ const nsMetadata = provider.namespaceMetaData[namespace];
214
+ if (!nsMetadata)
215
+ return;
216
+ if (namespace === 'eip155') {
217
+ const m = nsMetadata;
218
+ const d = detected;
219
+ m.installed = true;
220
+ m.detectedWallet = {
221
+ uuid: d.uuid,
222
+ name: d.name,
223
+ icon: d.icon,
224
+ rdns: d.rdns
225
+ };
226
+ }
227
+ else if (namespace === 'solana') {
228
+ const m = nsMetadata;
229
+ const d = detected;
230
+ m.installed = true;
231
+ m.detectedWallet = {
232
+ uuid: d.uuid,
233
+ name: d.name,
234
+ features: d.features
235
+ };
236
+ }
237
+ else if (namespace === 'tron') {
238
+ const m = nsMetadata;
239
+ const d = detected;
240
+ m.installed = true;
241
+ m.detectedWallet = { uuid: d.uuid, name: d.name };
242
+ }
243
+ else if (namespace === 'tvm') {
244
+ const m = nsMetadata;
245
+ const d = detected;
246
+ m.installed = true;
247
+ m.detectedWallet = {
248
+ uuid: d.uuid,
249
+ name: d.name,
250
+ icon: d.icon,
251
+ jsBridgeKey: d.jsBridgeKey
252
+ };
221
253
  }
222
254
  }
223
255
  getSession() {
@@ -226,6 +258,22 @@ export class UniversalWalletConnector {
226
258
  isReady() {
227
259
  return this.detectionComplete;
228
260
  }
261
+ // ---- Event subscription ----
262
+ /** Subscribe to a typed event. Returns an unsubscribe function. */
263
+ on(event, listener) {
264
+ return this.eventManager.on(event, listener);
265
+ }
266
+ /** Subscribe once; the listener is removed after the first dispatch. */
267
+ once(event, listener) {
268
+ return this.eventManager.once(event, listener);
269
+ }
270
+ off(event, listener) {
271
+ this.eventManager.off(event, listener);
272
+ }
273
+ /**
274
+ * @deprecated Prefer `on(eventName, listener)` for targeted updates.
275
+ * Subscribes to the catch-all `change` event.
276
+ */
229
277
  subscribe(listener) {
230
278
  return this.eventManager.subscribe(listener);
231
279
  }
@@ -240,20 +288,35 @@ export class UniversalWalletConnector {
240
288
  getNetworks() {
241
289
  return this.connectionService.getNetworks();
242
290
  }
243
- async connect(connectionMode, walletId, networkId) {
244
- await this.connectionService.connect(connectionMode, walletId, networkId);
245
- this.eventManager.notify();
291
+ async connect(connectionMode, walletId, networkId, options) {
292
+ try {
293
+ await this.connectionService.connect(connectionMode, walletId, networkId, options);
294
+ }
295
+ catch (error) {
296
+ this.emitError(error, 'connect');
297
+ throw error;
298
+ }
246
299
  }
247
300
  getConnectionURI() {
248
301
  return this.connectionService.getConnectionURI();
249
302
  }
250
- async disconnect() {
251
- await this.connectionService.disconnect();
252
- this.eventManager.notify();
303
+ async disconnect(options) {
304
+ try {
305
+ await this.connectionService.disconnect(options);
306
+ }
307
+ catch (error) {
308
+ this.emitError(error, 'disconnect');
309
+ throw error;
310
+ }
253
311
  }
254
- async switchNetwork(networkId) {
255
- await this.networkSwitchService.switchNetwork(networkId);
256
- this.eventManager.notify();
312
+ async switchNetwork(networkId, options) {
313
+ try {
314
+ await this.networkSwitchService.switchNetwork(networkId, options);
315
+ }
316
+ catch (error) {
317
+ this.emitError(error, 'switchNetwork');
318
+ throw error;
319
+ }
257
320
  }
258
321
  getNetworkSwitchLoadingState() {
259
322
  return this.networkSwitchService.getLoadingState();
@@ -261,9 +324,10 @@ export class UniversalWalletConnector {
261
324
  /**
262
325
  * Sign a message with the connected wallet
263
326
  * @param message The message to sign
327
+ * @param options Optional cancellation signal
264
328
  * @returns A promise that resolves to the signature
265
329
  */
266
- async signMessage(message) {
330
+ async signMessage(message, options) {
267
331
  const session = this.sessionManager.getSession();
268
332
  if (!session.activeWallet) {
269
333
  throw new Error('No active wallet');
@@ -271,30 +335,37 @@ export class UniversalWalletConnector {
271
335
  if (!session.connectionMode) {
272
336
  throw new Error('No active connection');
273
337
  }
274
- // Get the provider from the active wallet based on connection mode
275
- let provider;
276
- if (session.connectionMode === 'injected') {
277
- provider = this.usingIntegratedBrowser
278
- ? session.activeWallet.integratedBrowserInjectedProvider
279
- : session.activeWallet.extensionInjectedProvider;
280
- }
281
- else if (session.connectionMode === 'walletConnect') {
282
- provider = session.activeWallet.walletConnectProvider;
283
- }
284
- else if (session.connectionMode === 'tonConnect') {
285
- return await this.signatureService.signMessage(message);
338
+ try {
339
+ // Get the provider from the active wallet based on connection mode
340
+ let provider;
341
+ if (session.connectionMode === 'injected') {
342
+ provider = this.usingIntegratedBrowser
343
+ ? session.activeWallet.integratedBrowserInjectedProvider
344
+ : session.activeWallet.extensionInjectedProvider;
345
+ }
346
+ else if (session.connectionMode === 'walletConnect') {
347
+ provider = session.activeWallet.walletConnectProvider;
348
+ }
349
+ else if (session.connectionMode === 'tonConnect') {
350
+ return await this.signatureService.signMessage(message, undefined, options);
351
+ }
352
+ if (!provider) {
353
+ throw new Error('No provider available for the active wallet');
354
+ }
355
+ return await this.signatureService.signMessage(message, provider, options);
286
356
  }
287
- if (!provider) {
288
- throw new Error('No provider available for the active wallet');
357
+ catch (error) {
358
+ this.emitError(error, 'signMessage');
359
+ throw error;
289
360
  }
290
- return await this.signatureService.signMessage(message, provider);
291
361
  }
292
362
  /**
293
363
  * Send a transaction with the connected wallet
294
364
  * @param request The transaction request parameters
365
+ * @param options Optional cancellation signal
295
366
  * @returns A promise that resolves to the transaction result
296
367
  */
297
- async sendTransaction(request) {
368
+ async sendTransaction(request, options) {
298
369
  const session = this.sessionManager.getSession();
299
370
  if (!session.activeWallet) {
300
371
  throw new Error('No active wallet');
@@ -302,32 +373,45 @@ export class UniversalWalletConnector {
302
373
  if (!session.connectionMode) {
303
374
  throw new Error('No active connection');
304
375
  }
305
- // Get the provider from the active wallet based on connection mode
306
- let provider;
307
- if (session.connectionMode === 'injected') {
308
- provider = this.usingIntegratedBrowser
309
- ? session.activeWallet.integratedBrowserInjectedProvider
310
- : session.activeWallet.extensionInjectedProvider;
311
- }
312
- else if (session.connectionMode === 'walletConnect') {
313
- provider = session.activeWallet.walletConnectProvider;
314
- }
315
- else if (session.connectionMode === 'tonConnect') {
316
- return await this.transactionService.sendTransaction(request);
376
+ try {
377
+ // Get the provider from the active wallet based on connection mode
378
+ let provider;
379
+ if (session.connectionMode === 'injected') {
380
+ provider = this.usingIntegratedBrowser
381
+ ? session.activeWallet.integratedBrowserInjectedProvider
382
+ : session.activeWallet.extensionInjectedProvider;
383
+ }
384
+ else if (session.connectionMode === 'walletConnect') {
385
+ provider = session.activeWallet.walletConnectProvider;
386
+ }
387
+ else if (session.connectionMode === 'tonConnect') {
388
+ return await this.transactionService.sendTransaction(request, undefined, options);
389
+ }
390
+ if (!provider) {
391
+ throw new Error('No provider available for the active wallet');
392
+ }
393
+ return await this.transactionService.sendTransaction(request, provider, options);
317
394
  }
318
- if (!provider) {
319
- throw new Error('No provider available for the active wallet');
395
+ catch (error) {
396
+ this.emitError(error, 'sendTransaction');
397
+ throw error;
320
398
  }
321
- return await this.transactionService.sendTransaction(request, provider);
322
399
  }
323
400
  /**
324
401
  * Fetch wallet capabilities for the connected wallet
325
402
  * @param address The wallet address to fetch capabilities for
326
403
  * @param activeNetwork Optional network to set as the active network for capabilities
404
+ * @param options Optional cancellation signal
327
405
  * @returns A promise that resolves when capabilities are fetched and updated
328
406
  */
329
- async getWalletCapabilities(address, activeNetwork) {
330
- return await this.walletCapabilitiesService.getWalletCapabilities(address, activeNetwork);
407
+ async getWalletCapabilities(address, activeNetwork, options) {
408
+ try {
409
+ return await this.walletCapabilitiesService.getWalletCapabilities(address, activeNetwork, options);
410
+ }
411
+ catch (error) {
412
+ this.emitError(error, 'getWalletCapabilities');
413
+ throw error;
414
+ }
331
415
  }
332
416
  /**
333
417
  * Check if a connection mode is available for a specific wallet
@@ -371,5 +455,15 @@ export class UniversalWalletConnector {
371
455
  const session = this.sessionManager.getSession();
372
456
  return session.activeWalletCapabilities;
373
457
  }
458
+ // ---- private helpers ----
459
+ emitError(error, operation) {
460
+ const walletError = error instanceof WalletConnectorError
461
+ ? { type: error.type, message: error.message }
462
+ : {
463
+ type: 'unknown',
464
+ message: error instanceof Error ? error.message : String(error)
465
+ };
466
+ this.eventManager.emit('error', { error: walletError, operation });
467
+ }
374
468
  }
375
469
  //# sourceMappingURL=universal-wallet-connector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"universal-wallet-connector.js","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universal-wallet-connector.js","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"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"}