@zerodev/permissions 5.2.1-alpha.3 → 5.2.1-alpha.5
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 +5 -1
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_cjs/index.js +2 -0
- package/_cjs/index.js.map +1 -1
- package/_cjs/policies/toCallPolicy.js +1 -1
- package/_cjs/policies/toCallPolicy.js.map +1 -1
- package/_cjs/policies/toGasPolicy.js +1 -1
- package/_cjs/policies/toGasPolicy.js.map +1 -1
- package/_cjs/policies/toRateLimitPolicy.js +1 -1
- package/_cjs/policies/toRateLimitPolicy.js.map +1 -1
- package/_cjs/policies/toSignatureCallerPolicy.js +1 -1
- package/_cjs/policies/toSignatureCallerPolicy.js.map +1 -1
- package/_cjs/policies/toSudoPolicy.js +1 -1
- package/_cjs/policies/toSudoPolicy.js.map +1 -1
- package/_cjs/toPermissionValidator.js +10 -6
- package/_cjs/toPermissionValidator.js.map +1 -1
- package/_esm/deserializePermissionAccount.js +6 -2
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_esm/index.js +2 -0
- package/_esm/index.js.map +1 -1
- package/_esm/policies/toCallPolicy.js +1 -1
- package/_esm/policies/toCallPolicy.js.map +1 -1
- package/_esm/policies/toGasPolicy.js +1 -1
- package/_esm/policies/toGasPolicy.js.map +1 -1
- package/_esm/policies/toRateLimitPolicy.js +1 -1
- package/_esm/policies/toRateLimitPolicy.js.map +1 -1
- package/_esm/policies/toSignatureCallerPolicy.js +1 -1
- package/_esm/policies/toSignatureCallerPolicy.js.map +1 -1
- package/_esm/policies/toSudoPolicy.js +1 -1
- package/_esm/policies/toSudoPolicy.js.map +1 -1
- package/_esm/toPermissionValidator.js +11 -7
- package/_esm/toPermissionValidator.js.map +1 -1
- package/_types/deserializePermissionAccount.d.ts +1 -1
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/index.d.ts +2 -0
- package/_types/index.d.ts.map +1 -1
- package/_types/policies/toCallPolicy.d.ts +1 -1
- package/_types/policies/toCallPolicy.d.ts.map +1 -1
- package/_types/policies/toGasPolicy.d.ts +2 -2
- package/_types/policies/toGasPolicy.d.ts.map +1 -1
- package/_types/policies/toRateLimitPolicy.d.ts +1 -1
- package/_types/policies/toRateLimitPolicy.d.ts.map +1 -1
- package/_types/policies/toSignatureCallerPolicy.d.ts +1 -1
- package/_types/policies/toSignatureCallerPolicy.d.ts.map +1 -1
- package/_types/policies/toSudoPolicy.d.ts +1 -1
- package/_types/policies/toSudoPolicy.d.ts.map +1 -1
- package/_types/toPermissionValidator.d.ts.map +1 -1
- package/deserializePermissionAccount.ts +8 -3
- package/index.ts +2 -0
- package/package.json +1 -1
- package/policies/toCallPolicy.ts +2 -2
- package/policies/toGasPolicy.ts +4 -4
- package/policies/toRateLimitPolicy.ts +2 -2
- package/policies/toSignatureCallerPolicy.ts +2 -2
- package/policies/toSudoPolicy.ts +2 -2
- package/toPermissionValidator.ts +16 -8
|
@@ -11,7 +11,11 @@ const index_js_1 = require("./policies/index.js");
|
|
|
11
11
|
const toECDSASigner_js_1 = require("./signers/toECDSASigner.js");
|
|
12
12
|
const toPermissionValidator_js_1 = require("./toPermissionValidator.js");
|
|
13
13
|
const utils_js_1 = require("./utils.js");
|
|
14
|
-
const deserializePermissionAccount = async (client, modularPermissionAccountParams, modularSigner
|
|
14
|
+
const deserializePermissionAccount = async (client, entryPointAddress, modularPermissionAccountParams, modularSigner) => {
|
|
15
|
+
const entryPointVersion = (0, permissionless_1.getEntryPointVersion)(entryPointAddress);
|
|
16
|
+
if (entryPointVersion !== "v0.7") {
|
|
17
|
+
throw new Error("Only EntryPoint 0.7 is supported");
|
|
18
|
+
}
|
|
15
19
|
const params = (0, utils_js_1.deserializePermissionAccountParams)(modularPermissionAccountParams);
|
|
16
20
|
let signer;
|
|
17
21
|
if (params.privateKey)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":";;;AAAA,sCAAsE;AACtE,sCAA+C;AAC/C,oDAA6D;AAE7D,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
package/_cjs/index.js
CHANGED
|
@@ -9,4 +9,6 @@ Object.defineProperty(exports, "serializePermissionAccount", { enumerable: true,
|
|
|
9
9
|
var deserializePermissionAccount_js_1 = require("./deserializePermissionAccount.js");
|
|
10
10
|
Object.defineProperty(exports, "deserializePermissionAccount", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.deserializePermissionAccount; } });
|
|
11
11
|
tslib_1.__exportStar(require("./constants.js"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./signers/index.js"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./policies/index.js"), exports);
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/_cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AACA,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,iFAA4E;AAAnE,2IAAA,0BAA0B,OAAA;AACnC,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,yDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AACA,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,iFAA4E;AAAnE,2IAAA,0BAA0B,OAAA;AACnC,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,yDAA8B;AAC9B,6DAAkC;AAClC,8DAAmC"}
|
|
@@ -6,7 +6,7 @@ const constants_js_1 = require("../constants.js");
|
|
|
6
6
|
const constants_js_2 = require("../constants.js");
|
|
7
7
|
const callPolicyUtils_js_1 = require("./callPolicyUtils.js");
|
|
8
8
|
const types_js_1 = require("./types.js");
|
|
9
|
-
|
|
9
|
+
function toCallPolicy({ policyAddress = constants_js_2.CALL_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, permissions = [], type = "call" }) {
|
|
10
10
|
const generatedPermissionParams = permissions?.map((perm) => (0, callPolicyUtils_js_1.getPermissionFromABI)({
|
|
11
11
|
abi: perm.abi,
|
|
12
12
|
functionName: perm.functionName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AACrC,kDAA6C;AAC7C,kDAAsD;AAEtD,6DAG6B;AAC7B,yCAAsD;
|
|
1
|
+
{"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AACrC,kDAA6C;AAC7C,kDAAsD;AAEtD,6DAG6B;AAC7B,yCAAsD;AAUtD,SAAgB,YAAY,CAG1B,EACE,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,MAAM,EACuB;IACpC,MAAM,yBAAyB,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,IAAA,yCAAoB,EAAC;QACjB,GAAG,EAAE,IAAI,CAAC,GAAU;QACpB,YAAY,EAAE,IAAI,CAAC,YAAsB;QACzC,IAAI,EAAE,IAAI,CAAC,IAAU;KACxB,CAAC,CACL,CAAA;IAED,WAAW;QACP,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mBAAQ,CAAC,IAAI;YACxC,QAAQ,EACJ,IAAI,CAAC,QAAQ;gBACb,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAC5C,IAAA,UAAG,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;SACvE,CAAC,CAAC,IAAI,EAAE,CAAA;IAEb,MAAM,qBAAqB,GAAG,IAAA,yCAAoB,EAAC,WAAW,CAAC,CAAA;IAE/D,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,WAAW;SACmD;KACrE,CAAA;AACL,CAAC;AA7CD,oCA6CC"}
|
|
@@ -4,7 +4,7 @@ exports.toGasPolicy = void 0;
|
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const constants_js_1 = require("../constants.js");
|
|
6
6
|
const constants_js_2 = require("../constants.js");
|
|
7
|
-
|
|
7
|
+
function toGasPolicy({ policyAddress = constants_js_2.GAS_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, allowed = 0n, enforcePaymaster = false, allowedPaymaster = viem_1.zeroAddress, type = "gas" }) {
|
|
8
8
|
return {
|
|
9
9
|
getPolicyData: () => {
|
|
10
10
|
return (0, viem_1.encodeAbiParameters)([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toGasPolicy.js","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgF;AAChF,kDAA6C;AAC7C,kDAAqD;
|
|
1
|
+
{"version":3,"file":"toGasPolicy.js","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgF;AAChF,kDAA6C;AAC7C,kDAAqD;AAUrD,SAAgB,WAAW,CAAC,EACxB,aAAa,GAAG,kCAAmB,EACnC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,OAAO,GAAG,EAAE,EACZ,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,kBAAW,EAC9B,IAAI,GAAG,KAAK,EACE;IACd,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB;gBACI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;aAChD,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAChD,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,OAAO;YACP,gBAAgB;YAChB,gBAAgB;SACnB;KACJ,CAAA;AACL,CAAC;AA/BD,kCA+BC"}
|
|
@@ -4,7 +4,7 @@ exports.toRateLimitPolicy = void 0;
|
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const constants_js_1 = require("../constants.js");
|
|
6
6
|
const constants_js_2 = require("../constants.js");
|
|
7
|
-
|
|
7
|
+
function toRateLimitPolicy({ policyAddress = constants_js_2.RATE_LIMIT_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, interval = 0, count, startAt = 0, type = "rate-limit" }) {
|
|
8
8
|
return {
|
|
9
9
|
getPolicyData: () => {
|
|
10
10
|
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAA6C;AAC7C,kDAA4D;
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAA6C;AAC7C,kDAA4D;AAU5D,SAAgB,iBAAiB,CAAC,EAC9B,aAAa,GAAG,yCAA0B,EAC1C,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,QAAQ,GAAG,CAAC,EACZ,KAAK,EACL,OAAO,GAAG,CAAC,EACX,IAAI,GAAG,YAAY,EACC;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAEzD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;YAEhD,OAAO,KAAK,IAAI,EAAE,CAAA;QACtB,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACV;KACJ,CAAA;AACL,CAAC;AA9BD,8CA8BC"}
|
|
@@ -4,7 +4,7 @@ exports.toSignatureCallerPolicy = void 0;
|
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const constants_js_1 = require("../constants.js");
|
|
6
6
|
const constants_js_2 = require("../constants.js");
|
|
7
|
-
|
|
7
|
+
function toSignatureCallerPolicy({ policyAddress = constants_js_2.SIGNATURE_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, allowedCallers, type = "signature-caller" }) {
|
|
8
8
|
return {
|
|
9
9
|
getPolicyData: () => {
|
|
10
10
|
return (0, viem_1.encodeAbiParameters)([{ name: "allowedCallers", type: "address[]" }], [allowedCallers]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSignatureCallerPolicy.js","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAmE;AACnE,kDAA6C;AAC7C,kDAA2D;
|
|
1
|
+
{"version":3,"file":"toSignatureCallerPolicy.js","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAmE;AACnE,kDAA6C;AAC7C,kDAA2D;AAQ3D,SAAgB,uBAAuB,CAAC,EACpC,aAAa,GAAG,wCAAyB,EACzC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,cAAc,EACd,IAAI,GAAG,kBAAkB,EACC;IAC1B,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAC/C,CAAC,cAAc,CAAC,CACnB,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,cAAc;SACjB;KACJ,CAAA;AACL,CAAC;AAvBD,0DAuBC"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.toSudoPolicy = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const constants_js_1 = require("../constants.js");
|
|
6
|
-
|
|
6
|
+
function toSudoPolicy({ policyAddress = constants_js_1.SUDO_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, type = "sudo" }) {
|
|
7
7
|
return {
|
|
8
8
|
getPolicyData: () => {
|
|
9
9
|
return "0x";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSudoPolicy.js","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAAmE;
|
|
1
|
+
{"version":3,"file":"toSudoPolicy.js","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAAmE;AAOnE,SAAgB,YAAY,CAAC,EACzB,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,IAAI,GAAG,MAAM,EACE;IACf,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;SACb;KACJ,CAAA;AACL,CAAC;AAlBD,oCAkBC"}
|
|
@@ -10,6 +10,10 @@ const index_js_1 = require("./policies/index.js");
|
|
|
10
10
|
const index_js_2 = require("./signers/index.js");
|
|
11
11
|
async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, flag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
12
12
|
const chainId = await (0, actions_1.getChainId)(client);
|
|
13
|
+
const entryPointVersion = (0, permissionless_1.getEntryPointVersion)(entryPointAddress);
|
|
14
|
+
if (entryPointVersion !== "v0.7") {
|
|
15
|
+
throw new Error("Only EntryPoint 0.7 is supported");
|
|
16
|
+
}
|
|
13
17
|
const getEnableData = async (_kernelAccountAddress) => {
|
|
14
18
|
const enableData = (0, viem_1.encodeAbiParameters)([{ name: "policyAndSignerData", type: "bytes[]" }], [
|
|
15
19
|
[
|
|
@@ -28,7 +32,7 @@ async function toPermissionValidator(client, { signer, policies, entryPoint: ent
|
|
|
28
32
|
};
|
|
29
33
|
const getPermissionId = () => {
|
|
30
34
|
const pIdData = (0, viem_1.encodeAbiParameters)([{ name: "policyAndSignerData", type: "bytes[]" }], [[(0, index_js_1.toPolicyId)(policies), flag, (0, index_js_2.toSignerId)(signer)]]);
|
|
31
|
-
return (0, viem_1.slice)((0, viem_1.keccak256)(pIdData), 0,
|
|
35
|
+
return (0, viem_1.slice)((0, viem_1.keccak256)(pIdData), 0, 4);
|
|
32
36
|
};
|
|
33
37
|
return {
|
|
34
38
|
...signer.account,
|
|
@@ -36,10 +40,7 @@ async function toPermissionValidator(client, { signer, policies, entryPoint: ent
|
|
|
36
40
|
address: viem_1.zeroAddress,
|
|
37
41
|
source: "PermissionValidator",
|
|
38
42
|
getEnableData,
|
|
39
|
-
getIdentifier:
|
|
40
|
-
size: 20,
|
|
41
|
-
dir: "right"
|
|
42
|
-
}),
|
|
43
|
+
getIdentifier: getPermissionId,
|
|
43
44
|
signMessage: async ({ message }) => {
|
|
44
45
|
return (0, viem_1.concat)([
|
|
45
46
|
"0xff",
|
|
@@ -63,7 +64,10 @@ async function toPermissionValidator(client, { signer, policies, entryPoint: ent
|
|
|
63
64
|
});
|
|
64
65
|
return (0, viem_1.concat)(["0xff", signature]);
|
|
65
66
|
},
|
|
66
|
-
|
|
67
|
+
async getNonceKey(_accountAddress, customNonceKey) {
|
|
68
|
+
if (customNonceKey) {
|
|
69
|
+
return customNonceKey;
|
|
70
|
+
}
|
|
67
71
|
return 0n;
|
|
68
72
|
},
|
|
69
73
|
async getDummySignature(_userOperation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":";;;AAAA,sCAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":";;;AAAA,sCAAiD;AACjD,mDAIuB;AAEvB,+BAYa;AACb,0CAAuD;AACvD,iDAA4C;AAC5C,kDAAgD;AAChD,iDAA+C;AAOxC,KAAK,UAAU,qBAAqB,CAKvC,MAA6C,EAC7C,EACI,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,iBAAiB,EAC7B,IAAI,GAAG,0BAAW,CAAC,kBAAkB,EAChB;IAEzB,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAU,EAAC,MAAM,CAAC,CAAA;IACxC,MAAM,iBAAiB,GAAG,IAAA,qCAAoB,EAAC,iBAAiB,CAAC,CAAA;IAEjE,IAAI,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,EACvB,qBAA+B,EACnB,EAAE;QACd,MAAM,UAAU,GAAG,IAAA,0BAAmB,EAClC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAClD;YACI;gBACI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACvB,IAAA,aAAM,EAAC;oBACH,MAAM,CAAC,oBAAoB,EAAE;oBAC7B,MAAM,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;iBAC1C,CAAC,CACL;gBACD,IAAA,aAAM,EAAC;oBACH,IAAI;oBACJ,MAAM,CAAC,qBAAqB;oBAC5B,MAAM,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;iBAC1C,CAAC;aACL;SACJ,CACJ,CAAA;QACD,OAAO,UAAU,CAAA;IACrB,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,GAAQ,EAAE;QAC9B,MAAM,OAAO,GAAG,IAAA,0BAAmB,EAC/B,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAClD,CAAC,CAAC,IAAA,qBAAU,EAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CACrD,CAAA;QACD,OAAO,IAAA,YAAK,EAAC,IAAA,gBAAS,EAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,OAAO;QACH,GAAG,MAAM,CAAC,OAAO;QACjB,aAAa,EAAE,YAAY;QAC3B,OAAO,EAAE,kBAAW;QACpB,MAAM,EAAE,qBAAqB;QAC7B,aAAa;QACb,aAAa,EAAE,eAAe;QAE9B,WAAW,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAC/B,OAAO,IAAA,aAAM,EAAC;gBACV,MAAM;gBACN,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;aAChD,CAAC,CAAA;QACN,CAAC;QACD,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YAC/B,OAAO,IAAA,aAAM,EAAC;gBACV,MAAM;gBACN,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC;aAChD,CAAC,CAAA;QACN,CAAC;QAED,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAgB,EAAE;YACrD,MAAM,UAAU,GAAG,IAAA,qCAAoB,EAAC;gBACpC,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE;gBACpD,UAAU,EAAE,iBAAiB;gBAC7B,OAAO,EAAE,OAAO;aACnB,CAAC,CAAA;YAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC/C,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE;aAC/B,CAAC,CAAA;YACF,OAAO,IAAA,aAAM,EAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;QACtC,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,eAAyB,EAAE,cAAuB;YAChE,IAAI,cAAc,EAAE,CAAC;gBACjB,OAAO,cAAc,CAAA;YACzB,CAAC;YACD,OAAO,EAAE,CAAA;QACb,CAAC;QAED,KAAK,CAAC,iBAAiB,CAAC,cAAc;YAClC,OAAO,IAAA,aAAM,EAAC,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAA;QACvD,CAAC;QACD,4BAA4B,EAAE,GAAmB,EAAE;YAC/C,OAAO;gBACH,QAAQ;aACX,CAAA;QACL,CAAC;QACD,SAAS,EAAE,KAAK,EACZ,oBAA6B,EAC7B,SAAc,EACE,EAAE;YAClB,IAAI,CAAC;gBACD,MAAM,gBAAgB,GAAG,MAAM,IAAA,0BAAS,EACpC,MAAM,EACN,sBAAY,CACf,CAAC;oBACE,GAAG,EAAE,wBAAkB;oBACvB,OAAO,EAAE,oBAAoB;oBAC7B,YAAY,EAAE,kBAAkB;oBAChC,IAAI,EAAE;wBACF,IAAA,aAAM,EAAC;4BACH,MAAM;4BACN,IAAA,UAAG,EAAC,eAAe,EAAE,EAAE;gCACnB,IAAI,EAAE,EAAE;gCACR,GAAG,EAAE,OAAO;6BACf,CAAC;yBACL,CAAC;qBACL;iBACJ,CAAC,CAAA;gBACF,OAAO,gBAAgB,CAAC,MAAM,KAAK,MAAM,CAAC,qBAAqB,CAAA;YACnE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;KACJ,CAAA;AACL,CAAC;AAjID,sDAiIC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { KernelV3AccountAbi, createKernelAccount } from "@zerodev/sdk";
|
|
2
2
|
import { KernelFactoryAbi } from "@zerodev/sdk";
|
|
3
3
|
import { toKernelPluginManager } from "@zerodev/sdk/accounts";
|
|
4
|
-
import {
|
|
4
|
+
import { getEntryPointVersion } from "permissionless";
|
|
5
5
|
import { decodeFunctionData } from "viem";
|
|
6
6
|
import { privateKeyToAccount } from "viem/accounts";
|
|
7
7
|
import { toCallPolicy, toGasPolicy, toRateLimitPolicy, toSignatureCallerPolicy, toSudoPolicy } from "./policies/index.js";
|
|
@@ -9,7 +9,11 @@ import { toECDSASigner } from "./signers/toECDSASigner.js";
|
|
|
9
9
|
import { toPermissionValidator } from "./toPermissionValidator.js";
|
|
10
10
|
import {} from "./types.js";
|
|
11
11
|
import { deserializePermissionAccountParams } from "./utils.js";
|
|
12
|
-
export const deserializePermissionAccount = async (client, modularPermissionAccountParams, modularSigner
|
|
12
|
+
export const deserializePermissionAccount = async (client, entryPointAddress, modularPermissionAccountParams, modularSigner) => {
|
|
13
|
+
const entryPointVersion = getEntryPointVersion(entryPointAddress);
|
|
14
|
+
if (entryPointVersion !== "v0.7") {
|
|
15
|
+
throw new Error("Only EntryPoint 0.7 is supported");
|
|
16
|
+
}
|
|
13
17
|
const params = deserializePermissionAccountParams(modularPermissionAccountParams);
|
|
14
18
|
let signer;
|
|
15
19
|
if (params.privateKey)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EACH,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAe,MAAM,YAAY,CAAA;AAExC,OAAO,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAA;AAE/D,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAG7C,MAAiD,EACjD,iBAA6B,EAC7B,8BAAsC,EACtC,aAA6B,EAC/B,EAAE;IACA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IAEjE,IAAI,iBAAiB,KAAK,MAAM,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,aAAa,CAAC;YACnB,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,EAAE,iBAAiB;KAChC,CAAC,CAAA;IAEF,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,wBAAwB,CACzD,MAAM,CAAC,aAAa,CAAC,QAAQ,CAChC,CAAA;IAED,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CACnD,MAAM,EACN;QACI,OAAO,EAAE,uBAAuB;QAChC,qBAAqB,EAAE,MAAM,CAAC,eAAe;QAC7C,iBAAiB;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,iBAAiB;QAC7B,GAAG,MAAM,CAAC,YAAY;KACzB,CACJ,CAAA;IAED,OAAO,mBAAmB,CAAa,MAAM,EAAE;QAC3C,OAAO,EAAE,mBAAmB;QAC5B,KAAK;QACL,sBAAsB,EAAE,MAAM,CAAC,aAAa,CAAC,cAAc;QAC3D,UAAU,EAAE,iBAAiB;KAChC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;IAC3D,QAAQ,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,KAAK,MAAM;YACP,OAAO,MAAM,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAClD,KAAK,KAAK;YACN,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACjD,KAAK,YAAY;YACb,OAAO,MAAM,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QACvD,KAAK,kBAAkB;YACnB,OAAO,MAAM,uBAAuB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC7D,KAAK,MAAM;YACP,OAAO,MAAM,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAClD;YACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAClD,CAAC;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,QAAa,EAAE,EAAE;IACtD,IAAI,KAAyB,CAAA;IAC7B,IAAI,iBAAgD,CAAA;IACpD,MAAM,yBAAyB,GAAG,kBAAkB,CAAC;QACjD,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,KAAK,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;KAClC,CAAC,CAAA;IACF,IAAI,CAAC,yBAAyB;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACnE,IAAI,yBAAyB,CAAC,YAAY,KAAK,eAAe,EAAE,CAAC;QAC7D,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;YAC9C,GAAG,EAAE,kBAAkB;YACvB,IAAI,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1C,CAAC,CAAA;QACF,IAAI,CAAC,sBAAsB;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;QAChE,IAAI,sBAAsB,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;YACvD,iBAAiB,GAAG;gBAChB,gBAAgB,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1C,UAAU,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;aAC7C,CAAA;QACL,CAAC;IACL,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,iBAAiB,KAAK,SAAS;QACtD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAA;AACvC,CAAC,CAAA"}
|
package/_esm/index.js
CHANGED
|
@@ -2,4 +2,6 @@ export { toPermissionValidator } from "./toPermissionValidator.js";
|
|
|
2
2
|
export { serializePermissionAccount } from "./serializePermissionAccount.js";
|
|
3
3
|
export { deserializePermissionAccount } from "./deserializePermissionAccount.js";
|
|
4
4
|
export * from "./constants.js";
|
|
5
|
+
export * from "./signers/index.js";
|
|
6
|
+
export * from "./policies/index.js";
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/_esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { PolicyFlags } from "../constants.js";
|
|
|
3
3
|
import { CALL_POLICY_CONTRACT } from "../constants.js";
|
|
4
4
|
import { encodePermissionData, getPermissionFromABI } from "./callPolicyUtils.js";
|
|
5
5
|
import { CallType } from "./types.js";
|
|
6
|
-
export
|
|
6
|
+
export function toCallPolicy({ policyAddress = CALL_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, permissions = [], type = "call" }) {
|
|
7
7
|
const generatedPermissionParams = permissions?.map((perm) => getPermissionFromABI({
|
|
8
8
|
abi: perm.abi,
|
|
9
9
|
functionName: perm.functionName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAA;AAUtD,MAAM,
|
|
1
|
+
{"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAA;AAUtD,MAAM,UAAU,YAAY,CAG1B,EACE,aAAa,GAAG,oBAAoB,EACpC,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,MAAM,EACuB;IACpC,MAAM,yBAAyB,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,oBAAoB,CAAC;QACjB,GAAG,EAAE,IAAI,CAAC,GAAU;QACpB,YAAY,EAAE,IAAI,CAAC,YAAsB;QACzC,IAAI,EAAE,IAAI,CAAC,IAAU;KACxB,CAAC,CACL,CAAA;IAED,WAAW;QACP,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI;YACxC,QAAQ,EACJ,IAAI,CAAC,QAAQ;gBACb,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAC5C,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;SACvE,CAAC,CAAC,IAAI,EAAE,CAAA;IAEb,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAA;IAE/D,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,WAAW;SACmD;KACrE,CAAA;AACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { concatHex, encodeAbiParameters, zeroAddress } from "viem";
|
|
2
2
|
import { PolicyFlags } from "../constants.js";
|
|
3
3
|
import { GAS_POLICY_CONTRACT } from "../constants.js";
|
|
4
|
-
export
|
|
4
|
+
export function toGasPolicy({ policyAddress = GAS_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, allowed = 0n, enforcePaymaster = false, allowedPaymaster = zeroAddress, type = "gas" }) {
|
|
5
5
|
return {
|
|
6
6
|
getPolicyData: () => {
|
|
7
7
|
return encodeAbiParameters([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toGasPolicy.js","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAUrD,MAAM,
|
|
1
|
+
{"version":3,"file":"toGasPolicy.js","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAUrD,MAAM,UAAU,WAAW,CAAC,EACxB,aAAa,GAAG,mBAAmB,EACnC,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,OAAO,GAAG,EAAE,EACZ,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,WAAW,EAC9B,IAAI,GAAG,KAAK,EACE;IACd,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,mBAAmB,CACtB;gBACI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;aAChD,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAChD,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,OAAO;YACP,gBAAgB;YAChB,gBAAgB;SACnB;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { concatHex } from "viem";
|
|
2
2
|
import { PolicyFlags } from "../constants.js";
|
|
3
3
|
import { RATE_LIMIT_POLICY_CONTRACT } from "../constants.js";
|
|
4
|
-
export
|
|
4
|
+
export function toRateLimitPolicy({ policyAddress = RATE_LIMIT_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, interval = 0, count, startAt = 0, type = "rate-limit" }) {
|
|
5
5
|
return {
|
|
6
6
|
getPolicyData: () => {
|
|
7
7
|
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAU5D,MAAM,
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAU5D,MAAM,UAAU,iBAAiB,CAAC,EAC9B,aAAa,GAAG,0BAA0B,EAC1C,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,QAAQ,GAAG,CAAC,EACZ,KAAK,EACL,OAAO,GAAG,CAAC,EACX,IAAI,GAAG,YAAY,EACC;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAEzD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;YAEhD,OAAO,KAAK,IAAI,EAAE,CAAA;QACtB,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACV;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { concatHex, encodeAbiParameters } from "viem";
|
|
2
2
|
import { PolicyFlags } from "../constants.js";
|
|
3
3
|
import { SIGNATURE_POLICY_CONTRACT } from "../constants.js";
|
|
4
|
-
export
|
|
4
|
+
export function toSignatureCallerPolicy({ policyAddress = SIGNATURE_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, allowedCallers, type = "signature-caller" }) {
|
|
5
5
|
return {
|
|
6
6
|
getPolicyData: () => {
|
|
7
7
|
return encodeAbiParameters([{ name: "allowedCallers", type: "address[]" }], [allowedCallers]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSignatureCallerPolicy.js","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAQ3D,MAAM,
|
|
1
|
+
{"version":3,"file":"toSignatureCallerPolicy.js","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAQ3D,MAAM,UAAU,uBAAuB,CAAC,EACpC,aAAa,GAAG,yBAAyB,EACzC,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,cAAc,EACd,IAAI,GAAG,kBAAkB,EACC;IAC1B,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,mBAAmB,CACtB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAC/C,CAAC,cAAc,CAAC,CACnB,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,cAAc;SACjB;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { concatHex } from "viem";
|
|
2
2
|
import { PolicyFlags, SUDO_POLICY_CONTRACT } from "../constants.js";
|
|
3
|
-
export
|
|
3
|
+
export function toSudoPolicy({ policyAddress = SUDO_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, type = "sudo" }) {
|
|
4
4
|
return {
|
|
5
5
|
getPolicyData: () => {
|
|
6
6
|
return "0x";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSudoPolicy.js","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAOnE,MAAM,
|
|
1
|
+
{"version":3,"file":"toSudoPolicy.js","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAOnE,MAAM,UAAU,YAAY,CAAC,EACzB,aAAa,GAAG,oBAAoB,EACpC,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,IAAI,GAAG,MAAM,EACE;IACf,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;SACb;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KernelV3AccountAbi } from "@zerodev/sdk";
|
|
2
|
-
import { getAction, getUserOperationHash } from "permissionless";
|
|
2
|
+
import { getAction, getEntryPointVersion, getUserOperationHash } from "permissionless";
|
|
3
3
|
import { concat, encodeAbiParameters, keccak256, pad, slice, zeroAddress } from "viem";
|
|
4
4
|
import { getChainId, readContract } from "viem/actions";
|
|
5
5
|
import { PolicyFlags } from "./constants.js";
|
|
@@ -7,6 +7,10 @@ import { toPolicyId } from "./policies/index.js";
|
|
|
7
7
|
import { toSignerId } from "./signers/index.js";
|
|
8
8
|
export async function toPermissionValidator(client, { signer, policies, entryPoint: entryPointAddress, flag = PolicyFlags.FOR_ALL_VALIDATION }) {
|
|
9
9
|
const chainId = await getChainId(client);
|
|
10
|
+
const entryPointVersion = getEntryPointVersion(entryPointAddress);
|
|
11
|
+
if (entryPointVersion !== "v0.7") {
|
|
12
|
+
throw new Error("Only EntryPoint 0.7 is supported");
|
|
13
|
+
}
|
|
10
14
|
const getEnableData = async (_kernelAccountAddress) => {
|
|
11
15
|
const enableData = encodeAbiParameters([{ name: "policyAndSignerData", type: "bytes[]" }], [
|
|
12
16
|
[
|
|
@@ -25,7 +29,7 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
25
29
|
};
|
|
26
30
|
const getPermissionId = () => {
|
|
27
31
|
const pIdData = encodeAbiParameters([{ name: "policyAndSignerData", type: "bytes[]" }], [[toPolicyId(policies), flag, toSignerId(signer)]]);
|
|
28
|
-
return slice(keccak256(pIdData), 0,
|
|
32
|
+
return slice(keccak256(pIdData), 0, 4);
|
|
29
33
|
};
|
|
30
34
|
return {
|
|
31
35
|
...signer.account,
|
|
@@ -33,10 +37,7 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
33
37
|
address: zeroAddress,
|
|
34
38
|
source: "PermissionValidator",
|
|
35
39
|
getEnableData,
|
|
36
|
-
getIdentifier:
|
|
37
|
-
size: 20,
|
|
38
|
-
dir: "right"
|
|
39
|
-
}),
|
|
40
|
+
getIdentifier: getPermissionId,
|
|
40
41
|
signMessage: async ({ message }) => {
|
|
41
42
|
return concat([
|
|
42
43
|
"0xff",
|
|
@@ -60,7 +61,10 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
60
61
|
});
|
|
61
62
|
return concat(["0xff", signature]);
|
|
62
63
|
},
|
|
63
|
-
|
|
64
|
+
async getNonceKey(_accountAddress, customNonceKey) {
|
|
65
|
+
if (customNonceKey) {
|
|
66
|
+
return customNonceKey;
|
|
67
|
+
}
|
|
64
68
|
return 0n;
|
|
65
69
|
},
|
|
66
70
|
async getDummySignature(_userOperation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import type { EntryPoint } from "permissionless/types";
|
|
|
4
4
|
import type { Hex } from "viem";
|
|
5
5
|
import { type Policy } from "./types.js";
|
|
6
6
|
import type { ModularSigner } from "./types.js";
|
|
7
|
-
export declare const deserializePermissionAccount: <entryPoint extends EntryPoint>(client: Parameters<typeof createKernelAccount>[0], modularPermissionAccountParams: string, modularSigner?: ModularSigner
|
|
7
|
+
export declare const deserializePermissionAccount: <entryPoint extends EntryPoint>(client: Parameters<typeof createKernelAccount>[0], entryPointAddress: entryPoint, modularPermissionAccountParams: string, modularSigner?: ModularSigner) => Promise<import("@zerodev/sdk").KernelSmartAccount<entryPoint, import("viem").Transport, import("viem").Chain | undefined>>;
|
|
8
8
|
export declare const createPolicyFromParams: (policy: Policy) => Promise<Policy>;
|
|
9
9
|
export declare const decodeParamsFromInitCode: (initCode: Hex) => {
|
|
10
10
|
index: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAY/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,4BAA4B,0CAG7B,WAAW,0BAA0B,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAY/B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAG/C,eAAO,MAAM,4BAA4B,0CAG7B,WAAW,0BAA0B,CAAC,CAAC,CAAC,CAAC,iEAEjB,MAAM,kBACtB,aAAa,+HAkDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAe1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aAAc,GAAG;;;CA0BrD,CAAA"}
|
package/_types/index.d.ts
CHANGED
|
@@ -3,4 +3,6 @@ export { toPermissionValidator } from "./toPermissionValidator.js";
|
|
|
3
3
|
export { serializePermissionAccount } from "./serializePermissionAccount.js";
|
|
4
4
|
export { deserializePermissionAccount } from "./deserializePermissionAccount.js";
|
|
5
5
|
export * from "./constants.js";
|
|
6
|
+
export * from "./signers/index.js";
|
|
7
|
+
export * from "./policies/index.js";
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
package/_types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,mBAAmB,YAAY,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA;AAChF,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA"}
|
|
@@ -5,5 +5,5 @@ export type CallPolicyParams<TAbi extends Abi | readonly unknown[], TFunctionNam
|
|
|
5
5
|
permissions?: Permission<TAbi, TFunctionName>[];
|
|
6
6
|
type?: "call";
|
|
7
7
|
};
|
|
8
|
-
export declare function toCallPolicy<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ policyAddress, policyFlag, permissions, type }: CallPolicyParams<TAbi, TFunctionName>):
|
|
8
|
+
export declare function toCallPolicy<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ policyAddress, policyFlag, permissions, type }: CallPolicyParams<TAbi, TFunctionName>): Policy;
|
|
9
9
|
//# sourceMappingURL=toCallPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAI/B,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,IACjD,YAAY,GAAG;IACf,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAI/B,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,IACjD,YAAY,GAAG;IACf,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,YAAY,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACnD,EACE,aAAoC,EACpC,UAA2C,EAC3C,WAAgB,EAChB,IAAa,EAChB,EAAE,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,MAAM,CAqChD"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { type Address } from "viem";
|
|
2
2
|
import type { Policy, PolicyParams } from "../types.js";
|
|
3
3
|
export type GasPolicyParams = PolicyParams & {
|
|
4
|
-
allowed
|
|
4
|
+
allowed?: bigint;
|
|
5
5
|
enforcePaymaster?: boolean;
|
|
6
6
|
allowedPaymaster?: Address;
|
|
7
7
|
type?: "gas";
|
|
8
8
|
};
|
|
9
|
-
export declare function toGasPolicy({ policyAddress, policyFlag, allowed, enforcePaymaster, allowedPaymaster, type }: GasPolicyParams):
|
|
9
|
+
export declare function toGasPolicy({ policyAddress, policyFlag, allowed, enforcePaymaster, allowedPaymaster, type }: GasPolicyParams): Policy;
|
|
10
10
|
//# sourceMappingURL=toGasPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toGasPolicy.d.ts","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA+C,MAAM,MAAM,CAAA;AAGhF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IACzC,OAAO,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"toGasPolicy.d.ts","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAA+C,MAAM,MAAM,CAAA;AAGhF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAA;CACf,CAAA;AAED,wBAAgB,WAAW,CAAC,EACxB,aAAmC,EACnC,UAA2C,EAC3C,OAAY,EACZ,gBAAwB,EACxB,gBAA8B,EAC9B,IAAY,EACf,EAAE,eAAe,GAAG,MAAM,CAwB1B"}
|
|
@@ -5,5 +5,5 @@ export type RateLimitPolicyParams = PolicyParams & {
|
|
|
5
5
|
startAt?: number;
|
|
6
6
|
type?: "rate-limit";
|
|
7
7
|
};
|
|
8
|
-
export declare function toRateLimitPolicy({ policyAddress, policyFlag, interval, count, startAt, type }: RateLimitPolicyParams):
|
|
8
|
+
export declare function toRateLimitPolicy({ policyAddress, policyFlag, interval, count, startAt, type }: RateLimitPolicyParams): Policy;
|
|
9
9
|
//# sourceMappingURL=toRateLimitPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRateLimitPolicy.d.ts","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.d.ts","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,aAA0C,EAC1C,UAA2C,EAC3C,QAAY,EACZ,KAAK,EACL,OAAW,EACX,IAAmB,EACtB,EAAE,qBAAqB,GAAG,MAAM,CAuBhC"}
|
|
@@ -4,5 +4,5 @@ export type SignatureCallerPolicyParams = PolicyParams & {
|
|
|
4
4
|
allowedCallers: Address[];
|
|
5
5
|
type?: "signature-caller";
|
|
6
6
|
};
|
|
7
|
-
export declare function toSignatureCallerPolicy({ policyAddress, policyFlag, allowedCallers, type }: SignatureCallerPolicyParams):
|
|
7
|
+
export declare function toSignatureCallerPolicy({ policyAddress, policyFlag, allowedCallers, type }: SignatureCallerPolicyParams): Policy;
|
|
8
8
|
//# sourceMappingURL=toSignatureCallerPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSignatureCallerPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,MAAM,CAAA;AAGnE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG;IACrD,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toSignatureCallerPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,MAAM,CAAA;AAGnE,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG;IACrD,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,wBAAgB,uBAAuB,CAAC,EACpC,aAAyC,EACzC,UAA2C,EAC3C,cAAc,EACd,IAAyB,EAC5B,EAAE,2BAA2B,GAAG,MAAM,CAkBtC"}
|
|
@@ -2,5 +2,5 @@ import type { Policy, PolicyParams } from "../types.js";
|
|
|
2
2
|
export type SudoPolicyParams = PolicyParams & {
|
|
3
3
|
type?: "sudo";
|
|
4
4
|
};
|
|
5
|
-
export declare function toSudoPolicy({ policyAddress, policyFlag, type }: SudoPolicyParams):
|
|
5
|
+
export declare function toSudoPolicy({ policyAddress, policyFlag, type }: SudoPolicyParams): Policy;
|
|
6
6
|
//# sourceMappingURL=toSudoPolicy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSudoPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,
|
|
1
|
+
{"version":3,"file":"toSudoPolicy.d.ts","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,YAAY,CAAC,EACzB,aAAoC,EACpC,UAA2C,EAC3C,IAAa,EAChB,EAAE,gBAAgB,GAAG,MAAM,CAc3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.d.ts","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.d.ts","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,SAAS,EAOjB,MAAM,MAAM,CAAA;AAKb,OAAO,KAAK,EAER,gBAAgB,EAChB,sBAAsB,EACzB,MAAM,YAAY,CAAA;AAEnB,wBAAsB,qBAAqB,CACvC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,MAAM,EACN,QAAQ,EACR,UAAU,EAAE,iBAAiB,EAC7B,IAAqC,EACxC,EAAE,sBAAsB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAqHvC"}
|
|
@@ -2,7 +2,7 @@ import { KernelV3AccountAbi, createKernelAccount } from "@zerodev/sdk"
|
|
|
2
2
|
import { KernelFactoryAbi } from "@zerodev/sdk"
|
|
3
3
|
import { toKernelPluginManager } from "@zerodev/sdk/accounts"
|
|
4
4
|
import type { ValidatorInitData } from "@zerodev/sdk/types"
|
|
5
|
-
import {
|
|
5
|
+
import { getEntryPointVersion } from "permissionless"
|
|
6
6
|
import type { EntryPoint } from "permissionless/types"
|
|
7
7
|
import type { Hex } from "viem"
|
|
8
8
|
import { decodeFunctionData } from "viem"
|
|
@@ -24,10 +24,15 @@ export const deserializePermissionAccount = async <
|
|
|
24
24
|
entryPoint extends EntryPoint
|
|
25
25
|
>(
|
|
26
26
|
client: Parameters<typeof createKernelAccount>[0],
|
|
27
|
+
entryPointAddress: entryPoint,
|
|
27
28
|
modularPermissionAccountParams: string,
|
|
28
|
-
modularSigner?: ModularSigner
|
|
29
|
-
entryPointAddress: entryPoint = ENTRYPOINT_ADDRESS_V06 as entryPoint
|
|
29
|
+
modularSigner?: ModularSigner
|
|
30
30
|
) => {
|
|
31
|
+
const entryPointVersion = getEntryPointVersion(entryPointAddress)
|
|
32
|
+
|
|
33
|
+
if (entryPointVersion !== "v0.7") {
|
|
34
|
+
throw new Error("Only EntryPoint 0.7 is supported")
|
|
35
|
+
}
|
|
31
36
|
const params = deserializePermissionAccountParams(
|
|
32
37
|
modularPermissionAccountParams
|
|
33
38
|
)
|
package/index.ts
CHANGED
|
@@ -3,3 +3,5 @@ export { toPermissionValidator } from "./toPermissionValidator.js"
|
|
|
3
3
|
export { serializePermissionAccount } from "./serializePermissionAccount.js"
|
|
4
4
|
export { deserializePermissionAccount } from "./deserializePermissionAccount.js"
|
|
5
5
|
export * from "./constants.js"
|
|
6
|
+
export * from "./signers/index.js"
|
|
7
|
+
export * from "./policies/index.js"
|
package/package.json
CHANGED
package/policies/toCallPolicy.ts
CHANGED
|
@@ -17,7 +17,7 @@ export type CallPolicyParams<
|
|
|
17
17
|
type?: "call"
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export
|
|
20
|
+
export function toCallPolicy<
|
|
21
21
|
TAbi extends Abi | readonly unknown[],
|
|
22
22
|
TFunctionName extends string | undefined = string
|
|
23
23
|
>({
|
|
@@ -25,7 +25,7 @@ export async function toCallPolicy<
|
|
|
25
25
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
26
26
|
permissions = [],
|
|
27
27
|
type = "call"
|
|
28
|
-
}: CallPolicyParams<TAbi, TFunctionName>):
|
|
28
|
+
}: CallPolicyParams<TAbi, TFunctionName>): Policy {
|
|
29
29
|
const generatedPermissionParams = permissions?.map((perm) =>
|
|
30
30
|
getPermissionFromABI({
|
|
31
31
|
abi: perm.abi as Abi,
|
package/policies/toGasPolicy.ts
CHANGED
|
@@ -4,20 +4,20 @@ import { GAS_POLICY_CONTRACT } from "../constants.js"
|
|
|
4
4
|
import type { Policy, PolicyParams } from "../types.js"
|
|
5
5
|
|
|
6
6
|
export type GasPolicyParams = PolicyParams & {
|
|
7
|
-
allowed
|
|
7
|
+
allowed?: bigint
|
|
8
8
|
enforcePaymaster?: boolean
|
|
9
9
|
allowedPaymaster?: Address
|
|
10
10
|
type?: "gas"
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export
|
|
13
|
+
export function toGasPolicy({
|
|
14
14
|
policyAddress = GAS_POLICY_CONTRACT,
|
|
15
15
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
16
|
-
allowed,
|
|
16
|
+
allowed = 0n,
|
|
17
17
|
enforcePaymaster = false,
|
|
18
18
|
allowedPaymaster = zeroAddress,
|
|
19
19
|
type = "gas"
|
|
20
|
-
}: GasPolicyParams):
|
|
20
|
+
}: GasPolicyParams): Policy {
|
|
21
21
|
return {
|
|
22
22
|
getPolicyData: () => {
|
|
23
23
|
return encodeAbiParameters(
|
|
@@ -10,14 +10,14 @@ export type RateLimitPolicyParams = PolicyParams & {
|
|
|
10
10
|
type?: "rate-limit"
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
export
|
|
13
|
+
export function toRateLimitPolicy({
|
|
14
14
|
policyAddress = RATE_LIMIT_POLICY_CONTRACT,
|
|
15
15
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
16
16
|
interval = 0,
|
|
17
17
|
count,
|
|
18
18
|
startAt = 0,
|
|
19
19
|
type = "rate-limit"
|
|
20
|
-
}: RateLimitPolicyParams):
|
|
20
|
+
}: RateLimitPolicyParams): Policy {
|
|
21
21
|
return {
|
|
22
22
|
getPolicyData: () => {
|
|
23
23
|
const intervalHex = interval.toString(16).padStart(12, "0")
|
|
@@ -8,12 +8,12 @@ export type SignatureCallerPolicyParams = PolicyParams & {
|
|
|
8
8
|
type?: "signature-caller"
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export
|
|
11
|
+
export function toSignatureCallerPolicy({
|
|
12
12
|
policyAddress = SIGNATURE_POLICY_CONTRACT,
|
|
13
13
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
14
14
|
allowedCallers,
|
|
15
15
|
type = "signature-caller"
|
|
16
|
-
}: SignatureCallerPolicyParams):
|
|
16
|
+
}: SignatureCallerPolicyParams): Policy {
|
|
17
17
|
return {
|
|
18
18
|
getPolicyData: () => {
|
|
19
19
|
return encodeAbiParameters(
|
package/policies/toSudoPolicy.ts
CHANGED
|
@@ -6,11 +6,11 @@ export type SudoPolicyParams = PolicyParams & {
|
|
|
6
6
|
type?: "sudo"
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
export
|
|
9
|
+
export function toSudoPolicy({
|
|
10
10
|
policyAddress = SUDO_POLICY_CONTRACT,
|
|
11
11
|
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
12
12
|
type = "sudo"
|
|
13
|
-
}: SudoPolicyParams):
|
|
13
|
+
}: SudoPolicyParams): Policy {
|
|
14
14
|
return {
|
|
15
15
|
getPolicyData: () => {
|
|
16
16
|
return "0x"
|
package/toPermissionValidator.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { KernelV3AccountAbi } from "@zerodev/sdk"
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
getAction,
|
|
4
|
+
getEntryPointVersion,
|
|
5
|
+
getUserOperationHash
|
|
6
|
+
} from "permissionless"
|
|
3
7
|
import type { EntryPoint } from "permissionless/types/entrypoint"
|
|
4
8
|
import {
|
|
5
9
|
type Address,
|
|
@@ -38,6 +42,11 @@ export async function toPermissionValidator<
|
|
|
38
42
|
}: PermissionPluginParams
|
|
39
43
|
): Promise<PermissionPlugin<entryPoint>> {
|
|
40
44
|
const chainId = await getChainId(client)
|
|
45
|
+
const entryPointVersion = getEntryPointVersion(entryPointAddress)
|
|
46
|
+
|
|
47
|
+
if (entryPointVersion !== "v0.7") {
|
|
48
|
+
throw new Error("Only EntryPoint 0.7 is supported")
|
|
49
|
+
}
|
|
41
50
|
|
|
42
51
|
const getEnableData = async (
|
|
43
52
|
_kernelAccountAddress?: Address
|
|
@@ -68,7 +77,7 @@ export async function toPermissionValidator<
|
|
|
68
77
|
[{ name: "policyAndSignerData", type: "bytes[]" }],
|
|
69
78
|
[[toPolicyId(policies), flag, toSignerId(signer)]]
|
|
70
79
|
)
|
|
71
|
-
return slice(keccak256(pIdData), 0,
|
|
80
|
+
return slice(keccak256(pIdData), 0, 4)
|
|
72
81
|
}
|
|
73
82
|
|
|
74
83
|
return {
|
|
@@ -77,11 +86,7 @@ export async function toPermissionValidator<
|
|
|
77
86
|
address: zeroAddress,
|
|
78
87
|
source: "PermissionValidator",
|
|
79
88
|
getEnableData,
|
|
80
|
-
getIdentifier:
|
|
81
|
-
pad(getPermissionId(), {
|
|
82
|
-
size: 20,
|
|
83
|
-
dir: "right"
|
|
84
|
-
}),
|
|
89
|
+
getIdentifier: getPermissionId,
|
|
85
90
|
|
|
86
91
|
signMessage: async ({ message }) => {
|
|
87
92
|
return concat([
|
|
@@ -109,7 +114,10 @@ export async function toPermissionValidator<
|
|
|
109
114
|
return concat(["0xff", signature])
|
|
110
115
|
},
|
|
111
116
|
|
|
112
|
-
getNonceKey
|
|
117
|
+
async getNonceKey(_accountAddress?: Address, customNonceKey?: bigint) {
|
|
118
|
+
if (customNonceKey) {
|
|
119
|
+
return customNonceKey
|
|
120
|
+
}
|
|
113
121
|
return 0n
|
|
114
122
|
},
|
|
115
123
|
|