@zerodev/sdk 5.4.6 → 5.4.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.
Files changed (36) hide show
  1. package/_cjs/actions/account-client/upgradeKernel.js +36 -0
  2. package/_cjs/actions/account-client/upgradeKernel.js.map +1 -0
  3. package/_cjs/actions/public/getKernelImplementationAddress.js +21 -0
  4. package/_cjs/actions/public/getKernelImplementationAddress.js.map +1 -0
  5. package/_cjs/actions/public/index.js +3 -1
  6. package/_cjs/actions/public/index.js.map +1 -1
  7. package/_cjs/clients/decorators/kernel.js +2 -0
  8. package/_cjs/clients/decorators/kernel.js.map +1 -1
  9. package/_cjs/constants.js +2 -1
  10. package/_cjs/constants.js.map +1 -1
  11. package/_esm/actions/account-client/upgradeKernel.js +32 -0
  12. package/_esm/actions/account-client/upgradeKernel.js.map +1 -0
  13. package/_esm/actions/public/getKernelImplementationAddress.js +39 -0
  14. package/_esm/actions/public/getKernelImplementationAddress.js.map +1 -0
  15. package/_esm/actions/public/index.js +1 -0
  16. package/_esm/actions/public/index.js.map +1 -1
  17. package/_esm/clients/decorators/kernel.js +2 -0
  18. package/_esm/clients/decorators/kernel.js.map +1 -1
  19. package/_esm/constants.js +1 -0
  20. package/_esm/constants.js.map +1 -1
  21. package/_types/actions/account-client/upgradeKernel.d.ts +8 -0
  22. package/_types/actions/account-client/upgradeKernel.d.ts.map +1 -0
  23. package/_types/actions/public/getKernelImplementationAddress.d.ts +28 -0
  24. package/_types/actions/public/getKernelImplementationAddress.d.ts.map +1 -0
  25. package/_types/actions/public/index.d.ts +1 -0
  26. package/_types/actions/public/index.d.ts.map +1 -1
  27. package/_types/clients/decorators/kernel.d.ts +9 -0
  28. package/_types/clients/decorators/kernel.d.ts.map +1 -1
  29. package/_types/constants.d.ts +1 -0
  30. package/_types/constants.d.ts.map +1 -1
  31. package/actions/account-client/upgradeKernel.ts +65 -0
  32. package/actions/public/getKernelImplementationAddress.ts +52 -0
  33. package/actions/public/index.ts +1 -0
  34. package/clients/decorators/kernel.ts +19 -0
  35. package/constants.ts +3 -0
  36. package/package.json +32 -10
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.upgradeKernel = void 0;
4
+ const account_abstraction_1 = require("viem/account-abstraction");
5
+ const utils_1 = require("viem/utils");
6
+ const KernelAccountAbi_js_1 = require("../../accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js");
7
+ const index_js_1 = require("../../errors/index.js");
8
+ const utils_js_1 = require("../../utils.js");
9
+ const constants_js_1 = require("../../constants.js");
10
+ async function upgradeKernel(client, args) {
11
+ const { account: account_ = client.account, kernelVersion } = args;
12
+ if (!account_)
13
+ throw new index_js_1.AccountNotFoundError({
14
+ docsPath: "/docs/actions/wallet/sendTransaction"
15
+ });
16
+ const account = (0, utils_1.parseAccount)(account_);
17
+ (0, utils_js_1.validateKernelVersionWithEntryPoint)(account.entryPoint.version, kernelVersion);
18
+ const implementation = constants_js_1.KernelVersionToAddressesMap[kernelVersion].accountImplementationAddress;
19
+ return await (0, utils_1.getAction)(client, account_abstraction_1.sendUserOperation, "sendUserOperation")({
20
+ ...args,
21
+ calls: [
22
+ {
23
+ to: account.address,
24
+ data: (0, utils_1.encodeFunctionData)({
25
+ abi: KernelAccountAbi_js_1.KernelV3AccountAbi,
26
+ functionName: "upgradeTo",
27
+ args: [implementation]
28
+ }),
29
+ value: 0n
30
+ }
31
+ ],
32
+ account
33
+ });
34
+ }
35
+ exports.upgradeKernel = upgradeKernel;
36
+ //# sourceMappingURL=upgradeKernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeKernel.js","sourceRoot":"","sources":["../../../actions/account-client/upgradeKernel.ts"],"names":[],"mappings":";;;AACA,kEAIiC;AACjC,sCAAwE;AACxE,sGAAiG;AACjG,oDAA4D;AAE5D,6CAAoE;AACpE,qDAAiE;AAY1D,KAAK,UAAU,aAAa,CAM/B,MAAyC,EACzC,IAAwE;IAExE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IAClE,IAAI,CAAC,QAAQ;QACT,MAAM,IAAI,+BAAoB,CAAC;YAC3B,QAAQ,EAAE,sCAAsC;SACnD,CAAC,CAAA;IAEN,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAAiB,CAAA;IACtD,IAAA,8CAAmC,EAC/B,OAAO,CAAC,UAAU,CAAC,OAAO,EAC1B,aAAa,CAChB,CAAA;IACD,MAAM,cAAc,GAAG,0CAA2B,CAAC,aAAa,CAAC,CAAC,4BAA4B,CAAA;IAE9F,OAAO,MAAM,IAAA,iBAAS,EAClB,MAAM,EACN,uCAAiB,EACjB,mBAAmB,CACtB,CAAC;QACE,GAAG,IAAI;QACP,KAAK,EAAE;YACH;gBACI,EAAE,EAAE,OAAO,CAAC,OAAO;gBACnB,IAAI,EAAE,IAAA,0BAAkB,EAAC;oBACrB,GAAG,EAAE,wCAAkB;oBACvB,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,cAAc,CAAC;iBACzB,CAAC;gBACF,KAAK,EAAE,EAAE;aACZ;SACJ;QACD,OAAO;KACqB,CAAC,CAAA;AACrC,CAAC;AAzCD,sCAyCC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKernelImplementationAddress = void 0;
4
+ const actions_1 = require("viem/actions");
5
+ const utils_1 = require("viem/utils");
6
+ const constants_1 = require("../../constants");
7
+ const getKernelImplementationAddress = async (client, args) => {
8
+ const { address } = args;
9
+ const storageValue = await (0, utils_1.getAction)(client, actions_1.getStorageAt, "getStorageAt")({
10
+ address,
11
+ slot: constants_1.KERNEL_IMPLEMENTATION_SLOT
12
+ });
13
+ if (!storageValue) {
14
+ throw new Error("Kernel implementation address not found");
15
+ }
16
+ const addressSlice = (0, utils_1.slice)(storageValue, 12);
17
+ const addressHex = (0, utils_1.isHex)(addressSlice) ? addressSlice : (0, utils_1.toHex)(addressSlice);
18
+ return (0, utils_1.getAddress)(addressHex);
19
+ };
20
+ exports.getKernelImplementationAddress = getKernelImplementationAddress;
21
+ //# sourceMappingURL=getKernelImplementationAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getKernelImplementationAddress.js","sourceRoot":"","sources":["../../../actions/public/getKernelImplementationAddress.ts"],"names":[],"mappings":";;;AACA,0CAA2C;AAC3C,sCAAuE;AACvE,+CAA4D;AA4BrD,MAAM,8BAA8B,GAAG,KAAK,EAC/C,MAAc,EACd,IAA0C,EAC1B,EAAE;IAClB,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,yCAAyC,CAAC,CAAA;IAC9D,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,OAAO,IAAA,kBAAU,EAAC,UAAU,CAAC,CAAA;AACjC,CAAC,CAAA;AApBY,QAAA,8BAA8B,kCAoB1C"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSmartAccountDeployed = exports.getSenderAddress = exports.getAccountNonce = void 0;
3
+ 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");
7
7
  Object.defineProperty(exports, "getSenderAddress", { enumerable: true, get: function () { return getSenderAddress_js_1.getSenderAddress; } });
8
8
  var isSmartAccountDeployed_js_1 = require("./isSmartAccountDeployed.js");
9
9
  Object.defineProperty(exports, "isSmartAccountDeployed", { enumerable: true, get: function () { return isSmartAccountDeployed_js_1.isSmartAccountDeployed; } });
10
+ var getKernelImplementationAddress_js_1 = require("./getKernelImplementationAddress.js");
11
+ Object.defineProperty(exports, "getKernelImplementationAddress", { enumerable: true, get: function () { return getKernelImplementationAddress_js_1.getKernelImplementationAddress; } });
10
12
  //# 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"}
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"}
@@ -11,6 +11,7 @@ const writeContract_js_1 = require("../../actions/account-client/writeContract.j
11
11
  const index_js_1 = require("../../actions/index.js");
12
12
  const estimateGasInERC20_js_1 = require("../../actions/paymaster/estimateGasInERC20.js");
13
13
  const sponsorUserOperation_js_1 = require("../../actions/paymaster/sponsorUserOperation.js");
14
+ const upgradeKernel_js_1 = require("../../actions/account-client/upgradeKernel.js");
14
15
  const zerodevPaymasterActions = () => (client) => ({
15
16
  sponsorUserOperation: async (args) => (0, sponsorUserOperation_js_1.sponsorUserOperation)(client, {
16
17
  ...args
@@ -26,6 +27,7 @@ function kernelAccountClientActions() {
26
27
  changeSudoValidator: async (args) => (0, index_js_1.changeSudoValidator)(client, args),
27
28
  invalidateNonce: async (args) => (0, invalidateNonce_js_1.invalidateNonce)(client, args),
28
29
  getKernelV3ModuleCurrentNonce: async () => (0, getKernelV3ModuleCurrentNonce_js_1.getKernelV3ModuleCurrentNonce)(client),
30
+ upgradeKernel: async (args) => (0, upgradeKernel_js_1.upgradeKernel)(client, args),
29
31
  sendTransaction: (args) => (0, sendTransaction_js_1.sendTransaction)(client, args),
30
32
  signMessage: (args) => (0, signMessage_js_1.signMessage)(client, args),
31
33
  signTypedData: (args) => (0, signTypedData_js_1.signTypedData)(client, args),
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":";;;AAaA,oHAA6G;AAC7G,0GAGiE;AACjE,wFAGwD;AACxD,wFAAiF;AACjF,gFAAyE;AACzE,oFAA6E;AAC7E,oFAA6E;AAM7E,qDAI+B;AAC/B,yFAIsD;AACtD,6FAIwD;AAejD,MAAM,uBAAuB,GAChC,GAAgD,EAAE,CAClD,CAAC,MAAc,EAAiC,EAAE,CAAC,CAAC;IAChD,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,IAAA,8CAAoB,EAChB,MAAmD,EACnD;QACI,GAAG,IAAI;KACV,CACJ;IACL,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,IAAA,0CAAkB,EACd,MAAmD,EACnD,IAAI,CACP;CACR,CAAC,CAAA;AAfO,QAAA,uBAAuB,2BAe9B;AAuXN,SAAgB,0BAA0B;IACtC,OAAO,CAMH,MAAgD,EACC,EAAE,CAAC,CAAC;QACrD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,4BAAiB,EAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,sDAAwB,EAAC,MAAM,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAe,EAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,8BAAmB,EAAC,MAAM,EAAE,IAAI,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,oCAAe,EAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,6BAA6B,EAAE,KAAK,IAAI,EAAE,CACtC,IAAA,gEAA6B,EAAC,MAAM,CAAC;QAEzC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oCAAe,EAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,4BAAW,EAAC,MAAM,EAAE,IAAI,CAAC;QAChD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gCAAa,EAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gCAAa,EAAC,MAAM,EAAE,IAAI,CAAC;KACvD,CAAC,CAAA;AACN,CAAC;AAtBD,gEAsBC"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":";;;AAaA,oHAA6G;AAC7G,0GAGiE;AACjE,wFAGwD;AACxD,wFAAiF;AACjF,gFAAyE;AACzE,oFAA6E;AAC7E,oFAA6E;AAM7E,qDAI+B;AAC/B,yFAIsD;AACtD,6FAIwD;AAExD,oFAGsD;AAc/C,MAAM,uBAAuB,GAChC,GAAgD,EAAE,CAClD,CAAC,MAAc,EAAiC,EAAE,CAAC,CAAC;IAChD,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,IAAA,8CAAoB,EAChB,MAAmD,EACnD;QACI,GAAG,IAAI;KACV,CACJ;IACL,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,IAAA,0CAAkB,EACd,MAAmD,EACnD,IAAI,CACP;CACR,CAAC,CAAA;AAfO,QAAA,uBAAuB,2BAe9B;AAqYN,SAAgB,0BAA0B;IACtC,OAAO,CAMH,MAAgD,EACC,EAAE,CAAC,CAAC;QACrD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,4BAAiB,EAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAA,sDAAwB,EAAC,MAAM,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,0BAAe,EAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,8BAAmB,EAAC,MAAM,EAAE,IAAI,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,oCAAe,EAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,6BAA6B,EAAE,KAAK,IAAI,EAAE,CACtC,IAAA,gEAA6B,EAAC,MAAM,CAAC;QACzC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,gCAAa,EAAC,MAAM,EAAE,IAAI,CAAC;QAE1D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oCAAe,EAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,4BAAW,EAAC,MAAM,EAAE,IAAI,CAAC;QAChD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gCAAa,EAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,gCAAa,EAAC,MAAM,EAAE,IAAI,CAAC;KACvD,CAAC,CAAA;AACN,CAAC;AAvBD,gEAuBC"}
package/_cjs/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEntryPoint = exports.KernelFactoryToInitCodeHashMap = exports.safeCreateCallAddress = exports.EXEC_TYPE = exports.CALL_TYPE = exports.VALIDATOR_MODE = exports.VALIDATOR_TYPE = exports.KERNEL_NAME = exports.ONLY_ENTRYPOINT_HOOK_ADDRESS = exports.TOKEN_ACTION = exports.KERNEL_V3_2 = exports.KERNEL_V3_1 = exports.KERNEL_V3_0 = exports.KERNEL_V2_4 = exports.KERNEL_V2_3 = exports.KERNEL_V2_2 = exports.KERNEL_V0_2 = exports.KernelVersionToAddressesMap = exports.FACTORY_ADDRESS_V0_6_INIT_CODE_HASH = exports.FACTORY_ADDRESS_V0_6 = exports.MAGIC_VALUE_SIG_REPLAYABLE = exports.DUMMY_ECDSA_SIG = void 0;
3
+ exports.getEntryPoint = exports.KERNEL_IMPLEMENTATION_SLOT = exports.KernelFactoryToInitCodeHashMap = exports.safeCreateCallAddress = exports.EXEC_TYPE = exports.CALL_TYPE = exports.VALIDATOR_MODE = exports.VALIDATOR_TYPE = exports.KERNEL_NAME = exports.ONLY_ENTRYPOINT_HOOK_ADDRESS = exports.TOKEN_ACTION = exports.KERNEL_V3_2 = exports.KERNEL_V3_1 = exports.KERNEL_V3_0 = exports.KERNEL_V2_4 = exports.KERNEL_V2_3 = exports.KERNEL_V2_2 = exports.KERNEL_V0_2 = exports.KernelVersionToAddressesMap = exports.FACTORY_ADDRESS_V0_6_INIT_CODE_HASH = exports.FACTORY_ADDRESS_V0_6 = exports.MAGIC_VALUE_SIG_REPLAYABLE = exports.DUMMY_ECDSA_SIG = void 0;
4
4
  const viem_1 = require("viem");
5
5
  const account_abstraction_1 = require("viem/account-abstraction");
6
6
  exports.DUMMY_ECDSA_SIG = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
@@ -82,6 +82,7 @@ exports.KernelFactoryToInitCodeHashMap = {
82
82
  "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3": "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73",
83
83
  "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f": "0x6fe6e6ea30eddce942b9618033ab8429f9ddac594053bec8a6744fffc71976e2"
84
84
  };
85
+ exports.KERNEL_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
85
86
  const getEntryPoint = (entryPointVersion) => {
86
87
  if (entryPointVersion === "0.6")
87
88
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { sendUserOperation } from "viem/account-abstraction";
2
+ import { encodeFunctionData, getAction, parseAccount } from "viem/utils";
3
+ import { KernelV3AccountAbi } from "../../accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js";
4
+ import { AccountNotFoundError } from "../../errors/index.js";
5
+ import { validateKernelVersionWithEntryPoint } from "../../utils.js";
6
+ import { KernelVersionToAddressesMap } from "../../constants.js";
7
+ export async function upgradeKernel(client, args) {
8
+ const { account: account_ = client.account, kernelVersion } = args;
9
+ if (!account_)
10
+ throw new AccountNotFoundError({
11
+ docsPath: "/docs/actions/wallet/sendTransaction"
12
+ });
13
+ const account = parseAccount(account_);
14
+ validateKernelVersionWithEntryPoint(account.entryPoint.version, kernelVersion);
15
+ const implementation = KernelVersionToAddressesMap[kernelVersion].accountImplementationAddress;
16
+ return await getAction(client, sendUserOperation, "sendUserOperation")({
17
+ ...args,
18
+ calls: [
19
+ {
20
+ to: account.address,
21
+ data: encodeFunctionData({
22
+ abi: KernelV3AccountAbi,
23
+ functionName: "upgradeTo",
24
+ args: [implementation]
25
+ }),
26
+ value: 0n
27
+ }
28
+ ],
29
+ account
30
+ });
31
+ }
32
+ //# sourceMappingURL=upgradeKernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeKernel.js","sourceRoot":"","sources":["../../../actions/account-client/upgradeKernel.ts"],"names":[],"mappings":"AACA,OAAO,EAGH,iBAAiB,EACpB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8DAA8D,CAAA;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,EAAE,mCAAmC,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAYjE,MAAM,CAAC,KAAK,UAAU,aAAa,CAM/B,MAAyC,EACzC,IAAwE;IAExE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAAA;IAClE,IAAI,CAAC,QAAQ;QACT,MAAM,IAAI,oBAAoB,CAAC;YAC3B,QAAQ,EAAE,sCAAsC;SACnD,CAAC,CAAA;IAEN,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAiB,CAAA;IACtD,mCAAmC,CAC/B,OAAO,CAAC,UAAU,CAAC,OAAO,EAC1B,aAAa,CAChB,CAAA;IACD,MAAM,cAAc,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC,4BAA4B,CAAA;IAE9F,OAAO,MAAM,SAAS,CAClB,MAAM,EACN,iBAAiB,EACjB,mBAAmB,CACtB,CAAC;QACE,GAAG,IAAI;QACP,KAAK,EAAE;YACH;gBACI,EAAE,EAAE,OAAO,CAAC,OAAO;gBACnB,IAAI,EAAE,kBAAkB,CAAC;oBACrB,GAAG,EAAE,kBAAkB;oBACvB,YAAY,EAAE,WAAW;oBACzB,IAAI,EAAE,CAAC,cAAc,CAAC;iBACzB,CAAC;gBACF,KAAK,EAAE,EAAE;aACZ;SACJ;QACD,OAAO;KACqB,CAAC,CAAA;AACrC,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { getStorageAt } from "viem/actions";
2
+ import { getAction, getAddress, isHex, slice, toHex } from "viem/utils";
3
+ import { KERNEL_IMPLEMENTATION_SLOT } from "../../constants";
4
+ /**
5
+ * Returns the address of the kernel implementation.
6
+ *
7
+ * @param client {@link client} that you created using viem's createPublicClient.
8
+ * @param args {@link GetKernelImplementationAddressParams} address
9
+ * @returns Address
10
+ *
11
+ * @example
12
+ * import { createPublicClient } from "viem"
13
+ * import { getKernelImplementationAddress } from "@zerodev/sdk/actions"
14
+ *
15
+ * const client = createPublicClient({
16
+ * chain: goerli,
17
+ * transport: http("https://goerli.infura.io/v3/your-infura-key")
18
+ * })
19
+ *
20
+ * const kernelImplementationAddress = await getKernelImplementationAddress(client, {
21
+ * address,
22
+ * })
23
+ *
24
+ * // Return 0x0000000000000000000000000000000000000000
25
+ */
26
+ export const getKernelImplementationAddress = async (client, args) => {
27
+ const { address } = args;
28
+ const storageValue = await getAction(client, getStorageAt, "getStorageAt")({
29
+ address,
30
+ slot: KERNEL_IMPLEMENTATION_SLOT
31
+ });
32
+ if (!storageValue) {
33
+ throw new Error("Kernel implementation address not found");
34
+ }
35
+ const addressSlice = slice(storageValue, 12);
36
+ const addressHex = isHex(addressSlice) ? addressSlice : toHex(addressSlice);
37
+ return getAddress(addressHex);
38
+ };
39
+ //# sourceMappingURL=getKernelImplementationAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getKernelImplementationAddress.js","sourceRoot":"","sources":["../../../actions/public/getKernelImplementationAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAM5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAC/C,MAAc,EACd,IAA0C,EAC1B,EAAE;IAClB,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,yCAAyC,CAAC,CAAA;IAC9D,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,OAAO,UAAU,CAAC,UAAU,CAAC,CAAA;AACjC,CAAC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { getAccountNonce } from "./getAccountNonce.js";
2
2
  export { getSenderAddress } from "./getSenderAddress.js";
3
3
  export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js";
4
+ export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js";
4
5
  //# 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"}
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"}
@@ -8,6 +8,7 @@ import { writeContract } from "../../actions/account-client/writeContract.js";
8
8
  import { changeSudoValidator, signUserOperation, uninstallPlugin } from "../../actions/index.js";
9
9
  import { estimateGasInERC20 } from "../../actions/paymaster/estimateGasInERC20.js";
10
10
  import { sponsorUserOperation } from "../../actions/paymaster/sponsorUserOperation.js";
11
+ import { upgradeKernel } from "../../actions/account-client/upgradeKernel.js";
11
12
  export const zerodevPaymasterActions = () => (client) => ({
12
13
  sponsorUserOperation: async (args) => sponsorUserOperation(client, {
13
14
  ...args
@@ -22,6 +23,7 @@ export function kernelAccountClientActions() {
22
23
  changeSudoValidator: async (args) => changeSudoValidator(client, args),
23
24
  invalidateNonce: async (args) => invalidateNonce(client, args),
24
25
  getKernelV3ModuleCurrentNonce: async () => getKernelV3ModuleCurrentNonce(client),
26
+ upgradeKernel: async (args) => upgradeKernel(client, args),
25
27
  // biome-ignore lint/suspicious/noExplicitAny: <explanation>
26
28
  sendTransaction: (args) => sendTransaction(client, args),
27
29
  signMessage: (args) => signMessage(client, args),
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAA;AAC7G,OAAO,EAEH,wBAAwB,EAC3B,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAEH,eAAe,EAClB,MAAM,iDAAiD,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAM7E,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGH,kBAAkB,EACrB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAGH,oBAAoB,EACvB,MAAM,iDAAiD,CAAA;AAexD,MAAM,CAAC,MAAM,uBAAuB,GAChC,GAAgD,EAAE,CAClD,CAAC,MAAc,EAAiC,EAAE,CAAC,CAAC;IAChD,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,oBAAoB,CAChB,MAAmD,EACnD;QACI,GAAG,IAAI;KACV,CACJ;IACL,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,kBAAkB,CACd,MAAmD,EACnD,IAAI,CACP;CACR,CAAC,CAAA;AAuXN,MAAM,UAAU,0BAA0B;IACtC,OAAO,CAMH,MAAgD,EACC,EAAE,CAAC,CAAC;QACrD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,6BAA6B,EAAE,KAAK,IAAI,EAAE,CACtC,6BAA6B,CAAC,MAAM,CAAC;QACzC,4DAA4D;QAC5D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAChD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;KACvD,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAA;AAC7G,OAAO,EAEH,wBAAwB,EAC3B,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAEH,eAAe,EAClB,MAAM,iDAAiD,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAA;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAA;AAM7E,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGH,kBAAkB,EACrB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAGH,oBAAoB,EACvB,MAAM,iDAAiD,CAAA;AAExD,OAAO,EACH,aAAa,EAEhB,MAAM,+CAA+C,CAAA;AActD,MAAM,CAAC,MAAM,uBAAuB,GAChC,GAAgD,EAAE,CAClD,CAAC,MAAc,EAAiC,EAAE,CAAC,CAAC;IAChD,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,oBAAoB,CAChB,MAAmD,EACnD;QACI,GAAG,IAAI;KACV,CACJ;IACL,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,kBAAkB,CACd,MAAmD,EACnD,IAAI,CACP;CACR,CAAC,CAAA;AAqYN,MAAM,UAAU,0BAA0B;IACtC,OAAO,CAMH,MAAgD,EACC,EAAE,CAAC,CAAC;QACrD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;QACtE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9D,6BAA6B,EAAE,KAAK,IAAI,EAAE,CACtC,6BAA6B,CAAC,MAAM,CAAC;QACzC,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1D,4DAA4D;QAC5D,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAW,CAAC;QAC/D,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAChD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QACpD,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;KACvD,CAAC,CAAA;AACN,CAAC"}
package/_esm/constants.js CHANGED
@@ -89,6 +89,7 @@ export const KernelFactoryToInitCodeHashMap = {
89
89
  "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3": "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73",
90
90
  "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f": "0x6fe6e6ea30eddce942b9618033ab8429f9ddac594053bec8a6744fffc71976e2"
91
91
  };
92
+ export const KERNEL_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
92
93
  export const getEntryPoint = (entryPointVersion) => {
93
94
  if (entryPointVersion === "0.6")
94
95
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Chain, Client, Hash, Prettify, Transport } from "viem";
2
+ import { type SendUserOperationParameters, type SmartAccount } from "viem/account-abstraction";
3
+ import type { KERNEL_VERSION_TYPE } from "../../types/kernel.js";
4
+ export type UpgradeKernelParameters<account extends SmartAccount | undefined, accountOverride extends SmartAccount | undefined = undefined, calls extends readonly unknown[] = readonly unknown[]> = Prettify<Partial<SendUserOperationParameters<account, accountOverride, calls>> & {
5
+ kernelVersion: KERNEL_VERSION_TYPE;
6
+ }>;
7
+ export declare function upgradeKernel<account extends SmartAccount | undefined, chain extends Chain | undefined, accountOverride extends SmartAccount | undefined = undefined, calls extends readonly unknown[] = readonly unknown[]>(client: Client<Transport, chain, account>, args: Prettify<UpgradeKernelParameters<account, accountOverride, calls>>): Promise<Hash>;
8
+ //# sourceMappingURL=upgradeKernel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeKernel.d.ts","sourceRoot":"","sources":["../../../actions/account-client/upgradeKernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACpE,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,YAAY,EAEpB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAIhE,MAAM,MAAM,uBAAuB,CAC/B,OAAO,SAAS,YAAY,GAAG,SAAS,EACxC,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,IACrD,QAAQ,CACR,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,GAAG;IACpE,aAAa,EAAE,mBAAmB,CAAA;CACrC,CACJ,CAAA;AAED,wBAAsB,aAAa,CAC/B,OAAO,SAAS,YAAY,GAAG,SAAS,EACxC,KAAK,SAAS,KAAK,GAAG,SAAS,EAC/B,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACzC,IAAI,EAAE,QAAQ,CAAC,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,GACzE,OAAO,CAAC,IAAI,CAAC,CAiCf"}
@@ -0,0 +1,28 @@
1
+ import type { Address, Client } from "viem";
2
+ export type GetKernelImplementationAddressParams = {
3
+ address: Address;
4
+ };
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 GetKernelImplementationAddressParams} address
10
+ * @returns Address
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 kernelImplementationAddress = await getKernelImplementationAddress(client, {
22
+ * address,
23
+ * })
24
+ *
25
+ * // Return 0x0000000000000000000000000000000000000000
26
+ */
27
+ export declare const getKernelImplementationAddress: (client: Client, args: GetKernelImplementationAddressParams) => Promise<Address>;
28
+ //# sourceMappingURL=getKernelImplementationAddress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getKernelImplementationAddress.d.ts","sourceRoot":"","sources":["../../../actions/public/getKernelImplementationAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAK3C,MAAM,MAAM,oCAAoC,GAAG;IAC/C,OAAO,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,8BAA8B,WAC/B,MAAM,QACR,oCAAoC,KAC3C,QAAQ,OAAO,CAiBjB,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { type GetAccountNonceParams, getAccountNonce } from "./getAccountNonce.js";
2
2
  export { type GetSenderAddressParams, type InvalidEntryPointError, getSenderAddress } from "./getSenderAddress.js";
3
3
  export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js";
4
+ export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js";
4
5
  //# 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"}
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"}
@@ -10,6 +10,7 @@ import type { ChangeSudoValidatorParameters, SignUserOperationReturnType, Uninst
10
10
  import { signUserOperation } from "../../actions/index.js";
11
11
  import { type EstimateGasInERC20Parameters, type EstimateGasInERC20ReturnType } from "../../actions/paymaster/estimateGasInERC20.js";
12
12
  import { type SponsorUserOperationParameters, type SponsorUserOperationReturnType } from "../../actions/paymaster/sponsorUserOperation.js";
13
+ import { type UpgradeKernelParameters } from "../../actions/account-client/upgradeKernel.js";
13
14
  export type ZeroDevPaymasterClientActions = {
14
15
  /**
15
16
  * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
@@ -63,6 +64,14 @@ export type KernelAccountClientActions<TChain extends Chain | undefined = Chain
63
64
  * @returns nonce
64
65
  */
65
66
  getKernelV3ModuleCurrentNonce: () => Promise<number>;
67
+ /**
68
+ * Creates, signs, and sends a transaction to upgrade the kernel to the network.
69
+ * This function also allows you to sponsor this transaction if sender is a smartAccount
70
+ *
71
+ * @param args - {@link UpgradeKernelParameters}
72
+ * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link SendTransactionReturnType}
73
+ */
74
+ upgradeKernel: <accountOverride extends SmartAccount | undefined = undefined, calls extends readonly unknown[] = readonly unknown[]>(args: UpgradeKernelParameters<TSmartAccount, accountOverride, calls>) => Promise<Hash>;
66
75
  /**
67
76
  * Creates, signs, and sends a new transaction to the network.
68
77
  * This function also allows you to sponsor this transaction if sender is a smartAccount
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"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"}
@@ -45,5 +45,6 @@ export declare const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687
45
45
  export declare const KernelFactoryToInitCodeHashMap: {
46
46
  [key: Address]: Hex;
47
47
  };
48
+ export declare const KERNEL_IMPLEMENTATION_SLOT = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc";
48
49
  export declare const getEntryPoint: <TEntryPointVersion extends EntryPointVersion>(entryPointVersion: TEntryPointVersion) => EntryPointType<TEntryPointVersion>;
49
50
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAA;AAC1D,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EACR,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAWxE,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mCAAmC,uEACwB,CAAA;AAExE,eAAO,MAAM,2BAA2B,EAAE;KACrC,GAAG,IAAI,mBAAmB,GAAG;QAC1B,4BAA4B,EAAE,OAAO,CAAA;QACrC,cAAc,EAAE,OAAO,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,SAAS,sBAAsB,GACjD,OAAO,GACP,KAAK,CAAA;QACX,YAAY,CAAC,EAAE,GAAG,CAAA;KACrB;CAgDJ,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,4BAA4B,+CACO,CAAA;AAChD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAKjE,CAAA;AAED,eAAO,MAAM,aAAa,6HAYzB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAe,MAAM,MAAM,CAAA;AAC1D,OAAO,EACH,KAAK,iBAAiB,EAGzB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EACR,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAWxE,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mCAAmC,uEACwB,CAAA;AAExE,eAAO,MAAM,2BAA2B,EAAE;KACrC,GAAG,IAAI,mBAAmB,GAAG;QAC1B,4BAA4B,EAAE,OAAO,CAAA;QACrC,cAAc,EAAE,OAAO,CAAA;QACvB,kBAAkB,CAAC,EAAE,GAAG,SAAS,sBAAsB,GACjD,OAAO,GACP,KAAK,CAAA;QACX,YAAY,CAAC,EAAE,GAAG,CAAA;KACrB;CAgDJ,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAC1D,eAAO,MAAM,WAAW,EAAE,sBAAgC,CAAA;AAE1D,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,4BAA4B,+CACO,CAAA;AAChD,eAAO,MAAM,WAAW,WAAW,CAAA;AAEnC,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAKjE,CAAA;AAED,eAAO,MAAM,0BAA0B,uEACiC,CAAA;AAExE,eAAO,MAAM,aAAa,6HAYzB,CAAA"}
@@ -0,0 +1,65 @@
1
+ import type { Chain, Client, Hash, Prettify, Transport } from "viem"
2
+ import {
3
+ type SendUserOperationParameters,
4
+ type SmartAccount,
5
+ sendUserOperation
6
+ } from "viem/account-abstraction"
7
+ import { encodeFunctionData, getAction, parseAccount } from "viem/utils"
8
+ import { KernelV3AccountAbi } from "../../accounts/kernel/abi/kernel_v_3_0_0/KernelAccountAbi.js"
9
+ import { AccountNotFoundError } from "../../errors/index.js"
10
+ import type { KERNEL_VERSION_TYPE } from "../../types/kernel.js"
11
+ import { validateKernelVersionWithEntryPoint } from "../../utils.js"
12
+ import { KernelVersionToAddressesMap } from "../../constants.js";
13
+
14
+ export type UpgradeKernelParameters<
15
+ account extends SmartAccount | undefined,
16
+ accountOverride extends SmartAccount | undefined = undefined,
17
+ calls extends readonly unknown[] = readonly unknown[]
18
+ > = Prettify<
19
+ Partial<SendUserOperationParameters<account, accountOverride, calls>> & {
20
+ kernelVersion: KERNEL_VERSION_TYPE
21
+ }
22
+ >
23
+
24
+ export async function upgradeKernel<
25
+ account extends SmartAccount | undefined,
26
+ chain extends Chain | undefined,
27
+ accountOverride extends SmartAccount | undefined = undefined,
28
+ calls extends readonly unknown[] = readonly unknown[]
29
+ >(
30
+ client: Client<Transport, chain, account>,
31
+ args: Prettify<UpgradeKernelParameters<account, accountOverride, calls>>
32
+ ): Promise<Hash> {
33
+ const { account: account_ = client.account, kernelVersion } = args
34
+ if (!account_)
35
+ throw new AccountNotFoundError({
36
+ docsPath: "/docs/actions/wallet/sendTransaction"
37
+ })
38
+
39
+ const account = parseAccount(account_) as SmartAccount
40
+ validateKernelVersionWithEntryPoint(
41
+ account.entryPoint.version,
42
+ kernelVersion
43
+ )
44
+ const implementation = KernelVersionToAddressesMap[kernelVersion].accountImplementationAddress
45
+
46
+ return await getAction(
47
+ client,
48
+ sendUserOperation,
49
+ "sendUserOperation"
50
+ )({
51
+ ...args,
52
+ calls: [
53
+ {
54
+ to: account.address,
55
+ data: encodeFunctionData({
56
+ abi: KernelV3AccountAbi,
57
+ functionName: "upgradeTo",
58
+ args: [implementation]
59
+ }),
60
+ value: 0n
61
+ }
62
+ ],
63
+ account
64
+ } as SendUserOperationParameters)
65
+ }
@@ -0,0 +1,52 @@
1
+ import type { Address, Client } from "viem"
2
+ import { getStorageAt } from "viem/actions"
3
+ import { getAction, getAddress, isHex, slice, toHex } from "viem/utils"
4
+ import { KERNEL_IMPLEMENTATION_SLOT } from "../../constants"
5
+
6
+ export type GetKernelImplementationAddressParams = {
7
+ address: Address
8
+ }
9
+
10
+ /**
11
+ * Returns the address of the kernel implementation.
12
+ *
13
+ * @param client {@link client} that you created using viem's createPublicClient.
14
+ * @param args {@link GetKernelImplementationAddressParams} address
15
+ * @returns Address
16
+ *
17
+ * @example
18
+ * import { createPublicClient } from "viem"
19
+ * import { getKernelImplementationAddress } from "@zerodev/sdk/actions"
20
+ *
21
+ * const client = createPublicClient({
22
+ * chain: goerli,
23
+ * transport: http("https://goerli.infura.io/v3/your-infura-key")
24
+ * })
25
+ *
26
+ * const kernelImplementationAddress = await getKernelImplementationAddress(client, {
27
+ * address,
28
+ * })
29
+ *
30
+ * // Return 0x0000000000000000000000000000000000000000
31
+ */
32
+ export const getKernelImplementationAddress = async (
33
+ client: Client,
34
+ args: GetKernelImplementationAddressParams
35
+ ): Promise<Address> => {
36
+ const { address } = args
37
+
38
+ const storageValue = await getAction(
39
+ client,
40
+ getStorageAt,
41
+ "getStorageAt"
42
+ )({
43
+ address,
44
+ slot: KERNEL_IMPLEMENTATION_SLOT
45
+ })
46
+ if (!storageValue) {
47
+ throw new Error("Kernel implementation address not found")
48
+ }
49
+ const addressSlice = slice(storageValue, 12)
50
+ const addressHex = isHex(addressSlice) ? addressSlice : toHex(addressSlice)
51
+ return getAddress(addressHex)
52
+ }
@@ -8,3 +8,4 @@ export {
8
8
  getSenderAddress
9
9
  } from "./getSenderAddress.js"
10
10
  export { isSmartAccountDeployed } from "./isSmartAccountDeployed.js"
11
+ export { getKernelImplementationAddress } from "./getKernelImplementationAddress.js"
@@ -45,6 +45,10 @@ import {
45
45
  sponsorUserOperation
46
46
  } from "../../actions/paymaster/sponsorUserOperation.js"
47
47
  import type { ZeroDevPaymasterClient } from "../paymasterClient.js"
48
+ import {
49
+ upgradeKernel,
50
+ type UpgradeKernelParameters
51
+ } from "../../actions/account-client/upgradeKernel.js"
48
52
 
49
53
  export type ZeroDevPaymasterClientActions = {
50
54
  /**
@@ -157,6 +161,20 @@ export type KernelAccountClientActions<
157
161
  * @returns nonce
158
162
  */
159
163
  getKernelV3ModuleCurrentNonce: () => Promise<number>
164
+ /**
165
+ * Creates, signs, and sends a transaction to upgrade the kernel to the network.
166
+ * This function also allows you to sponsor this transaction if sender is a smartAccount
167
+ *
168
+ * @param args - {@link UpgradeKernelParameters}
169
+ * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link SendTransactionReturnType}
170
+ */
171
+ upgradeKernel: <
172
+ accountOverride extends SmartAccount | undefined = undefined,
173
+ calls extends readonly unknown[] = readonly unknown[]
174
+ >(
175
+ args: UpgradeKernelParameters<TSmartAccount, accountOverride, calls>
176
+ ) => Promise<Hash>
177
+
160
178
  /**
161
179
  * Creates, signs, and sends a new transaction to the network.
162
180
  * This function also allows you to sponsor this transaction if sender is a smartAccount
@@ -464,6 +482,7 @@ export function kernelAccountClientActions() {
464
482
  invalidateNonce: async (args) => invalidateNonce(client, args),
465
483
  getKernelV3ModuleCurrentNonce: async () =>
466
484
  getKernelV3ModuleCurrentNonce(client),
485
+ upgradeKernel: async (args) => upgradeKernel(client, args),
467
486
  // biome-ignore lint/suspicious/noExplicitAny: <explanation>
468
487
  sendTransaction: (args) => sendTransaction(client, args as any),
469
488
  signMessage: (args) => signMessage(client, args),
package/constants.ts CHANGED
@@ -131,6 +131,9 @@ export const KernelFactoryToInitCodeHashMap: { [key: Address]: Hex } = {
131
131
  "0x6fe6e6ea30eddce942b9618033ab8429f9ddac594053bec8a6744fffc71976e2"
132
132
  }
133
133
 
134
+ export const KERNEL_IMPLEMENTATION_SLOT =
135
+ "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
136
+
134
137
  export const getEntryPoint = <TEntryPointVersion extends EntryPointVersion>(
135
138
  entryPointVersion: TEntryPointVersion
136
139
  ): EntryPointType<TEntryPointVersion> => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.4.6",
3
+ "version": "5.4.7",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
@@ -9,7 +9,13 @@
9
9
  "type": "module",
10
10
  "sideEffects": false,
11
11
  "description": "A utility library for working with ERC-4337",
12
- "keywords": ["ethereum", "erc-4337", "eip-4337", "paymaster", "bundler"],
12
+ "keywords": [
13
+ "ethereum",
14
+ "erc-4337",
15
+ "eip-4337",
16
+ "paymaster",
17
+ "bundler"
18
+ ],
13
19
  "license": "MIT",
14
20
  "files": [
15
21
  "_esm",
@@ -90,14 +96,30 @@
90
96
  },
91
97
  "typesVersions": {
92
98
  "*": {
93
- "accounts": ["./_types/accounts/index.d.ts"],
94
- "plugins": ["./_types/plugins/index.d.ts"],
95
- "actions": ["./_types/actions/index.d.ts"],
96
- "types": ["./_types/types/index.d.ts"],
97
- "actions/kernel": ["./_types/actions/kernel/index.d.ts"],
98
- "clients": ["./_types/clients/index.d.ts"],
99
- "clients/kernel": ["./_types/clients/kernel/index.d.ts"],
100
- "providers": ["./_types/providers/index.d.ts"]
99
+ "accounts": [
100
+ "./_types/accounts/index.d.ts"
101
+ ],
102
+ "plugins": [
103
+ "./_types/plugins/index.d.ts"
104
+ ],
105
+ "actions": [
106
+ "./_types/actions/index.d.ts"
107
+ ],
108
+ "types": [
109
+ "./_types/types/index.d.ts"
110
+ ],
111
+ "actions/kernel": [
112
+ "./_types/actions/kernel/index.d.ts"
113
+ ],
114
+ "clients": [
115
+ "./_types/clients/index.d.ts"
116
+ ],
117
+ "clients/kernel": [
118
+ "./_types/clients/kernel/index.d.ts"
119
+ ],
120
+ "providers": [
121
+ "./_types/providers/index.d.ts"
122
+ ]
101
123
  }
102
124
  },
103
125
  "peerDependencies": {