@zerodev/permissions 5.2.1-alpha.0

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 (157) hide show
  1. package/_cjs/constants.js +17 -0
  2. package/_cjs/constants.js.map +1 -0
  3. package/_cjs/deserializePermissionAccount.js +94 -0
  4. package/_cjs/deserializePermissionAccount.js.map +1 -0
  5. package/_cjs/index.js +12 -0
  6. package/_cjs/index.js.map +1 -0
  7. package/_cjs/package.json +1 -0
  8. package/_cjs/policies/callPolicyUtils.js +87 -0
  9. package/_cjs/policies/callPolicyUtils.js.map +1 -0
  10. package/_cjs/policies/index.js +16 -0
  11. package/_cjs/policies/index.js.map +1 -0
  12. package/_cjs/policies/toCallPolicy.js +42 -0
  13. package/_cjs/policies/toCallPolicy.js.map +1 -0
  14. package/_cjs/policies/toGasPolicy.js +30 -0
  15. package/_cjs/policies/toGasPolicy.js.map +1 -0
  16. package/_cjs/policies/toRateLimitPolicy.js +30 -0
  17. package/_cjs/policies/toRateLimitPolicy.js.map +1 -0
  18. package/_cjs/policies/toSignatureCallerPolicy.js +24 -0
  19. package/_cjs/policies/toSignatureCallerPolicy.js.map +1 -0
  20. package/_cjs/policies/toSudoPolicy.js +22 -0
  21. package/_cjs/policies/toSudoPolicy.js.map +1 -0
  22. package/_cjs/policies/types.js +19 -0
  23. package/_cjs/policies/types.js.map +1 -0
  24. package/_cjs/policies/utils/toPolicyId.js +11 -0
  25. package/_cjs/policies/utils/toPolicyId.js.map +1 -0
  26. package/_cjs/serializePermissionAccount.js +27 -0
  27. package/_cjs/serializePermissionAccount.js.map +1 -0
  28. package/_cjs/signers/index.js +12 -0
  29. package/_cjs/signers/index.js.map +1 -0
  30. package/_cjs/signers/toECDSASigner.js +39 -0
  31. package/_cjs/signers/toECDSASigner.js.map +1 -0
  32. package/_cjs/signers/toWebAuthnPubKey.js +97 -0
  33. package/_cjs/signers/toWebAuthnPubKey.js.map +1 -0
  34. package/_cjs/signers/toWebAuthnSigner.js +154 -0
  35. package/_cjs/signers/toWebAuthnSigner.js.map +1 -0
  36. package/_cjs/signers/utils/toSignerId.js +9 -0
  37. package/_cjs/signers/utils/toSignerId.js.map +1 -0
  38. package/_cjs/signers/webAuthnUtils.js +45 -0
  39. package/_cjs/signers/webAuthnUtils.js.map +1 -0
  40. package/_cjs/toPermissionValidator.js +102 -0
  41. package/_cjs/toPermissionValidator.js.map +1 -0
  42. package/_cjs/types.js +3 -0
  43. package/_cjs/types.js.map +1 -0
  44. package/_cjs/utils.js +37 -0
  45. package/_cjs/utils.js.map +1 -0
  46. package/_esm/constants.js +14 -0
  47. package/_esm/constants.js.map +1 -0
  48. package/_esm/deserializePermissionAccount.js +89 -0
  49. package/_esm/deserializePermissionAccount.js.map +1 -0
  50. package/_esm/index.js +5 -0
  51. package/_esm/index.js.map +1 -0
  52. package/_esm/package.json +1 -0
  53. package/_esm/policies/callPolicyUtils.js +82 -0
  54. package/_esm/policies/callPolicyUtils.js.map +1 -0
  55. package/_esm/policies/index.js +7 -0
  56. package/_esm/policies/index.js.map +1 -0
  57. package/_esm/policies/toCallPolicy.js +38 -0
  58. package/_esm/policies/toCallPolicy.js.map +1 -0
  59. package/_esm/policies/toGasPolicy.js +26 -0
  60. package/_esm/policies/toGasPolicy.js.map +1 -0
  61. package/_esm/policies/toRateLimitPolicy.js +26 -0
  62. package/_esm/policies/toRateLimitPolicy.js.map +1 -0
  63. package/_esm/policies/toSignatureCallerPolicy.js +20 -0
  64. package/_esm/policies/toSignatureCallerPolicy.js.map +1 -0
  65. package/_esm/policies/toSudoPolicy.js +18 -0
  66. package/_esm/policies/toSudoPolicy.js.map +1 -0
  67. package/_esm/policies/types.js +17 -0
  68. package/_esm/policies/types.js.map +1 -0
  69. package/_esm/policies/utils/toPolicyId.js +7 -0
  70. package/_esm/policies/utils/toPolicyId.js.map +1 -0
  71. package/_esm/serializePermissionAccount.js +23 -0
  72. package/_esm/serializePermissionAccount.js.map +1 -0
  73. package/_esm/signers/index.js +5 -0
  74. package/_esm/signers/index.js.map +1 -0
  75. package/_esm/signers/toECDSASigner.js +36 -0
  76. package/_esm/signers/toECDSASigner.js.map +1 -0
  77. package/_esm/signers/toWebAuthnPubKey.js +107 -0
  78. package/_esm/signers/toWebAuthnPubKey.js.map +1 -0
  79. package/_esm/signers/toWebAuthnSigner.js +164 -0
  80. package/_esm/signers/toWebAuthnSigner.js.map +1 -0
  81. package/_esm/signers/utils/toSignerId.js +5 -0
  82. package/_esm/signers/utils/toSignerId.js.map +1 -0
  83. package/_esm/signers/webAuthnUtils.js +41 -0
  84. package/_esm/signers/webAuthnUtils.js.map +1 -0
  85. package/_esm/toPermissionValidator.js +98 -0
  86. package/_esm/toPermissionValidator.js.map +1 -0
  87. package/_esm/types.js +3 -0
  88. package/_esm/types.js.map +1 -0
  89. package/_esm/utils.js +32 -0
  90. package/_esm/utils.js.map +1 -0
  91. package/_types/constants.d.ts +13 -0
  92. package/_types/constants.d.ts.map +1 -0
  93. package/_types/deserializePermissionAccount.d.ts +13 -0
  94. package/_types/deserializePermissionAccount.d.ts.map +1 -0
  95. package/_types/index.d.ts +6 -0
  96. package/_types/index.d.ts.map +1 -0
  97. package/_types/policies/callPolicyUtils.d.ts +5 -0
  98. package/_types/policies/callPolicyUtils.d.ts.map +1 -0
  99. package/_types/policies/index.d.ts +7 -0
  100. package/_types/policies/index.d.ts.map +1 -0
  101. package/_types/policies/toCallPolicy.d.ts +9 -0
  102. package/_types/policies/toCallPolicy.d.ts.map +1 -0
  103. package/_types/policies/toGasPolicy.d.ts +10 -0
  104. package/_types/policies/toGasPolicy.d.ts.map +1 -0
  105. package/_types/policies/toRateLimitPolicy.d.ts +9 -0
  106. package/_types/policies/toRateLimitPolicy.d.ts.map +1 -0
  107. package/_types/policies/toSignatureCallerPolicy.d.ts +8 -0
  108. package/_types/policies/toSignatureCallerPolicy.d.ts.map +1 -0
  109. package/_types/policies/toSudoPolicy.d.ts +6 -0
  110. package/_types/policies/toSudoPolicy.d.ts.map +1 -0
  111. package/_types/policies/types.d.ts +56 -0
  112. package/_types/policies/types.d.ts.map +1 -0
  113. package/_types/policies/utils/toPolicyId.d.ts +4 -0
  114. package/_types/policies/utils/toPolicyId.d.ts.map +1 -0
  115. package/_types/serializePermissionAccount.d.ts +5 -0
  116. package/_types/serializePermissionAccount.d.ts.map +1 -0
  117. package/_types/signers/index.d.ts +5 -0
  118. package/_types/signers/index.d.ts.map +1 -0
  119. package/_types/signers/toECDSASigner.d.ts +8 -0
  120. package/_types/signers/toECDSASigner.d.ts.map +1 -0
  121. package/_types/signers/toWebAuthnPubKey.d.ts +11 -0
  122. package/_types/signers/toWebAuthnPubKey.d.ts.map +1 -0
  123. package/_types/signers/toWebAuthnSigner.d.ts +16 -0
  124. package/_types/signers/toWebAuthnSigner.d.ts.map +1 -0
  125. package/_types/signers/utils/toSignerId.d.ts +4 -0
  126. package/_types/signers/utils/toSignerId.d.ts.map +1 -0
  127. package/_types/signers/webAuthnUtils.d.ts +13 -0
  128. package/_types/signers/webAuthnUtils.d.ts.map +1 -0
  129. package/_types/toPermissionValidator.d.ts +5 -0
  130. package/_types/toPermissionValidator.d.ts.map +1 -0
  131. package/_types/types.d.ts +49 -0
  132. package/_types/types.d.ts.map +1 -0
  133. package/_types/utils.d.ts +8 -0
  134. package/_types/utils.d.ts.map +1 -0
  135. package/constants.ts +17 -0
  136. package/deserializePermissionAccount.ts +119 -0
  137. package/index.ts +5 -0
  138. package/package.json +63 -0
  139. package/policies/callPolicyUtils.ts +122 -0
  140. package/policies/index.ts +12 -0
  141. package/policies/toCallPolicy.ts +65 -0
  142. package/policies/toGasPolicy.ts +44 -0
  143. package/policies/toRateLimitPolicy.ts +43 -0
  144. package/policies/toSignatureCallerPolicy.ts +34 -0
  145. package/policies/toSudoPolicy.ts +27 -0
  146. package/policies/types.ts +118 -0
  147. package/policies/utils/toPolicyId.ts +13 -0
  148. package/serializePermissionAccount.ts +38 -0
  149. package/signers/index.ts +10 -0
  150. package/signers/toECDSASigner.ts +61 -0
  151. package/signers/toWebAuthnPubKey.ts +152 -0
  152. package/signers/toWebAuthnSigner.ts +245 -0
  153. package/signers/utils/toSignerId.ts +9 -0
  154. package/signers/webAuthnUtils.ts +54 -0
  155. package/toPermissionValidator.ts +152 -0
  156. package/types.ts +71 -0
  157. package/utils.ts +42 -0
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PolicyFlags = exports.SUDO_POLICY_CONTRACT = exports.WEBAUTHN_SIGNER_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.SIGNATURE_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.ECDSA_SIGNER_CONTRACT = exports.CALL_POLICY_CONTRACT = void 0;
4
+ exports.CALL_POLICY_CONTRACT = "0xc4a1aaED053Fc02717358a377A2d695bCdFA3B8A";
5
+ exports.ECDSA_SIGNER_CONTRACT = "0x8Ed04D0B000777c87e701696cf6B9710733Df96a";
6
+ exports.GAS_POLICY_CONTRACT = "0x50FD84A0A1D1683e1dafC5009876B38773fc8E3A";
7
+ exports.SIGNATURE_POLICY_CONTRACT = "0x19a3E696fFdFEDfadb22297DB223B9ca501523dD";
8
+ exports.RATE_LIMIT_POLICY_CONTRACT = "0xdB6e5F9a18f0F6Fa0861cB60f94Cf7f7374E8270";
9
+ exports.WEBAUTHN_SIGNER_CONTRACT = "0xD71E0e2AFf9D4d93b20F615e6aC2ac7e0795b472";
10
+ exports.SUDO_POLICY_CONTRACT = "0x6D14FC570e2bE7D74a6926ea54f190d690855851";
11
+ var PolicyFlags;
12
+ (function (PolicyFlags) {
13
+ PolicyFlags["FOR_ALL_VALIDATION"] = "0x0000";
14
+ PolicyFlags["NOT_FOR_VALIDATE_USEROP"] = "0x0001";
15
+ PolicyFlags["NOT_FOR_VALIDATE_SIG"] = "0x0002";
16
+ })(PolicyFlags || (exports.PolicyFlags = PolicyFlags = {}));
17
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AACnC,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AACnC,QAAA,wBAAwB,GACjC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AAEhF,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeParamsFromInitCode = exports.createPolicyFromParams = exports.deserializePermissionAccount = void 0;
4
+ const sdk_1 = require("@zerodev/sdk");
5
+ const sdk_2 = require("@zerodev/sdk");
6
+ const accounts_1 = require("@zerodev/sdk/accounts");
7
+ const permissionless_1 = require("permissionless");
8
+ const viem_1 = require("viem");
9
+ const accounts_2 = require("viem/accounts");
10
+ const index_js_1 = require("./policies/index.js");
11
+ const toECDSASigner_js_1 = require("./signers/toECDSASigner.js");
12
+ const toPermissionValidator_js_1 = require("./toPermissionValidator.js");
13
+ const utils_js_1 = require("./utils.js");
14
+ const deserializePermissionAccount = async (client, modularPermissionAccountParams, modularSigner, entryPointAddress = permissionless_1.ENTRYPOINT_ADDRESS_V06) => {
15
+ const params = (0, utils_js_1.deserializePermissionAccountParams)(modularPermissionAccountParams);
16
+ let signer;
17
+ if (params.privateKey)
18
+ signer = (0, toECDSASigner_js_1.toECDSASigner)({
19
+ signer: (0, accounts_2.privateKeyToAccount)(params.privateKey)
20
+ });
21
+ else if (modularSigner)
22
+ signer = modularSigner;
23
+ else
24
+ throw new Error("No signer or serialized sessionKey provided");
25
+ const modularPermissionPlugin = await (0, toPermissionValidator_js_1.toPermissionValidator)(client, {
26
+ signer,
27
+ policies: await Promise.all(params.permissionParams.policies?.map((policy) => (0, exports.createPolicyFromParams)(policy)) || []),
28
+ entryPoint: entryPointAddress
29
+ });
30
+ const { index, validatorInitData } = (0, exports.decodeParamsFromInitCode)(params.accountParams.initCode);
31
+ const kernelPluginManager = await (0, accounts_1.toKernelPluginManager)(client, {
32
+ regular: modularPermissionPlugin,
33
+ pluginEnableSignature: params.enableSignature,
34
+ validatorInitData,
35
+ action: params.action,
36
+ entryPoint: entryPointAddress,
37
+ ...params.validityData
38
+ });
39
+ return (0, sdk_1.createKernelAccount)(client, {
40
+ plugins: kernelPluginManager,
41
+ index,
42
+ deployedAccountAddress: params.accountParams.accountAddress,
43
+ entryPoint: entryPointAddress
44
+ });
45
+ };
46
+ exports.deserializePermissionAccount = deserializePermissionAccount;
47
+ const createPolicyFromParams = async (policy) => {
48
+ switch (policy.policyParams.type) {
49
+ case "call":
50
+ return await (0, index_js_1.toCallPolicy)(policy.policyParams);
51
+ case "gas":
52
+ return await (0, index_js_1.toGasPolicy)(policy.policyParams);
53
+ case "rate-limit":
54
+ return await (0, index_js_1.toRateLimitPolicy)(policy.policyParams);
55
+ case "signature-caller":
56
+ return await (0, index_js_1.toSignatureCallerPolicy)(policy.policyParams);
57
+ case "sudo":
58
+ return await (0, index_js_1.toSudoPolicy)(policy.policyParams);
59
+ default:
60
+ throw new Error("Unsupported policy type");
61
+ }
62
+ };
63
+ exports.createPolicyFromParams = createPolicyFromParams;
64
+ const decodeParamsFromInitCode = (initCode) => {
65
+ let index;
66
+ let validatorInitData;
67
+ const createAccountFunctionData = (0, viem_1.decodeFunctionData)({
68
+ abi: sdk_2.KernelFactoryAbi,
69
+ data: `0x${initCode.slice(42)}`
70
+ });
71
+ if (!createAccountFunctionData)
72
+ throw new Error("Invalid initCode");
73
+ if (createAccountFunctionData.functionName === "createAccount") {
74
+ index = createAccountFunctionData.args[2];
75
+ const initializeFunctionData = (0, viem_1.decodeFunctionData)({
76
+ abi: sdk_1.KernelV3AccountAbi,
77
+ data: createAccountFunctionData.args[1]
78
+ });
79
+ if (!initializeFunctionData)
80
+ throw new Error("Invalid initCode");
81
+ if (initializeFunctionData.functionName === "initialize") {
82
+ validatorInitData = {
83
+ validatorAddress: initializeFunctionData.args[0],
84
+ identifier: initializeFunctionData.args[0],
85
+ enableData: initializeFunctionData.args[2]
86
+ };
87
+ }
88
+ }
89
+ if (index === undefined || validatorInitData === undefined)
90
+ throw new Error("Invalid initCode");
91
+ return { index, validatorInitData };
92
+ };
93
+ exports.decodeParamsFromInitCode = decodeParamsFromInitCode;
94
+ //# sourceMappingURL=deserializePermissionAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deserializePermissionAccount.js","sourceRoot":"","sources":["../deserializePermissionAccount.ts"],"names":[],"mappings":"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"}
package/_cjs/index.js ADDED
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deserializePermissionAccount = exports.serializePermissionAccount = exports.toPermissionValidator = void 0;
4
+ const tslib_1 = require("tslib");
5
+ var toPermissionValidator_js_1 = require("./toPermissionValidator.js");
6
+ Object.defineProperty(exports, "toPermissionValidator", { enumerable: true, get: function () { return toPermissionValidator_js_1.toPermissionValidator; } });
7
+ var serializePermissionAccount_js_1 = require("./serializePermissionAccount.js");
8
+ Object.defineProperty(exports, "serializePermissionAccount", { enumerable: true, get: function () { return serializePermissionAccount_js_1.serializePermissionAccount; } });
9
+ var deserializePermissionAccount_js_1 = require("./deserializePermissionAccount.js");
10
+ Object.defineProperty(exports, "deserializePermissionAccount", { enumerable: true, get: function () { return deserializePermissionAccount_js_1.deserializePermissionAccount; } });
11
+ tslib_1.__exportStar(require("./constants.js"), exports);
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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,qFAAgF;AAAvE,+IAAA,4BAA4B,OAAA;AACrC,yDAA8B"}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encodePermissionData = exports.getPermissionFromABI = void 0;
4
+ const viem_1 = require("viem");
5
+ function getPermissionFromABI({ abi, args, functionName }) {
6
+ if (!abi || !functionName) {
7
+ return {
8
+ selector: undefined,
9
+ rules: undefined
10
+ };
11
+ }
12
+ const abiItem = (0, viem_1.getAbiItem)({
13
+ abi,
14
+ args,
15
+ name: functionName
16
+ });
17
+ if (abiItem?.type !== "function") {
18
+ throw Error(`${functionName} not found in abi`);
19
+ }
20
+ const functionSelector = (0, viem_1.toFunctionSelector)(abiItem);
21
+ let paramRules = [];
22
+ if (args && Array.isArray(args)) {
23
+ paramRules = args
24
+ .map((arg, i) => arg && {
25
+ param: (0, viem_1.pad)((0, viem_1.isHex)(arg.value)
26
+ ? arg.value
27
+ : (0, viem_1.toHex)(arg.value), { size: 32 }),
28
+ offset: i * 32,
29
+ condition: arg.condition
30
+ })
31
+ .filter((rule) => rule);
32
+ }
33
+ return {
34
+ selector: functionSelector,
35
+ rules: paramRules
36
+ };
37
+ }
38
+ exports.getPermissionFromABI = getPermissionFromABI;
39
+ const encodePermissionData = (permission) => {
40
+ const permissionParam = {
41
+ components: [
42
+ {
43
+ internalType: "enum CallType",
44
+ name: "callType",
45
+ type: "bytes1"
46
+ },
47
+ {
48
+ name: "target",
49
+ type: "address"
50
+ },
51
+ {
52
+ name: "selector",
53
+ type: "bytes4"
54
+ },
55
+ {
56
+ name: "valueLimit",
57
+ type: "uint256"
58
+ },
59
+ {
60
+ components: [
61
+ {
62
+ internalType: "enum ParamCondition",
63
+ name: "condition",
64
+ type: "uint8"
65
+ },
66
+ {
67
+ name: "offset",
68
+ type: "uint64"
69
+ },
70
+ {
71
+ name: "param",
72
+ type: "bytes32"
73
+ }
74
+ ],
75
+ name: "rules",
76
+ type: "tuple[]"
77
+ }
78
+ ],
79
+ name: "permission",
80
+ type: "tuple[]"
81
+ };
82
+ const params = [permissionParam];
83
+ const values = [permission];
84
+ return (0, viem_1.encodeAbiParameters)(params, values);
85
+ };
86
+ exports.encodePermissionData = encodePermissionData;
87
+ //# sourceMappingURL=callPolicyUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":";;;AAAA,+BAWa;AAQb,SAAgB,oBAAoB,CAGlC,EACE,GAAG,EACH,IAAI,EACJ,YAAY,EAC4C;IAIxD,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO;YACH,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACnB,CAAA;IACL,CAAC;IACD,MAAM,OAAO,GAAG,IAAA,iBAAU,EAAC;QACvB,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,YAAY;KACG,CAAC,CAAA;IAC1B,IAAI,OAAO,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,GAAG,YAAY,mBAAmB,CAAC,CAAA;IACnD,CAAC;IACD,MAAM,gBAAgB,GAAG,IAAA,yBAAkB,EAAC,OAAO,CAAC,CAAA;IACpD,IAAI,UAAU,GAAgB,EAAE,CAAA;IAChC,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,UAAU,GAAI,IAA4C;aACrD,GAAG,CACA,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CACP,GAAG,IAAI;YACH,KAAK,EAAE,IAAA,UAAG,EACN,IAAA,YAAK,EAAC,GAAG,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,GAAG,CAAC,KAAK;gBACX,CAAC,CAAC,IAAA,YAAK,EACD,GAAG,CAAC,KAAoC,CAC3C,EACP,EAAE,IAAI,EAAE,EAAE,EAAE,CACf;YACD,MAAM,EAAE,CAAC,GAAG,EAAE;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;SAC3B,CACR;aACA,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;AAlDD,oDAkDC;AAEM,MAAM,oBAAoB,GAAG,CAChC,UAA6C,EAC1C,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;oBAED;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;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,IAAA,0BAAmB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,CAAC,CAAA;AAlDY,QAAA,oBAAoB,wBAkDhC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSudoPolicy = exports.toPolicyId = exports.toCallPolicy = exports.toRateLimitPolicy = exports.toSignatureCallerPolicy = exports.toGasPolicy = void 0;
4
+ var toGasPolicy_js_1 = require("./toGasPolicy.js");
5
+ Object.defineProperty(exports, "toGasPolicy", { enumerable: true, get: function () { return toGasPolicy_js_1.toGasPolicy; } });
6
+ var toSignatureCallerPolicy_js_1 = require("./toSignatureCallerPolicy.js");
7
+ Object.defineProperty(exports, "toSignatureCallerPolicy", { enumerable: true, get: function () { return toSignatureCallerPolicy_js_1.toSignatureCallerPolicy; } });
8
+ var toRateLimitPolicy_js_1 = require("./toRateLimitPolicy.js");
9
+ Object.defineProperty(exports, "toRateLimitPolicy", { enumerable: true, get: function () { return toRateLimitPolicy_js_1.toRateLimitPolicy; } });
10
+ var toCallPolicy_js_1 = require("./toCallPolicy.js");
11
+ Object.defineProperty(exports, "toCallPolicy", { enumerable: true, get: function () { return toCallPolicy_js_1.toCallPolicy; } });
12
+ var toPolicyId_js_1 = require("./utils/toPolicyId.js");
13
+ Object.defineProperty(exports, "toPolicyId", { enumerable: true, get: function () { return toPolicyId_js_1.toPolicyId; } });
14
+ var toSudoPolicy_js_1 = require("./toSudoPolicy.js");
15
+ Object.defineProperty(exports, "toSudoPolicy", { enumerable: true, get: function () { return toSudoPolicy_js_1.toSudoPolicy; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":";;;AAAA,mDAAoE;AAA3D,6GAAA,WAAW,OAAA;AACpB,2EAGqC;AAFjC,qIAAA,uBAAuB,OAAA;AAG3B,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA;AAGrB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toCallPolicy = void 0;
4
+ const viem_1 = require("viem");
5
+ const constants_js_1 = require("../constants.js");
6
+ const constants_js_2 = require("../constants.js");
7
+ const callPolicyUtils_js_1 = require("./callPolicyUtils.js");
8
+ const types_js_1 = require("./types.js");
9
+ async function toCallPolicy({ policyAddress = constants_js_2.CALL_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, permissions = [], type = "call" }) {
10
+ const generatedPermissionParams = permissions?.map((perm) => (0, callPolicyUtils_js_1.getPermissionFromABI)({
11
+ abi: perm.abi,
12
+ functionName: perm.functionName,
13
+ args: perm.args
14
+ }));
15
+ permissions =
16
+ permissions?.map((perm, index) => ({
17
+ ...perm,
18
+ callType: perm.callType ?? types_js_1.CallType.CALL,
19
+ selector: perm.selector ??
20
+ generatedPermissionParams?.[index]?.selector ??
21
+ (0, viem_1.pad)("0x", { size: 4 }),
22
+ valueLimit: perm.valueLimit ?? 0n,
23
+ rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
24
+ })) ?? [];
25
+ const encodedPermissionData = (0, callPolicyUtils_js_1.encodePermissionData)(permissions);
26
+ return {
27
+ getPolicyData: () => {
28
+ return encodedPermissionData;
29
+ },
30
+ getPolicyInfoInBytes: () => {
31
+ return (0, viem_1.concatHex)([policyFlag, policyAddress]);
32
+ },
33
+ policyParams: {
34
+ type,
35
+ policyAddress,
36
+ policyFlag,
37
+ permissions
38
+ }
39
+ };
40
+ }
41
+ exports.toCallPolicy = toCallPolicy;
42
+ //# sourceMappingURL=toCallPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AACrC,kDAA6C;AAC7C,kDAAsD;AAEtD,6DAG6B;AAC7B,yCAAsD;AAU/C,KAAK,UAAU,YAAY,CAGhC,EACE,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,WAAW,GAAG,EAAE,EAChB,IAAI,GAAG,MAAM,EACuB;IACpC,MAAM,yBAAyB,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,IAAA,yCAAoB,EAAC;QACjB,GAAG,EAAE,IAAI,CAAC,GAAU;QACpB,YAAY,EAAE,IAAI,CAAC,YAAsB;QACzC,IAAI,EAAE,IAAI,CAAC,IAAU;KACxB,CAAC,CACL,CAAA;IAED,WAAW;QACP,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,mBAAQ,CAAC,IAAI;YACxC,QAAQ,EACJ,IAAI,CAAC,QAAQ;gBACb,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAC5C,IAAA,UAAG,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;YACjC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE;SACvE,CAAC,CAAC,IAAI,EAAE,CAAA;IAEb,MAAM,qBAAqB,GAAG,IAAA,yCAAoB,EAAC,WAAW,CAAC,CAAA;IAE/D,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,WAAW;SACmD;KACrE,CAAA;AACL,CAAC;AA7CD,oCA6CC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toGasPolicy = void 0;
4
+ const viem_1 = require("viem");
5
+ const constants_js_1 = require("../constants.js");
6
+ const constants_js_2 = require("../constants.js");
7
+ async function toGasPolicy({ policyAddress = constants_js_2.GAS_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, allowed, enforcePaymaster = false, allowedPaymaster = viem_1.zeroAddress, type = "gas" }) {
8
+ return {
9
+ getPolicyData: () => {
10
+ return (0, viem_1.encodeAbiParameters)([
11
+ { name: "allowed", type: "uint128" },
12
+ { name: "enforcePaymaster", type: "bool" },
13
+ { name: "allowedPaymaster", type: "address" }
14
+ ], [allowed, enforcePaymaster, allowedPaymaster]);
15
+ },
16
+ getPolicyInfoInBytes: () => {
17
+ return (0, viem_1.concatHex)([policyFlag, policyAddress]);
18
+ },
19
+ policyParams: {
20
+ type,
21
+ policyAddress,
22
+ policyFlag,
23
+ allowed,
24
+ enforcePaymaster,
25
+ allowedPaymaster
26
+ }
27
+ };
28
+ }
29
+ exports.toGasPolicy = toGasPolicy;
30
+ //# sourceMappingURL=toGasPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toGasPolicy.js","sourceRoot":"","sources":["../../policies/toGasPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgF;AAChF,kDAA6C;AAC7C,kDAAqD;AAU9C,KAAK,UAAU,WAAW,CAAC,EAC9B,aAAa,GAAG,kCAAmB,EACnC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,OAAO,EACP,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,kBAAW,EAC9B,IAAI,GAAG,KAAK,EACE;IACd,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB;gBACI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;gBACpC,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC1C,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;aAChD,EACD,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,CAChD,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,OAAO;YACP,gBAAgB;YAChB,gBAAgB;SACnB;KACJ,CAAA;AACL,CAAC;AA/BD,kCA+BC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toRateLimitPolicy = void 0;
4
+ const viem_1 = require("viem");
5
+ const constants_js_1 = require("../constants.js");
6
+ const constants_js_2 = require("../constants.js");
7
+ async function toRateLimitPolicy({ policyAddress = constants_js_2.RATE_LIMIT_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, interval = 0, count, startAt = 0, type = "rate-limit" }) {
8
+ return {
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}`;
15
+ },
16
+ getPolicyInfoInBytes: () => {
17
+ return (0, viem_1.concatHex)([policyFlag, policyAddress]);
18
+ },
19
+ policyParams: {
20
+ type,
21
+ policyAddress,
22
+ policyFlag,
23
+ interval,
24
+ count,
25
+ startAt
26
+ }
27
+ };
28
+ }
29
+ exports.toRateLimitPolicy = toRateLimitPolicy;
30
+ //# sourceMappingURL=toRateLimitPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toRateLimitPolicy.js","sourceRoot":"","sources":["../../policies/toRateLimitPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAA6C;AAC7C,kDAA4D;AAUrD,KAAK,UAAU,iBAAiB,CAAC,EACpC,aAAa,GAAG,yCAA0B,EAC1C,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,QAAQ,GAAG,CAAC,EACZ,KAAK,EACL,OAAO,GAAG,CAAC,EACX,IAAI,GAAG,YAAY,EACC;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;YACJ,aAAa;YACb,UAAU;YACV,QAAQ;YACR,KAAK;YACL,OAAO;SACV;KACJ,CAAA;AACL,CAAC;AA9BD,8CA8BC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSignatureCallerPolicy = void 0;
4
+ const viem_1 = require("viem");
5
+ const constants_js_1 = require("../constants.js");
6
+ const constants_js_2 = require("../constants.js");
7
+ async function toSignatureCallerPolicy({ policyAddress = constants_js_2.SIGNATURE_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, allowedCallers, type = "signature-caller" }) {
8
+ return {
9
+ getPolicyData: () => {
10
+ return (0, viem_1.encodeAbiParameters)([{ name: "allowedCallers", type: "address[]" }], [allowedCallers]);
11
+ },
12
+ getPolicyInfoInBytes: () => {
13
+ return (0, viem_1.concatHex)([policyFlag, policyAddress]);
14
+ },
15
+ policyParams: {
16
+ type,
17
+ policyAddress,
18
+ policyFlag,
19
+ allowedCallers
20
+ }
21
+ };
22
+ }
23
+ exports.toSignatureCallerPolicy = toSignatureCallerPolicy;
24
+ //# sourceMappingURL=toSignatureCallerPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toSignatureCallerPolicy.js","sourceRoot":"","sources":["../../policies/toSignatureCallerPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAmE;AACnE,kDAA6C;AAC7C,kDAA2D;AAQpD,KAAK,UAAU,uBAAuB,CAAC,EAC1C,aAAa,GAAG,wCAAyB,EACzC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,cAAc,EACd,IAAI,GAAG,kBAAkB,EACC;IAC1B,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAA,0BAAmB,EACtB,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAC/C,CAAC,cAAc,CAAC,CACnB,CAAA;QACL,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;YACV,cAAc;SACjB;KACJ,CAAA;AACL,CAAC;AAvBD,0DAuBC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSudoPolicy = void 0;
4
+ const viem_1 = require("viem");
5
+ const constants_js_1 = require("../constants.js");
6
+ async function toSudoPolicy({ policyAddress = constants_js_1.SUDO_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, type = "sudo" }) {
7
+ return {
8
+ getPolicyData: () => {
9
+ return "0x";
10
+ },
11
+ getPolicyInfoInBytes: () => {
12
+ return (0, viem_1.concatHex)([policyFlag, policyAddress]);
13
+ },
14
+ policyParams: {
15
+ type,
16
+ policyAddress,
17
+ policyFlag
18
+ }
19
+ };
20
+ }
21
+ exports.toSudoPolicy = toSudoPolicy;
22
+ //# sourceMappingURL=toSudoPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toSudoPolicy.js","sourceRoot":"","sources":["../../policies/toSudoPolicy.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,kDAAmE;AAO5D,KAAK,UAAU,YAAY,CAAC,EAC/B,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,IAAI,GAAG,MAAM,EACE;IACf,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,IAAI,CAAA;QACf,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,IAAA,gBAAS,EAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI;YACJ,aAAa;YACb,UAAU;SACb;KACJ,CAAA;AACL,CAAC;AAlBD,oCAkBC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParamCondition = exports.CallType = void 0;
4
+ var CallType;
5
+ (function (CallType) {
6
+ CallType["CALL"] = "0x00";
7
+ CallType["BATCH_CALL"] = "0x01";
8
+ CallType["DELEGATE_CALL"] = "0xff";
9
+ })(CallType || (exports.CallType = CallType = {}));
10
+ var ParamCondition;
11
+ (function (ParamCondition) {
12
+ ParamCondition[ParamCondition["EQUAL"] = 0] = "EQUAL";
13
+ ParamCondition[ParamCondition["GREATER_THAN"] = 1] = "GREATER_THAN";
14
+ ParamCondition[ParamCondition["LESS_THAN"] = 2] = "LESS_THAN";
15
+ ParamCondition[ParamCondition["GREATER_THAN_OR_EQUAL"] = 3] = "GREATER_THAN_OR_EQUAL";
16
+ ParamCondition[ParamCondition["LESS_THAN_OR_EQUAL"] = 4] = "LESS_THAN_OR_EQUAL";
17
+ ParamCondition[ParamCondition["NOT_EQUAL"] = 5] = "NOT_EQUAL";
18
+ })(ParamCondition || (exports.ParamCondition = ParamCondition = {}));
19
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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,cAOX;AAPD,WAAY,cAAc;IACtB,qDAAS,CAAA;IACT,mEAAgB,CAAA;IAChB,6DAAa,CAAA;IACb,qFAAyB,CAAA;IACzB,+EAAsB,CAAA;IACtB,6DAAa,CAAA;AACjB,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toPolicyId = void 0;
4
+ const viem_1 = require("viem");
5
+ const toPolicyId = (policies) => {
6
+ return (0, viem_1.encodeAbiParameters)([{ name: "policiesData", type: "bytes[]" }], [
7
+ policies.map((policy) => (0, viem_1.concat)([policy.getPolicyInfoInBytes(), policy.getPolicyData()]))
8
+ ]);
9
+ };
10
+ exports.toPolicyId = toPolicyId;
11
+ //# sourceMappingURL=toPolicyId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toPolicyId.js","sourceRoot":"","sources":["../../../policies/utils/toPolicyId.ts"],"names":[],"mappings":";;;AAAA,+BAA4D;AAGrD,MAAM,UAAU,GAAG,CAAC,QAAkB,EAAO,EAAE;IAClD,OAAO,IAAA,0BAAmB,EACtB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC3C;QACI,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACpB,IAAA,aAAM,EAAC,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAClE;KACJ,CACJ,CAAA;AACL,CAAC,CAAA;AATY,QAAA,UAAU,cAStB"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializePermissionAccount = void 0;
4
+ const utils_js_1 = require("./utils.js");
5
+ const serializePermissionAccount = async (account, privateKey) => {
6
+ if (!(0, utils_js_1.isPermissionValidatorPlugin)(account.kernelPluginManager))
7
+ throw new Error("Account plugin is not a permission validator");
8
+ const permissionParams = account.kernelPluginManager.getPluginSerializationParams();
9
+ const action = account.kernelPluginManager.getAction();
10
+ const validityData = account.kernelPluginManager.getValidityData();
11
+ const enableSignature = await account.kernelPluginManager.getPluginEnableSignature(account.address);
12
+ const accountParams = {
13
+ initCode: await account.generateInitCode(),
14
+ accountAddress: account.address
15
+ };
16
+ const paramsToBeSerialized = {
17
+ permissionParams,
18
+ action,
19
+ validityData,
20
+ accountParams,
21
+ enableSignature,
22
+ privateKey
23
+ };
24
+ return (0, utils_js_1.serializePermissionAccountParams)(paramsToBeSerialized);
25
+ };
26
+ exports.serializePermissionAccount = serializePermissionAccount;
27
+ //# sourceMappingURL=serializePermissionAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializePermissionAccount.js","sourceRoot":"","sources":["../serializePermissionAccount.ts"],"names":[],"mappings":";;;AAGA,yCAGmB;AAEZ,MAAM,0BAA0B,GAAG,KAAK,EAC3C,OAAuC,EACvC,UAAgB,EACD,EAAE;IACjB,IAAI,CAAC,IAAA,sCAA2B,EAAC,OAAO,CAAC,mBAAmB,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACnE,MAAM,gBAAgB,GAClB,OAAO,CAAC,mBAAmB,CAAC,4BAA4B,EAAE,CAAA;IAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,CAAA;IAClE,MAAM,eAAe,GACjB,MAAM,OAAO,CAAC,mBAAmB,CAAC,wBAAwB,CACtD,OAAO,CAAC,OAAO,CAClB,CAAA;IACL,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;QACf,UAAU;KACb,CAAA;IAED,OAAO,IAAA,2CAAgC,EAAC,oBAAoB,CAAC,CAAA;AACjE,CAAC,CAAA;AA7BY,QAAA,0BAA0B,8BA6BtC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSignerId = exports.WebAuthnMode = exports.toWebAuthnSigner = exports.toECDSASigner = void 0;
4
+ var toECDSASigner_js_1 = require("./toECDSASigner.js");
5
+ Object.defineProperty(exports, "toECDSASigner", { enumerable: true, get: function () { return toECDSASigner_js_1.toECDSASigner; } });
6
+ var toWebAuthnSigner_js_1 = require("./toWebAuthnSigner.js");
7
+ Object.defineProperty(exports, "toWebAuthnSigner", { enumerable: true, get: function () { return toWebAuthnSigner_js_1.toWebAuthnSigner; } });
8
+ var toWebAuthnPubKey_js_1 = require("./toWebAuthnPubKey.js");
9
+ Object.defineProperty(exports, "WebAuthnMode", { enumerable: true, get: function () { return toWebAuthnPubKey_js_1.WebAuthnMode; } });
10
+ var toSignerId_js_1 = require("./utils/toSignerId.js");
11
+ Object.defineProperty(exports, "toSignerId", { enumerable: true, get: function () { return toSignerId_js_1.toSignerId; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":";;;AAAA,uDAG2B;AAFvB,iHAAA,aAAa,OAAA;AAGjB,6DAG8B;AAF1B,uHAAA,gBAAgB,OAAA;AAGpB,6DAAoD;AAA3C,mHAAA,YAAY,OAAA;AACrB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toECDSASigner = void 0;
4
+ const sdk_1 = require("@zerodev/sdk");
5
+ const accounts_1 = require("permissionless/accounts");
6
+ const accounts_2 = require("viem/accounts");
7
+ const constants_js_1 = require("../constants.js");
8
+ function toECDSASigner({ signer, signerContractAddress = constants_js_1.ECDSA_SIGNER_CONTRACT }) {
9
+ const viemSigner = {
10
+ ...signer,
11
+ signTransaction: (_, __) => {
12
+ throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
13
+ }
14
+ };
15
+ const account = (0, accounts_2.toAccount)({
16
+ address: viemSigner.address,
17
+ async signMessage({ message }) {
18
+ return (0, sdk_1.fixSignedData)(await viemSigner.signMessage({ message }));
19
+ },
20
+ async signTransaction(_, __) {
21
+ throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
22
+ },
23
+ async signTypedData(typedData) {
24
+ return (0, sdk_1.fixSignedData)(await viemSigner.signTypedData({
25
+ ...typedData
26
+ }));
27
+ }
28
+ });
29
+ return {
30
+ account,
31
+ signerContractAddress,
32
+ getSignerData: () => {
33
+ return viemSigner.address;
34
+ },
35
+ getDummySignature: () => sdk_1.constants.DUMMY_ECDSA_SIG
36
+ };
37
+ }
38
+ exports.toECDSASigner = toECDSASigner;
39
+ //# sourceMappingURL=toECDSASigner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toECDSASigner.js","sourceRoot":"","sources":["../../signers/toECDSASigner.ts"],"names":[],"mappings":";;;AAAA,sCAAuD;AAEvD,sDAGgC;AAEhC,4CAAyC;AACzC,kDAAuD;AAUvD,SAAgB,aAAa,CAG3B,EACE,MAAM,EACN,qBAAqB,GAAG,oCAAqB,EACH;IAC1C,MAAM,UAAU,GAAiB;QAC7B,GAAG,MAAM;QACT,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;YACvB,MAAM,IAAI,oDAAyC,EAAE,CAAA;QACzD,CAAC;KACY,CAAA;IACjB,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC;QACtB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,OAAO,IAAA,mBAAa,EAAC,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QACnE,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,oDAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAKjB,SAAwD;YACtD,OAAO,IAAA,mBAAa,EAChB,MAAM,UAAU,CAAC,aAAa,CAA2B;gBACrD,GAAG,SAAS;aACf,CAAC,CACL,CAAA;QACL,CAAC;KACJ,CAAC,CAAA;IACF,OAAO;QACH,OAAO;QACP,qBAAqB;QACrB,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,UAAU,CAAC,OAAO,CAAA;QAC7B,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAS,CAAC,eAAe;KACrD,CAAA;AACL,CAAC;AA1CD,sCA0CC"}