@dynamic-labs/ethereum-aa 4.53.1 → 4.54.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.
package/CHANGELOG.md CHANGED
@@ -1,4 +1,29 @@
1
1
 
2
+ ## [4.54.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.53.2...v4.54.0) (2026-01-16)
3
+
4
+
5
+ ### Features
6
+
7
+ * add iCloud backup method for wallet backup ([#10221](https://github.com/dynamic-labs/dynamic-auth/issues/10221)) ([36f5b8a](https://github.com/dynamic-labs/dynamic-auth/commit/36f5b8a0df50139fabbc6d6256f396a6d40313f4))
8
+ * add iCloud backup support for wallet key shares ([#10220](https://github.com/dynamic-labs/dynamic-auth/issues/10220)) ([f5f8135](https://github.com/dynamic-labs/dynamic-auth/commit/f5f813593d6ec834fc94f873fd7151b1f3e1a0ca))
9
+ * add legacyWalletId parameter to importPrivateKey ([#10244](https://github.com/dynamic-labs/dynamic-auth/issues/10244)) ([d281dd7](https://github.com/dynamic-labs/dynamic-auth/commit/d281dd7128ac1211e8ca0b72818e109ece7b9837))
10
+
11
+ ### [4.53.2](https://github.com/dynamic-labs/dynamic-auth/compare/v4.53.1...v4.53.2) (2026-01-16)
12
+
13
+
14
+ ### Features
15
+
16
+ * add iCloud backup functionality ([#10219](https://github.com/dynamic-labs/dynamic-auth/issues/10219)) ([44e95e5](https://github.com/dynamic-labs/dynamic-auth/commit/44e95e5a5dc99f83918a382ab1c69d452359c346))
17
+ * update PSBT building with Largest-First UTXO selection and fee priorities (high/medium/low) ([#10227](https://github.com/dynamic-labs/dynamic-auth/issues/10227)) ([94c5f5c](https://github.com/dynamic-labs/dynamic-auth/commit/94c5f5cb97432bb97374b754cb95bc23290dd184))
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * allow late registered solana wallets to appear in the wallet list ([#10224](https://github.com/dynamic-labs/dynamic-auth/issues/10224)) ([2f418d4](https://github.com/dynamic-labs/dynamic-auth/commit/2f418d4f3e0543bdd829a45807329f89da1e41a7))
23
+ * correctly show app name in wallet app for wallet connect evm connections ([#10218](https://github.com/dynamic-labs/dynamic-auth/issues/10218)) ([fec0009](https://github.com/dynamic-labs/dynamic-auth/commit/fec0009177439baa67015050b4ad799119615f4f))
24
+ * destructure wallets from getWalletStandardWallets before calling find ([#10234](https://github.com/dynamic-labs/dynamic-auth/issues/10234)) ([b59617a](https://github.com/dynamic-labs/dynamic-auth/commit/b59617a8579b9c7d8a5f744a2ea9363ccb4aee58))
25
+ * **react-native:** filter connectors by enabled chains and add chain parameter to connectWallet ([#10230](https://github.com/dynamic-labs/dynamic-auth/issues/10230)) ([a2bbd03](https://github.com/dynamic-labs/dynamic-auth/commit/a2bbd03ece52950711d2eda18cb2345df15710dd))
26
+
2
27
  ### [4.53.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.53.0...v4.53.1) (2026-01-14)
3
28
 
4
29
  ## [4.53.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.52.5...v4.53.0) (2026-01-13)
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.53.1";
6
+ var version = "4.54.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.53.1";
2
+ var version = "4.54.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/ethereum-aa",
3
- "version": "4.53.1",
3
+ "version": "4.54.0",
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",
@@ -18,18 +18,18 @@
18
18
  },
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
- "@dynamic-labs/sdk-api-core": "0.0.843",
21
+ "@dynamic-labs/sdk-api-core": "0.0.855",
22
22
  "@zerodev/ecdsa-validator": "5.4.9",
23
23
  "@zerodev/multi-chain-ecdsa-validator": "5.4.5",
24
24
  "@zerodev/sdk": "5.5.7",
25
- "@dynamic-labs/assert-package-version": "4.53.1",
26
- "@dynamic-labs/ethereum-aa-core": "4.53.1",
27
- "@dynamic-labs/ethereum-core": "4.53.1",
28
- "@dynamic-labs/logger": "4.53.1",
29
- "@dynamic-labs/types": "4.53.1",
30
- "@dynamic-labs/utils": "4.53.1",
31
- "@dynamic-labs/wallet-book": "4.53.1",
32
- "@dynamic-labs/wallet-connector-core": "4.53.1"
25
+ "@dynamic-labs/assert-package-version": "4.54.0",
26
+ "@dynamic-labs/ethereum-aa-core": "4.54.0",
27
+ "@dynamic-labs/ethereum-core": "4.54.0",
28
+ "@dynamic-labs/logger": "4.54.0",
29
+ "@dynamic-labs/types": "4.54.0",
30
+ "@dynamic-labs/utils": "4.54.0",
31
+ "@dynamic-labs/wallet-book": "4.54.0",
32
+ "@dynamic-labs/wallet-connector-core": "4.54.0"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "viem": "^2.28.4"
@@ -118,6 +118,13 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
118
118
  supportsNetworkSwitching() {
119
119
  return (Object.keys(this.providerMap).length > 1 && this.evmNetworks.length > 1);
120
120
  }
121
+ getPublicRpcForChain(chainId) {
122
+ var _a, _b;
123
+ const network = this.evmNetworks.find((n) => n.chainId.toString() === chainId);
124
+ const privateCustomerRpc = (_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0];
125
+ const publicRpc = (_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0];
126
+ return privateCustomerRpc || publicRpc;
127
+ }
121
128
  switchNetwork(_a) {
122
129
  return _tslib.__awaiter(this, arguments, void 0, function* ({ networkChainId, }) {
123
130
  if (!this.supportsNetworkSwitching())
@@ -309,6 +316,7 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
309
316
  paymasterRpc: paymasterRpcOverride !== null && paymasterRpcOverride !== void 0 ? paymasterRpcOverride : this.paymasterRpc,
310
317
  projectId,
311
318
  provider: this.bundlerProvider,
319
+ publicClientRpc: this.getPublicRpcForChain(chainId),
312
320
  signer,
313
321
  };
314
322
  if (this.shouldUseEIP7702Mode) {
@@ -509,8 +517,8 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
509
517
  types: signTypedData.types,
510
518
  });
511
519
  }),
512
- provider: provider.extend(viem.publicActions),
513
- transport: viem.custom(provider, this.providersConfig.httpTransportConfig),
520
+ provider: provider.client,
521
+ transport: viem.custom(provider.client, this.providersConfig.httpTransportConfig),
514
522
  // TODO: remove this. We should not be passing references to wallet connectors
515
523
  walletConnector: this,
516
524
  walletUiUtils: this._walletUiUtils,
@@ -540,10 +548,10 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
540
548
  getPublicClient() {
541
549
  return _tslib.__awaiter(this, void 0, void 0, function* () {
542
550
  var _a;
543
- const provider = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.extend(viem.publicActions);
544
- if (!provider)
551
+ const publicClient = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.client;
552
+ if (!publicClient)
545
553
  return undefined;
546
- return provider;
554
+ return publicClient;
547
555
  });
548
556
  }
549
557
  formatUserOperation(params, withAuthorization) {
@@ -682,10 +690,12 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
682
690
  getBalance(address) {
683
691
  return _tslib.__awaiter(this, void 0, void 0, function* () {
684
692
  var _a;
685
- const rpcClient = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.extend(viem.publicActions);
686
- if (!rpcClient)
693
+ const publicClient = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.client;
694
+ if (!publicClient)
687
695
  throw new utils.DynamicError('No RPC client');
688
- return viem.formatEther(yield rpcClient.getBalance({ address: address }));
696
+ return viem.formatEther(yield publicClient.getBalance({
697
+ address: address,
698
+ }));
689
699
  });
690
700
  }
691
701
  signMessage(messageToSign) {
@@ -74,6 +74,7 @@ export declare class ZeroDevConnector extends AccountAbstractionBaseConnector im
74
74
  get kernelClient(): KernelClient | undefined;
75
75
  get kernelClientWithSponsorship(): KernelClient | undefined;
76
76
  supportsNetworkSwitching(): boolean;
77
+ private getPublicRpcForChain;
77
78
  switchNetwork({ networkChainId, }: {
78
79
  networkChainId?: number | string;
79
80
  }): Promise<void>;
@@ -118,7 +119,7 @@ export declare class ZeroDevConnector extends AccountAbstractionBaseConnector im
118
119
  private sendCalls;
119
120
  private getTransport;
120
121
  getWalletClient(chainId?: string): WalletClient<Transport, ViemChain, Account> | undefined;
121
- getPublicClient(): Promise<void | PublicClient<Transport, ViemChain> | undefined>;
122
+ getPublicClient(): Promise<PublicClient<Transport, ViemChain> | undefined>;
122
123
  formatUserOperation(params: any, withAuthorization?: boolean): Promise<any>;
123
124
  private signAndSendUserOperationWithWaas;
124
125
  getCurrentUserOperation(transaction: {
@@ -1,7 +1,7 @@
1
1
  'use client'
2
2
  import { __awaiter, __rest } from '../_virtual/_tslib.js';
3
3
  import { KERNEL_V3_3, getEntryPoint as getEntryPoint$1 } from '@zerodev/sdk/constants';
4
- import { publicActions, custom, createWalletClient, toHex, formatEther } from 'viem';
4
+ import { custom, createWalletClient, toHex, formatEther } from 'viem';
5
5
  import { getUserOperationHash } from 'viem/account-abstraction';
6
6
  import { toAccount } from 'viem/accounts';
7
7
  import { AccountAbstractionBaseConnector } from '@dynamic-labs/ethereum-aa-core';
@@ -114,6 +114,13 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
114
114
  supportsNetworkSwitching() {
115
115
  return (Object.keys(this.providerMap).length > 1 && this.evmNetworks.length > 1);
116
116
  }
117
+ getPublicRpcForChain(chainId) {
118
+ var _a, _b;
119
+ const network = this.evmNetworks.find((n) => n.chainId.toString() === chainId);
120
+ const privateCustomerRpc = (_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0];
121
+ const publicRpc = (_b = network === null || network === void 0 ? void 0 : network.rpcUrls) === null || _b === void 0 ? void 0 : _b[0];
122
+ return privateCustomerRpc || publicRpc;
123
+ }
117
124
  switchNetwork(_a) {
118
125
  return __awaiter(this, arguments, void 0, function* ({ networkChainId, }) {
119
126
  if (!this.supportsNetworkSwitching())
@@ -305,6 +312,7 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
305
312
  paymasterRpc: paymasterRpcOverride !== null && paymasterRpcOverride !== void 0 ? paymasterRpcOverride : this.paymasterRpc,
306
313
  projectId,
307
314
  provider: this.bundlerProvider,
315
+ publicClientRpc: this.getPublicRpcForChain(chainId),
308
316
  signer,
309
317
  };
310
318
  if (this.shouldUseEIP7702Mode) {
@@ -505,8 +513,8 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
505
513
  types: signTypedData.types,
506
514
  });
507
515
  }),
508
- provider: provider.extend(publicActions),
509
- transport: custom(provider, this.providersConfig.httpTransportConfig),
516
+ provider: provider.client,
517
+ transport: custom(provider.client, this.providersConfig.httpTransportConfig),
510
518
  // TODO: remove this. We should not be passing references to wallet connectors
511
519
  walletConnector: this,
512
520
  walletUiUtils: this._walletUiUtils,
@@ -536,10 +544,10 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
536
544
  getPublicClient() {
537
545
  return __awaiter(this, void 0, void 0, function* () {
538
546
  var _a;
539
- const provider = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.extend(publicActions);
540
- if (!provider)
547
+ const publicClient = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.client;
548
+ if (!publicClient)
541
549
  return undefined;
542
- return provider;
550
+ return publicClient;
543
551
  });
544
552
  }
545
553
  formatUserOperation(params, withAuthorization) {
@@ -678,10 +686,12 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
678
686
  getBalance(address) {
679
687
  return __awaiter(this, void 0, void 0, function* () {
680
688
  var _a;
681
- const rpcClient = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.extend(publicActions);
682
- if (!rpcClient)
689
+ const publicClient = (_a = this.kernelClient) === null || _a === void 0 ? void 0 : _a.client;
690
+ if (!publicClient)
683
691
  throw new DynamicError('No RPC client');
684
- return formatEther(yield rpcClient.getBalance({ address: address }));
692
+ return formatEther(yield publicClient.getBalance({
693
+ address: address,
694
+ }));
685
695
  });
686
696
  }
687
697
  signMessage(messageToSign) {
@@ -4,11 +4,11 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../_virtual/_tslib.cjs');
7
+ var ecdsaValidator = require('@zerodev/ecdsa-validator');
7
8
  var accounts = require('@zerodev/sdk/accounts');
8
- var clients = require('@zerodev/sdk/clients');
9
9
  var actions = require('@zerodev/sdk/actions');
10
+ var clients = require('@zerodev/sdk/clients');
10
11
  var viem = require('viem');
11
- var ecdsaValidator = require('@zerodev/ecdsa-validator');
12
12
 
13
13
  exports.PaymasterTypeEnum = void 0;
14
14
  (function (PaymasterTypeEnum) {
@@ -1,8 +1,8 @@
1
- import { SmartAccount, EntryPointVersion } from 'viem/account-abstraction';
2
1
  import { KernelAccountClient } from '@zerodev/sdk/clients';
3
- import { type Chain as ViemChain } from 'viem/chains';
4
- import { Address, WalletClient, Account, type Chain, type Client, type RpcSchema, type Transport } from 'viem';
5
2
  import { EntryPointType, GetKernelVersion, KERNEL_VERSION_TYPE } from '@zerodev/sdk/types';
3
+ import { Account, Address, WalletClient, type Chain, type Client, type RpcSchema, type Transport } from 'viem';
4
+ import { EntryPointVersion, SmartAccount } from 'viem/account-abstraction';
5
+ import { type Chain as ViemChain } from 'viem/chains';
6
6
  import { ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core';
7
7
  export type ERC20Paymaster = Address;
8
8
  export type PaymasterType = keyof typeof PaymasterTypeEnum | ERC20Paymaster;
@@ -26,8 +26,8 @@ type CommonClientParams<TChain extends Chain | undefined = Chain | undefined> =
26
26
  publicClientRpc?: string;
27
27
  apiKernelVersion: KERNEL_VERSION_TYPE;
28
28
  };
29
- export declare const createEcdsaKernelAccountClient: <entryPoint extends EntryPointVersion, TChain extends ViemChain | undefined = ViemChain | undefined>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster, entryPoint, kernelVersion, ecdsaValidator, enableKernelV3Migration, publicClientRpc, apiKernelVersion, }: CommonClientParams<TChain> & {
29
+ export declare const createEcdsaKernelAccountClient: <entryPoint extends EntryPointVersion, TChain extends Chain | undefined = Chain | undefined>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster, entryPoint, kernelVersion, ecdsaValidator, enableKernelV3Migration, publicClientRpc, apiKernelVersion, }: CommonClientParams<TChain> & {
30
30
  ecdsaValidator: any;
31
31
  }) => Promise<KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>>;
32
- export declare const createEcdsaKernelAccountClientWith7702: <TChain extends ViemChain | undefined = ViemChain | undefined>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster, entryPoint, kernelVersion, publicClientRpc, }: CommonClientParams<TChain>) => Promise<KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>>;
32
+ export declare const createEcdsaKernelAccountClientWith7702: <TChain extends Chain | undefined = Chain | undefined>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster, entryPoint, kernelVersion, publicClientRpc, }: CommonClientParams<TChain>) => Promise<KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>>;
33
33
  export {};
@@ -1,10 +1,10 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
+ import { createEcdsaKernelMigrationAccount } from '@zerodev/ecdsa-validator';
3
4
  import { createKernelAccount } from '@zerodev/sdk/accounts';
4
- import { createKernelAccountClient, createZeroDevPaymasterClient } from '@zerodev/sdk/clients';
5
5
  import { getUserOperationGasPrice } from '@zerodev/sdk/actions';
6
+ import { createKernelAccountClient, createZeroDevPaymasterClient } from '@zerodev/sdk/clients';
6
7
  import { http, createPublicClient, isAddress } from 'viem';
7
- import { createEcdsaKernelMigrationAccount } from '@zerodev/ecdsa-validator';
8
8
 
9
9
  var PaymasterTypeEnum;
10
10
  (function (PaymasterTypeEnum) {