@turnkey/core 1.0.0-beta.2 → 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,5 +1,12 @@
1
1
  import SignClient from '@walletconnect/sign-client';
2
2
 
3
+ /**
4
+ * WalletConnectClient is a low-level wrapper around the WalletConnect SignClient.
5
+ *
6
+ * - Used internally by `WalletConnectWallet` to manage connections and sessions.
7
+ * - Handles pairing, approval, session tracking, RPC requests, and disconnects.
8
+ * - Exposes a minimal API for lifecycle control; higher-level logic lives in `WalletConnectWallet`.
9
+ */
3
10
  class WalletConnectClient {
4
11
  constructor() {
5
12
  // tracks the pending approval callback returned from `connect()`
@@ -20,12 +27,12 @@ class WalletConnectClient {
20
27
  /**
21
28
  * Initializes the WalletConnect SignClient with your project credentials.
22
29
  *
23
- * - Must be called before calling `pair()` or `request()`.
24
- * - Configures metadata and optionally a custom relay server.
30
+ * - Must be called before `pair()`, `approve()`, or `request()`.
31
+ * - Configures app metadata and an optional custom relay server.
25
32
  *
26
33
  * @param opts.projectId - WalletConnect project ID.
27
- * @param opts.metadata - Metadata about your app (name, URL, icons).
28
- * @param opts.relayUrl - (Optional) Custom relay server URL.
34
+ * @param opts.appMetadata - Metadata about your app (name, URL, icons).
35
+ * @param opts.relayUrl - (Optional) custom relay server URL.
29
36
  * @returns A promise that resolves once the client is initialized.
30
37
  */
31
38
  async init(opts) {
@@ -42,12 +49,13 @@ class WalletConnectClient {
42
49
  /**
43
50
  * Initiates a pairing request and returns a URI to be scanned or deep-linked.
44
51
  *
45
- * - Must be followed by a call to `approve()` to complete the pairing.
52
+ * - Requires `init()` to have been called.
53
+ * - Must be followed by `approve()` after the wallet approves.
46
54
  * - Throws if a pairing is already in progress.
47
55
  *
48
- * @param namespaces - Namespaces to request for optional capabilities.
56
+ * @param namespaces - Optional namespaces requesting capabilities.
49
57
  * @returns A WalletConnect URI for the wallet to connect with.
50
- * @throws {Error} If a pairing is already in progress or URI is not returned.
58
+ * @throws {Error} If a pairing is already in progress or no URI is returned.
51
59
  */
52
60
  async pair(namespaces) {
53
61
  if (this.pendingApproval) {
@@ -65,10 +73,10 @@ class WalletConnectClient {
65
73
  /**
66
74
  * Completes the pairing approval process after the wallet approves the request.
67
75
  *
68
- * - Must be called after `pair()` and after the wallet has scanned and approved the URI.
76
+ * - Requires `init()` and a pending pairing started via `pair()`.
69
77
  *
70
78
  * @returns A promise that resolves to the established session.
71
- * @throws {Error} If called before `pair()` or approval fails.
79
+ * @throws {Error} If called before `pair()` or if approval fails.
72
80
  */
73
81
  async approve() {
74
82
  if (!this.pendingApproval) {
@@ -95,13 +103,13 @@ class WalletConnectClient {
95
103
  /**
96
104
  * Sends a JSON-RPC request over the active WalletConnect session.
97
105
  *
98
- * - The session must already be connected.
106
+ * - Requires `init()` and an active session.
99
107
  *
100
- * @param chainId - Chain ID of the target blockchain (e.g. `eip155:1`).
101
- * @param method - The RPC method name to call.
102
- * @param params - The parameters to pass into the RPC method.
108
+ * @param chainId - Target chain ID (e.g. `eip155:1`).
109
+ * @param method - RPC method name.
110
+ * @param params - Parameters for the RPC method.
103
111
  * @returns A promise that resolves with the RPC response.
104
- * @throws {Error} If no active session is found.
112
+ * @throws {Error} If no active session exists.
105
113
  */
106
114
  async request(chainId, method, params) {
107
115
  const session = this.getSession();
@@ -1 +1 @@
1
- {"version":3,"file":"client.mjs","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.mjs","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -10,31 +10,39 @@ export declare class WebWalletManager {
10
10
  readonly connector?: CrossPlatformWalletConnector;
11
11
  /**
12
12
  * Constructs a WebWalletManager instance based on the provided configuration.
13
- * Sets up native wallets and WalletConnect support.
14
13
  *
15
- * @param cfg - Wallet manager configuration including enabled chains and WalletConnect setup.
14
+ * - Enables native Ethereum and/or Solana wallet support if configured.
15
+ * - Enables WalletConnect support for Ethereum and/or Solana chains if namespaces are provided.
16
+ * - Sets up `CrossPlatformWalletStamper` and `CrossPlatformWalletConnector` if auth or connecting features are enabled.
17
+ *
18
+ * @param cfg - Wallet manager configuration.
16
19
  */
17
20
  constructor(cfg: TWalletManagerConfig);
18
21
  /**
19
- * Initializes the wallet manager and all wallet connectors.
22
+ * Initializes WalletConnect components and any registered wallet interfaces.
20
23
  *
21
- * @param cfg - Wallet manager configuration.
22
- * @returns A promise that resolves once all wallet initializers have completed.
24
+ * - Initializes the low-level WalletConnect client with the provided config.
25
+ * - Runs any registered async wallet initializers (currently only `WalletConnectWallet`).
26
+ *
27
+ * @param cfg - Wallet manager configuration used for initializing the WalletConnect client.
23
28
  */
24
29
  init(cfg: TWalletManagerConfig): Promise<void>;
25
30
  /**
26
- * Retrieves available wallet providers based on the configured chains.
31
+ * Retrieves available wallet providers, optionally filtered by chain.
32
+ *
33
+ * - If a chain is specified, filters wallet interfaces that support that chain.
34
+ * - Aggregates providers across all wallet interfaces and filters WalletConnect results accordingly.
27
35
  *
28
- * @param chain - Optional chain to filter providers by.
29
- * @returns A promise that resolves to an array of wallet providers.
30
- * @throws If no wallet interface is registered for the given chain.
36
+ * @param chain - Optional chain to filter providers by (e.g., Ethereum, Solana).
37
+ * @returns A promise that resolves to an array of `WalletProvider` objects.
38
+ * @throws {Error} If no wallet interface is registered for the given chain.
31
39
  */
32
40
  getProviders(chain?: Chain): Promise<WalletProvider[]>;
33
41
  /**
34
- * Registers a wallet interface as supporting a specific blockchain chain.
42
+ * Registers a wallet interface type as supporting a specific blockchain chain.
35
43
  *
36
- * @param chain - The blockchain chain (e.g., Ethereum, Solana).
37
- * @param iface - The wallet interface type (e.g., native, WalletConnect).
44
+ * @param chain - Chain (e.g., Ethereum, Solana).
45
+ * @param interfaceType - Wallet interface type to associate with the chain.
38
46
  */
39
47
  private addChainInterface;
40
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/web/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,KAAK,EACN,MAAM,QAAQ,CAAC;AAIhB,qBAAa,gBAAgB;IAE3B,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;;;;;OAKG;gBACS,GAAG,EAAE,oBAAoB;IAyDrC;;;;;OAKG;IACG,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpD;;;;;;OAMG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4B5D;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAGvB;CACH"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/web/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,KAAK,EACN,MAAM,QAAQ,CAAC;AAIhB,qBAAa,gBAAgB;IAE3B,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;;;;;;;;OAQG;gBACS,GAAG,EAAE,oBAAoB;IAyDrC;;;;;;;OAOG;IACG,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpD;;;;;;;;;OASG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4B5D;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAMvB;CACH"}
@@ -11,9 +11,12 @@ var base$1 = require('../wallet-connect/base.js');
11
11
  class WebWalletManager {
12
12
  /**
13
13
  * Constructs a WebWalletManager instance based on the provided configuration.
14
- * Sets up native wallets and WalletConnect support.
15
14
  *
16
- * @param cfg - Wallet manager configuration including enabled chains and WalletConnect setup.
15
+ * - Enables native Ethereum and/or Solana wallet support if configured.
16
+ * - Enables WalletConnect support for Ethereum and/or Solana chains if namespaces are provided.
17
+ * - Sets up `CrossPlatformWalletStamper` and `CrossPlatformWalletConnector` if auth or connecting features are enabled.
18
+ *
19
+ * @param cfg - Wallet manager configuration.
17
20
  */
18
21
  constructor(cfg) {
19
22
  // queue of async initialization functions
@@ -23,18 +26,18 @@ class WebWalletManager {
23
26
  // maps a blockchain chain to its corresponding wallet interface types
24
27
  this.chainToInterfaces = {};
25
28
  /**
26
- * Registers a wallet interface as supporting a specific blockchain chain.
29
+ * Registers a wallet interface type as supporting a specific blockchain chain.
27
30
  *
28
- * @param chain - The blockchain chain (e.g., Ethereum, Solana).
29
- * @param iface - The wallet interface type (e.g., native, WalletConnect).
31
+ * @param chain - Chain (e.g., Ethereum, Solana).
32
+ * @param interfaceType - Wallet interface type to associate with the chain.
30
33
  */
31
- this.addChainInterface = (chain, iface) => {
34
+ this.addChainInterface = (chain, interfaceType) => {
32
35
  if (!this.chainToInterfaces[chain])
33
36
  this.chainToInterfaces[chain] = [];
34
- this.chainToInterfaces[chain].push(iface);
37
+ this.chainToInterfaces[chain].push(interfaceType);
35
38
  };
36
- const enableNativeEvm = cfg.chains.ethereum ?? false;
37
- const enableNativeSol = cfg.chains.solana ?? false;
39
+ const enableNativeEvm = cfg.chains.ethereum?.native ?? false;
40
+ const enableNativeSol = cfg.chains.solana?.native ?? false;
38
41
  const ethereumNamespaces = cfg.chains.ethereum?.walletConnectNamespaces ?? [];
39
42
  const solanaNamespaces = cfg.chains.solana?.walletConnectNamespaces ?? [];
40
43
  const enableWalletConnectEvm = ethereumNamespaces.length > 0;
@@ -71,32 +74,37 @@ class WebWalletManager {
71
74
  }
72
75
  }
73
76
  /**
74
- * Initializes the wallet manager and all wallet connectors.
77
+ * Initializes WalletConnect components and any registered wallet interfaces.
75
78
  *
76
- * @param cfg - Wallet manager configuration.
77
- * @returns A promise that resolves once all wallet initializers have completed.
79
+ * - Initializes the low-level WalletConnect client with the provided config.
80
+ * - Runs any registered async wallet initializers (currently only `WalletConnectWallet`).
81
+ *
82
+ * @param cfg - Wallet manager configuration used for initializing the WalletConnect client.
78
83
  */
79
84
  async init(cfg) {
80
85
  if (this.wcClient) {
81
86
  await this.wcClient.init(cfg.walletConnect);
82
87
  }
83
- // Run all wallet-specific initializers
88
+ // we initialize the high-level WalletConnectWallet
89
+ // we do this because we can't init this inside the constructor since it's async
84
90
  await Promise.all(this.initializers.map((fn) => fn()));
85
- await this.stamper?.init();
86
91
  }
87
92
  /**
88
- * Retrieves available wallet providers based on the configured chains.
93
+ * Retrieves available wallet providers, optionally filtered by chain.
94
+ *
95
+ * - If a chain is specified, filters wallet interfaces that support that chain.
96
+ * - Aggregates providers across all wallet interfaces and filters WalletConnect results accordingly.
89
97
  *
90
- * @param chain - Optional chain to filter providers by.
91
- * @returns A promise that resolves to an array of wallet providers.
92
- * @throws If no wallet interface is registered for the given chain.
98
+ * @param chain - Optional chain to filter providers by (e.g., Ethereum, Solana).
99
+ * @returns A promise that resolves to an array of `WalletProvider` objects.
100
+ * @throws {Error} If no wallet interface is registered for the given chain.
93
101
  */
94
102
  async getProviders(chain) {
95
103
  if (chain) {
96
- const ifaceTypes = this.chainToInterfaces[chain];
97
- if (!ifaceTypes || ifaceTypes.length === 0)
104
+ const interfaceTypes = this.chainToInterfaces[chain];
105
+ if (!interfaceTypes || interfaceTypes.length === 0)
98
106
  throw new Error(`No wallet supports chain: ${chain}`);
99
- const walletsToQuery = ifaceTypes
107
+ const walletsToQuery = interfaceTypes
100
108
  .map((iface) => this.wallets[iface])
101
109
  .filter(Boolean);
102
110
  const providersArrays = await Promise.all(walletsToQuery.map((wallet) => wallet.getProviders()));
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":["WalletInterfaceType","EthereumWallet","Chain","SolanaWallet","WalletConnectClient","WalletConnectWallet","CrossPlatformWalletStamper","CrossPlatformWalletConnector"],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":["WalletInterfaceType","EthereumWallet","Chain","SolanaWallet","WalletConnectClient","WalletConnectWallet","CrossPlatformWalletStamper","CrossPlatformWalletConnector"],"mappings":"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"}
@@ -9,9 +9,12 @@ import { WalletConnectWallet } from '../wallet-connect/base.mjs';
9
9
  class WebWalletManager {
10
10
  /**
11
11
  * Constructs a WebWalletManager instance based on the provided configuration.
12
- * Sets up native wallets and WalletConnect support.
13
12
  *
14
- * @param cfg - Wallet manager configuration including enabled chains and WalletConnect setup.
13
+ * - Enables native Ethereum and/or Solana wallet support if configured.
14
+ * - Enables WalletConnect support for Ethereum and/or Solana chains if namespaces are provided.
15
+ * - Sets up `CrossPlatformWalletStamper` and `CrossPlatformWalletConnector` if auth or connecting features are enabled.
16
+ *
17
+ * @param cfg - Wallet manager configuration.
15
18
  */
16
19
  constructor(cfg) {
17
20
  // queue of async initialization functions
@@ -21,18 +24,18 @@ class WebWalletManager {
21
24
  // maps a blockchain chain to its corresponding wallet interface types
22
25
  this.chainToInterfaces = {};
23
26
  /**
24
- * Registers a wallet interface as supporting a specific blockchain chain.
27
+ * Registers a wallet interface type as supporting a specific blockchain chain.
25
28
  *
26
- * @param chain - The blockchain chain (e.g., Ethereum, Solana).
27
- * @param iface - The wallet interface type (e.g., native, WalletConnect).
29
+ * @param chain - Chain (e.g., Ethereum, Solana).
30
+ * @param interfaceType - Wallet interface type to associate with the chain.
28
31
  */
29
- this.addChainInterface = (chain, iface) => {
32
+ this.addChainInterface = (chain, interfaceType) => {
30
33
  if (!this.chainToInterfaces[chain])
31
34
  this.chainToInterfaces[chain] = [];
32
- this.chainToInterfaces[chain].push(iface);
35
+ this.chainToInterfaces[chain].push(interfaceType);
33
36
  };
34
- const enableNativeEvm = cfg.chains.ethereum ?? false;
35
- const enableNativeSol = cfg.chains.solana ?? false;
37
+ const enableNativeEvm = cfg.chains.ethereum?.native ?? false;
38
+ const enableNativeSol = cfg.chains.solana?.native ?? false;
36
39
  const ethereumNamespaces = cfg.chains.ethereum?.walletConnectNamespaces ?? [];
37
40
  const solanaNamespaces = cfg.chains.solana?.walletConnectNamespaces ?? [];
38
41
  const enableWalletConnectEvm = ethereumNamespaces.length > 0;
@@ -69,32 +72,37 @@ class WebWalletManager {
69
72
  }
70
73
  }
71
74
  /**
72
- * Initializes the wallet manager and all wallet connectors.
75
+ * Initializes WalletConnect components and any registered wallet interfaces.
73
76
  *
74
- * @param cfg - Wallet manager configuration.
75
- * @returns A promise that resolves once all wallet initializers have completed.
77
+ * - Initializes the low-level WalletConnect client with the provided config.
78
+ * - Runs any registered async wallet initializers (currently only `WalletConnectWallet`).
79
+ *
80
+ * @param cfg - Wallet manager configuration used for initializing the WalletConnect client.
76
81
  */
77
82
  async init(cfg) {
78
83
  if (this.wcClient) {
79
84
  await this.wcClient.init(cfg.walletConnect);
80
85
  }
81
- // Run all wallet-specific initializers
86
+ // we initialize the high-level WalletConnectWallet
87
+ // we do this because we can't init this inside the constructor since it's async
82
88
  await Promise.all(this.initializers.map((fn) => fn()));
83
- await this.stamper?.init();
84
89
  }
85
90
  /**
86
- * Retrieves available wallet providers based on the configured chains.
91
+ * Retrieves available wallet providers, optionally filtered by chain.
92
+ *
93
+ * - If a chain is specified, filters wallet interfaces that support that chain.
94
+ * - Aggregates providers across all wallet interfaces and filters WalletConnect results accordingly.
87
95
  *
88
- * @param chain - Optional chain to filter providers by.
89
- * @returns A promise that resolves to an array of wallet providers.
90
- * @throws If no wallet interface is registered for the given chain.
96
+ * @param chain - Optional chain to filter providers by (e.g., Ethereum, Solana).
97
+ * @returns A promise that resolves to an array of `WalletProvider` objects.
98
+ * @throws {Error} If no wallet interface is registered for the given chain.
91
99
  */
92
100
  async getProviders(chain) {
93
101
  if (chain) {
94
- const ifaceTypes = this.chainToInterfaces[chain];
95
- if (!ifaceTypes || ifaceTypes.length === 0)
102
+ const interfaceTypes = this.chainToInterfaces[chain];
103
+ if (!interfaceTypes || interfaceTypes.length === 0)
96
104
  throw new Error(`No wallet supports chain: ${chain}`);
97
- const walletsToQuery = ifaceTypes
105
+ const walletsToQuery = interfaceTypes
98
106
  .map((iface) => this.wallets[iface])
99
107
  .filter(Boolean);
100
108
  const providersArrays = await Promise.all(walletsToQuery.map((wallet) => wallet.getProviders()));
@@ -1 +1 @@
1
- {"version":3,"file":"manager.mjs","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.mjs","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import { EthereumWalletInterface, SignIntent, SwitchableChain, WalletInterfaceTy
4
4
  * Abstract base class for Ethereum wallet implementations.
5
5
  *
6
6
  * Provides shared logic for:
7
- * - Provider discovery via EIP-6963
8
- * - Connecting and disconnecting wallets
9
- * - Recovering compressed public keys
7
+ * - Provider discovery via EIP-6963 (request/announce events)
8
+ * - Connecting/disconnecting via EIP-1193
9
+ * - Recovering compressed secp256k1 public keys from EIP-191 signatures
10
10
  */
11
11
  export declare abstract class BaseEthereumWallet implements EthereumWalletInterface {
12
12
  readonly interfaceType = WalletInterfaceType.Ethereum;
@@ -18,9 +18,12 @@ export declare abstract class BaseEthereumWallet implements EthereumWalletInterf
18
18
  * @param intent - The intent of the signature (e.g. message signing or transaction sending).
19
19
  * @returns A promise resolving to a hex-encoded signature string.
20
20
  */
21
- abstract sign(message: string | Hex, provider: WalletProvider, intent: SignIntent): Promise<Hex>;
21
+ abstract sign(payload: string | Hex, provider: WalletProvider, intent: SignIntent): Promise<Hex>;
22
22
  /**
23
- * Retrieves the compressed public key by signing a known message.
23
+ * Retrieves the compressed secp256k1 public key by signing a known message.
24
+ *
25
+ * - Signs the fixed string "GET_PUBLIC_KEY" (EIP-191) and recovers the key.
26
+ * - Returns the compressed public key as a hex string (no 0x prefix).
24
27
  *
25
28
  * @param provider - The wallet provider to use.
26
29
  * @returns A promise that resolves to the compressed public key (hex-encoded).
@@ -29,23 +32,48 @@ export declare abstract class BaseEthereumWallet implements EthereumWalletInterf
29
32
  /**
30
33
  * Discovers EIP-1193 providers using the EIP-6963 standard.
31
34
  *
35
+ * - Dispatches "eip6963:requestProvider" and listens for "eip6963:announceProvider".
36
+ * - For each discovered provider, attempts to read `eth_accounts` and `eth_chainId`
37
+ * (silently ignored if unavailable), defaulting to chainId "0x1".
38
+ * - Returns providers discovered during this discovery cycle; may be empty.
39
+ *
32
40
  * @returns A promise that resolves to a list of available wallet providers.
33
41
  */
34
42
  getProviders: () => Promise<WalletProvider[]>;
35
43
  /**
36
- * Ensures the wallet account is connected.
44
+ * Requests or verifies account connection via `eth_requestAccounts`.
45
+ *
46
+ * - If the wallet is already connected, resolves immediately (no prompt).
47
+ * - If not connected, the wallet will typically prompt the user to authorize.
37
48
  *
38
49
  * @param provider - The wallet provider to use.
39
- * @returns A promise that resolves once the account is connected.
50
+ * @returns A promise that resolves once at least one account is connected.
51
+ * @throws {Error} If the wallet returns no accounts after the request.
40
52
  */
41
53
  connectWalletAccount: (provider: WalletProvider) => Promise<void>;
42
54
  /**
43
- * Disconnects the wallet account by revoking permissions.
55
+ * Attempts to disconnect the wallet by revoking `eth_accounts` permission.
56
+ *
57
+ * - Calls `wallet_revokePermissions` with `{ eth_accounts: {} }`.
58
+ * - Provider behavior is wallet-specific: some implement it, some ignore it,
59
+ * and others (e.g., Phantom) throw “method not supported”.
44
60
  *
45
61
  * @param provider - The wallet provider to disconnect.
46
- * @returns A promise that resolves once the permissions are revoked.
62
+ * @returns A promise that resolves once the request completes (or rejects if the provider errors).
47
63
  */
48
64
  disconnectWalletAccount: (provider: WalletProvider) => Promise<void>;
65
+ /**
66
+ * Switches to a new EVM chain, with add-then-switch fallback.
67
+ *
68
+ * - Tries `wallet_switchEthereumChain` first.
69
+ * - If the wallet returns error code 4902 (unknown chain):
70
+ * - If `chainOrId` is a string (hex chainId), throws and asks the caller to pass metadata.
71
+ * - If `chainOrId` is a `SwitchableChain`, calls `wallet_addEthereumChain` and then retries the switch.
72
+ *
73
+ * @param provider - The wallet provider to use.
74
+ * @param chainOrId - Hex chain ID string or full `SwitchableChain` metadata.
75
+ * @throws {Error} If provider is non-EVM, adding/switching fails, or metadata is missing.
76
+ */
49
77
  switchChain(provider: WalletProvider, chainOrId: string | SwitchableChain): Promise<void>;
50
78
  }
51
79
  /**
@@ -57,11 +85,17 @@ export declare class EthereumWallet extends BaseEthereumWallet {
57
85
  /**
58
86
  * Signs a message or sends a transaction depending on intent.
59
87
  *
60
- * @param message - The message or raw transaction to be signed.
88
+ * - `SignMessage` `personal_sign` (hex signature).
89
+ * - `SignAndSendTransaction` → `eth_sendTransaction` (tx hash).
90
+ * - For transactions, `message` must be a raw tx that `Transaction.from(...)` can parse.
91
+ * - May prompt the user (account access, signing, or send).
92
+ *
93
+ * @param payload - The payload or raw transaction to be signed/sent.
61
94
  * @param provider - The wallet provider to use.
62
95
  * @param intent - Signing intent (SignMessage or SignAndSendTransaction).
63
96
  * @returns A promise that resolves to a hex string (signature or tx hash).
97
+ * @throws {Error} If the intent is unsupported or the wallet rejects the request.
64
98
  */
65
- sign: (message: string, provider: WalletProvider, intent: SignIntent) => Promise<Hex>;
99
+ sign: (payload: string, provider: WalletProvider, intent: SignIntent) => Promise<Hex>;
66
100
  }
67
101
  //# sourceMappingURL=ethereum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/__wallet__/web/native/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EAIJ,MAAM,MAAM,CAAC;AAGd,OAAO,EAEL,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,cAAc,EAGf,MAAM,QAAQ,CAAC;AAMhB;;;;;;;GAOG;AACH,8BAAsB,kBAAmB,YAAW,uBAAuB;IACzE,QAAQ,CAAC,aAAa,gCAAgC;IAEtD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,MAAM,GAAG,GAAG,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,GAAG,CAAC;IAEf;;;;;OAKG;IACH,YAAY,aAAoB,cAAc,KAAG,QAAQ,MAAM,CAAC,CAQ9D;IAEF;;;;OAIG;IACH,YAAY,QAAa,QAAQ,cAAc,EAAE,CAAC,CA2DhD;IAEF;;;;;OAKG;IACH,oBAAoB,aAAoB,cAAc,KAAG,QAAQ,IAAI,CAAC,CAGpE;IAEF;;;;;OAKG;IACH,uBAAuB,aAAoB,cAAc,KAAG,QAAQ,IAAI,CAAC,CAMvE;IAEI,WAAW,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAAG,eAAe,GAClC,OAAO,CAAC,IAAI,CAAC;CAwDjB;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;OAOG;IACH,IAAI,YACO,MAAM,YACL,cAAc,UAChB,UAAU,KACjB,QAAQ,GAAG,CAAC,CAiCb;CACH"}
1
+ {"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/__wallet__/web/native/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EAIJ,MAAM,MAAM,CAAC;AAGd,OAAO,EAEL,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,cAAc,EAGf,MAAM,QAAQ,CAAC;AAMhB;;;;;;;GAOG;AACH,8BAAsB,kBAAmB,YAAW,uBAAuB;IACzE,QAAQ,CAAC,aAAa,gCAAgC;IAEtD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,MAAM,GAAG,GAAG,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,GAAG,CAAC;IAEf;;;;;;;;OAQG;IACH,YAAY,aAAoB,cAAc,KAAG,QAAQ,MAAM,CAAC,CAQ9D;IAEF;;;;;;;;;OASG;IACH,YAAY,QAAa,QAAQ,cAAc,EAAE,CAAC,CA2DhD;IAEF;;;;;;;;;OASG;IACH,oBAAoB,aAAoB,cAAc,KAAG,QAAQ,IAAI,CAAC,CAGpE;IAEF;;;;;;;;;OASG;IACH,uBAAuB,aAAoB,cAAc,KAAG,QAAQ,IAAI,CAAC,CAMvE;IAEF;;;;;;;;;;;OAWG;IACG,WAAW,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAAG,eAAe,GAClC,OAAO,CAAC,IAAI,CAAC;CAwDjB;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;;;;;OAaG;IACH,IAAI,YACO,MAAM,YACL,cAAc,UAChB,UAAU,KACjB,QAAQ,GAAG,CAAC,CAiCb;CACH"}