@meshconnect/uwc-core 0.10.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +928 -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 -4
  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 +36 -9
  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 +56 -8
  35. package/dist/universal-wallet-connector.d.ts.map +1 -1
  36. package/dist/universal-wallet-connector.js +299 -194
  37. package/dist/universal-wallet-connector.js.map +1 -1
  38. package/dist/utils/abort.d.ts +14 -0
  39. package/dist/utils/abort.d.ts.map +1 -0
  40. package/dist/utils/abort.js +31 -0
  41. package/dist/utils/abort.js.map +1 -0
  42. package/package.json +2 -2
  43. package/src/events.ts +73 -0
  44. package/src/index.ts +11 -8
  45. package/src/managers/event-manager.test.ts +70 -0
  46. package/src/managers/event-manager.ts +80 -9
  47. package/src/services/connection-service.test.ts +148 -19
  48. package/src/services/connection-service.ts +63 -12
  49. package/src/services/network-switch-service.ts +22 -3
  50. package/src/services/signature-service.ts +13 -5
  51. package/src/services/transaction-service.ts +13 -5
  52. package/src/services/wallet-capabilities-service.ts +14 -2
  53. package/src/universal-wallet-connector.test.ts +196 -3
  54. package/src/universal-wallet-connector.ts +430 -222
  55. package/src/utils/abort.test.ts +68 -0
  56. package/src/utils/abort.ts +38 -0
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-service.d.ts","sourceRoot":"","sources":["../../src/services/transaction-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAIT,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;gBADV,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC;IAGpD;;;;;OAKG;IACG,eAAe,CACnB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;CAkD9B"}
1
+ {"version":3,"file":"transaction-service.d.ts","sourceRoot":"","sources":["../../src/services/transaction-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EAIT,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;GAEG;AACH,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,UAAU;gBADV,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC;IAGpD;;;;;;OAMG;IACG,eAAe,CACnB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,CAAC,EAAE,iBAAiB,EAC5B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,iBAAiB,CAAC;CAuD9B"}
@@ -12,9 +12,11 @@ export class TransactionService {
12
12
  * Send a transaction with the currently connected wallet
13
13
  * @param request The transaction request parameters
14
14
  * @param provider The wallet provider to use for sending (required for injected connector)
15
+ * @param options Optional cancellation signal
15
16
  * @returns A promise that resolves to the transaction result
16
17
  */
17
- async sendTransaction(request, provider) {
18
+ async sendTransaction(request, provider, options) {
19
+ options?.signal?.throwIfAborted();
18
20
  const session = this.sessionManager.getSession();
19
21
  if (!session.connectionMode) {
20
22
  throw new Error('No active connection');
@@ -32,25 +34,28 @@ export class TransactionService {
32
34
  throw new Error(`Connector does not support transactions`);
33
35
  }
34
36
  // Call the connector's sendTransaction method with the appropriate provider
37
+ let result;
35
38
  if (session.connectionMode === 'injected') {
36
39
  if (!provider) {
37
40
  throw new Error('Provider is required for injected connector');
38
41
  }
39
- return await connector.sendTransaction(request, provider);
42
+ result = await connector.sendTransaction(request, provider);
40
43
  }
41
44
  else if (session.connectionMode === 'tonConnect') {
42
- return await connector.sendTransaction(request);
45
+ result = await connector.sendTransaction(request);
43
46
  }
44
47
  else if (session.connectionMode === 'walletConnect') {
45
48
  if (!provider) {
46
49
  throw new Error('Provider is required for WalletConnect connector');
47
50
  }
48
- return await connector.sendTransaction(request, provider);
51
+ result = await connector.sendTransaction(request, provider);
49
52
  }
50
53
  else {
51
54
  // For other connectors that might not need the provider
52
- return await connector.sendTransaction(request);
55
+ result = await connector.sendTransaction(request);
53
56
  }
57
+ options?.signal?.throwIfAborted();
58
+ return result;
54
59
  }
55
60
  }
56
61
  //# sourceMappingURL=transaction-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-service.js","sourceRoot":"","sources":["../../src/services/transaction-service.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAEnB;IACA;IAFV,YACU,cAA8B,EAC9B,UAA0C;QAD1C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAgC;IACjD,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CACnB,OAA2B,EAC3B,QAA4B;QAE5B,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2CAA2C,OAAO,CAAC,cAAc,EAAE,CACpE,CAAA;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;QAED,4EAA4E;QAC5E,IAAI,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAChE,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,eAAe,CACpC,OAAO,EACP,QAEqC,CACtC,CAAA;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,KAAK,YAAY,EAAE,CAAC;YACnD,OAAO,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACjD,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,KAAK,eAAe,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACrE,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,eAAe,CACpC,OAAO,EACP,QAAiC,CAClC,CAAA;QACH,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,OAAO,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"transaction-service.js","sourceRoot":"","sources":["../../src/services/transaction-service.ts"],"names":[],"mappings":"AAaA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAEnB;IACA;IAFV,YACU,cAA8B,EAC9B,UAA0C;QAD1C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,eAAU,GAAV,UAAU,CAAgC;IACjD,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,OAA2B,EAC3B,QAA4B,EAC5B,OAAwB;QAExB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhD,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;QAC7C,CAAC;QAED,gCAAgC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CACb,2CAA2C,OAAO,CAAC,cAAc,EAAE,CACpE,CAAA;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;QAED,4EAA4E;QAC5E,IAAI,MAAyB,CAAA;QAC7B,IAAI,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;YAChE,CAAC;YACD,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CACtC,OAAO,EACP,QAEqC,CACtC,CAAA;QACH,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,KAAK,YAAY,EAAE,CAAC;YACnD,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;aAAM,IAAI,OAAO,CAAC,cAAc,KAAK,eAAe,EAAE,CAAC;YACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;YACrE,CAAC;YACD,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CACtC,OAAO,EACP,QAAiC,CAClC,CAAA;QACH,CAAC;aAAM,CAAC;YACN,wDAAwD;YACxD,MAAM,GAAG,MAAM,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACnD,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;QACjC,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -1,12 +1,13 @@
1
1
  import type { Network, ConnectionMode, Connector } from '@meshconnect/uwc-types';
2
2
  import type { SessionManager } from '../managers/session-manager';
3
3
  import type { EventManager } from '../managers/event-manager';
4
+ import type { ServiceOptions } from './connection-service';
4
5
  export declare class WalletCapabilitiesService {
5
6
  private networks;
6
7
  private connectors;
7
8
  private sessionManager;
8
9
  private eventManager;
9
10
  constructor(networks: Network[], connectors: Map<ConnectionMode, Connector>, sessionManager: SessionManager, eventManager: EventManager);
10
- getWalletCapabilities(address: string, activeNetwork?: Network): Promise<void>;
11
+ getWalletCapabilities(address: string, activeNetwork?: Network, options?: ServiceOptions): Promise<void>;
11
12
  }
12
13
  //# sourceMappingURL=wallet-capabilities-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-capabilities-service.d.ts","sourceRoot":"","sources":["../../src/services/wallet-capabilities-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;gBAHZ,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY;IAG9B,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;CAwDjB"}
1
+ {"version":3,"file":"wallet-capabilities-service.d.ts","sourceRoot":"","sources":["../../src/services/wallet-capabilities-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,YAAY;gBAHZ,QAAQ,EAAE,OAAO,EAAE,EACnB,UAAU,EAAE,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,EAC1C,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,YAAY;IAG9B,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC;CAkEjB"}
@@ -9,7 +9,8 @@ export class WalletCapabilitiesService {
9
9
  this.sessionManager = sessionManager;
10
10
  this.eventManager = eventManager;
11
11
  }
12
- async getWalletCapabilities(address, activeNetwork) {
12
+ async getWalletCapabilities(address, activeNetwork, options) {
13
+ options?.signal?.throwIfAborted();
13
14
  let activeWalletCapabilities = {};
14
15
  let activeNetworkWalletCapabilities = {};
15
16
  const session = this.sessionManager.getSession();
@@ -30,6 +31,7 @@ export class WalletCapabilitiesService {
30
31
  catch {
31
32
  capabilities = {};
32
33
  }
34
+ options?.signal?.throwIfAborted();
33
35
  // keep only supported networks
34
36
  activeWalletCapabilities = Object.fromEntries(Object.entries(capabilities).filter(([networkId, _]) => this.networks.some(n => n.id === networkId)));
35
37
  if (activeNetwork) {
@@ -46,7 +48,12 @@ export class WalletCapabilitiesService {
46
48
  activeNetworkWalletCapabilities: null
47
49
  });
48
50
  }
49
- this.eventManager.notify();
51
+ this.eventManager.emit('capabilitiesUpdated', {
52
+ capabilities: activeWalletCapabilities
53
+ });
54
+ this.eventManager.emit('sessionChanged', {
55
+ session: this.sessionManager.getSession()
56
+ });
50
57
  }
51
58
  }
52
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-capabilities-service.js","sourceRoot":"","sources":["../../src/services/wallet-capabilities-service.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,yBAAyB;IAE1B;IACA;IACA;IACA;IAJV,YACU,QAAmB,EACnB,UAA0C,EAC1C,cAA8B,EAC9B,YAA0B;QAH1B,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAgC;QAC1C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CACzB,OAAe,EACf,aAAuB;QAEvB,IAAI,wBAAwB,GAAoC,EAAE,CAAA;QAClE,IAAI,+BAA+B,GAAoB,EAAE,CAAA;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEnE,IACE,eAAe;YACf,OAAO,eAAe,CAAC,qBAAqB,KAAK,UAAU,EAC3D,CAAC;YACD,IAAI,YAA6C,CAAA;YACjD,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,eAAe,CAAC,qBAAqB,CACxD,OAAO,EACP,IAAI,CAAC,QAAQ,CACd,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,EAAE,CAAA;YACnB,CAAC;YAED,+BAA+B;YAC/B,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAC5C,CACF,CAAA;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAC9D,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,aAAa,CAAC,EAAE,CAC/C,CAAA;gBACD,+BAA+B,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAChC,wBAAwB,EAAE,wBAAwB;oBAClD,+BAA+B,EAAE,+BAA+B;iBACjE,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAChC,wBAAwB,EAAE,wBAAwB;oBAClD,+BAA+B,EAAE,IAAI;iBACtC,CAAC,CAAA;YACJ,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA;QAC5B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"wallet-capabilities-service.js","sourceRoot":"","sources":["../../src/services/wallet-capabilities-service.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,yBAAyB;IAE1B;IACA;IACA;IACA;IAJV,YACU,QAAmB,EACnB,UAA0C,EAC1C,cAA8B,EAC9B,YAA0B;QAH1B,aAAQ,GAAR,QAAQ,CAAW;QACnB,eAAU,GAAV,UAAU,CAAgC;QAC1C,mBAAc,GAAd,cAAc,CAAgB;QAC9B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CACzB,OAAe,EACf,aAAuB,EACvB,OAAwB;QAExB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;QAEjC,IAAI,wBAAwB,GAAoC,EAAE,CAAA;QAClE,IAAI,+BAA+B,GAAoB,EAAE,CAAA;QAEzD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAEnE,IACE,eAAe;YACf,OAAO,eAAe,CAAC,qBAAqB,KAAK,UAAU,EAC3D,CAAC;YACD,IAAI,YAA6C,CAAA;YACjD,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,eAAe,CAAC,qBAAqB,CACxD,OAAO,EACP,IAAI,CAAC,QAAQ,CACd,CAAA;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,EAAE,CAAA;YACnB,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;YAEjC,+BAA+B;YAC/B,wBAAwB,GAAG,MAAM,CAAC,WAAW,CAC3C,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAC5C,CACF,CAAA;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,IAAI,CAC9D,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,aAAa,CAAC,EAAE,CAC/C,CAAA;gBACD,+BAA+B,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;gBACjE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAChC,wBAAwB,EAAE,wBAAwB;oBAClD,+BAA+B,EAAE,+BAA+B;iBACjE,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAChC,wBAAwB,EAAE,wBAAwB;oBAClD,+BAA+B,EAAE,IAAI;iBACtC,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC5C,YAAY,EAAE,wBAAwB;aACvC,CAAC,CAAA;YACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACvC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;aAC1C,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,25 @@
1
- import type { UniversalWalletConnectorState, Network, WalletMetadata, NetworkId, ConnectionMode, WalletConnectConfig, TonConnectConfig, TransactionRequest, TransactionResult, EVMCapabilities, SignatureType, EIP712TypedData, TronConnectorConfig } from '@meshconnect/uwc-types';
1
+ import type { UniversalWalletConnectorState, Network, WalletMetadata, NetworkId, ConnectionMode, WalletConnectConfig, TonConnectConfig, TransactionRequest, TransactionResult, EVMCapabilities, SignatureType, EIP712TypedData } from '@meshconnect/uwc-types';
2
+ import type { TronConnectorConfig } from '@meshconnect/uwc-tron-connector';
3
+ import type { UWCEventName, UWCEventListener } from './events';
4
+ /**
5
+ * Configuration object form of the UniversalWalletConnector constructor.
6
+ * Prefer this over the positional constructor in new code.
7
+ */
8
+ export interface UWCConfig {
9
+ networks: Network[];
10
+ wallets: WalletMetadata[];
11
+ usingIntegratedBrowser?: boolean;
12
+ walletConnectConfig?: WalletConnectConfig;
13
+ tonConnectConfig?: TonConnectConfig;
14
+ tronConnectorConfig?: TronConnectorConfig;
15
+ }
16
+ /** Common options for user-initiated async operations. */
17
+ export interface OperationOptions {
18
+ /** Abort the operation if the signal fires. State mutations are skipped after abort. */
19
+ signal?: AbortSignal;
20
+ }
2
21
  export declare class UniversalWalletConnector {
22
+ private static instance;
3
23
  private static instanceCount;
4
24
  private static hasWarnedAboutMultipleInstances;
5
25
  private sessionManager;
@@ -15,21 +35,45 @@ export declare class UniversalWalletConnector {
15
35
  private usingIntegratedBrowser;
16
36
  private detectionComplete;
17
37
  private networkRpcMap;
18
- constructor(networks: Network[], wallets?: WalletMetadata[], usingIntegratedBrowser?: boolean, walletConnectConfig?: WalletConnectConfig, tonConnectConfig?: TonConnectConfig, tronConnectorConfig?: TronConnectorConfig);
38
+ /**
39
+ * Recommended entry point: returns the shared instance, creating it on the
40
+ * first call. Subsequent calls ignore the `config` argument — use
41
+ * `resetInstance()` first if you need to reinitialise (e.g. in tests).
42
+ */
43
+ static getInstance(config?: UWCConfig): UniversalWalletConnector;
44
+ /** Clear the shared instance reference. Primarily for tests and full-logout flows. */
45
+ static resetInstance(): void;
46
+ constructor(config: UWCConfig);
47
+ constructor(networks: Network[], wallets: WalletMetadata[], usingIntegratedBrowser?: boolean, walletConnectConfig?: WalletConnectConfig, tonConnectConfig?: TonConnectConfig, tronConnectorConfig?: TronConnectorConfig);
19
48
  /**
20
49
  * Discovers available wallets and updates the wallet metadata
21
50
  */
22
51
  private initializeDetectedWallets;
52
+ /**
53
+ * Merge a single detected wallet (from one namespace × connector run) into
54
+ * the configured wallet metadata. Factored out so detection tasks can run
55
+ * in parallel without racing on the merge logic.
56
+ */
57
+ private applyDetectedWallet;
23
58
  getSession(): import("@meshconnect/uwc-types").Session;
24
59
  isReady(): boolean;
60
+ /** Subscribe to a typed event. Returns an unsubscribe function. */
61
+ on<K extends UWCEventName>(event: K, listener: UWCEventListener<K>): () => void;
62
+ /** Subscribe once; the listener is removed after the first dispatch. */
63
+ once<K extends UWCEventName>(event: K, listener: UWCEventListener<K>): () => void;
64
+ off<K extends UWCEventName>(event: K, listener: UWCEventListener<K>): void;
65
+ /**
66
+ * @deprecated Prefer `on(eventName, listener)` for targeted updates.
67
+ * Subscribes to the catch-all `change` event.
68
+ */
25
69
  subscribe(listener: () => void): () => void;
26
70
  getState(): UniversalWalletConnectorState;
27
71
  getWallets(): WalletMetadata[];
28
72
  getNetworks(): Network[];
29
- connect(connectionMode: ConnectionMode, walletId: string, networkId?: NetworkId): Promise<void>;
73
+ connect(connectionMode: ConnectionMode, walletId: string, networkId?: NetworkId, options?: OperationOptions): Promise<void>;
30
74
  getConnectionURI(): string | undefined;
31
- disconnect(): Promise<void>;
32
- switchNetwork(networkId: NetworkId): Promise<void>;
75
+ disconnect(options?: OperationOptions): Promise<void>;
76
+ switchNetwork(networkId: NetworkId, options?: OperationOptions): Promise<void>;
33
77
  getNetworkSwitchLoadingState(): {
34
78
  isLoading: boolean;
35
79
  isWaitingForUserApproval: boolean;
@@ -37,9 +81,10 @@ export declare class UniversalWalletConnector {
37
81
  /**
38
82
  * Sign a message with the connected wallet
39
83
  * @param message The message to sign
84
+ * @param options Optional cancellation signal
40
85
  * @returns A promise that resolves to the signature
41
86
  */
42
- signMessage(message: string): Promise<SignatureType>;
87
+ signMessage(message: string, options?: OperationOptions): Promise<SignatureType>;
43
88
  /**
44
89
  * Sign EIP-712 typed structured data (eth_signTypedData_v4).
45
90
  * EVM-only — used by ERC-3009 (Transfer With Authorization) and EIP-2612
@@ -52,9 +97,10 @@ export declare class UniversalWalletConnector {
52
97
  /**
53
98
  * Send a transaction with the connected wallet
54
99
  * @param request The transaction request parameters
100
+ * @param options Optional cancellation signal
55
101
  * @returns A promise that resolves to the transaction result
56
102
  */
57
- sendTransaction(request: TransactionRequest): Promise<TransactionResult>;
103
+ sendTransaction(request: TransactionRequest, options?: OperationOptions): Promise<TransactionResult>;
58
104
  /**
59
105
  * Sign a Solana tx without broadcasting (raw bytes in/out, no @solana/web3.js
60
106
  * here). Routes by connection mode to the connector's signSolanaTransactionBytes;
@@ -65,9 +111,10 @@ export declare class UniversalWalletConnector {
65
111
  * Fetch wallet capabilities for the connected wallet
66
112
  * @param address The wallet address to fetch capabilities for
67
113
  * @param activeNetwork Optional network to set as the active network for capabilities
114
+ * @param options Optional cancellation signal
68
115
  * @returns A promise that resolves when capabilities are fetched and updated
69
116
  */
70
- getWalletCapabilities(address: string, activeNetwork?: Network): Promise<void>;
117
+ getWalletCapabilities(address: string, activeNetwork?: Network, options?: OperationOptions): Promise<void>;
71
118
  /**
72
119
  * Check if a connection mode is available for a specific wallet
73
120
  * @param connectionMode The connection mode to check
@@ -76,5 +123,6 @@ export declare class UniversalWalletConnector {
76
123
  */
77
124
  isConnectionModeAvailable(connectionMode: ConnectionMode, walletId: string): boolean;
78
125
  getActiveWalletCapabilities(): Record<string, EVMCapabilities> | null;
126
+ private emitError;
79
127
  }
80
128
  //# sourceMappingURL=universal-wallet-connector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"universal-wallet-connector.d.ts","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,OAAO,EACP,cAAc,EACd,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAOhB,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,aAAa,EACb,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAA;AAa/B,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAI;IAChC,OAAO,CAAC,MAAM,CAAC,+BAA+B,CAAQ;IAEtD,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,oBAAoB,CAAsB;IAClD,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,yBAAyB,CAA2B;IAC5D,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,iBAAiB,CAAQ;IACjC,OAAO,CAAC,aAAa,CAAe;gBAGlC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,cAAc,EAAO,EAC9B,sBAAsB,UAAQ,EAC9B,mBAAmB,CAAC,EAAE,mBAAmB,EACzC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,mBAAmB,CAAC,EAAE,mBAAmB;IAoG3C;;OAEG;YACW,yBAAyB;IAkMvC,UAAU;IAIV,OAAO;IAIP,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAI3C,QAAQ,IAAI,6BAA6B;IAMzC,UAAU,IAAI,cAAc,EAAE;IAI9B,WAAW,IAAI,OAAO,EAAE;IAIlB,OAAO,CACX,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,IAAI,CAAC;IAKhB,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAIhC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD,4BAA4B;;;;IAI5B;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA8B1D;;;;;;;OAOG;IACG,aAAa,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IA+BhE;;;;OAIG;IACG,eAAe,CACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;IA8B7B;;;;OAIG;IACG,qBAAqB,CAAC,YAAY,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB1E;;;;;OAKG;IACG,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC;IAOhB;;;;;OAKG;IACH,yBAAyB,CACvB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,GACf,OAAO;IA8CV,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI;CAItE"}
1
+ {"version":3,"file":"universal-wallet-connector.d.ts","sourceRoot":"","sources":["../src/universal-wallet-connector.ts"],"names":[],"mappings":"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"}