@dynamic-labs/global-wallet-client 4.14.0 → 4.16.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 (188) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +16 -8
  5. package/src/features.cjs +30 -0
  6. package/src/features.d.ts +11 -0
  7. package/src/features.js +12 -0
  8. package/src/index.cjs +1 -1
  9. package/src/index.d.ts +1 -1
  10. package/src/index.js +1 -1
  11. package/src/lib/client/assignClient/assignClient.cjs +15 -0
  12. package/src/lib/client/assignClient/assignClient.d.ts +2 -0
  13. package/src/lib/client/assignClient/assignClient.js +11 -0
  14. package/src/lib/client/assignClient/index.d.ts +1 -0
  15. package/src/lib/client/assignCore/assignCore.cjs +15 -0
  16. package/src/lib/client/assignCore/assignCore.d.ts +2 -0
  17. package/src/lib/client/assignCore/assignCore.js +11 -0
  18. package/src/lib/client/assignCore/index.d.ts +1 -0
  19. package/src/lib/client/createClientStore/createClientStore.cjs +20 -0
  20. package/src/lib/client/createClientStore/createClientStore.d.ts +35 -0
  21. package/src/lib/client/createClientStore/createClientStore.js +16 -0
  22. package/src/lib/client/createClientStore/index.d.ts +1 -0
  23. package/src/lib/client/createCore/createCore.cjs +42 -0
  24. package/src/lib/client/createCore/createCore.d.ts +19 -0
  25. package/src/lib/client/createCore/createCore.js +38 -0
  26. package/src/lib/client/createCore/index.d.ts +1 -0
  27. package/src/lib/client/createGlobalWalletClient/createGlobalWalletClient.cjs +35 -0
  28. package/src/lib/client/createGlobalWalletClient/createGlobalWalletClient.d.ts +11 -0
  29. package/src/lib/client/createGlobalWalletClient/createGlobalWalletClient.js +31 -0
  30. package/src/lib/client/createGlobalWalletClient/index.d.ts +1 -0
  31. package/src/lib/client/getClient/getClient.cjs +14 -0
  32. package/src/lib/client/getClient/getClient.d.ts +2 -0
  33. package/src/lib/client/getClient/getClient.js +10 -0
  34. package/src/lib/client/getClient/index.d.ts +1 -0
  35. package/src/lib/client/getCore/getCore.cjs +10 -0
  36. package/src/lib/client/getCore/getCore.d.ts +3 -0
  37. package/src/lib/client/getCore/getCore.js +6 -0
  38. package/src/lib/client/getCore/index.d.ts +1 -0
  39. package/src/lib/client/index.d.ts +7 -0
  40. package/src/lib/client/types.d.ts +5 -0
  41. package/src/lib/errors/ClientDisconnectedError.cjs +12 -0
  42. package/src/lib/errors/ClientDisconnectedError.d.ts +3 -0
  43. package/src/lib/errors/ClientDisconnectedError.js +8 -0
  44. package/src/lib/errors/NetworkNotSupportedError.cjs +18 -0
  45. package/src/lib/errors/NetworkNotSupportedError.d.ts +3 -0
  46. package/src/lib/errors/NetworkNotSupportedError.js +14 -0
  47. package/src/lib/ethereum/functions/eip1193Provider/createEIP1193Provider.cjs +37 -25
  48. package/src/lib/ethereum/functions/eip1193Provider/createEIP1193Provider.d.ts +1 -1
  49. package/src/lib/ethereum/functions/eip1193Provider/createEIP1193Provider.js +37 -25
  50. package/src/lib/functions/clearStore/clearStore.cjs +24 -0
  51. package/src/lib/functions/clearStore/clearStore.d.ts +5 -0
  52. package/src/lib/functions/clearStore/clearStore.js +20 -0
  53. package/src/lib/functions/clearStore/index.d.ts +1 -0
  54. package/src/lib/{actions/connectAction/createConnectAction.cjs → functions/connect/connect.cjs} +32 -12
  55. package/src/lib/functions/connect/connect.d.ts +15 -0
  56. package/src/lib/{actions/connectAction/createConnectAction.js → functions/connect/connect.js} +32 -12
  57. package/src/lib/functions/connect/index.d.ts +1 -0
  58. package/src/lib/functions/createPopupMessageClient/createPopupMessageClient.d.ts +6 -6
  59. package/src/lib/functions/createPopupOpener/createPopupOpener.cjs +5 -6
  60. package/src/lib/functions/createPopupOpener/createPopupOpener.d.ts +4 -5
  61. package/src/lib/functions/createPopupOpener/createPopupOpener.js +5 -6
  62. package/src/lib/functions/createPopupOpener/index.d.ts +1 -1
  63. package/src/lib/functions/disconnect/disconnect.cjs +38 -0
  64. package/src/lib/functions/disconnect/disconnect.d.ts +14 -0
  65. package/src/lib/functions/disconnect/disconnect.js +34 -0
  66. package/src/lib/functions/disconnect/index.d.ts +1 -0
  67. package/src/lib/functions/getActiveConnection/getActiveConnection.cjs +35 -0
  68. package/src/lib/functions/getActiveConnection/getActiveConnection.d.ts +6 -0
  69. package/src/lib/functions/getActiveConnection/getActiveConnection.js +31 -0
  70. package/src/lib/functions/getActiveConnection/index.d.ts +1 -0
  71. package/src/lib/functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.cjs +38 -0
  72. package/src/lib/functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.d.ts +16 -0
  73. package/src/lib/functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.js +34 -0
  74. package/src/lib/functions/getCurrentEthereumNetworkId/index.d.ts +1 -0
  75. package/src/lib/functions/getCurrentSolanaNetwork/getCurrentSolanaNetwork.cjs +38 -0
  76. package/src/lib/functions/getCurrentSolanaNetwork/getCurrentSolanaNetwork.d.ts +16 -0
  77. package/src/lib/functions/getCurrentSolanaNetwork/getCurrentSolanaNetwork.js +34 -0
  78. package/src/lib/functions/getCurrentSolanaNetwork/index.d.ts +1 -0
  79. package/src/lib/functions/getEthereumWallets/getEthereumWallets.cjs +17 -0
  80. package/src/lib/functions/getEthereumWallets/getEthereumWallets.d.ts +10 -0
  81. package/src/lib/functions/getEthereumWallets/getEthereumWallets.js +13 -0
  82. package/src/lib/functions/getEthereumWallets/index.d.ts +1 -0
  83. package/src/lib/functions/getSolanaWallets/getSolanaWallets.cjs +17 -0
  84. package/src/lib/functions/getSolanaWallets/getSolanaWallets.d.ts +10 -0
  85. package/src/lib/functions/getSolanaWallets/getSolanaWallets.js +13 -0
  86. package/src/lib/functions/getSolanaWallets/index.d.ts +1 -0
  87. package/src/lib/functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.cjs +31 -0
  88. package/src/lib/functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.d.ts +9 -0
  89. package/src/lib/functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.js +27 -0
  90. package/src/lib/functions/getSupportedEthereumNetworks/index.d.ts +1 -0
  91. package/src/lib/functions/getWalletNetwork/getWalletNetwork.cjs +37 -0
  92. package/src/lib/functions/getWalletNetwork/getWalletNetwork.d.ts +9 -0
  93. package/src/lib/functions/getWalletNetwork/getWalletNetwork.js +33 -0
  94. package/src/lib/functions/getWalletNetwork/index.d.ts +1 -0
  95. package/src/lib/functions/isEthereumNetworkSupported/index.d.ts +1 -0
  96. package/src/lib/functions/isEthereumNetworkSupported/isEthereumNetworkSupported.cjs +8 -0
  97. package/src/lib/functions/isEthereumNetworkSupported/isEthereumNetworkSupported.d.ts +4 -0
  98. package/src/lib/functions/isEthereumNetworkSupported/isEthereumNetworkSupported.js +4 -0
  99. package/src/lib/functions/isEthereumWallet/index.d.ts +1 -0
  100. package/src/lib/functions/isEthereumWallet/isEthereumWallet.cjs +15 -0
  101. package/src/lib/functions/isEthereumWallet/isEthereumWallet.d.ts +9 -0
  102. package/src/lib/functions/isEthereumWallet/isEthereumWallet.js +11 -0
  103. package/src/lib/functions/isSolanaWallet/index.d.ts +1 -0
  104. package/src/lib/functions/isSolanaWallet/isSolanaWallet.cjs +15 -0
  105. package/src/lib/functions/isSolanaWallet/isSolanaWallet.d.ts +9 -0
  106. package/src/lib/functions/isSolanaWallet/isSolanaWallet.js +11 -0
  107. package/src/lib/functions/onEvent/index.d.ts +1 -0
  108. package/src/lib/functions/onEvent/onEvent.cjs +46 -0
  109. package/src/lib/functions/onEvent/onEvent.d.ts +23 -0
  110. package/src/lib/functions/onEvent/onEvent.js +42 -0
  111. package/src/lib/functions/setInitialConnectionState/index.d.ts +1 -0
  112. package/src/lib/functions/setInitialConnectionState/setInitialConnectionState.cjs +31 -0
  113. package/src/lib/functions/setInitialConnectionState/setInitialConnectionState.d.ts +7 -0
  114. package/src/lib/functions/setInitialConnectionState/setInitialConnectionState.js +27 -0
  115. package/src/lib/functions/signEthereumMessage/index.d.ts +1 -0
  116. package/src/lib/functions/signEthereumMessage/signEthereumMessage.cjs +40 -0
  117. package/src/lib/functions/signEthereumMessage/signEthereumMessage.d.ts +9 -0
  118. package/src/lib/functions/signEthereumMessage/signEthereumMessage.js +36 -0
  119. package/src/lib/functions/signMessage/index.d.ts +1 -0
  120. package/src/lib/functions/signMessage/signMessage.cjs +37 -0
  121. package/src/lib/functions/signMessage/signMessage.d.ts +24 -0
  122. package/src/lib/functions/signMessage/signMessage.js +33 -0
  123. package/src/lib/functions/signSolanaMessage/index.d.ts +1 -0
  124. package/src/lib/functions/signSolanaMessage/signSolanaMessage.cjs +31 -0
  125. package/src/lib/functions/signSolanaMessage/signSolanaMessage.d.ts +9 -0
  126. package/src/lib/functions/signSolanaMessage/signSolanaMessage.js +27 -0
  127. package/src/lib/functions/switchEthereumNetwork/index.d.ts +1 -0
  128. package/src/lib/functions/switchEthereumNetwork/switchEthereumNetwork.cjs +45 -0
  129. package/src/lib/functions/switchEthereumNetwork/switchEthereumNetwork.d.ts +12 -0
  130. package/src/lib/functions/switchEthereumNetwork/switchEthereumNetwork.js +41 -0
  131. package/src/lib/functions/switchNetwork/index.d.ts +1 -0
  132. package/src/lib/functions/switchNetwork/switchNetwork.cjs +33 -0
  133. package/src/lib/functions/switchNetwork/switchNetwork.d.ts +11 -0
  134. package/src/lib/functions/switchNetwork/switchNetwork.js +29 -0
  135. package/src/lib/solana/functions/convertBaseWalletToWalletAccount/convertBaseWalletToWalletAccount.d.ts +1 -1
  136. package/src/lib/solana/functions/createSolanaSignAndSendTransactionFeature/createSolanaSignAndSendTransactionFeature.cjs +10 -2
  137. package/src/lib/solana/functions/createSolanaSignAndSendTransactionFeature/createSolanaSignAndSendTransactionFeature.d.ts +1 -1
  138. package/src/lib/solana/functions/createSolanaSignAndSendTransactionFeature/createSolanaSignAndSendTransactionFeature.js +10 -2
  139. package/src/lib/solana/functions/createSolanaSignMessageFeature/createSolanaSignMessageFeature.cjs +10 -2
  140. package/src/lib/solana/functions/createSolanaSignMessageFeature/createSolanaSignMessageFeature.d.ts +1 -1
  141. package/src/lib/solana/functions/createSolanaSignMessageFeature/createSolanaSignMessageFeature.js +10 -2
  142. package/src/lib/solana/functions/createSolanaSignTransactionFeature/createSolanaSignTransactionFeature.cjs +10 -2
  143. package/src/lib/solana/functions/createSolanaSignTransactionFeature/createSolanaSignTransactionFeature.d.ts +1 -1
  144. package/src/lib/solana/functions/createSolanaSignTransactionFeature/createSolanaSignTransactionFeature.js +10 -2
  145. package/src/lib/solana/functions/createSolanaWallet/createSolanaWallet.cjs +2 -1
  146. package/src/lib/solana/functions/createSolanaWallet/createSolanaWallet.d.ts +1 -1
  147. package/src/lib/solana/functions/createSolanaWallet/createSolanaWallet.js +2 -1
  148. package/src/lib/solana/functions/createStandardConnectFeature/createStandardConnectFeature.cjs +5 -3
  149. package/src/lib/solana/functions/createStandardConnectFeature/createStandardConnectFeature.d.ts +1 -1
  150. package/src/lib/solana/functions/createStandardConnectFeature/createStandardConnectFeature.js +5 -3
  151. package/src/lib/solana/functions/createStandardDisconnectFeature/createStandardDisconnectFeature.cjs +2 -1
  152. package/src/lib/solana/functions/createStandardDisconnectFeature/createStandardDisconnectFeature.d.ts +1 -1
  153. package/src/lib/solana/functions/createStandardDisconnectFeature/createStandardDisconnectFeature.js +2 -1
  154. package/src/lib/solana/functions/createStandardEventsFeature/createStandardEventsFeature.cjs +5 -3
  155. package/src/lib/solana/functions/createStandardEventsFeature/createStandardEventsFeature.d.ts +1 -1
  156. package/src/lib/solana/functions/createStandardEventsFeature/createStandardEventsFeature.js +5 -3
  157. package/src/lib/solana/functions/getSolanaChains/getSolanaChains.cjs +5 -2
  158. package/src/lib/solana/functions/getSolanaChains/getSolanaChains.d.ts +1 -1
  159. package/src/lib/solana/functions/getSolanaChains/getSolanaChains.js +5 -2
  160. package/src/lib/actions/connectAction/createConnectAction.d.ts +0 -11
  161. package/src/lib/actions/connectAction/index.d.ts +0 -1
  162. package/src/lib/actions/disconnectAction/createDisconnectAction.cjs +0 -14
  163. package/src/lib/actions/disconnectAction/createDisconnectAction.d.ts +0 -7
  164. package/src/lib/actions/disconnectAction/createDisconnectAction.js +0 -10
  165. package/src/lib/actions/disconnectAction/index.d.ts +0 -1
  166. package/src/lib/createGlobalWalletClient.cjs +0 -69
  167. package/src/lib/createGlobalWalletClient.d.ts +0 -61
  168. package/src/lib/createGlobalWalletClient.js +0 -65
  169. package/src/lib/ethereum/functions/isNetworkSupported/index.d.ts +0 -1
  170. package/src/lib/ethereum/functions/isNetworkSupported/isNetworkSupported.cjs +0 -8
  171. package/src/lib/ethereum/functions/isNetworkSupported/isNetworkSupported.d.ts +0 -4
  172. package/src/lib/ethereum/functions/isNetworkSupported/isNetworkSupported.js +0 -4
  173. package/src/lib/functions/createClientEventEmitter/createClientEventEmitter.cjs +0 -10
  174. package/src/lib/functions/createClientEventEmitter/createClientEventEmitter.d.ts +0 -6
  175. package/src/lib/functions/createClientEventEmitter/createClientEventEmitter.js +0 -6
  176. package/src/lib/functions/createClientEventEmitter/index.d.ts +0 -1
  177. package/src/lib/functions/createEthereumModule/createEthereumModule.cjs +0 -24
  178. package/src/lib/functions/createEthereumModule/createEthereumModule.d.ts +0 -12
  179. package/src/lib/functions/createEthereumModule/createEthereumModule.js +0 -20
  180. package/src/lib/functions/createEthereumModule/index.d.ts +0 -1
  181. package/src/lib/functions/createSolanaModule/createSolanaModule.cjs +0 -17
  182. package/src/lib/functions/createSolanaModule/createSolanaModule.d.ts +0 -9
  183. package/src/lib/functions/createSolanaModule/createSolanaModule.js +0 -13
  184. package/src/lib/functions/createSolanaModule/index.d.ts +0 -1
  185. package/src/lib/store/createClientStore.cjs +0 -102
  186. package/src/lib/store/createClientStore.d.ts +0 -75
  187. package/src/lib/store/createClientStore.js +0 -98
  188. package/src/lib/store/index.d.ts +0 -1
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ import 'eventemitter3';
3
+ import '@dynamic-labs/logger';
4
+ import '@dynamic-labs/store';
5
+ import '../../../../_virtual/_tslib.js';
6
+ import '@dynamic-labs/utils';
7
+ import '../../constants/logger.js';
8
+ import '../../errors/DisconnectError.js';
9
+ import { getClient } from '../../client/getClient/getClient.js';
10
+ import { isEthereumWallet } from '../isEthereumWallet/isEthereumWallet.js';
11
+ import { isSolanaWallet } from '../isSolanaWallet/isSolanaWallet.js';
12
+ import { getCurrentEthereumNetworkId } from '../getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.js';
13
+ import { getCurrentSolanaNetwork } from '../getCurrentSolanaNetwork/getCurrentSolanaNetwork.js';
14
+
15
+ /**
16
+ * Gets the current network of a wallet.
17
+ *
18
+ * @param wallet - The wallet to get the network of.
19
+ *
20
+ * @returns The current network of the wallet.
21
+ */
22
+ const getWalletNetwork = (wallet) => {
23
+ const client = getClient(wallet);
24
+ if (isEthereumWallet(wallet)) {
25
+ return getCurrentEthereumNetworkId(client);
26
+ }
27
+ if (isSolanaWallet(wallet)) {
28
+ return getCurrentSolanaNetwork(client);
29
+ }
30
+ throw new Error('Unsupported wallet type');
31
+ };
32
+
33
+ export { getWalletNetwork };
@@ -0,0 +1 @@
1
+ export { getWalletNetwork } from './getWalletNetwork';
@@ -0,0 +1 @@
1
+ export { isEthereumNetworkSupported } from './isEthereumNetworkSupported';
@@ -0,0 +1,8 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ const isEthereumNetworkSupported = (chainId, supportedNetworks) => supportedNetworks.some((network) => network.chainId === chainId);
7
+
8
+ exports.isEthereumNetworkSupported = isEthereumNetworkSupported;
@@ -0,0 +1,4 @@
1
+ export declare const isEthereumNetworkSupported: (chainId: number, supportedNetworks: {
2
+ chainId: number;
3
+ rpcUrl?: string;
4
+ }[]) => boolean;
@@ -0,0 +1,4 @@
1
+ 'use client'
2
+ const isEthereumNetworkSupported = (chainId, supportedNetworks) => supportedNetworks.some((network) => network.chainId === chainId);
3
+
4
+ export { isEthereumNetworkSupported };
@@ -0,0 +1 @@
1
+ export { isEthereumWallet } from './isEthereumWallet';
@@ -0,0 +1,15 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ /**
7
+ * Checks if the wallet is an Ethereum wallet.
8
+ *
9
+ * @param wallet - The wallet to check.
10
+ *
11
+ * @returns `true` if the wallet is an Ethereum wallet, `false` otherwise.
12
+ */
13
+ const isEthereumWallet = (wallet) => wallet.chain === 'EVM';
14
+
15
+ exports.isEthereumWallet = isEthereumWallet;
@@ -0,0 +1,9 @@
1
+ import { BaseWallet } from '@dynamic-labs/types';
2
+ /**
3
+ * Checks if the wallet is an Ethereum wallet.
4
+ *
5
+ * @param wallet - The wallet to check.
6
+ *
7
+ * @returns `true` if the wallet is an Ethereum wallet, `false` otherwise.
8
+ */
9
+ export declare const isEthereumWallet: (wallet: BaseWallet) => boolean;
@@ -0,0 +1,11 @@
1
+ 'use client'
2
+ /**
3
+ * Checks if the wallet is an Ethereum wallet.
4
+ *
5
+ * @param wallet - The wallet to check.
6
+ *
7
+ * @returns `true` if the wallet is an Ethereum wallet, `false` otherwise.
8
+ */
9
+ const isEthereumWallet = (wallet) => wallet.chain === 'EVM';
10
+
11
+ export { isEthereumWallet };
@@ -0,0 +1 @@
1
+ export { isSolanaWallet } from './isSolanaWallet';
@@ -0,0 +1,15 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ /**
7
+ * Checks if the wallet is a Solana wallet.
8
+ *
9
+ * @param wallet - The wallet to check.
10
+ *
11
+ * @returns `true` if the wallet is a Solana wallet, `false` otherwise.
12
+ */
13
+ const isSolanaWallet = (wallet) => wallet.chain === 'SOL';
14
+
15
+ exports.isSolanaWallet = isSolanaWallet;
@@ -0,0 +1,9 @@
1
+ import { BaseWallet } from '@dynamic-labs/types';
2
+ /**
3
+ * Checks if the wallet is a Solana wallet.
4
+ *
5
+ * @param wallet - The wallet to check.
6
+ *
7
+ * @returns `true` if the wallet is a Solana wallet, `false` otherwise.
8
+ */
9
+ export declare const isSolanaWallet: (wallet: BaseWallet) => boolean;
@@ -0,0 +1,11 @@
1
+ 'use client'
2
+ /**
3
+ * Checks if the wallet is a Solana wallet.
4
+ *
5
+ * @param wallet - The wallet to check.
6
+ *
7
+ * @returns `true` if the wallet is a Solana wallet, `false` otherwise.
8
+ */
9
+ const isSolanaWallet = (wallet) => wallet.chain === 'SOL';
10
+
11
+ export { isSolanaWallet };
@@ -0,0 +1 @@
1
+ export { onEvent } from './onEvent';
@@ -0,0 +1,46 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ require('eventemitter3');
7
+ require('@dynamic-labs/logger');
8
+ require('@dynamic-labs/store');
9
+ require('../../../../_virtual/_tslib.cjs');
10
+ require('@dynamic-labs/utils');
11
+ require('../../constants/logger.cjs');
12
+ require('../../errors/DisconnectError.cjs');
13
+ var getCore = require('../../client/getCore/getCore.cjs');
14
+
15
+ /**
16
+ * Adds an event listener to the global wallet client.
17
+ *
18
+ * @param client - The global wallet client.
19
+ * @param eventName - The event name.
20
+ * @param callback - The callback function.
21
+ *
22
+ * @returns A function to unsubscribe from the event.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * import { Wallet } from 'wallet';
27
+ *
28
+ * const unsubscribe = onEvent(Wallet, 'connect', () => {
29
+ * console.log('connected');
30
+ * });
31
+ *
32
+ * // Unsubscribe from the event
33
+ * unsubscribe();
34
+ * ```
35
+ */
36
+ const onEvent = (client, eventName, callback) => {
37
+ const core = getCore.getCore(client);
38
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
+ core.eventEmitter.on(eventName, callback);
40
+ return () => {
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ core.eventEmitter.off(eventName, callback);
43
+ };
44
+ };
45
+
46
+ exports.onEvent = onEvent;
@@ -0,0 +1,23 @@
1
+ import { ClientEventEmitterEvents, GlobalWalletClient } from '../../client';
2
+ /**
3
+ * Adds an event listener to the global wallet client.
4
+ *
5
+ * @param client - The global wallet client.
6
+ * @param eventName - The event name.
7
+ * @param callback - The callback function.
8
+ *
9
+ * @returns A function to unsubscribe from the event.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { Wallet } from 'wallet';
14
+ *
15
+ * const unsubscribe = onEvent(Wallet, 'connect', () => {
16
+ * console.log('connected');
17
+ * });
18
+ *
19
+ * // Unsubscribe from the event
20
+ * unsubscribe();
21
+ * ```
22
+ */
23
+ export declare const onEvent: <T extends keyof ClientEventEmitterEvents>(client: GlobalWalletClient, eventName: T, callback: ClientEventEmitterEvents[T]) => () => void;
@@ -0,0 +1,42 @@
1
+ 'use client'
2
+ import 'eventemitter3';
3
+ import '@dynamic-labs/logger';
4
+ import '@dynamic-labs/store';
5
+ import '../../../../_virtual/_tslib.js';
6
+ import '@dynamic-labs/utils';
7
+ import '../../constants/logger.js';
8
+ import '../../errors/DisconnectError.js';
9
+ import { getCore } from '../../client/getCore/getCore.js';
10
+
11
+ /**
12
+ * Adds an event listener to the global wallet client.
13
+ *
14
+ * @param client - The global wallet client.
15
+ * @param eventName - The event name.
16
+ * @param callback - The callback function.
17
+ *
18
+ * @returns A function to unsubscribe from the event.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { Wallet } from 'wallet';
23
+ *
24
+ * const unsubscribe = onEvent(Wallet, 'connect', () => {
25
+ * console.log('connected');
26
+ * });
27
+ *
28
+ * // Unsubscribe from the event
29
+ * unsubscribe();
30
+ * ```
31
+ */
32
+ const onEvent = (client, eventName, callback) => {
33
+ const core = getCore(client);
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ core.eventEmitter.on(eventName, callback);
36
+ return () => {
37
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
+ core.eventEmitter.off(eventName, callback);
39
+ };
40
+ };
41
+
42
+ export { onEvent };
@@ -0,0 +1 @@
1
+ export { setInitialConnectionState } from './setInitialConnectionState';
@@ -0,0 +1,31 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ require('eventemitter3');
7
+ require('@dynamic-labs/logger');
8
+ require('@dynamic-labs/store');
9
+ require('../../../../_virtual/_tslib.cjs');
10
+ require('@dynamic-labs/utils');
11
+ require('../../constants/logger.cjs');
12
+ require('../../errors/DisconnectError.cjs');
13
+ var getCore = require('../../client/getCore/getCore.cjs');
14
+
15
+ /**
16
+ * Updates current connection, wallets
17
+ * Used when the popup confirm a connection
18
+ * @param {GlobalWalletConnection | null} connection - The connection to store, or null to clear it
19
+ */
20
+ const setInitialConnectionState = (client, { connection, ethereum, solana, wallets, }) => {
21
+ const core = getCore.getCore(client);
22
+ core.logger.logVerboseTroubleshootingMessage('setInitialConnectionState', {
23
+ connection,
24
+ ethereum,
25
+ solana,
26
+ wallets,
27
+ });
28
+ core.store.setState({ connection, ethereum, solana, wallets });
29
+ };
30
+
31
+ exports.setInitialConnectionState = setInitialConnectionState;
@@ -0,0 +1,7 @@
1
+ import { ClientStoreState, GlobalWalletClient } from '../../client';
2
+ /**
3
+ * Updates current connection, wallets
4
+ * Used when the popup confirm a connection
5
+ * @param {GlobalWalletConnection | null} connection - The connection to store, or null to clear it
6
+ */
7
+ export declare const setInitialConnectionState: (client: GlobalWalletClient, { connection, ethereum, solana, wallets, }: Pick<ClientStoreState, 'connection' | 'wallets' | 'ethereum' | 'solana'>) => void;
@@ -0,0 +1,27 @@
1
+ 'use client'
2
+ import 'eventemitter3';
3
+ import '@dynamic-labs/logger';
4
+ import '@dynamic-labs/store';
5
+ import '../../../../_virtual/_tslib.js';
6
+ import '@dynamic-labs/utils';
7
+ import '../../constants/logger.js';
8
+ import '../../errors/DisconnectError.js';
9
+ import { getCore } from '../../client/getCore/getCore.js';
10
+
11
+ /**
12
+ * Updates current connection, wallets
13
+ * Used when the popup confirm a connection
14
+ * @param {GlobalWalletConnection | null} connection - The connection to store, or null to clear it
15
+ */
16
+ const setInitialConnectionState = (client, { connection, ethereum, solana, wallets, }) => {
17
+ const core = getCore(client);
18
+ core.logger.logVerboseTroubleshootingMessage('setInitialConnectionState', {
19
+ connection,
20
+ ethereum,
21
+ solana,
22
+ wallets,
23
+ });
24
+ core.store.setState({ connection, ethereum, solana, wallets });
25
+ };
26
+
27
+ export { setInitialConnectionState };
@@ -0,0 +1 @@
1
+ export { signEthereumMessage } from './signEthereumMessage';
@@ -0,0 +1,40 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var isEthereumWallet = require('../isEthereumWallet/isEthereumWallet.cjs');
8
+ require('eventemitter3');
9
+ require('@dynamic-labs/logger');
10
+ require('@dynamic-labs/store');
11
+ require('@dynamic-labs/utils');
12
+ require('../../constants/logger.cjs');
13
+ require('../../errors/DisconnectError.cjs');
14
+ var getActiveConnection = require('../getActiveConnection/getActiveConnection.cjs');
15
+ var getCore = require('../../client/getCore/getCore.cjs');
16
+ var getClient = require('../../client/getClient/getClient.cjs');
17
+ var getCurrentEthereumNetworkId = require('../getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.cjs');
18
+
19
+ const signEthereumMessage = (wallet_1, _a) => _tslib.__awaiter(void 0, [wallet_1, _a], void 0, function* (wallet, { message }) {
20
+ if (!isEthereumWallet.isEthereumWallet(wallet)) {
21
+ throw new Error('Wallet is not an Ethereum wallet');
22
+ }
23
+ const client = getClient.getClient(wallet);
24
+ const chainId = getCurrentEthereumNetworkId.getCurrentEthereumNetworkId(client);
25
+ if (!chainId) {
26
+ throw new Error('No chain id found');
27
+ }
28
+ const { data } = yield getCore.getCore(client).request({
29
+ connection: getActiveConnection.getActiveConnection(client),
30
+ params: {
31
+ chainId,
32
+ method: 'personal_sign',
33
+ params: [message, wallet.address],
34
+ },
35
+ pathname: 'eth-request',
36
+ });
37
+ return { signature: data, signedMessage: message };
38
+ });
39
+
40
+ exports.signEthereumMessage = signEthereumMessage;
@@ -0,0 +1,9 @@
1
+ import { BaseWallet } from '@dynamic-labs/types';
2
+ type SignEthereumMessageParams = {
3
+ message: string;
4
+ };
5
+ export declare const signEthereumMessage: (wallet: BaseWallet, { message }: SignEthereumMessageParams) => Promise<{
6
+ signature: string;
7
+ signedMessage: string;
8
+ }>;
9
+ export {};
@@ -0,0 +1,36 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { isEthereumWallet } from '../isEthereumWallet/isEthereumWallet.js';
4
+ import 'eventemitter3';
5
+ import '@dynamic-labs/logger';
6
+ import '@dynamic-labs/store';
7
+ import '@dynamic-labs/utils';
8
+ import '../../constants/logger.js';
9
+ import '../../errors/DisconnectError.js';
10
+ import { getActiveConnection } from '../getActiveConnection/getActiveConnection.js';
11
+ import { getCore } from '../../client/getCore/getCore.js';
12
+ import { getClient } from '../../client/getClient/getClient.js';
13
+ import { getCurrentEthereumNetworkId } from '../getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.js';
14
+
15
+ const signEthereumMessage = (wallet_1, _a) => __awaiter(void 0, [wallet_1, _a], void 0, function* (wallet, { message }) {
16
+ if (!isEthereumWallet(wallet)) {
17
+ throw new Error('Wallet is not an Ethereum wallet');
18
+ }
19
+ const client = getClient(wallet);
20
+ const chainId = getCurrentEthereumNetworkId(client);
21
+ if (!chainId) {
22
+ throw new Error('No chain id found');
23
+ }
24
+ const { data } = yield getCore(client).request({
25
+ connection: getActiveConnection(client),
26
+ params: {
27
+ chainId,
28
+ method: 'personal_sign',
29
+ params: [message, wallet.address],
30
+ },
31
+ pathname: 'eth-request',
32
+ });
33
+ return { signature: data, signedMessage: message };
34
+ });
35
+
36
+ export { signEthereumMessage };
@@ -0,0 +1 @@
1
+ export { signMessage } from './signMessage';
@@ -0,0 +1,37 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var isEthereumWallet = require('../isEthereumWallet/isEthereumWallet.cjs');
8
+ var isSolanaWallet = require('../isSolanaWallet/isSolanaWallet.cjs');
9
+ var signEthereumMessage = require('../signEthereumMessage/signEthereumMessage.cjs');
10
+ var signSolanaMessage = require('../signSolanaMessage/signSolanaMessage.cjs');
11
+
12
+ /**
13
+ * Signs a message with the wallet.
14
+ *
15
+ * @param wallet - The wallet to sign the message with.
16
+ * @param message - The message to sign.
17
+ *
18
+ * @returns The signature and signed message.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * import { Wallet } from 'wallet';
23
+ *
24
+ * const { signature, signedMessage } = await signMessage(Wallet, { message: 'Hello, world!' });
25
+ * ```
26
+ */
27
+ const signMessage = (wallet_1, _a) => _tslib.__awaiter(void 0, [wallet_1, _a], void 0, function* (wallet, { message }) {
28
+ if (isEthereumWallet.isEthereumWallet(wallet)) {
29
+ return signEthereumMessage.signEthereumMessage(wallet, { message });
30
+ }
31
+ if (isSolanaWallet.isSolanaWallet(wallet)) {
32
+ return signSolanaMessage.signSolanaMessage(wallet, { message });
33
+ }
34
+ throw new Error('Unsupported wallet type');
35
+ });
36
+
37
+ exports.signMessage = signMessage;
@@ -0,0 +1,24 @@
1
+ import { BaseWallet } from '@dynamic-labs/types';
2
+ type SignMessageParams = {
3
+ message: string;
4
+ };
5
+ /**
6
+ * Signs a message with the wallet.
7
+ *
8
+ * @param wallet - The wallet to sign the message with.
9
+ * @param message - The message to sign.
10
+ *
11
+ * @returns The signature and signed message.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import { Wallet } from 'wallet';
16
+ *
17
+ * const { signature, signedMessage } = await signMessage(Wallet, { message: 'Hello, world!' });
18
+ * ```
19
+ */
20
+ export declare const signMessage: (wallet: BaseWallet, { message }: SignMessageParams) => Promise<{
21
+ signature: string;
22
+ signedMessage: string;
23
+ }>;
24
+ export {};
@@ -0,0 +1,33 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { isEthereumWallet } from '../isEthereumWallet/isEthereumWallet.js';
4
+ import { isSolanaWallet } from '../isSolanaWallet/isSolanaWallet.js';
5
+ import { signEthereumMessage } from '../signEthereumMessage/signEthereumMessage.js';
6
+ import { signSolanaMessage } from '../signSolanaMessage/signSolanaMessage.js';
7
+
8
+ /**
9
+ * Signs a message with the wallet.
10
+ *
11
+ * @param wallet - The wallet to sign the message with.
12
+ * @param message - The message to sign.
13
+ *
14
+ * @returns The signature and signed message.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * import { Wallet } from 'wallet';
19
+ *
20
+ * const { signature, signedMessage } = await signMessage(Wallet, { message: 'Hello, world!' });
21
+ * ```
22
+ */
23
+ const signMessage = (wallet_1, _a) => __awaiter(void 0, [wallet_1, _a], void 0, function* (wallet, { message }) {
24
+ if (isEthereumWallet(wallet)) {
25
+ return signEthereumMessage(wallet, { message });
26
+ }
27
+ if (isSolanaWallet(wallet)) {
28
+ return signSolanaMessage(wallet, { message });
29
+ }
30
+ throw new Error('Unsupported wallet type');
31
+ });
32
+
33
+ export { signMessage };
@@ -0,0 +1 @@
1
+ export { signSolanaMessage } from './signSolanaMessage';
@@ -0,0 +1,31 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var utils = require('@dynamic-labs/utils');
8
+ require('eventemitter3');
9
+ require('@dynamic-labs/logger');
10
+ require('@dynamic-labs/store');
11
+ require('../../constants/logger.cjs');
12
+ require('../../errors/DisconnectError.cjs');
13
+ var getActiveConnection = require('../getActiveConnection/getActiveConnection.cjs');
14
+ var getCore = require('../../client/getCore/getCore.cjs');
15
+ var getClient = require('../../client/getClient/getClient.cjs');
16
+
17
+ const signSolanaMessage = (wallet_1, _a) => _tslib.__awaiter(void 0, [wallet_1, _a], void 0, function* (wallet, { message }) {
18
+ const client = getClient.getClient(wallet);
19
+ const params = {
20
+ address: wallet.address,
21
+ message: utils.uint8ArrayToBase64(new TextEncoder().encode(message)),
22
+ };
23
+ const { signature, signedMessage } = yield getCore.getCore(client).request({
24
+ connection: getActiveConnection.getActiveConnection(client),
25
+ params,
26
+ pathname: 'solana_signMessage',
27
+ });
28
+ return { signature, signedMessage };
29
+ });
30
+
31
+ exports.signSolanaMessage = signSolanaMessage;
@@ -0,0 +1,9 @@
1
+ import { BaseWallet } from '@dynamic-labs/types';
2
+ type SignSolanaMessageParams = {
3
+ message: string;
4
+ };
5
+ export declare const signSolanaMessage: (wallet: BaseWallet, { message }: SignSolanaMessageParams) => Promise<{
6
+ signature: string;
7
+ signedMessage: string;
8
+ }>;
9
+ export {};
@@ -0,0 +1,27 @@
1
+ 'use client'
2
+ import { __awaiter } from '../../../../_virtual/_tslib.js';
3
+ import { uint8ArrayToBase64 } from '@dynamic-labs/utils';
4
+ import 'eventemitter3';
5
+ import '@dynamic-labs/logger';
6
+ import '@dynamic-labs/store';
7
+ import '../../constants/logger.js';
8
+ import '../../errors/DisconnectError.js';
9
+ import { getActiveConnection } from '../getActiveConnection/getActiveConnection.js';
10
+ import { getCore } from '../../client/getCore/getCore.js';
11
+ import { getClient } from '../../client/getClient/getClient.js';
12
+
13
+ const signSolanaMessage = (wallet_1, _a) => __awaiter(void 0, [wallet_1, _a], void 0, function* (wallet, { message }) {
14
+ const client = getClient(wallet);
15
+ const params = {
16
+ address: wallet.address,
17
+ message: uint8ArrayToBase64(new TextEncoder().encode(message)),
18
+ };
19
+ const { signature, signedMessage } = yield getCore(client).request({
20
+ connection: getActiveConnection(client),
21
+ params,
22
+ pathname: 'solana_signMessage',
23
+ });
24
+ return { signature, signedMessage };
25
+ });
26
+
27
+ export { signSolanaMessage };
@@ -0,0 +1 @@
1
+ export { switchEthereumNetwork } from './switchEthereumNetwork';
@@ -0,0 +1,45 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ require('eventemitter3');
7
+ require('@dynamic-labs/logger');
8
+ require('@dynamic-labs/store');
9
+ require('../../../../_virtual/_tslib.cjs');
10
+ require('@dynamic-labs/utils');
11
+ require('../../constants/logger.cjs');
12
+ require('../../errors/DisconnectError.cjs');
13
+ var getActiveConnection = require('../getActiveConnection/getActiveConnection.cjs');
14
+ var getCore = require('../../client/getCore/getCore.cjs');
15
+ var ClientDisconnectedError = require('../../errors/ClientDisconnectedError.cjs');
16
+ var NetworkNotSupportedError = require('../../errors/NetworkNotSupportedError.cjs');
17
+ var isEthereumNetworkSupported = require('../isEthereumNetworkSupported/isEthereumNetworkSupported.cjs');
18
+ var getSupportedEthereumNetworks = require('../getSupportedEthereumNetworks/getSupportedEthereumNetworks.cjs');
19
+
20
+ /**
21
+ * Switches the Ethereum network of the global wallet client.
22
+ *
23
+ * @param client - The global wallet client.
24
+ * @param networkId - The network ID to switch to.
25
+ */
26
+ const switchEthereumNetwork = (client, { networkId }) => {
27
+ const core = getCore.getCore(client);
28
+ getActiveConnection.getActiveConnection(client);
29
+ const { ethereum } = core.store.getState();
30
+ if (!ethereum) {
31
+ throw new ClientDisconnectedError.ClientDisconnectedError();
32
+ }
33
+ if (!isEthereumNetworkSupported.isEthereumNetworkSupported(networkId, getSupportedEthereumNetworks.getSupportedEthereumNetworks(client))) {
34
+ throw new NetworkNotSupportedError.NetworkNotSupportedError(networkId, getSupportedEthereumNetworks.getSupportedEthereumNetworks(client).map(({ chainId }) => chainId));
35
+ }
36
+ core.store.setState({
37
+ ethereum: Object.assign(Object.assign({}, ethereum), { currentNetworkId: networkId }),
38
+ });
39
+ core.logger.logVerboseTroubleshootingMessage('switchEthereumNetwork', {
40
+ from: Object.assign({}, ethereum),
41
+ to: core.store.getState().ethereum,
42
+ });
43
+ };
44
+
45
+ exports.switchEthereumNetwork = switchEthereumNetwork;