@zerodev/permissions 5.2.1-alpha.12 → 5.2.1-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_cjs/constants.js +2 -1
- package/_cjs/constants.js.map +1 -1
- package/_cjs/deserializePermissionAccount.js +2 -0
- package/_cjs/deserializePermissionAccount.js.map +1 -1
- package/_cjs/policies/index.js +3 -1
- package/_cjs/policies/index.js.map +1 -1
- package/_cjs/policies/toTimestampPolicy.js +27 -0
- package/_cjs/policies/toTimestampPolicy.js.map +1 -0
- package/_cjs/toPermissionValidator.js +1 -9
- package/_cjs/toPermissionValidator.js.map +1 -1
- package/_esm/constants.js +1 -0
- package/_esm/constants.js.map +1 -1
- package/_esm/deserializePermissionAccount.js +3 -1
- package/_esm/deserializePermissionAccount.js.map +1 -1
- package/_esm/policies/index.js +1 -0
- package/_esm/policies/index.js.map +1 -1
- package/_esm/policies/toTimestampPolicy.js +23 -0
- package/_esm/policies/toTimestampPolicy.js.map +1 -0
- package/_esm/toPermissionValidator.js +2 -10
- package/_esm/toPermissionValidator.js.map +1 -1
- package/_types/constants.d.ts +1 -0
- package/_types/constants.d.ts.map +1 -1
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/policies/index.d.ts +1 -0
- package/_types/policies/index.d.ts.map +1 -1
- package/_types/policies/toTimestampPolicy.d.ts +8 -0
- package/_types/policies/toTimestampPolicy.d.ts.map +1 -0
- package/_types/toPermissionValidator.d.ts.map +1 -1
- package/_types/types.d.ts +2 -2
- package/_types/types.d.ts.map +1 -1
- package/constants.ts +2 -0
- package/deserializePermissionAccount.ts +4 -1
- package/package.json +1 -1
- package/policies/index.ts +4 -0
- package/policies/toTimestampPolicy.ts +39 -0
- package/toPermissionValidator.ts +1 -10
- package/types.ts +3 -1
package/_cjs/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PolicyFlags = exports.SUDO_POLICY_CONTRACT = exports.SIGNATURE_POLICY_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.CALL_POLICY_CONTRACT = exports.WEBAUTHN_SIGNER_CONTRACT = exports.ECDSA_SIGNER_CONTRACT = void 0;
|
|
3
|
+
exports.PolicyFlags = exports.TIMESTAMP_POLICY_CONTRACT = exports.SUDO_POLICY_CONTRACT = exports.SIGNATURE_POLICY_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.CALL_POLICY_CONTRACT = exports.WEBAUTHN_SIGNER_CONTRACT = exports.ECDSA_SIGNER_CONTRACT = void 0;
|
|
4
4
|
exports.ECDSA_SIGNER_CONTRACT = "0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF";
|
|
5
5
|
exports.WEBAUTHN_SIGNER_CONTRACT = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
|
|
6
6
|
exports.CALL_POLICY_CONTRACT = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
|
|
@@ -8,6 +8,7 @@ exports.GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
|
8
8
|
exports.RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
9
9
|
exports.SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
10
10
|
exports.SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7";
|
|
11
|
+
exports.TIMESTAMP_POLICY_CONTRACT = "0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F";
|
|
11
12
|
var PolicyFlags;
|
|
12
13
|
(function (PolicyFlags) {
|
|
13
14
|
PolicyFlags["FOR_ALL_VALIDATION"] = "0x0000";
|
package/_cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,wBAAwB,GACjC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AACnC,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,wBAAwB,GACjC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AACnC,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AAEhD,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
|
|
@@ -59,6 +59,8 @@ const createPolicyFromParams = async (policy) => {
|
|
|
59
59
|
return await (0, index_js_1.toSignatureCallerPolicy)(policy.policyParams);
|
|
60
60
|
case "sudo":
|
|
61
61
|
return await (0, index_js_1.toSudoPolicy)(policy.policyParams);
|
|
62
|
+
case "timestamp":
|
|
63
|
+
return await (0, index_js_1.toTimestampPolicy)(policy.policyParams);
|
|
62
64
|
default:
|
|
63
65
|
throw new Error("Unsupported policy type");
|
|
64
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":";;;AAAA,sCAIqB;AACrB,oDAA6D;AAE7D,mDAAqD;AAGrD,+BAAyC;AACzC,4CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
package/_cjs/policies/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParamCondition = exports.CallType = exports.toSudoPolicy = exports.toPolicyId = exports.toCallPolicy = exports.toRateLimitPolicy = exports.toSignatureCallerPolicy = exports.toGasPolicy = void 0;
|
|
3
|
+
exports.toTimestampPolicy = exports.ParamCondition = exports.CallType = exports.toSudoPolicy = exports.toPolicyId = exports.toCallPolicy = exports.toRateLimitPolicy = exports.toSignatureCallerPolicy = exports.toGasPolicy = void 0;
|
|
4
4
|
var toGasPolicy_js_1 = require("./toGasPolicy.js");
|
|
5
5
|
Object.defineProperty(exports, "toGasPolicy", { enumerable: true, get: function () { return toGasPolicy_js_1.toGasPolicy; } });
|
|
6
6
|
var toSignatureCallerPolicy_js_1 = require("./toSignatureCallerPolicy.js");
|
|
@@ -16,4 +16,6 @@ Object.defineProperty(exports, "toSudoPolicy", { enumerable: true, get: function
|
|
|
16
16
|
var types_js_1 = require("./types.js");
|
|
17
17
|
Object.defineProperty(exports, "CallType", { enumerable: true, get: function () { return types_js_1.CallType; } });
|
|
18
18
|
Object.defineProperty(exports, "ParamCondition", { enumerable: true, get: function () { return types_js_1.ParamCondition; } });
|
|
19
|
+
var toTimestampPolicy_js_1 = require("./toTimestampPolicy.js");
|
|
20
|
+
Object.defineProperty(exports, "toTimestampPolicy", { enumerable: true, get: function () { return toTimestampPolicy_js_1.toTimestampPolicy; } });
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAA3D,6GAAA,WAAW,OAAA;AACpB,2EAGqC;AAFjC,qIAAA,uBAAuB,OAAA;AAG3B,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA;AAGrB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uCAAqD;AAA5C,oGAAA,QAAQ,OAAA;AAAE,0GAAA,cAAc,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAA3D,6GAAA,WAAW,OAAA;AACpB,2EAGqC;AAFjC,qIAAA,uBAAuB,OAAA;AAG3B,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA;AAGrB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uCAAqD;AAA5C,oGAAA,QAAQ,OAAA;AAAE,0GAAA,cAAc,OAAA;AACjC,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toTimestampPolicy = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const constants_js_1 = require("../constants.js");
|
|
6
|
+
function toTimestampPolicy({ policyAddress = constants_js_1.TIMESTAMP_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, validAfter = 0, validUntil = 0, type = "timestamp" }) {
|
|
7
|
+
return {
|
|
8
|
+
getPolicyData: () => {
|
|
9
|
+
return (0, viem_1.encodeAbiParameters)([
|
|
10
|
+
{ name: "validAfter", type: "uint48" },
|
|
11
|
+
{ name: "validUntil", type: "uint48" }
|
|
12
|
+
], [validAfter, validUntil]);
|
|
13
|
+
},
|
|
14
|
+
getPolicyInfoInBytes: () => {
|
|
15
|
+
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
16
|
+
},
|
|
17
|
+
policyParams: {
|
|
18
|
+
type,
|
|
19
|
+
policyAddress,
|
|
20
|
+
policyFlag,
|
|
21
|
+
validAfter,
|
|
22
|
+
validUntil
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.toTimestampPolicy = toTimestampPolicy;
|
|
27
|
+
//# sourceMappingURL=toTimestampPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toTimestampPolicy.js","sourceRoot":"","sources":["../../policies/toTimestampPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAqD;AACrD,kDAAwE;AASxE,SAAgB,iBAAiB,CAAC,EAC9B,aAAa,GAAG,wCAAyB,EACzC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,EACd,IAAI,GAAG,WAAW,EACE;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB;gBACI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,EACD,CAAC,UAAU,EAAE,UAAU,CAAC,CAC3B,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,UAAU;YACV,UAAU;SACb;KACJ,CAAA;AACL,CAAC;AA5BD,8CA4BC"}
|
|
@@ -84,15 +84,7 @@ async function toPermissionValidator(client, { signer, policies, entryPoint: ent
|
|
|
84
84
|
abi: sdk_1.KernelV3AccountAbi,
|
|
85
85
|
address: kernelAccountAddress,
|
|
86
86
|
functionName: "permissionConfig",
|
|
87
|
-
args: [
|
|
88
|
-
(0, viem_1.concat)([
|
|
89
|
-
"0x00",
|
|
90
|
-
(0, viem_1.pad)(getPermissionId(), {
|
|
91
|
-
size: 20,
|
|
92
|
-
dir: "right"
|
|
93
|
-
})
|
|
94
|
-
])
|
|
95
|
-
]
|
|
87
|
+
args: [getPermissionId()]
|
|
96
88
|
});
|
|
97
89
|
return permissionConfig.signer === signer.signerContractAddress;
|
|
98
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":";;;AAAA,sCAAiD;AACjD,mDAIuB;AAEvB,+
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"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"}
|
package/_esm/constants.js
CHANGED
|
@@ -5,6 +5,7 @@ export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
|
5
5
|
export const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
6
6
|
export const SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
7
7
|
export const SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7";
|
|
8
|
+
export const TIMESTAMP_POLICY_CONTRACT = "0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F";
|
|
8
9
|
export var PolicyFlags;
|
|
9
10
|
(function (PolicyFlags) {
|
|
10
11
|
PolicyFlags["FOR_ALL_VALIDATION"] = "0x0000";
|
package/_esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAC9B,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,wBAAwB,GACjC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAC9B,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,wBAAwB,GACjC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAEhD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
|
|
@@ -3,7 +3,7 @@ import { toKernelPluginManager } from "@zerodev/sdk/accounts";
|
|
|
3
3
|
import { getEntryPointVersion } from "permissionless";
|
|
4
4
|
import { decodeFunctionData } from "viem";
|
|
5
5
|
import { privateKeyToAccount } from "viem/accounts";
|
|
6
|
-
import { toCallPolicy, toGasPolicy, toRateLimitPolicy, toSignatureCallerPolicy, toSudoPolicy } from "./policies/index.js";
|
|
6
|
+
import { toCallPolicy, toGasPolicy, toRateLimitPolicy, toSignatureCallerPolicy, toSudoPolicy, toTimestampPolicy } from "./policies/index.js";
|
|
7
7
|
import { toECDSASigner } from "./signers/toECDSASigner.js";
|
|
8
8
|
import { toPermissionValidator } from "./toPermissionValidator.js";
|
|
9
9
|
import {} from "./types.js";
|
|
@@ -56,6 +56,8 @@ export const createPolicyFromParams = async (policy) => {
|
|
|
56
56
|
return await toSignatureCallerPolicy(policy.policyParams);
|
|
57
57
|
case "sudo":
|
|
58
58
|
return await toSudoPolicy(policy.policyParams);
|
|
59
|
+
case "timestamp":
|
|
60
|
+
return await toTimestampPolicy(policy.policyParams);
|
|
59
61
|
default:
|
|
60
62
|
throw new Error("Unsupported policy type");
|
|
61
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,cAAc,CAAA;AACrB,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,
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
|
package/_esm/policies/index.js
CHANGED
|
@@ -5,4 +5,5 @@ export { toCallPolicy } from "./toCallPolicy.js";
|
|
|
5
5
|
export { toPolicyId } from "./utils/toPolicyId.js";
|
|
6
6
|
export { toSudoPolicy } from "./toSudoPolicy.js";
|
|
7
7
|
export { CallType, ParamCondition } from "./types.js";
|
|
8
|
+
export { toTimestampPolicy } from "./toTimestampPolicy.js";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EAE1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EAE1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { concatHex, encodeAbiParameters } from "viem";
|
|
2
|
+
import { PolicyFlags, TIMESTAMP_POLICY_CONTRACT } from "../constants.js";
|
|
3
|
+
export function toTimestampPolicy({ policyAddress = TIMESTAMP_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, validAfter = 0, validUntil = 0, type = "timestamp" }) {
|
|
4
|
+
return {
|
|
5
|
+
getPolicyData: () => {
|
|
6
|
+
return encodeAbiParameters([
|
|
7
|
+
{ name: "validAfter", type: "uint48" },
|
|
8
|
+
{ name: "validUntil", type: "uint48" }
|
|
9
|
+
], [validAfter, validUntil]);
|
|
10
|
+
},
|
|
11
|
+
getPolicyInfoInBytes: () => {
|
|
12
|
+
return concatHex([policyFlag, policyAddress]);
|
|
13
|
+
},
|
|
14
|
+
policyParams: {
|
|
15
|
+
type,
|
|
16
|
+
policyAddress,
|
|
17
|
+
policyFlag,
|
|
18
|
+
validAfter,
|
|
19
|
+
validUntil
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=toTimestampPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toTimestampPolicy.js","sourceRoot":"","sources":["../../policies/toTimestampPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AASxE,MAAM,UAAU,iBAAiB,CAAC,EAC9B,aAAa,GAAG,yBAAyB,EACzC,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,UAAU,GAAG,CAAC,EACd,UAAU,GAAG,CAAC,EACd,IAAI,GAAG,WAAW,EACE;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,mBAAmB,CACtB;gBACI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACtC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;aACzC,EACD,CAAC,UAAU,EAAE,UAAU,CAAC,CAC3B,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,UAAU;YACV,UAAU;SACb;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { KernelV3AccountAbi } from "@zerodev/sdk";
|
|
2
2
|
import { getAction, getEntryPointVersion, getUserOperationHash } from "permissionless";
|
|
3
|
-
import { concat, encodeAbiParameters, keccak256,
|
|
3
|
+
import { concat, encodeAbiParameters, keccak256, slice, zeroAddress } from "viem";
|
|
4
4
|
import { getChainId, readContract } from "viem/actions";
|
|
5
5
|
import { PolicyFlags } from "./constants.js";
|
|
6
6
|
import { toPolicyId } from "./policies/index.js";
|
|
@@ -81,15 +81,7 @@ export async function toPermissionValidator(client, { signer, policies, entryPoi
|
|
|
81
81
|
abi: KernelV3AccountAbi,
|
|
82
82
|
address: kernelAccountAddress,
|
|
83
83
|
functionName: "permissionConfig",
|
|
84
|
-
args: [
|
|
85
|
-
concat([
|
|
86
|
-
"0x00",
|
|
87
|
-
pad(getPermissionId(), {
|
|
88
|
-
size: 20,
|
|
89
|
-
dir: "right"
|
|
90
|
-
})
|
|
91
|
-
])
|
|
92
|
-
]
|
|
84
|
+
args: [getPermissionId()]
|
|
93
85
|
});
|
|
94
86
|
return permissionConfig.signer === signer.signerContractAddress;
|
|
95
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EACH,SAAS,EACT,oBAAoB,EACpB,oBAAoB,EACvB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAMH,MAAM,EACN,mBAAmB,EACnB,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"toPermissionValidator.js","sourceRoot":"","sources":["../toPermissionValidator.ts"],"names":[],"mappings":"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"}
|
package/_types/constants.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326
|
|
|
5
5
|
export declare const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
6
6
|
export declare const SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
7
7
|
export declare const SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7";
|
|
8
|
+
export declare const TIMESTAMP_POLICY_CONTRACT = "0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F";
|
|
8
9
|
export declare enum PolicyFlags {
|
|
9
10
|
FOR_ALL_VALIDATION = "0x0000",
|
|
10
11
|
NOT_FOR_VALIDATE_USEROP = "0x0001",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,wBAAwB,+CACW,CAAA;AAChD,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mBAAmB,+CAA+C,CAAA;AAC/E,eAAO,MAAM,0BAA0B,+CACS,CAAA;AAChD,eAAO,MAAM,yBAAyB,+CACU,CAAA;AAChD,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,wBAAwB,+CACW,CAAA;AAChD,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,mBAAmB,+CAA+C,CAAA;AAC/E,eAAO,MAAM,0BAA0B,+CACS,CAAA;AAChD,eAAO,MAAM,yBAAyB,+CACU,CAAA;AAChD,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,yBAAyB,+CACU,CAAA;AAEhD,oBAAY,WAAW;IACnB,kBAAkB,WAAW;IAC7B,uBAAuB,WAAW;IAClC,oBAAoB,WAAW;CAClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,mBAAmB,EACtB,MAAM,cAAc,CAAA;AAErB,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;
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,mBAAmB,EACtB,MAAM,cAAc,CAAA;AAErB,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;AAa/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,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aAAc,GAAG;;;CA0BrD,CAAA"}
|
|
@@ -5,4 +5,5 @@ export { toCallPolicy, type CallPolicyParams } from "./toCallPolicy.js";
|
|
|
5
5
|
export { toPolicyId } from "./utils/toPolicyId.js";
|
|
6
6
|
export { toSudoPolicy, type SudoPolicyParams } from "./toSudoPolicy.js";
|
|
7
7
|
export { CallType, ParamCondition } from "./types.js";
|
|
8
|
+
export { toTimestampPolicy, type TimestampPolicyParams } from "./toTimestampPolicy.js";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EACvB,KAAK,2BAA2B,EACnC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EACvB,KAAK,2BAA2B,EACnC,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACH,iBAAiB,EACjB,KAAK,qBAAqB,EAC7B,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Policy, PolicyParams } from "../types.js";
|
|
2
|
+
export type TimestampPolicyParams = PolicyParams & {
|
|
3
|
+
validAfter?: number;
|
|
4
|
+
validUntil?: number;
|
|
5
|
+
type?: "timestamp";
|
|
6
|
+
};
|
|
7
|
+
export declare function toTimestampPolicy({ policyAddress, policyFlag, validAfter, validUntil, type }: TimestampPolicyParams): Policy;
|
|
8
|
+
//# sourceMappingURL=toTimestampPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toTimestampPolicy.d.ts","sourceRoot":"","sources":["../../policies/toTimestampPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,aAAyC,EACzC,UAA2C,EAC3C,UAAc,EACd,UAAc,EACd,IAAkB,EACrB,EAAE,qBAAqB,GAAG,MAAM,CAsBhC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,EAMjB,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,CA6GvC"}
|
package/_types/types.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { Action, PluginValidityData } from "@zerodev/sdk/types";
|
|
|
3
3
|
import type { EntryPoint } from "permissionless/types/entrypoint";
|
|
4
4
|
import type { Abi, Address, Hex, LocalAccount } from "viem";
|
|
5
5
|
import { PolicyFlags } from "./constants.js";
|
|
6
|
-
import type { CallPolicyParams, GasPolicyParams, RateLimitPolicyParams, SignatureCallerPolicyParams, SudoPolicyParams } from "./policies/index.js";
|
|
6
|
+
import type { CallPolicyParams, GasPolicyParams, RateLimitPolicyParams, SignatureCallerPolicyParams, SudoPolicyParams, TimestampPolicyParams } from "./policies/index.js";
|
|
7
7
|
export type PermissionPlugin<entryPoint extends EntryPoint> = KernelValidator<entryPoint, "PermissionValidator"> & {
|
|
8
8
|
getPluginSerializationParams: () => PermissionData;
|
|
9
9
|
};
|
|
@@ -23,7 +23,7 @@ export type ModularSigner = {
|
|
|
23
23
|
export type Policy = {
|
|
24
24
|
getPolicyData: () => Hex;
|
|
25
25
|
getPolicyInfoInBytes: () => Hex;
|
|
26
|
-
policyParams: CallPolicyParams<Abi | readonly unknown[], string> | GasPolicyParams | RateLimitPolicyParams | SignatureCallerPolicyParams | SudoPolicyParams;
|
|
26
|
+
policyParams: CallPolicyParams<Abi | readonly unknown[], string> | GasPolicyParams | RateLimitPolicyParams | SignatureCallerPolicyParams | SudoPolicyParams | TimestampPolicyParams;
|
|
27
27
|
};
|
|
28
28
|
export type PermissionPluginParams = {
|
|
29
29
|
signer: ModularSigner;
|
package/_types/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACxB,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,gBAAgB,CAAC,UAAU,SAAS,UAAU,IAAI,eAAe,CACzE,UAAU,EACV,qBAAqB,CACxB,GAAG;IACA,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,gBAAgB,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,EAAE,MAAM,CAAC,GAClD,eAAe,GACf,qBAAqB,GACrB,2BAA2B,GAC3B,gBAAgB,GAChB,qBAAqB,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,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;CACnB,CAAA"}
|
package/constants.ts
CHANGED
|
@@ -9,6 +9,8 @@ export const RATE_LIMIT_POLICY_CONTRACT =
|
|
|
9
9
|
export const SIGNATURE_POLICY_CONTRACT =
|
|
10
10
|
"0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d"
|
|
11
11
|
export const SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7"
|
|
12
|
+
export const TIMESTAMP_POLICY_CONTRACT =
|
|
13
|
+
"0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F"
|
|
12
14
|
|
|
13
15
|
export enum PolicyFlags {
|
|
14
16
|
FOR_ALL_VALIDATION = "0x0000",
|
|
@@ -15,7 +15,8 @@ import {
|
|
|
15
15
|
toGasPolicy,
|
|
16
16
|
toRateLimitPolicy,
|
|
17
17
|
toSignatureCallerPolicy,
|
|
18
|
-
toSudoPolicy
|
|
18
|
+
toSudoPolicy,
|
|
19
|
+
toTimestampPolicy
|
|
19
20
|
} from "./policies/index.js"
|
|
20
21
|
import { toECDSASigner } from "./signers/toECDSASigner.js"
|
|
21
22
|
import { toPermissionValidator } from "./toPermissionValidator.js"
|
|
@@ -93,6 +94,8 @@ export const createPolicyFromParams = async (policy: Policy) => {
|
|
|
93
94
|
return await toSignatureCallerPolicy(policy.policyParams)
|
|
94
95
|
case "sudo":
|
|
95
96
|
return await toSudoPolicy(policy.policyParams)
|
|
97
|
+
case "timestamp":
|
|
98
|
+
return await toTimestampPolicy(policy.policyParams)
|
|
96
99
|
default:
|
|
97
100
|
throw new Error("Unsupported policy type")
|
|
98
101
|
}
|
package/package.json
CHANGED
package/policies/index.ts
CHANGED
|
@@ -11,3 +11,7 @@ export { toCallPolicy, type CallPolicyParams } from "./toCallPolicy.js"
|
|
|
11
11
|
export { toPolicyId } from "./utils/toPolicyId.js"
|
|
12
12
|
export { toSudoPolicy, type SudoPolicyParams } from "./toSudoPolicy.js"
|
|
13
13
|
export { CallType, ParamCondition } from "./types.js"
|
|
14
|
+
export {
|
|
15
|
+
toTimestampPolicy,
|
|
16
|
+
type TimestampPolicyParams
|
|
17
|
+
} from "./toTimestampPolicy.js"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { concatHex, encodeAbiParameters } from "viem"
|
|
2
|
+
import { PolicyFlags, TIMESTAMP_POLICY_CONTRACT } from "../constants.js"
|
|
3
|
+
import type { Policy, PolicyParams } from "../types.js"
|
|
4
|
+
|
|
5
|
+
export type TimestampPolicyParams = PolicyParams & {
|
|
6
|
+
validAfter?: number
|
|
7
|
+
validUntil?: number
|
|
8
|
+
type?: "timestamp"
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function toTimestampPolicy({
|
|
12
|
+
policyAddress = TIMESTAMP_POLICY_CONTRACT,
|
|
13
|
+
policyFlag = PolicyFlags.FOR_ALL_VALIDATION,
|
|
14
|
+
validAfter = 0,
|
|
15
|
+
validUntil = 0,
|
|
16
|
+
type = "timestamp"
|
|
17
|
+
}: TimestampPolicyParams): Policy {
|
|
18
|
+
return {
|
|
19
|
+
getPolicyData: () => {
|
|
20
|
+
return encodeAbiParameters(
|
|
21
|
+
[
|
|
22
|
+
{ name: "validAfter", type: "uint48" },
|
|
23
|
+
{ name: "validUntil", type: "uint48" }
|
|
24
|
+
],
|
|
25
|
+
[validAfter, validUntil]
|
|
26
|
+
)
|
|
27
|
+
},
|
|
28
|
+
getPolicyInfoInBytes: () => {
|
|
29
|
+
return concatHex([policyFlag, policyAddress])
|
|
30
|
+
},
|
|
31
|
+
policyParams: {
|
|
32
|
+
type,
|
|
33
|
+
policyAddress,
|
|
34
|
+
policyFlag,
|
|
35
|
+
validAfter,
|
|
36
|
+
validUntil
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
package/toPermissionValidator.ts
CHANGED
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
concat,
|
|
15
15
|
encodeAbiParameters,
|
|
16
16
|
keccak256,
|
|
17
|
-
pad,
|
|
18
17
|
slice,
|
|
19
18
|
zeroAddress
|
|
20
19
|
} from "viem"
|
|
@@ -141,15 +140,7 @@ export async function toPermissionValidator<
|
|
|
141
140
|
abi: KernelV3AccountAbi,
|
|
142
141
|
address: kernelAccountAddress,
|
|
143
142
|
functionName: "permissionConfig",
|
|
144
|
-
args: [
|
|
145
|
-
concat([
|
|
146
|
-
"0x00",
|
|
147
|
-
pad(getPermissionId(), {
|
|
148
|
-
size: 20,
|
|
149
|
-
dir: "right"
|
|
150
|
-
})
|
|
151
|
-
])
|
|
152
|
-
]
|
|
143
|
+
args: [getPermissionId()]
|
|
153
144
|
})
|
|
154
145
|
return permissionConfig.signer === signer.signerContractAddress
|
|
155
146
|
} catch (error) {
|
package/types.ts
CHANGED
|
@@ -8,7 +8,8 @@ import type {
|
|
|
8
8
|
GasPolicyParams,
|
|
9
9
|
RateLimitPolicyParams,
|
|
10
10
|
SignatureCallerPolicyParams,
|
|
11
|
-
SudoPolicyParams
|
|
11
|
+
SudoPolicyParams,
|
|
12
|
+
TimestampPolicyParams
|
|
12
13
|
} from "./policies/index.js"
|
|
13
14
|
|
|
14
15
|
export type PermissionPlugin<entryPoint extends EntryPoint> = KernelValidator<
|
|
@@ -43,6 +44,7 @@ export type Policy = {
|
|
|
43
44
|
| RateLimitPolicyParams
|
|
44
45
|
| SignatureCallerPolicyParams
|
|
45
46
|
| SudoPolicyParams
|
|
47
|
+
| TimestampPolicyParams
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
export type PermissionPluginParams = {
|