@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.
- package/_cjs/actions/account-client/upgradeKernel.js +36 -0
- package/_cjs/actions/account-client/upgradeKernel.js.map +1 -0
- package/_cjs/actions/public/getKernelImplementationAddress.js +21 -0
- package/_cjs/actions/public/getKernelImplementationAddress.js.map +1 -0
- package/_cjs/actions/public/index.js +3 -1
- package/_cjs/actions/public/index.js.map +1 -1
- package/_cjs/clients/decorators/kernel.js +2 -0
- package/_cjs/clients/decorators/kernel.js.map +1 -1
- package/_cjs/constants.js +2 -1
- package/_cjs/constants.js.map +1 -1
- package/_esm/actions/account-client/upgradeKernel.js +32 -0
- package/_esm/actions/account-client/upgradeKernel.js.map +1 -0
- package/_esm/actions/public/getKernelImplementationAddress.js +39 -0
- package/_esm/actions/public/getKernelImplementationAddress.js.map +1 -0
- package/_esm/actions/public/index.js +1 -0
- package/_esm/actions/public/index.js.map +1 -1
- package/_esm/clients/decorators/kernel.js +2 -0
- package/_esm/clients/decorators/kernel.js.map +1 -1
- package/_esm/constants.js +1 -0
- package/_esm/constants.js.map +1 -1
- package/_types/actions/account-client/upgradeKernel.d.ts +8 -0
- package/_types/actions/account-client/upgradeKernel.d.ts.map +1 -0
- package/_types/actions/public/getKernelImplementationAddress.d.ts +28 -0
- package/_types/actions/public/getKernelImplementationAddress.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/clients/decorators/kernel.d.ts +9 -0
- package/_types/clients/decorators/kernel.d.ts.map +1 -1
- package/_types/constants.d.ts +1 -0
- package/_types/constants.d.ts.map +1 -1
- package/actions/account-client/upgradeKernel.ts +65 -0
- package/actions/public/getKernelImplementationAddress.ts +52 -0
- package/actions/public/index.ts +1 -0
- package/clients/decorators/kernel.ts +19 -0
- package/constants.ts +3 -0
- 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;
|
|
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 {
|
package/_cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAA,+BAA0D;AAC1D,kEAIiC;AAQpB,QAAA,eAAe,GACxB,sIAAsI,CAAA;AAE7H,QAAA,0BAA0B,GACnC,oEAAoE,CAAA;AAW3D,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,mCAAmC,GAC5C,oEAAoE,CAAA;AAE3D,QAAA,2BAA2B,GASpC;IACA,OAAO,EAAE;QACL,4BAA4B,EAAE,kBAAW;QACzC,cAAc,EAAE,4CAA4C;KAC/D;IACD,OAAO,EAAE;QACL,4BAA4B,EACxB,4CAA4C;QAChD,cAAc,EAAE,4BAAoB;QACpC,YAAY,EAAE,2CAAmC;KACpD;IACD,OAAO,EAAE;QACL,4BAA4B,EACxB,4CAA4C;QAChD,cAAc,EAAE,4BAAoB;QACpC,YAAY,EAAE,2CAAmC;KACpD;IACD,OAAO,EAAE;QACL,4BAA4B,EACxB,4CAA4C;QAChD,cAAc,EAAE,4BAAoB;QACpC,YAAY,EAAE,2CAAmC;KACpD;IACD,OAAO,EAAE;QACL,4BAA4B,EACxB,4CAA4C;QAChD,cAAc,EAAE,4CAA4C;QAC5D,kBAAkB,EAAE,4CAA4C;QAChE,YAAY,EACR,oEAAoE;KAC3E;IACD,OAAO,EAAE;QACL,4BAA4B,EACxB,4CAA4C;QAChD,cAAc,EAAE,4CAA4C;QAC5D,kBAAkB,EAAE,4CAA4C;QAChE,YAAY,EACR,oEAAoE;KAC3E;IACD,OAAO,EAAE;QACL,4BAA4B,EACxB,4CAA4C;QAChD,cAAc,EAAE,4CAA4C;QAC5D,kBAAkB,EAAE,4CAA4C;QAChE,YAAY,EACR,oEAAoE;KAC3E;CACJ,CAAA;AAEY,QAAA,WAAW,GAA2B,OAAO,CAAA;AAC7C,QAAA,WAAW,GAA2B,OAAO,CAAA;AAC7C,QAAA,WAAW,GAA2B,OAAO,CAAA;AAC7C,QAAA,WAAW,GAA2B,OAAO,CAAA;AAC7C,QAAA,WAAW,GAA2B,OAAO,CAAA;AAC7C,QAAA,WAAW,GAA2B,OAAO,CAAA;AAC7C,QAAA,WAAW,GAA2B,OAAO,CAAA;AAE7C,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,4BAA4B,GACrC,4CAA4C,CAAA;AACnC,QAAA,WAAW,GAAG,QAAQ,CAAA;AAEtB,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;CACZ,CAAA;AACV,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;AACnB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AACD,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,2BAAc,CAAA;IACd,mCAAsB,CAAA;AAC1B,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AACD,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6BAAgB,CAAA;IAChB,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAIY,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,8BAA8B,GAA4B;IACnE,4CAA4C,EACxC,oEAAoE;IACxE,4CAA4C,EACxC,oEAAoE;CAC3E,CAAA;
|
|
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;
|
|
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 {
|
package/_esm/constants.js.map
CHANGED
|
@@ -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":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,KAAK,EACL,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,uBAAuB,EAC1B,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE/E,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,EACH,KAAK,yBAAyB,EAEjC,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;AAC7E,OAAO,KAAK,EACR,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EAC5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAEpC,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EAEtC,MAAM,iDAAiD,CAAA;
|
|
1
|
+
{"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,KAAK,EACL,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,uBAAuB,EAC1B,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE/E,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,EACH,KAAK,yBAAyB,EAEjC,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;AAC7E,OAAO,KAAK,EACR,6BAA6B,EAC7B,2BAA2B,EAC3B,yBAAyB,EAC5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAEpC,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EAEtC,MAAM,iDAAiD,CAAA;AAExD,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,+CAA+C,CAAA;AAEtD,MAAM,MAAM,6BAA6B,GAAG;IACxC;;OAEG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,8BAA8B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAC5C,kBAAkB,EAAE,CAChB,IAAI,EAAE,4BAA4B,KACjC,OAAO,CAAC,4BAA4B,CAAC,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,uBAAuB,8DAEvB,MAAM,KAAG,6BAahB,CAAA;AAEN,MAAM,MAAM,0BAA0B,CAClC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,IACzE;IACA;;;;;OAKG;IACH,iBAAiB,EAAE,CACf,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,IAAI,EAAE,UAAU,CACZ,OAAO,iBAAiB,CACpB,aAAa,EACb,MAAM,EACN,eAAe,EACf,KAAK,CACR,CACJ,CAAC,CAAC,CAAC,KACH,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACzC;;;;OAIG;IACH,wBAAwB,EAAE,MAAM,OAAO,CACnC,QAAQ,CAAC,kCAAkC,CAAC,CAC/C,CAAA;IACD;;;;;;;OAOG;IACH,eAAe,EAAE,CACb,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,IAAI,EAAE,yBAAyB,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,KACrE,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB;;;OAGG;IACH,mBAAmB,EAAE,CACjB,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,IAAI,EAAE,6BAA6B,CAC/B,aAAa,EACb,eAAe,EACf,KAAK,CACR,KACA,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;;;;;;OAOG;IACH,eAAe,EAAE,CACb,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,IAAI,EAAE,yBAAyB,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,KACrE,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB;;;;;;OAMG;IACH,6BAA6B,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACpD;;;;;;OAMG;IACH,aAAa,EAAE,CACX,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,IAAI,EAAE,uBAAuB,CAAC,aAAa,EAAE,eAAe,EAAE,KAAK,CAAC,KACnE,OAAO,CAAC,IAAI,CAAC,CAAA;IAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,eAAe,EAAE,CACb,cAAc,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,EACpD,eAAe,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EAC5D,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EAErD,IAAI,EAAE,UAAU,CACZ,OAAO,eAAe,CAClB,aAAa,EACb,MAAM,EACN,eAAe,EACf,cAAc,EACd,KAAK,CACR,CACJ,CAAC,CAAC,CAAC,KACH,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,WAAW,EAAE,CACT,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KACrD,UAAU,CAAC,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC,CAAA;IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+FG;IACH,aAAa,EAAE,CACX,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAC/D,YAAY,SAAS,MAAM,EAE3B,IAAI,EAAE,UAAU,CACZ,OAAO,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,CAChE,CAAC,CAAC,CAAC,KACH,UAAU,CACX,OAAO,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,CAChE,CAAA;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,aAAa,EAAE,CACX,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAC3C,aAAa,SAAS,oBAAoB,CACtC,IAAI,EACJ,YAAY,GAAG,SAAS,CAC3B,GAAG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,EACxD,KAAK,SAAS,oBAAoB,CAC9B,IAAI,EACJ,YAAY,GAAG,SAAS,EACxB,aAAa,CAChB,GAAG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,aAAa,CAAC,EACvE,cAAc,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,EAEpD,IAAI,EAAE,uBAAuB,CACzB,IAAI,EACJ,aAAa,EACb,KAAK,EACL,MAAM,EACN,aAAa,EACb,cAAc,CACjB,KACA,UAAU,CACX,OAAO,aAAa,CAChB,MAAM,EACN,aAAa,EACb,IAAI,EACJ,aAAa,EACb,KAAK,EACL,cAAc,CACjB,CACJ,CAAA;CACJ,CAAA;AAED,wBAAgB,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAuBzC"}
|
package/_types/constants.d.ts
CHANGED
|
@@ -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
|
+
}
|
package/actions/public/index.ts
CHANGED
|
@@ -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.
|
|
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": [
|
|
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": [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
"
|
|
100
|
-
|
|
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": {
|