@zerodev/permissions 5.5.2 → 5.5.4
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/policies/toRateLimitPolicy.js +19 -5
- package/_cjs/policies/toRateLimitPolicy.js.map +1 -1
- package/_esm/constants.js +5 -0
- package/_esm/constants.js.map +1 -1
- package/_esm/policies/toRateLimitPolicy.js +20 -6
- package/_esm/policies/toRateLimitPolicy.js.map +1 -1
- package/_types/constants.d.ts +5 -0
- package/_types/constants.d.ts.map +1 -1
- package/_types/deserializePermissionAccount.d.ts +1 -0
- package/_types/deserializePermissionAccount.d.ts.map +1 -1
- package/_types/policies/toRateLimitPolicy.d.ts.map +1 -1
- package/constants.ts +8 -0
- package/package.json +2 -2
- package/policies/toRateLimitPolicy.ts +27 -6
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.TIMESTAMP_POLICY_CONTRACT = exports.SUDO_POLICY_CONTRACT = exports.SIGNATURE_POLICY_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.CALL_POLICY_CONTRACT_V0_0_4 = exports.CALL_POLICY_CONTRACT_V0_0_3 = exports.CALL_POLICY_CONTRACT_V0_0_2 = exports.CALL_POLICY_CONTRACT_V0_0_1 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = 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_WITH_RESET_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.CALL_POLICY_CONTRACT_V0_0_4 = exports.CALL_POLICY_CONTRACT_V0_0_3 = exports.CALL_POLICY_CONTRACT_V0_0_2 = exports.CALL_POLICY_CONTRACT_V0_0_1 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = exports.ECDSA_SIGNER_CONTRACT = void 0;
|
|
4
4
|
exports.ECDSA_SIGNER_CONTRACT = "0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF";
|
|
5
5
|
exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
|
|
6
6
|
exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = "0x58625164e306242c7613223bDeb68fbe11300606";
|
|
@@ -10,6 +10,7 @@ exports.CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE98CE50
|
|
|
10
10
|
exports.CALL_POLICY_CONTRACT_V0_0_4 = "0x9a52283276A0ec8740DF50bF01B28A80D880eaf2";
|
|
11
11
|
exports.GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
12
12
|
exports.RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
13
|
+
exports.RATE_LIMIT_POLICY_WITH_RESET_CONTRACT = "0x6a06358e6b283921deceabe7e8a3741d506cca9b";
|
|
13
14
|
exports.SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
14
15
|
exports.SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7";
|
|
15
16
|
exports.TIMESTAMP_POLICY_CONTRACT = "0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F";
|
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,+BAA+B,GACxC,4CAA4C,CAAA;AAKnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAEnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAOnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAMnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAMnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAEnC,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAKnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAEnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAOnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAMnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAMnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAEnC,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AAMnC,QAAA,qCAAqC,GAC9C,4CAA4C,CAAA;AAEnC,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"}
|
|
@@ -7,11 +7,25 @@ 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 }) {
|
|
8
8
|
return {
|
|
9
9
|
getPolicyData: () => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
if (policyAddress === constants_js_2.RATE_LIMIT_POLICY_CONTRACT) {
|
|
11
|
+
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
12
|
+
const countHex = count.toString(16).padStart(12, "0");
|
|
13
|
+
const startAtHex = startAt.toString(16).padStart(12, "0");
|
|
14
|
+
const data = intervalHex + countHex + startAtHex;
|
|
15
|
+
return `0x${data}`;
|
|
16
|
+
}
|
|
17
|
+
else if (policyAddress === constants_js_2.RATE_LIMIT_POLICY_WITH_RESET_CONTRACT) {
|
|
18
|
+
if (startAt !== 0 && startAt !== undefined) {
|
|
19
|
+
throw new Error("RATE_LIMIT_POLICY_WITH_RESET_CONTRACT does not support startAt");
|
|
20
|
+
}
|
|
21
|
+
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
22
|
+
const countHex = count.toString(16).padStart(12, "0");
|
|
23
|
+
const data = intervalHex + countHex;
|
|
24
|
+
return `0x${data}`;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
throw new Error("Invalid policy address");
|
|
28
|
+
}
|
|
15
29
|
},
|
|
16
30
|
getPolicyInfoInBytes: () => {
|
|
17
31
|
return (0, viem_1.concatHex)([policyFlag, policyAddress]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAA6C;AAC7C,kDAGwB;AASxB,SAAgB,iBAAiB,CAAC,EAC9B,aAAa,GAAG,yCAA0B,EAC1C,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,QAAQ,GAAG,CAAC,EACZ,KAAK,EACL,OAAO,GAAG,CAAC,EACS;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,IAAI,aAAa,KAAK,yCAA0B,EAAE,CAAC;gBAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACrD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAEzD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;gBAEhD,OAAO,KAAK,IAAI,EAAE,CAAA;YACtB,CAAC;iBAAM,IACH,aAAa,KAAK,oDAAqC,EACzD,CAAC;gBACC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CACX,gEAAgE,CACnE,CAAA;gBACL,CAAC;gBACD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAErD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAA;gBAEnC,OAAO,KAAK,IAAI,EAAE,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAC7C,CAAC;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,EAAE,YAAY;YAClB,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACwC;KACtD,CAAA;AACL,CAAC;AA/CD,8CA+CC"}
|
package/_esm/constants.js
CHANGED
|
@@ -25,6 +25,11 @@ export const CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE9
|
|
|
25
25
|
export const CALL_POLICY_CONTRACT_V0_0_4 = "0x9a52283276A0ec8740DF50bF01B28A80D880eaf2";
|
|
26
26
|
export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
27
27
|
export const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
28
|
+
/**
|
|
29
|
+
* @dev RATE_LIMIT_POLICY_WITH_RESET_CONTRACT
|
|
30
|
+
* - use non-standard way to deal with reset
|
|
31
|
+
*/
|
|
32
|
+
export const RATE_LIMIT_POLICY_WITH_RESET_CONTRACT = "0x6a06358e6b283921deceabe7e8a3741d506cca9b";
|
|
28
33
|
export const SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
29
34
|
export const SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7";
|
|
30
35
|
export const TIMESTAMP_POLICY_CONTRACT = "0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F";
|
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,+BAA+B,GACxC,4CAA4C,CAAA;AAChD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GACxC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAChD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,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,+BAA+B,GACxC,4CAA4C,CAAA;AAChD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GACxC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAChD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,4CAA4C,CAAA;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAC9C,4CAA4C,CAAA;AAEhD,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"}
|
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
import { concatHex } from "viem";
|
|
2
2
|
import { PolicyFlags } from "../constants.js";
|
|
3
|
-
import { RATE_LIMIT_POLICY_CONTRACT } from "../constants.js";
|
|
3
|
+
import { RATE_LIMIT_POLICY_CONTRACT, RATE_LIMIT_POLICY_WITH_RESET_CONTRACT } from "../constants.js";
|
|
4
4
|
export function toRateLimitPolicy({ policyAddress = RATE_LIMIT_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, interval = 0, count, startAt = 0 }) {
|
|
5
5
|
return {
|
|
6
6
|
getPolicyData: () => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
if (policyAddress === RATE_LIMIT_POLICY_CONTRACT) {
|
|
8
|
+
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
9
|
+
const countHex = count.toString(16).padStart(12, "0");
|
|
10
|
+
const startAtHex = startAt.toString(16).padStart(12, "0");
|
|
11
|
+
const data = intervalHex + countHex + startAtHex;
|
|
12
|
+
return `0x${data}`;
|
|
13
|
+
}
|
|
14
|
+
else if (policyAddress === RATE_LIMIT_POLICY_WITH_RESET_CONTRACT) {
|
|
15
|
+
if (startAt !== 0 && startAt !== undefined) {
|
|
16
|
+
throw new Error("RATE_LIMIT_POLICY_WITH_RESET_CONTRACT does not support startAt");
|
|
17
|
+
}
|
|
18
|
+
const intervalHex = interval.toString(16).padStart(12, "0");
|
|
19
|
+
const countHex = count.toString(16).padStart(12, "0");
|
|
20
|
+
const data = intervalHex + countHex;
|
|
21
|
+
return `0x${data}`;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
throw new Error("Invalid policy address");
|
|
25
|
+
}
|
|
12
26
|
},
|
|
13
27
|
getPolicyInfoInBytes: () => {
|
|
14
28
|
return concatHex([policyFlag, policyAddress]);
|
|
@@ -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,
|
|
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,EACH,0BAA0B,EAC1B,qCAAqC,EACxC,MAAM,iBAAiB,CAAA;AASxB,MAAM,UAAU,iBAAiB,CAAC,EAC9B,aAAa,GAAG,0BAA0B,EAC1C,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,QAAQ,GAAG,CAAC,EACZ,KAAK,EACL,OAAO,GAAG,CAAC,EACS;IACpB,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,IAAI,aAAa,KAAK,0BAA0B,EAAE,CAAC;gBAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBACrD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAEzD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;gBAEhD,OAAO,KAAK,IAAI,EAAE,CAAA;YACtB,CAAC;iBAAM,IACH,aAAa,KAAK,qCAAqC,EACzD,CAAC;gBACC,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CACX,gEAAgE,CACnE,CAAA;gBACL,CAAC;gBACD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;gBAErD,MAAM,IAAI,GAAG,WAAW,GAAG,QAAQ,CAAA;gBAEnC,OAAO,KAAK,IAAI,EAAE,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAC7C,CAAC;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,EAAE,YAAY;YAClB,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACwC;KACtD,CAAA;AACL,CAAC"}
|
package/_types/constants.d.ts
CHANGED
|
@@ -25,6 +25,11 @@ export declare const CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df142
|
|
|
25
25
|
export declare const CALL_POLICY_CONTRACT_V0_0_4 = "0x9a52283276A0ec8740DF50bF01B28A80D880eaf2";
|
|
26
26
|
export declare const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
27
27
|
export declare const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
28
|
+
/**
|
|
29
|
+
* @dev RATE_LIMIT_POLICY_WITH_RESET_CONTRACT
|
|
30
|
+
* - use non-standard way to deal with reset
|
|
31
|
+
*/
|
|
32
|
+
export declare const RATE_LIMIT_POLICY_WITH_RESET_CONTRACT = "0x6a06358e6b283921deceabe7e8a3741d506cca9b";
|
|
28
33
|
export declare const SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
29
34
|
export declare const SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7";
|
|
30
35
|
export declare const TIMESTAMP_POLICY_CONTRACT = "0xB9f8f524bE6EcD8C945b1b87f9ae5C192FdCE20F";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAChD;;;GAGG;AACH,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAEhD,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAChD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD,eAAO,MAAM,mBAAmB,+CAA+C,CAAA;AAC/E,eAAO,MAAM,0BAA0B,+CACS,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAChD;;;GAGG;AACH,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAEhD,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAChD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD,eAAO,MAAM,mBAAmB,+CAA+C,CAAA;AAC/E,eAAO,MAAM,0BAA0B,+CACS,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,qCAAqC,+CACF,CAAA;AAEhD,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"}
|
|
@@ -253,6 +253,7 @@ export declare const deserializePermissionAccount: <entryPointVersion extends En
|
|
|
253
253
|
kernelVersion: GetKernelVersion<entryPointVersion>;
|
|
254
254
|
kernelPluginManager: import("@zerodev/sdk").KernelPluginManager<entryPointVersion>;
|
|
255
255
|
factoryAddress: `0x${string}`;
|
|
256
|
+
accountImplementationAddress: `0x${string}`;
|
|
256
257
|
generateInitCode: () => Promise<`0x${string}`>;
|
|
257
258
|
encodeModuleInstallCallData: () => Promise<`0x${string}`>;
|
|
258
259
|
encodeDeployCallData: ({ abi, args, bytecode }: import("viem").EncodeDeployDataParameters) => Promise<`0x${string}`>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACR,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAEvC,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;AAG/C,eAAO,MAAM,4BAA4B,wDAG7B,MAAM,qIAGkB,MAAM,kBACtB,aAAa
|
|
1
|
+
{"version":3,"file":"deserializePermissionAccount.d.ts","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACR,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAEvC,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;AAG/C,eAAO,MAAM,4BAA4B,wDAG7B,MAAM,qIAGkB,MAAM,kBACtB,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aACvB,GAAG,iBACE,mBAAmB;;;;CAmFrC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toRateLimitPolicy.d.ts","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toRateLimitPolicy.d.ts","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":"AAMA,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;CACnB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,aAA0C,EAC1C,UAA2C,EAC3C,QAAY,EACZ,KAAK,EACL,OAAW,EACd,EAAE,qBAAqB,GAAG,MAAM,CAyChC"}
|
package/constants.ts
CHANGED
|
@@ -37,6 +37,14 @@ export const CALL_POLICY_CONTRACT_V0_0_4 =
|
|
|
37
37
|
export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23"
|
|
38
38
|
export const RATE_LIMIT_POLICY_CONTRACT =
|
|
39
39
|
"0xf63d4139B25c836334edD76641356c6b74C86873"
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @dev RATE_LIMIT_POLICY_WITH_RESET_CONTRACT
|
|
43
|
+
* - use non-standard way to deal with reset
|
|
44
|
+
*/
|
|
45
|
+
export const RATE_LIMIT_POLICY_WITH_RESET_CONTRACT =
|
|
46
|
+
"0x6a06358e6b283921deceabe7e8a3741d506cca9b"
|
|
47
|
+
|
|
40
48
|
export const SIGNATURE_POLICY_CONTRACT =
|
|
41
49
|
"0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d"
|
|
42
50
|
export const SUDO_POLICY_CONTRACT = "0x67b436caD8a6D025DF6C82C5BB43fbF11fC5B9B7"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zerodev/permissions",
|
|
3
|
-
"version": "5.5.
|
|
3
|
+
"version": "5.5.4",
|
|
4
4
|
"author": "ZeroDev",
|
|
5
5
|
"main": "./_cjs/index.js",
|
|
6
6
|
"module": "./_esm/index.js",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@simplewebauthn/browser": "^9.0.1"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"viem": "^2.
|
|
58
|
+
"viem": "^2.23.15",
|
|
59
59
|
"@zerodev/sdk": "^5.4.0",
|
|
60
60
|
"@zerodev/webauthn-key": "^5.4.0"
|
|
61
61
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { concatHex } from "viem"
|
|
2
2
|
import { PolicyFlags } from "../constants.js"
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
RATE_LIMIT_POLICY_CONTRACT,
|
|
5
|
+
RATE_LIMIT_POLICY_WITH_RESET_CONTRACT
|
|
6
|
+
} from "../constants.js"
|
|
4
7
|
import type { Policy, PolicyParams } from "../types.js"
|
|
5
8
|
|
|
6
9
|
export type RateLimitPolicyParams = PolicyParams & {
|
|
@@ -18,13 +21,31 @@ export function toRateLimitPolicy({
|
|
|
18
21
|
}: RateLimitPolicyParams): Policy {
|
|
19
22
|
return {
|
|
20
23
|
getPolicyData: () => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
if (policyAddress === RATE_LIMIT_POLICY_CONTRACT) {
|
|
25
|
+
const intervalHex = interval.toString(16).padStart(12, "0")
|
|
26
|
+
const countHex = count.toString(16).padStart(12, "0")
|
|
27
|
+
const startAtHex = startAt.toString(16).padStart(12, "0")
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
const data = intervalHex + countHex + startAtHex
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
return `0x${data}`
|
|
32
|
+
} else if (
|
|
33
|
+
policyAddress === RATE_LIMIT_POLICY_WITH_RESET_CONTRACT
|
|
34
|
+
) {
|
|
35
|
+
if (startAt !== 0 && startAt !== undefined) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
"RATE_LIMIT_POLICY_WITH_RESET_CONTRACT does not support startAt"
|
|
38
|
+
)
|
|
39
|
+
}
|
|
40
|
+
const intervalHex = interval.toString(16).padStart(12, "0")
|
|
41
|
+
const countHex = count.toString(16).padStart(12, "0")
|
|
42
|
+
|
|
43
|
+
const data = intervalHex + countHex
|
|
44
|
+
|
|
45
|
+
return `0x${data}`
|
|
46
|
+
} else {
|
|
47
|
+
throw new Error("Invalid policy address")
|
|
48
|
+
}
|
|
28
49
|
},
|
|
29
50
|
getPolicyInfoInBytes: () => {
|
|
30
51
|
return concatHex([policyFlag, policyAddress])
|