@dynamic-labs/global-wallet-client 4.14.0 → 4.15.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 +22 -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,18 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ class NetworkNotSupportedError extends Error {
7
+ constructor(network, supportedNetworks) {
8
+ const supportedNetworksString = supportedNetworks
9
+ .map((n) => `- ${n}`)
10
+ .join('\n');
11
+ super(`Network not supported ${network}
12
+
13
+ The following networks are supported:
14
+ ${supportedNetworksString}`);
15
+ }
16
+ }
17
+
18
+ exports.NetworkNotSupportedError = NetworkNotSupportedError;
@@ -0,0 +1,3 @@
1
+ export declare class NetworkNotSupportedError extends Error {
2
+ constructor(network: number, supportedNetworks: number[]);
3
+ }
@@ -0,0 +1,14 @@
1
+ 'use client'
2
+ class NetworkNotSupportedError extends Error {
3
+ constructor(network, supportedNetworks) {
4
+ const supportedNetworksString = supportedNetworks
5
+ .map((n) => `- ${n}`)
6
+ .join('\n');
7
+ super(`Network not supported ${network}
8
+
9
+ The following networks are supported:
10
+ ${supportedNetworksString}`);
11
+ }
12
+ }
13
+
14
+ export { NetworkNotSupportedError };
@@ -6,22 +6,35 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var _tslib = require('../../../../../_virtual/_tslib.cjs');
7
7
  var viem = require('viem');
8
8
  var eventemitter3 = require('eventemitter3');
9
- var isNetworkSupported = require('../isNetworkSupported/isNetworkSupported.cjs');
10
- var PopupClosedError = require('../../../errors/PopupClosedError.cjs');
11
- var DisconnectError = require('../../../errors/DisconnectError.cjs');
9
+ require('@dynamic-labs/logger');
10
+ require('@dynamic-labs/store');
11
+ require('@dynamic-labs/utils');
12
12
  var logger = require('../../../constants/logger.cjs');
13
+ var DisconnectError = require('../../../errors/DisconnectError.cjs');
14
+ var PopupClosedError = require('../../../errors/PopupClosedError.cjs');
15
+ var onEvent = require('../../../functions/onEvent/onEvent.cjs');
16
+ var disconnect = require('../../../functions/disconnect/disconnect.cjs');
17
+ var getCore = require('../../../client/getCore/getCore.cjs');
18
+ var isEthereumNetworkSupported = require('../../../functions/isEthereumNetworkSupported/isEthereumNetworkSupported.cjs');
19
+ var connect = require('../../../functions/connect/connect.cjs');
20
+ var isEthereumWallet = require('../../../functions/isEthereumWallet/isEthereumWallet.cjs');
21
+ var getCurrentEthereumNetworkId = require('../../../functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.cjs');
22
+ var getEthereumWallets = require('../../../functions/getEthereumWallets/getEthereumWallets.cjs');
23
+ var getSupportedEthereumNetworks = require('../../../functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.cjs');
24
+ var switchEthereumNetwork = require('../../../functions/switchEthereumNetwork/switchEthereumNetwork.cjs');
25
+ var getActiveConnection = require('../../../functions/getActiveConnection/getActiveConnection.cjs');
13
26
 
14
27
  const createEIP1193Provider = (client) => {
15
28
  const eventEmitter = new eventemitter3.EventEmitter();
16
- client.on('connect', () => {
17
- const currentNetwork = client.ethereum.currentNetworkId;
29
+ onEvent.onEvent(client, 'connect', () => {
30
+ const currentNetwork = getCurrentEthereumNetworkId.getCurrentEthereumNetworkId(client);
18
31
  if (!currentNetwork)
19
32
  return;
20
33
  eventEmitter.emit('connect', {
21
34
  chainId: viem.toHex(currentNetwork),
22
35
  });
23
36
  });
24
- client.on('disconnect', () => {
37
+ onEvent.onEvent(client, 'disconnect', () => {
25
38
  eventEmitter.emit('disconnect', new viem.ProviderDisconnectedError(new Error('User disconnected')));
26
39
  });
27
40
  return {
@@ -58,7 +71,7 @@ const createEIP1193Provider = (client) => {
58
71
  });
59
72
  return result;
60
73
  }
61
- const currentNetwork = client.ethereum.supportedNetworks.find((network) => network.chainId === client.ethereum.currentNetworkId);
74
+ const currentNetwork = getSupportedEthereumNetworks.getSupportedEthereumNetworks(client).find((network) => network.chainId === getCurrentEthereumNetworkId.getCurrentEthereumNetworkId(client));
62
75
  if (currentNetwork === null || currentNetwork === void 0 ? void 0 : currentNetwork.rpcUrl) {
63
76
  const result = yield viem.http(currentNetwork === null || currentNetwork === void 0 ? void 0 : currentNetwork.rpcUrl)({}).request({
64
77
  method,
@@ -90,13 +103,11 @@ const createEIP1193Provider = (client) => {
90
103
  };
91
104
  // Utility functions
92
105
  const isConnected = (client) => {
93
- var _a, _b;
94
- const wallets = (_b = (_a = client === null || client === void 0 ? void 0 : client.ethereum) === null || _a === void 0 ? void 0 : _a.wallets) !== null && _b !== void 0 ? _b : [];
106
+ const wallets = getEthereumWallets.getEthereumWallets(client);
95
107
  return wallets.length > 0;
96
108
  };
97
109
  const getConnectedAddresses = (client) => {
98
- var _a, _b;
99
- const wallets = (_b = (_a = client === null || client === void 0 ? void 0 : client.ethereum) === null || _a === void 0 ? void 0 : _a.wallets) !== null && _b !== void 0 ? _b : [];
110
+ const wallets = getEthereumWallets.getEthereumWallets(client);
100
111
  return wallets.map((wallet) => wallet.address);
101
112
  };
102
113
  // Method handlers
@@ -105,46 +116,47 @@ const handleEthRequestAccounts = (client) => {
105
116
  if (isConnected(client)) {
106
117
  return getConnectedAddresses(client);
107
118
  }
108
- return client
109
- .connect({ chain: 'evm' })
110
- .then(({ address }) => [address])
119
+ return connect.connect(client)
120
+ .then((wallets) => wallets.filter(isEthereumWallet.isEthereumWallet).map((wallet) => wallet.address))
111
121
  .catch(mapErrorToStandard);
112
122
  };
113
123
  const handleWalletRevokePermissions = (client) => {
114
- client.disconnect();
124
+ disconnect.disconnect(client);
115
125
  return null;
116
126
  };
117
127
  const handleEthChainId = (client) => {
118
- if (client.ethereum.currentNetworkId) {
119
- return viem.toHex(client.ethereum.currentNetworkId);
128
+ const currentEthereumNetworkId = getCurrentEthereumNetworkId.getCurrentEthereumNetworkId(client);
129
+ if (currentEthereumNetworkId) {
130
+ return viem.toHex(currentEthereumNetworkId);
120
131
  }
121
132
  return null;
122
133
  };
123
134
  const handleWalletSwitchEthereumChain = (client, eventEmitter, params) => {
124
- var _a, _b;
125
135
  if (!Array.isArray(params) || params.length === 0 || !params[0].chainId) {
126
136
  throw new Error('Invalid parameters for wallet_switchEthereumChain');
127
137
  }
128
138
  const [{ chainId }] = params;
129
- const supportedNetworks = (_b = (_a = client === null || client === void 0 ? void 0 : client.ethereum) === null || _a === void 0 ? void 0 : _a.supportedNetworks) !== null && _b !== void 0 ? _b : [];
139
+ const supportedNetworks = getSupportedEthereumNetworks.getSupportedEthereumNetworks(client);
130
140
  if (supportedNetworks.length === 0) {
131
141
  throw new viem.SwitchChainError(new Error('No supported networks'));
132
142
  }
133
- if (!isNetworkSupported.isNetworkSupported(viem.fromHex(chainId, 'number'), supportedNetworks)) {
143
+ if (!isEthereumNetworkSupported.isEthereumNetworkSupported(viem.fromHex(chainId, 'number'), supportedNetworks)) {
134
144
  throw new viem.SwitchChainError(new Error('Chain not supported'));
135
145
  }
136
- client.ethereum.switchNetwork(viem.fromHex(chainId, 'number'));
146
+ switchEthereumNetwork.switchEthereumNetwork(client, { networkId: viem.fromHex(chainId, 'number') });
137
147
  eventEmitter.emit('chainChanged', chainId);
138
148
  return null;
139
149
  };
140
150
  const handleMethodInPopup = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ client, method, params, }) {
141
- if (!client.ethereum.currentNetworkId) {
151
+ const currentEthereumNetworkId = getCurrentEthereumNetworkId.getCurrentEthereumNetworkId(client);
152
+ if (!currentEthereumNetworkId) {
142
153
  throw new Error('No network id found');
143
154
  }
144
- const { data } = yield client
145
- .invoke({
155
+ const { data } = yield getCore.getCore(client)
156
+ .request({
157
+ connection: getActiveConnection.getActiveConnection(client),
146
158
  params: {
147
- chainId: client.ethereum.currentNetworkId,
159
+ chainId: currentEthereumNetworkId,
148
160
  method,
149
161
  params,
150
162
  },
@@ -1,3 +1,3 @@
1
1
  import { EIP1193Provider } from 'viem';
2
- import { GlobalWalletClient } from '../../../createGlobalWalletClient';
2
+ import { GlobalWalletClient } from '../../../client';
3
3
  export declare const createEIP1193Provider: (client: GlobalWalletClient) => EIP1193Provider;
@@ -2,22 +2,35 @@
2
2
  import { __awaiter } from '../../../../../_virtual/_tslib.js';
3
3
  import { toHex, ProviderDisconnectedError, http, UnsupportedProviderMethodError, SwitchChainError, fromHex, UserRejectedRequestError } from 'viem';
4
4
  import { EventEmitter } from 'eventemitter3';
5
- import { isNetworkSupported } from '../isNetworkSupported/isNetworkSupported.js';
6
- import { PopupClosedError } from '../../../errors/PopupClosedError.js';
7
- import { DisconnectError } from '../../../errors/DisconnectError.js';
5
+ import '@dynamic-labs/logger';
6
+ import '@dynamic-labs/store';
7
+ import '@dynamic-labs/utils';
8
8
  import { logger } from '../../../constants/logger.js';
9
+ import { DisconnectError } from '../../../errors/DisconnectError.js';
10
+ import { PopupClosedError } from '../../../errors/PopupClosedError.js';
11
+ import { onEvent } from '../../../functions/onEvent/onEvent.js';
12
+ import { disconnect } from '../../../functions/disconnect/disconnect.js';
13
+ import { getCore } from '../../../client/getCore/getCore.js';
14
+ import { isEthereumNetworkSupported } from '../../../functions/isEthereumNetworkSupported/isEthereumNetworkSupported.js';
15
+ import { connect } from '../../../functions/connect/connect.js';
16
+ import { isEthereumWallet } from '../../../functions/isEthereumWallet/isEthereumWallet.js';
17
+ import { getCurrentEthereumNetworkId } from '../../../functions/getCurrentEthereumNetworkId/getCurrentEthereumNetworkId.js';
18
+ import { getEthereumWallets } from '../../../functions/getEthereumWallets/getEthereumWallets.js';
19
+ import { getSupportedEthereumNetworks } from '../../../functions/getSupportedEthereumNetworks/getSupportedEthereumNetworks.js';
20
+ import { switchEthereumNetwork } from '../../../functions/switchEthereumNetwork/switchEthereumNetwork.js';
21
+ import { getActiveConnection } from '../../../functions/getActiveConnection/getActiveConnection.js';
9
22
 
10
23
  const createEIP1193Provider = (client) => {
11
24
  const eventEmitter = new EventEmitter();
12
- client.on('connect', () => {
13
- const currentNetwork = client.ethereum.currentNetworkId;
25
+ onEvent(client, 'connect', () => {
26
+ const currentNetwork = getCurrentEthereumNetworkId(client);
14
27
  if (!currentNetwork)
15
28
  return;
16
29
  eventEmitter.emit('connect', {
17
30
  chainId: toHex(currentNetwork),
18
31
  });
19
32
  });
20
- client.on('disconnect', () => {
33
+ onEvent(client, 'disconnect', () => {
21
34
  eventEmitter.emit('disconnect', new ProviderDisconnectedError(new Error('User disconnected')));
22
35
  });
23
36
  return {
@@ -54,7 +67,7 @@ const createEIP1193Provider = (client) => {
54
67
  });
55
68
  return result;
56
69
  }
57
- const currentNetwork = client.ethereum.supportedNetworks.find((network) => network.chainId === client.ethereum.currentNetworkId);
70
+ const currentNetwork = getSupportedEthereumNetworks(client).find((network) => network.chainId === getCurrentEthereumNetworkId(client));
58
71
  if (currentNetwork === null || currentNetwork === void 0 ? void 0 : currentNetwork.rpcUrl) {
59
72
  const result = yield http(currentNetwork === null || currentNetwork === void 0 ? void 0 : currentNetwork.rpcUrl)({}).request({
60
73
  method,
@@ -86,13 +99,11 @@ const createEIP1193Provider = (client) => {
86
99
  };
87
100
  // Utility functions
88
101
  const isConnected = (client) => {
89
- var _a, _b;
90
- const wallets = (_b = (_a = client === null || client === void 0 ? void 0 : client.ethereum) === null || _a === void 0 ? void 0 : _a.wallets) !== null && _b !== void 0 ? _b : [];
102
+ const wallets = getEthereumWallets(client);
91
103
  return wallets.length > 0;
92
104
  };
93
105
  const getConnectedAddresses = (client) => {
94
- var _a, _b;
95
- const wallets = (_b = (_a = client === null || client === void 0 ? void 0 : client.ethereum) === null || _a === void 0 ? void 0 : _a.wallets) !== null && _b !== void 0 ? _b : [];
106
+ const wallets = getEthereumWallets(client);
96
107
  return wallets.map((wallet) => wallet.address);
97
108
  };
98
109
  // Method handlers
@@ -101,46 +112,47 @@ const handleEthRequestAccounts = (client) => {
101
112
  if (isConnected(client)) {
102
113
  return getConnectedAddresses(client);
103
114
  }
104
- return client
105
- .connect({ chain: 'evm' })
106
- .then(({ address }) => [address])
115
+ return connect(client)
116
+ .then((wallets) => wallets.filter(isEthereumWallet).map((wallet) => wallet.address))
107
117
  .catch(mapErrorToStandard);
108
118
  };
109
119
  const handleWalletRevokePermissions = (client) => {
110
- client.disconnect();
120
+ disconnect(client);
111
121
  return null;
112
122
  };
113
123
  const handleEthChainId = (client) => {
114
- if (client.ethereum.currentNetworkId) {
115
- return toHex(client.ethereum.currentNetworkId);
124
+ const currentEthereumNetworkId = getCurrentEthereumNetworkId(client);
125
+ if (currentEthereumNetworkId) {
126
+ return toHex(currentEthereumNetworkId);
116
127
  }
117
128
  return null;
118
129
  };
119
130
  const handleWalletSwitchEthereumChain = (client, eventEmitter, params) => {
120
- var _a, _b;
121
131
  if (!Array.isArray(params) || params.length === 0 || !params[0].chainId) {
122
132
  throw new Error('Invalid parameters for wallet_switchEthereumChain');
123
133
  }
124
134
  const [{ chainId }] = params;
125
- const supportedNetworks = (_b = (_a = client === null || client === void 0 ? void 0 : client.ethereum) === null || _a === void 0 ? void 0 : _a.supportedNetworks) !== null && _b !== void 0 ? _b : [];
135
+ const supportedNetworks = getSupportedEthereumNetworks(client);
126
136
  if (supportedNetworks.length === 0) {
127
137
  throw new SwitchChainError(new Error('No supported networks'));
128
138
  }
129
- if (!isNetworkSupported(fromHex(chainId, 'number'), supportedNetworks)) {
139
+ if (!isEthereumNetworkSupported(fromHex(chainId, 'number'), supportedNetworks)) {
130
140
  throw new SwitchChainError(new Error('Chain not supported'));
131
141
  }
132
- client.ethereum.switchNetwork(fromHex(chainId, 'number'));
142
+ switchEthereumNetwork(client, { networkId: fromHex(chainId, 'number') });
133
143
  eventEmitter.emit('chainChanged', chainId);
134
144
  return null;
135
145
  };
136
146
  const handleMethodInPopup = (_a) => __awaiter(void 0, [_a], void 0, function* ({ client, method, params, }) {
137
- if (!client.ethereum.currentNetworkId) {
147
+ const currentEthereumNetworkId = getCurrentEthereumNetworkId(client);
148
+ if (!currentEthereumNetworkId) {
138
149
  throw new Error('No network id found');
139
150
  }
140
- const { data } = yield client
141
- .invoke({
151
+ const { data } = yield getCore(client)
152
+ .request({
153
+ connection: getActiveConnection(client),
142
154
  params: {
143
- chainId: client.ethereum.currentNetworkId,
155
+ chainId: currentEthereumNetworkId,
144
156
  method,
145
157
  params,
146
158
  },
@@ -0,0 +1,24 @@
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
+ * Resets the store to its initial state
17
+ */
18
+ const clearStore = (client) => {
19
+ const core = getCore.getCore(client);
20
+ core.logger.logVerboseTroubleshootingMessage('clear store');
21
+ core.store.setState(core.store.getInitialState());
22
+ };
23
+
24
+ exports.clearStore = clearStore;
@@ -0,0 +1,5 @@
1
+ import { GlobalWalletClient } from '../../client';
2
+ /**
3
+ * Resets the store to its initial state
4
+ */
5
+ export declare const clearStore: (client: GlobalWalletClient) => void;
@@ -0,0 +1,20 @@
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
+ * Resets the store to its initial state
13
+ */
14
+ const clearStore = (client) => {
15
+ const core = getCore(client);
16
+ core.logger.logVerboseTroubleshootingMessage('clear store');
17
+ core.store.setState(core.store.getInitialState());
18
+ };
19
+
20
+ export { clearStore };
@@ -0,0 +1 @@
1
+ export { clearStore } from './clearStore';
@@ -5,13 +5,37 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../_virtual/_tslib.cjs');
7
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 clearStore = require('../clearStore/clearStore.cjs');
14
+ var getActiveConnection = require('../getActiveConnection/getActiveConnection.cjs');
15
+ var assignClient = require('../../client/assignClient/assignClient.cjs');
16
+ var getCore = require('../../client/getCore/getCore.cjs');
17
+ var setInitialConnectionState = require('../setInitialConnectionState/setInitialConnectionState.cjs');
8
18
 
9
- const createConnectAction = ({ store, openPopup, onConnect }) => (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ chain }) {
10
- store.clear();
19
+ /**
20
+ * Connects the global wallet to the dapp.
21
+ *
22
+ * @param client - The global wallet client.
23
+ *
24
+ * @returns The connected wallets.
25
+ * @example
26
+ * ```ts
27
+ * import { Wallet } from 'wallet';
28
+ *
29
+ * const connectedWallets = await connect(wallet);
30
+ * ```
31
+ */
32
+ const connect = (client) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
33
+ const core = getCore.getCore(client);
34
+ clearStore.clearStore(client);
11
35
  const keyPair = yield utils.createKeyPair();
12
- const data = yield openPopup({
36
+ const data = yield core.request({
37
+ connection: getActiveConnection.getActiveConnection(client),
13
38
  params: {
14
- chain,
15
39
  receiver_public_key: yield utils.convertPublicKeyCryptoKeyToHex(keyPair.publicKey),
16
40
  },
17
41
  pathname: 'connect',
@@ -20,7 +44,7 @@ const createConnectAction = ({ store, openPopup, onConnect }) => (_a) => _tslib.
20
44
  const sharedSecret = yield utils.deriveSharedSecret(keyPair.privateKey, yield utils.convertPublicKeyHexToCryptoKey(providerPublicKey));
21
45
  const message = yield utils.decryptMessage(sharedSecret, encryptedMessage, iv);
22
46
  const { ethereum, solana, wallets } = JSON.parse(message);
23
- store.setInitialConnectionState({
47
+ setInitialConnectionState.setInitialConnectionState(client, {
24
48
  connection: {
25
49
  expiresAt,
26
50
  // TODO: use PlatformService
@@ -40,12 +64,8 @@ const createConnectAction = ({ store, openPopup, onConnect }) => (_a) => _tslib.
40
64
  : null,
41
65
  wallets,
42
66
  });
43
- onConnect === null || onConnect === void 0 ? void 0 : onConnect();
44
- const wallet = wallets.find((w) => w.chain === (chain === 'evm' ? 'EVM' : 'SOL'));
45
- if (!wallet) {
46
- throw new Error('Wallet not found');
47
- }
48
- return wallet;
67
+ core.eventEmitter.emit('connect');
68
+ return wallets.map((wallet) => assignClient.assignClient(wallet, client));
49
69
  });
50
70
 
51
- exports.createConnectAction = createConnectAction;
71
+ exports.connect = connect;
@@ -0,0 +1,15 @@
1
+ import { GlobalWalletClient } from '../../client';
2
+ /**
3
+ * Connects the global wallet to the dapp.
4
+ *
5
+ * @param client - The global wallet client.
6
+ *
7
+ * @returns The connected wallets.
8
+ * @example
9
+ * ```ts
10
+ * import { Wallet } from 'wallet';
11
+ *
12
+ * const connectedWallets = await connect(wallet);
13
+ * ```
14
+ */
15
+ export declare const connect: (client: GlobalWalletClient) => Promise<import("@dynamic-labs/types").BaseWallet[]>;
@@ -1,13 +1,37 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../../../_virtual/_tslib.js';
3
3
  import { createKeyPair, convertPublicKeyCryptoKeyToHex, deriveSharedSecret, convertPublicKeyHexToCryptoKey, decryptMessage } 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 { clearStore } from '../clearStore/clearStore.js';
10
+ import { getActiveConnection } from '../getActiveConnection/getActiveConnection.js';
11
+ import { assignClient } from '../../client/assignClient/assignClient.js';
12
+ import { getCore } from '../../client/getCore/getCore.js';
13
+ import { setInitialConnectionState } from '../setInitialConnectionState/setInitialConnectionState.js';
4
14
 
5
- const createConnectAction = ({ store, openPopup, onConnect }) => (_a) => __awaiter(void 0, [_a], void 0, function* ({ chain }) {
6
- store.clear();
15
+ /**
16
+ * Connects the global wallet to the dapp.
17
+ *
18
+ * @param client - The global wallet client.
19
+ *
20
+ * @returns The connected wallets.
21
+ * @example
22
+ * ```ts
23
+ * import { Wallet } from 'wallet';
24
+ *
25
+ * const connectedWallets = await connect(wallet);
26
+ * ```
27
+ */
28
+ const connect = (client) => __awaiter(void 0, void 0, void 0, function* () {
29
+ const core = getCore(client);
30
+ clearStore(client);
7
31
  const keyPair = yield createKeyPair();
8
- const data = yield openPopup({
32
+ const data = yield core.request({
33
+ connection: getActiveConnection(client),
9
34
  params: {
10
- chain,
11
35
  receiver_public_key: yield convertPublicKeyCryptoKeyToHex(keyPair.publicKey),
12
36
  },
13
37
  pathname: 'connect',
@@ -16,7 +40,7 @@ const createConnectAction = ({ store, openPopup, onConnect }) => (_a) => __await
16
40
  const sharedSecret = yield deriveSharedSecret(keyPair.privateKey, yield convertPublicKeyHexToCryptoKey(providerPublicKey));
17
41
  const message = yield decryptMessage(sharedSecret, encryptedMessage, iv);
18
42
  const { ethereum, solana, wallets } = JSON.parse(message);
19
- store.setInitialConnectionState({
43
+ setInitialConnectionState(client, {
20
44
  connection: {
21
45
  expiresAt,
22
46
  // TODO: use PlatformService
@@ -36,12 +60,8 @@ const createConnectAction = ({ store, openPopup, onConnect }) => (_a) => __await
36
60
  : null,
37
61
  wallets,
38
62
  });
39
- onConnect === null || onConnect === void 0 ? void 0 : onConnect();
40
- const wallet = wallets.find((w) => w.chain === (chain === 'evm' ? 'EVM' : 'SOL'));
41
- if (!wallet) {
42
- throw new Error('Wallet not found');
43
- }
44
- return wallet;
63
+ core.eventEmitter.emit('connect');
64
+ return wallets.map((wallet) => assignClient(wallet, client));
45
65
  });
46
66
 
47
- export { createConnectAction };
67
+ export { connect };
@@ -0,0 +1 @@
1
+ export { connect } from './connect';
@@ -1,3 +1,8 @@
1
+ export type PopupMessageClient<T extends Record<string, (...args: any[]) => void>> = {
2
+ listenForMessage: <TMessageName extends keyof T = keyof T>(messageName: TMessageName, callback: (...args: Parameters<T[TMessageName]>) => void) => VoidFunction;
3
+ waitForMessage: <TMessageName extends keyof T = keyof T>(messageName: TMessageName, timeout?: number) => Promise<Parameters<T[TMessageName]>>;
4
+ postMessage: <TMessageName extends keyof T = keyof T>(messageName: TMessageName, ...args: Parameters<T[TMessageName]>) => Promise<void>;
5
+ };
1
6
  export type RawMessage = {
2
7
  name: string;
3
8
  args: unknown[];
@@ -6,9 +11,4 @@ export type MessageEncoder = {
6
11
  encode: (message: RawMessage) => Promise<any>;
7
12
  decode: (data: any) => Promise<RawMessage>;
8
13
  };
9
- export declare const createPopupMessageClient: <T extends Record<string, (...args: any[]) => void>>(popupWindow: Window, targetOrigin: string, messageEncoder?: MessageEncoder) => {
10
- listenForMessage: <TMessageName extends keyof T = keyof T>(messageName: TMessageName, callback: (...args: Parameters<T[TMessageName]>) => void) => VoidFunction;
11
- postMessage: <TMessageName_1 extends keyof T = keyof T>(messageName: TMessageName_1, ...args: Parameters<T[TMessageName_1]>) => Promise<void>;
12
- waitForMessage: <TMessageName_2 extends keyof T = keyof T>(messageName: TMessageName_2, timeout?: number) => Promise<Parameters<T[TMessageName_2]>>;
13
- };
14
- export type PopupMessageClient<TMessage extends Record<string, (...args: any[]) => void>> = ReturnType<typeof createPopupMessageClient<TMessage>>;
14
+ export declare const createPopupMessageClient: <T extends Record<string, (...args: any[]) => void>>(popupWindow: Window, targetOrigin: string, messageEncoder?: MessageEncoder) => PopupMessageClient<T>;
@@ -12,7 +12,7 @@ var getCenteredPopupFeatures = require('../getCenteredPopupFeatures/getCenteredP
12
12
  var PopupClosedError = require('../../errors/PopupClosedError.cjs');
13
13
  var logger = require('../../constants/logger.cjs');
14
14
 
15
- const createPopupOpener = ({ environmentId, popupUrl, popupWidth = 420, popupHeight = 640, store, popupActionTimeout = 1000, // Wait page up to 1 second for new actions before closing
15
+ const createPopupOpener = ({ environmentId, popupUrl, popupWidth = 420, popupHeight = 640, popupActionTimeout = 1000, // Wait page up to 1 second for new actions before closing
16
16
  onError, }) => {
17
17
  let popup = null;
18
18
  let didOpenPopup = false;
@@ -24,7 +24,7 @@ onError, }) => {
24
24
  didOpenPopup = false;
25
25
  lastActionId = null;
26
26
  };
27
- return (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ params, pathname, }) {
27
+ return (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ params, pathname, connection, }) {
28
28
  logger.logger.logVerboseTroubleshootingMessage('new popup action', {
29
29
  params,
30
30
  pathname,
@@ -33,7 +33,6 @@ onError, }) => {
33
33
  const actionId = new Date().getTime();
34
34
  lastActionId = actionId;
35
35
  const popupFinalUrl = new URL(popupUrl);
36
- const activeConnection = store.getActiveConnection();
37
36
  const resultDeferredPromise = new utils.DeferredPromise();
38
37
  // Setup popup URL and data
39
38
  popupFinalUrl.hash = `/${pathname}`;
@@ -50,15 +49,15 @@ onError, }) => {
50
49
  }
51
50
  // Encrypt params if active connection is present
52
51
  if (params) {
53
- yield mergeAndEncryptParams.mergeAndEncryptParams(popupFinalUrl, params, activeConnection);
52
+ yield mergeAndEncryptParams.mergeAndEncryptParams(popupFinalUrl, params, connection);
54
53
  }
55
54
  if (popup === null) {
56
55
  throw new Error('Failed to open popup');
57
56
  }
58
57
  waitForPopupResponse.waitForPopupResponse({
59
58
  decode: (data) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
60
- if (activeConnection && utils.isEncryptedMessage(data)) {
61
- const decryptedData = yield utils.decryptMessage(activeConnection.sharedSecret, data.encryptedMessage, data.iv);
59
+ if (connection && utils.isEncryptedMessage(data)) {
60
+ const decryptedData = yield utils.decryptMessage(connection.sharedSecret, data.encryptedMessage, data.iv);
62
61
  return JSON.parse(decryptedData);
63
62
  }
64
63
  return data;
@@ -1,18 +1,17 @@
1
- import { GetPopupActionFuncArgs, GetPopupActionName, GetPopupActionResult, IPopupAction } from '@dynamic-labs/types';
2
- import { ClientStore } from '../../store/createClientStore';
1
+ import { GetPopupActionFuncArgs, GetPopupActionName, GetPopupActionResult, GlobalWalletConnection, IPopupAction } from '@dynamic-labs/types';
2
+ export type PopupOpener = <TPopupAction extends IPopupAction>(props: OpenPopupProps<TPopupAction>) => Promise<GetPopupActionResult<TPopupAction>>;
3
3
  type CreatePopupOpenerProps = {
4
4
  environmentId: string;
5
5
  popupUrl: string;
6
6
  popupWidth?: number;
7
7
  popupHeight?: number;
8
- store: ClientStore;
9
8
  popupActionTimeout?: number;
10
9
  onError?: (error: Error) => void;
11
10
  };
12
11
  type OpenPopupProps<TAction extends IPopupAction> = {
13
12
  params: GetPopupActionFuncArgs<TAction>;
14
13
  pathname: GetPopupActionName<TAction>;
14
+ connection: GlobalWalletConnection | null;
15
15
  };
16
- export declare const createPopupOpener: ({ environmentId, popupUrl, popupWidth, popupHeight, store, popupActionTimeout, onError, }: CreatePopupOpenerProps) => <TPopupAction extends IPopupAction>({ params, pathname, }: OpenPopupProps<TPopupAction>) => Promise<GetPopupActionResult<TPopupAction>>;
17
- export type OpenPopup = ReturnType<typeof createPopupOpener>;
16
+ export declare const createPopupOpener: ({ environmentId, popupUrl, popupWidth, popupHeight, popupActionTimeout, onError, }: CreatePopupOpenerProps) => PopupOpener;
18
17
  export {};