@dynamic-labs-sdk/zerodev 0.1.2 → 0.2.3
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/dist/KernelClient.types.d.ts.map +1 -0
- package/{src → dist}/addZerodevExtension/addZerodevExtension.d.ts +1 -1
- package/dist/addZerodevExtension/addZerodevExtension.d.ts.map +1 -0
- package/dist/addZerodevExtension/index.d.ts.map +1 -0
- package/dist/canSponsorTransaction/canSponsorTransaction.d.ts.map +1 -0
- package/dist/canSponsorTransaction/index.d.ts.map +1 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/core.cjs.js +17 -0
- package/dist/core.cjs.js.map +1 -0
- package/dist/core.esm.js +9 -0
- package/dist/core.esm.js.map +1 -0
- package/{src → dist}/createKernelClientForWalletAccount/createKernelClientForWalletAccount.d.ts +1 -1
- package/dist/createKernelClientForWalletAccount/createKernelClientForWalletAccount.d.ts.map +1 -0
- package/dist/createKernelClientForWalletAccount/index.d.ts.map +1 -0
- package/dist/estimateTransactionGas/estimateTransactionGas.d.ts.map +1 -0
- package/dist/estimateTransactionGas/index.d.ts.map +1 -0
- package/dist/exports/core.d.ts.map +1 -0
- package/dist/exports/index.d.ts.map +1 -0
- package/{src → dist}/getSignerForSmartWalletAccount/getSignerForSmartWalletAccount.d.ts +1 -1
- package/dist/getSignerForSmartWalletAccount/getSignerForSmartWalletAccount.d.ts.map +1 -0
- package/dist/getSignerForSmartWalletAccount/index.d.ts.map +1 -0
- package/dist/getZerodevRpc-BWc2Ad-o.esm.js +177 -0
- package/dist/getZerodevRpc-BWc2Ad-o.esm.js.map +1 -0
- package/dist/getZerodevRpc-BuzdzM8R.cjs.js +254 -0
- package/dist/getZerodevRpc-BuzdzM8R.cjs.js.map +1 -0
- package/dist/index.cjs.js +258 -0
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.esm.js +253 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/isGasSponsorshipError/index.d.ts.map +1 -0
- package/dist/isGasSponsorshipError/isGasSponsorshipError.d.ts.map +1 -0
- package/dist/isZerodevWalletAccount/index.d.ts.map +1 -0
- package/dist/isZerodevWalletAccount/isZerodevWalletAccount.d.ts.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/utils/calculateGasForUserOperation/calculateGasForUserOperation.d.ts.map +1 -0
- package/dist/utils/calculateGasForUserOperation/index.d.ts.map +1 -0
- package/dist/utils/createKernelAccount/createKernelAccount.d.ts.map +1 -0
- package/dist/utils/createKernelAccount/index.d.ts.map +1 -0
- package/dist/utils/createZerodevWalletProvider/createZerodevWalletProvider.d.ts.map +1 -0
- package/dist/utils/createZerodevWalletProvider/index.d.ts.map +1 -0
- package/dist/utils/getAllUserZerodevAddresses/getAllUserZerodevAddresses.d.ts.map +1 -0
- package/dist/utils/getAllUserZerodevAddresses/index.d.ts.map +1 -0
- package/dist/utils/getEcdsaValidator/getEcdsaValidator.d.ts.map +1 -0
- package/dist/utils/getEcdsaValidator/index.d.ts.map +1 -0
- package/dist/utils/getEntryPoint/getEntryPoint.d.ts.map +1 -0
- package/dist/utils/getEntryPoint/index.d.ts.map +1 -0
- package/dist/utils/getKernelVersion/getKernelVersion.d.ts.map +1 -0
- package/dist/utils/getKernelVersion/index.d.ts.map +1 -0
- package/dist/utils/getPaymasterConfig/getPaymasterConfig.d.ts.map +1 -0
- package/dist/utils/getPaymasterConfig/index.d.ts.map +1 -0
- package/{src → dist}/utils/getZerodevChainProviderForNetworkId/getZerodevChainProviderForNetworkId.d.ts +1 -1
- package/dist/utils/getZerodevChainProviderForNetworkId/getZerodevChainProviderForNetworkId.d.ts.map +1 -0
- package/dist/utils/getZerodevChainProviderForNetworkId/index.d.ts.map +1 -0
- package/{src → dist}/utils/getZerodevProviderFromSettings/getZerodevProviderFromSettings.d.ts +1 -1
- package/dist/utils/getZerodevProviderFromSettings/getZerodevProviderFromSettings.d.ts.map +1 -0
- package/dist/utils/getZerodevProviderFromSettings/index.d.ts.map +1 -0
- package/{src → dist}/utils/getZerodevRpc/getZerodevRpc.d.ts +1 -1
- package/dist/utils/getZerodevRpc/getZerodevRpc.d.ts.map +1 -0
- package/dist/utils/getZerodevRpc/index.d.ts.map +1 -0
- package/dist/utils/prepareUserOperationWithKernelClient/index.d.ts.map +1 -0
- package/dist/utils/prepareUserOperationWithKernelClient/prepareUserOperationWithKernelClient.d.ts.map +1 -0
- package/dist/utils/shouldSignWithEoa/index.d.ts.map +1 -0
- package/dist/utils/shouldSignWithEoa/shouldSignWithEoa.d.ts.map +1 -0
- package/dist/utils/shouldUseEIP7702/index.d.ts.map +1 -0
- package/{src → dist}/utils/shouldUseEIP7702/shouldUseEIP7702.d.ts +1 -1
- package/dist/utils/shouldUseEIP7702/shouldUseEIP7702.d.ts.map +1 -0
- package/dist/utils/signMessage/index.d.ts.map +1 -0
- package/dist/utils/signMessage/signMessage.d.ts.map +1 -0
- package/package.json +29 -15
- package/CHANGELOG.md +0 -606
- package/core.cjs.d.ts +0 -1
- package/core.cjs.js +0 -25
- package/core.esm.d.ts +0 -1
- package/core.esm.js +0 -14
- package/getZerodevRpc.cjs.js +0 -222
- package/getZerodevRpc.esm.js +0 -208
- package/index.cjs.d.ts +0 -1
- package/index.cjs.js +0 -311
- package/index.esm.d.ts +0 -1
- package/index.esm.js +0 -305
- package/src/KernelClient.types.d.ts.map +0 -1
- package/src/addZerodevExtension/addZerodevExtension.d.ts.map +0 -1
- package/src/addZerodevExtension/index.d.ts.map +0 -1
- package/src/canSponsorTransaction/canSponsorTransaction.d.ts.map +0 -1
- package/src/canSponsorTransaction/index.d.ts.map +0 -1
- package/src/constants.d.ts.map +0 -1
- package/src/createKernelClientForWalletAccount/createKernelClientForWalletAccount.d.ts.map +0 -1
- package/src/createKernelClientForWalletAccount/index.d.ts.map +0 -1
- package/src/estimateTransactionGas/estimateTransactionGas.d.ts.map +0 -1
- package/src/estimateTransactionGas/index.d.ts.map +0 -1
- package/src/exports/core.d.ts.map +0 -1
- package/src/exports/index.d.ts.map +0 -1
- package/src/getSignerForSmartWalletAccount/getSignerForSmartWalletAccount.d.ts.map +0 -1
- package/src/getSignerForSmartWalletAccount/index.d.ts.map +0 -1
- package/src/isGasSponsorshipError/index.d.ts.map +0 -1
- package/src/isGasSponsorshipError/isGasSponsorshipError.d.ts.map +0 -1
- package/src/isZerodevWalletAccount/index.d.ts.map +0 -1
- package/src/isZerodevWalletAccount/isZerodevWalletAccount.d.ts.map +0 -1
- package/src/utils/calculateGasForUserOperation/calculateGasForUserOperation.d.ts.map +0 -1
- package/src/utils/calculateGasForUserOperation/index.d.ts.map +0 -1
- package/src/utils/createKernelAccount/createKernelAccount.d.ts.map +0 -1
- package/src/utils/createKernelAccount/index.d.ts.map +0 -1
- package/src/utils/createZerodevWalletProvider/createZerodevWalletProvider.d.ts.map +0 -1
- package/src/utils/createZerodevWalletProvider/index.d.ts.map +0 -1
- package/src/utils/getAllUserZerodevAddresses/getAllUserZerodevAddresses.d.ts.map +0 -1
- package/src/utils/getAllUserZerodevAddresses/index.d.ts.map +0 -1
- package/src/utils/getEcdsaValidator/getEcdsaValidator.d.ts.map +0 -1
- package/src/utils/getEcdsaValidator/index.d.ts.map +0 -1
- package/src/utils/getEntryPoint/getEntryPoint.d.ts.map +0 -1
- package/src/utils/getEntryPoint/index.d.ts.map +0 -1
- package/src/utils/getKernelVersion/getKernelVersion.d.ts.map +0 -1
- package/src/utils/getKernelVersion/index.d.ts.map +0 -1
- package/src/utils/getPaymasterConfig/getPaymasterConfig.d.ts.map +0 -1
- package/src/utils/getPaymasterConfig/index.d.ts.map +0 -1
- package/src/utils/getZerodevChainProviderForNetworkId/getZerodevChainProviderForNetworkId.d.ts.map +0 -1
- package/src/utils/getZerodevChainProviderForNetworkId/index.d.ts.map +0 -1
- package/src/utils/getZerodevProviderFromSettings/getZerodevProviderFromSettings.d.ts.map +0 -1
- package/src/utils/getZerodevProviderFromSettings/index.d.ts.map +0 -1
- package/src/utils/getZerodevRpc/getZerodevRpc.d.ts.map +0 -1
- package/src/utils/getZerodevRpc/index.d.ts.map +0 -1
- package/src/utils/prepareUserOperationWithKernelClient/index.d.ts.map +0 -1
- package/src/utils/prepareUserOperationWithKernelClient/prepareUserOperationWithKernelClient.d.ts.map +0 -1
- package/src/utils/shouldSignWithEoa/index.d.ts.map +0 -1
- package/src/utils/shouldSignWithEoa/shouldSignWithEoa.d.ts.map +0 -1
- package/src/utils/shouldUseEIP7702/index.d.ts.map +0 -1
- package/src/utils/shouldUseEIP7702/shouldUseEIP7702.d.ts.map +0 -1
- package/src/utils/signMessage/index.d.ts.map +0 -1
- package/src/utils/signMessage/signMessage.d.ts.map +0 -1
- /package/{src → dist}/KernelClient.types.d.ts +0 -0
- /package/{src → dist}/addZerodevExtension/index.d.ts +0 -0
- /package/{src → dist}/canSponsorTransaction/canSponsorTransaction.d.ts +0 -0
- /package/{src → dist}/canSponsorTransaction/index.d.ts +0 -0
- /package/{src → dist}/constants.d.ts +0 -0
- /package/{src → dist}/createKernelClientForWalletAccount/index.d.ts +0 -0
- /package/{src → dist}/estimateTransactionGas/estimateTransactionGas.d.ts +0 -0
- /package/{src → dist}/estimateTransactionGas/index.d.ts +0 -0
- /package/{src → dist}/exports/core.d.ts +0 -0
- /package/{src → dist}/exports/index.d.ts +0 -0
- /package/{src → dist}/getSignerForSmartWalletAccount/index.d.ts +0 -0
- /package/{src → dist}/isGasSponsorshipError/index.d.ts +0 -0
- /package/{src → dist}/isGasSponsorshipError/isGasSponsorshipError.d.ts +0 -0
- /package/{src → dist}/isZerodevWalletAccount/index.d.ts +0 -0
- /package/{src → dist}/isZerodevWalletAccount/isZerodevWalletAccount.d.ts +0 -0
- /package/{src → dist}/utils/calculateGasForUserOperation/calculateGasForUserOperation.d.ts +0 -0
- /package/{src → dist}/utils/calculateGasForUserOperation/index.d.ts +0 -0
- /package/{src → dist}/utils/createKernelAccount/createKernelAccount.d.ts +0 -0
- /package/{src → dist}/utils/createKernelAccount/index.d.ts +0 -0
- /package/{src → dist}/utils/createZerodevWalletProvider/createZerodevWalletProvider.d.ts +0 -0
- /package/{src → dist}/utils/createZerodevWalletProvider/index.d.ts +0 -0
- /package/{src → dist}/utils/getAllUserZerodevAddresses/getAllUserZerodevAddresses.d.ts +0 -0
- /package/{src → dist}/utils/getAllUserZerodevAddresses/index.d.ts +0 -0
- /package/{src → dist}/utils/getEcdsaValidator/getEcdsaValidator.d.ts +0 -0
- /package/{src → dist}/utils/getEcdsaValidator/index.d.ts +0 -0
- /package/{src → dist}/utils/getEntryPoint/getEntryPoint.d.ts +0 -0
- /package/{src → dist}/utils/getEntryPoint/index.d.ts +0 -0
- /package/{src → dist}/utils/getKernelVersion/getKernelVersion.d.ts +0 -0
- /package/{src → dist}/utils/getKernelVersion/index.d.ts +0 -0
- /package/{src → dist}/utils/getPaymasterConfig/getPaymasterConfig.d.ts +0 -0
- /package/{src → dist}/utils/getPaymasterConfig/index.d.ts +0 -0
- /package/{src → dist}/utils/getZerodevChainProviderForNetworkId/index.d.ts +0 -0
- /package/{src → dist}/utils/getZerodevProviderFromSettings/index.d.ts +0 -0
- /package/{src → dist}/utils/getZerodevRpc/index.d.ts +0 -0
- /package/{src → dist}/utils/prepareUserOperationWithKernelClient/index.d.ts +0 -0
- /package/{src → dist}/utils/prepareUserOperationWithKernelClient/prepareUserOperationWithKernelClient.d.ts +0 -0
- /package/{src → dist}/utils/shouldSignWithEoa/index.d.ts +0 -0
- /package/{src → dist}/utils/shouldSignWithEoa/shouldSignWithEoa.d.ts +0 -0
- /package/{src → dist}/utils/shouldUseEIP7702/index.d.ts +0 -0
- /package/{src → dist}/utils/signMessage/index.d.ts +0 -0
- /package/{src → dist}/utils/signMessage/signMessage.d.ts +0 -0
package/getZerodevRpc.cjs.js
DELETED
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var core = require('@dynamic-labs-sdk/client/core');
|
|
4
|
-
var ecdsaValidator = require('@zerodev/ecdsa-validator');
|
|
5
|
-
var sdk = require('@zerodev/sdk');
|
|
6
|
-
var client = require('@dynamic-labs-sdk/client');
|
|
7
|
-
var evm = require('@dynamic-labs-sdk/evm');
|
|
8
|
-
var viem = require('@dynamic-labs-sdk/evm/viem');
|
|
9
|
-
var multiChainEcdsaValidator = require('@zerodev/multi-chain-ecdsa-validator');
|
|
10
|
-
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
11
|
-
var viem$1 = require('viem');
|
|
12
|
-
|
|
13
|
-
var name = "@dynamic-labs-sdk/zerodev";
|
|
14
|
-
var version = "0.1.2";
|
|
15
|
-
|
|
16
|
-
const ZERODEV_METADATA = {
|
|
17
|
-
displayName: 'ZeroDev',
|
|
18
|
-
icon: `${core.DYNAMIC_ICONIC_SPRITE_URL}#smartwallet`,
|
|
19
|
-
normalizedWalletName: 'zerodev'
|
|
20
|
-
};
|
|
21
|
-
const ZERODEV_RPC_BASE_URL = 'https://rpc.zerodev.app/api/v2';
|
|
22
|
-
const KERNEL_VERSION_MAP = {
|
|
23
|
-
[sdkApiCore.ProviderKernelVersionEnum.V33]: sdk.constants.KERNEL_V3_3,
|
|
24
|
-
[sdkApiCore.ProviderKernelVersionEnum.V32]: sdk.constants.KERNEL_V3_2,
|
|
25
|
-
[sdkApiCore.ProviderKernelVersionEnum.V31]: sdk.constants.KERNEL_V3_1,
|
|
26
|
-
[sdkApiCore.ProviderKernelVersionEnum.V30]: sdk.constants.KERNEL_V3_0,
|
|
27
|
-
[sdkApiCore.ProviderKernelVersionEnum.V24]: sdk.constants.KERNEL_V2_4
|
|
28
|
-
};
|
|
29
|
-
const ENTRY_POINT_VERSION_MAP = {
|
|
30
|
-
0.6: sdk.constants.KERNEL_V2_4,
|
|
31
|
-
0.7: sdk.constants.KERNEL_V3_1,
|
|
32
|
-
0.8: sdk.constants.KERNEL_V3_3
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const getZerodevProviderFromSettings = (client)=>{
|
|
36
|
-
var _projectSettings_providers;
|
|
37
|
-
const projectSettings = client.projectSettings;
|
|
38
|
-
core.assertDefined(projectSettings, 'Project settings are not available');
|
|
39
|
-
const zerodevProvider = (_projectSettings_providers = projectSettings.providers) == null ? void 0 : _projectSettings_providers.find((provider)=>provider.provider === sdkApiCore.ProviderEnum.Zerodev);
|
|
40
|
-
core.assertDefined(zerodevProvider, 'Zerodev is not configured in project settings');
|
|
41
|
-
return zerodevProvider;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const getZerodevChainProviderForNetworkId = ({ networkId }, client)=>{
|
|
45
|
-
var _zerodevProvider_multichainAccountAbstractionProviders;
|
|
46
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
47
|
-
return (_zerodevProvider_multichainAccountAbstractionProviders = zerodevProvider.multichainAccountAbstractionProviders) == null ? void 0 : _zerodevProvider_multichainAccountAbstractionProviders.find((provider)=>provider.chain === networkId);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Gets a WalletClient instance for the EOA of the smart wallet account.
|
|
52
|
-
* You can use this signer to sign EVM transactions.
|
|
53
|
-
*
|
|
54
|
-
* @param params.smartWalletAccount - The EVM smart wallet account to get the signer for.
|
|
55
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
56
|
-
* @returns A promise that resolves to an WalletClient instance.
|
|
57
|
-
* @throws NoSmartWalletAccountSignerFoundError When the signer wallet account is not found for the given smart wallet account.
|
|
58
|
-
*/ const getSignerForSmartWalletAccount = ({ smartWalletAccount }, client$1 = core.getDefaultClient())=>{
|
|
59
|
-
const signerWalletAccount = client.getOwnerWalletAccountForSmartWalletAccount({
|
|
60
|
-
smartWalletAccount
|
|
61
|
-
}, client$1);
|
|
62
|
-
if (!signerWalletAccount || !evm.isEvmWalletAccount(signerWalletAccount)) {
|
|
63
|
-
throw new client.NoSmartWalletAccountSignerFoundError(smartWalletAccount.address);
|
|
64
|
-
}
|
|
65
|
-
return viem.createWalletClientForWalletAccount({
|
|
66
|
-
walletAccount: signerWalletAccount
|
|
67
|
-
}, client$1);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
const getEcdsaValidator = ({ ecdsaProviderType, publicClient, signer, entryPoint, kernelVersion })=>{
|
|
71
|
-
const params = {
|
|
72
|
-
entryPoint,
|
|
73
|
-
kernelVersion,
|
|
74
|
-
signer
|
|
75
|
-
};
|
|
76
|
-
if (ecdsaProviderType === 'zerodev_multi_chain') {
|
|
77
|
-
return multiChainEcdsaValidator.toMultiChainECDSAValidator(publicClient, params);
|
|
78
|
-
}
|
|
79
|
-
return ecdsaValidator.signerToEcdsaValidator(publicClient, params);
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
const getEntryPoint = (entryPoint)=>{
|
|
83
|
-
if (entryPoint === sdkApiCore.ProviderEntryPointVersionEnum.V6) {
|
|
84
|
-
return sdk.constants.getEntryPoint('0.6');
|
|
85
|
-
}
|
|
86
|
-
// default to v7
|
|
87
|
-
return sdk.constants.getEntryPoint('0.7');
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const getKernelVersion = ({ kernelVersion, entryPoint })=>{
|
|
91
|
-
// If kernel version is explicitly provided, use it
|
|
92
|
-
if (kernelVersion && kernelVersion in KERNEL_VERSION_MAP) {
|
|
93
|
-
return KERNEL_VERSION_MAP[kernelVersion];
|
|
94
|
-
}
|
|
95
|
-
// If no kernel version provided, determine based on entry point version
|
|
96
|
-
const entryPointVersion = entryPoint.version;
|
|
97
|
-
if (entryPointVersion in ENTRY_POINT_VERSION_MAP) {
|
|
98
|
-
return ENTRY_POINT_VERSION_MAP[entryPointVersion];
|
|
99
|
-
}
|
|
100
|
-
// Fallback to latest version
|
|
101
|
-
return sdk.constants.KERNEL_V3_3;
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
const shouldUseEIP7702 = ({ smartWalletAccount }, client$1)=>{
|
|
105
|
-
const zerodevProvider = getZerodevProviderFromSettings(client$1);
|
|
106
|
-
core.assertDefined(zerodevProvider, 'Zerodev provider is not enabled in project settings');
|
|
107
|
-
const eoaWalletAccount = client.getOwnerWalletAccountForSmartWalletAccount({
|
|
108
|
-
smartWalletAccount
|
|
109
|
-
}, client$1);
|
|
110
|
-
core.assertDefined(eoaWalletAccount, 'EOA wallet account is not found');
|
|
111
|
-
return zerodevProvider.enableEIP7702 && // with EIP7702, the EOA wallet account address is the same as the smart wallet account address
|
|
112
|
-
smartWalletAccount.address === eoaWalletAccount.address;
|
|
113
|
-
};
|
|
114
|
-
|
|
115
|
-
const createKernelAccount = async ({ publicClient, smartWalletAccount }, client)=>{
|
|
116
|
-
var _getVerifiedCredentialForWalletAccount;
|
|
117
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
118
|
-
core.assertDefined(zerodevProvider, 'Zerodev provider is not enabled in project settings');
|
|
119
|
-
const signer = await getSignerForSmartWalletAccount({
|
|
120
|
-
smartWalletAccount
|
|
121
|
-
}, client);
|
|
122
|
-
const walletProperties = (_getVerifiedCredentialForWalletAccount = core.getVerifiedCredentialForWalletAccount({
|
|
123
|
-
walletAccount: smartWalletAccount
|
|
124
|
-
}, client)) == null ? void 0 : _getVerifiedCredentialForWalletAccount.walletProperties;
|
|
125
|
-
var _walletProperties_entryPointVersion;
|
|
126
|
-
const entryPointVersion = (_walletProperties_entryPointVersion = walletProperties == null ? void 0 : walletProperties.entryPointVersion) != null ? _walletProperties_entryPointVersion : zerodevProvider.entryPointVersion;
|
|
127
|
-
const entryPoint = getEntryPoint(entryPointVersion);
|
|
128
|
-
const useEIP7702 = shouldUseEIP7702({
|
|
129
|
-
smartWalletAccount
|
|
130
|
-
}, client);
|
|
131
|
-
if (useEIP7702) {
|
|
132
|
-
return sdk.createKernelAccount(publicClient, {
|
|
133
|
-
eip7702Account: signer,
|
|
134
|
-
entryPoint,
|
|
135
|
-
kernelVersion: sdk.constants.KERNEL_V3_3
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
var _walletProperties_kernelVersion;
|
|
139
|
-
const kernelVersionValue = (_walletProperties_kernelVersion = walletProperties == null ? void 0 : walletProperties.kernelVersion) != null ? _walletProperties_kernelVersion : zerodevProvider.kernelVersion;
|
|
140
|
-
const kernelVersion = getKernelVersion({
|
|
141
|
-
entryPoint,
|
|
142
|
-
kernelVersion: kernelVersionValue
|
|
143
|
-
});
|
|
144
|
-
var _zerodevProvider_enableKernelV3Migration;
|
|
145
|
-
const kernelV3MigrationEnabled = (_zerodevProvider_enableKernelV3Migration = zerodevProvider.enableKernelV3Migration) != null ? _zerodevProvider_enableKernelV3Migration : false;
|
|
146
|
-
if (kernelV3MigrationEnabled) {
|
|
147
|
-
const apiKernelVersion = getKernelVersion({
|
|
148
|
-
entryPoint,
|
|
149
|
-
kernelVersion: zerodevProvider.kernelVersion
|
|
150
|
-
});
|
|
151
|
-
return ecdsaValidator.createEcdsaKernelMigrationAccount(publicClient, {
|
|
152
|
-
entryPoint,
|
|
153
|
-
migrationVersion: {
|
|
154
|
-
from: kernelVersion,
|
|
155
|
-
to: apiKernelVersion
|
|
156
|
-
},
|
|
157
|
-
signer
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
var _walletProperties_ecdsaProviderType;
|
|
161
|
-
const validator = await getEcdsaValidator({
|
|
162
|
-
ecdsaProviderType: (_walletProperties_ecdsaProviderType = walletProperties == null ? void 0 : walletProperties.ecdsaProviderType) != null ? _walletProperties_ecdsaProviderType : zerodevProvider.ecdsaProviderType,
|
|
163
|
-
entryPoint,
|
|
164
|
-
kernelVersion,
|
|
165
|
-
publicClient,
|
|
166
|
-
signer
|
|
167
|
-
});
|
|
168
|
-
return sdk.createKernelAccount(publicClient, {
|
|
169
|
-
entryPoint,
|
|
170
|
-
kernelVersion,
|
|
171
|
-
plugins: {
|
|
172
|
-
sudo: validator
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
const getPaymasterConfig = ({ chain, gasTokenAddress, paymasterRpc })=>{
|
|
178
|
-
const getPaymasterData = (params)=>{
|
|
179
|
-
const zerodevPaymaster = sdk.createZeroDevPaymasterClient({
|
|
180
|
-
chain,
|
|
181
|
-
transport: viem$1.http(paymasterRpc)
|
|
182
|
-
});
|
|
183
|
-
return zerodevPaymaster.sponsorUserOperation({
|
|
184
|
-
gasToken: gasTokenAddress,
|
|
185
|
-
userOperation: params
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
return {
|
|
189
|
-
paymaster: {
|
|
190
|
-
getPaymasterData
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
const getZerodevRpc = ({ networkId, bundlerProvider, rpcType }, client)=>{
|
|
196
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
197
|
-
if (zerodevProvider == null ? void 0 : zerodevProvider.zerodevPaymasterRpcUrl) {
|
|
198
|
-
return zerodevProvider.zerodevPaymasterRpcUrl;
|
|
199
|
-
}
|
|
200
|
-
const zerodevChainProvider = getZerodevChainProviderForNetworkId({
|
|
201
|
-
networkId
|
|
202
|
-
}, client);
|
|
203
|
-
core.assertDefined(zerodevChainProvider, `No zerodev provider found for network id ${networkId}`);
|
|
204
|
-
var _ref;
|
|
205
|
-
const paymasterProvider = (_ref = bundlerProvider != null ? bundlerProvider : zerodevProvider.zerodevBundlerProvider) != null ? _ref : sdkApiCore.ZerodevBundlerProvider.Pimlico;
|
|
206
|
-
const paramName = rpcType === 'bundler' ? 'bundlerProvider' : 'paymasterProvider';
|
|
207
|
-
return `${ZERODEV_RPC_BASE_URL}/${rpcType}/${zerodevChainProvider.clientId}?${paramName}=${paymasterProvider}`;
|
|
208
|
-
};
|
|
209
|
-
|
|
210
|
-
exports.ZERODEV_METADATA = ZERODEV_METADATA;
|
|
211
|
-
exports.createKernelAccount = createKernelAccount;
|
|
212
|
-
exports.getEcdsaValidator = getEcdsaValidator;
|
|
213
|
-
exports.getEntryPoint = getEntryPoint;
|
|
214
|
-
exports.getKernelVersion = getKernelVersion;
|
|
215
|
-
exports.getPaymasterConfig = getPaymasterConfig;
|
|
216
|
-
exports.getSignerForSmartWalletAccount = getSignerForSmartWalletAccount;
|
|
217
|
-
exports.getZerodevChainProviderForNetworkId = getZerodevChainProviderForNetworkId;
|
|
218
|
-
exports.getZerodevProviderFromSettings = getZerodevProviderFromSettings;
|
|
219
|
-
exports.getZerodevRpc = getZerodevRpc;
|
|
220
|
-
exports.name = name;
|
|
221
|
-
exports.shouldUseEIP7702 = shouldUseEIP7702;
|
|
222
|
-
exports.version = version;
|
package/getZerodevRpc.esm.js
DELETED
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
import { DYNAMIC_ICONIC_SPRITE_URL, assertDefined, getDefaultClient, getVerifiedCredentialForWalletAccount } from '@dynamic-labs-sdk/client/core';
|
|
2
|
-
import { signerToEcdsaValidator, createEcdsaKernelMigrationAccount } from '@zerodev/ecdsa-validator';
|
|
3
|
-
import { constants, createKernelAccount as createKernelAccount$1, createZeroDevPaymasterClient } from '@zerodev/sdk';
|
|
4
|
-
import { getOwnerWalletAccountForSmartWalletAccount, NoSmartWalletAccountSignerFoundError } from '@dynamic-labs-sdk/client';
|
|
5
|
-
import { isEvmWalletAccount } from '@dynamic-labs-sdk/evm';
|
|
6
|
-
import { createWalletClientForWalletAccount } from '@dynamic-labs-sdk/evm/viem';
|
|
7
|
-
import { toMultiChainECDSAValidator } from '@zerodev/multi-chain-ecdsa-validator';
|
|
8
|
-
import { ProviderKernelVersionEnum, ProviderEnum, ProviderEntryPointVersionEnum, ZerodevBundlerProvider } from '@dynamic-labs/sdk-api-core';
|
|
9
|
-
import { http } from 'viem';
|
|
10
|
-
|
|
11
|
-
var name = "@dynamic-labs-sdk/zerodev";
|
|
12
|
-
var version = "0.1.2";
|
|
13
|
-
|
|
14
|
-
const ZERODEV_METADATA = {
|
|
15
|
-
displayName: 'ZeroDev',
|
|
16
|
-
icon: `${DYNAMIC_ICONIC_SPRITE_URL}#smartwallet`,
|
|
17
|
-
normalizedWalletName: 'zerodev'
|
|
18
|
-
};
|
|
19
|
-
const ZERODEV_RPC_BASE_URL = 'https://rpc.zerodev.app/api/v2';
|
|
20
|
-
const KERNEL_VERSION_MAP = {
|
|
21
|
-
[ProviderKernelVersionEnum.V33]: constants.KERNEL_V3_3,
|
|
22
|
-
[ProviderKernelVersionEnum.V32]: constants.KERNEL_V3_2,
|
|
23
|
-
[ProviderKernelVersionEnum.V31]: constants.KERNEL_V3_1,
|
|
24
|
-
[ProviderKernelVersionEnum.V30]: constants.KERNEL_V3_0,
|
|
25
|
-
[ProviderKernelVersionEnum.V24]: constants.KERNEL_V2_4
|
|
26
|
-
};
|
|
27
|
-
const ENTRY_POINT_VERSION_MAP = {
|
|
28
|
-
0.6: constants.KERNEL_V2_4,
|
|
29
|
-
0.7: constants.KERNEL_V3_1,
|
|
30
|
-
0.8: constants.KERNEL_V3_3
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
const getZerodevProviderFromSettings = (client)=>{
|
|
34
|
-
var _projectSettings_providers;
|
|
35
|
-
const projectSettings = client.projectSettings;
|
|
36
|
-
assertDefined(projectSettings, 'Project settings are not available');
|
|
37
|
-
const zerodevProvider = (_projectSettings_providers = projectSettings.providers) == null ? void 0 : _projectSettings_providers.find((provider)=>provider.provider === ProviderEnum.Zerodev);
|
|
38
|
-
assertDefined(zerodevProvider, 'Zerodev is not configured in project settings');
|
|
39
|
-
return zerodevProvider;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
const getZerodevChainProviderForNetworkId = ({ networkId }, client)=>{
|
|
43
|
-
var _zerodevProvider_multichainAccountAbstractionProviders;
|
|
44
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
45
|
-
return (_zerodevProvider_multichainAccountAbstractionProviders = zerodevProvider.multichainAccountAbstractionProviders) == null ? void 0 : _zerodevProvider_multichainAccountAbstractionProviders.find((provider)=>provider.chain === networkId);
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Gets a WalletClient instance for the EOA of the smart wallet account.
|
|
50
|
-
* You can use this signer to sign EVM transactions.
|
|
51
|
-
*
|
|
52
|
-
* @param params.smartWalletAccount - The EVM smart wallet account to get the signer for.
|
|
53
|
-
* @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
|
|
54
|
-
* @returns A promise that resolves to an WalletClient instance.
|
|
55
|
-
* @throws NoSmartWalletAccountSignerFoundError When the signer wallet account is not found for the given smart wallet account.
|
|
56
|
-
*/ const getSignerForSmartWalletAccount = ({ smartWalletAccount }, client = getDefaultClient())=>{
|
|
57
|
-
const signerWalletAccount = getOwnerWalletAccountForSmartWalletAccount({
|
|
58
|
-
smartWalletAccount
|
|
59
|
-
}, client);
|
|
60
|
-
if (!signerWalletAccount || !isEvmWalletAccount(signerWalletAccount)) {
|
|
61
|
-
throw new NoSmartWalletAccountSignerFoundError(smartWalletAccount.address);
|
|
62
|
-
}
|
|
63
|
-
return createWalletClientForWalletAccount({
|
|
64
|
-
walletAccount: signerWalletAccount
|
|
65
|
-
}, client);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
const getEcdsaValidator = ({ ecdsaProviderType, publicClient, signer, entryPoint, kernelVersion })=>{
|
|
69
|
-
const params = {
|
|
70
|
-
entryPoint,
|
|
71
|
-
kernelVersion,
|
|
72
|
-
signer
|
|
73
|
-
};
|
|
74
|
-
if (ecdsaProviderType === 'zerodev_multi_chain') {
|
|
75
|
-
return toMultiChainECDSAValidator(publicClient, params);
|
|
76
|
-
}
|
|
77
|
-
return signerToEcdsaValidator(publicClient, params);
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
const getEntryPoint = (entryPoint)=>{
|
|
81
|
-
if (entryPoint === ProviderEntryPointVersionEnum.V6) {
|
|
82
|
-
return constants.getEntryPoint('0.6');
|
|
83
|
-
}
|
|
84
|
-
// default to v7
|
|
85
|
-
return constants.getEntryPoint('0.7');
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
const getKernelVersion = ({ kernelVersion, entryPoint })=>{
|
|
89
|
-
// If kernel version is explicitly provided, use it
|
|
90
|
-
if (kernelVersion && kernelVersion in KERNEL_VERSION_MAP) {
|
|
91
|
-
return KERNEL_VERSION_MAP[kernelVersion];
|
|
92
|
-
}
|
|
93
|
-
// If no kernel version provided, determine based on entry point version
|
|
94
|
-
const entryPointVersion = entryPoint.version;
|
|
95
|
-
if (entryPointVersion in ENTRY_POINT_VERSION_MAP) {
|
|
96
|
-
return ENTRY_POINT_VERSION_MAP[entryPointVersion];
|
|
97
|
-
}
|
|
98
|
-
// Fallback to latest version
|
|
99
|
-
return constants.KERNEL_V3_3;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
const shouldUseEIP7702 = ({ smartWalletAccount }, client)=>{
|
|
103
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
104
|
-
assertDefined(zerodevProvider, 'Zerodev provider is not enabled in project settings');
|
|
105
|
-
const eoaWalletAccount = getOwnerWalletAccountForSmartWalletAccount({
|
|
106
|
-
smartWalletAccount
|
|
107
|
-
}, client);
|
|
108
|
-
assertDefined(eoaWalletAccount, 'EOA wallet account is not found');
|
|
109
|
-
return zerodevProvider.enableEIP7702 && // with EIP7702, the EOA wallet account address is the same as the smart wallet account address
|
|
110
|
-
smartWalletAccount.address === eoaWalletAccount.address;
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
const createKernelAccount = async ({ publicClient, smartWalletAccount }, client)=>{
|
|
114
|
-
var _getVerifiedCredentialForWalletAccount;
|
|
115
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
116
|
-
assertDefined(zerodevProvider, 'Zerodev provider is not enabled in project settings');
|
|
117
|
-
const signer = await getSignerForSmartWalletAccount({
|
|
118
|
-
smartWalletAccount
|
|
119
|
-
}, client);
|
|
120
|
-
const walletProperties = (_getVerifiedCredentialForWalletAccount = getVerifiedCredentialForWalletAccount({
|
|
121
|
-
walletAccount: smartWalletAccount
|
|
122
|
-
}, client)) == null ? void 0 : _getVerifiedCredentialForWalletAccount.walletProperties;
|
|
123
|
-
var _walletProperties_entryPointVersion;
|
|
124
|
-
const entryPointVersion = (_walletProperties_entryPointVersion = walletProperties == null ? void 0 : walletProperties.entryPointVersion) != null ? _walletProperties_entryPointVersion : zerodevProvider.entryPointVersion;
|
|
125
|
-
const entryPoint = getEntryPoint(entryPointVersion);
|
|
126
|
-
const useEIP7702 = shouldUseEIP7702({
|
|
127
|
-
smartWalletAccount
|
|
128
|
-
}, client);
|
|
129
|
-
if (useEIP7702) {
|
|
130
|
-
return createKernelAccount$1(publicClient, {
|
|
131
|
-
eip7702Account: signer,
|
|
132
|
-
entryPoint,
|
|
133
|
-
kernelVersion: constants.KERNEL_V3_3
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
var _walletProperties_kernelVersion;
|
|
137
|
-
const kernelVersionValue = (_walletProperties_kernelVersion = walletProperties == null ? void 0 : walletProperties.kernelVersion) != null ? _walletProperties_kernelVersion : zerodevProvider.kernelVersion;
|
|
138
|
-
const kernelVersion = getKernelVersion({
|
|
139
|
-
entryPoint,
|
|
140
|
-
kernelVersion: kernelVersionValue
|
|
141
|
-
});
|
|
142
|
-
var _zerodevProvider_enableKernelV3Migration;
|
|
143
|
-
const kernelV3MigrationEnabled = (_zerodevProvider_enableKernelV3Migration = zerodevProvider.enableKernelV3Migration) != null ? _zerodevProvider_enableKernelV3Migration : false;
|
|
144
|
-
if (kernelV3MigrationEnabled) {
|
|
145
|
-
const apiKernelVersion = getKernelVersion({
|
|
146
|
-
entryPoint,
|
|
147
|
-
kernelVersion: zerodevProvider.kernelVersion
|
|
148
|
-
});
|
|
149
|
-
return createEcdsaKernelMigrationAccount(publicClient, {
|
|
150
|
-
entryPoint,
|
|
151
|
-
migrationVersion: {
|
|
152
|
-
from: kernelVersion,
|
|
153
|
-
to: apiKernelVersion
|
|
154
|
-
},
|
|
155
|
-
signer
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
var _walletProperties_ecdsaProviderType;
|
|
159
|
-
const validator = await getEcdsaValidator({
|
|
160
|
-
ecdsaProviderType: (_walletProperties_ecdsaProviderType = walletProperties == null ? void 0 : walletProperties.ecdsaProviderType) != null ? _walletProperties_ecdsaProviderType : zerodevProvider.ecdsaProviderType,
|
|
161
|
-
entryPoint,
|
|
162
|
-
kernelVersion,
|
|
163
|
-
publicClient,
|
|
164
|
-
signer
|
|
165
|
-
});
|
|
166
|
-
return createKernelAccount$1(publicClient, {
|
|
167
|
-
entryPoint,
|
|
168
|
-
kernelVersion,
|
|
169
|
-
plugins: {
|
|
170
|
-
sudo: validator
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
};
|
|
174
|
-
|
|
175
|
-
const getPaymasterConfig = ({ chain, gasTokenAddress, paymasterRpc })=>{
|
|
176
|
-
const getPaymasterData = (params)=>{
|
|
177
|
-
const zerodevPaymaster = createZeroDevPaymasterClient({
|
|
178
|
-
chain,
|
|
179
|
-
transport: http(paymasterRpc)
|
|
180
|
-
});
|
|
181
|
-
return zerodevPaymaster.sponsorUserOperation({
|
|
182
|
-
gasToken: gasTokenAddress,
|
|
183
|
-
userOperation: params
|
|
184
|
-
});
|
|
185
|
-
};
|
|
186
|
-
return {
|
|
187
|
-
paymaster: {
|
|
188
|
-
getPaymasterData
|
|
189
|
-
}
|
|
190
|
-
};
|
|
191
|
-
};
|
|
192
|
-
|
|
193
|
-
const getZerodevRpc = ({ networkId, bundlerProvider, rpcType }, client)=>{
|
|
194
|
-
const zerodevProvider = getZerodevProviderFromSettings(client);
|
|
195
|
-
if (zerodevProvider == null ? void 0 : zerodevProvider.zerodevPaymasterRpcUrl) {
|
|
196
|
-
return zerodevProvider.zerodevPaymasterRpcUrl;
|
|
197
|
-
}
|
|
198
|
-
const zerodevChainProvider = getZerodevChainProviderForNetworkId({
|
|
199
|
-
networkId
|
|
200
|
-
}, client);
|
|
201
|
-
assertDefined(zerodevChainProvider, `No zerodev provider found for network id ${networkId}`);
|
|
202
|
-
var _ref;
|
|
203
|
-
const paymasterProvider = (_ref = bundlerProvider != null ? bundlerProvider : zerodevProvider.zerodevBundlerProvider) != null ? _ref : ZerodevBundlerProvider.Pimlico;
|
|
204
|
-
const paramName = rpcType === 'bundler' ? 'bundlerProvider' : 'paymasterProvider';
|
|
205
|
-
return `${ZERODEV_RPC_BASE_URL}/${rpcType}/${zerodevChainProvider.clientId}?${paramName}=${paymasterProvider}`;
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
export { ZERODEV_METADATA as Z, getPaymasterConfig as a, getZerodevChainProviderForNetworkId as b, createKernelAccount as c, getSignerForSmartWalletAccount as d, getEcdsaValidator as e, getEntryPoint as f, getZerodevRpc as g, getKernelVersion as h, getZerodevProviderFromSettings as i, name as n, shouldUseEIP7702 as s, version as v };
|
package/index.cjs.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./src/exports/index";
|