@dynamic-labs/ethereum-aa 4.18.6 → 4.18.8

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,31 @@
1
1
 
2
+ ### [4.18.8](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.7...v4.18.8) (2025-05-22)
3
+
4
+ ### Bug Fixes
5
+
6
+ * allow closing widget right after login ([#8760](https://github.com/dynamic-labs/dynamic-auth/issues/8760)) ([a9afff0](https://github.com/dynamic-labs/dynamic-auth/commit/a9afff0ab2a685853b39aed88e10bf1e700e4c8c))
7
+ * user wallets turning empty when linking new wallets ([#8775](https://github.com/dynamic-labs/dynamic-auth/issues/8775)) ([04215f5](https://github.com/dynamic-labs/dynamic-auth/commit/04215f5307e16ec4e1a7ff235a0d7df2340c3447))
8
+
9
+ ### [4.18.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.6...v4.18.7) (2025-05-21)
10
+
11
+
12
+ ### Features
13
+
14
+ * add zero dev kernel migration to v3.3 ([#8747](https://github.com/dynamic-labs/dynamic-auth/issues/8747)) ([ce10ef8](https://github.com/dynamic-labs/dynamic-auth/commit/ce10ef85d12452c2c21758c909f1e28f9fa5fbae))
15
+ * bump [@dynamic-labs-wallet](https://github.com/dynamic-labs-wallet) to v0.0.74 ([#8746](https://github.com/dynamic-labs/dynamic-auth/issues/8746)) ([98e3a0b](https://github.com/dynamic-labs/dynamic-auth/commit/98e3a0b845e7d6c34a2c748597198825713f4bcf))
16
+ * support kernel versio 0.3.2 and 0.3.3 ([#8738](https://github.com/dynamic-labs/dynamic-auth/issues/8738)) ([1115830](https://github.com/dynamic-labs/dynamic-auth/commit/1115830966318960d39a497c8b29188d9d9a447f))
17
+ * v3 solana confirmation ui ([#8731](https://github.com/dynamic-labs/dynamic-auth/issues/8731)) ([cfa5ba0](https://github.com/dynamic-labs/dynamic-auth/commit/cfa5ba07a946b847e60388c80afbd8aa233e9ebf))
18
+ * v3 svm send balance ([#8726](https://github.com/dynamic-labs/dynamic-auth/issues/8726)) ([236ec48](https://github.com/dynamic-labs/dynamic-auth/commit/236ec4843152f4b720aa7332e650db68c2d111b2))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **alex/qntm-3201:** send empty data field when using zksync sendbalance ([#8733](https://github.com/dynamic-labs/dynamic-auth/issues/8733)) ([4c42035](https://github.com/dynamic-labs/dynamic-auth/commit/4c420350cf7404ac80db8b552594233a3de9fb57))
24
+ * allow for continuing signing if zksync account exists while attempting to deploy ([#8736](https://github.com/dynamic-labs/dynamic-auth/issues/8736)) ([1ff82e4](https://github.com/dynamic-labs/dynamic-auth/commit/1ff82e418e14300b9dec662fba517c5533c1caac))
25
+ * api kernel version on react native extension ([#8754](https://github.com/dynamic-labs/dynamic-auth/issues/8754)) ([c2f0bb4](https://github.com/dynamic-labs/dynamic-auth/commit/c2f0bb4ac86214f4e3bbdac5cf4b481a7a304449))
26
+ * CTRL wallet eip6963 detection ([#8727](https://github.com/dynamic-labs/dynamic-auth/issues/8727)) ([194334f](https://github.com/dynamic-labs/dynamic-auth/commit/194334f7fd541917d9a7f6b452145a47cf7ae853))
27
+ * **QNTM-3249:** fix mobile layout alignment in send view ([#8740](https://github.com/dynamic-labs/dynamic-auth/issues/8740)) ([7d8e02c](https://github.com/dynamic-labs/dynamic-auth/commit/7d8e02c11830f547b6fcfbc7b518ee3f045df41a))
28
+
2
29
  ### [4.18.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.5...v4.18.6) (2025-05-16)
3
30
 
4
31
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.18.6";
6
+ var version = "4.18.8";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.18.6";
2
+ var version = "4.18.8";
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.18.6",
3
+ "version": "4.18.8",
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.669",
21
+ "@dynamic-labs/sdk-api-core": "0.0.672",
22
22
  "@zerodev/ecdsa-validator": "5.4.8",
23
23
  "@zerodev/multi-chain-ecdsa-validator": "5.4.5",
24
24
  "@zerodev/sdk": "5.4.34",
25
- "@dynamic-labs/assert-package-version": "4.18.6",
26
- "@dynamic-labs/ethereum-aa-core": "4.18.6",
27
- "@dynamic-labs/ethereum-core": "4.18.6",
28
- "@dynamic-labs/logger": "4.18.6",
29
- "@dynamic-labs/types": "4.18.6",
30
- "@dynamic-labs/utils": "4.18.6",
31
- "@dynamic-labs/wallet-book": "4.18.6",
32
- "@dynamic-labs/wallet-connector-core": "4.18.6"
25
+ "@dynamic-labs/assert-package-version": "4.18.8",
26
+ "@dynamic-labs/ethereum-aa-core": "4.18.8",
27
+ "@dynamic-labs/ethereum-core": "4.18.8",
28
+ "@dynamic-labs/logger": "4.18.8",
29
+ "@dynamic-labs/types": "4.18.8",
30
+ "@dynamic-labs/utils": "4.18.8",
31
+ "@dynamic-labs/wallet-book": "4.18.8",
32
+ "@dynamic-labs/wallet-connector-core": "4.18.8"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "viem": "^2.21.60"
@@ -22,7 +22,7 @@ var hasSmartAccount = require('./utils/hasSmartAccount.cjs');
22
22
 
23
23
  class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
24
24
  constructor(opts) {
25
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
25
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
26
26
  super(opts);
27
27
  // provider map maintains the kernel clients per chain
28
28
  this.providerMap = {};
@@ -66,12 +66,13 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
66
66
  (_l = (_k = opts.apiProviders.zerodev) === null || _k === void 0 ? void 0 : _k.zerodevPaymasterRpcUrl) !== null && _l !== void 0 ? _l : ZeroDevConnector.paymasterRpcDefault;
67
67
  this.kernelDelegationAddress =
68
68
  (_o = (_m = opts.apiProviders.zerodev) === null || _m === void 0 ? void 0 : _m.zerodevKernelDelegationAddress) !== null && _o !== void 0 ? _o : ZeroDevConnector.kernelDelegationAddressDefault;
69
- this.kernelVersion = getKernelVersion.getKernelVersion((_p = opts.apiProviders.zerodev) === null || _p === void 0 ? void 0 : _p.kernelVersion, this.entryPoint);
69
+ this.apiKernelVersion = getKernelVersion.getKernelVersion((_p = opts.apiProviders.zerodev) === null || _p === void 0 ? void 0 : _p.kernelVersion, this.entryPoint);
70
+ this.kernelVersion = getKernelVersion.getKernelVersion((_q = opts.apiProviders.zerodev) === null || _q === void 0 ? void 0 : _q.kernelVersion, this.entryPoint);
70
71
  this.enableKernelV3Migration =
71
- (_r = (_q = opts.apiProviders.zerodev) === null || _q === void 0 ? void 0 : _q.enableKernelV3Migration) !== null && _r !== void 0 ? _r : false;
72
+ (_s = (_r = opts.apiProviders.zerodev) === null || _r === void 0 ? void 0 : _r.enableKernelV3Migration) !== null && _s !== void 0 ? _s : false;
72
73
  // this is the list of providers from the api that are used for multi-chain account abstraction
73
74
  this.providersFromApi =
74
- ((_s = opts.apiProviders.zerodev) === null || _s === void 0 ? void 0 : _s.multichainAccountAbstractionProviders) || [];
75
+ ((_t = opts.apiProviders.zerodev) === null || _t === void 0 ? void 0 : _t.multichainAccountAbstractionProviders) || [];
75
76
  const enabledZerodevNetworks = this.providersFromApi.map((provider) => provider.chain);
76
77
  this.evmNetworks = utils.parseEvmNetworks(opts.evmNetworks).filter((network) => enabledZerodevNetworks.includes(network.chainId.toString()));
77
78
  const [defaultProvider] = this.providersFromApi;
@@ -80,7 +81,7 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
80
81
  throw new Error('Missing ZeroDev project ID provided. Add your ZeroDev project id to your project configuration via the Dynamic Labs dashboard.');
81
82
  }
82
83
  this.defaultChainId = defaultProvider === null || defaultProvider === void 0 ? void 0 : defaultProvider.chain;
83
- this.ecdsaProviderType = (_t = opts.apiProviders.zerodev) === null || _t === void 0 ? void 0 : _t.ecdsaProviderType;
84
+ this.ecdsaProviderType = (_u = opts.apiProviders.zerodev) === null || _u === void 0 ? void 0 : _u.ecdsaProviderType;
84
85
  }
85
86
  confirmTransactionStatus() {
86
87
  throw new Error('confirmTransactionStatus not implemented in ZeroDevConnector');
@@ -291,6 +292,7 @@ class ZeroDevConnector extends ethereumAaCore.AccountAbstractionBaseConnector {
291
292
  const publicClientRpc = (_b = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _b === void 0 ? void 0 : _b[0];
292
293
  let kernelClient;
293
294
  const params = {
295
+ apiKernelVersion: this.apiKernelVersion,
294
296
  bundlerRpc: bundlerRpcOverride !== null && bundlerRpcOverride !== void 0 ? bundlerRpcOverride : this.bundlerRpc,
295
297
  chain,
296
298
  enableKernelV3Migration: this.enableKernelV3Migration,
@@ -34,6 +34,7 @@ export declare class ZeroDevConnector extends AccountAbstractionBaseConnector im
34
34
  isEmbeddedWallet: boolean;
35
35
  entryPoint: EntryPointType<EntryPointVersion>;
36
36
  kernelVersion: KERNEL_VERSION_TYPE;
37
+ apiKernelVersion: KERNEL_VERSION_TYPE;
37
38
  enableKernelV3Migration: boolean;
38
39
  ecdsaProviderType: string | undefined;
39
40
  defaultChainId: string | undefined;
@@ -18,7 +18,7 @@ import { hasSmartAccount } from './utils/hasSmartAccount.js';
18
18
 
19
19
  class ZeroDevConnector extends AccountAbstractionBaseConnector {
20
20
  constructor(opts) {
21
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
21
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
22
22
  super(opts);
23
23
  // provider map maintains the kernel clients per chain
24
24
  this.providerMap = {};
@@ -62,12 +62,13 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
62
62
  (_l = (_k = opts.apiProviders.zerodev) === null || _k === void 0 ? void 0 : _k.zerodevPaymasterRpcUrl) !== null && _l !== void 0 ? _l : ZeroDevConnector.paymasterRpcDefault;
63
63
  this.kernelDelegationAddress =
64
64
  (_o = (_m = opts.apiProviders.zerodev) === null || _m === void 0 ? void 0 : _m.zerodevKernelDelegationAddress) !== null && _o !== void 0 ? _o : ZeroDevConnector.kernelDelegationAddressDefault;
65
- this.kernelVersion = getKernelVersion((_p = opts.apiProviders.zerodev) === null || _p === void 0 ? void 0 : _p.kernelVersion, this.entryPoint);
65
+ this.apiKernelVersion = getKernelVersion((_p = opts.apiProviders.zerodev) === null || _p === void 0 ? void 0 : _p.kernelVersion, this.entryPoint);
66
+ this.kernelVersion = getKernelVersion((_q = opts.apiProviders.zerodev) === null || _q === void 0 ? void 0 : _q.kernelVersion, this.entryPoint);
66
67
  this.enableKernelV3Migration =
67
- (_r = (_q = opts.apiProviders.zerodev) === null || _q === void 0 ? void 0 : _q.enableKernelV3Migration) !== null && _r !== void 0 ? _r : false;
68
+ (_s = (_r = opts.apiProviders.zerodev) === null || _r === void 0 ? void 0 : _r.enableKernelV3Migration) !== null && _s !== void 0 ? _s : false;
68
69
  // this is the list of providers from the api that are used for multi-chain account abstraction
69
70
  this.providersFromApi =
70
- ((_s = opts.apiProviders.zerodev) === null || _s === void 0 ? void 0 : _s.multichainAccountAbstractionProviders) || [];
71
+ ((_t = opts.apiProviders.zerodev) === null || _t === void 0 ? void 0 : _t.multichainAccountAbstractionProviders) || [];
71
72
  const enabledZerodevNetworks = this.providersFromApi.map((provider) => provider.chain);
72
73
  this.evmNetworks = parseEvmNetworks(opts.evmNetworks).filter((network) => enabledZerodevNetworks.includes(network.chainId.toString()));
73
74
  const [defaultProvider] = this.providersFromApi;
@@ -76,7 +77,7 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
76
77
  throw new Error('Missing ZeroDev project ID provided. Add your ZeroDev project id to your project configuration via the Dynamic Labs dashboard.');
77
78
  }
78
79
  this.defaultChainId = defaultProvider === null || defaultProvider === void 0 ? void 0 : defaultProvider.chain;
79
- this.ecdsaProviderType = (_t = opts.apiProviders.zerodev) === null || _t === void 0 ? void 0 : _t.ecdsaProviderType;
80
+ this.ecdsaProviderType = (_u = opts.apiProviders.zerodev) === null || _u === void 0 ? void 0 : _u.ecdsaProviderType;
80
81
  }
81
82
  confirmTransactionStatus() {
82
83
  throw new Error('confirmTransactionStatus not implemented in ZeroDevConnector');
@@ -287,6 +288,7 @@ class ZeroDevConnector extends AccountAbstractionBaseConnector {
287
288
  const publicClientRpc = (_b = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _b === void 0 ? void 0 : _b[0];
288
289
  let kernelClient;
289
290
  const params = {
291
+ apiKernelVersion: this.apiKernelVersion,
290
292
  bundlerRpc: bundlerRpcOverride !== null && bundlerRpcOverride !== void 0 ? bundlerRpcOverride : this.bundlerRpc,
291
293
  chain,
292
294
  enableKernelV3Migration: this.enableKernelV3Migration,
@@ -9,7 +9,6 @@ var clients = require('@zerodev/sdk/clients');
9
9
  var actions = require('@zerodev/sdk/actions');
10
10
  var viem = require('viem');
11
11
  var ecdsaValidator = require('@zerodev/ecdsa-validator');
12
- var constants = require('@zerodev/sdk/constants');
13
12
 
14
13
  exports.PaymasterTypeEnum = void 0;
15
14
  (function (PaymasterTypeEnum) {
@@ -70,7 +69,7 @@ const createKernelClientConfig = (account, bundlerRpc, chain, publicClient, paym
70
69
  estimateFeesPerGas: (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ bundlerClient }) { return actions.getUserOperationGasPrice(bundlerClient); }),
71
70
  },
72
71
  });
73
- const createEcdsaKernelAccountClient = (_b) => _tslib.__awaiter(void 0, [_b], void 0, function* ({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster = exports.PaymasterTypeEnum.SPONSOR, entryPoint, kernelVersion, ecdsaValidator: ecdsaValidator$1, enableKernelV3Migration, publicClientRpc, }) {
72
+ const createEcdsaKernelAccountClient = (_b) => _tslib.__awaiter(void 0, [_b], void 0, function* ({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster = exports.PaymasterTypeEnum.SPONSOR, entryPoint, kernelVersion, ecdsaValidator: ecdsaValidator$1, enableKernelV3Migration, publicClientRpc, apiKernelVersion, }) {
74
73
  const resolvedBundlerRpc = bundlerRpc !== null && bundlerRpc !== void 0 ? bundlerRpc : getZeroDevBundlerRPC(projectId, provider);
75
74
  const resolvedPaymasterRpc = paymasterRpc !== null && paymasterRpc !== void 0 ? paymasterRpc : getZeroDevPaymasterRPC(projectId, provider);
76
75
  const { publicClient, zerodevPaymaster } = createPublicAndPaymasterClients(resolvedBundlerRpc, resolvedPaymasterRpc, chain, publicClientRpc);
@@ -88,12 +87,11 @@ const createEcdsaKernelAccountClient = (_b) => _tslib.__awaiter(void 0, [_b], vo
88
87
  });
89
88
  let selectedAccount = account;
90
89
  if (enableKernelV3Migration) {
91
- const migrationVersion = constants.KERNEL_V3_1;
92
90
  selectedAccount = yield ecdsaValidator.createEcdsaKernelMigrationAccount(publicClient, {
93
91
  entryPoint,
94
92
  migrationVersion: {
95
93
  from: kernelVersion,
96
- to: migrationVersion,
94
+ to: apiKernelVersion,
97
95
  },
98
96
  signer,
99
97
  });
@@ -2,7 +2,7 @@ import { SmartAccount, EntryPointVersion } from 'viem/account-abstraction';
2
2
  import { KernelAccountClient } from '@zerodev/sdk/clients';
3
3
  import { type Chain as ViemChain } from 'viem/chains';
4
4
  import { Address, WalletClient, Account, type Chain, type Client, type RpcSchema, type Transport } from 'viem';
5
- import { EntryPointType, GetKernelVersion } from '@zerodev/sdk/types';
5
+ import { EntryPointType, GetKernelVersion, KERNEL_VERSION_TYPE } from '@zerodev/sdk/types';
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;
@@ -24,8 +24,9 @@ type CommonClientParams<TChain extends Chain | undefined = Chain | undefined> =
24
24
  kernelVersion: GetKernelVersion<EntryPointVersion>;
25
25
  enableKernelV3Migration: boolean;
26
26
  publicClientRpc?: string;
27
+ apiKernelVersion: KERNEL_VERSION_TYPE;
27
28
  };
28
- 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, }: CommonClientParams<TChain> & {
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
30
  ecdsaValidator: any;
30
31
  }) => Promise<KernelAccountClient<Transport, ViemChain, SmartAccount, Client, RpcSchema>>;
31
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>>;
@@ -5,7 +5,6 @@ import { createKernelAccountClient, createZeroDevPaymasterClient } from '@zerode
5
5
  import { getUserOperationGasPrice } from '@zerodev/sdk/actions';
6
6
  import { createPublicClient, http, isAddress } from 'viem';
7
7
  import { createEcdsaKernelMigrationAccount, create7702KernelAccount, create7702KernelAccountClient } from '@zerodev/ecdsa-validator';
8
- import { KERNEL_V3_1 } from '@zerodev/sdk/constants';
9
8
 
10
9
  var PaymasterTypeEnum;
11
10
  (function (PaymasterTypeEnum) {
@@ -66,7 +65,7 @@ const createKernelClientConfig = (account, bundlerRpc, chain, publicClient, paym
66
65
  estimateFeesPerGas: (_a) => __awaiter(void 0, [_a], void 0, function* ({ bundlerClient }) { return getUserOperationGasPrice(bundlerClient); }),
67
66
  },
68
67
  });
69
- const createEcdsaKernelAccountClient = (_b) => __awaiter(void 0, [_b], void 0, function* ({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster = PaymasterTypeEnum.SPONSOR, entryPoint, kernelVersion, ecdsaValidator, enableKernelV3Migration, publicClientRpc, }) {
68
+ const createEcdsaKernelAccountClient = (_b) => __awaiter(void 0, [_b], void 0, function* ({ bundlerRpc, chain, paymasterRpc, projectId, signer, provider, paymaster = PaymasterTypeEnum.SPONSOR, entryPoint, kernelVersion, ecdsaValidator, enableKernelV3Migration, publicClientRpc, apiKernelVersion, }) {
70
69
  const resolvedBundlerRpc = bundlerRpc !== null && bundlerRpc !== void 0 ? bundlerRpc : getZeroDevBundlerRPC(projectId, provider);
71
70
  const resolvedPaymasterRpc = paymasterRpc !== null && paymasterRpc !== void 0 ? paymasterRpc : getZeroDevPaymasterRPC(projectId, provider);
72
71
  const { publicClient, zerodevPaymaster } = createPublicAndPaymasterClients(resolvedBundlerRpc, resolvedPaymasterRpc, chain, publicClientRpc);
@@ -84,12 +83,11 @@ const createEcdsaKernelAccountClient = (_b) => __awaiter(void 0, [_b], void 0, f
84
83
  });
85
84
  let selectedAccount = account;
86
85
  if (enableKernelV3Migration) {
87
- const migrationVersion = KERNEL_V3_1;
88
86
  selectedAccount = yield createEcdsaKernelMigrationAccount(publicClient, {
89
87
  entryPoint,
90
88
  migrationVersion: {
91
89
  from: kernelVersion,
92
- to: migrationVersion,
90
+ to: apiKernelVersion,
93
91
  },
94
92
  signer,
95
93
  });
@@ -7,24 +7,31 @@ var constants = require('@zerodev/sdk/constants');
7
7
  var sdkApiCore = require('@dynamic-labs/sdk-api-core');
8
8
  var logger = require('./logger.cjs');
9
9
 
10
+ const KERNEL_VERSION_MAP = {
11
+ [sdkApiCore.ProviderKernelVersionEnum.V33]: constants.KERNEL_V3_3,
12
+ [sdkApiCore.ProviderKernelVersionEnum.V32]: constants.KERNEL_V3_2,
13
+ [sdkApiCore.ProviderKernelVersionEnum.V31]: constants.KERNEL_V3_1,
14
+ [sdkApiCore.ProviderKernelVersionEnum.V30]: constants.KERNEL_V3_0,
15
+ [sdkApiCore.ProviderKernelVersionEnum.V24]: constants.KERNEL_V2_4,
16
+ };
17
+ const ENTRY_POINT_VERSION_MAP = {
18
+ 0.6: constants.KERNEL_V2_4,
19
+ 0.7: constants.KERNEL_V3_1,
20
+ 0.8: constants.KERNEL_V3_3,
21
+ };
10
22
  const getKernelVersion = (kernelVersion, entryPointAddress) => {
11
- if (kernelVersion === sdkApiCore.ProviderKernelVersionEnum.V31 ||
12
- (kernelVersion === undefined &&
13
- entryPointAddress.address === constants.getEntryPoint('0.7').address)) {
14
- return constants.KERNEL_V3_1;
15
- }
16
- else if (kernelVersion === sdkApiCore.ProviderKernelVersionEnum.V30) {
17
- return constants.KERNEL_V3_0;
18
- }
19
- else if (kernelVersion === sdkApiCore.ProviderKernelVersionEnum.V24 ||
20
- entryPointAddress.address === constants.getEntryPoint('0.6').address // v0.6 only supports v2.4
21
- ) {
22
- return constants.KERNEL_V2_4;
23
+ // If kernel version is explicitly provided, use it
24
+ if (kernelVersion && kernelVersion in KERNEL_VERSION_MAP) {
25
+ return KERNEL_VERSION_MAP[kernelVersion];
23
26
  }
24
- else {
25
- logger.logger.error('Invalid kernel version', kernelVersion);
26
- return constants.KERNEL_V3_1;
27
+ // If no kernel version provided, determine based on entry point version
28
+ const entryPointVersion = entryPointAddress.version;
29
+ if (entryPointVersion in ENTRY_POINT_VERSION_MAP) {
30
+ return ENTRY_POINT_VERSION_MAP[entryPointVersion];
27
31
  }
32
+ // Fallback to latest version with warning
33
+ logger.logger.error('Invalid kernel version', kernelVersion);
34
+ return constants.KERNEL_V3_3;
28
35
  };
29
36
 
30
37
  exports.getKernelVersion = getKernelVersion;
@@ -1,26 +1,33 @@
1
1
  'use client'
2
- import { getEntryPoint, KERNEL_V3_1, KERNEL_V3_0, KERNEL_V2_4 } from '@zerodev/sdk/constants';
2
+ import { KERNEL_V3_3, KERNEL_V3_2, KERNEL_V3_1, KERNEL_V3_0, KERNEL_V2_4 } from '@zerodev/sdk/constants';
3
3
  import { ProviderKernelVersionEnum } from '@dynamic-labs/sdk-api-core';
4
4
  import { logger } from './logger.js';
5
5
 
6
+ const KERNEL_VERSION_MAP = {
7
+ [ProviderKernelVersionEnum.V33]: KERNEL_V3_3,
8
+ [ProviderKernelVersionEnum.V32]: KERNEL_V3_2,
9
+ [ProviderKernelVersionEnum.V31]: KERNEL_V3_1,
10
+ [ProviderKernelVersionEnum.V30]: KERNEL_V3_0,
11
+ [ProviderKernelVersionEnum.V24]: KERNEL_V2_4,
12
+ };
13
+ const ENTRY_POINT_VERSION_MAP = {
14
+ 0.6: KERNEL_V2_4,
15
+ 0.7: KERNEL_V3_1,
16
+ 0.8: KERNEL_V3_3,
17
+ };
6
18
  const getKernelVersion = (kernelVersion, entryPointAddress) => {
7
- if (kernelVersion === ProviderKernelVersionEnum.V31 ||
8
- (kernelVersion === undefined &&
9
- entryPointAddress.address === getEntryPoint('0.7').address)) {
10
- return KERNEL_V3_1;
11
- }
12
- else if (kernelVersion === ProviderKernelVersionEnum.V30) {
13
- return KERNEL_V3_0;
14
- }
15
- else if (kernelVersion === ProviderKernelVersionEnum.V24 ||
16
- entryPointAddress.address === getEntryPoint('0.6').address // v0.6 only supports v2.4
17
- ) {
18
- return KERNEL_V2_4;
19
+ // If kernel version is explicitly provided, use it
20
+ if (kernelVersion && kernelVersion in KERNEL_VERSION_MAP) {
21
+ return KERNEL_VERSION_MAP[kernelVersion];
19
22
  }
20
- else {
21
- logger.error('Invalid kernel version', kernelVersion);
22
- return KERNEL_V3_1;
23
+ // If no kernel version provided, determine based on entry point version
24
+ const entryPointVersion = entryPointAddress.version;
25
+ if (entryPointVersion in ENTRY_POINT_VERSION_MAP) {
26
+ return ENTRY_POINT_VERSION_MAP[entryPointVersion];
23
27
  }
28
+ // Fallback to latest version with warning
29
+ logger.error('Invalid kernel version', kernelVersion);
30
+ return KERNEL_V3_3;
24
31
  };
25
32
 
26
33
  export { getKernelVersion };