@dynamic-labs/ethereum-aa 3.0.0-alpha.9 → 3.0.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.
@@ -4,7 +4,6 @@
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');
8
7
  var accounts = require('@zerodev/sdk/accounts');
9
8
  var clients = require('@zerodev/sdk/clients');
10
9
  var viem = require('viem');
@@ -24,29 +23,33 @@ const getZeroDevPaymasterRPC = (projectId, provider) => {
24
23
  return rpc;
25
24
  };
26
25
  const isERC20 = (value) => viem.isAddress(value);
27
- const createEcdsaKernelAccountClient = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ chain, projectId, signer, provider, index, paymaster = 'SPONSOR', entryPointAddress, }) {
26
+ const createEcdsaKernelAccountClient = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, index, paymaster = 'SPONSOR', entryPointAddress, kernelVersion, ecdsaValidator, }) {
27
+ const resolvedBundlerRpc = bundlerRpc !== null && bundlerRpc !== void 0 ? bundlerRpc : getZeroDevBundlerRPC(projectId, provider);
28
+ const resolvedPaymasterRpc = paymasterRpc !== null && paymasterRpc !== void 0 ? paymasterRpc : getZeroDevPaymasterRPC(projectId, provider);
28
29
  const publicClient = viem.createPublicClient({
29
- transport: viem.http(getZeroDevBundlerRPC(projectId, provider)),
30
+ transport: viem.http(resolvedBundlerRpc),
30
31
  });
31
- const ecdsaValidator$1 = yield ecdsaValidator.signerToEcdsaValidator(publicClient, {
32
+ const validator = yield ecdsaValidator(publicClient, {
32
33
  entryPoint: entryPointAddress,
34
+ kernelVersion,
33
35
  signer,
34
36
  });
35
37
  const account = yield accounts.createKernelAccount(publicClient, {
36
38
  entryPoint: entryPointAddress,
37
39
  index,
40
+ kernelVersion,
38
41
  plugins: {
39
- sudo: ecdsaValidator$1,
42
+ sudo: validator,
40
43
  },
41
44
  });
42
45
  const zerodevPaymaster = clients.createZeroDevPaymasterClient({
43
46
  chain: chain,
44
47
  entryPoint: entryPointAddress,
45
- transport: viem.http(getZeroDevPaymasterRPC(projectId, provider)),
48
+ transport: viem.http(resolvedPaymasterRpc),
46
49
  });
47
50
  const kernelClient = clients.createKernelAccountClient({
48
51
  account,
49
- bundlerTransport: viem.http(getZeroDevBundlerRPC(projectId, provider)),
52
+ bundlerTransport: viem.http(resolvedBundlerRpc),
50
53
  chain,
51
54
  entryPoint: entryPointAddress,
52
55
  middleware: paymaster !== 'NONE'
@@ -3,17 +3,22 @@ import { KernelAccountClient } from '@zerodev/sdk/clients';
3
3
  import { SmartAccountSigner } from 'permissionless/accounts';
4
4
  import { EntryPoint } from 'permissionless/types';
5
5
  import { Address, HttpTransport, Chain } from 'viem';
6
+ import { GetKernelVersion } from '@zerodev/sdk/types';
6
7
  export type BundlerProvider = 'STACKUP' | 'PIMLICO' | 'ALCHEMY' | 'GELATO';
7
8
  export type ERC20Paymaster = Address;
8
9
  export type PaymasterType = 'NONE' | 'SPONSOR' | ERC20Paymaster;
9
10
  export declare const getZeroDevBundlerRPC: (projectId: string, provider?: BundlerProvider) => string;
10
11
  export declare const getZeroDevPaymasterRPC: (projectId: string, provider?: BundlerProvider) => string;
11
- export declare const createEcdsaKernelAccountClient: <entryPoint extends EntryPoint, TChain extends Chain | undefined = Chain | undefined, TSource extends string = "custom", TAddress extends `0x${string}` = `0x${string}`>({ chain, projectId, signer, provider, index, paymaster, entryPointAddress, }: {
12
+ export declare const createEcdsaKernelAccountClient: <entryPoint extends EntryPoint, TChain extends Chain | undefined = Chain | undefined, TSource extends string = "custom", TAddress extends `0x${string}` = `0x${string}`>({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, index, paymaster, entryPointAddress, kernelVersion, ecdsaValidator, }: {
13
+ bundlerRpc?: string;
12
14
  chain: TChain;
13
15
  projectId: string;
14
16
  signer: SmartAccountSigner<TSource, TAddress>;
15
17
  paymaster: PaymasterType;
18
+ paymasterRpc?: string;
16
19
  entryPointAddress: entryPoint;
17
20
  provider?: BundlerProvider;
18
21
  index?: bigint;
22
+ kernelVersion: GetKernelVersion<entryPoint>;
23
+ ecdsaValidator: any;
19
24
  }) => Promise<KernelAccountClient<entryPoint, HttpTransport, TChain, KernelSmartAccount<entryPoint, HttpTransport, TChain>>>;
@@ -1,6 +1,5 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { signerToEcdsaValidator } from '@zerodev/ecdsa-validator';
4
3
  import { createKernelAccount } from '@zerodev/sdk/accounts';
5
4
  import { createZeroDevPaymasterClient, createKernelAccountClient } from '@zerodev/sdk/clients';
6
5
  import { createPublicClient, http, isAddress } from 'viem';
@@ -20,29 +19,33 @@ const getZeroDevPaymasterRPC = (projectId, provider) => {
20
19
  return rpc;
21
20
  };
22
21
  const isERC20 = (value) => isAddress(value);
23
- const createEcdsaKernelAccountClient = (_a) => __awaiter(void 0, [_a], void 0, function* ({ chain, projectId, signer, provider, index, paymaster = 'SPONSOR', entryPointAddress, }) {
22
+ const createEcdsaKernelAccountClient = (_a) => __awaiter(void 0, [_a], void 0, function* ({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, index, paymaster = 'SPONSOR', entryPointAddress, kernelVersion, ecdsaValidator, }) {
23
+ const resolvedBundlerRpc = bundlerRpc !== null && bundlerRpc !== void 0 ? bundlerRpc : getZeroDevBundlerRPC(projectId, provider);
24
+ const resolvedPaymasterRpc = paymasterRpc !== null && paymasterRpc !== void 0 ? paymasterRpc : getZeroDevPaymasterRPC(projectId, provider);
24
25
  const publicClient = createPublicClient({
25
- transport: http(getZeroDevBundlerRPC(projectId, provider)),
26
+ transport: http(resolvedBundlerRpc),
26
27
  });
27
- const ecdsaValidator = yield signerToEcdsaValidator(publicClient, {
28
+ const validator = yield ecdsaValidator(publicClient, {
28
29
  entryPoint: entryPointAddress,
30
+ kernelVersion,
29
31
  signer,
30
32
  });
31
33
  const account = yield createKernelAccount(publicClient, {
32
34
  entryPoint: entryPointAddress,
33
35
  index,
36
+ kernelVersion,
34
37
  plugins: {
35
- sudo: ecdsaValidator,
38
+ sudo: validator,
36
39
  },
37
40
  });
38
41
  const zerodevPaymaster = createZeroDevPaymasterClient({
39
42
  chain: chain,
40
43
  entryPoint: entryPointAddress,
41
- transport: http(getZeroDevPaymasterRPC(projectId, provider)),
44
+ transport: http(resolvedPaymasterRpc),
42
45
  });
43
46
  const kernelClient = createKernelAccountClient({
44
47
  account,
45
- bundlerTransport: http(getZeroDevBundlerRPC(projectId, provider)),
48
+ bundlerTransport: http(resolvedBundlerRpc),
46
49
  chain,
47
50
  entryPoint: entryPointAddress,
48
51
  middleware: paymaster !== 'NONE'
@@ -4,7 +4,7 @@
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../_virtual/_tslib.cjs');
7
- var viemUtils = require('@dynamic-labs/viem-utils');
7
+ var ethereumCore = require('@dynamic-labs/ethereum-core');
8
8
  var logger = require('./logger.cjs');
9
9
 
10
10
  const cachedChainIdKey = 'dynamic_zd_chain_id';
@@ -12,11 +12,11 @@ const fetchChain = (projectId) => _tslib.__awaiter(void 0, void 0, void 0, funct
12
12
  try {
13
13
  const cachedChainId = localStorage.getItem(cachedChainIdKey);
14
14
  if (cachedChainId) {
15
- return viemUtils.chainsMap[cachedChainId];
15
+ return ethereumCore.chainsMap[cachedChainId];
16
16
  }
17
17
  const response = yield (yield fetch(`https://prod-api.zerodev.app/projects/${projectId}`)).json();
18
18
  localStorage.setItem(cachedChainIdKey, response.chainId);
19
- return viemUtils.chainsMap[response.chainId];
19
+ return ethereumCore.chainsMap[response.chainId];
20
20
  }
21
21
  catch (err) {
22
22
  logger.logger.error('Failed to fetch ZeroDev project settings from ZeroDev API ' +
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
  import { __awaiter } from '../../_virtual/_tslib.js';
3
- import { chainsMap } from '@dynamic-labs/viem-utils';
3
+ import { chainsMap } from '@dynamic-labs/ethereum-core';
4
4
  import { logger } from './logger.js';
5
5
 
6
6
  const cachedChainIdKey = 'dynamic_zd_chain_id';