@dynamic-labs/ethereum-aa 4.50.4 → 4.50.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,13 @@
1
1
 
2
+ ### [4.50.5](https://github.com/dynamic-labs/dynamic-auth/compare/v4.50.4...v4.50.5) (2025-12-16)
3
+
4
+
5
+ ### Bug Fixes
6
+
7
+ * ensure connectWithSocial promise fails on error ([#10105](https://github.com/dynamic-labs/dynamic-auth/issues/10105)) ([2ff57b3](https://github.com/dynamic-labs/dynamic-auth/commit/2ff57b3d6a68c2bb9ae0ce2a41b117598193f0ac))
8
+ * **react-native:** move peer dependencies to regular deps for auto install on yarn ([#10104](https://github.com/dynamic-labs/dynamic-auth/issues/10104)) ([ad2b621](https://github.com/dynamic-labs/dynamic-auth/commit/ad2b6212bb162eb3c0a430bf79d857285440261e))
9
+ * sign raw transaction with zerodev connector ([#10110](https://github.com/dynamic-labs/dynamic-auth/issues/10110)) ([f5f8f88](https://github.com/dynamic-labs/dynamic-auth/commit/f5f8f882136551c382bc5812c0c9499938466866))
10
+
2
11
  ### [4.50.4](https://github.com/dynamic-labs/dynamic-auth/compare/v4.50.3...v4.50.4) (2025-12-15)
3
12
 
4
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.50.4";
6
+ var version = "4.50.5";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.50.4";
2
+ var version = "4.50.5";
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.50.4",
3
+ "version": "4.50.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",
@@ -22,14 +22,14 @@
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.50.4",
26
- "@dynamic-labs/ethereum-aa-core": "4.50.4",
27
- "@dynamic-labs/ethereum-core": "4.50.4",
28
- "@dynamic-labs/logger": "4.50.4",
29
- "@dynamic-labs/types": "4.50.4",
30
- "@dynamic-labs/utils": "4.50.4",
31
- "@dynamic-labs/wallet-book": "4.50.4",
32
- "@dynamic-labs/wallet-connector-core": "4.50.4"
25
+ "@dynamic-labs/assert-package-version": "4.50.5",
26
+ "@dynamic-labs/ethereum-aa-core": "4.50.5",
27
+ "@dynamic-labs/ethereum-core": "4.50.5",
28
+ "@dynamic-labs/logger": "4.50.5",
29
+ "@dynamic-labs/types": "4.50.5",
30
+ "@dynamic-labs/utils": "4.50.5",
31
+ "@dynamic-labs/wallet-book": "4.50.5",
32
+ "@dynamic-labs/wallet-connector-core": "4.50.5"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "viem": "^2.28.4"
@@ -471,7 +471,35 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
471
471
  this.isInOnSendTransactionFlow = false;
472
472
  }
473
473
  }),
474
- onSignTypedData: (_c) => _tslib.__awaiter(this, [_c], void 0, function* ({ message }) {
474
+ onSignTransaction: (_c) => _tslib.__awaiter(this, [_c], void 0, function* ({ transaction }) {
475
+ this._walletUiUtils.disabledConfirmationOnce();
476
+ if (!this.eoaConnector) {
477
+ throw new utils.DynamicError('signTransaction requires an EOA connector to be available');
478
+ }
479
+ if (!this.eoaAddress) {
480
+ throw new utils.DynamicError('No EOA address');
481
+ }
482
+ let localAccount;
483
+ if (walletConnectorCore.isDynamicWaasConnector(this.eoaConnector)) {
484
+ localAccount = yield this.eoaConnector.getViemAccount({
485
+ accountAddress: this.eoaAddress,
486
+ });
487
+ }
488
+ else if (walletConnectorCore.isTurnkeyWalletConnector(this.eoaConnector)) {
489
+ localAccount = yield this.eoaConnector.getAccount();
490
+ }
491
+ else {
492
+ throw new utils.DynamicError('signTransaction is only supported with Dynamic embedded wallets');
493
+ }
494
+ const tx = ethereumCore.unFormatTransaction(transaction);
495
+ const publicClient = yield this.getPublicClient();
496
+ if (!publicClient) {
497
+ throw new utils.DynamicError('Public client not available');
498
+ }
499
+ const preparedTx = yield publicClient.prepareTransactionRequest(Object.assign(Object.assign({}, tx), { account: this.eoaAddress }));
500
+ return localAccount.signTransaction(preparedTx);
501
+ }),
502
+ onSignTypedData: (_d) => _tslib.__awaiter(this, [_d], void 0, function* ({ message }) {
475
503
  this._walletUiUtils.disabledConfirmationOnce();
476
504
  const signTypedData = JSON.parse(message);
477
505
  return provider.signTypedData({
@@ -489,7 +517,7 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
489
517
  });
490
518
  const transportWithEip5792Support = ethereumCore.interceptTransport({
491
519
  onGetCapabilities: () => _tslib.__awaiter(this, void 0, void 0, function* () { return this.getCapabilities(); }),
492
- onSendCalls: (_d) => _tslib.__awaiter(this, [_d], void 0, function* ({ callParams }) {
520
+ onSendCalls: (_e) => _tslib.__awaiter(this, [_e], void 0, function* ({ callParams }) {
493
521
  const result = yield this.sendCalls(callParams);
494
522
  return { id: result.userOpHash };
495
523
  }),
@@ -1,26 +1,13 @@
1
- import { KernelAccountClient } from '@zerodev/sdk/clients';
2
1
  import { EntryPointType, KERNEL_VERSION_TYPE } from '@zerodev/sdk/types';
3
- import { Account, Client, PublicClient, RpcSchema, Transport, WalletClient } from 'viem';
4
- import { EntryPointVersion, SmartAccount } from 'viem/account-abstraction';
2
+ import { Account, PublicClient, Transport, WalletClient } from 'viem';
3
+ import { EntryPointVersion } from 'viem/account-abstraction';
5
4
  import { type Chain as ViemChain } from 'viem/chains';
6
- import { AccountAbstractionBaseConnector, AccountAbstractionConnectorProps } from '@dynamic-labs/ethereum-aa-core';
5
+ import { AccountAbstractionBaseConnector } from '@dynamic-labs/ethereum-aa-core';
7
6
  import { EthereumWallet, RegisterEvmProvidersConfig } from '@dynamic-labs/ethereum-core';
8
- import { EcdsaValidatorOptions, JwtVerifiedCredential, Provider, ProviderEntryPointVersionEnum, ProviderEnum, ProviderKernelVersionEnum, ProviderMultichainAccountAbstractionProviders, SmartWalletProperties, ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core';
9
- import { GenericNetwork, TransactionReceipt, WalletUiUtils } from '@dynamic-labs/types';
10
- import { WalletBookSchema } from '@dynamic-labs/wallet-book';
7
+ import { EcdsaValidatorOptions, JwtVerifiedCredential, ProviderEntryPointVersionEnum, ProviderKernelVersionEnum, ProviderMultichainAccountAbstractionProviders, SmartWalletProperties, ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core';
8
+ import { TransactionReceipt } from '@dynamic-labs/types';
11
9
  import { Chain, InternalWalletConnector, IZeroDevConnector } from '@dynamic-labs/wallet-connector-core';
12
- type ZeroDevConnectorProps = AccountAbstractionConnectorProps & {
13
- apiProviders: {
14
- [key in ProviderEnum]?: Provider;
15
- };
16
- evmNetworks: GenericNetwork[];
17
- walletBook: WalletBookSchema;
18
- walletUiUtils: WalletUiUtils<InternalWalletConnector>;
19
- bundlerProvider: ZerodevBundlerProvider | undefined;
20
- enableEIP7702?: boolean;
21
- providersConfig?: RegisterEvmProvidersConfig;
22
- };
23
- type KernelClient = KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>;
10
+ import type { KernelClient, ZeroDevConnectorProps } from './types';
24
11
  export declare class ZeroDevConnector extends AccountAbstractionBaseConnector implements IZeroDevConnector {
25
12
  clientId: string;
26
13
  eoaConnector: InternalWalletConnector | undefined;
@@ -157,4 +144,3 @@ export declare class ZeroDevConnector extends AccountAbstractionBaseConnector im
157
144
  isAtomicSupported(chainId?: number): Promise<boolean>;
158
145
  isPaymasterServiceSupported(chainId?: number): Promise<boolean>;
159
146
  }
160
- export {};
@@ -8,7 +8,7 @@ import { AccountAbstractionBaseConnector } from '@dynamic-labs/ethereum-aa-core'
8
8
  import { EthereumWallet, isEthWalletConnector, chainsMap, confirmationTransport, unFormatTransaction, interceptTransport } from '@dynamic-labs/ethereum-core';
9
9
  import { ZerodevBundlerProvider, WalletProviderEnum } from '@dynamic-labs/sdk-api-core';
10
10
  import { parseEvmNetworks, StorageService, DynamicError, DeferredPromise, parseChainId, wrapMethodWithCallback, TransactionGasCannotBeSponsoredError, InsufficientFundsError } from '@dynamic-labs/utils';
11
- import { eventListenerHandlers, getWalletProvider, isDynamicWaasConnector } from '@dynamic-labs/wallet-connector-core';
11
+ import { eventListenerHandlers, getWalletProvider, isDynamicWaasConnector, isTurnkeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
12
12
  import { ZERO_DEV_LAST_USED_CHAIN_ID_KEY } from './constants.js';
13
13
  import { logger } from './utils/logger.js';
14
14
  import { PaymasterTypeEnum, createEcdsaKernelAccountClientWith7702, createEcdsaKernelAccountClient } from './utils/createEcdsaKernelAccountClient.js';
@@ -467,7 +467,35 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
467
467
  this.isInOnSendTransactionFlow = false;
468
468
  }
469
469
  }),
470
- onSignTypedData: (_c) => __awaiter(this, [_c], void 0, function* ({ message }) {
470
+ onSignTransaction: (_c) => __awaiter(this, [_c], void 0, function* ({ transaction }) {
471
+ this._walletUiUtils.disabledConfirmationOnce();
472
+ if (!this.eoaConnector) {
473
+ throw new DynamicError('signTransaction requires an EOA connector to be available');
474
+ }
475
+ if (!this.eoaAddress) {
476
+ throw new DynamicError('No EOA address');
477
+ }
478
+ let localAccount;
479
+ if (isDynamicWaasConnector(this.eoaConnector)) {
480
+ localAccount = yield this.eoaConnector.getViemAccount({
481
+ accountAddress: this.eoaAddress,
482
+ });
483
+ }
484
+ else if (isTurnkeyWalletConnector(this.eoaConnector)) {
485
+ localAccount = yield this.eoaConnector.getAccount();
486
+ }
487
+ else {
488
+ throw new DynamicError('signTransaction is only supported with Dynamic embedded wallets');
489
+ }
490
+ const tx = unFormatTransaction(transaction);
491
+ const publicClient = yield this.getPublicClient();
492
+ if (!publicClient) {
493
+ throw new DynamicError('Public client not available');
494
+ }
495
+ const preparedTx = yield publicClient.prepareTransactionRequest(Object.assign(Object.assign({}, tx), { account: this.eoaAddress }));
496
+ return localAccount.signTransaction(preparedTx);
497
+ }),
498
+ onSignTypedData: (_d) => __awaiter(this, [_d], void 0, function* ({ message }) {
471
499
  this._walletUiUtils.disabledConfirmationOnce();
472
500
  const signTypedData = JSON.parse(message);
473
501
  return provider.signTypedData({
@@ -485,7 +513,7 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
485
513
  });
486
514
  const transportWithEip5792Support = interceptTransport({
487
515
  onGetCapabilities: () => __awaiter(this, void 0, void 0, function* () { return this.getCapabilities(); }),
488
- onSendCalls: (_d) => __awaiter(this, [_d], void 0, function* ({ callParams }) {
516
+ onSendCalls: (_e) => __awaiter(this, [_e], void 0, function* ({ callParams }) {
489
517
  const result = yield this.sendCalls(callParams);
490
518
  return { id: result.userOpHash };
491
519
  }),
package/src/types.d.ts ADDED
@@ -0,0 +1,44 @@
1
+ import { KernelAccountClient } from '@zerodev/sdk/clients';
2
+ import { Client, LocalAccount, RpcSchema, Transport } from 'viem';
3
+ import { SmartAccount } from 'viem/account-abstraction';
4
+ import { type Chain as ViemChain } from 'viem/chains';
5
+ import { AccountAbstractionConnectorProps } from '@dynamic-labs/ethereum-aa-core';
6
+ import { RegisterEvmProvidersConfig } from '@dynamic-labs/ethereum-core';
7
+ import { EcdsaValidatorOptions, Provider, ProviderEntryPointVersionEnum, ProviderEnum, ProviderKernelVersionEnum, ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core';
8
+ import { GenericNetwork, WalletUiUtils } from '@dynamic-labs/types';
9
+ import { WalletBookSchema } from '@dynamic-labs/wallet-book';
10
+ import { IDynamicWaasConnector, InternalWalletConnector, ITurnkeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
11
+ export type IDynamicWaasConnectorWithViemAccount = IDynamicWaasConnector & {
12
+ getViemAccount: (props: {
13
+ accountAddress: string;
14
+ }) => Promise<LocalAccount>;
15
+ };
16
+ export type ITurnkeyWalletConnectorWithAccount = ITurnkeyWalletConnector & {
17
+ getAccount: () => Promise<LocalAccount>;
18
+ };
19
+ export type ZeroDevConnectorProps = AccountAbstractionConnectorProps & {
20
+ apiProviders: {
21
+ [key in ProviderEnum]?: Provider;
22
+ };
23
+ evmNetworks: GenericNetwork[];
24
+ walletBook: WalletBookSchema;
25
+ walletUiUtils: WalletUiUtils<InternalWalletConnector>;
26
+ bundlerProvider: ZerodevBundlerProvider | undefined;
27
+ enableEIP7702?: boolean;
28
+ providersConfig?: RegisterEvmProvidersConfig;
29
+ };
30
+ export type KernelClient = KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>;
31
+ export type ZeroDevWalletProperties = {
32
+ ecdsaProviderType?: EcdsaValidatorOptions;
33
+ kernelVersion?: ProviderKernelVersionEnum;
34
+ entryPointVersion?: ProviderEntryPointVersionEnum;
35
+ enableKernelV3Migration?: boolean;
36
+ defaultToKernelWithSponsorship?: boolean;
37
+ };
38
+ export type ProviderMap = {
39
+ [chainId: string]: {
40
+ signerAddress: string;
41
+ kernelClient: KernelClient;
42
+ kernelClientWithSponsorship: KernelClient;
43
+ };
44
+ };