@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 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";
@@ -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;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"}
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
- const intervalHex = interval.toString(16).padStart(12, "0");
11
- const countHex = count.toString(16).padStart(12, "0");
12
- const startAtHex = startAt.toString(16).padStart(12, "0");
13
- const data = intervalHex + countHex + startAtHex;
14
- return `0x${data}`;
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,kDAA4D;AAS5D,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,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,EAAE,YAAY;YAClB,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACwC;KACtD,CAAA;AACL,CAAC;AA7BD,8CA6BC"}
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";
@@ -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;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"}
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
- const intervalHex = interval.toString(16).padStart(12, "0");
8
- const countHex = count.toString(16).padStart(12, "0");
9
- const startAtHex = startAt.toString(16).padStart(12, "0");
10
- const data = intervalHex + countHex + startAtHex;
11
- return `0x${data}`;
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,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAS5D,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,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,EAAE,YAAY;YAClB,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACwC;KACtD,CAAA;AACL,CAAC"}
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"}
@@ -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;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
+ {"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDhC,CAAA;AAED,eAAO,MAAM,sBAAsB,WAAkB,MAAM,oBAiB1D,CAAA;AAED,eAAO,MAAM,wBAAwB,aACvB,GAAG,iBACE,mBAAmB;;;;CAmFrC,CAAA"}
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":"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;CACnB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,EAC9B,aAA0C,EAC1C,UAA2C,EAC3C,QAAY,EACZ,KAAK,EACL,OAAW,EACd,EAAE,qBAAqB,GAAG,MAAM,CAuBhC"}
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.2",
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.21.40",
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 { RATE_LIMIT_POLICY_CONTRACT } from "../constants.js"
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
- const intervalHex = interval.toString(16).padStart(12, "0")
22
- const countHex = count.toString(16).padStart(12, "0")
23
- const startAtHex = startAt.toString(16).padStart(12, "0")
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
- const data = intervalHex + countHex + startAtHex
29
+ const data = intervalHex + countHex + startAtHex
26
30
 
27
- return `0x${data}`
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])