@dynamic-labs/ethereum-aa 4.18.6 → 4.18.7
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 +20 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +10 -10
- package/src/ZeroDevConnector.cjs +7 -5
- package/src/ZeroDevConnector.d.ts +1 -0
- package/src/ZeroDevConnector.js +7 -5
- package/src/utils/createEcdsaKernelAccountClient.cjs +2 -4
- package/src/utils/createEcdsaKernelAccountClient.d.ts +3 -2
- package/src/utils/createEcdsaKernelAccountClient.js +2 -4
- package/src/utils/getKernelVersion.cjs +22 -15
- package/src/utils/getKernelVersion.js +23 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
|
|
2
|
+
### [4.18.7](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.6...v4.18.7) (2025-05-21)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* 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))
|
|
8
|
+
* 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))
|
|
9
|
+
* 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))
|
|
10
|
+
* v3 solana confirmation ui ([#8731](https://github.com/dynamic-labs/dynamic-auth/issues/8731)) ([cfa5ba0](https://github.com/dynamic-labs/dynamic-auth/commit/cfa5ba07a946b847e60388c80afbd8aa233e9ebf))
|
|
11
|
+
* v3 svm send balance ([#8726](https://github.com/dynamic-labs/dynamic-auth/issues/8726)) ([236ec48](https://github.com/dynamic-labs/dynamic-auth/commit/236ec4843152f4b720aa7332e650db68c2d111b2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **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))
|
|
17
|
+
* 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))
|
|
18
|
+
* 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))
|
|
19
|
+
* CTRL wallet eip6963 detection ([#8727](https://github.com/dynamic-labs/dynamic-auth/issues/8727)) ([194334f](https://github.com/dynamic-labs/dynamic-auth/commit/194334f7fd541917d9a7f6b452145a47cf7ae853))
|
|
20
|
+
* **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))
|
|
21
|
+
|
|
2
22
|
### [4.18.6](https://github.com/dynamic-labs/dynamic-auth/compare/v4.18.5...v4.18.6) (2025-05-16)
|
|
3
23
|
|
|
4
24
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/ethereum-aa",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.7",
|
|
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.
|
|
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.
|
|
26
|
-
"@dynamic-labs/ethereum-aa-core": "4.18.
|
|
27
|
-
"@dynamic-labs/ethereum-core": "4.18.
|
|
28
|
-
"@dynamic-labs/logger": "4.18.
|
|
29
|
-
"@dynamic-labs/types": "4.18.
|
|
30
|
-
"@dynamic-labs/utils": "4.18.
|
|
31
|
-
"@dynamic-labs/wallet-book": "4.18.
|
|
32
|
-
"@dynamic-labs/wallet-connector-core": "4.18.
|
|
25
|
+
"@dynamic-labs/assert-package-version": "4.18.7",
|
|
26
|
+
"@dynamic-labs/ethereum-aa-core": "4.18.7",
|
|
27
|
+
"@dynamic-labs/ethereum-core": "4.18.7",
|
|
28
|
+
"@dynamic-labs/logger": "4.18.7",
|
|
29
|
+
"@dynamic-labs/types": "4.18.7",
|
|
30
|
+
"@dynamic-labs/utils": "4.18.7",
|
|
31
|
+
"@dynamic-labs/wallet-book": "4.18.7",
|
|
32
|
+
"@dynamic-labs/wallet-connector-core": "4.18.7"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"viem": "^2.21.60"
|
package/src/ZeroDevConnector.cjs
CHANGED
|
@@ -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.
|
|
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
|
-
(
|
|
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
|
-
((
|
|
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 = (
|
|
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;
|
package/src/ZeroDevConnector.js
CHANGED
|
@@ -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.
|
|
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
|
-
(
|
|
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
|
-
((
|
|
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 = (
|
|
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:
|
|
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:
|
|
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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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 {
|
|
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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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 };
|