@dynamic-labs/zerodev-extension 4.91.1 → 4.91.2

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,28 @@
1
1
 
2
+ ### [4.91.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.1...v4.91.2) (2026-06-26)
3
+
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * **waas:** require expectedAddresses on migrateFromFireblocks (#11730)
8
+
9
+ ### Features
10
+
11
+ * **midnight:** support shielded/unshielded transfers and dust states in the embedded Send flow ([#11731](https://github.com/dynamic-labs/dynamic-auth/issues/11731)) ([663d171](https://github.com/dynamic-labs/dynamic-auth/commit/663d171a9628c634586831ee35c234e9331e3f80))
12
+ * **react-native-extension:** instrument all embedded webview failure paths ([#11737](https://github.com/dynamic-labs/dynamic-auth/issues/11737)) ([172998b](https://github.com/dynamic-labs/dynamic-auth/commit/172998b56e9bee04fbb8da71e83ce8885bc378ff))
13
+ * **waas:** migrateFromFireblocks connector method + demo panel (browser-wallet-client 1.0.46) ([#11702](https://github.com/dynamic-labs/dynamic-auth/issues/11702)) ([6bfc844](https://github.com/dynamic-labs/dynamic-auth/commit/6bfc8443fbaedabe1e7bee0ed78742cbbe5d0084))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * add coverage for scenario with passkey re-login and smart account ([#11726](https://github.com/dynamic-labs/dynamic-auth/issues/11726)) ([5364a72](https://github.com/dynamic-labs/dynamic-auth/commit/5364a72a750d835b9b2da602a91e8b5d7d305db7))
19
+ * remediate high-severity dependency vulnerabilities ([#11721](https://github.com/dynamic-labs/dynamic-auth/issues/11721)) ([cdb9306](https://github.com/dynamic-labs/dynamic-auth/commit/cdb93061365a20b8f73a1f8bea8352332e282c1e))
20
+ * replace node-fetch v2 with native fetch to fix Node 22 stream failure ([#11732](https://github.com/dynamic-labs/dynamic-auth/issues/11732)) ([b98f801](https://github.com/dynamic-labs/dynamic-auth/commit/b98f801e307b52dbd7e4b241a9a4a2d34d89118e))
21
+ * **zerodev-extension:** derive kernel 7702 vs 4337 per-wallet, not from global dashboard flag ([#11735](https://github.com/dynamic-labs/dynamic-auth/issues/11735)) ([72cf6a7](https://github.com/dynamic-labs/dynamic-auth/commit/72cf6a70a4857a4ea469faa555c485dbad8d0217))
22
+
23
+
24
+ * **waas:** require expectedAddresses on migrateFromFireblocks ([#11730](https://github.com/dynamic-labs/dynamic-auth/issues/11730)) ([c94824e](https://github.com/dynamic-labs/dynamic-auth/commit/c94824ebe11e0433a6ffbd2a5a9dd4283aeed31e))
25
+
2
26
  ### [4.91.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.91.0...v4.91.1) (2026-06-24)
3
27
 
4
28
 
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.1";
6
+ var version = "4.91.2";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.91.1";
2
+ var version = "4.91.2";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/zerodev-extension",
3
- "version": "4.91.1",
3
+ "version": "4.91.2",
4
4
  "main": "./src/index.cjs",
5
5
  "module": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -18,13 +18,13 @@
18
18
  "@zerodev/sdk": "5.5.7",
19
19
  "@zerodev/multi-chain-ecdsa-validator": "5.4.5",
20
20
  "@zerodev/ecdsa-validator": "5.4.9",
21
- "@dynamic-labs/assert-package-version": "4.91.1",
22
- "@dynamic-labs/client": "4.91.1",
23
- "@dynamic-labs/ethereum-aa": "4.91.1",
24
- "@dynamic-labs/logger": "4.91.1",
25
- "@dynamic-labs/message-transport": "4.91.1",
26
- "@dynamic-labs/viem-extension": "4.91.1",
27
- "@dynamic-labs/webview-messages": "4.91.1"
21
+ "@dynamic-labs/assert-package-version": "4.91.2",
22
+ "@dynamic-labs/client": "4.91.2",
23
+ "@dynamic-labs/ethereum-aa": "4.91.2",
24
+ "@dynamic-labs/logger": "4.91.2",
25
+ "@dynamic-labs/message-transport": "4.91.2",
26
+ "@dynamic-labs/viem-extension": "4.91.2",
27
+ "@dynamic-labs/webview-messages": "4.91.2"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "viem": "^2.45.3"
@@ -28,19 +28,27 @@ const ZeroDevExtension = () => (client$1, core) => {
28
28
  if (!eoaWallet) {
29
29
  throw new Error('EOA wallet not found');
30
30
  }
31
- return client$1.viem.createWalletClient({
31
+ const walletClient = yield client$1.viem.createWalletClient({
32
32
  account: client$1.viem.createAccountFromWallet(eoaWallet),
33
33
  chain: chainId ? getChainById.getChainById(chainId) : undefined,
34
34
  wallet: eoaWallet,
35
35
  });
36
+ return { eoaWallet, walletClient };
36
37
  });
37
38
  return {
38
39
  zeroDev: {
39
40
  createKernelClient: (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ wallet, chainId, bundlerProvider, bundlerRpc, paymasterRpc, paymaster, eip7702Auth, }) {
40
41
  var _b, _c, _d;
41
42
  try {
42
- const walletClient = yield createWalletClientHelper(wallet, chainId);
43
+ const { eoaWallet, walletClient } = yield createWalletClientHelper(wallet, chainId);
43
44
  const accountSettings = yield zeroDevRequestChannel.request('getKernelAccountSettings', { chainId, wallet });
45
+ // The kernel TYPE is per-wallet, not global: a 7702 wallet IS its EOA
46
+ // (same address), whereas a 4337 wallet has a distinct counterfactual
47
+ // address. Deciding 7702 from the dashboard flag alone makes every
48
+ // wallet resolve to the same EOA-addressed account, so the passed
49
+ // wallet is ignored. Gate the 7702 path on per-wallet address equality.
50
+ const isWallet7702 = Boolean(accountSettings.enableEIP7702) &&
51
+ wallet.address.toLowerCase() === eoaWallet.address.toLowerCase();
44
52
  const zerodevWalletProperties = (_c = (_b = client$1.auth.authenticatedUser) === null || _b === void 0 ? void 0 : _b.verifiedCredentials.find((credential) => credential.id === wallet.id)) === null || _c === void 0 ? void 0 : _c.walletProperties;
45
53
  const walletEntryPoint = (zerodevWalletProperties === null || zerodevWalletProperties === void 0 ? void 0 : zerodevWalletProperties.entryPointVersion)
46
54
  ? ethereumAa.getEntryPoint(zerodevWalletProperties.entryPointVersion)
@@ -68,7 +76,7 @@ const ZeroDevExtension = () => (client$1, core) => {
68
76
  provider: bundlerProvider,
69
77
  signer: walletClient,
70
78
  };
71
- if (accountSettings.enableEIP7702) {
79
+ if (isWallet7702) {
72
80
  return ethereumAa.createEcdsaKernelAccountClientWith7702(Object.assign(Object.assign({}, params), { eip7702Auth, kernelVersion: constants.KERNEL_V3_3 }));
73
81
  }
74
82
  return ethereumAa.createEcdsaKernelAccountClient(Object.assign(Object.assign({}, params), { ecdsaValidator: ethereumAa.getEcdsaValidator((_d = accountSettings.ecdsaProviderType) !== null && _d !== void 0 ? _d : undefined) }));
@@ -80,7 +88,8 @@ const ZeroDevExtension = () => (client$1, core) => {
80
88
  }),
81
89
  createWalletClient: (_e) => _tslib.__awaiter(void 0, [_e], void 0, function* ({ wallet, chainId }) {
82
90
  try {
83
- return yield createWalletClientHelper(wallet, chainId);
91
+ const { walletClient } = yield createWalletClientHelper(wallet, chainId);
92
+ return walletClient;
84
93
  }
85
94
  catch (error) {
86
95
  logger.logger.error(error);
@@ -94,7 +103,7 @@ const ZeroDevExtension = () => (client$1, core) => {
94
103
  const accountSettings = yield zeroDevRequestChannel.request('getKernelAccountSettings', { wallet });
95
104
  resolvedChainId = accountSettings.chainId;
96
105
  }
97
- const walletClient = yield createWalletClientHelper(wallet, resolvedChainId);
106
+ const { walletClient } = yield createWalletClientHelper(wallet, resolvedChainId);
98
107
  return ethereumAa.signEip7702Authorization({
99
108
  chainId: resolvedChainId,
100
109
  signer: walletClient,
@@ -24,19 +24,27 @@ const ZeroDevExtension = () => (client, core) => {
24
24
  if (!eoaWallet) {
25
25
  throw new Error('EOA wallet not found');
26
26
  }
27
- return client.viem.createWalletClient({
27
+ const walletClient = yield client.viem.createWalletClient({
28
28
  account: client.viem.createAccountFromWallet(eoaWallet),
29
29
  chain: chainId ? getChainById(chainId) : undefined,
30
30
  wallet: eoaWallet,
31
31
  });
32
+ return { eoaWallet, walletClient };
32
33
  });
33
34
  return {
34
35
  zeroDev: {
35
36
  createKernelClient: (_a) => __awaiter(void 0, [_a], void 0, function* ({ wallet, chainId, bundlerProvider, bundlerRpc, paymasterRpc, paymaster, eip7702Auth, }) {
36
37
  var _b, _c, _d;
37
38
  try {
38
- const walletClient = yield createWalletClientHelper(wallet, chainId);
39
+ const { eoaWallet, walletClient } = yield createWalletClientHelper(wallet, chainId);
39
40
  const accountSettings = yield zeroDevRequestChannel.request('getKernelAccountSettings', { chainId, wallet });
41
+ // The kernel TYPE is per-wallet, not global: a 7702 wallet IS its EOA
42
+ // (same address), whereas a 4337 wallet has a distinct counterfactual
43
+ // address. Deciding 7702 from the dashboard flag alone makes every
44
+ // wallet resolve to the same EOA-addressed account, so the passed
45
+ // wallet is ignored. Gate the 7702 path on per-wallet address equality.
46
+ const isWallet7702 = Boolean(accountSettings.enableEIP7702) &&
47
+ wallet.address.toLowerCase() === eoaWallet.address.toLowerCase();
40
48
  const zerodevWalletProperties = (_c = (_b = client.auth.authenticatedUser) === null || _b === void 0 ? void 0 : _b.verifiedCredentials.find((credential) => credential.id === wallet.id)) === null || _c === void 0 ? void 0 : _c.walletProperties;
41
49
  const walletEntryPoint = (zerodevWalletProperties === null || zerodevWalletProperties === void 0 ? void 0 : zerodevWalletProperties.entryPointVersion)
42
50
  ? getEntryPoint(zerodevWalletProperties.entryPointVersion)
@@ -64,7 +72,7 @@ const ZeroDevExtension = () => (client, core) => {
64
72
  provider: bundlerProvider,
65
73
  signer: walletClient,
66
74
  };
67
- if (accountSettings.enableEIP7702) {
75
+ if (isWallet7702) {
68
76
  return createEcdsaKernelAccountClientWith7702(Object.assign(Object.assign({}, params), { eip7702Auth, kernelVersion: KERNEL_V3_3 }));
69
77
  }
70
78
  return createEcdsaKernelAccountClient(Object.assign(Object.assign({}, params), { ecdsaValidator: getEcdsaValidator((_d = accountSettings.ecdsaProviderType) !== null && _d !== void 0 ? _d : undefined) }));
@@ -76,7 +84,8 @@ const ZeroDevExtension = () => (client, core) => {
76
84
  }),
77
85
  createWalletClient: (_e) => __awaiter(void 0, [_e], void 0, function* ({ wallet, chainId }) {
78
86
  try {
79
- return yield createWalletClientHelper(wallet, chainId);
87
+ const { walletClient } = yield createWalletClientHelper(wallet, chainId);
88
+ return walletClient;
80
89
  }
81
90
  catch (error) {
82
91
  logger.error(error);
@@ -90,7 +99,7 @@ const ZeroDevExtension = () => (client, core) => {
90
99
  const accountSettings = yield zeroDevRequestChannel.request('getKernelAccountSettings', { wallet });
91
100
  resolvedChainId = accountSettings.chainId;
92
101
  }
93
- const walletClient = yield createWalletClientHelper(wallet, resolvedChainId);
102
+ const { walletClient } = yield createWalletClientHelper(wallet, resolvedChainId);
94
103
  return signEip7702Authorization({
95
104
  chainId: resolvedChainId,
96
105
  signer: walletClient,