@zerodev/permissions 5.5.7 → 5.5.9
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/deserializePermissionAccount.js +9 -1
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_cjs/serializePermissionAccount.js +6 -2
- package/_cjs/serializePermissionAccount.js.map +1 -1
- package/_cjs/toInitConfig.js +45 -0
- package/_cjs/toInitConfig.js.map +1 -0
- package/_esm/deserializePermissionAccount.js +9 -1
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_esm/serializePermissionAccount.js +6 -2
- package/_esm/serializePermissionAccount.js.map +1 -1
- package/_esm/toInitConfig.js +41 -0
- package/_esm/toInitConfig.js.map +1 -0
- package/_types/deserializePermissionAccount.d.ts +4 -0
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/serializePermissionAccount.d.ts +2 -1
- package/_types/serializePermissionAccount.d.ts.map +1 -1
- package/_types/toInitConfig.d.ts +4 -0
- package/_types/toInitConfig.d.ts.map +1 -0
- package/_types/types.d.ts +2 -0
- package/_types/types.d.ts.map +1 -1
- package/deserializePermissionAccount.ts +9 -1
- package/package.json +1 -1
- package/serializePermissionAccount.ts +8 -2
- package/toInitConfig.ts +66 -0
- package/types.ts +2 -0
|
@@ -46,7 +46,8 @@ const deserializePermissionAccount = async (client, entryPoint, kernelVersion, m
|
|
|
46
46
|
plugins: kernelPluginManager,
|
|
47
47
|
index,
|
|
48
48
|
address: params.accountParams.accountAddress,
|
|
49
|
-
useMetaFactory
|
|
49
|
+
useMetaFactory,
|
|
50
|
+
eip7702Auth: params.eip7702Auth
|
|
50
51
|
});
|
|
51
52
|
};
|
|
52
53
|
exports.deserializePermissionAccount = deserializePermissionAccount;
|
|
@@ -74,6 +75,13 @@ const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
|
74
75
|
let validatorInitData;
|
|
75
76
|
let deployWithFactoryFunctionData;
|
|
76
77
|
let useMetaFactory = true;
|
|
78
|
+
if (initCode === "0x") {
|
|
79
|
+
return {
|
|
80
|
+
index: undefined,
|
|
81
|
+
validatorInitData: undefined,
|
|
82
|
+
useMetaFactory: true
|
|
83
|
+
};
|
|
84
|
+
}
|
|
77
85
|
try {
|
|
78
86
|
deployWithFactoryFunctionData = (0, viem_1.decodeFunctionData)({
|
|
79
87
|
abi: sdk_1.KernelFactoryStakerAbi,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":";;;AAAA,sCAMqB;AACrB,oDAG8B;AAQ9B,+BAAyC;AAEzC,4CAAmD;AAEnD,kDAO4B;AAC5B,iEAA0D;AAC1D,yEAAkE;AAGlE,yCAA+D;AAC/D,yCAAiD;AAE1C,MAAM,4BAA4B,GAAG,KAAK,EAG7C,MAAkD,EAClD,UAA6C,EAC7C,aAAkD,EAClD,8BAAsC,EACtC,aAA6B,EAC/B,EAAE;IACA,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,6CAAkC,EAC7C,8BAA8B,CACjC,CAAA;IACD,IAAI,MAAqB,CAAA;IACzB,IAAI,MAAM,CAAC,UAAU;QACjB,MAAM,GAAG,MAAM,IAAA,gCAAa,EAAC;YACzB,MAAM,EAAE,IAAA,8BAAmB,EAAC,MAAM,CAAC,UAAU,CAAC;SACjD,CAAC,CAAA;SACD,IAAI,aAAa;QAAE,MAAM,GAAG,aAAa,CAAA;;QACzC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEnE,MAAM,uBAAuB,GAAG,MAAM,IAAA,gDAAqB,EAAC,MAAM,EAAE;QAChE,MAAM;QACN,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CACvB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,IAAA,8BAAsB,EAAC,MAAM,CAAC,CACjC,IAAI,EAAE,CACV;QACD,UAAU;QACV,aAAa;KAChB,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAC9C,IAAA,gCAAwB,EAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAE1E,MAAM,mBAAmB,GAAG,MAAM,IAAA,gCAAqB,EAAC,MAAM,EAAE;QAC5D,OAAO,EAAE,uBAAuB;QAChC,qBAAqB,EAAE,MAAM,CAAC,eAAe;QAC7C,iBAAiB;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;QACV,aAAa;QACb,GAAG,MAAM,CAAC,YAAY;KACzB,CAAC,CAAA;IAEF,OAAO,IAAA,yBAAmB,EAAC,MAAM,EAAE;QAC/B,UAAU;QACV,aAAa;QACb,OAAO,EAAE,mBAAmB;QAC5B,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc;QAC5C,cAAc;
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.serializePermissionAccount = void 0;
|
|
4
4
|
const utils_js_1 = require("./utils.js");
|
|
5
|
-
const serializePermissionAccount = async (account, privateKey, enableSignature) => {
|
|
5
|
+
const serializePermissionAccount = async (account, privateKey, enableSignature, eip7702Auth) => {
|
|
6
6
|
if (!(0, utils_js_1.isPermissionValidatorPlugin)(account.kernelPluginManager))
|
|
7
7
|
throw new Error("Account plugin is not a permission validator");
|
|
8
8
|
const permissionParams = account.kernelPluginManager.getPluginSerializationParams();
|
|
@@ -10,6 +10,9 @@ const serializePermissionAccount = async (account, privateKey, enableSignature)
|
|
|
10
10
|
const validityData = account.kernelPluginManager.getValidityData();
|
|
11
11
|
const _enableSignature = enableSignature ??
|
|
12
12
|
(await account.kernelPluginManager.getPluginEnableSignature(account.address));
|
|
13
|
+
const _eip7702Auth = account.authorization
|
|
14
|
+
? (eip7702Auth ?? (await account?.eip7702Authorization?.()))
|
|
15
|
+
: undefined;
|
|
13
16
|
const accountParams = {
|
|
14
17
|
initCode: await account.generateInitCode(),
|
|
15
18
|
accountAddress: account.address
|
|
@@ -20,7 +23,8 @@ const serializePermissionAccount = async (account, privateKey, enableSignature)
|
|
|
20
23
|
validityData,
|
|
21
24
|
accountParams,
|
|
22
25
|
enableSignature: _enableSignature,
|
|
23
|
-
privateKey
|
|
26
|
+
privateKey,
|
|
27
|
+
eip7702Auth: _eip7702Auth
|
|
24
28
|
};
|
|
25
29
|
return (0, utils_js_1.serializePermissionAccountParams)(paramsToBeSerialized);
|
|
26
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":";;;AAIA,yCAGmB;AAEZ,MAAM,0BAA0B,GAAG,KAAK,EAC3C,OAAuD,EACvD,UAAgB,EAChB,eAAqB,EACrB,WAAyC,EAC1B,EAAE;IACjB,IAAI,CAAC,IAAA,sCAA2B,EAAC,OAAO,CAAC,mBAAmB,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACnE,MAAM,gBAAgB,GAClB,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;IAClE,MAAM,gBAAgB,GAClB,eAAe;QACf,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CACvD,OAAO,CAAC,OAAO,CAClB,CAAC,CAAA;IACN,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa;QACtC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,OAAO;KAClC,CAAA;IAED,MAAM,oBAAoB,GAAG;QACzB,gBAAgB;QAChB,MAAM;QACN,YAAY;QACZ,aAAa;QACb,eAAe,EAAE,gBAAgB;QACjC,UAAU;QACV,WAAW,EAAE,YAAY;KAC5B,CAAA;IAED,OAAO,IAAA,2CAAgC,EAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA;AApCY,QAAA,0BAA0B,8BAoCtC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toInitConfig = void 0;
|
|
4
|
+
const sdk_1 = require("@zerodev/sdk");
|
|
5
|
+
const constants_1 = require("@zerodev/sdk/constants");
|
|
6
|
+
const viem_1 = require("viem");
|
|
7
|
+
async function toInitConfig(permissionPlugin) {
|
|
8
|
+
const permissionInstallFunctionData = (0, viem_1.encodeFunctionData)({
|
|
9
|
+
abi: sdk_1.KernelV3_3AccountAbi,
|
|
10
|
+
functionName: "installValidations",
|
|
11
|
+
args: [
|
|
12
|
+
[
|
|
13
|
+
(0, viem_1.pad)((0, viem_1.concat)([
|
|
14
|
+
constants_1.VALIDATOR_TYPE.PERMISSION,
|
|
15
|
+
permissionPlugin.getIdentifier()
|
|
16
|
+
]), { size: 21, dir: "right" })
|
|
17
|
+
],
|
|
18
|
+
[{ nonce: 1, hook: viem_1.zeroAddress }],
|
|
19
|
+
[await permissionPlugin.getEnableData()],
|
|
20
|
+
["0x"]
|
|
21
|
+
]
|
|
22
|
+
});
|
|
23
|
+
const grantAccessFunctionData = (0, viem_1.encodeFunctionData)({
|
|
24
|
+
abi: sdk_1.KernelV3_3AccountAbi,
|
|
25
|
+
functionName: "grantAccess",
|
|
26
|
+
args: [
|
|
27
|
+
(0, viem_1.pad)((0, viem_1.concat)([
|
|
28
|
+
constants_1.VALIDATOR_TYPE.PERMISSION,
|
|
29
|
+
permissionPlugin.getIdentifier()
|
|
30
|
+
]), { size: 21, dir: "right" }),
|
|
31
|
+
(0, viem_1.toFunctionSelector)((0, viem_1.getAbiItem)({ abi: sdk_1.KernelV3_3AccountAbi, name: "execute" })),
|
|
32
|
+
true
|
|
33
|
+
]
|
|
34
|
+
});
|
|
35
|
+
const delegateCall = await (0, sdk_1.encodeCallDataEpV07)([
|
|
36
|
+
{
|
|
37
|
+
to: constants_1.KernelVersionToAddressesMap["0.3.3"]
|
|
38
|
+
.accountImplementationAddress,
|
|
39
|
+
data: grantAccessFunctionData
|
|
40
|
+
}
|
|
41
|
+
], "delegatecall");
|
|
42
|
+
return [permissionInstallFunctionData, delegateCall];
|
|
43
|
+
}
|
|
44
|
+
exports.toInitConfig = toInitConfig;
|
|
45
|
+
//# sourceMappingURL=toInitConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toInitConfig.js","sourceRoot":"","sources":["../toInitConfig.ts"],"names":[],"mappings":";;;AAAA,sCAAwE;AACxE,sDAG+B;AAC/B,+BAQa;AAGN,KAAK,UAAU,YAAY,CAC9B,gBAAkC;IAElC,MAAM,6BAA6B,GAAG,IAAA,yBAAkB,EAAC;QACrD,GAAG,EAAE,0BAAoB;QACzB,YAAY,EAAE,oBAAoB;QAClC,IAAI,EAAE;YACF;gBACI,IAAA,UAAG,EACC,IAAA,aAAM,EAAC;oBACH,0BAAc,CAAC,UAAU;oBACzB,gBAAgB,CAAC,aAAa,EAAE;iBACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;aACJ;YACD,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAW,EAAE,CAAC;YACjC,CAAC,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACxC,CAAC,IAAI,CAAC;SACT;KACJ,CAAC,CAAA;IACF,MAAM,uBAAuB,GAAG,IAAA,yBAAkB,EAAC;QAC/C,GAAG,EAAE,0BAAoB;QACzB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE;YACF,IAAA,UAAG,EACC,IAAA,aAAM,EAAC;gBACH,0BAAc,CAAC,UAAU;gBACzB,gBAAgB,CAAC,aAAa,EAAE;aACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;YACD,IAAA,yBAAkB,EACd,IAAA,iBAAU,EAAC,EAAE,GAAG,EAAE,0BAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAC7D;YACD,IAAI;SACP;KACJ,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,MAAM,IAAA,yBAAmB,EAC1C;QACI;YACI,EAAE,EAAE,uCAA2B,CAAC,OAAO,CAAC;iBACnC,4BAA4B;YACjC,IAAI,EAAE,uBAAuB;SAChC;KACJ,EACD,cAAc,CACjB,CAAA;IACD,OAAO,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAA;AACxD,CAAC;AAjDD,oCAiDC"}
|
|
@@ -43,7 +43,8 @@ export const deserializePermissionAccount = async (client, entryPoint, kernelVer
|
|
|
43
43
|
plugins: kernelPluginManager,
|
|
44
44
|
index,
|
|
45
45
|
address: params.accountParams.accountAddress,
|
|
46
|
-
useMetaFactory
|
|
46
|
+
useMetaFactory,
|
|
47
|
+
eip7702Auth: params.eip7702Auth
|
|
47
48
|
});
|
|
48
49
|
};
|
|
49
50
|
export const createPolicyFromParams = async (policy) => {
|
|
@@ -69,6 +70,13 @@ export const decodeParamsFromInitCode = (initCode, kernelVersion) => {
|
|
|
69
70
|
let validatorInitData;
|
|
70
71
|
let deployWithFactoryFunctionData;
|
|
71
72
|
let useMetaFactory = true;
|
|
73
|
+
if (initCode === "0x") {
|
|
74
|
+
return {
|
|
75
|
+
index: undefined,
|
|
76
|
+
validatorInitData: undefined,
|
|
77
|
+
useMetaFactory: true
|
|
78
|
+
};
|
|
79
|
+
}
|
|
72
80
|
try {
|
|
73
81
|
deployWithFactoryFunctionData = decodeFunctionData({
|
|
74
82
|
abi: KernelFactoryStakerAbi,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACtB,MAAM,cAAc,CAAA;AACrB,OAAO,EAEH,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAQ9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EACH,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,iBAAiB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAGlE,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAG7C,MAAkD,EAClD,UAA6C,EAC7C,aAAkD,EAClD,8BAAsC,EACtC,aAA6B,EAC/B,EAAE;IACA,IAAI,UAAU,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,kCAAkC,CAC7C,8BAA8B,CACjC,CAAA;IACD,IAAI,MAAqB,CAAA;IACzB,IAAI,MAAM,CAAC,UAAU;QACjB,MAAM,GAAG,MAAM,aAAa,CAAC;YACzB,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;SACjD,CAAC,CAAA;SACD,IAAI,aAAa;QAAE,MAAM,GAAG,aAAa,CAAA;;QACzC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEnE,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE;QAChE,MAAM;QACN,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CACvB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC7C,sBAAsB,CAAC,MAAM,CAAC,CACjC,IAAI,EAAE,CACV;QACD,UAAU;QACV,aAAa;KAChB,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAC9C,wBAAwB,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAA;IAE1E,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE;QAC5D,OAAO,EAAE,uBAAuB;QAChC,qBAAqB,EAAE,MAAM,CAAC,eAAe;QAC7C,iBAAiB;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU;QACV,aAAa;QACb,GAAG,MAAM,CAAC,YAAY;KACzB,CAAC,CAAA;IAEF,OAAO,mBAAmB,CAAC,MAAM,EAAE;QAC/B,UAAU;QACV,aAAa;QACb,OAAO,EAAE,mBAAmB;QAC5B,KAAK;QACL,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc;QAC5C,cAAc;
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isPermissionValidatorPlugin, serializePermissionAccountParams } from "./utils.js";
|
|
2
|
-
export const serializePermissionAccount = async (account, privateKey, enableSignature) => {
|
|
2
|
+
export const serializePermissionAccount = async (account, privateKey, enableSignature, eip7702Auth) => {
|
|
3
3
|
if (!isPermissionValidatorPlugin(account.kernelPluginManager))
|
|
4
4
|
throw new Error("Account plugin is not a permission validator");
|
|
5
5
|
const permissionParams = account.kernelPluginManager.getPluginSerializationParams();
|
|
@@ -7,6 +7,9 @@ export const serializePermissionAccount = async (account, privateKey, enableSign
|
|
|
7
7
|
const validityData = account.kernelPluginManager.getValidityData();
|
|
8
8
|
const _enableSignature = enableSignature ??
|
|
9
9
|
(await account.kernelPluginManager.getPluginEnableSignature(account.address));
|
|
10
|
+
const _eip7702Auth = account.authorization
|
|
11
|
+
? (eip7702Auth ?? (await account?.eip7702Authorization?.()))
|
|
12
|
+
: undefined;
|
|
10
13
|
const accountParams = {
|
|
11
14
|
initCode: await account.generateInitCode(),
|
|
12
15
|
accountAddress: account.address
|
|
@@ -17,7 +20,8 @@ export const serializePermissionAccount = async (account, privateKey, enableSign
|
|
|
17
20
|
validityData,
|
|
18
21
|
accountParams,
|
|
19
22
|
enableSignature: _enableSignature,
|
|
20
|
-
privateKey
|
|
23
|
+
privateKey,
|
|
24
|
+
eip7702Auth: _eip7702Auth
|
|
21
25
|
};
|
|
22
26
|
return serializePermissionAccountParams(paramsToBeSerialized);
|
|
23
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,2BAA2B,EAC3B,gCAAgC,EACnC,MAAM,YAAY,CAAA;AAEnB,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC3C,OAAuD,EACvD,UAAgB,EAChB,eAAqB,EACrB,WAAyC,EAC1B,EAAE;IACjB,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACnE,MAAM,gBAAgB,GAClB,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;IAClE,MAAM,gBAAgB,GAClB,eAAe;QACf,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CACvD,OAAO,CAAC,OAAO,CAClB,CAAC,CAAA;IACN,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa;QACtC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,OAAO;KAClC,CAAA;IAED,MAAM,oBAAoB,GAAG;QACzB,gBAAgB;QAChB,MAAM;QACN,YAAY;QACZ,aAAa;QACb,eAAe,EAAE,gBAAgB;QACjC,UAAU;QACV,WAAW,EAAE,YAAY;KAC5B,CAAA;IAED,OAAO,gCAAgC,CAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { KernelV3_3AccountAbi, encodeCallDataEpV07 } from "@zerodev/sdk";
|
|
2
|
+
import { KernelVersionToAddressesMap, VALIDATOR_TYPE } from "@zerodev/sdk/constants";
|
|
3
|
+
import { concat, encodeFunctionData, getAbiItem, pad, toFunctionSelector, zeroAddress } from "viem";
|
|
4
|
+
export async function toInitConfig(permissionPlugin) {
|
|
5
|
+
const permissionInstallFunctionData = encodeFunctionData({
|
|
6
|
+
abi: KernelV3_3AccountAbi,
|
|
7
|
+
functionName: "installValidations",
|
|
8
|
+
args: [
|
|
9
|
+
[
|
|
10
|
+
pad(concat([
|
|
11
|
+
VALIDATOR_TYPE.PERMISSION,
|
|
12
|
+
permissionPlugin.getIdentifier()
|
|
13
|
+
]), { size: 21, dir: "right" })
|
|
14
|
+
],
|
|
15
|
+
[{ nonce: 1, hook: zeroAddress }],
|
|
16
|
+
[await permissionPlugin.getEnableData()],
|
|
17
|
+
["0x"]
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
const grantAccessFunctionData = encodeFunctionData({
|
|
21
|
+
abi: KernelV3_3AccountAbi,
|
|
22
|
+
functionName: "grantAccess",
|
|
23
|
+
args: [
|
|
24
|
+
pad(concat([
|
|
25
|
+
VALIDATOR_TYPE.PERMISSION,
|
|
26
|
+
permissionPlugin.getIdentifier()
|
|
27
|
+
]), { size: 21, dir: "right" }),
|
|
28
|
+
toFunctionSelector(getAbiItem({ abi: KernelV3_3AccountAbi, name: "execute" })),
|
|
29
|
+
true
|
|
30
|
+
]
|
|
31
|
+
});
|
|
32
|
+
const delegateCall = await encodeCallDataEpV07([
|
|
33
|
+
{
|
|
34
|
+
to: KernelVersionToAddressesMap["0.3.3"]
|
|
35
|
+
.accountImplementationAddress,
|
|
36
|
+
data: grantAccessFunctionData
|
|
37
|
+
}
|
|
38
|
+
], "delegatecall");
|
|
39
|
+
return [permissionInstallFunctionData, delegateCall];
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=toInitConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toInitConfig.js","sourceRoot":"","sources":["../toInitConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EACH,2BAA2B,EAC3B,cAAc,EACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAEH,MAAM,EACN,kBAAkB,EAClB,UAAU,EACV,GAAG,EACH,kBAAkB,EAClB,WAAW,EACd,MAAM,MAAM,CAAA;AAGb,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,gBAAkC;IAElC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;QACrD,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,oBAAoB;QAClC,IAAI,EAAE;YACF;gBACI,GAAG,CACC,MAAM,CAAC;oBACH,cAAc,CAAC,UAAU;oBACzB,gBAAgB,CAAC,aAAa,EAAE;iBACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;aACJ;YACD,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;YACjC,CAAC,MAAM,gBAAgB,CAAC,aAAa,EAAE,CAAC;YACxC,CAAC,IAAI,CAAC;SACT;KACJ,CAAC,CAAA;IACF,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;QAC/C,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,aAAa;QAC3B,IAAI,EAAE;YACF,GAAG,CACC,MAAM,CAAC;gBACH,cAAc,CAAC,UAAU;gBACzB,gBAAgB,CAAC,aAAa,EAAE;aACnC,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAC7B;YACD,kBAAkB,CACd,UAAU,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAC7D;YACD,IAAI;SACP;KACJ,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAC1C;QACI;YACI,EAAE,EAAE,2BAA2B,CAAC,OAAO,CAAC;iBACnC,4BAA4B;YACjC,IAAI,EAAE,uBAAuB;SAChC;KACJ,EACD,cAAc,CACjB,CAAA;IACD,OAAO,CAAC,6BAA6B,EAAE,YAAY,CAAC,CAAA;AACxD,CAAC"}
|
|
@@ -7,6 +7,10 @@ import type { ModularSigner } from "./types.js";
|
|
|
7
7
|
export declare const deserializePermissionAccount: <entryPointVersion extends EntryPointVersion>(client: KernelSmartAccountImplementation["client"], entryPoint: EntryPointType<entryPointVersion>, kernelVersion: GetKernelVersion<entryPointVersion>, modularPermissionAccountParams: string, modularSigner?: ModularSigner) => Promise<import("@zerodev/sdk").CreateKernelAccountReturnType<entryPointVersion>>;
|
|
8
8
|
export declare const createPolicyFromParams: (policy: Policy) => Promise<Policy>;
|
|
9
9
|
export declare const decodeParamsFromInitCode: (initCode: Hex, kernelVersion: KERNEL_VERSION_TYPE) => {
|
|
10
|
+
index: undefined;
|
|
11
|
+
validatorInitData: undefined;
|
|
12
|
+
useMetaFactory: boolean;
|
|
13
|
+
} | {
|
|
10
14
|
index: bigint;
|
|
11
15
|
validatorInitData: ValidatorInitData;
|
|
12
16
|
useMetaFactory: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,gCAAgC,EAExC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EACR,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAajE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C,eAAO,MAAM,4BAA4B,wDAG7B,gCAAgC,CAAC,QAAQ,CAAC,qIAGlB,MAAM,kBACtB,aAAa,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAOA,OAAO,EACH,KAAK,gCAAgC,EAExC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EACR,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAE/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAajE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAI/C,eAAO,MAAM,4BAA4B,wDAG7B,gCAAgC,CAAC,QAAQ,CAAC,qIAGlB,MAAM,kBACtB,aAAa,qFAiDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aACvB,GAAG,iBACE,mBAAmB;;;;;;;;CA0FrC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { KernelSmartAccountImplementation } from "@zerodev/sdk";
|
|
2
2
|
import type { Hex } from "viem";
|
|
3
3
|
import type { SmartAccount } from "viem/account-abstraction";
|
|
4
|
-
|
|
4
|
+
import type { SignAuthorizationReturnType } from "viem/accounts";
|
|
5
|
+
export declare const serializePermissionAccount: (account: SmartAccount<KernelSmartAccountImplementation>, privateKey?: Hex, enableSignature?: Hex, eip7702Auth?: SignAuthorizationReturnType) => Promise<string>;
|
|
5
6
|
//# sourceMappingURL=serializePermissionAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serializePermissionAccount.d.ts","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"serializePermissionAccount.d.ts","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAMhE,eAAO,MAAM,0BAA0B,YAC1B,aAAa,gCAAgC,CAAC,eAC1C,GAAG,oBACE,GAAG,gBACP,2BAA2B,KAC1C,QAAQ,MAAM,CA+BhB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toInitConfig.d.ts","sourceRoot":"","sources":["../toInitConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,KAAK,GAAG,EAOX,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,wBAAsB,YAAY,CAC9B,gBAAgB,EAAE,gBAAgB,GACnC,OAAO,CAAC,GAAG,EAAE,CAAC,CA+ChB"}
|
package/_types/types.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { KernelValidator } from "@zerodev/sdk";
|
|
|
2
2
|
import type { Action, EntryPointType, GetKernelVersion, PluginValidityData } from "@zerodev/sdk/types";
|
|
3
3
|
import type { Abi, Address, Hex, LocalAccount } from "viem";
|
|
4
4
|
import type { EntryPointVersion } from "viem/account-abstraction";
|
|
5
|
+
import type { SignAuthorizationReturnType } from "viem/accounts";
|
|
5
6
|
import type { PolicyFlags } from "./constants.js";
|
|
6
7
|
import type { CallPolicyParams, GasPolicyParams, RateLimitPolicyParams, SignatureCallerPolicyParams, SudoPolicyParams, TimestampPolicyParams } from "./policies/index.js";
|
|
7
8
|
export type PermissionPlugin = KernelValidator<"PermissionValidator"> & {
|
|
@@ -58,5 +59,6 @@ export type PermissionAccountParams = {
|
|
|
58
59
|
accountParams: ExportPermissionAccountParams;
|
|
59
60
|
enableSignature?: Hex;
|
|
60
61
|
privateKey?: Hex;
|
|
62
|
+
eip7702Auth?: SignAuthorizationReturnType;
|
|
61
63
|
};
|
|
62
64
|
//# sourceMappingURL=types.d.ts.map
|
package/_types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,qBAAqB,CAAC,GAAG;IACpE,4BAA4B,EAAE,MAAM,cAAc,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AACD,MAAM,MAAM,YAAY,GAAG;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,YAAY,CAAA;IACrB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAG,CAAA;IACxB,iBAAiB,EAAE,MAAM,GAAG,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,aAAa,EAAE,MAAM,GAAG,CAAA;IACxB,oBAAoB,EAAE,MAAM,GAAG,CAAA;IAE/B,YAAY,EACN,CAAC,gBAAgB,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG;QAClD,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,GACF,CAAC,eAAe,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC,GACnC,CAAC,qBAAqB,GAAG;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,GAChD,CAAC,2BAA2B,GAAG;QAAE,IAAI,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAC5D,CAAC,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GACrC,CAAC,qBAAqB,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,sBAAsB,CAC9B,iBAAiB,SAAS,iBAAiB,IAC3C;IACA,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;IAC7C,aAAa,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;IAClD,IAAI,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,EAAE,GAAG,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,gBAAgB,EAAE,cAAc,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,kBAAkB,CAAA;IAChC,aAAa,EAAE,6BAA6B,CAAA;IAC5C,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,qBAAqB,CAAC,GAAG;IACpE,4BAA4B,EAAE,MAAM,cAAc,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAClC,CAAA;AACD,MAAM,MAAM,YAAY,GAAG;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,WAAW,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,OAAO,EAAE,YAAY,CAAA;IACrB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,aAAa,EAAE,MAAM,GAAG,CAAA;IACxB,iBAAiB,EAAE,MAAM,GAAG,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACjB,aAAa,EAAE,MAAM,GAAG,CAAA;IACxB,oBAAoB,EAAE,MAAM,GAAG,CAAA;IAE/B,YAAY,EACN,CAAC,gBAAgB,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAAG;QAClD,IAAI,EAAE,MAAM,CAAA;KACf,CAAC,GACF,CAAC,eAAe,GAAG;QAAE,IAAI,EAAE,KAAK,CAAA;KAAE,CAAC,GACnC,CAAC,qBAAqB,GAAG;QAAE,IAAI,EAAE,YAAY,CAAA;KAAE,CAAC,GAChD,CAAC,2BAA2B,GAAG;QAAE,IAAI,EAAE,kBAAkB,CAAA;KAAE,CAAC,GAC5D,CAAC,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GACrC,CAAC,qBAAqB,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,sBAAsB,CAC9B,iBAAiB,SAAS,iBAAiB,IAC3C;IACA,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;IAC7C,aAAa,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;IAClD,IAAI,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,MAAM,MAAM,6BAA6B,GAAG;IACxC,QAAQ,EAAE,GAAG,CAAA;IACb,cAAc,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC,gBAAgB,EAAE,cAAc,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,kBAAkB,CAAA;IAChC,aAAa,EAAE,6BAA6B,CAAA;IAC5C,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,WAAW,CAAC,EAAE,2BAA2B,CAAA;CAC5C,CAAA"}
|
|
@@ -88,7 +88,8 @@ export const deserializePermissionAccount = async <
|
|
|
88
88
|
plugins: kernelPluginManager,
|
|
89
89
|
index,
|
|
90
90
|
address: params.accountParams.accountAddress,
|
|
91
|
-
useMetaFactory
|
|
91
|
+
useMetaFactory,
|
|
92
|
+
eip7702Auth: params.eip7702Auth
|
|
92
93
|
})
|
|
93
94
|
}
|
|
94
95
|
|
|
@@ -121,6 +122,13 @@ export const decodeParamsFromInitCode = (
|
|
|
121
122
|
| DecodeFunctionDataReturnType<typeof KernelFactoryStakerAbi>
|
|
122
123
|
| DecodeFunctionDataReturnType<typeof KernelV3FactoryAbi>
|
|
123
124
|
let useMetaFactory = true
|
|
125
|
+
if (initCode === "0x") {
|
|
126
|
+
return {
|
|
127
|
+
index: undefined,
|
|
128
|
+
validatorInitData: undefined,
|
|
129
|
+
useMetaFactory: true
|
|
130
|
+
}
|
|
131
|
+
}
|
|
124
132
|
try {
|
|
125
133
|
deployWithFactoryFunctionData = decodeFunctionData({
|
|
126
134
|
abi: KernelFactoryStakerAbi,
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { KernelSmartAccountImplementation } from "@zerodev/sdk"
|
|
2
2
|
import type { Hex } from "viem"
|
|
3
3
|
import type { SmartAccount } from "viem/account-abstraction"
|
|
4
|
+
import type { SignAuthorizationReturnType } from "viem/accounts"
|
|
4
5
|
import {
|
|
5
6
|
isPermissionValidatorPlugin,
|
|
6
7
|
serializePermissionAccountParams
|
|
@@ -9,7 +10,8 @@ import {
|
|
|
9
10
|
export const serializePermissionAccount = async (
|
|
10
11
|
account: SmartAccount<KernelSmartAccountImplementation>,
|
|
11
12
|
privateKey?: Hex,
|
|
12
|
-
enableSignature?: Hex
|
|
13
|
+
enableSignature?: Hex,
|
|
14
|
+
eip7702Auth?: SignAuthorizationReturnType
|
|
13
15
|
): Promise<string> => {
|
|
14
16
|
if (!isPermissionValidatorPlugin(account.kernelPluginManager))
|
|
15
17
|
throw new Error("Account plugin is not a permission validator")
|
|
@@ -22,6 +24,9 @@ export const serializePermissionAccount = async (
|
|
|
22
24
|
(await account.kernelPluginManager.getPluginEnableSignature(
|
|
23
25
|
account.address
|
|
24
26
|
))
|
|
27
|
+
const _eip7702Auth = account.authorization
|
|
28
|
+
? (eip7702Auth ?? (await account?.eip7702Authorization?.()))
|
|
29
|
+
: undefined
|
|
25
30
|
const accountParams = {
|
|
26
31
|
initCode: await account.generateInitCode(),
|
|
27
32
|
accountAddress: account.address
|
|
@@ -33,7 +38,8 @@ export const serializePermissionAccount = async (
|
|
|
33
38
|
validityData,
|
|
34
39
|
accountParams,
|
|
35
40
|
enableSignature: _enableSignature,
|
|
36
|
-
privateKey
|
|
41
|
+
privateKey,
|
|
42
|
+
eip7702Auth: _eip7702Auth
|
|
37
43
|
}
|
|
38
44
|
|
|
39
45
|
return serializePermissionAccountParams(paramsToBeSerialized)
|
package/toInitConfig.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { KernelV3_3AccountAbi, encodeCallDataEpV07 } from "@zerodev/sdk"
|
|
2
|
+
import {
|
|
3
|
+
KernelVersionToAddressesMap,
|
|
4
|
+
VALIDATOR_TYPE
|
|
5
|
+
} from "@zerodev/sdk/constants"
|
|
6
|
+
import {
|
|
7
|
+
type Hex,
|
|
8
|
+
concat,
|
|
9
|
+
encodeFunctionData,
|
|
10
|
+
getAbiItem,
|
|
11
|
+
pad,
|
|
12
|
+
toFunctionSelector,
|
|
13
|
+
zeroAddress
|
|
14
|
+
} from "viem"
|
|
15
|
+
import type { PermissionPlugin } from "./types.js"
|
|
16
|
+
|
|
17
|
+
export async function toInitConfig(
|
|
18
|
+
permissionPlugin: PermissionPlugin
|
|
19
|
+
): Promise<Hex[]> {
|
|
20
|
+
const permissionInstallFunctionData = encodeFunctionData({
|
|
21
|
+
abi: KernelV3_3AccountAbi,
|
|
22
|
+
functionName: "installValidations",
|
|
23
|
+
args: [
|
|
24
|
+
[
|
|
25
|
+
pad(
|
|
26
|
+
concat([
|
|
27
|
+
VALIDATOR_TYPE.PERMISSION,
|
|
28
|
+
permissionPlugin.getIdentifier()
|
|
29
|
+
]),
|
|
30
|
+
{ size: 21, dir: "right" }
|
|
31
|
+
)
|
|
32
|
+
],
|
|
33
|
+
[{ nonce: 1, hook: zeroAddress }],
|
|
34
|
+
[await permissionPlugin.getEnableData()],
|
|
35
|
+
["0x"]
|
|
36
|
+
]
|
|
37
|
+
})
|
|
38
|
+
const grantAccessFunctionData = encodeFunctionData({
|
|
39
|
+
abi: KernelV3_3AccountAbi,
|
|
40
|
+
functionName: "grantAccess",
|
|
41
|
+
args: [
|
|
42
|
+
pad(
|
|
43
|
+
concat([
|
|
44
|
+
VALIDATOR_TYPE.PERMISSION,
|
|
45
|
+
permissionPlugin.getIdentifier()
|
|
46
|
+
]),
|
|
47
|
+
{ size: 21, dir: "right" }
|
|
48
|
+
),
|
|
49
|
+
toFunctionSelector(
|
|
50
|
+
getAbiItem({ abi: KernelV3_3AccountAbi, name: "execute" })
|
|
51
|
+
),
|
|
52
|
+
true
|
|
53
|
+
]
|
|
54
|
+
})
|
|
55
|
+
const delegateCall = await encodeCallDataEpV07(
|
|
56
|
+
[
|
|
57
|
+
{
|
|
58
|
+
to: KernelVersionToAddressesMap["0.3.3"]
|
|
59
|
+
.accountImplementationAddress,
|
|
60
|
+
data: grantAccessFunctionData
|
|
61
|
+
}
|
|
62
|
+
],
|
|
63
|
+
"delegatecall"
|
|
64
|
+
)
|
|
65
|
+
return [permissionInstallFunctionData, delegateCall]
|
|
66
|
+
}
|
package/types.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
} from "@zerodev/sdk/types"
|
|
8
8
|
import type { Abi, Address, Hex, LocalAccount } from "viem"
|
|
9
9
|
import type { EntryPointVersion } from "viem/account-abstraction"
|
|
10
|
+
import type { SignAuthorizationReturnType } from "viem/accounts"
|
|
10
11
|
import type { PolicyFlags } from "./constants.js"
|
|
11
12
|
import type {
|
|
12
13
|
CallPolicyParams,
|
|
@@ -77,4 +78,5 @@ export type PermissionAccountParams = {
|
|
|
77
78
|
accountParams: ExportPermissionAccountParams
|
|
78
79
|
enableSignature?: Hex
|
|
79
80
|
privateKey?: Hex
|
|
81
|
+
eip7702Auth?: SignAuthorizationReturnType
|
|
80
82
|
}
|