@dynamic-labs/ethereum-aa 4.9.13-preview.0 → 4.10.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 (38) hide show
  1. package/CHANGELOG.md +9 -2
  2. package/package.cjs +1 -1
  3. package/package.js +1 -1
  4. package/package.json +9 -11
  5. package/src/ZeroDevConnector.cjs +17 -20
  6. package/src/ZeroDevConnector.d.ts +15 -21
  7. package/src/ZeroDevConnector.js +18 -21
  8. package/src/index.cjs +0 -11
  9. package/src/index.d.ts +0 -2
  10. package/src/index.js +1 -10
  11. package/src/utils/createEcsdaKernelAccountClient.d.ts +1 -1
  12. package/src/AccountAbstractionConnector.cjs +0 -75
  13. package/src/AccountAbstractionConnector.d.ts +0 -56
  14. package/src/AccountAbstractionConnector.js +0 -71
  15. package/src/ZKsync/client.cjs +0 -29
  16. package/src/ZKsync/client.d.ts +0 -24
  17. package/src/ZKsync/client.js +0 -25
  18. package/src/ZKsync/ecdsaAccount.cjs +0 -32
  19. package/src/ZKsync/ecdsaAccount.d.ts +0 -13
  20. package/src/ZKsync/ecdsaAccount.js +0 -28
  21. package/src/ZKsync/getEip712Domain.cjs +0 -62
  22. package/src/ZKsync/getEip712Domain.d.ts +0 -2
  23. package/src/ZKsync/getEip712Domain.js +0 -58
  24. package/src/ZKsync/types.cjs +0 -31
  25. package/src/ZKsync/types.d.ts +0 -9
  26. package/src/ZKsync/types.js +0 -27
  27. package/src/ZKsync/walletActions.cjs +0 -93
  28. package/src/ZKsync/walletActions.d.ts +0 -15
  29. package/src/ZKsync/walletActions.js +0 -87
  30. package/src/ZKsyncConnector.cjs +0 -430
  31. package/src/ZKsyncConnector.d.ts +0 -23259
  32. package/src/ZKsyncConnector.js +0 -426
  33. package/src/utils/abi.cjs +0 -88
  34. package/src/utils/abi.d.ts +0 -102
  35. package/src/utils/abi.js +0 -84
  36. package/src/utils/isZKsyncConnector.cjs +0 -8
  37. package/src/utils/isZKsyncConnector.d.ts +0 -3
  38. package/src/utils/isZKsyncConnector.js +0 -4
package/CHANGELOG.md CHANGED
@@ -1,10 +1,17 @@
1
1
 
2
- ### [4.9.13-preview.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.12...v4.9.13-preview.0) (2025-03-28)
2
+ ## [4.10.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.12...v4.10.0) (2025-03-30)
3
3
 
4
4
 
5
5
  ### Features
6
+ * Sui Support for branded wallets
7
+ * better handling of non-multiasset balance fetching ([#8419](https://github.com/dynamic-labs/dynamic-auth/issues/8419)) ([574d4ea](https://github.com/dynamic-labs/dynamic-auth/commit/574d4eabf85e6f85325dc374b6cd84aa9fdd7ed4))
6
8
 
7
- * add zk sync aa connector ([0859f98](https://github.com/dynamic-labs/dynamic-auth/commit/0859f9810442c9229a1465f59f2400272c83ba09))
9
+
10
+ ### Bug Fixes
11
+
12
+ * do not prompt passkey with 7702 on v2 wallets ([#8391](https://github.com/dynamic-labs/dynamic-auth/issues/8391)) ([bb91396](https://github.com/dynamic-labs/dynamic-auth/commit/bb913965121e97801922f5ca828d11e4a551a3b6))
13
+ * ensure the global wallet app url is used ([#8404](https://github.com/dynamic-labs/dynamic-auth/issues/8404)) ([23a7d91](https://github.com/dynamic-labs/dynamic-auth/commit/23a7d91b50cc85e67de52306f91163c675e0f007))
14
+ * **global-wallet-client:** use global wallet env id when storing data to ls ([#8405](https://github.com/dynamic-labs/dynamic-auth/issues/8405)) ([2b3d9ce](https://github.com/dynamic-labs/dynamic-auth/commit/2b3d9ce8dd82dda487759e0621c73bfad2842aef))
8
15
 
9
16
  ### [4.9.12](https://github.com/dynamic-labs/dynamic-auth/compare/v4.9.11...v4.9.12) (2025-03-28)
10
17
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.9.13-preview.0";
6
+ var version = "4.10.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.9.13-preview.0";
2
+ var version = "4.10.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.9.13-preview.0",
3
+ "version": "4.10.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,19 +18,17 @@
18
18
  },
19
19
  "homepage": "https://www.dynamic.xyz/",
20
20
  "dependencies": {
21
- "@dynamic-labs/sdk-api-core": "0.0.645",
21
+ "@dynamic-labs/sdk-api-core": "0.0.650",
22
22
  "@zerodev/ecdsa-validator": "5.4.4",
23
23
  "@zerodev/multi-chain-ecdsa-validator": "5.4.3",
24
24
  "@zerodev/sdk": "5.4.26",
25
- "abitype": "1.0.2",
26
- "zksync-sso": "0.0.0-beta.12",
27
- "@dynamic-labs/assert-package-version": "4.9.13-preview.0",
28
- "@dynamic-labs/ethereum-core": "4.9.13-preview.0",
29
- "@dynamic-labs/logger": "4.9.13-preview.0",
30
- "@dynamic-labs/types": "4.9.13-preview.0",
31
- "@dynamic-labs/utils": "4.9.13-preview.0",
32
- "@dynamic-labs/wallet-book": "4.9.13-preview.0",
33
- "@dynamic-labs/wallet-connector-core": "4.9.13-preview.0"
25
+ "@dynamic-labs/assert-package-version": "4.10.0",
26
+ "@dynamic-labs/ethereum-core": "4.10.0",
27
+ "@dynamic-labs/logger": "4.10.0",
28
+ "@dynamic-labs/types": "4.10.0",
29
+ "@dynamic-labs/utils": "4.10.0",
30
+ "@dynamic-labs/wallet-book": "4.10.0",
31
+ "@dynamic-labs/wallet-connector-core": "4.10.0"
34
32
  },
35
33
  "peerDependencies": {
36
34
  "viem": "^2.21.55"
@@ -16,9 +16,8 @@ var createEcsdaKernelAccountClient = require('./utils/createEcsdaKernelAccountCl
16
16
  var getEcdsaValidator = require('./utils/getEcdsaValidator.cjs');
17
17
  var getEntryPoint = require('./utils/getEntryPoint.cjs');
18
18
  var getKernelVersion = require('./utils/getKernelVersion.cjs');
19
- var AccountAbstractionConnector = require('./AccountAbstractionConnector.cjs');
20
19
 
21
- class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionConnector {
20
+ class ZeroDevConnector extends walletConnectorCore.WalletConnectorBase {
22
21
  constructor(opts) {
23
22
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
24
23
  super(opts);
@@ -29,6 +28,7 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
29
28
  this.ChainWallet = ethereumCore.EthereumWallet;
30
29
  this.connectedChain = 'EVM';
31
30
  this.supportedChains = ['ETH', 'EVM'];
31
+ this.isGasSponsorshipDisabled = false;
32
32
  this.isEmbeddedWallet = true;
33
33
  this.providersFromApi = [];
34
34
  this.name = 'ZeroDev';
@@ -60,9 +60,6 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
60
60
  this.defaultChainId = defaultProvider === null || defaultProvider === void 0 ? void 0 : defaultProvider.chain;
61
61
  this.ecdsaProviderType = (_j = opts.apiProviders.zerodev) === null || _j === void 0 ? void 0 : _j.ecdsaProviderType;
62
62
  }
63
- confirmTransactionStatus() {
64
- throw new Error('confirmTransactionStatus not implemented in ZeroDevConnector');
65
- }
66
63
  get currentNetworkProvider() {
67
64
  // check if the last used chain id is in the provider map
68
65
  if (this.providerMap[this.lastUsedChainId]) {
@@ -107,6 +104,13 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
107
104
  handleChainChange(chainId);
108
105
  });
109
106
  }
107
+ /**
108
+ * @deprecated You should get the EOA connector by passing the SCW to getEOAConnector,
109
+ * from the useSmartWallet hook
110
+ */
111
+ getEOAConnector() {
112
+ return this.eoaConnector;
113
+ }
110
114
  getAccountAbstractionProvider({ withSponsorship, } = {}) {
111
115
  if (withSponsorship && this.kernelClientWithSponsorship) {
112
116
  return this.kernelClientWithSponsorship;
@@ -118,14 +122,6 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
118
122
  utils.StorageService.removeItem(constants.ZERO_DEV_LAST_USED_CHAIN_ID_KEY);
119
123
  });
120
124
  }
121
- initialize(_a) {
122
- return _tslib.__awaiter(this, arguments, void 0, function* ({ smartWalletAddress, eoaAddress, eoaConnector, properties, shouldSetEoaConnector, }) {
123
- yield this.registerEoa(Object.assign({ eoaAddress,
124
- eoaConnector,
125
- shouldSetEoaConnector,
126
- smartWalletAddress }, properties));
127
- });
128
- }
129
125
  registerEoa(_a) {
130
126
  return _tslib.__awaiter(this, void 0, void 0, function* () {
131
127
  var { smartWalletAddress, eoaAddress, eoaConnector, shouldSetEoaConnector = false } = _a, properties = _tslib.__rest(_a, ["smartWalletAddress", "eoaAddress", "eoaConnector", "shouldSetEoaConnector"]);
@@ -262,6 +258,7 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
262
258
  signer,
263
259
  }),
264
260
  this.createKernelClient({
261
+ authorization: this.authorization,
265
262
  chainId: chain,
266
263
  paymaster: 'SPONSOR',
267
264
  projectId: clientId,
@@ -285,7 +282,7 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
285
282
  });
286
283
  }
287
284
  createKernelClient(_a) {
288
- return _tslib.__awaiter(this, arguments, void 0, function* ({ chainId, projectId, signer, paymaster, }) {
285
+ return _tslib.__awaiter(this, arguments, void 0, function* ({ chainId, projectId, signer, paymaster, authorization, }) {
289
286
  if (chainId && this.providerMap[chainId]) {
290
287
  return paymaster === 'SPONSOR'
291
288
  ? this.providerMap[chainId].kernelClientWithSponsorship
@@ -296,9 +293,9 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
296
293
  throw new utils.DynamicError('No EOA connector');
297
294
  const chain = ethereumCore.chainsMap[chainId];
298
295
  let kernelClient;
299
- if (this.enableEIP7702Mode && this.authorization) {
296
+ if (this.enableEIP7702Mode) {
300
297
  kernelClient = yield createEcsdaKernelAccountClient.createEcdsaKernelAccountClientWith7702({
301
- authorization: this.authorization,
298
+ authorization,
302
299
  bundlerRpc: ZeroDevConnector.bundlerRpc,
303
300
  chain,
304
301
  ecdsaValidator: getEcdsaValidator.getEcdsaValidator(this.ecdsaProviderType),
@@ -372,7 +369,7 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
372
369
  onSendTransaction: (_b) => _tslib.__awaiter(this, [_b], void 0, function* ({ transaction }) {
373
370
  try {
374
371
  this._walletUiUtils.disabledConfirmationOnce();
375
- const effectiveProvider = this.isGasSponsorshipDisabled()
372
+ const effectiveProvider = this.isGasSponsorshipDisabled
376
373
  ? provider
377
374
  : this.kernelClientWithSponsorship;
378
375
  if (!effectiveProvider) {
@@ -543,6 +540,9 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
543
540
  return sponsored;
544
541
  });
545
542
  }
543
+ disableGasSponsorshipOnce() {
544
+ this.isGasSponsorshipDisabled = true;
545
+ }
546
546
  getBalance(address) {
547
547
  return _tslib.__awaiter(this, void 0, void 0, function* () {
548
548
  var _a;
@@ -604,9 +604,6 @@ class ZeroDevConnector extends AccountAbstractionConnector.AccountAbstractionCon
604
604
  getEnabledNetworks() {
605
605
  return this.evmNetworks;
606
606
  }
607
- initializeZksyncConnector() {
608
- throw new Error('Not implemented');
609
- }
610
607
  }
611
608
 
612
609
  exports.ZeroDevConnector = ZeroDevConnector;
@@ -6,12 +6,11 @@ import { type Chain as ViemChain } from 'viem/chains';
6
6
  import { EntryPointType, KERNEL_VERSION_TYPE } from '@zerodev/sdk/types';
7
7
  import { EthereumWallet, RegisterEvmProvidersConfig } from '@dynamic-labs/ethereum-core';
8
8
  import { EcdsaValidatorOptions, Provider, ProviderEntryPointVersionEnum, ProviderEnum, ProviderKernelVersionEnum, ProviderMultichainAccountAbstractionProviders } from '@dynamic-labs/sdk-api-core';
9
- import { Chain, InternalWalletConnector, IZeroDevConnector } from '@dynamic-labs/wallet-connector-core';
9
+ import { Chain, IZeroDevConnector, InternalWalletConnector, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
10
10
  import { WalletBookSchema } from '@dynamic-labs/wallet-book';
11
- import { GenericNetwork, IUITransaction, TransactionReceipt, WalletUiUtils } from '@dynamic-labs/types';
11
+ import { EvmNetwork, GenericNetwork, IUITransaction, WalletUiUtils } from '@dynamic-labs/types';
12
12
  import { BundlerProvider } from './utils';
13
- import { AccountAbstractionConnector, AccountAbstractionConnectorProps } from './AccountAbstractionConnector';
14
- type ZeroDevConnectorProps = AccountAbstractionConnectorProps & {
13
+ type ZeroDevConnectorProps = {
15
14
  apiProviders: {
16
15
  [key in ProviderEnum]?: Provider;
17
16
  };
@@ -24,7 +23,7 @@ type ZeroDevConnectorProps = AccountAbstractionConnectorProps & {
24
23
  providersConfig?: RegisterEvmProvidersConfig;
25
24
  };
26
25
  type KernelClient = KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>;
27
- export declare class ZeroDevConnector extends AccountAbstractionConnector implements IZeroDevConnector {
26
+ export declare class ZeroDevConnector extends WalletConnectorBase<typeof EthereumWallet> implements IZeroDevConnector {
28
27
  clientId: string;
29
28
  eoaConnector: InternalWalletConnector | undefined;
30
29
  eoaAddress: string | undefined;
@@ -33,7 +32,9 @@ export declare class ZeroDevConnector extends AccountAbstractionConnector implem
33
32
  ChainWallet: typeof EthereumWallet;
34
33
  connectedChain: Chain;
35
34
  supportedChains: Chain[];
35
+ evmNetworks: EvmNetwork[];
36
36
  providersConfig: RegisterEvmProvidersConfig;
37
+ private isGasSponsorshipDisabled;
37
38
  isEmbeddedWallet: boolean;
38
39
  entryPoint: EntryPointType<EntryPointVersion>;
39
40
  kernelVersion: KERNEL_VERSION_TYPE;
@@ -61,9 +62,9 @@ export declare class ZeroDevConnector extends AccountAbstractionConnector implem
61
62
  name: string;
62
63
  };
63
64
  enableEIP7702Mode: boolean;
65
+ private _walletUiUtils;
64
66
  private authorization?;
65
67
  constructor(opts: ZeroDevConnectorProps);
66
- confirmTransactionStatus(): Promise<TransactionReceipt>;
67
68
  get currentNetworkProvider(): {
68
69
  kernelClient: KernelClient;
69
70
  kernelClientWithSponsorship: KernelClient;
@@ -75,22 +76,15 @@ export declare class ZeroDevConnector extends AccountAbstractionConnector implem
75
76
  switchNetwork({ networkChainId, }: {
76
77
  networkChainId?: number | string;
77
78
  }): Promise<void>;
78
- getAccountAbstractionProvider<T = KernelClient | undefined>({ withSponsorship, }?: {
79
+ /**
80
+ * @deprecated You should get the EOA connector by passing the SCW to getEOAConnector,
81
+ * from the useSmartWallet hook
82
+ */
83
+ getEOAConnector(): InternalWalletConnector | undefined;
84
+ getAccountAbstractionProvider({ withSponsorship, }?: {
79
85
  withSponsorship?: boolean;
80
- }): T;
86
+ }): KernelClient | undefined;
81
87
  endSession(): Promise<void>;
82
- initialize({ smartWalletAddress, eoaAddress, eoaConnector, properties, shouldSetEoaConnector, }: {
83
- smartWalletAddress: string;
84
- eoaAddress: string;
85
- eoaConnector: InternalWalletConnector;
86
- shouldSetEoaConnector: boolean;
87
- properties?: {
88
- ecdsaProviderType?: EcdsaValidatorOptions;
89
- kernelVersion?: ProviderKernelVersionEnum;
90
- entryPointVersion?: ProviderEntryPointVersionEnum;
91
- enableKernelV3Migration?: boolean;
92
- };
93
- }): Promise<void>;
94
88
  registerEoa({ smartWalletAddress, eoaAddress, eoaConnector, shouldSetEoaConnector, ...properties }: {
95
89
  smartWalletAddress: string;
96
90
  eoaAddress: string;
@@ -7818,12 +7812,12 @@ export declare class ZeroDevConnector extends AccountAbstractionConnector implem
7818
7812
  value?: bigint;
7819
7813
  data?: string;
7820
7814
  }): Promise<boolean>;
7815
+ disableGasSponsorshipOnce(): void;
7821
7816
  getBalance(address: string): Promise<string | undefined>;
7822
7817
  signMessage(messageToSign: string): Promise<string | undefined>;
7823
7818
  createUiTransaction(from: string): Promise<IUITransaction>;
7824
7819
  validateActiveWallet(expectedAddress: string): Promise<void>;
7825
7820
  getBlockExplorerUrlsForCurrentNetwork(): Promise<string[]>;
7826
7821
  getEnabledNetworks(): GenericNetwork[];
7827
- initializeZksyncConnector(): Promise<void>;
7828
7822
  }
7829
7823
  export {};
@@ -4,7 +4,7 @@ import { publicActions, custom, createWalletClient, toHex, formatEther } from 'v
4
4
  import { toAccount } from 'viem/accounts';
5
5
  import { KERNEL_V3_3_BETA, KernelVersionToAddressesMap, getEntryPoint as getEntryPoint$1 } from '@zerodev/sdk/constants';
6
6
  import { EthereumWallet, isEthWalletConnector, chainsMap, confirmationTransport, unFormatTransaction, createViemUiTransaction } from '@dynamic-labs/ethereum-core';
7
- import { eventListenerHandlers, isTurnkeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
7
+ import { WalletConnectorBase, eventListenerHandlers, isTurnkeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
8
8
  import { parseEvmNetworks, StorageService, DynamicError, DeferredPromise, parseChainId, wrapMethodWithCallback, TransactionGasCannotBeSponsoredError, InsufficientFundsError } from '@dynamic-labs/utils';
9
9
  import { ZERO_DEV_LAST_USED_CHAIN_ID_KEY } from './constants.js';
10
10
  import { logger } from './utils/logger.js';
@@ -12,9 +12,8 @@ import { createEcdsaKernelAccountClientWith7702, createEcdsaKernelAccountClient
12
12
  import { getEcdsaValidator } from './utils/getEcdsaValidator.js';
13
13
  import { getEntryPoint } from './utils/getEntryPoint.js';
14
14
  import { getKernelVersion } from './utils/getKernelVersion.js';
15
- import { AccountAbstractionConnector } from './AccountAbstractionConnector.js';
16
15
 
17
- class ZeroDevConnector extends AccountAbstractionConnector {
16
+ class ZeroDevConnector extends WalletConnectorBase {
18
17
  constructor(opts) {
19
18
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
20
19
  super(opts);
@@ -25,6 +24,7 @@ class ZeroDevConnector extends AccountAbstractionConnector {
25
24
  this.ChainWallet = EthereumWallet;
26
25
  this.connectedChain = 'EVM';
27
26
  this.supportedChains = ['ETH', 'EVM'];
27
+ this.isGasSponsorshipDisabled = false;
28
28
  this.isEmbeddedWallet = true;
29
29
  this.providersFromApi = [];
30
30
  this.name = 'ZeroDev';
@@ -56,9 +56,6 @@ class ZeroDevConnector extends AccountAbstractionConnector {
56
56
  this.defaultChainId = defaultProvider === null || defaultProvider === void 0 ? void 0 : defaultProvider.chain;
57
57
  this.ecdsaProviderType = (_j = opts.apiProviders.zerodev) === null || _j === void 0 ? void 0 : _j.ecdsaProviderType;
58
58
  }
59
- confirmTransactionStatus() {
60
- throw new Error('confirmTransactionStatus not implemented in ZeroDevConnector');
61
- }
62
59
  get currentNetworkProvider() {
63
60
  // check if the last used chain id is in the provider map
64
61
  if (this.providerMap[this.lastUsedChainId]) {
@@ -103,6 +100,13 @@ class ZeroDevConnector extends AccountAbstractionConnector {
103
100
  handleChainChange(chainId);
104
101
  });
105
102
  }
103
+ /**
104
+ * @deprecated You should get the EOA connector by passing the SCW to getEOAConnector,
105
+ * from the useSmartWallet hook
106
+ */
107
+ getEOAConnector() {
108
+ return this.eoaConnector;
109
+ }
106
110
  getAccountAbstractionProvider({ withSponsorship, } = {}) {
107
111
  if (withSponsorship && this.kernelClientWithSponsorship) {
108
112
  return this.kernelClientWithSponsorship;
@@ -114,14 +118,6 @@ class ZeroDevConnector extends AccountAbstractionConnector {
114
118
  StorageService.removeItem(ZERO_DEV_LAST_USED_CHAIN_ID_KEY);
115
119
  });
116
120
  }
117
- initialize(_a) {
118
- return __awaiter(this, arguments, void 0, function* ({ smartWalletAddress, eoaAddress, eoaConnector, properties, shouldSetEoaConnector, }) {
119
- yield this.registerEoa(Object.assign({ eoaAddress,
120
- eoaConnector,
121
- shouldSetEoaConnector,
122
- smartWalletAddress }, properties));
123
- });
124
- }
125
121
  registerEoa(_a) {
126
122
  return __awaiter(this, void 0, void 0, function* () {
127
123
  var { smartWalletAddress, eoaAddress, eoaConnector, shouldSetEoaConnector = false } = _a, properties = __rest(_a, ["smartWalletAddress", "eoaAddress", "eoaConnector", "shouldSetEoaConnector"]);
@@ -258,6 +254,7 @@ class ZeroDevConnector extends AccountAbstractionConnector {
258
254
  signer,
259
255
  }),
260
256
  this.createKernelClient({
257
+ authorization: this.authorization,
261
258
  chainId: chain,
262
259
  paymaster: 'SPONSOR',
263
260
  projectId: clientId,
@@ -281,7 +278,7 @@ class ZeroDevConnector extends AccountAbstractionConnector {
281
278
  });
282
279
  }
283
280
  createKernelClient(_a) {
284
- return __awaiter(this, arguments, void 0, function* ({ chainId, projectId, signer, paymaster, }) {
281
+ return __awaiter(this, arguments, void 0, function* ({ chainId, projectId, signer, paymaster, authorization, }) {
285
282
  if (chainId && this.providerMap[chainId]) {
286
283
  return paymaster === 'SPONSOR'
287
284
  ? this.providerMap[chainId].kernelClientWithSponsorship
@@ -292,9 +289,9 @@ class ZeroDevConnector extends AccountAbstractionConnector {
292
289
  throw new DynamicError('No EOA connector');
293
290
  const chain = chainsMap[chainId];
294
291
  let kernelClient;
295
- if (this.enableEIP7702Mode && this.authorization) {
292
+ if (this.enableEIP7702Mode) {
296
293
  kernelClient = yield createEcdsaKernelAccountClientWith7702({
297
- authorization: this.authorization,
294
+ authorization,
298
295
  bundlerRpc: ZeroDevConnector.bundlerRpc,
299
296
  chain,
300
297
  ecdsaValidator: getEcdsaValidator(this.ecdsaProviderType),
@@ -368,7 +365,7 @@ class ZeroDevConnector extends AccountAbstractionConnector {
368
365
  onSendTransaction: (_b) => __awaiter(this, [_b], void 0, function* ({ transaction }) {
369
366
  try {
370
367
  this._walletUiUtils.disabledConfirmationOnce();
371
- const effectiveProvider = this.isGasSponsorshipDisabled()
368
+ const effectiveProvider = this.isGasSponsorshipDisabled
372
369
  ? provider
373
370
  : this.kernelClientWithSponsorship;
374
371
  if (!effectiveProvider) {
@@ -539,6 +536,9 @@ class ZeroDevConnector extends AccountAbstractionConnector {
539
536
  return sponsored;
540
537
  });
541
538
  }
539
+ disableGasSponsorshipOnce() {
540
+ this.isGasSponsorshipDisabled = true;
541
+ }
542
542
  getBalance(address) {
543
543
  return __awaiter(this, void 0, void 0, function* () {
544
544
  var _a;
@@ -600,9 +600,6 @@ class ZeroDevConnector extends AccountAbstractionConnector {
600
600
  getEnabledNetworks() {
601
601
  return this.evmNetworks;
602
602
  }
603
- initializeZksyncConnector() {
604
- throw new Error('Not implemented');
605
- }
606
603
  }
607
604
 
608
605
  export { ZeroDevConnector };
package/src/index.cjs CHANGED
@@ -6,7 +6,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var assertPackageVersion = require('@dynamic-labs/assert-package-version');
7
7
  var _package = require('../package.cjs');
8
8
  var ZeroDevConnector = require('./ZeroDevConnector.cjs');
9
- var ZKsyncConnector = require('./ZKsyncConnector.cjs');
10
9
  var createEcsdaKernelAccountClient = require('./utils/createEcsdaKernelAccountClient.cjs');
11
10
  var fetchZeroDevChain = require('./utils/fetchZeroDevChain.cjs');
12
11
  var getEcdsaValidator = require('./utils/getEcdsaValidator.cjs');
@@ -14,7 +13,6 @@ var getEntryPoint = require('./utils/getEntryPoint.cjs');
14
13
  var getKernelVersion = require('./utils/getKernelVersion.cjs');
15
14
  var ethereumAa = require('./ethereum-aa.cjs');
16
15
  var isZeroDevConnector = require('./utils/isZeroDevConnector.cjs');
17
- var isZKsyncConnector = require('./utils/isZKsyncConnector.cjs');
18
16
 
19
17
  assertPackageVersion.assertPackageVersion('@dynamic-labs/ethereum-aa', _package.version);
20
18
  const ZeroDevSmartWalletConnectorsWithConfig = ({ bundlerProvider, bundlerRpc, paymasterRpc, kernelDelegationAddress, } = {}) => {
@@ -31,13 +29,6 @@ const ZeroDevSmartWalletConnectors = (props) => {
31
29
  }
32
30
  return [];
33
31
  };
34
- const ZKsyncSmartWalletConnectors = (props) => {
35
- var _a;
36
- if ((_a = props.apiProviders) === null || _a === void 0 ? void 0 : _a.zksync) {
37
- return [ZKsyncConnector.ZKsyncConnector];
38
- }
39
- return [];
40
- };
41
32
 
42
33
  exports.createEcdsaKernelAccountClient = createEcsdaKernelAccountClient.createEcdsaKernelAccountClient;
43
34
  exports.fetchZeroDevChain = fetchZeroDevChain.fetchZeroDevChain;
@@ -46,7 +37,5 @@ exports.getEntryPoint = getEntryPoint.getEntryPoint;
46
37
  exports.getKernelVersion = getKernelVersion.getKernelVersion;
47
38
  exports.EthereumAaConnector = ethereumAa.EthereumAaConnector;
48
39
  exports.isZeroDevConnector = isZeroDevConnector.isZeroDevConnector;
49
- exports.isZKsyncConnector = isZKsyncConnector.isZKsyncConnector;
50
- exports.ZKsyncSmartWalletConnectors = ZKsyncSmartWalletConnectors;
51
40
  exports.ZeroDevSmartWalletConnectors = ZeroDevSmartWalletConnectors;
52
41
  exports.ZeroDevSmartWalletConnectorsWithConfig = ZeroDevSmartWalletConnectorsWithConfig;
package/src/index.d.ts CHANGED
@@ -7,7 +7,6 @@ export { getEntryPoint } from './utils/getEntryPoint';
7
7
  export { getKernelVersion } from './utils/getKernelVersion';
8
8
  export * from './ethereum-aa';
9
9
  export { isZeroDevConnector } from './utils/isZeroDevConnector';
10
- export { isZKsyncConnector } from './utils/isZKsyncConnector';
11
10
  export declare const ZeroDevSmartWalletConnectorsWithConfig: ({ bundlerProvider, bundlerRpc, paymasterRpc, kernelDelegationAddress, }?: {
12
11
  bundlerProvider?: BundlerProvider;
13
12
  bundlerRpc?: string;
@@ -15,4 +14,3 @@ export declare const ZeroDevSmartWalletConnectorsWithConfig: ({ bundlerProvider,
15
14
  kernelDelegationAddress?: `0x${string}`;
16
15
  }) => (props: any) => WalletConnectorConstructor[];
17
16
  export declare const ZeroDevSmartWalletConnectors: (props: any) => WalletConnectorConstructor[];
18
- export declare const ZKsyncSmartWalletConnectors: (props: any) => WalletConnectorConstructor[];
package/src/index.js CHANGED
@@ -2,7 +2,6 @@
2
2
  import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
3
3
  import { version } from '../package.js';
4
4
  import { ZeroDevConnector } from './ZeroDevConnector.js';
5
- import { ZKsyncConnector } from './ZKsyncConnector.js';
6
5
  export { createEcdsaKernelAccountClient } from './utils/createEcsdaKernelAccountClient.js';
7
6
  export { fetchZeroDevChain } from './utils/fetchZeroDevChain.js';
8
7
  export { getEcdsaValidator } from './utils/getEcdsaValidator.js';
@@ -10,7 +9,6 @@ export { getEntryPoint } from './utils/getEntryPoint.js';
10
9
  export { getKernelVersion } from './utils/getKernelVersion.js';
11
10
  export { EthereumAaConnector } from './ethereum-aa.js';
12
11
  export { isZeroDevConnector } from './utils/isZeroDevConnector.js';
13
- export { isZKsyncConnector } from './utils/isZKsyncConnector.js';
14
12
 
15
13
  assertPackageVersion('@dynamic-labs/ethereum-aa', version);
16
14
  const ZeroDevSmartWalletConnectorsWithConfig = ({ bundlerProvider, bundlerRpc, paymasterRpc, kernelDelegationAddress, } = {}) => {
@@ -27,12 +25,5 @@ const ZeroDevSmartWalletConnectors = (props) => {
27
25
  }
28
26
  return [];
29
27
  };
30
- const ZKsyncSmartWalletConnectors = (props) => {
31
- var _a;
32
- if ((_a = props.apiProviders) === null || _a === void 0 ? void 0 : _a.zksync) {
33
- return [ZKsyncConnector];
34
- }
35
- return [];
36
- };
37
28
 
38
- export { ZKsyncSmartWalletConnectors, ZeroDevSmartWalletConnectors, ZeroDevSmartWalletConnectorsWithConfig };
29
+ export { ZeroDevSmartWalletConnectors, ZeroDevSmartWalletConnectorsWithConfig };
@@ -24,6 +24,6 @@ type CommonClientParams<TChain extends Chain | undefined = Chain | undefined> =
24
24
  };
25
25
  export declare const createEcdsaKernelAccountClient: <entryPoint extends EntryPointVersion, TChain extends ViemChain | undefined = ViemChain | undefined>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster, entryPoint, kernelVersion, ecdsaValidator, enableKernelV3Migration, }: CommonClientParams<TChain>) => Promise<KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>>;
26
26
  export declare const createEcdsaKernelAccountClientWith7702: <TChain extends ViemChain | undefined = ViemChain | undefined>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, authorization, paymaster, entryPoint, kernelVersion, ecdsaValidator, }: CommonClientParams<TChain> & {
27
- authorization: SignAuthorizationReturnType;
27
+ authorization?: SignAuthorizationReturnType;
28
28
  }) => Promise<KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>>;
29
29
  export {};
@@ -1,75 +0,0 @@
1
- 'use client'
2
- 'use strict';
3
-
4
- Object.defineProperty(exports, '__esModule', { value: true });
5
-
6
- var _tslib = require('../_virtual/_tslib.cjs');
7
- var viem = require('viem');
8
- var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
9
- var utils = require('@dynamic-labs/utils');
10
- var ethereumCore = require('@dynamic-labs/ethereum-core');
11
-
12
- class AccountAbstractionConnector extends walletConnectorCore.WalletConnectorBase {
13
- constructor(opts) {
14
- super({ walletBook: opts.walletBook });
15
- this._isGasSponsorshipDisabled = false;
16
- this.evmNetworks = [];
17
- this.ChainWallet = ethereumCore.EthereumWallet;
18
- this.isEmbeddedWallet = true;
19
- this.connectedChain = 'EVM';
20
- this.supportedChains = ['ETH', 'EVM'];
21
- this._walletUiUtils = opts.walletUiUtils;
22
- this.evmNetworks = opts.evmNetworks;
23
- }
24
- /**
25
- * Gets the EOA connector associated with this account abstraction wallet
26
- * @deprecated Use getEOAConnector with a specific smart contract wallet address instead
27
- */
28
- getEOAConnector() {
29
- return this.eoaConnector;
30
- }
31
- /**
32
- * Disables gas sponsorship for the next transaction
33
- */
34
- disableGasSponsorshipOnce() {
35
- this._isGasSponsorshipDisabled = true;
36
- }
37
- /**
38
- * Protected method to check if gas sponsorship is disabled
39
- */
40
- isGasSponsorshipDisabled() {
41
- return this._isGasSponsorshipDisabled;
42
- }
43
- /**
44
- * Gets the enabled networks
45
- */
46
- getEnabledNetworks() {
47
- return this.evmNetworks;
48
- }
49
- /**
50
- * Gets the balance for an address
51
- */
52
- getBalance(address) {
53
- return _tslib.__awaiter(this, void 0, void 0, function* () {
54
- const publicClient = yield this.getPublicClient();
55
- if (!publicClient) {
56
- throw new utils.DynamicError('No public client available');
57
- }
58
- const balance = yield publicClient.getBalance({ address });
59
- return viem.formatEther(balance);
60
- });
61
- }
62
- /**
63
- * Validates that the expected wallet is active
64
- */
65
- validateActiveWallet(expectedAddress) {
66
- return _tslib.__awaiter(this, void 0, void 0, function* () {
67
- const currentAddress = yield this.getAddress();
68
- if ((currentAddress === null || currentAddress === void 0 ? void 0 : currentAddress.toLowerCase()) !== expectedAddress.toLowerCase()) {
69
- throw new utils.DynamicError('Invalid active wallet');
70
- }
71
- });
72
- }
73
- }
74
-
75
- exports.AccountAbstractionConnector = AccountAbstractionConnector;
@@ -1,56 +0,0 @@
1
- import { Chain, InternalWalletConnector, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
2
- import { EthereumWallet } from '@dynamic-labs/ethereum-core';
3
- import { IUITransaction, WalletUiUtils, GenericNetwork } from '@dynamic-labs/types';
4
- import { WalletBookSchema } from '@dynamic-labs/wallet-book';
5
- export type AccountAbstractionConnectorProps = {
6
- walletUiUtils: WalletUiUtils<InternalWalletConnector>;
7
- walletBook: WalletBookSchema;
8
- evmNetworks: GenericNetwork[];
9
- };
10
- export declare abstract class AccountAbstractionConnector extends WalletConnectorBase<typeof EthereumWallet> {
11
- abstract eoaConnector: InternalWalletConnector | undefined;
12
- abstract eoaAddress: string | undefined;
13
- protected _walletUiUtils: WalletUiUtils<InternalWalletConnector>;
14
- private _isGasSponsorshipDisabled;
15
- protected evmNetworks: GenericNetwork[];
16
- ChainWallet: typeof EthereumWallet;
17
- isEmbeddedWallet: boolean;
18
- connectedChain: Chain;
19
- supportedChains: Chain[];
20
- constructor(opts: AccountAbstractionConnectorProps);
21
- /**
22
- * Gets the EOA connector associated with this account abstraction wallet
23
- * @deprecated Use getEOAConnector with a specific smart contract wallet address instead
24
- */
25
- getEOAConnector(): InternalWalletConnector | undefined;
26
- /**
27
- * Disables gas sponsorship for the next transaction
28
- */
29
- disableGasSponsorshipOnce(): void;
30
- /**
31
- * Protected method to check if gas sponsorship is disabled
32
- */
33
- protected isGasSponsorshipDisabled(): boolean;
34
- /**
35
- * Gets the enabled networks
36
- */
37
- getEnabledNetworks(): GenericNetwork[];
38
- /**
39
- * Gets the balance for an address
40
- */
41
- getBalance(address: string): Promise<string | undefined>;
42
- /**
43
- * Validates that the expected wallet is active
44
- */
45
- validateActiveWallet(expectedAddress: string): Promise<void>;
46
- abstract canSponsorTransactionGas(transaction: {
47
- from: string;
48
- to?: string;
49
- value?: bigint;
50
- data?: string;
51
- }): Promise<boolean>;
52
- abstract createUiTransaction(from: string): Promise<IUITransaction>;
53
- abstract getAccountAbstractionProvider<T>({ withSponsorship, }: {
54
- withSponsorship: boolean;
55
- }): Promise<T>;
56
- }