@dynamic-labs/ethereum 4.91.3 → 4.91.5

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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,21 @@
1
1
 
2
+ ### [4.91.5](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.4...v4.91.5) (2026-07-02)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * revoke WaaS signed-session callback on client rebuild to stop iOS nonce race ([#11766](https://github.com/dynamic-labs/dynamic-auth/issues/11766)) ([c895b5d](https://github.com/dynamic-labs/dynamic-auth/commit/c895b5d0987d62a9f5597741dbeae0ec7fedfe5b))
8
+ * **sdk-react-core:** allow sendOneTimeCode to target non-primary chain wallets ([#11777](https://github.com/dynamic-labs/dynamic-auth/issues/11777)) ([63f82af](https://github.com/dynamic-labs/dynamic-auth/commit/63f82af7c52be595bc2948ec88ee9c919ac9275a))
9
+ * **webview-controller:** resolve post-login wallet race in Viem and ZeroDev controllers ([#11774](https://github.com/dynamic-labs/dynamic-auth/issues/11774)) ([95ed26e](https://github.com/dynamic-labs/dynamic-auth/commit/95ed26eee09d9aff5a5af6517ab7e1360ef5f337))
10
+
11
+ ### [4.91.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.3...v4.91.4) (2026-07-01)
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * conditionally use /op/ route for AA transactions based on block explorer support ([#11628](https://github.com/dynamic-labs/dynamic-auth/issues/11628)) ([95822dc](https://github.com/dynamic-labs/dynamic-auth/commit/95822dc0edbcd739afe870f0b3881555fdb17eb6))
17
+ * require error codes in all SDK error classes ([#11761](https://github.com/dynamic-labs/dynamic-auth/issues/11761)) ([5744811](https://github.com/dynamic-labs/dynamic-auth/commit/5744811efdd1e415aaf51eec5b3300b323ec1347))
18
+
2
19
  ### [4.91.3](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.2...v4.91.3) (2026-06-30)
3
20
 
4
21
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.91.3";
6
+ var version = "4.91.5";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.91.3";
2
+ var version = "4.91.5";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/ethereum",
3
- "version": "4.91.3",
3
+ "version": "4.91.5",
4
4
  "description": "A React SDK for implementing wallet web3 authentication and authorization to your website.",
5
5
  "author": "Dynamic Labs, Inc.",
6
6
  "license": "MIT",
@@ -19,21 +19,21 @@
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
21
  "@coinbase/wallet-sdk": "4.3.7",
22
- "@dynamic-labs-connectors/base-account-evm": "4.6.8",
23
- "@dynamic-labs-connectors/metamask-evm": "4.6.8",
22
+ "@dynamic-labs-connectors/base-account-evm": "4.6.9",
23
+ "@dynamic-labs-connectors/metamask-evm": "4.6.9",
24
24
  "@walletconnect/ethereum-provider": "2.23.2",
25
25
  "eventemitter3": "5.0.1",
26
26
  "buffer": "6.0.3",
27
- "@dynamic-labs/assert-package-version": "4.91.3",
28
- "@dynamic-labs/embedded-wallet-evm": "4.91.3",
29
- "@dynamic-labs/ethereum-core": "4.91.3",
30
- "@dynamic-labs/logger": "4.91.3",
31
- "@dynamic-labs/rpc-providers": "4.91.3",
32
- "@dynamic-labs/types": "4.91.3",
33
- "@dynamic-labs/utils": "4.91.3",
34
- "@dynamic-labs/waas-evm": "4.91.3",
35
- "@dynamic-labs/wallet-book": "4.91.3",
36
- "@dynamic-labs/wallet-connector-core": "4.91.3"
27
+ "@dynamic-labs/assert-package-version": "4.91.5",
28
+ "@dynamic-labs/embedded-wallet-evm": "4.91.5",
29
+ "@dynamic-labs/ethereum-core": "4.91.5",
30
+ "@dynamic-labs/logger": "4.91.5",
31
+ "@dynamic-labs/rpc-providers": "4.91.5",
32
+ "@dynamic-labs/types": "4.91.5",
33
+ "@dynamic-labs/utils": "4.91.5",
34
+ "@dynamic-labs/waas-evm": "4.91.5",
35
+ "@dynamic-labs/wallet-book": "4.91.5",
36
+ "@dynamic-labs/wallet-connector-core": "4.91.5"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "viem": "^2.45.3"
@@ -25,7 +25,7 @@ class WalletConnectConnector extends ethereumCore.EthereumWalletConnector {
25
25
  this.currentChainId = utils.parseIntSafe(storedChainId);
26
26
  }
27
27
  if (!opts.projectId) {
28
- throw new utils.DynamicError('WalletConnect project ID is required');
28
+ throw new utils.DynamicError('WalletConnect project ID is required', 'walletconnect_project_id_is_required');
29
29
  }
30
30
  // set provider props generic to all wallets
31
31
  WalletConnectProvider.WalletConnectProvider.projectId = opts.projectId;
@@ -85,7 +85,7 @@ class WalletConnectConnector extends ethereumCore.EthereumWalletConnector {
85
85
  }
86
86
  catch (error) {
87
87
  walletConnectorCore.logger.error('[WalletConnect] init - error', error);
88
- throw new utils.DynamicError('WalletConnectProvider failed to initialize');
88
+ throw new utils.DynamicError('WalletConnectProvider failed to initialize', 'walletconnectprovider_failed_to_initialize');
89
89
  }
90
90
  this.setupWCEventListeners();
91
91
  this.walletConnectorEventsEmitter.emit('connectorInitCompleted', 'walletconnect');
@@ -156,7 +156,7 @@ class WalletConnectConnector extends ethereumCore.EthereumWalletConnector {
156
156
  const provider = WalletConnectProvider.WalletConnectProvider.getProvider();
157
157
  if (!provider) {
158
158
  walletConnectorCore.logger.debug('[WalletConnect] getWalletClient - provider is not initialized');
159
- throw new utils.DynamicError('WalletConnectProvider is not initialized');
159
+ throw new utils.DynamicError('WalletConnectProvider is not initialized', 'walletconnectprovider_is_not_initialized');
160
160
  }
161
161
  const walletClient = viem.createWalletClient({
162
162
  account: this.getActiveAccount(),
@@ -272,7 +272,7 @@ class WalletConnectConnector extends ethereumCore.EthereumWalletConnector {
272
272
  return;
273
273
  }
274
274
  if (this.switchNetworkOnlyFromWallet) {
275
- throw new utils.DynamicError('Network switching is only supported through the wallet');
275
+ throw new utils.DynamicError('Network switching is only supported through the wallet', 'network_switching_is_only_supported_through');
276
276
  }
277
277
  const walletClient = yield this.getWalletClient();
278
278
  walletConnectorCore.logger.logVerboseTroubleshootingMessage('[WalletConnect] providerSwitchNetwork - will switch network');
@@ -21,7 +21,7 @@ class WalletConnectConnector extends EthereumWalletConnector {
21
21
  this.currentChainId = parseIntSafe(storedChainId);
22
22
  }
23
23
  if (!opts.projectId) {
24
- throw new DynamicError('WalletConnect project ID is required');
24
+ throw new DynamicError('WalletConnect project ID is required', 'walletconnect_project_id_is_required');
25
25
  }
26
26
  // set provider props generic to all wallets
27
27
  WalletConnectProvider.projectId = opts.projectId;
@@ -81,7 +81,7 @@ class WalletConnectConnector extends EthereumWalletConnector {
81
81
  }
82
82
  catch (error) {
83
83
  logger.error('[WalletConnect] init - error', error);
84
- throw new DynamicError('WalletConnectProvider failed to initialize');
84
+ throw new DynamicError('WalletConnectProvider failed to initialize', 'walletconnectprovider_failed_to_initialize');
85
85
  }
86
86
  this.setupWCEventListeners();
87
87
  this.walletConnectorEventsEmitter.emit('connectorInitCompleted', 'walletconnect');
@@ -152,7 +152,7 @@ class WalletConnectConnector extends EthereumWalletConnector {
152
152
  const provider = WalletConnectProvider.getProvider();
153
153
  if (!provider) {
154
154
  logger.debug('[WalletConnect] getWalletClient - provider is not initialized');
155
- throw new DynamicError('WalletConnectProvider is not initialized');
155
+ throw new DynamicError('WalletConnectProvider is not initialized', 'walletconnectprovider_is_not_initialized');
156
156
  }
157
157
  const walletClient = createWalletClient({
158
158
  account: this.getActiveAccount(),
@@ -268,7 +268,7 @@ class WalletConnectConnector extends EthereumWalletConnector {
268
268
  return;
269
269
  }
270
270
  if (this.switchNetworkOnlyFromWallet) {
271
- throw new DynamicError('Network switching is only supported through the wallet');
271
+ throw new DynamicError('Network switching is only supported through the wallet', 'network_switching_is_only_supported_through');
272
272
  }
273
273
  const walletClient = yield this.getWalletClient();
274
274
  logger.logVerboseTroubleshootingMessage('[WalletConnect] providerSwitchNetwork - will switch network');
@@ -124,7 +124,7 @@ WalletConnectProvider.connect = (_b) => _tslib.__awaiter(void 0, [_b], void 0, f
124
124
  });
125
125
  if (!_a.provider) {
126
126
  logger.logger.error('[WalletConnectProvider] connect - provider is not initialized');
127
- throw new utils.DynamicError('WalletConnectProvider is not initialized');
127
+ throw new utils.DynamicError('WalletConnectProvider is not initialized', 'walletconnectprovider_is_not_initialized');
128
128
  }
129
129
  // this is in case the user just cancels the deeplink prompt (i.e. in mobile/Safari)
130
130
  // in this case, the connection is not rejected, so the "enable" promise is just pending
@@ -149,7 +149,7 @@ WalletConnectProvider.connect = (_b) => _tslib.__awaiter(void 0, [_b], void 0, f
149
149
  logger.logger.error('[WalletConnectProvider] Failed to connect to WalletConnect', { chainId, error, walletName });
150
150
  throw error;
151
151
  }
152
- const customError = new utils.DynamicError(error.message);
152
+ const customError = new utils.DynamicError(error.message, 'connection_failed');
153
153
  const logContext = {
154
154
  chainId,
155
155
  errorMessage: error.message,
@@ -116,7 +116,7 @@ WalletConnectProvider.connect = (_b) => __awaiter(void 0, [_b], void 0, function
116
116
  });
117
117
  if (!_a.provider) {
118
118
  logger.error('[WalletConnectProvider] connect - provider is not initialized');
119
- throw new DynamicError('WalletConnectProvider is not initialized');
119
+ throw new DynamicError('WalletConnectProvider is not initialized', 'walletconnectprovider_is_not_initialized');
120
120
  }
121
121
  // this is in case the user just cancels the deeplink prompt (i.e. in mobile/Safari)
122
122
  // in this case, the connection is not rejected, so the "enable" promise is just pending
@@ -141,7 +141,7 @@ WalletConnectProvider.connect = (_b) => __awaiter(void 0, [_b], void 0, function
141
141
  logger.error('[WalletConnectProvider] Failed to connect to WalletConnect', { chainId, error, walletName });
142
142
  throw error;
143
143
  }
144
- const customError = new DynamicError(error.message);
144
+ const customError = new DynamicError(error.message, 'connection_failed');
145
145
  const logContext = {
146
146
  chainId,
147
147
  errorMessage: error.message,