@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
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_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_4 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_3 = 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_5 = 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_4 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_3 = 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_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a
10
10
  exports.CALL_POLICY_CONTRACT_V0_0_2 = "0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275";
11
11
  exports.CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE98CE503";
12
12
  exports.CALL_POLICY_CONTRACT_V0_0_4 = "0x9a52283276A0ec8740DF50bF01B28A80D880eaf2";
13
+ exports.CALL_POLICY_CONTRACT_V0_0_5 = "0x85770b902D1e503D5f5141d9eaC16d0d08eEaDd2";
13
14
  exports.GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
14
15
  exports.RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
15
16
  exports.RATE_LIMIT_POLICY_WITH_RESET_CONTRACT = "0x6a06358e6b283921deceabe7e8a3741d506cca9b";
@@ -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;AAMnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAMnC,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"}
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;AAMnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAMnC,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;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"}
package/_cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toInitConfig = exports.decodeParamsFromInitCode = exports.deserializePermissionAccount = exports.serializeMultiChainPermissionAccounts = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
3
+ exports.isPermissionMigrated = exports.migrationSessionKeyAccount = exports.toInitConfig = exports.decodeParamsFromInitCode = exports.deserializePermissionAccount = exports.serializeMultiChainPermissionAccounts = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var toPermissionValidator_js_1 = require("./toPermissionValidator.js");
6
6
  Object.defineProperty(exports, "toPermissionValidator", { enumerable: true, get: function () { return toPermissionValidator_js_1.toPermissionValidator; } });
@@ -14,4 +14,8 @@ Object.defineProperty(exports, "decodeParamsFromInitCode", { enumerable: true, g
14
14
  tslib_1.__exportStar(require("./constants.js"), exports);
15
15
  var toInitConfig_js_1 = require("./toInitConfig.js");
16
16
  Object.defineProperty(exports, "toInitConfig", { enumerable: true, get: function () { return toInitConfig_js_1.toInitConfig; } });
17
+ var migrationSessionKeyAccount_js_1 = require("./migration/migrationSessionKeyAccount.js");
18
+ Object.defineProperty(exports, "migrationSessionKeyAccount", { enumerable: true, get: function () { return migrationSessionKeyAccount_js_1.migrationSessionKeyAccount; } });
19
+ var isPermissionMigrated_js_1 = require("./migration/isPermissionMigrated.js");
20
+ Object.defineProperty(exports, "isPermissionMigrated", { enumerable: true, get: function () { return isPermissionMigrated_js_1.isPermissionMigrated; } });
17
21
  //# sourceMappingURL=index.js.map
package/_cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AACA,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,iFAA4E;AAAnE,2IAAA,0BAA0B,OAAA;AACnC,uGAGmD;AAD/C,iKAAA,qCAAqC,OAAA;AAEzC,qFAG0C;AAFtC,+IAAA,4BAA4B,OAAA;AAC5B,2IAAA,wBAAwB,OAAA;AAE5B,yDAA8B;AAC9B,qDAAgD;AAAvC,+GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AACA,uEAAkE;AAAzD,iIAAA,qBAAqB,OAAA;AAC9B,iFAA4E;AAAnE,2IAAA,0BAA0B,OAAA;AACnC,uGAGmD;AAD/C,iKAAA,qCAAqC,OAAA;AAEzC,qFAG0C;AAFtC,+IAAA,4BAA4B,OAAA;AAC5B,2IAAA,wBAAwB,OAAA;AAE5B,yDAA8B;AAC9B,qDAAgD;AAAvC,+GAAA,YAAY,OAAA;AACrB,2FAAsF;AAA7E,2IAAA,0BAA0B,OAAA;AACnC,+EAA0E;AAAjE,+HAAA,oBAAoB,OAAA"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isPermissionMigrated = void 0;
4
+ const accounts_1 = require("@zerodev/sdk/accounts");
5
+ const actions_1 = require("viem/actions");
6
+ const utils_1 = require("viem/utils");
7
+ const isPermissionMigrated = async (client, params) => {
8
+ try {
9
+ const [, , p] = await (0, utils_1.getAction)(client, actions_1.readContract, "readContract")({
10
+ address: accounts_1.MIGRATION_HELPER_ADDRESS,
11
+ abi: accounts_1.MigrationHelperAbi,
12
+ functionName: "isMigrated",
13
+ args: [params.account, [], [params.permissionId]]
14
+ });
15
+ return p[0];
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ };
21
+ exports.isPermissionMigrated = isPermissionMigrated;
22
+ //# sourceMappingURL=isPermissionMigrated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPermissionMigrated.js","sourceRoot":"","sources":["../../migration/isPermissionMigrated.ts"],"names":[],"mappings":";;;AAAA,oDAG8B;AAU9B,0CAA2C;AAC3C,sCAAsC;AAE/B,MAAM,oBAAoB,GAAG,KAAK,EACrC,MAIC,EACD,MAA+C,EAC/B,EAAE;IAClB,IAAI,CAAC;QACD,MAAM,CAAC,EAAE,AAAD,EAAG,CAAC,CAAC,GAAG,MAAM,IAAA,iBAAS,EAC3B,MAAM,EACN,sBAAY,EACZ,cAAc,CACjB,CAAC;YACE,OAAO,EAAE,mCAAwB;YACjC,GAAG,EAAE,6BAAkB;YACvB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACpD,CAAC,CAAA;QACF,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA;AAvBY,QAAA,oBAAoB,wBAuBhC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrationSessionKeyAccount = void 0;
4
+ const sdk_1 = require("@zerodev/sdk");
5
+ const accounts_1 = require("@zerodev/sdk/accounts");
6
+ const constants_1 = require("@zerodev/sdk/constants");
7
+ const viem_1 = require("viem");
8
+ const isPermissionMigrated_js_1 = require("./isPermissionMigrated.js");
9
+ const migrationSessionKeyAccount = async (params) => {
10
+ const account = params.account;
11
+ const installFallbackCallData = (0, viem_1.encodeFunctionData)({
12
+ abi: sdk_1.KernelV3AccountAbi,
13
+ functionName: "installModule",
14
+ args: [
15
+ 3n,
16
+ accounts_1.MIGRATION_HELPER_ADDRESS,
17
+ (0, viem_1.concat)([
18
+ (0, viem_1.toFunctionSelector)((0, viem_1.getAbiItem)({
19
+ abi: accounts_1.MigrationHelperAbi,
20
+ name: "migrateWithCall"
21
+ })),
22
+ viem_1.zeroAddress,
23
+ (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)("bytes selectorInitData, bytes hookInitData"), [constants_1.CALL_TYPE.DELEGATE_CALL, "0x0000"])
24
+ ])
25
+ ]
26
+ });
27
+ const installFallbackCall = {
28
+ to: account.address,
29
+ data: installFallbackCallData,
30
+ value: 0n
31
+ };
32
+ const uninstallFallbackCallData = (0, viem_1.encodeFunctionData)({
33
+ abi: sdk_1.KernelV3AccountAbi,
34
+ functionName: "uninstallModule",
35
+ args: [
36
+ 3n,
37
+ accounts_1.MIGRATION_HELPER_ADDRESS,
38
+ (0, viem_1.concat)([
39
+ (0, viem_1.toFunctionSelector)((0, viem_1.getAbiItem)({
40
+ abi: accounts_1.MigrationHelperAbi,
41
+ name: "migrateWithCall"
42
+ })),
43
+ "0x"
44
+ ])
45
+ ]
46
+ });
47
+ const uninstallFallbackCall = {
48
+ to: account.address,
49
+ data: uninstallFallbackCallData,
50
+ value: 0n
51
+ };
52
+ return {
53
+ ...params.account,
54
+ async encodeCalls(calls, callType) {
55
+ const isMigrated = await (0, isPermissionMigrated_js_1.isPermissionMigrated)(account.client, {
56
+ account: account.address,
57
+ permissionId: params.permissionId
58
+ });
59
+ const executeCallData = await account.encodeCalls(calls, callType);
60
+ if (isMigrated) {
61
+ return executeCallData;
62
+ }
63
+ const { args: [execMode, executionCalldata] } = (0, viem_1.decodeFunctionData)({
64
+ abi: [(0, viem_1.getAbiItem)({ abi: sdk_1.KernelV3ExecuteAbi, name: "execute" })],
65
+ data: executeCallData
66
+ });
67
+ const migrationCallData = (0, viem_1.encodeFunctionData)({
68
+ abi: accounts_1.MigrationHelperAbi,
69
+ functionName: "migrateWithCall",
70
+ args: [[], [params.permissionId], execMode, executionCalldata]
71
+ });
72
+ const migrationCall = {
73
+ to: accounts_1.MIGRATION_HELPER_ADDRESS,
74
+ data: migrationCallData,
75
+ value: 0n
76
+ };
77
+ if (account.kernelVersion !== "0.3.0") {
78
+ return account.encodeCalls([migrationCall], "delegatecall");
79
+ }
80
+ migrationCall.to = account.address;
81
+ const finalCalls = [
82
+ installFallbackCall,
83
+ migrationCall,
84
+ uninstallFallbackCall
85
+ ];
86
+ return account.encodeCalls(finalCalls, "call");
87
+ }
88
+ };
89
+ };
90
+ exports.migrationSessionKeyAccount = migrationSessionKeyAccount;
91
+ //# sourceMappingURL=migrationSessionKeyAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrationSessionKeyAccount.js","sourceRoot":"","sources":["../../migration/migrationSessionKeyAccount.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,33 @@ function getPermissionFromABI({ abi, args, functionName, policyAddress, selector
75
75
  ? value
76
76
  : (0, viem_1.toHex)(value), { size: 32 }));
77
77
  }
78
+ else if (arg.condition === types_js_1.ParamCondition.SLICE_EQUAL) {
79
+ if (!("start" in arg) || !("length" in arg)) {
80
+ throw new Error("start and length are required for SLICE_EQUAL condition");
81
+ }
82
+ const functionArgsType = targetFunction.inputs[i].type;
83
+ const { start, length, value } = arg;
84
+ let hexValue;
85
+ if (functionArgsType === "string") {
86
+ hexValue = (0, viem_1.toHex)(value);
87
+ }
88
+ else if (functionArgsType === "bytes") {
89
+ hexValue = (0, viem_1.isHex)(value, { strict: true })
90
+ ? value
91
+ : (0, viem_1.toHex)(value);
92
+ }
93
+ else {
94
+ throw new Error(`Unsupported function argument type: ${functionArgsType} could be "string" or "bytes"`);
95
+ }
96
+ if ((0, viem_1.size)(hexValue) !== length) {
97
+ throw new Error("Value length is not equal to the given length");
98
+ }
99
+ params = [
100
+ (0, viem_1.toHex)(start, { size: 32 }),
101
+ (0, viem_1.toHex)(length, { size: 32 }),
102
+ (0, viem_1.keccak256)(hexValue)
103
+ ];
104
+ }
78
105
  else {
79
106
  params = [
80
107
  (0, viem_1.pad)((0, viem_1.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":"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"}
@@ -11,6 +11,7 @@ var CallPolicyVersion;
11
11
  CallPolicyVersion["V0_0_2"] = "0.0.2";
12
12
  CallPolicyVersion["V0_0_3"] = "0.0.3";
13
13
  CallPolicyVersion["V0_0_4"] = "0.0.4";
14
+ CallPolicyVersion["V0_0_5"] = "0.0.5";
14
15
  })(CallPolicyVersion || (exports.CallPolicyVersion = CallPolicyVersion = {}));
15
16
  const getCallPolicyAddress = (policyVersion, policyAddress) => {
16
17
  if (policyAddress)
@@ -24,12 +25,14 @@ const getCallPolicyAddress = (policyVersion, policyAddress) => {
24
25
  return constants_js_1.CALL_POLICY_CONTRACT_V0_0_3;
25
26
  case CallPolicyVersion.V0_0_4:
26
27
  return constants_js_1.CALL_POLICY_CONTRACT_V0_0_4;
28
+ case CallPolicyVersion.V0_0_5:
29
+ return constants_js_1.CALL_POLICY_CONTRACT_V0_0_5;
27
30
  }
28
31
  };
29
32
  exports.getCallPolicyAddress = getCallPolicyAddress;
30
- function toCallPolicy({ policyAddress, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, policyVersion, permissions = [] }) {
33
+ function toCallPolicy({ policyAddress, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, policyVersion, permissions: inputPermissions }) {
31
34
  const callPolicyAddress = (0, exports.getCallPolicyAddress)(policyVersion, policyAddress);
32
- const generatedPermissionParams = permissions?.map((perm) => {
35
+ const generatedPermissionParams = inputPermissions?.map((perm) => {
33
36
  if (perm.abi && perm.functionName) {
34
37
  return (0, callPolicyUtils_js_1.getPermissionFromABI)({
35
38
  abi: perm.abi,
@@ -44,19 +47,18 @@ function toCallPolicy({ policyAddress, policyFlag = constants_js_1.PolicyFlags.F
44
47
  rules: undefined
45
48
  };
46
49
  });
47
- permissions =
48
- permissions?.map((perm, index) => ({
49
- ...perm,
50
- callType: perm.callType ?? types_js_1.CallType.CALL,
51
- selector: (perm.selector
52
- ? perm.selector.toLowerCase()
53
- : perm.selector) ??
54
- generatedPermissionParams?.[index]?.selector ??
55
- (0, viem_1.pad)("0x", { size: 4 }),
56
- valueLimit: perm.valueLimit ?? 0n,
57
- rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
58
- })) ?? [];
59
- const encodedPermissionData = (0, callPolicyUtils_js_1.encodePermissionData)(permissions, callPolicyAddress);
50
+ const processedPermissions = inputPermissions?.map((perm, index) => ({
51
+ ...perm,
52
+ callType: perm.callType ?? types_js_1.CallType.CALL,
53
+ selector: (perm.selector
54
+ ? perm.selector.toLowerCase()
55
+ : perm.selector) ??
56
+ generatedPermissionParams?.[index]?.selector ??
57
+ (0, viem_1.pad)("0x", { size: 4 }),
58
+ valueLimit: perm.valueLimit ?? 0n,
59
+ rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
60
+ })) ?? [];
61
+ const encodedPermissionData = (0, callPolicyUtils_js_1.encodePermissionData)(processedPermissions, callPolicyAddress);
60
62
  return {
61
63
  getPolicyData: () => {
62
64
  return encodedPermissionData;
@@ -69,7 +71,7 @@ function toCallPolicy({ policyAddress, policyFlag = constants_js_1.PolicyFlags.F
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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"}
@@ -16,5 +16,6 @@ var ParamCondition;
16
16
  ParamCondition[ParamCondition["LESS_THAN_OR_EQUAL"] = 4] = "LESS_THAN_OR_EQUAL";
17
17
  ParamCondition[ParamCondition["NOT_EQUAL"] = 5] = "NOT_EQUAL";
18
18
  ParamCondition[ParamCondition["ONE_OF"] = 6] = "ONE_OF";
19
+ ParamCondition[ParamCondition["SLICE_EQUAL"] = 7] = "SLICE_EQUAL";
19
20
  })(ParamCondition || (exports.ParamCondition = ParamCondition = {}));
20
21
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":";;;AAaA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,kCAAsB,CAAA;AAC1B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,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,8BAAd,cAAc,QAQzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../policies/types.ts"],"names":[],"mappings":";;;AAeA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,+BAAmB,CAAA;IACnB,kCAAsB,CAAA;AAC1B,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAED,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,8BAAd,cAAc,QASzB"}
@@ -7,28 +7,43 @@ const utils_js_1 = require("./utils.js");
7
7
  const serializeMultiChainPermissionAccounts = async (params) => {
8
8
  if (params.length === 0)
9
9
  return [];
10
+ let isPreInstalled = false;
10
11
  const permissionParamsPerAccounts = params.map((param) => {
11
- if (!(0, utils_js_1.isPermissionValidatorPlugin)(param.account.kernelPluginManager)) {
12
+ if ((0, utils_js_1.isPermissionValidatorPlugin)(param.account.kernelPluginManager) &&
13
+ !param.isExternalPermissionPlugin) {
14
+ return param.account.kernelPluginManager.getPluginSerializationParams();
15
+ }
16
+ else if (param.permissionPlugin) {
17
+ isPreInstalled = !param.isExternalPermissionPlugin;
18
+ return param.permissionPlugin.getPluginSerializationParams();
19
+ }
20
+ else {
12
21
  throw new Error("Account plugin is not a permission validator");
13
22
  }
14
- return param.account.kernelPluginManager.getPluginSerializationParams();
15
23
  });
16
24
  const actions = params.map((param) => param.account.kernelPluginManager.getAction());
17
25
  const validityDataPerAccounts = params.map((param) => param.account.kernelPluginManager.getValidityData());
18
- const pluginEnableTypedDatas = await Promise.all(params.map(async (param) => {
19
- return param.account.kernelPluginManager.getPluginsEnableTypedData(param.account.address);
20
- }));
21
- const leaves = pluginEnableTypedDatas.map((typedData) => {
22
- return (0, viem_1.hashTypedData)(typedData);
23
- });
24
- const merkleTree = new merkletreejs_1.MerkleTree(leaves, viem_1.keccak256, {
25
- sortPairs: true
26
- });
26
+ let leaves = [];
27
+ let merkleTree = new merkletreejs_1.MerkleTree(leaves);
28
+ if (!isPreInstalled) {
29
+ const pluginEnableTypedDatas = await Promise.all(params.map(async (param) => {
30
+ return param.account.kernelPluginManager.getPluginsEnableTypedData(param.account.address, param.isExternalPermissionPlugin
31
+ ? param.permissionPlugin
32
+ : undefined);
33
+ }));
34
+ leaves = pluginEnableTypedDatas.map((typedData) => {
35
+ return (0, viem_1.hashTypedData)(typedData);
36
+ });
37
+ merkleTree = new merkletreejs_1.MerkleTree(leaves, viem_1.keccak256, {
38
+ sortPairs: true
39
+ });
40
+ }
27
41
  const merkleRoot = merkleTree.getHexRoot();
28
42
  const toEthSignedMessageHash = (0, viem_1.hashMessage)({ raw: merkleRoot });
29
43
  let signature = "0x";
30
44
  if (params[0].account.kernelPluginManager.sudoValidator?.source ===
31
- "MultiChainECDSAValidator") {
45
+ "MultiChainECDSAValidator" &&
46
+ !isPreInstalled) {
32
47
  signature =
33
48
  await params[0].account.kernelPluginManager.sudoValidator?.signMessage({
34
49
  message: {
@@ -37,7 +52,8 @@ const serializeMultiChainPermissionAccounts = async (params) => {
37
52
  });
38
53
  }
39
54
  if (params[0].account.kernelPluginManager.sudoValidator?.source ===
40
- "MultiChainWebAuthnValidator") {
55
+ "MultiChainWebAuthnValidator" &&
56
+ !isPreInstalled) {
41
57
  const encodedSignature = await params[0].account.kernelPluginManager.sudoValidator?.signMessage({
42
58
  message: {
43
59
  raw: toEthSignedMessageHash
@@ -46,6 +62,8 @@ const serializeMultiChainPermissionAccounts = async (params) => {
46
62
  signature = decodeSignature(encodedSignature);
47
63
  }
48
64
  const enableSignatures = await Promise.all(params.map(async (param, index) => {
65
+ if (isPreInstalled)
66
+ return undefined;
49
67
  if (!param.account.kernelPluginManager.sudoValidator) {
50
68
  throw new Error("No sudo validator found, check if sudo validator is multi-chain validator");
51
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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"}
@@ -2,18 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.serializePermissionAccount = void 0;
4
4
  const utils_js_1 = require("./utils.js");
5
- const serializePermissionAccount = async (account, privateKey, enableSignature, eip7702Auth, permissionPlugin) => {
5
+ const serializePermissionAccount = async (account, privateKey, enableSignature, eip7702Auth, permissionPlugin, isExternalPermissionPlugin) => {
6
6
  let permissionParams;
7
7
  let isPreInstalled = false;
8
8
  const action = account.kernelPluginManager.getAction();
9
9
  const validityData = account.kernelPluginManager.getValidityData();
10
- if ((0, utils_js_1.isPermissionValidatorPlugin)(account.kernelPluginManager)) {
10
+ if ((0, utils_js_1.isPermissionValidatorPlugin)(account.kernelPluginManager) &&
11
+ !isExternalPermissionPlugin) {
11
12
  permissionParams =
12
13
  account.kernelPluginManager.getPluginSerializationParams();
13
14
  }
14
15
  else if (permissionPlugin) {
15
16
  permissionParams = permissionPlugin.getPluginSerializationParams();
16
- isPreInstalled = true;
17
+ isPreInstalled = !isExternalPermissionPlugin;
17
18
  }
18
19
  else {
19
20
  throw new Error("No permission validator found in account or provided");
@@ -21,7 +22,7 @@ const serializePermissionAccount = async (account, privateKey, enableSignature,
21
22
  const _enableSignature = isPreInstalled
22
23
  ? undefined
23
24
  : (enableSignature ??
24
- (await account.kernelPluginManager.getPluginEnableSignature(account.address)));
25
+ (await account.kernelPluginManager.getPluginEnableSignature(account.address, isExternalPermissionPlugin ? permissionPlugin : undefined)));
25
26
  const _eip7702Auth = account.authorization
26
27
  ? (eip7702Auth ?? (await account?.eip7702Authorization?.()))
27
28
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":";;;AAKA,yCAGmB;AAEZ,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;IAGlE,IAAI,IAAA,sCAA2B,EAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC3D,gBAAgB;YACZ,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAClE,CAAC;SAAM,IAAI,gBAAgB,EAAE,CAAC;QAE1B,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,IAAA,2CAAgC,EAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA;AAlDY,QAAA,0BAA0B,8BAkDtC"}
1
+ {"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":";;;AAKA,yCAGmB;AAEZ,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;IAGlE,IACI,IAAA,sCAA2B,EAAC,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;QAE1B,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,CAC5D,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,IAAA,2CAAgC,EAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA;AAvDY,QAAA,0BAA0B,8BAuDtC"}
package/_esm/constants.js CHANGED
@@ -33,6 +33,11 @@ export const CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE9
33
33
  * - Fixed erc4337 storage violation with custom storage slot (Works with Alchemy now)
34
34
  */
35
35
  export 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 const CALL_POLICY_CONTRACT_V0_0_5 = "0x85770b902D1e503D5f5141d9eaC16d0d08eEaDd2";
36
41
  export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
37
42
  export const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
38
43
  /**
@@ -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;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GACxC,4CAA4C,CAAA;AAEhD;;;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
+ {"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;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GACxC,4CAA4C,CAAA;AAEhD;;;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;;;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"}
package/_esm/index.js CHANGED
@@ -4,4 +4,6 @@ export { serializeMultiChainPermissionAccounts } from "./serializeMultiChainPerm
4
4
  export { deserializePermissionAccount, decodeParamsFromInitCode } from "./deserializePermissionAccount.js";
5
5
  export * from "./constants.js";
6
6
  export { toInitConfig } from "./toInitConfig.js";
7
+ export { migrationSessionKeyAccount } from "./migration/migrationSessionKeyAccount.js";
8
+ export { isPermissionMigrated } from "./migration/isPermissionMigrated.js";
7
9
  //# sourceMappingURL=index.js.map
package/_esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAEH,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.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAEH,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,18 @@
1
+ import { MIGRATION_HELPER_ADDRESS, MigrationHelperAbi } from "@zerodev/sdk/accounts";
2
+ import { readContract } from "viem/actions";
3
+ import { getAction } from "viem/utils";
4
+ export const isPermissionMigrated = async (client, params) => {
5
+ try {
6
+ const [, , p] = await getAction(client, readContract, "readContract")({
7
+ address: MIGRATION_HELPER_ADDRESS,
8
+ abi: MigrationHelperAbi,
9
+ functionName: "isMigrated",
10
+ args: [params.account, [], [params.permissionId]]
11
+ });
12
+ return p[0];
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ };
18
+ //# sourceMappingURL=isPermissionMigrated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPermissionMigrated.js","sourceRoot":"","sources":["../../migration/isPermissionMigrated.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,MAIC,EACD,MAA+C,EAC/B,EAAE;IAClB,IAAI,CAAC;QACD,MAAM,CAAC,EAAE,AAAD,EAAG,CAAC,CAAC,GAAG,MAAM,SAAS,CAC3B,MAAM,EACN,YAAY,EACZ,cAAc,CACjB,CAAC;YACE,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,kBAAkB;YACvB,YAAY,EAAE,YAAY;YAC1B,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SACpD,CAAC,CAAA;QACF,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAA;IAChB,CAAC;AACL,CAAC,CAAA"}
@@ -0,0 +1,87 @@
1
+ import { KernelV3AccountAbi, KernelV3ExecuteAbi } from "@zerodev/sdk";
2
+ import { MIGRATION_HELPER_ADDRESS, MigrationHelperAbi } from "@zerodev/sdk/accounts";
3
+ import { CALL_TYPE } from "@zerodev/sdk/constants";
4
+ import { concat, decodeFunctionData, encodeAbiParameters, encodeFunctionData, getAbiItem, parseAbiParameters, toFunctionSelector, zeroAddress } from "viem";
5
+ import { isPermissionMigrated } from "./isPermissionMigrated.js";
6
+ export const migrationSessionKeyAccount = async (params) => {
7
+ const account = params.account;
8
+ const installFallbackCallData = encodeFunctionData({
9
+ abi: KernelV3AccountAbi,
10
+ functionName: "installModule",
11
+ args: [
12
+ 3n,
13
+ MIGRATION_HELPER_ADDRESS,
14
+ concat([
15
+ toFunctionSelector(getAbiItem({
16
+ abi: MigrationHelperAbi,
17
+ name: "migrateWithCall"
18
+ })),
19
+ zeroAddress,
20
+ encodeAbiParameters(parseAbiParameters("bytes selectorInitData, bytes hookInitData"), [CALL_TYPE.DELEGATE_CALL, "0x0000"])
21
+ ])
22
+ ]
23
+ });
24
+ const installFallbackCall = {
25
+ to: account.address,
26
+ data: installFallbackCallData,
27
+ value: 0n
28
+ };
29
+ const uninstallFallbackCallData = encodeFunctionData({
30
+ abi: KernelV3AccountAbi,
31
+ functionName: "uninstallModule",
32
+ args: [
33
+ 3n,
34
+ MIGRATION_HELPER_ADDRESS,
35
+ concat([
36
+ toFunctionSelector(getAbiItem({
37
+ abi: MigrationHelperAbi,
38
+ name: "migrateWithCall"
39
+ })),
40
+ "0x"
41
+ ])
42
+ ]
43
+ });
44
+ const uninstallFallbackCall = {
45
+ to: account.address,
46
+ data: uninstallFallbackCallData,
47
+ value: 0n
48
+ };
49
+ return {
50
+ ...params.account,
51
+ async encodeCalls(calls, callType) {
52
+ const isMigrated = await isPermissionMigrated(account.client, {
53
+ account: account.address,
54
+ permissionId: params.permissionId
55
+ });
56
+ const executeCallData = await account.encodeCalls(calls, callType);
57
+ if (isMigrated) {
58
+ return executeCallData;
59
+ }
60
+ const { args: [execMode, executionCalldata] } = decodeFunctionData({
61
+ abi: [getAbiItem({ abi: KernelV3ExecuteAbi, name: "execute" })],
62
+ data: executeCallData
63
+ });
64
+ const migrationCallData = encodeFunctionData({
65
+ abi: MigrationHelperAbi,
66
+ functionName: "migrateWithCall",
67
+ args: [[], [params.permissionId], execMode, executionCalldata]
68
+ });
69
+ const migrationCall = {
70
+ to: MIGRATION_HELPER_ADDRESS,
71
+ data: migrationCallData,
72
+ value: 0n
73
+ };
74
+ if (account.kernelVersion !== "0.3.0") {
75
+ return account.encodeCalls([migrationCall], "delegatecall");
76
+ }
77
+ migrationCall.to = account.address;
78
+ const finalCalls = [
79
+ installFallbackCall,
80
+ migrationCall,
81
+ uninstallFallbackCall
82
+ ];
83
+ return account.encodeCalls(finalCalls, "call");
84
+ }
85
+ };
86
+ };
87
+ //# sourceMappingURL=migrationSessionKeyAccount.js.map