@zerodev/sdk 5.4.12 → 5.4.14
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/_cjs/actions/public/getKernelVersion.js +30 -0
- package/_cjs/actions/public/getKernelVersion.js.map +1 -0
- package/_cjs/actions/public/index.js +3 -1
- package/_cjs/actions/public/index.js.map +1 -1
- package/_cjs/index.js +11 -1
- package/_cjs/index.js.map +1 -1
- package/_esm/actions/public/getKernelVersion.js +48 -0
- package/_esm/actions/public/getKernelVersion.js.map +1 -0
- package/_esm/actions/public/index.js +1 -0
- package/_esm/actions/public/index.js.map +1 -1
- package/_esm/index.js +5 -0
- package/_esm/index.js.map +1 -1
- package/_types/actions/public/getKernelVersion.d.ts +29 -0
- package/_types/actions/public/getKernelVersion.d.ts.map +1 -0
- package/_types/actions/public/index.d.ts +1 -0
- package/_types/actions/public/index.d.ts.map +1 -1
- package/_types/index.d.ts +5 -0
- package/_types/index.d.ts.map +1 -1
- package/actions/public/getKernelVersion.ts +63 -0
- package/actions/public/index.ts +1 -0
- package/index.ts +5 -0
- package/package.json +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getKernelVersion = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const actions_1 = require("viem/actions");
|
|
6
|
+
const utils_1 = require("viem/utils");
|
|
7
|
+
const constants_1 = require("../../constants");
|
|
8
|
+
const getKernelVersion = async (client, args) => {
|
|
9
|
+
const { address } = args;
|
|
10
|
+
const storageValue = await (0, utils_1.getAction)(client, actions_1.getStorageAt, "getStorageAt")({
|
|
11
|
+
address,
|
|
12
|
+
slot: constants_1.KERNEL_IMPLEMENTATION_SLOT
|
|
13
|
+
});
|
|
14
|
+
if (!storageValue) {
|
|
15
|
+
throw new Error("Kernel version not found");
|
|
16
|
+
}
|
|
17
|
+
const addressSlice = (0, utils_1.slice)(storageValue, 12);
|
|
18
|
+
const addressHex = (0, utils_1.isHex)(addressSlice) ? addressSlice : (0, utils_1.toHex)(addressSlice);
|
|
19
|
+
const kernelImplementationAddress = (0, utils_1.getAddress)(addressHex);
|
|
20
|
+
if ((0, utils_1.isAddressEqual)(kernelImplementationAddress, viem_1.zeroAddress)) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const kernelVersion = Object.keys(constants_1.KernelVersionToAddressesMap).find((version) => (0, utils_1.isAddressEqual)(constants_1.KernelVersionToAddressesMap[version].accountImplementationAddress, kernelImplementationAddress));
|
|
24
|
+
if (!kernelVersion) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return kernelVersion;
|
|
28
|
+
};
|
|
29
|
+
exports.getKernelVersion = getKernelVersion;
|
|
30
|
+
//# sourceMappingURL=getKernelVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKernelVersion.js","sourceRoot":"","sources":["../../../actions/public/getKernelVersion.ts"],"names":[],"mappings":";;;AAAA,+BAA6D;AAC7D,0CAA2C;AAC3C,sCAAuF;AACvF,+CAAyF;AA6BlF,MAAM,gBAAgB,GAAG,KAAK,EACjC,MAAc,EACd,IAA4B,EACO,EAAE;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAExB,MAAM,YAAY,GAAG,MAAM,IAAA,iBAAS,EAChC,MAAM,EACN,sBAAY,EACZ,cAAc,CACjB,CAAC;QACE,OAAO;QACP,IAAI,EAAE,sCAA0B;KACnC,CAAC,CAAA;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,YAAY,GAAG,IAAA,aAAK,EAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,IAAA,aAAK,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,aAAK,EAAC,YAAY,CAAC,CAAA;IAC3E,MAAM,2BAA2B,GAAG,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,IAAA,sBAAc,EAAC,2BAA2B,EAAE,kBAAW,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAA;IACf,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,uCAA2B,CAAC,CAAC,IAAI,CAC/D,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,sBAAc,EAAC,uCAA2B,CAAC,OAA8B,CAAC,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CACrJ,CAAA;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACf,CAAC;IACD,OAAO,aAAoC,CAAA;AAC/C,CAAC,CAAA;AA9BY,QAAA,gBAAgB,oBA8B5B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isPluginInstalled = exports.getKernelImplementationAddress = exports.isSmartAccountDeployed = exports.getSenderAddress = exports.getAccountNonce = void 0;
|
|
3
|
+
exports.isPluginInstalled = exports.getKernelVersion = exports.getKernelImplementationAddress = exports.isSmartAccountDeployed = exports.getSenderAddress = exports.getAccountNonce = void 0;
|
|
4
4
|
var getAccountNonce_js_1 = require("./getAccountNonce.js");
|
|
5
5
|
Object.defineProperty(exports, "getAccountNonce", { enumerable: true, get: function () { return getAccountNonce_js_1.getAccountNonce; } });
|
|
6
6
|
var getSenderAddress_js_1 = require("./getSenderAddress.js");
|
|
@@ -9,6 +9,8 @@ var isSmartAccountDeployed_js_1 = require("./isSmartAccountDeployed.js");
|
|
|
9
9
|
Object.defineProperty(exports, "isSmartAccountDeployed", { enumerable: true, get: function () { return isSmartAccountDeployed_js_1.isSmartAccountDeployed; } });
|
|
10
10
|
var getKernelImplementationAddress_js_1 = require("./getKernelImplementationAddress.js");
|
|
11
11
|
Object.defineProperty(exports, "getKernelImplementationAddress", { enumerable: true, get: function () { return getKernelImplementationAddress_js_1.getKernelImplementationAddress; } });
|
|
12
|
+
var getKernelVersion_js_1 = require("./getKernelVersion.js");
|
|
13
|
+
Object.defineProperty(exports, "getKernelVersion", { enumerable: true, get: function () { return getKernelVersion_js_1.getKernelVersion; } });
|
|
12
14
|
var isPluginInstalled_js_1 = require("./isPluginInstalled.js");
|
|
13
15
|
Object.defineProperty(exports, "isPluginInstalled", { enumerable: true, get: function () { return isPluginInstalled_js_1.isPluginInstalled; } });
|
|
14
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":";;;AAAA,2DAG6B;AADzB,qHAAA,eAAe,OAAA;AAEnB,6DAI8B;AAD1B,uHAAA,gBAAgB,OAAA;AAEpB,yEAAoE;AAA3D,mIAAA,sBAAsB,OAAA;AAC/B,yFAAoF;AAA3E,mJAAA,8BAA8B,OAAA;AACvC,+DAA0D;AAAjD,yHAAA,iBAAiB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":";;;AAAA,2DAG6B;AADzB,qHAAA,eAAe,OAAA;AAEnB,6DAI8B;AAD1B,uHAAA,gBAAgB,OAAA;AAEpB,yEAAoE;AAA3D,mIAAA,sBAAsB,OAAA;AAC/B,yFAAoF;AAA3E,mJAAA,8BAA8B,OAAA;AACvC,6DAAwD;AAA/C,uHAAA,gBAAgB,OAAA;AACzB,+DAA0D;AAAjD,yHAAA,iBAAiB,OAAA"}
|
package/_cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getUpgradeKernelCall = exports.isPluginInitialized = exports.getUserOperationGasPrice = exports.setPimlicoAsProvider = exports.isProviderSet = exports.getEncodedPluginsData = exports.KernelEIP1193Provider = exports.getCustomNonceKeyFromString = exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryStakerAbi = exports.KernelV3FactoryAbi = exports.KernelV3_1AccountAbi = exports.KernelV3InitAbi = exports.KernelV3ExecuteAbi = exports.KernelV3AccountAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createFallbackKernelAccountClient = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.getPluginsEnableTypedData = exports.getActionSelector = exports.accountMetadata = exports.getKernelV3Nonce = exports.EIP1271Abi = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelAccountV1 = exports.createKernelAccountV0_2 = exports.createKernelAccount = void 0;
|
|
3
|
+
exports.encodeDeployCallDataV07 = exports.encodeDeployCallDataV06 = exports.encodeCallDataEpV07 = exports.encodeCallDataEpV06 = exports.eip712WrapHash = exports.getUpgradeKernelCall = exports.isPluginInitialized = exports.getUserOperationGasPrice = exports.setPimlicoAsProvider = exports.isProviderSet = exports.getEncodedPluginsData = exports.KernelEIP1193Provider = exports.getCustomNonceKeyFromString = exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryStakerAbi = exports.KernelV3FactoryAbi = exports.KernelV3_1AccountAbi = exports.KernelV3InitAbi = exports.KernelV3ExecuteAbi = exports.KernelV3AccountAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createFallbackKernelAccountClient = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.getPluginsEnableTypedData = exports.getActionSelector = exports.accountMetadata = exports.getKernelV3Nonce = exports.EIP1271Abi = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelAccountV1 = exports.createKernelAccountV0_2 = exports.createKernelAccount = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
var index_js_1 = require("./accounts/index.js");
|
|
6
6
|
Object.defineProperty(exports, "createKernelAccount", { enumerable: true, get: function () { return index_js_1.createKernelAccount; } });
|
|
@@ -62,4 +62,14 @@ tslib_1.__exportStar(require("./errors/index.js"), exports);
|
|
|
62
62
|
tslib_1.__exportStar(require("./utils/index.js"), exports);
|
|
63
63
|
var getUpgradeKernelCall_js_1 = require("./accounts/kernel/utils/common/getUpgradeKernelCall.js");
|
|
64
64
|
Object.defineProperty(exports, "getUpgradeKernelCall", { enumerable: true, get: function () { return getUpgradeKernelCall_js_1.getUpgradeKernelCall; } });
|
|
65
|
+
var eip712WrapHash_js_1 = require("./accounts/kernel/utils/common/eip712WrapHash.js");
|
|
66
|
+
Object.defineProperty(exports, "eip712WrapHash", { enumerable: true, get: function () { return eip712WrapHash_js_1.eip712WrapHash; } });
|
|
67
|
+
var encodeCallData_js_1 = require("./accounts/kernel/utils/account/ep0_6/encodeCallData.js");
|
|
68
|
+
Object.defineProperty(exports, "encodeCallDataEpV06", { enumerable: true, get: function () { return encodeCallData_js_1.encodeCallData; } });
|
|
69
|
+
var encodeCallData_js_2 = require("./accounts/kernel/utils/account/ep0_7/encodeCallData.js");
|
|
70
|
+
Object.defineProperty(exports, "encodeCallDataEpV07", { enumerable: true, get: function () { return encodeCallData_js_2.encodeCallData; } });
|
|
71
|
+
var encodeDeployCallData_js_1 = require("./accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js");
|
|
72
|
+
Object.defineProperty(exports, "encodeDeployCallDataV06", { enumerable: true, get: function () { return encodeDeployCallData_js_1.encodeDeployCallData; } });
|
|
73
|
+
var encodeDeployCallData_js_2 = require("./accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js");
|
|
74
|
+
Object.defineProperty(exports, "encodeDeployCallDataV07", { enumerable: true, get: function () { return encodeDeployCallData_js_2.encodeDeployCallData; } });
|
|
65
75
|
//# sourceMappingURL=index.js.map
|
package/_cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,gDAgB4B;AAfxB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AAMrB,4GAAA,gBAAgB,OAAA;AAChB,iHAAA,qBAAqB,OAAA;AACrB,sGAAA,UAAU,OAAA;AACV,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,6GAAA,iBAAiB,OAAA;AACjB,qHAAA,yBAAyB,OAAA;AAE7B,uFAIoD;AAHhD,+HAAA,oBAAoB,OAAA;AAKxB,4DAKuC;AAJnC,oHAAA,uBAAuB,OAAA;AAEvB,uHAAA,0BAA0B,OAAA;AAG9B,mEAGqC;AAFjC,kIAAA,4BAA4B,OAAA;AAGhC,2EAGyC;AAFrC,mIAAA,yBAAyB,OAAA;AAG7B,2FAA4F;AAAnF,mJAAA,iCAAiC,OAAA;AAQ1C,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,gGAIiE;AAH7D,yHAAA,kBAAkB,OAAA;AAClB,yHAAA,kBAAkB,OAAA;AAClB,sHAAA,eAAe,OAAA;AAEnB,8FAA6F;AAApF,2HAAA,oBAAoB,OAAA;AAC7B,gGAA6F;AAApF,yHAAA,kBAAkB,OAAA;AAC3B,4GAAuG;AAA9F,mIAAA,sBAAsB,OAAA;AAC/B,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAAgF;AAAvE,yHAAA,iBAAiB,OAAA;AAC1B,sDAGkC;AAF9B,kHAAA,sBAAsB,OAAA;AACtB,uHAAA,2BAA2B,OAAA;AAE/B,iDAA4D;AAAnD,iHAAA,qBAAqB,OAAA;AAC9B,2GAAsG;AAA7F,iIAAA,qBAAqB,OAAA;AAC9B,+CAAwE;AAA/D,yGAAA,aAAa,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAC5C,oGAA+F;AAAtF,uIAAA,wBAAwB,OAAA;AACjC,uGAAkG;AAAzF,6HAAA,mBAAmB,OAAA;AAC5B,4DAAiC;AACjC,2DAAgC;AAChC,kGAA6F;AAApF,+HAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,gDAgB4B;AAfxB,+GAAA,mBAAmB,OAAA;AACnB,mHAAA,uBAAuB,OAAA;AACvB,iHAAA,qBAAqB,OAAA;AAMrB,4GAAA,gBAAgB,OAAA;AAChB,iHAAA,qBAAqB,OAAA;AACrB,sGAAA,UAAU,OAAA;AACV,4GAAA,gBAAgB,OAAA;AAChB,2GAAA,eAAe,OAAA;AACf,6GAAA,iBAAiB,OAAA;AACjB,qHAAA,yBAAyB,OAAA;AAE7B,uFAIoD;AAHhD,+HAAA,oBAAoB,OAAA;AAKxB,4DAKuC;AAJnC,oHAAA,uBAAuB,OAAA;AAEvB,uHAAA,0BAA0B,OAAA;AAG9B,mEAGqC;AAFjC,kIAAA,4BAA4B,OAAA;AAGhC,2EAGyC;AAFrC,mIAAA,yBAAyB,OAAA;AAG7B,2FAA4F;AAAnF,mJAAA,iCAAiC,OAAA;AAQ1C,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,gGAIiE;AAH7D,yHAAA,kBAAkB,OAAA;AAClB,yHAAA,kBAAkB,OAAA;AAClB,sHAAA,eAAe,OAAA;AAEnB,8FAA6F;AAApF,2HAAA,oBAAoB,OAAA;AAC7B,gGAA6F;AAApF,yHAAA,kBAAkB,OAAA;AAC3B,4GAAuG;AAA9F,mIAAA,sBAAsB,OAAA;AAC/B,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAAgF;AAAvE,yHAAA,iBAAiB,OAAA;AAC1B,sDAGkC;AAF9B,kHAAA,sBAAsB,OAAA;AACtB,uHAAA,2BAA2B,OAAA;AAE/B,iDAA4D;AAAnD,iHAAA,qBAAqB,OAAA;AAC9B,2GAAsG;AAA7F,iIAAA,qBAAqB,OAAA;AAC9B,+CAAwE;AAA/D,yGAAA,aAAa,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAC5C,oGAA+F;AAAtF,uIAAA,wBAAwB,OAAA;AACjC,uGAAkG;AAAzF,6HAAA,mBAAmB,OAAA;AAC5B,4DAAiC;AACjC,2DAAgC;AAChC,kGAA6F;AAApF,+HAAA,oBAAoB,OAAA;AAC7B,sFAAiF;AAAxE,mHAAA,cAAc,OAAA;AACvB,6FAA+G;AAAtG,wHAAA,cAAc,OAAuB;AAC9C,6FAA+G;AAAtG,wHAAA,cAAc,OAAuB;AAC9C,yGAA+H;AAAtH,kIAAA,oBAAoB,OAA2B;AACxD,yGAA+H;AAAtH,kIAAA,oBAAoB,OAA2B"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { zeroAddress } from "viem";
|
|
2
|
+
import { getStorageAt } from "viem/actions";
|
|
3
|
+
import { getAction, getAddress, isAddressEqual, isHex, slice, toHex } from "viem/utils";
|
|
4
|
+
import { KERNEL_IMPLEMENTATION_SLOT, KernelVersionToAddressesMap } from "../../constants";
|
|
5
|
+
/**
|
|
6
|
+
* Returns the address of the kernel implementation.
|
|
7
|
+
*
|
|
8
|
+
* @param client {@link client} that you created using viem's createPublicClient.
|
|
9
|
+
* @param args {@link GetKernelVersionParams} address
|
|
10
|
+
* @returns KERNEL_VERSION_TYPE
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* import { createPublicClient } from "viem"
|
|
14
|
+
* import { getKernelImplementationAddress } from "@zerodev/sdk/actions"
|
|
15
|
+
*
|
|
16
|
+
* const client = createPublicClient({
|
|
17
|
+
* chain: goerli,
|
|
18
|
+
* transport: http("https://goerli.infura.io/v3/your-infura-key")
|
|
19
|
+
* })
|
|
20
|
+
*
|
|
21
|
+
* const kernelVersion = await getKernelVersion(client, {
|
|
22
|
+
* address,
|
|
23
|
+
* })
|
|
24
|
+
*
|
|
25
|
+
* // Return "0.3.1"
|
|
26
|
+
*/
|
|
27
|
+
export const getKernelVersion = async (client, args) => {
|
|
28
|
+
const { address } = args;
|
|
29
|
+
const storageValue = await getAction(client, getStorageAt, "getStorageAt")({
|
|
30
|
+
address,
|
|
31
|
+
slot: KERNEL_IMPLEMENTATION_SLOT
|
|
32
|
+
});
|
|
33
|
+
if (!storageValue) {
|
|
34
|
+
throw new Error("Kernel version not found");
|
|
35
|
+
}
|
|
36
|
+
const addressSlice = slice(storageValue, 12);
|
|
37
|
+
const addressHex = isHex(addressSlice) ? addressSlice : toHex(addressSlice);
|
|
38
|
+
const kernelImplementationAddress = getAddress(addressHex);
|
|
39
|
+
if (isAddressEqual(kernelImplementationAddress, zeroAddress)) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const kernelVersion = Object.keys(KernelVersionToAddressesMap).find((version) => isAddressEqual(KernelVersionToAddressesMap[version].accountImplementationAddress, kernelImplementationAddress));
|
|
43
|
+
if (!kernelVersion) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return kernelVersion;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=getKernelVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKernelVersion.js","sourceRoot":"","sources":["../../../actions/public/getKernelVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA6B,MAAM,MAAM,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvF,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAOzF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACjC,MAAc,EACd,IAA4B,EACO,EAAE;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;IAExB,MAAM,YAAY,GAAG,MAAM,SAAS,CAChC,MAAM,EACN,YAAY,EACZ,cAAc,CACjB,CAAC;QACE,OAAO;QACP,IAAI,EAAE,0BAA0B;KACnC,CAAC,CAAA;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3E,MAAM,2BAA2B,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IAC1D,IAAI,cAAc,CAAC,2BAA2B,EAAE,WAAW,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAA;IACf,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAC/D,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,2BAA2B,CAAC,OAA8B,CAAC,CAAC,4BAA4B,EAAE,2BAA2B,CAAC,CACrJ,CAAA;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACf,CAAC;IACD,OAAO,aAAoC,CAAA;AAC/C,CAAC,CAAA"}
|
|
@@ -2,5 +2,6 @@ export { getAccountNonce } from "./getAccountNonce.js";
|
|
|
2
2
|
export { getSenderAddress } from "./getSenderAddress.js";
|
|
3
3
|
export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js";
|
|
4
4
|
export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js";
|
|
5
|
+
export { getKernelVersion } from "./getKernelVersion.js";
|
|
5
6
|
export { isPluginInstalled } from "./isPluginInstalled.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGH,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGH,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
|
package/_esm/index.js
CHANGED
|
@@ -26,4 +26,9 @@ export { isPluginInitialized } from "./accounts/kernel/utils/plugins/ep0_7/isPlu
|
|
|
26
26
|
export * from "./errors/index.js";
|
|
27
27
|
export * from "./utils/index.js";
|
|
28
28
|
export { getUpgradeKernelCall } from "./accounts/kernel/utils/common/getUpgradeKernelCall.js";
|
|
29
|
+
export { eip712WrapHash } from "./accounts/kernel/utils/common/eip712WrapHash.js";
|
|
30
|
+
export { encodeCallData as encodeCallDataEpV06 } from "./accounts/kernel/utils/account/ep0_6/encodeCallData.js";
|
|
31
|
+
export { encodeCallData as encodeCallDataEpV07 } from "./accounts/kernel/utils/account/ep0_7/encodeCallData.js";
|
|
32
|
+
export { encodeDeployCallData as encodeDeployCallDataV06 } from "./accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js";
|
|
33
|
+
export { encodeDeployCallData as encodeDeployCallDataV07 } from "./accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js";
|
|
29
34
|
//# sourceMappingURL=index.js.map
|
package/_esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EAMrB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EAGvB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAiC,MAAM,kCAAkC,CAAA;AAChF,OAAO,EACH,uBAAuB,EAEvB,0BAA0B,EAE7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAE/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EAE5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAMN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAA;AAClG,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EAMrB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EAGvB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAiC,MAAM,kCAAkC,CAAA;AAChF,OAAO,EACH,uBAAuB,EAEvB,0BAA0B,EAE7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAE/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EAE5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAMN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAA;AAClG,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AACjF,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,yDAAyD,CAAA;AAC/G,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,yDAAyD,CAAA;AAC/G,OAAO,EAAE,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,+DAA+D,CAAA;AAC/H,OAAO,EAAE,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,+DAA+D,CAAA"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Address, type Client } from "viem";
|
|
2
|
+
import type { KERNEL_VERSION_TYPE } from "../../types";
|
|
3
|
+
export type GetKernelVersionParams = {
|
|
4
|
+
address: Address;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Returns the address of the kernel implementation.
|
|
8
|
+
*
|
|
9
|
+
* @param client {@link client} that you created using viem's createPublicClient.
|
|
10
|
+
* @param args {@link GetKernelVersionParams} address
|
|
11
|
+
* @returns KERNEL_VERSION_TYPE
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* import { createPublicClient } from "viem"
|
|
15
|
+
* import { getKernelImplementationAddress } from "@zerodev/sdk/actions"
|
|
16
|
+
*
|
|
17
|
+
* const client = createPublicClient({
|
|
18
|
+
* chain: goerli,
|
|
19
|
+
* transport: http("https://goerli.infura.io/v3/your-infura-key")
|
|
20
|
+
* })
|
|
21
|
+
*
|
|
22
|
+
* const kernelVersion = await getKernelVersion(client, {
|
|
23
|
+
* address,
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* // Return "0.3.1"
|
|
27
|
+
*/
|
|
28
|
+
export declare const getKernelVersion: (client: Client, args: GetKernelVersionParams) => Promise<KERNEL_VERSION_TYPE | null>;
|
|
29
|
+
//# sourceMappingURL=getKernelVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getKernelVersion.d.ts","sourceRoot":"","sources":["../../../actions/public/getKernelVersion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAA;AAI7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gBAAgB,WACjB,MAAM,QACR,sBAAsB,KAC7B,QAAQ,mBAAmB,GAAG,IAAI,CA2BpC,CAAA"}
|
|
@@ -2,5 +2,6 @@ export { type GetAccountNonceParams, getAccountNonce } from "./getAccountNonce.j
|
|
|
2
2
|
export { type GetSenderAddressParams, type InvalidEntryPointError, getSenderAddress } from "./getSenderAddress.js";
|
|
3
3
|
export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js";
|
|
4
4
|
export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js";
|
|
5
|
+
export { getKernelVersion } from "./getKernelVersion.js";
|
|
5
6
|
export { isPluginInstalled } from "./isPluginInstalled.js";
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/public/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAC1B,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACH,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,gBAAgB,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA"}
|
package/_types/index.d.ts
CHANGED
|
@@ -25,4 +25,9 @@ export { isPluginInitialized } from "./accounts/kernel/utils/plugins/ep0_7/isPlu
|
|
|
25
25
|
export * from "./errors/index.js";
|
|
26
26
|
export * from "./utils/index.js";
|
|
27
27
|
export { getUpgradeKernelCall } from "./accounts/kernel/utils/common/getUpgradeKernelCall.js";
|
|
28
|
+
export { eip712WrapHash } from "./accounts/kernel/utils/common/eip712WrapHash.js";
|
|
29
|
+
export { encodeCallData as encodeCallDataEpV06 } from "./accounts/kernel/utils/account/ep0_6/encodeCallData.js";
|
|
30
|
+
export { encodeCallData as encodeCallDataEpV07 } from "./accounts/kernel/utils/account/ep0_7/encodeCallData.js";
|
|
31
|
+
export { encodeDeployCallData as encodeDeployCallDataV06 } from "./accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js";
|
|
32
|
+
export { encodeDeployCallData as encodeDeployCallDataV07 } from "./accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js";
|
|
28
33
|
//# sourceMappingURL=index.d.ts.map
|
package/_types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAChF,OAAO,EACH,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,0BAA0B,EAC1B,KAAK,0BAA0B,EAClC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAC5B,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EACzB,KAAK,mBAAmB,EAC3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAA;AAClG,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAClC,KAAK,+BAA+B,EACpC,KAAK,gCAAgC,EACrC,KAAK,kCAAkC,EACvC,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,yBAAyB,EAC5B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAChF,OAAO,EACH,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,0BAA0B,EAC1B,KAAK,0BAA0B,EAClC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAC5B,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EACzB,KAAK,mBAAmB,EAC3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAA;AAClG,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wDAAwD,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAA;AACjF,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,yDAAyD,CAAA;AAC/G,OAAO,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,yDAAyD,CAAA;AAC/G,OAAO,EAAE,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,+DAA+D,CAAA;AAC/H,OAAO,EAAE,oBAAoB,IAAI,uBAAuB,EAAE,MAAM,+DAA+D,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { zeroAddress, type Address, type Client } from "viem"
|
|
2
|
+
import { getStorageAt } from "viem/actions"
|
|
3
|
+
import { getAction, getAddress, isAddressEqual, isHex, slice, toHex } from "viem/utils"
|
|
4
|
+
import { KERNEL_IMPLEMENTATION_SLOT, KernelVersionToAddressesMap } from "../../constants"
|
|
5
|
+
import type { KERNEL_VERSION_TYPE } from "../../types";
|
|
6
|
+
|
|
7
|
+
export type GetKernelVersionParams = {
|
|
8
|
+
address: Address
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Returns the address of the kernel implementation.
|
|
13
|
+
*
|
|
14
|
+
* @param client {@link client} that you created using viem's createPublicClient.
|
|
15
|
+
* @param args {@link GetKernelVersionParams} address
|
|
16
|
+
* @returns KERNEL_VERSION_TYPE
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* import { createPublicClient } from "viem"
|
|
20
|
+
* import { getKernelImplementationAddress } from "@zerodev/sdk/actions"
|
|
21
|
+
*
|
|
22
|
+
* const client = createPublicClient({
|
|
23
|
+
* chain: goerli,
|
|
24
|
+
* transport: http("https://goerli.infura.io/v3/your-infura-key")
|
|
25
|
+
* })
|
|
26
|
+
*
|
|
27
|
+
* const kernelVersion = await getKernelVersion(client, {
|
|
28
|
+
* address,
|
|
29
|
+
* })
|
|
30
|
+
*
|
|
31
|
+
* // Return "0.3.1"
|
|
32
|
+
*/
|
|
33
|
+
export const getKernelVersion = async (
|
|
34
|
+
client: Client,
|
|
35
|
+
args: GetKernelVersionParams
|
|
36
|
+
): Promise<KERNEL_VERSION_TYPE | null> => {
|
|
37
|
+
const { address } = args
|
|
38
|
+
|
|
39
|
+
const storageValue = await getAction(
|
|
40
|
+
client,
|
|
41
|
+
getStorageAt,
|
|
42
|
+
"getStorageAt"
|
|
43
|
+
)({
|
|
44
|
+
address,
|
|
45
|
+
slot: KERNEL_IMPLEMENTATION_SLOT
|
|
46
|
+
})
|
|
47
|
+
if (!storageValue) {
|
|
48
|
+
throw new Error("Kernel version not found")
|
|
49
|
+
}
|
|
50
|
+
const addressSlice = slice(storageValue, 12)
|
|
51
|
+
const addressHex = isHex(addressSlice) ? addressSlice : toHex(addressSlice)
|
|
52
|
+
const kernelImplementationAddress = getAddress(addressHex)
|
|
53
|
+
if (isAddressEqual(kernelImplementationAddress, zeroAddress)) {
|
|
54
|
+
return null
|
|
55
|
+
}
|
|
56
|
+
const kernelVersion = Object.keys(KernelVersionToAddressesMap).find(
|
|
57
|
+
(version) => isAddressEqual(KernelVersionToAddressesMap[version as KERNEL_VERSION_TYPE].accountImplementationAddress, kernelImplementationAddress)
|
|
58
|
+
)
|
|
59
|
+
if (!kernelVersion) {
|
|
60
|
+
return null
|
|
61
|
+
}
|
|
62
|
+
return kernelVersion as KERNEL_VERSION_TYPE
|
|
63
|
+
}
|
package/actions/public/index.ts
CHANGED
|
@@ -9,4 +9,5 @@ export {
|
|
|
9
9
|
} from "./getSenderAddress.js"
|
|
10
10
|
export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js"
|
|
11
11
|
export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js"
|
|
12
|
+
export { getKernelVersion } from "./getKernelVersion.js"
|
|
12
13
|
export { isPluginInstalled } from "./isPluginInstalled.js"
|
package/index.ts
CHANGED
|
@@ -69,3 +69,8 @@ export { isPluginInitialized } from "./accounts/kernel/utils/plugins/ep0_7/isPlu
|
|
|
69
69
|
export * from "./errors/index.js"
|
|
70
70
|
export * from "./utils/index.js"
|
|
71
71
|
export { getUpgradeKernelCall } from "./accounts/kernel/utils/common/getUpgradeKernelCall.js"
|
|
72
|
+
export { eip712WrapHash } from "./accounts/kernel/utils/common/eip712WrapHash.js"
|
|
73
|
+
export { encodeCallData as encodeCallDataEpV06 } from "./accounts/kernel/utils/account/ep0_6/encodeCallData.js"
|
|
74
|
+
export { encodeCallData as encodeCallDataEpV07 } from "./accounts/kernel/utils/account/ep0_7/encodeCallData.js"
|
|
75
|
+
export { encodeDeployCallData as encodeDeployCallDataV06 } from "./accounts/kernel/utils/account/ep0_6/encodeDeployCallData.js"
|
|
76
|
+
export { encodeDeployCallData as encodeDeployCallDataV07 } from "./accounts/kernel/utils/account/ep0_7/encodeDeployCallData.js"
|