@turnkey/core 1.0.0-beta.0 → 1.0.0-beta.4

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 (77) hide show
  1. package/dist/__clients__/core.d.ts +75 -2
  2. package/dist/__clients__/core.d.ts.map +1 -1
  3. package/dist/__clients__/core.js +637 -503
  4. package/dist/__clients__/core.js.map +1 -1
  5. package/dist/__clients__/core.mjs +640 -506
  6. package/dist/__clients__/core.mjs.map +1 -1
  7. package/dist/__generated__/sdk-client-base.d.ts +1 -1
  8. package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
  9. package/dist/__generated__/sdk-client-base.js +156 -250
  10. package/dist/__generated__/sdk-client-base.js.map +1 -1
  11. package/dist/__generated__/sdk-client-base.mjs +156 -250
  12. package/dist/__generated__/sdk-client-base.mjs.map +1 -1
  13. package/dist/__generated__/version.d.ts +1 -1
  14. package/dist/__generated__/version.js +1 -1
  15. package/dist/__generated__/version.mjs +1 -1
  16. package/dist/__types__/base.d.ts +1 -1
  17. package/dist/__wallet__/base.d.ts +11 -0
  18. package/dist/__wallet__/base.d.ts.map +1 -1
  19. package/dist/__wallet__/base.js +12 -1
  20. package/dist/__wallet__/base.js.map +1 -1
  21. package/dist/__wallet__/base.mjs +12 -1
  22. package/dist/__wallet__/base.mjs.map +1 -1
  23. package/dist/__wallet__/connector.d.ts +31 -4
  24. package/dist/__wallet__/connector.d.ts.map +1 -1
  25. package/dist/__wallet__/connector.js +35 -5
  26. package/dist/__wallet__/connector.js.map +1 -1
  27. package/dist/__wallet__/connector.mjs +35 -5
  28. package/dist/__wallet__/connector.mjs.map +1 -1
  29. package/dist/__wallet__/mobile/manager.d.ts +21 -5
  30. package/dist/__wallet__/mobile/manager.d.ts.map +1 -1
  31. package/dist/__wallet__/mobile/manager.js +28 -11
  32. package/dist/__wallet__/mobile/manager.js.map +1 -1
  33. package/dist/__wallet__/mobile/manager.mjs +28 -11
  34. package/dist/__wallet__/mobile/manager.mjs.map +1 -1
  35. package/dist/__wallet__/stamper.d.ts +73 -2
  36. package/dist/__wallet__/stamper.d.ts.map +1 -1
  37. package/dist/__wallet__/stamper.js +79 -13
  38. package/dist/__wallet__/stamper.js.map +1 -1
  39. package/dist/__wallet__/stamper.mjs +79 -13
  40. package/dist/__wallet__/stamper.mjs.map +1 -1
  41. package/dist/__wallet__/wallet-connect/base.d.ts +99 -19
  42. package/dist/__wallet__/wallet-connect/base.d.ts.map +1 -1
  43. package/dist/__wallet__/wallet-connect/base.js +172 -75
  44. package/dist/__wallet__/wallet-connect/base.js.map +1 -1
  45. package/dist/__wallet__/wallet-connect/base.mjs +172 -75
  46. package/dist/__wallet__/wallet-connect/base.mjs.map +1 -1
  47. package/dist/__wallet__/wallet-connect/client.d.ts +22 -14
  48. package/dist/__wallet__/wallet-connect/client.d.ts.map +1 -1
  49. package/dist/__wallet__/wallet-connect/client.js +22 -14
  50. package/dist/__wallet__/wallet-connect/client.js.map +1 -1
  51. package/dist/__wallet__/wallet-connect/client.mjs +22 -14
  52. package/dist/__wallet__/wallet-connect/client.mjs.map +1 -1
  53. package/dist/__wallet__/web/manager.d.ts +20 -12
  54. package/dist/__wallet__/web/manager.d.ts.map +1 -1
  55. package/dist/__wallet__/web/manager.js +29 -21
  56. package/dist/__wallet__/web/manager.js.map +1 -1
  57. package/dist/__wallet__/web/manager.mjs +29 -21
  58. package/dist/__wallet__/web/manager.mjs.map +1 -1
  59. package/dist/__wallet__/web/native/ethereum.d.ts +45 -11
  60. package/dist/__wallet__/web/native/ethereum.d.ts.map +1 -1
  61. package/dist/__wallet__/web/native/ethereum.js +58 -17
  62. package/dist/__wallet__/web/native/ethereum.js.map +1 -1
  63. package/dist/__wallet__/web/native/ethereum.mjs +58 -17
  64. package/dist/__wallet__/web/native/ethereum.mjs.map +1 -1
  65. package/dist/__wallet__/web/native/solana.d.ts +56 -3
  66. package/dist/__wallet__/web/native/solana.d.ts.map +1 -1
  67. package/dist/__wallet__/web/native/solana.js +95 -36
  68. package/dist/__wallet__/web/native/solana.js.map +1 -1
  69. package/dist/__wallet__/web/native/solana.mjs +95 -36
  70. package/dist/__wallet__/web/native/solana.mjs.map +1 -1
  71. package/dist/utils.d.ts +24 -1
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +54 -0
  74. package/dist/utils.js.map +1 -1
  75. package/dist/utils.mjs +54 -1
  76. package/dist/utils.mjs.map +1 -1
  77. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"base.mjs","sources":["../../src/__wallet__/base.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKO,eAAe,mBAAmB,CACvC,GAAyB,EAAA;IAEzB,IAAI,aAAa,EAAE,EAAE;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC;AAC5C,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,OAAO;;SACT,IAAI,KAAK,EAAE,EAAE;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC;AACzC,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,OAAO;;SACT;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC;;AAElE;;;;"}
1
+ {"version":3,"file":"base.mjs","sources":["../../src/__wallet__/base.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;;;;;;;;;;AAUG;AACI,eAAe,mBAAmB,CACvC,GAAyB,EAAA;IAEzB,IAAI,aAAa,EAAE,EAAE;AACnB,QAAA,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,GAAG,CAAC;AAC5C,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,OAAO;;SACT,IAAI,KAAK,EAAE,EAAE;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,GAAG,CAAC;AACzC,QAAA,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACvB,QAAA,OAAO,OAAO;;SACT;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC;;AAEjE;;;;"}
@@ -4,6 +4,15 @@ export interface CrossPlatformWalletConnectorInterface {
4
4
  }
5
5
  export declare class CrossPlatformWalletConnector implements CrossPlatformWalletConnectorInterface {
6
6
  private readonly wallets;
7
+ /**
8
+ * Constructs a CrossPlatformWalletConnector.
9
+ *
10
+ * - Validates that at least one wallet interface is provided.
11
+ * - Stores the provided mapping of wallet interfaces.
12
+ *
13
+ * @param wallets - A partial mapping of wallet interfaces by type.
14
+ * @throws {Error} If no wallet interfaces are provided.
15
+ */
7
16
  constructor(wallets: Partial<Record<WalletInterfaceType, WalletInterface>>);
8
17
  /**
9
18
  * Connects the wallet account for the given provider.
@@ -19,15 +28,33 @@ export declare class CrossPlatformWalletConnector implements CrossPlatformWallet
19
28
  * @returns A promise that resolves once the wallet account is disconnected.
20
29
  */
21
30
  disconnectWalletAccount(provider: WalletProvider): Promise<void>;
31
+ /**
32
+ * Switches the chain for an EVM-compatible wallet provider (native or WalletConnect).
33
+ *
34
+ * - Only supported for wallet providers on the Ethereum namespace.
35
+ * - Native (extension) wallets:
36
+ * - If `chainOrId` is a hex string and the wallet doesn't support it, the switch will fail.
37
+ * - If `chainOrId` is a `SwitchableChain` object, the wallet will attempt to switch; if the chain
38
+ * is unsupported, it will first add the chain (via `wallet_addEthereumChain`) and then retry switching.
39
+ * - WalletConnect wallets:
40
+ * - Chain support is negotiated up front via namespaces. If the target chain isn't in the session's
41
+ * `ethereumNamespaces`, the switch will fail. To support a new chain, you must specify it in the walletConfig.
42
+ *
43
+ * @param provider - The EVM-compatible wallet provider to switch chains for.
44
+ * @param chainOrId - The target chain ID (hex string) or full chain config (`SwitchableChain`).
45
+ * @returns A promise that resolves once the chain switch is complete.
46
+ * @throws {Error} If the provider is not Ethereum-based or doesn't support switching.
47
+ */
22
48
  switchChain(provider: WalletProvider, chainOrId: string | SwitchableChain): Promise<void>;
23
49
  /**
24
- * Signs a message using the appropriate wallet based on the provider.
50
+ * Signs a payload using the appropriate wallet based on the provider.
25
51
  *
26
- * @param message - The message to be signed.
52
+ * @param payload - The payload to be signed.
27
53
  * @param walletProvider - The wallet provider used for signing.
28
54
  * @param intent - The signing intent (e.g., message, transaction).
29
- * @returns A promise that resolves to the hex-encoded signature string.
55
+ * @returns A promise that resolves to a hex string (signature or tx hash).
56
+ * @throws {Error} If the wallet is not initialized.
30
57
  */
31
- sign(message: string, walletProvider: WalletProvider, intent: SignIntent): Promise<string>;
58
+ sign(payload: string, walletProvider: WalletProvider, intent: SignIntent): Promise<string>;
32
59
  }
33
60
  //# sourceMappingURL=connector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/__wallet__/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EAEhB,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,qCAAqC;IACpD,IAAI,CACF,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,qBAAa,4BACX,YAAW,qCAAqC;IAG9C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO,CAC/B,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAC7C;IAGH;;;;;OAKG;IACG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;;;;OAKG;IACG,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhE,WAAW,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAAG,eAAe,GAClC,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;;OAOG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC;CAWnB"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../src/__wallet__/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EAEhB,MAAM,QAAQ,CAAC;AAEhB,MAAM,WAAW,qCAAqC;IACpD,IAAI,CACF,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,qBAAa,4BACX,YAAW,qCAAqC;IAY9C,OAAO,CAAC,QAAQ,CAAC,OAAO;IAV1B;;;;;;;;OAQG;gBAEgB,OAAO,EAAE,OAAO,CAC/B,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAC7C;IASH;;;;;OAKG;IACG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE;;;;;OAKG;IACG,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtE;;;;;;;;;;;;;;;;OAgBG;IACG,WAAW,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAAG,eAAe,GAClC,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;;;;OAQG;IACG,IAAI,CACR,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC;CAWnB"}
@@ -3,8 +3,20 @@
3
3
  var base = require('../__types__/base.js');
4
4
 
5
5
  class CrossPlatformWalletConnector {
6
+ /**
7
+ * Constructs a CrossPlatformWalletConnector.
8
+ *
9
+ * - Validates that at least one wallet interface is provided.
10
+ * - Stores the provided mapping of wallet interfaces.
11
+ *
12
+ * @param wallets - A partial mapping of wallet interfaces by type.
13
+ * @throws {Error} If no wallet interfaces are provided.
14
+ */
6
15
  constructor(wallets) {
7
16
  this.wallets = wallets;
17
+ if (!Object.keys(wallets).length) {
18
+ throw new Error("Cannot create WalletConnector: no wallet interfaces provided");
19
+ }
8
20
  }
9
21
  /**
10
22
  * Connects the wallet account for the given provider.
@@ -32,6 +44,23 @@ class CrossPlatformWalletConnector {
32
44
  }
33
45
  await wallet.disconnectWalletAccount(provider);
34
46
  }
47
+ /**
48
+ * Switches the chain for an EVM-compatible wallet provider (native or WalletConnect).
49
+ *
50
+ * - Only supported for wallet providers on the Ethereum namespace.
51
+ * - Native (extension) wallets:
52
+ * - If `chainOrId` is a hex string and the wallet doesn't support it, the switch will fail.
53
+ * - If `chainOrId` is a `SwitchableChain` object, the wallet will attempt to switch; if the chain
54
+ * is unsupported, it will first add the chain (via `wallet_addEthereumChain`) and then retry switching.
55
+ * - WalletConnect wallets:
56
+ * - Chain support is negotiated up front via namespaces. If the target chain isn't in the session's
57
+ * `ethereumNamespaces`, the switch will fail. To support a new chain, you must specify it in the walletConfig.
58
+ *
59
+ * @param provider - The EVM-compatible wallet provider to switch chains for.
60
+ * @param chainOrId - The target chain ID (hex string) or full chain config (`SwitchableChain`).
61
+ * @returns A promise that resolves once the chain switch is complete.
62
+ * @throws {Error} If the provider is not Ethereum-based or doesn't support switching.
63
+ */
35
64
  async switchChain(provider, chainOrId) {
36
65
  if (provider.chainInfo.namespace !== base.Chain.Ethereum) {
37
66
  throw new Error("Only Ethereum wallets support chain switching");
@@ -43,19 +72,20 @@ class CrossPlatformWalletConnector {
43
72
  return wallet.switchChain(provider, chainOrId);
44
73
  }
45
74
  /**
46
- * Signs a message using the appropriate wallet based on the provider.
75
+ * Signs a payload using the appropriate wallet based on the provider.
47
76
  *
48
- * @param message - The message to be signed.
77
+ * @param payload - The payload to be signed.
49
78
  * @param walletProvider - The wallet provider used for signing.
50
79
  * @param intent - The signing intent (e.g., message, transaction).
51
- * @returns A promise that resolves to the hex-encoded signature string.
80
+ * @returns A promise that resolves to a hex string (signature or tx hash).
81
+ * @throws {Error} If the wallet is not initialized.
52
82
  */
53
- async sign(message, walletProvider, intent) {
83
+ async sign(payload, walletProvider, intent) {
54
84
  const wallet = this.wallets[walletProvider.interfaceType];
55
85
  if (!wallet) {
56
86
  throw new Error(`Wallet for ${walletProvider.interfaceType} not initialized`);
57
87
  }
58
- return wallet.sign(message, walletProvider, intent);
88
+ return wallet.sign(payload, walletProvider, intent);
59
89
  }
60
90
  }
61
91
 
@@ -1 +1 @@
1
- {"version":3,"file":"connector.js","sources":["../../src/__wallet__/connector.ts"],"sourcesContent":[null],"names":["Chain"],"mappings":";;;;MAiBa,4BAA4B,CAAA;AAGvC,IAAA,WAAA,CACmB,OAEhB,EAAA;QAFgB,IAAO,CAAA,OAAA,GAAP,OAAO;;AAK1B;;;;;AAKG;IACH,MAAM,oBAAoB,CAAC,QAAwB,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC;;AAG7C;;;;;AAKG;IACH,MAAM,uBAAuB,CAAC,QAAwB,EAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;AAGhD,IAAA,MAAM,WAAW,CACf,QAAwB,EACxB,SAAmC,EAAA;QAEnC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,KAAKA,UAAK,CAAC,QAAQ,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;;QAGlE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,QAAQ,CAAC,aAAa,CAAmC,iCAAA,CAAA,CACpE;;QAGH,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAGhD;;;;;;;AAOG;AACH,IAAA,MAAM,IAAI,CACR,OAAe,EACf,cAA8B,EAC9B,MAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC;QAEzD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,CAAA,WAAA,EAAc,cAAc,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAC7D;;QAGH,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;;AAEtD;;;;"}
1
+ {"version":3,"file":"connector.js","sources":["../../src/__wallet__/connector.ts"],"sourcesContent":[null],"names":["Chain"],"mappings":";;;;MAiBa,4BAA4B,CAAA;AAGvC;;;;;;;;AAQG;AACH,IAAA,WAAA,CACmB,OAEhB,EAAA;QAFgB,IAAO,CAAA,OAAA,GAAP,OAAO;QAIxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D;;;AAIL;;;;;AAKG;IACH,MAAM,oBAAoB,CAAC,QAAwB,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC;;AAG7C;;;;;AAKG;IACH,MAAM,uBAAuB,CAAC,QAAwB,EAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;AAGhD;;;;;;;;;;;;;;;;AAgBG;AACH,IAAA,MAAM,WAAW,CACf,QAAwB,EACxB,SAAmC,EAAA;QAEnC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,KAAKA,UAAK,CAAC,QAAQ,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;;QAGlE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,QAAQ,CAAC,aAAa,CAAmC,iCAAA,CAAA,CACpE;;QAGH,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAGhD;;;;;;;;AAQG;AACH,IAAA,MAAM,IAAI,CACR,OAAe,EACf,cAA8B,EAC9B,MAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC;QAEzD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,CAAA,WAAA,EAAc,cAAc,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAC7D;;QAGH,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;;AAEtD;;;;"}
@@ -1,8 +1,20 @@
1
1
  import { Chain } from '../__types__/base.mjs';
2
2
 
3
3
  class CrossPlatformWalletConnector {
4
+ /**
5
+ * Constructs a CrossPlatformWalletConnector.
6
+ *
7
+ * - Validates that at least one wallet interface is provided.
8
+ * - Stores the provided mapping of wallet interfaces.
9
+ *
10
+ * @param wallets - A partial mapping of wallet interfaces by type.
11
+ * @throws {Error} If no wallet interfaces are provided.
12
+ */
4
13
  constructor(wallets) {
5
14
  this.wallets = wallets;
15
+ if (!Object.keys(wallets).length) {
16
+ throw new Error("Cannot create WalletConnector: no wallet interfaces provided");
17
+ }
6
18
  }
7
19
  /**
8
20
  * Connects the wallet account for the given provider.
@@ -30,6 +42,23 @@ class CrossPlatformWalletConnector {
30
42
  }
31
43
  await wallet.disconnectWalletAccount(provider);
32
44
  }
45
+ /**
46
+ * Switches the chain for an EVM-compatible wallet provider (native or WalletConnect).
47
+ *
48
+ * - Only supported for wallet providers on the Ethereum namespace.
49
+ * - Native (extension) wallets:
50
+ * - If `chainOrId` is a hex string and the wallet doesn't support it, the switch will fail.
51
+ * - If `chainOrId` is a `SwitchableChain` object, the wallet will attempt to switch; if the chain
52
+ * is unsupported, it will first add the chain (via `wallet_addEthereumChain`) and then retry switching.
53
+ * - WalletConnect wallets:
54
+ * - Chain support is negotiated up front via namespaces. If the target chain isn't in the session's
55
+ * `ethereumNamespaces`, the switch will fail. To support a new chain, you must specify it in the walletConfig.
56
+ *
57
+ * @param provider - The EVM-compatible wallet provider to switch chains for.
58
+ * @param chainOrId - The target chain ID (hex string) or full chain config (`SwitchableChain`).
59
+ * @returns A promise that resolves once the chain switch is complete.
60
+ * @throws {Error} If the provider is not Ethereum-based or doesn't support switching.
61
+ */
33
62
  async switchChain(provider, chainOrId) {
34
63
  if (provider.chainInfo.namespace !== Chain.Ethereum) {
35
64
  throw new Error("Only Ethereum wallets support chain switching");
@@ -41,19 +70,20 @@ class CrossPlatformWalletConnector {
41
70
  return wallet.switchChain(provider, chainOrId);
42
71
  }
43
72
  /**
44
- * Signs a message using the appropriate wallet based on the provider.
73
+ * Signs a payload using the appropriate wallet based on the provider.
45
74
  *
46
- * @param message - The message to be signed.
75
+ * @param payload - The payload to be signed.
47
76
  * @param walletProvider - The wallet provider used for signing.
48
77
  * @param intent - The signing intent (e.g., message, transaction).
49
- * @returns A promise that resolves to the hex-encoded signature string.
78
+ * @returns A promise that resolves to a hex string (signature or tx hash).
79
+ * @throws {Error} If the wallet is not initialized.
50
80
  */
51
- async sign(message, walletProvider, intent) {
81
+ async sign(payload, walletProvider, intent) {
52
82
  const wallet = this.wallets[walletProvider.interfaceType];
53
83
  if (!wallet) {
54
84
  throw new Error(`Wallet for ${walletProvider.interfaceType} not initialized`);
55
85
  }
56
- return wallet.sign(message, walletProvider, intent);
86
+ return wallet.sign(payload, walletProvider, intent);
57
87
  }
58
88
  }
59
89
 
@@ -1 +1 @@
1
- {"version":3,"file":"connector.mjs","sources":["../../src/__wallet__/connector.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAiBa,4BAA4B,CAAA;AAGvC,IAAA,WAAA,CACmB,OAEhB,EAAA;QAFgB,IAAO,CAAA,OAAA,GAAP,OAAO;;AAK1B;;;;;AAKG;IACH,MAAM,oBAAoB,CAAC,QAAwB,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC;;AAG7C;;;;;AAKG;IACH,MAAM,uBAAuB,CAAC,QAAwB,EAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;AAGhD,IAAA,MAAM,WAAW,CACf,QAAwB,EACxB,SAAmC,EAAA;QAEnC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,KAAK,KAAK,CAAC,QAAQ,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;;QAGlE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,QAAQ,CAAC,aAAa,CAAmC,iCAAA,CAAA,CACpE;;QAGH,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAGhD;;;;;;;AAOG;AACH,IAAA,MAAM,IAAI,CACR,OAAe,EACf,cAA8B,EAC9B,MAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC;QAEzD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,CAAA,WAAA,EAAc,cAAc,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAC7D;;QAGH,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;;AAEtD;;;;"}
1
+ {"version":3,"file":"connector.mjs","sources":["../../src/__wallet__/connector.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAiBa,4BAA4B,CAAA;AAGvC;;;;;;;;AAQG;AACH,IAAA,WAAA,CACmB,OAEhB,EAAA;QAFgB,IAAO,CAAA,OAAA,GAAP,OAAO;QAIxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;AAChC,YAAA,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D;;;AAIL;;;;;AAKG;IACH,MAAM,oBAAoB,CAAC,QAAwB,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC;;AAG7C;;;;;AAKG;IACH,MAAM,uBAAuB,CAAC,QAAwB,EAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,CAAA,WAAA,EAAc,QAAQ,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAAC;;AAGzE,QAAA,MAAM,MAAM,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;AAGhD;;;;;;;;;;;;;;;;AAgBG;AACH,IAAA,MAAM,WAAW,CACf,QAAwB,EACxB,SAAmC,EAAA;QAEnC,IAAI,QAAQ,CAAC,SAAS,CAAC,SAAS,KAAK,KAAK,CAAC,QAAQ,EAAE;AACnD,YAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;;QAGlE,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;AACnD,QAAA,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YACxB,MAAM,IAAI,KAAK,CACb,CAAA,OAAA,EAAU,QAAQ,CAAC,aAAa,CAAmC,iCAAA,CAAA,CACpE;;QAGH,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;;AAGhD;;;;;;;;AAQG;AACH,IAAA,MAAM,IAAI,CACR,OAAe,EACf,cAA8B,EAC9B,MAAkB,EAAA;QAElB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC;QAEzD,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CACb,CAAA,WAAA,EAAc,cAAc,CAAC,aAAa,CAAkB,gBAAA,CAAA,CAC7D;;QAGH,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC;;AAEtD;;;;"}
@@ -11,24 +11,40 @@ export declare class MobileWalletManager {
11
11
  /**
12
12
  * Constructs a MobileWalletManager that only uses WalletConnect.
13
13
  *
14
- * @param cfg - Wallet manager configuration (uses only WalletConnect fields).
14
+ * - Determines enabled chains based on provided namespaces for Ethereum and Solana.
15
+ * - Initializes WalletConnect wallet interface and maps it to supported chains.
16
+ * - Optionally enables stamping and connecting flows based on feature flags that live in the cfg.
17
+ * - Sets up `CrossPlatformWalletStamper` and `CrossPlatformWalletConnector` if auth or connecting features are enabled.
18
+ *
19
+ * @param cfg - Wallet manager configuration (we only use WalletConnect fields).
15
20
  */
16
21
  constructor(cfg: TWalletManagerConfig);
17
22
  /**
18
- * Initializes the wallet manager and WalletConnect client.
23
+ * Initializes WalletConnect components and any registered wallet interfaces.
24
+ *
25
+ * - First initializes the low-level WalletConnect client with the provided config.
26
+ * - Then initializes higher-level wallet interface `WalletConnectWallet` using registered async initializers.
19
27
  *
20
- * @param cfg - Wallet manager configuration.
28
+ * @param cfg - Wallet manager configuration used for initializing the WalletConnect client.
21
29
  */
22
30
  init(cfg: TWalletManagerConfig): Promise<void>;
23
31
  /**
24
32
  * Retrieves available wallet providers, optionally filtered by chain.
25
33
  *
34
+ * - If a chain is specified, filters wallet interfaces that support that chain.
35
+ * - Aggregates providers across all registered wallet interfaces.
36
+ * - Filters WalletConnect results to match the specified chain.
37
+ *
26
38
  * @param chain - Optional chain to filter providers by.
27
- * @throws If no wallet interface is registered for the given chain.
39
+ * @returns A promise that resolves to an array of `WalletProvider` objects.
40
+ * @throws {Error} If no wallet interface is registered for the given chain.
28
41
  */
29
42
  getProviders(chain?: Chain): Promise<WalletProvider[]>;
30
43
  /**
31
- * Registers a wallet interface as supporting a specific blockchain chain.
44
+ * Registers a wallet interface type as supporting a specific blockchain chain.
45
+ *
46
+ * @param chain - Chain (e.g., Ethereum, Solana).
47
+ * @param interfaceType - Wallet interface type to associate with the chain.
32
48
  */
33
49
  private addChainInterface;
34
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/mobile/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,KAAK,EACN,MAAM,QAAQ,CAAC;AAIhB,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,YAAY,CAAkC;IAGtD,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAGvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAM;IAG7E,OAAO,CAAC,iBAAiB,CAAqD;IAG9E,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IAG9C,QAAQ,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC;IAElD;;;;OAIG;gBACS,GAAG,EAAE,oBAAoB;IA2CrC;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpD;;;;;OAKG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4B5D;;OAEG;IACH,OAAO,CAAC,iBAAiB,CAGvB;CACH"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/mobile/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,KAAK,EACN,MAAM,QAAQ,CAAC;AAIhB,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,YAAY,CAAkC;IAGtD,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAGvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAM;IAG7E,OAAO,CAAC,iBAAiB,CAAqD;IAG9E,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IAG9C,QAAQ,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC;IAElD;;;;;;;;;OASG;gBACS,GAAG,EAAE,oBAAoB;IA2CrC;;;;;;;OAOG;IACG,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpD;;;;;;;;;;OAUG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4B5D;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAMvB;CACH"}
@@ -10,7 +10,12 @@ class MobileWalletManager {
10
10
  /**
11
11
  * Constructs a MobileWalletManager that only uses WalletConnect.
12
12
  *
13
- * @param cfg - Wallet manager configuration (uses only WalletConnect fields).
13
+ * - Determines enabled chains based on provided namespaces for Ethereum and Solana.
14
+ * - Initializes WalletConnect wallet interface and maps it to supported chains.
15
+ * - Optionally enables stamping and connecting flows based on feature flags that live in the cfg.
16
+ * - Sets up `CrossPlatformWalletStamper` and `CrossPlatformWalletConnector` if auth or connecting features are enabled.
17
+ *
18
+ * @param cfg - Wallet manager configuration (we only use WalletConnect fields).
14
19
  */
15
20
  constructor(cfg) {
16
21
  // queue of async initialization functions
@@ -20,12 +25,15 @@ class MobileWalletManager {
20
25
  // maps a blockchain chain to its corresponding wallet interface types
21
26
  this.chainToInterfaces = {};
22
27
  /**
23
- * Registers a wallet interface as supporting a specific blockchain chain.
28
+ * Registers a wallet interface type as supporting a specific blockchain chain.
29
+ *
30
+ * @param chain - Chain (e.g., Ethereum, Solana).
31
+ * @param interfaceType - Wallet interface type to associate with the chain.
24
32
  */
25
- this.addChainInterface = (chain, iface) => {
33
+ this.addChainInterface = (chain, interfaceType) => {
26
34
  if (!this.chainToInterfaces[chain])
27
35
  this.chainToInterfaces[chain] = [];
28
- this.chainToInterfaces[chain].push(iface);
36
+ this.chainToInterfaces[chain].push(interfaceType);
29
37
  };
30
38
  const ethereumNamespaces = cfg.chains.ethereum?.walletConnectNamespaces ?? [];
31
39
  const solanaNamespaces = cfg.chains.solana?.walletConnectNamespaces ?? [];
@@ -54,30 +62,39 @@ class MobileWalletManager {
54
62
  }
55
63
  }
56
64
  /**
57
- * Initializes the wallet manager and WalletConnect client.
65
+ * Initializes WalletConnect components and any registered wallet interfaces.
66
+ *
67
+ * - First initializes the low-level WalletConnect client with the provided config.
68
+ * - Then initializes higher-level wallet interface `WalletConnectWallet` using registered async initializers.
58
69
  *
59
- * @param cfg - Wallet manager configuration.
70
+ * @param cfg - Wallet manager configuration used for initializing the WalletConnect client.
60
71
  */
61
72
  async init(cfg) {
62
73
  if (this.wcClient) {
63
74
  await this.wcClient.init(cfg.walletConnect);
64
75
  }
76
+ // we initialize the high-level WalletConnectWallet
77
+ // we do this because we can't init this inside the constructor since it's async
65
78
  await Promise.all(this.initializers.map((fn) => fn()));
66
- await this.stamper?.init();
67
79
  }
68
80
  /**
69
81
  * Retrieves available wallet providers, optionally filtered by chain.
70
82
  *
83
+ * - If a chain is specified, filters wallet interfaces that support that chain.
84
+ * - Aggregates providers across all registered wallet interfaces.
85
+ * - Filters WalletConnect results to match the specified chain.
86
+ *
71
87
  * @param chain - Optional chain to filter providers by.
72
- * @throws If no wallet interface is registered for the given chain.
88
+ * @returns A promise that resolves to an array of `WalletProvider` objects.
89
+ * @throws {Error} If no wallet interface is registered for the given chain.
73
90
  */
74
91
  async getProviders(chain) {
75
92
  if (chain) {
76
- const ifaceTypes = this.chainToInterfaces[chain];
77
- if (!ifaceTypes || ifaceTypes.length === 0) {
93
+ const interfaceType = this.chainToInterfaces[chain];
94
+ if (!interfaceType || interfaceType.length === 0) {
78
95
  throw new Error(`No wallet supports chain: ${chain}`);
79
96
  }
80
- const walletsToQuery = ifaceTypes
97
+ const walletsToQuery = interfaceType
81
98
  .map((iface) => this.wallets[iface])
82
99
  .filter(Boolean);
83
100
  const providersArrays = await Promise.all(walletsToQuery.map((wallet) => wallet.getProviders()));
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sources":["../../../src/__wallet__/mobile/manager.ts"],"sourcesContent":[null],"names":["WalletConnectClient","WalletConnectWallet","WalletInterfaceType","Chain","CrossPlatformWalletStamper","CrossPlatformWalletConnector"],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sources":["../../../src/__wallet__/mobile/manager.ts"],"sourcesContent":[null],"names":["WalletConnectClient","WalletConnectWallet","WalletInterfaceType","Chain","CrossPlatformWalletStamper","CrossPlatformWalletConnector"],"mappings":";;;;;;;;MAYa,mBAAmB,CAAA;AAmB9B;;;;;;;;;AASG;AACH,IAAA,WAAA,CAAY,GAAyB,EAAA;;QA3B7B,IAAY,CAAA,YAAA,GAA+B,EAAE;;QAM5C,IAAO,CAAA,OAAA,GAA0D,EAAE;;QAGpE,IAAiB,CAAA,iBAAA,GAAkD,EAAE;AAsH7E;;;;;AAKG;AACK,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAC1B,KAAY,EACZ,aAAkC,KAChC;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAAE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE;YACtE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,aAAa,CAAC;AACpD,SAAC;QA/GC,MAAM,kBAAkB,GACtB,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,IAAI,EAAE;QACpD,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,IAAI,EAAE;AAEzE,QAAA,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC;AAC5D,QAAA,MAAM,sBAAsB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC;AAE1D,QAAA,MAAM,mBAAmB,GACvB,sBAAsB,IAAI,sBAAsB;AAElD,QAAA,IAAI,GAAG,CAAC,aAAa,IAAI,mBAAmB,EAAE;AAC5C,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAIA,0BAAmB,EAAE;YACzC,MAAM,SAAS,GAAG,IAAIC,wBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAExD,IAAI,CAAC,OAAO,CAACC,0BAAmB,CAAC,aAAa,CAAC,GAAG,SAAS;;AAG3D,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MACrB,SAAS,CAAC,IAAI,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC,CACzD;;YAGD,IAAI,sBAAsB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,CACpBC,YAAK,CAAC,QAAQ,EACdD,0BAAmB,CAAC,aAAa,CAClC;;YAEH,IAAI,sBAAsB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,CAACC,YAAK,CAAC,MAAM,EAAED,0BAAmB,CAAC,aAAa,CAAC;;;AAI3E,QAAA,IAAI,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE;YACtB,IAAI,CAAC,OAAO,GAAG,IAAIE,kCAA0B,CAAC,IAAI,CAAC,OAAO,CAAC;;AAG7D,QAAA,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC5B,IAAI,CAAC,SAAS,GAAG,IAAIC,sCAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;;;AAInE;;;;;;;AAOG;IACH,MAAM,IAAI,CAAC,GAAyB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,aAAc,CAAC;;;;AAK9C,QAAA,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;;AAGxD;;;;;;;;;;AAUG;IACH,MAAM,YAAY,CAAC,KAAa,EAAA;QAC9B,IAAI,KAAK,EAAE;YACT,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YACnD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,gBAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAA,CAAE,CAAC;;YAGvD,MAAM,cAAc,GAAG;AACpB,iBAAA,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;iBAClC,MAAM,CAAC,OAAO,CAAsB;YAEvC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,CACtD;;AAGD,YAAA,OAAO;AACJ,iBAAA,IAAI;AACJ,iBAAA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,SAAS,KAAK,KAAK,CAAC;;AAGnD,QAAA,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,GAAG,CACvC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC,CACnE;AAED,QAAA,OAAO,eAAe,CAAC,IAAI,EAAE;;AAgBhC;;;;"}
@@ -8,7 +8,12 @@ class MobileWalletManager {
8
8
  /**
9
9
  * Constructs a MobileWalletManager that only uses WalletConnect.
10
10
  *
11
- * @param cfg - Wallet manager configuration (uses only WalletConnect fields).
11
+ * - Determines enabled chains based on provided namespaces for Ethereum and Solana.
12
+ * - Initializes WalletConnect wallet interface and maps it to supported chains.
13
+ * - Optionally enables stamping and connecting flows based on feature flags that live in the cfg.
14
+ * - Sets up `CrossPlatformWalletStamper` and `CrossPlatformWalletConnector` if auth or connecting features are enabled.
15
+ *
16
+ * @param cfg - Wallet manager configuration (we only use WalletConnect fields).
12
17
  */
13
18
  constructor(cfg) {
14
19
  // queue of async initialization functions
@@ -18,12 +23,15 @@ class MobileWalletManager {
18
23
  // maps a blockchain chain to its corresponding wallet interface types
19
24
  this.chainToInterfaces = {};
20
25
  /**
21
- * Registers a wallet interface as supporting a specific blockchain chain.
26
+ * Registers a wallet interface type as supporting a specific blockchain chain.
27
+ *
28
+ * @param chain - Chain (e.g., Ethereum, Solana).
29
+ * @param interfaceType - Wallet interface type to associate with the chain.
22
30
  */
23
- this.addChainInterface = (chain, iface) => {
31
+ this.addChainInterface = (chain, interfaceType) => {
24
32
  if (!this.chainToInterfaces[chain])
25
33
  this.chainToInterfaces[chain] = [];
26
- this.chainToInterfaces[chain].push(iface);
34
+ this.chainToInterfaces[chain].push(interfaceType);
27
35
  };
28
36
  const ethereumNamespaces = cfg.chains.ethereum?.walletConnectNamespaces ?? [];
29
37
  const solanaNamespaces = cfg.chains.solana?.walletConnectNamespaces ?? [];
@@ -52,30 +60,39 @@ class MobileWalletManager {
52
60
  }
53
61
  }
54
62
  /**
55
- * Initializes the wallet manager and WalletConnect client.
63
+ * Initializes WalletConnect components and any registered wallet interfaces.
64
+ *
65
+ * - First initializes the low-level WalletConnect client with the provided config.
66
+ * - Then initializes higher-level wallet interface `WalletConnectWallet` using registered async initializers.
56
67
  *
57
- * @param cfg - Wallet manager configuration.
68
+ * @param cfg - Wallet manager configuration used for initializing the WalletConnect client.
58
69
  */
59
70
  async init(cfg) {
60
71
  if (this.wcClient) {
61
72
  await this.wcClient.init(cfg.walletConnect);
62
73
  }
74
+ // we initialize the high-level WalletConnectWallet
75
+ // we do this because we can't init this inside the constructor since it's async
63
76
  await Promise.all(this.initializers.map((fn) => fn()));
64
- await this.stamper?.init();
65
77
  }
66
78
  /**
67
79
  * Retrieves available wallet providers, optionally filtered by chain.
68
80
  *
81
+ * - If a chain is specified, filters wallet interfaces that support that chain.
82
+ * - Aggregates providers across all registered wallet interfaces.
83
+ * - Filters WalletConnect results to match the specified chain.
84
+ *
69
85
  * @param chain - Optional chain to filter providers by.
70
- * @throws If no wallet interface is registered for the given chain.
86
+ * @returns A promise that resolves to an array of `WalletProvider` objects.
87
+ * @throws {Error} If no wallet interface is registered for the given chain.
71
88
  */
72
89
  async getProviders(chain) {
73
90
  if (chain) {
74
- const ifaceTypes = this.chainToInterfaces[chain];
75
- if (!ifaceTypes || ifaceTypes.length === 0) {
91
+ const interfaceType = this.chainToInterfaces[chain];
92
+ if (!interfaceType || interfaceType.length === 0) {
76
93
  throw new Error(`No wallet supports chain: ${chain}`);
77
94
  }
78
- const walletsToQuery = ifaceTypes
95
+ const walletsToQuery = interfaceType
79
96
  .map((iface) => this.wallets[iface])
80
97
  .filter(Boolean);
81
98
  const providersArrays = await Promise.all(walletsToQuery.map((wallet) => wallet.getProviders()));
@@ -1 +1 @@
1
- {"version":3,"file":"manager.mjs","sources":["../../../src/__wallet__/mobile/manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.mjs","sources":["../../../src/__wallet__/mobile/manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,18 +2,89 @@ import { type WalletInterface, type TStamp, type TStamper, type WalletProvider,
2
2
  export declare class CrossPlatformWalletStamper implements TStamper {
3
3
  private readonly ctx;
4
4
  private activeInterfaceType?;
5
+ /**
6
+ * Constructs a CrossPlatformWalletStamper.
7
+ *
8
+ * - Validates that at least one wallet interface is provided.
9
+ * - For each wallet interface, creates an internal `WalletStamper` bound to it.
10
+ * - Ensures the stamper instance is always initialized in a usable state.
11
+ *
12
+ * @param wallets - A partial mapping of wallet interfaces by type.
13
+ * @throws {Error} If no wallet interfaces are provided.
14
+ */
5
15
  constructor(wallets: Partial<Record<WalletInterfaceType, WalletInterface>>);
6
- init(): Promise<void>;
16
+ /**
17
+ * Stamps a payload using the specified wallet interface and provider.
18
+ *
19
+ * - Uses the explicitly provided interface and provider if given.
20
+ * - Falls back to the default interface and stored provider otherwise.
21
+ *
22
+ * @param payload - The string payload to sign.
23
+ * @param interfaceType - Optional wallet interface type (defaults to the active or first available).
24
+ * @param provider - Optional provider (defaults to the one set via `setProvider`).
25
+ * @returns A `TStamp` object containing the stamp header name and encoded value.
26
+ * @throws {Error} If no provider is available for the selected interface.
27
+ */
7
28
  stamp(payload: string, interfaceType?: WalletInterfaceType, provider?: WalletProvider): Promise<TStamp>;
29
+ /**
30
+ * Retrieves the public key for the given provider.
31
+ *
32
+ * @param interfaceType - Optional wallet interface type (defaults to the active or first available).
33
+ * @param provider - Wallet provider for which to fetch the public key.
34
+ * @returns A promise resolving to the public key in hex format.
35
+ */
8
36
  getPublicKey(interfaceType: WalletInterfaceType | undefined, provider: WalletProvider): Promise<string>;
37
+ /**
38
+ * Sets the active provider for a given wallet interface.
39
+ *
40
+ * - The active provider is used as a fallback in `stamp` if none is passed explicitly.
41
+ *
42
+ * @param interfaceType - Wallet interface type.
43
+ * @param provider - Provider instance to associate with the interface.
44
+ */
9
45
  setProvider(interfaceType: WalletInterfaceType, provider: WalletProvider): void;
10
- getWalletInterface(interfaceType?: WalletInterfaceType): WalletInterface;
46
+ /**
47
+ * Determines the default wallet interface to use when none is specified.
48
+ *
49
+ * - Preference order: Active provider > Ethereum > Solana > WalletConnect.
50
+ *
51
+ * @returns The default wallet interface type.
52
+ * @throws {Error} If no wallet interfaces are initialized.
53
+ */
11
54
  private defaultInterface;
55
+ /**
56
+ * Retrieves the internal context for a given wallet interface.
57
+ *
58
+ * @param interfaceType - Wallet interface type.
59
+ * @returns The context including wallet, stamper, and optional provider.
60
+ * @throws {Error} If the interface is not initialized.
61
+ */
12
62
  private getCtx;
13
63
  }
14
64
  export declare class WalletStamper {
15
65
  private readonly wallet;
66
+ /**
67
+ * Constructs a WalletStamper bound to a single wallet interface.
68
+ *
69
+ * @param wallet - The wallet interface used for signing.
70
+ */
16
71
  constructor(wallet: WalletInterface);
72
+ /**
73
+ * Signs a payload and returns a standardized stamp header.
74
+ *
75
+ * - For Ethereum:
76
+ * - Signs using EIP-191.
77
+ * - Recovers and compresses the public key.
78
+ * - Converts the signature into DER format.
79
+ * - For Solana:
80
+ * - Signs using Ed25519.
81
+ * - Fetches the public key directly from the wallet.
82
+ *
83
+ * @param payload - The payload to sign.
84
+ * @param provider - The wallet provider used for signing.
85
+ * @returns A `TStamp` containing the header name and base64url-encoded JSON value.
86
+ * @throws {Error} If signing or public key recovery fails.
87
+ */
17
88
  stamp(payload: string, provider: WalletProvider): Promise<TStamp>;
18
89
  }
19
90
  //# sourceMappingURL=stamper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stamper.d.ts","sourceRoot":"","sources":["../../src/__wallet__/stamper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAsBhB,qBAAa,0BAA2B,YAAW,QAAQ;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;gBAEtC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IAUpE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrB,KAAK,CACT,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,mBAA6C,EAC5D,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAaZ,YAAY,CAChB,aAAa,iCAA+C,EAC5D,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAIlB,WAAW,CACT,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,cAAc,GACvB,IAAI;IAKP,kBAAkB,CAChB,aAAa,GAAE,mBAA6C,GAC3D,eAAe;IAIlB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,MAAM;CASf;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,eAAe;IAE9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAqDxE"}
1
+ {"version":3,"file":"stamper.d.ts","sourceRoot":"","sources":["../../src/__wallet__/stamper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,mBAAmB,EACpB,MAAM,QAAQ,CAAC;AAsBhB,qBAAa,0BAA2B,YAAW,QAAQ;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkB;IACtC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAElD;;;;;;;;;OASG;gBACS,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IAiB1E;;;;;;;;;;;OAWG;IACG,KAAK,CACT,OAAO,EAAE,MAAM,EACf,aAAa,GAAE,mBAA6C,EAC5D,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAalB;;;;;;OAMG;IACG,YAAY,CAChB,aAAa,iCAA+C,EAC5D,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC;IAIlB;;;;;;;OAOG;IACH,WAAW,CACT,aAAa,EAAE,mBAAmB,EAClC,QAAQ,EAAE,cAAc,GACvB,IAAI;IAKP;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CASf;AAED,qBAAa,aAAa;IAMZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC;;;;OAIG;gBAC0B,MAAM,EAAE,eAAe;IAEpD;;;;;;;;;;;;;;;OAeG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;CAqDxE"}