@zerodev/permissions 5.6.1 → 5.6.3

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.
Files changed (66) hide show
  1. package/_cjs/constants.js +2 -1
  2. package/_cjs/constants.js.map +1 -1
  3. package/_cjs/index.js +5 -1
  4. package/_cjs/index.js.map +1 -1
  5. package/_cjs/migration/isPermissionMigrated.js +22 -0
  6. package/_cjs/migration/isPermissionMigrated.js.map +1 -0
  7. package/_cjs/migration/migrationSessionKeyAccount.js +91 -0
  8. package/_cjs/migration/migrationSessionKeyAccount.js.map +1 -0
  9. package/_cjs/policies/callPolicyUtils.js +27 -0
  10. package/_cjs/policies/callPolicyUtils.js.map +1 -1
  11. package/_cjs/policies/toCallPolicy.js +18 -16
  12. package/_cjs/policies/toCallPolicy.js.map +1 -1
  13. package/_cjs/policies/types.js +1 -0
  14. package/_cjs/policies/types.js.map +1 -1
  15. package/_cjs/serializeMultiChainPermissionAccounts.js +31 -13
  16. package/_cjs/serializeMultiChainPermissionAccounts.js.map +1 -1
  17. package/_cjs/serializePermissionAccount.js +5 -4
  18. package/_cjs/serializePermissionAccount.js.map +1 -1
  19. package/_esm/constants.js +5 -0
  20. package/_esm/constants.js.map +1 -1
  21. package/_esm/index.js +2 -0
  22. package/_esm/index.js.map +1 -1
  23. package/_esm/migration/isPermissionMigrated.js +18 -0
  24. package/_esm/migration/isPermissionMigrated.js.map +1 -0
  25. package/_esm/migration/migrationSessionKeyAccount.js +87 -0
  26. package/_esm/migration/migrationSessionKeyAccount.js.map +1 -0
  27. package/_esm/policies/callPolicyUtils.js +29 -1
  28. package/_esm/policies/callPolicyUtils.js.map +1 -1
  29. package/_esm/policies/toCallPolicy.js +21 -19
  30. package/_esm/policies/toCallPolicy.js.map +1 -1
  31. package/_esm/policies/types.js +1 -0
  32. package/_esm/policies/types.js.map +1 -1
  33. package/_esm/serializeMultiChainPermissionAccounts.js +33 -14
  34. package/_esm/serializeMultiChainPermissionAccounts.js.map +1 -1
  35. package/_esm/serializePermissionAccount.js +6 -4
  36. package/_esm/serializePermissionAccount.js.map +1 -1
  37. package/_types/constants.d.ts +5 -0
  38. package/_types/constants.d.ts.map +1 -1
  39. package/_types/index.d.ts +2 -0
  40. package/_types/index.d.ts.map +1 -1
  41. package/_types/migration/isPermissionMigrated.d.ts +6 -0
  42. package/_types/migration/isPermissionMigrated.d.ts.map +1 -0
  43. package/_types/migration/migrationSessionKeyAccount.d.ts +7 -0
  44. package/_types/migration/migrationSessionKeyAccount.d.ts.map +1 -0
  45. package/_types/policies/callPolicyUtils.d.ts.map +1 -1
  46. package/_types/policies/toCallPolicy.d.ts +7 -6
  47. package/_types/policies/toCallPolicy.d.ts.map +1 -1
  48. package/_types/policies/types.d.ts +21 -2
  49. package/_types/policies/types.d.ts.map +1 -1
  50. package/_types/serializeMultiChainPermissionAccounts.d.ts +3 -0
  51. package/_types/serializeMultiChainPermissionAccounts.d.ts.map +1 -1
  52. package/_types/serializePermissionAccount.d.ts +1 -1
  53. package/_types/serializePermissionAccount.d.ts.map +1 -1
  54. package/_types/types.d.ts +2 -2
  55. package/_types/types.d.ts.map +1 -1
  56. package/constants.ts +7 -0
  57. package/index.ts +2 -0
  58. package/migration/isPermissionMigrated.ts +40 -0
  59. package/migration/migrationSessionKeyAccount.ts +120 -0
  60. package/package.json +1 -1
  61. package/policies/callPolicyUtils.ts +39 -0
  62. package/policies/toCallPolicy.ts +22 -17
  63. package/policies/types.ts +51 -2
  64. package/serializeMultiChainPermissionAccounts.ts +42 -21
  65. package/serializePermissionAccount.ts +9 -4
  66. package/types.ts +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrationSessionKeyAccount.js","sourceRoot":"","sources":["../../migration/migrationSessionKeyAccount.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { encodeAbiParameters, isHex, pad, toFunctionSelector, toHex } from "viem";
1
+ import { encodeAbiParameters, isHex, keccak256, pad, size, toFunctionSelector, toHex } from "viem";
2
2
  import { CALL_POLICY_CONTRACT_V0_0_1 } from "../constants.js";
3
3
  import { ParamCondition } from "./types.js";
4
4
  export function getPermissionFromABI({ abi, args, functionName, policyAddress, selector }) {
@@ -79,6 +79,34 @@ export function getPermissionFromABI({ abi, args, functionName, policyAddress, s
79
79
  ? value
80
80
  : toHex(value), { size: 32 }));
81
81
  }
82
+ else if (arg.condition === ParamCondition.SLICE_EQUAL) {
83
+ if (!("start" in arg) || !("length" in arg)) {
84
+ throw new Error("start and length are required for SLICE_EQUAL condition");
85
+ }
86
+ const functionArgsType = targetFunction.inputs[i].type;
87
+ const { start, length, value } = arg;
88
+ let hexValue;
89
+ // functionArgsType can be "string" or "bytes"
90
+ if (functionArgsType === "string") {
91
+ hexValue = toHex(value);
92
+ }
93
+ else if (functionArgsType === "bytes") {
94
+ hexValue = isHex(value, { strict: true })
95
+ ? value
96
+ : toHex(value);
97
+ }
98
+ else {
99
+ throw new Error(`Unsupported function argument type: ${functionArgsType} could be "string" or "bytes"`);
100
+ }
101
+ if (size(hexValue) !== length) {
102
+ throw new Error("Value length is not equal to the given length");
103
+ }
104
+ params = [
105
+ toHex(start, { size: 32 }),
106
+ toHex(length, { size: 32 }),
107
+ keccak256(hexValue)
108
+ ];
109
+ }
82
110
  else {
83
111
  params = [
84
112
  pad(isHex(arg.value)
@@ -1 +1 @@
1
- {"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,mBAAmB,EACnB,KAAK,EACL,SAAS,EACT,GAAG,EACH,IAAI,EACJ,kBAAkB,EAClB,KAAK,EACR,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAGH,cAAc,EAGjB,MAAM,YAAY,CAAA;AAEnB,MAAM,UAAU,oBAAoB,CAGlC,EACE,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACyD;IAIjE,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO;YACH,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACnB,CAAA;IACL,CAAC;IAED,+BAA+B;IAC/B,MAAM,iBAAiB,GAAI,GAAW,CAAC,MAAM,CACzC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,CAClD,CAAA;IAElB,IAAI,cAA2B,CAAA;IAE/B,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACX,4EAA4E;YAC5E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAA;YAEjD,+DAA+D;YAC/D,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBAChD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAA;gBAC/C,OAAO,gBAAgB,KAAK,kBAAkB,CAAA;YAClD,CAAC,CAAC,CAAA;YAEF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACX,oCAAoC,QAAQ,mBAAmB,YAAY,IAAI,CAClF,CAAA;YACL,CAAC;YAED,cAAc,GAAG,aAAa,CAAA;QAClC,CAAC;aAAM,CAAC;YACJ,gDAAgD;YAChD,MAAM,kBAAkB,GAAG,iBAAiB;iBACvC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;gBACf,MAAM,MAAM,GACR,EAAE,CAAC,MAAM;oBACL,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACZ,KAAK,CAAC,IAAI;oBACN,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE;oBAC/B,CAAC,CAAC,KAAK,CAAC,IAAI,CACnB;qBACA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;gBACzB,OAAO,KAAK,KAAK,GAAG,CAAC,KAAK,YAAY,IAAI,MAAM,GAAG,CAAA;YACvD,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAA;YAEf,MAAM,IAAI,KAAK,CACX,0CAA0C,YAAY,YAAY,iBAAiB,CAAC,MAAM;;;kBAGxF,kBAAkB;;iLAE6I,CACpK,CAAA;QACL,CAAC;IACL,CAAC;SAAM,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxC,yCAAyC;QACzC,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;SAAM,CAAC;QACJ,yCAAyC;QACzC,MAAM,IAAI,KAAK,CAAC,aAAa,YAAY,oBAAoB,CAAC,CAAA;IAClE,CAAC;IAED,+CAA+C;IAC/C,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAA;IAC3D,IAAI,UAAU,GAAgB,EAAE,CAAA;IAEhC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,UAAU,GAAI,IAA4C;aACrD,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACZ,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAA;YACrB,IAAI,aAAa,KAAK,2BAA2B,EAAE,CAAC;gBAChD,IAAI,GAAG,CAAC,SAAS,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;oBAC1C,MAAM,KAAK,CACP,6IAA6I,CAChJ,CAAA;gBACL,CAAC;gBACD,OAAO;oBACH,MAAM,EAAE,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;wBACZ,CAAC,CAAC,GAAG,CAAC,KAAK;wBACX,CAAC,CAAC,KAAK,CACD,GAAG,CAAC,KAAoC,CAC3C,EACP,EAAE,IAAI,EAAE,EAAE,EAAE,CACf;oBACD,MAAM,EAAE,CAAC,GAAG,EAAE;oBACd,SAAS,EAAE,GAAG,CAAC,SAAS;iBAC3B,CAAA;YACL,CAAC;YACD,IAAI,MAAa,CAAA;YACjB,IAAI,GAAG,CAAC,SAAS,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,GAAG,CACC,KAAK,CAAC,KAAK,CAAC;oBACR,CAAC,CAAC,KAAK;oBACP,CAAC,CAAC,KAAK,CAAC,KAAoC,CAAC,EACjD,EAAE,IAAI,EAAE,EAAE,EAAE,CACf,CACJ,CAAA;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,SAAS,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;oBAC1C,MAAM,IAAI,KAAK,CACX,yDAAyD,CAC5D,CAAA;gBACL,CAAC;gBACD,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACtD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;gBAEpC,IAAI,QAAa,CAAA;gBAEjB,8CAA8C;gBAC9C,IAAI,gBAAgB,KAAK,QAAQ,EAAE,CAAC;oBAChC,QAAQ,GAAG,KAAK,CAAC,KAAoC,CAAC,CAAA;gBAC1D,CAAC;qBAAM,IAAI,gBAAgB,KAAK,OAAO,EAAE,CAAC;oBACtC,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;wBACrC,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,KAAK,CAAC,KAAoC,CAAC,CAAA;gBACrD,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CACX,uCAAuC,gBAAgB,+BAA+B,CACzF,CAAA;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CACX,+CAA+C,CAClD,CAAA;gBACL,CAAC;gBAED,MAAM,GAAG;oBACL,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC1B,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;oBAC3B,SAAS,CAAC,QAAQ,CAAC;iBACtB,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG;oBACL,GAAG,CACC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;wBACZ,CAAC,CAAC,GAAG,CAAC,KAAK;wBACX,CAAC,CAAC,KAAK,CACD,GAAG,CAAC,KAAoC,CAC3C,EACP,EAAE,IAAI,EAAE,EAAE,EAAE,CACf;iBACJ,CAAA;YACL,CAAC;YAED,OAAO;gBACH,MAAM;gBACN,MAAM,EAAE,CAAC,GAAG,EAAE;gBACd,SAAS,EAAE,GAAG,CAAC,SAAS;aAC3B,CAAA;QACL,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAgB,CAAA;IAC9C,CAAC;IACD,OAAO;QACH,QAAQ,EAAE,gBAAgB;QAC1B,KAAK,EAAE,UAAU;KACpB,CAAA;AACL,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,UAA6C,EAC7C,aAAsB,EACnB,EAAE;IACL,MAAM,eAAe,GAAG;QACpB,UAAU,EAAE;YACR;gBACI,YAAY,EAAE,eAAe;gBAC7B,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACjB;YACD;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;aACjB;YACD;gBACI,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,qBAAqB;wBACnC,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,OAAO;qBAChB;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EACA,aAAa,KAAK,2BAA2B;4BACzC,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,WAAW;qBACxB;iBACJ;gBACD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;KAClB,CAAA;IACD,MAAM,MAAM,GAAG,CAAC,eAAe,CAAC,CAAA;IAChC,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,CAAA;IAE3B,OAAO,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,CAAC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { concatHex, pad } from "viem";
2
- import { CALL_POLICY_CONTRACT_V0_0_1, CALL_POLICY_CONTRACT_V0_0_2, CALL_POLICY_CONTRACT_V0_0_3, CALL_POLICY_CONTRACT_V0_0_4, PolicyFlags } from "../constants.js";
2
+ import { CALL_POLICY_CONTRACT_V0_0_1, CALL_POLICY_CONTRACT_V0_0_2, CALL_POLICY_CONTRACT_V0_0_3, CALL_POLICY_CONTRACT_V0_0_4, CALL_POLICY_CONTRACT_V0_0_5, PolicyFlags } from "../constants.js";
3
3
  import { encodePermissionData, getPermissionFromABI } from "./callPolicyUtils.js";
4
4
  import { CallType } from "./types.js";
5
5
  export var CallPolicyVersion;
@@ -8,6 +8,7 @@ export var CallPolicyVersion;
8
8
  CallPolicyVersion["V0_0_2"] = "0.0.2";
9
9
  CallPolicyVersion["V0_0_3"] = "0.0.3";
10
10
  CallPolicyVersion["V0_0_4"] = "0.0.4";
11
+ CallPolicyVersion["V0_0_5"] = "0.0.5";
11
12
  })(CallPolicyVersion || (CallPolicyVersion = {}));
12
13
  export const getCallPolicyAddress = (policyVersion, policyAddress) => {
13
14
  if (policyAddress)
@@ -21,11 +22,13 @@ export const getCallPolicyAddress = (policyVersion, policyAddress) => {
21
22
  return CALL_POLICY_CONTRACT_V0_0_3;
22
23
  case CallPolicyVersion.V0_0_4:
23
24
  return CALL_POLICY_CONTRACT_V0_0_4;
25
+ case CallPolicyVersion.V0_0_5:
26
+ return CALL_POLICY_CONTRACT_V0_0_5;
24
27
  }
25
28
  };
26
- export function toCallPolicy({ policyAddress, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, policyVersion, permissions = [] }) {
29
+ export function toCallPolicy({ policyAddress, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, policyVersion, permissions: inputPermissions }) {
27
30
  const callPolicyAddress = getCallPolicyAddress(policyVersion, policyAddress);
28
- const generatedPermissionParams = permissions?.map((perm) => {
31
+ const generatedPermissionParams = inputPermissions?.map((perm) => {
29
32
  // Natural discrimination: if abi and functionName are present, do ABI-based validation
30
33
  if (perm.abi && perm.functionName) {
31
34
  return getPermissionFromABI({
@@ -42,21 +45,20 @@ export function toCallPolicy({ policyAddress, policyFlag = PolicyFlags.FOR_ALL_V
42
45
  rules: undefined
43
46
  };
44
47
  });
45
- permissions =
46
- permissions?.map((perm, index) => ({
47
- ...perm,
48
- callType: perm.callType ?? CallType.CALL,
49
- selector:
50
- // Normalize selector to lowercase if it exists (hex values should be lowercase)
51
- (perm.selector
52
- ? perm.selector.toLowerCase()
53
- : perm.selector) ??
54
- generatedPermissionParams?.[index]?.selector ??
55
- pad("0x", { size: 4 }),
56
- valueLimit: perm.valueLimit ?? 0n,
57
- rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
58
- })) ?? [];
59
- const encodedPermissionData = encodePermissionData(permissions, callPolicyAddress);
48
+ const processedPermissions = inputPermissions?.map((perm, index) => ({
49
+ ...perm,
50
+ callType: perm.callType ?? CallType.CALL,
51
+ selector:
52
+ // Normalize selector to lowercase if it exists (hex values should be lowercase)
53
+ (perm.selector
54
+ ? perm.selector.toLowerCase()
55
+ : perm.selector) ??
56
+ generatedPermissionParams?.[index]?.selector ??
57
+ pad("0x", { size: 4 }),
58
+ valueLimit: perm.valueLimit ?? 0n,
59
+ rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
60
+ })) ?? [];
61
+ const encodedPermissionData = encodePermissionData(processedPermissions, callPolicyAddress);
60
62
  return {
61
63
  getPolicyData: () => {
62
64
  return encodedPermissionData;
@@ -69,7 +71,7 @@ export function toCallPolicy({ policyAddress, policyFlag = PolicyFlags.FOR_ALL_V
69
71
  policyVersion,
70
72
  policyAddress,
71
73
  policyFlag,
72
- permissions
74
+ permissions: processedPermissions
73
75
  }
74
76
  };
75
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,6 @@ export var ParamCondition;
13
13
  ParamCondition[ParamCondition["LESS_THAN_OR_EQUAL"] = 4] = "LESS_THAN_OR_EQUAL";
14
14
  ParamCondition[ParamCondition["NOT_EQUAL"] = 5] = "NOT_EQUAL";
15
15
  ParamCondition[ParamCondition["ONE_OF"] = 6] = "ONE_OF";
16
+ ParamCondition[ParamCondition["SLICE_EQUAL"] = 7] = "SLICE_EQUAL";
16
17
  })(ParamCondition || (ParamCondition = {}));
17
18
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,kCAAsB,CAAA;AAC1B,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,cAQX;AARD,WAAY,cAAc;IACtB,qDAAS,CAAA;IACT,mEAAgB,CAAA;IAChB,6DAAa,CAAA;IACb,qFAAyB,CAAA;IACzB,+EAAsB,CAAA;IACtB,6DAAa,CAAA;IACb,uDAAU,CAAA;AACd,CAAC,EARW,cAAc,KAAd,cAAc,QAQzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,kCAAsB,CAAA;AAC1B,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,CAAN,IAAY,cASX;AATD,WAAY,cAAc;IACtB,qDAAS,CAAA;IACT,mEAAgB,CAAA;IAChB,6DAAa,CAAA;IACb,qFAAyB,CAAA;IACzB,+EAAsB,CAAA;IACtB,6DAAa,CAAA;IACb,uDAAU,CAAA;IACV,iEAAe,CAAA;AACnB,CAAC,EATW,cAAc,KAAd,cAAc,QASzB"}
@@ -4,29 +4,45 @@ import { isPermissionValidatorPlugin, serializePermissionAccountParams } from ".
4
4
  export const serializeMultiChainPermissionAccounts = async (params) => {
5
5
  if (params.length === 0)
6
6
  return [];
7
+ let isPreInstalled = false;
7
8
  const permissionParamsPerAccounts = params.map((param) => {
8
- if (!isPermissionValidatorPlugin(param.account.kernelPluginManager)) {
9
+ if (isPermissionValidatorPlugin(param.account.kernelPluginManager) &&
10
+ !param.isExternalPermissionPlugin) {
11
+ return param.account.kernelPluginManager.getPluginSerializationParams();
12
+ }
13
+ else if (param.permissionPlugin) {
14
+ isPreInstalled = !param.isExternalPermissionPlugin;
15
+ return param.permissionPlugin.getPluginSerializationParams();
16
+ }
17
+ else {
9
18
  throw new Error("Account plugin is not a permission validator");
10
19
  }
11
- return param.account.kernelPluginManager.getPluginSerializationParams();
12
20
  });
13
21
  const actions = params.map((param) => param.account.kernelPluginManager.getAction());
14
22
  const validityDataPerAccounts = params.map((param) => param.account.kernelPluginManager.getValidityData());
15
- const pluginEnableTypedDatas = await Promise.all(params.map(async (param) => {
16
- return param.account.kernelPluginManager.getPluginsEnableTypedData(param.account.address);
17
- }));
18
- // build merkle tree for enable signatures
19
- const leaves = pluginEnableTypedDatas.map((typedData) => {
20
- return hashTypedData(typedData);
21
- });
22
- const merkleTree = new MerkleTree(leaves, keccak256, {
23
- sortPairs: true
24
- });
23
+ let leaves = [];
24
+ let merkleTree = new MerkleTree(leaves);
25
+ if (!isPreInstalled) {
26
+ const pluginEnableTypedDatas = await Promise.all(params.map(async (param) => {
27
+ return param.account.kernelPluginManager.getPluginsEnableTypedData(param.account.address, param.isExternalPermissionPlugin
28
+ ? param.permissionPlugin
29
+ : undefined // override permission plugin if externalPlugin
30
+ );
31
+ }));
32
+ // build merkle tree for enable signatures
33
+ leaves = pluginEnableTypedDatas.map((typedData) => {
34
+ return hashTypedData(typedData);
35
+ });
36
+ merkleTree = new MerkleTree(leaves, keccak256, {
37
+ sortPairs: true
38
+ });
39
+ }
25
40
  const merkleRoot = merkleTree.getHexRoot();
26
41
  const toEthSignedMessageHash = hashMessage({ raw: merkleRoot });
27
42
  let signature = "0x";
28
43
  if (params[0].account.kernelPluginManager.sudoValidator?.source ===
29
- "MultiChainECDSAValidator") {
44
+ "MultiChainECDSAValidator" &&
45
+ !isPreInstalled) {
30
46
  signature =
31
47
  await params[0].account.kernelPluginManager.sudoValidator?.signMessage({
32
48
  message: {
@@ -35,7 +51,8 @@ export const serializeMultiChainPermissionAccounts = async (params) => {
35
51
  });
36
52
  }
37
53
  if (params[0].account.kernelPluginManager.sudoValidator?.source ===
38
- "MultiChainWebAuthnValidator") {
54
+ "MultiChainWebAuthnValidator" &&
55
+ !isPreInstalled) {
39
56
  const encodedSignature = await params[0].account.kernelPluginManager.sudoValidator?.signMessage({
40
57
  message: {
41
58
  raw: toEthSignedMessageHash
@@ -45,6 +62,8 @@ export const serializeMultiChainPermissionAccounts = async (params) => {
45
62
  }
46
63
  // get enable signatures for multi-chain validator
47
64
  const enableSignatures = await Promise.all(params.map(async (param, index) => {
65
+ if (isPreInstalled)
66
+ return undefined;
48
67
  if (!param.account.kernelPluginManager.sudoValidator) {
49
68
  throw new Error("No sudo validator found, check if sudo validator is multi-chain validator");
50
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serializeMultiChainPermissionAccounts.js","sourceRoot":"","sources":["../serializeMultiChainPermissionAccounts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializeMultiChainPermissionAccounts.js","sourceRoot":"","sources":["../serializeMultiChainPermissionAccounts.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,19 @@
1
1
  import { isPermissionValidatorPlugin, serializePermissionAccountParams } from "./utils.js";
2
- export const serializePermissionAccount = async (account, privateKey, enableSignature, eip7702Auth, permissionPlugin) => {
2
+ export const serializePermissionAccount = async (account, privateKey, enableSignature, eip7702Auth, permissionPlugin, isExternalPermissionPlugin) => {
3
3
  let permissionParams;
4
4
  let isPreInstalled = false;
5
5
  const action = account.kernelPluginManager.getAction();
6
6
  const validityData = account.kernelPluginManager.getValidityData();
7
7
  // Check if permission plugin is in kernelPluginManager
8
- if (isPermissionValidatorPlugin(account.kernelPluginManager)) {
8
+ if (isPermissionValidatorPlugin(account.kernelPluginManager) &&
9
+ !isExternalPermissionPlugin) {
9
10
  permissionParams =
10
11
  account.kernelPluginManager.getPluginSerializationParams();
11
12
  }
12
13
  else if (permissionPlugin) {
13
14
  // Permission plugin provided externally (initConfig case)
14
15
  permissionParams = permissionPlugin.getPluginSerializationParams();
15
- isPreInstalled = true;
16
+ isPreInstalled = !isExternalPermissionPlugin;
16
17
  }
17
18
  else {
18
19
  throw new Error("No permission validator found in account or provided");
@@ -20,7 +21,8 @@ export const serializePermissionAccount = async (account, privateKey, enableSign
20
21
  const _enableSignature = isPreInstalled
21
22
  ? undefined
22
23
  : (enableSignature ??
23
- (await account.kernelPluginManager.getPluginEnableSignature(account.address)));
24
+ (await account.kernelPluginManager.getPluginEnableSignature(account.address, isExternalPermissionPlugin ? permissionPlugin : undefined // override permission plugin if externalPlugin
25
+ )));
24
26
  const _eip7702Auth = account.authorization
25
27
  ? (eip7702Auth ?? (await account?.eip7702Authorization?.()))
26
28
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,2BAA2B,EAC3B,gCAAgC,EACnC,MAAM,YAAY,CAAA;AAEnB,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC3C,OAAuD,EACvD,UAAgB,EAChB,eAAqB,EACrB,WAAyC,EACzC,gBAAmC,EACpB,EAAE;IACjB,IAAI,gBAAgC,CAAA;IACpC,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;IAElE,uDAAuD;IACvD,IAAI,2BAA2B,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC3D,gBAAgB;YACZ,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAClE,CAAC;SAAM,IAAI,gBAAgB,EAAE,CAAC;QAC1B,0DAA0D;QAC1D,gBAAgB,GAAG,gBAAgB,CAAC,4BAA4B,EAAE,CAAA;QAClE,cAAc,GAAG,IAAI,CAAA;IACzB,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,gBAAgB,GAAG,cAAc;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,eAAe;YAChB,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CACvD,OAAO,CAAC,OAAO,CAClB,CAAC,CAAC,CAAA;IACT,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa;QACtC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,OAAO;KAClC,CAAA;IAED,MAAM,oBAAoB,GAAG;QACzB,gBAAgB;QAChB,MAAM;QACN,YAAY;QACZ,aAAa;QACb,eAAe,EAAE,gBAAgB;QACjC,UAAU;QACV,WAAW,EAAE,YAAY;QACzB,cAAc;KACjB,CAAA;IAED,OAAO,gCAAgC,CAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA"}
1
+ {"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,2BAA2B,EAC3B,gCAAgC,EACnC,MAAM,YAAY,CAAA;AAEnB,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAC3C,OAAuD,EACvD,UAAgB,EAChB,eAAqB,EACrB,WAAyC,EACzC,gBAAmC,EACnC,0BAAoC,EACrB,EAAE;IACjB,IAAI,gBAAgC,CAAA;IACpC,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;IAElE,uDAAuD;IACvD,IACI,2BAA2B,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACxD,CAAC,0BAA0B,EAC7B,CAAC;QACC,gBAAgB;YACZ,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAClE,CAAC;SAAM,IAAI,gBAAgB,EAAE,CAAC;QAC1B,0DAA0D;QAC1D,gBAAgB,GAAG,gBAAgB,CAAC,4BAA4B,EAAE,CAAA;QAClE,cAAc,GAAG,CAAC,0BAA0B,CAAA;IAChD,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,gBAAgB,GAAG,cAAc;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,eAAe;YAChB,CAAC,MAAM,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CACvD,OAAO,CAAC,OAAO,EACf,0BAA0B,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,+CAA+C;aAC5G,CAAC,CAAC,CAAA;IACT,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa;QACtC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,OAAO,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,aAAa,GAAG;QAClB,QAAQ,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,OAAO;KAClC,CAAA;IAED,MAAM,oBAAoB,GAAG;QACzB,gBAAgB;QAChB,MAAM;QACN,YAAY;QACZ,aAAa;QACb,eAAe,EAAE,gBAAgB;QACjC,UAAU;QACV,WAAW,EAAE,YAAY;QACzB,cAAc;KACjB,CAAA;IAED,OAAO,gCAAgC,CAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA"}
@@ -33,6 +33,11 @@ export declare const CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df142
33
33
  * - Fixed erc4337 storage violation with custom storage slot (Works with Alchemy now)
34
34
  */
35
35
  export declare const CALL_POLICY_CONTRACT_V0_0_4 = "0x9a52283276A0ec8740DF50bF01B28A80D880eaf2";
36
+ /**
37
+ * @dev CALL_POLICY_CONTRACT_V0_0_5 updates
38
+ * - Added SLICE_EQUAL condition
39
+ */
40
+ export declare const CALL_POLICY_CONTRACT_V0_0_5 = "0x85770b902D1e503D5f5141d9eaC16d0d08eEaDd2";
36
41
  export declare const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
37
42
  export declare const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
38
43
  /**
@@ -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;;;GAGG;AACH,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAEhD;;;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"}
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;;;GAGG;AACH,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAEhD;;;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;;;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"}
package/_types/index.d.ts CHANGED
@@ -5,4 +5,6 @@ export { type MultiChainPermissionAccountsParams, serializeMultiChainPermissionA
5
5
  export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js";
6
6
  export * from "./constants.js";
7
7
  export { toInitConfig } from "./toInitConfig.js";
8
+ export { migrationSessionKeyAccount } from "./migration/migrationSessionKeyAccount.js";
9
+ export { isPermissionMigrated } from "./migration/isPermissionMigrated.js";
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -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,EACH,KAAK,kCAAkC,EACvC,qCAAqC,EACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACH,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,mCAAmC,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,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,EACH,KAAK,kCAAkC,EACvC,qCAAqC,EACxC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACH,4BAA4B,EAC5B,wBAAwB,EAC3B,MAAM,mCAAmC,CAAA;AAC1C,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAA;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { Address, Chain, Client, Hex, JsonRpcAccount, LocalAccount, Transport } from "viem";
2
+ export declare const isPermissionMigrated: (client: Client<Transport, Chain | undefined, JsonRpcAccount | LocalAccount | undefined>, params: {
3
+ account: Address;
4
+ permissionId: Hex;
5
+ }) => Promise<boolean>;
6
+ //# sourceMappingURL=isPermissionMigrated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPermissionMigrated.d.ts","sourceRoot":"","sources":["../../migration/isPermissionMigrated.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,GAAG,EACH,cAAc,EACd,YAAY,EACZ,SAAS,EACZ,MAAM,MAAM,CAAA;AAIb,eAAO,MAAM,oBAAoB,WACrB,OACJ,SAAS,EACT,KAAK,GAAG,SAAS,EACjB,cAAc,GAAG,YAAY,GAAG,SAAS,CAC5C,UACO;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,GAAG,CAAA;CAAE,KAChD,QAAQ,OAAO,CAgBjB,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { type CreateKernelAccountReturnType } from "@zerodev/sdk/accounts";
2
+ import { type Hex } from "viem";
3
+ export declare const migrationSessionKeyAccount: (params: {
4
+ account: CreateKernelAccountReturnType<"0.7">;
5
+ permissionId: Hex;
6
+ }) => Promise<CreateKernelAccountReturnType<"0.7">>;
7
+ //# sourceMappingURL=migrationSessionKeyAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrationSessionKeyAccount.d.ts","sourceRoot":"","sources":["../../migration/migrationSessionKeyAccount.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,6BAA6B,EAGrC,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAEH,KAAK,GAAG,EASX,MAAM,MAAM,CAAA;AAGb,eAAO,MAAM,0BAA0B,WAAkB;IACrD,OAAO,EAAE,8BAA8B,KAAK,CAAC,CAAA;IAC7C,YAAY,EAAE,GAAG,CAAA;CACpB,KAAG,QAAQ,8BAA8B,KAAK,CAAC,CA+F/C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"callPolicyUtils.d.ts","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,GAAG,EAER,KAAK,OAAO,EACZ,KAAK,GAAG,EAMX,MAAM,MAAM,CAAA;AAEb,OAAO,EAEH,KAAK,6CAA6C,EAGlD,KAAK,cAAc,EACtB,MAAM,YAAY,CAAA;AAEnB,wBAAgB,oBAAoB,CAChC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACnD,EACE,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACX,EAAE,6CAA6C,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,IAAI,CACxE,cAAc,EACd,UAAU,GAAG,OAAO,CACvB,CA8HA;AAED,eAAO,MAAM,oBAAoB,eACjB,cAAc,GAAG,cAAc,EAAE,iBAC9B,OAAO,KACvB,GAkDF,CAAA"}
1
+ {"version":3,"file":"callPolicyUtils.d.ts","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,GAAG,EAER,KAAK,OAAO,EACZ,KAAK,GAAG,EAQX,MAAM,MAAM,CAAA;AAEb,OAAO,EAEH,KAAK,6CAA6C,EAGlD,KAAK,cAAc,EACtB,MAAM,YAAY,CAAA;AAEnB,wBAAgB,oBAAoB,CAChC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACnD,EACE,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,QAAQ,EACX,EAAE,6CAA6C,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,IAAI,CACxE,cAAc,EACd,UAAU,GAAG,OAAO,CACvB,CAmKA;AAED,eAAO,MAAM,oBAAoB,eACjB,cAAc,GAAG,cAAc,EAAE,iBAC9B,OAAO,KACvB,GAkDF,CAAA"}
@@ -1,16 +1,17 @@
1
- import type { Abi, Address } from "viem";
1
+ import type { Abi, Address, Narrow } from "viem";
2
2
  import type { Policy, PolicyParams } from "../types.js";
3
- import { type Permission } from "./types.js";
3
+ import { type InferPermissions, type Permission } from "./types.js";
4
4
  export declare enum CallPolicyVersion {
5
5
  V0_0_1 = "0.0.1",
6
6
  V0_0_2 = "0.0.2",
7
7
  V0_0_3 = "0.0.3",
8
- V0_0_4 = "0.0.4"
8
+ V0_0_4 = "0.0.4",
9
+ V0_0_5 = "0.0.5"
9
10
  }
10
11
  export declare const getCallPolicyAddress: (policyVersion: CallPolicyVersion, policyAddress?: Address) => Address;
11
- export type CallPolicyParams<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string> = PolicyParams & {
12
+ export type CallPolicyParams<permissions extends readonly Permission<Abi, string>[] = readonly Permission<Abi, string>[]> = PolicyParams & {
12
13
  policyVersion: CallPolicyVersion;
13
- permissions?: Permission<TAbi, TFunctionName>[];
14
+ permissions?: InferPermissions<Narrow<permissions>>;
14
15
  };
15
- export declare function toCallPolicy<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string>({ policyAddress, policyFlag, policyVersion, permissions }: CallPolicyParams<TAbi, TFunctionName>): Policy;
16
+ export declare function toCallPolicy<const permissions extends readonly Permission<Abi, string>[]>({ policyAddress, policyFlag, policyVersion, permissions: inputPermissions }: CallPolicyParams<permissions>): Policy;
16
17
  //# 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,OAAO,EAAO,MAAM,MAAM,CAAA;AAS7C,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,oBAAY,iBAAiB;IACzB,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;CACnB;AAED,eAAO,MAAM,oBAAoB,kBACd,iBAAiB,kBAChB,OAAO,KACxB,OAYF,CAAA;AAED,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,IACjD,YAAY,GAAG;IACf,aAAa,EAAE,iBAAiB,CAAA;IAChC,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAA;CAClD,CAAA;AAED,wBAAgB,YAAY,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACnD,EACE,aAAa,EACb,UAA2C,EAC3C,aAAa,EACb,WAAgB,EACnB,EAAE,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,MAAM,CA2DhD"}
1
+ {"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAO,MAAM,EAAE,MAAM,MAAM,CAAA;AAUrD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAE7E,oBAAY,iBAAiB;IACzB,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;CACnB;AAED,eAAO,MAAM,oBAAoB,kBACd,iBAAiB,kBAChB,OAAO,KACxB,OAcF,CAAA;AAED,MAAM,MAAM,gBAAgB,CACxB,WAAW,SAAS,SAAS,UAAU,CACnC,GAAG,EACH,MAAM,CACT,EAAE,GAAG,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,IACxC,YAAY,GAAG;IACf,aAAa,EAAE,iBAAiB,CAAA;IAChC,WAAW,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;CACtD,CAAA;AAED,wBAAgB,YAAY,CACxB,KAAK,CAAC,WAAW,SAAS,SAAS,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAC9D,EACE,aAAa,EACb,UAA2C,EAC3C,aAAa,EACb,WAAW,EAAE,gBAAgB,EAChC,EAAE,gBAAgB,CAAC,WAAW,CAAC,GAAG,MAAM,CA2DxC"}
@@ -1,5 +1,5 @@
1
1
  import type { ExtractAbiFunction, ExtractAbiFunctionNames } from "abitype";
2
- import type { Abi, AbiFunction, AbiParameter, AbiParameterKind, AbiParameterToPrimitiveType, AbiStateMutability, Address, Hex, Narrow } from "viem";
2
+ import type { Abi, AbiFunction, AbiParameter, AbiParameterKind, AbiParameterToPrimitiveType, AbiStateMutability, Address, ContractFunctionName, Hex, Narrow, Prettify } from "viem";
3
3
  export declare enum CallType {
4
4
  CALL = "0x00",
5
5
  BATCH_CALL = "0x01",
@@ -12,7 +12,8 @@ export declare enum ParamCondition {
12
12
  GREATER_THAN_OR_EQUAL = 3,
13
13
  LESS_THAN_OR_EQUAL = 4,
14
14
  NOT_EQUAL = 5,
15
- ONE_OF = 6
15
+ ONE_OF = 6,
16
+ SLICE_EQUAL = 7
16
17
  }
17
18
  export interface ParamRule {
18
19
  condition: ParamCondition;
@@ -49,6 +50,11 @@ export type Permission<TAbi extends Abi | readonly unknown[], TFunctionName exte
49
50
  type ConditionValue<TAbiParameter extends AbiParameter, TAbiParameterKind extends AbiParameterKind> = {
50
51
  condition: ParamCondition.ONE_OF;
51
52
  value: AbiParameterToPrimitiveType<TAbiParameter, TAbiParameterKind>[];
53
+ } | {
54
+ condition: ParamCondition.SLICE_EQUAL;
55
+ value: AbiParameterToPrimitiveType<TAbiParameter, TAbiParameterKind>;
56
+ start: number;
57
+ length: number;
52
58
  } | {
53
59
  condition: Exclude<ParamCondition, ParamCondition.ONE_OF>;
54
60
  value: AbiParameterToPrimitiveType<TAbiParameter, TAbiParameterKind>;
@@ -67,5 +73,18 @@ export type GeneratePermissionFromArgsParameters<TAbi extends Abi | readonly unk
67
73
  } & GetFunctionArgs<TAbi, TFunctionName> : _FunctionName extends string ? {
68
74
  abi: [Narrow<TAbi[number]>];
69
75
  } & GetFunctionArgs<TAbi, _FunctionName> : never);
76
+ export type GetPermissionParameters<permission> = permission extends {
77
+ abi: infer abi extends Abi;
78
+ } ? permission extends {
79
+ functionName: infer functionName extends ContractFunctionName<abi>;
80
+ } ? PermissionWithABI<abi, functionName> : Abi extends abi ? PermissionWithABI<abi, string> : PermissionWithABI<abi, string> : permission extends {
81
+ target: Address;
82
+ } ? PermissionManual : never;
83
+ export type InferPermissions<permissions extends readonly unknown[], result extends readonly unknown[] = []> = permissions extends readonly [] ? readonly [] : permissions extends readonly [infer permission] ? readonly [...result, Prettify<GetPermissionParameters<permission>>] : permissions extends readonly [infer permission, ...infer rest] ? InferPermissions<[
84
+ ...rest
85
+ ], [
86
+ ...result,
87
+ Prettify<GetPermissionParameters<permission>>
88
+ ]> : readonly unknown[] extends permissions ? permissions : permissions extends readonly (infer permission)[] ? readonly Prettify<GetPermissionParameters<permission>>[] : readonly Permission<Abi, string>[];
70
89
  export {};
71
90
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import type { KernelSmartAccountImplementation } from "@zerodev/sdk";
2
2
  import { type Hex } from "viem";
3
3
  import type { SmartAccount } from "viem/account-abstraction";
4
+ import type { PermissionPlugin } from "./types.js";
4
5
  export type MultiChainPermissionAccountsParams = {
5
6
  account: SmartAccount<KernelSmartAccountImplementation>;
6
7
  privateKey?: Hex;
8
+ permissionPlugin?: PermissionPlugin;
9
+ isExternalPermissionPlugin?: boolean;
7
10
  };
8
11
  export declare const serializeMultiChainPermissionAccounts: (params: MultiChainPermissionAccountsParams[]) => Promise<string[]>;
9
12
  export declare function decodeSignature(signature: Hex): `0x${string}`;
@@ -1 +1 @@
1
- {"version":3,"file":"serializeMultiChainPermissionAccounts.d.ts","sourceRoot":"","sources":["../serializeMultiChainPermissionAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AAEpE,OAAO,EACH,KAAK,GAAG,EAOX,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAO5D,MAAM,MAAM,kCAAkC,GAAG;IAC7C,OAAO,EAAE,YAAY,CAAC,gCAAgC,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,GAAG,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,qCAAqC,WACtC,kCAAkC,EAAE,KAC7C,QAAQ,MAAM,EAAE,CAqIlB,CAAA;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,iBAe7C"}
1
+ {"version":3,"file":"serializeMultiChainPermissionAccounts.d.ts","sourceRoot":"","sources":["../serializeMultiChainPermissionAccounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AAEpE,OAAO,EACH,KAAK,GAAG,EAOX,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAMlD,MAAM,MAAM,kCAAkC,GAAG;IAC7C,OAAO,EAAE,YAAY,CAAC,gCAAgC,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,0BAA0B,CAAC,EAAE,OAAO,CAAA;CACvC,CAAA;AAED,eAAO,MAAM,qCAAqC,WACtC,kCAAkC,EAAE,KAC7C,QAAQ,MAAM,EAAE,CAwJlB,CAAA;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,GAAG,iBAe7C"}
@@ -3,5 +3,5 @@ import type { Hex } from "viem";
3
3
  import type { SmartAccount } from "viem/account-abstraction";
4
4
  import type { SignAuthorizationReturnType } from "viem/accounts";
5
5
  import type { PermissionPlugin } from "./types.js";
6
- export declare const serializePermissionAccount: (account: SmartAccount<KernelSmartAccountImplementation>, privateKey?: Hex, enableSignature?: Hex, eip7702Auth?: SignAuthorizationReturnType, permissionPlugin?: PermissionPlugin) => Promise<string>;
6
+ export declare const serializePermissionAccount: (account: SmartAccount<KernelSmartAccountImplementation>, privateKey?: Hex, enableSignature?: Hex, eip7702Auth?: SignAuthorizationReturnType, permissionPlugin?: PermissionPlugin, isExternalPermissionPlugin?: boolean) => Promise<string>;
7
7
  //# sourceMappingURL=serializePermissionAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serializePermissionAccount.d.ts","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAMlE,eAAO,MAAM,0BAA0B,YAC1B,aAAa,gCAAgC,CAAC,eAC1C,GAAG,oBACE,GAAG,gBACP,2BAA2B,qBACtB,gBAAgB,KACpC,QAAQ,MAAM,CA4ChB,CAAA"}
1
+ {"version":3,"file":"serializePermissionAccount.d.ts","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AACpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAMlE,eAAO,MAAM,0BAA0B,YAC1B,aAAa,gCAAgC,CAAC,eAC1C,GAAG,oBACE,GAAG,gBACP,2BAA2B,qBACtB,gBAAgB,+BACN,OAAO,KACrC,QAAQ,MAAM,CAgDhB,CAAA"}
package/_types/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { KernelValidator } from "@zerodev/sdk";
2
2
  import type { Action, EntryPointType, GetKernelVersion, PluginValidityData } from "@zerodev/sdk/types";
3
- import type { Abi, Address, Hex, LocalAccount } from "viem";
3
+ import type { Address, Hex, LocalAccount } from "viem";
4
4
  import type { EntryPointVersion } from "viem/account-abstraction";
5
5
  import type { SignAuthorizationReturnType } from "viem/accounts";
6
6
  import type { PolicyFlags } from "./constants.js";
@@ -24,7 +24,7 @@ export type ModularSigner = {
24
24
  export type Policy = {
25
25
  getPolicyData: () => Hex;
26
26
  getPolicyInfoInBytes: () => Hex;
27
- policyParams: (CallPolicyParams<Abi | readonly unknown[], string> & {
27
+ policyParams: (CallPolicyParams & {
28
28
  type: "call";
29
29
  }) | (GasPolicyParams & {
30
30
  type: "gas";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../types.ts"],"names":[],"mappings":"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"}
package/constants.ts CHANGED
@@ -48,6 +48,13 @@ export const CALL_POLICY_CONTRACT_V0_0_3 =
48
48
  export const CALL_POLICY_CONTRACT_V0_0_4 =
49
49
  "0x9a52283276A0ec8740DF50bF01B28A80D880eaf2"
50
50
 
51
+ /**
52
+ * @dev CALL_POLICY_CONTRACT_V0_0_5 updates
53
+ * - Added SLICE_EQUAL condition
54
+ */
55
+ export const CALL_POLICY_CONTRACT_V0_0_5 =
56
+ "0x85770b902D1e503D5f5141d9eaC16d0d08eEaDd2"
57
+
51
58
  export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23"
52
59
  export const RATE_LIMIT_POLICY_CONTRACT =
53
60
  "0xf63d4139B25c836334edD76641356c6b74C86873"
package/index.ts CHANGED
@@ -11,3 +11,5 @@ export {
11
11
  } from "./deserializePermissionAccount.js"
12
12
  export * from "./constants.js"
13
13
  export { toInitConfig } from "./toInitConfig.js"
14
+ export { migrationSessionKeyAccount } from "./migration/migrationSessionKeyAccount.js"
15
+ export { isPermissionMigrated } from "./migration/isPermissionMigrated.js"