@zerodev/permissions 5.3.2 → 5.4.1

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 (50) hide show
  1. package/_cjs/constants.js +5 -3
  2. package/_cjs/constants.js.map +1 -1
  3. package/_cjs/policies/callPolicyUtils.js +41 -10
  4. package/_cjs/policies/callPolicyUtils.js.map +1 -1
  5. package/_cjs/policies/index.js +2 -1
  6. package/_cjs/policies/index.js.map +1 -1
  7. package/_cjs/policies/toCallPolicy.js +24 -6
  8. package/_cjs/policies/toCallPolicy.js.map +1 -1
  9. package/_cjs/policies/types.js +1 -0
  10. package/_cjs/policies/types.js.map +1 -1
  11. package/_cjs/signers/index.js +2 -1
  12. package/_cjs/signers/index.js.map +1 -1
  13. package/_cjs/signers/toWebAuthnSigner.js +20 -3
  14. package/_cjs/signers/toWebAuthnSigner.js.map +1 -1
  15. package/_esm/constants.js +14 -2
  16. package/_esm/constants.js.map +1 -1
  17. package/_esm/policies/callPolicyUtils.js +41 -10
  18. package/_esm/policies/callPolicyUtils.js.map +1 -1
  19. package/_esm/policies/index.js +1 -1
  20. package/_esm/policies/index.js.map +1 -1
  21. package/_esm/policies/toCallPolicy.js +23 -6
  22. package/_esm/policies/toCallPolicy.js.map +1 -1
  23. package/_esm/policies/types.js +1 -0
  24. package/_esm/policies/types.js.map +1 -1
  25. package/_esm/signers/index.js +1 -1
  26. package/_esm/signers/index.js.map +1 -1
  27. package/_esm/signers/toWebAuthnSigner.js +19 -3
  28. package/_esm/signers/toWebAuthnSigner.js.map +1 -1
  29. package/_types/constants.d.ts +14 -2
  30. package/_types/constants.d.ts.map +1 -1
  31. package/_types/policies/callPolicyUtils.d.ts +4 -4
  32. package/_types/policies/callPolicyUtils.d.ts.map +1 -1
  33. package/_types/policies/index.d.ts +1 -1
  34. package/_types/policies/index.d.ts.map +1 -1
  35. package/_types/policies/toCallPolicy.d.ts +8 -2
  36. package/_types/policies/toCallPolicy.d.ts.map +1 -1
  37. package/_types/policies/types.d.ts +15 -6
  38. package/_types/policies/types.d.ts.map +1 -1
  39. package/_types/signers/index.d.ts +1 -1
  40. package/_types/signers/index.d.ts.map +1 -1
  41. package/_types/signers/toWebAuthnSigner.d.ts +8 -2
  42. package/_types/signers/toWebAuthnSigner.d.ts.map +1 -1
  43. package/constants.ts +18 -2
  44. package/package.json +1 -1
  45. package/policies/callPolicyUtils.ts +60 -16
  46. package/policies/index.ts +5 -1
  47. package/policies/toCallPolicy.ts +37 -7
  48. package/policies/types.ts +27 -6
  49. package/signers/index.ts +2 -1
  50. package/signers/toWebAuthnSigner.ts +33 -4
package/_cjs/constants.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PolicyFlags = exports.TIMESTAMP_POLICY_CONTRACT = exports.SUDO_POLICY_CONTRACT = exports.SIGNATURE_POLICY_CONTRACT = exports.RATE_LIMIT_POLICY_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.CALL_POLICY_CONTRACT = exports.WEBAUTHN_SIGNER_CONTRACT = 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_CONTRACT = exports.GAS_POLICY_CONTRACT = exports.CALL_POLICY_CONTRACT_V0_0_2 = exports.CALL_POLICY_CONTRACT_V0_0_1 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = exports.ECDSA_SIGNER_CONTRACT = void 0;
4
4
  exports.ECDSA_SIGNER_CONTRACT = "0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF";
5
- exports.WEBAUTHN_SIGNER_CONTRACT = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
6
- exports.CALL_POLICY_CONTRACT = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
5
+ exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
6
+ exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = "0x58625164e306242c7613223bDeb68fbe11300606";
7
+ exports.CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
8
+ exports.CALL_POLICY_CONTRACT_V0_0_2 = "0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275";
7
9
  exports.GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
8
10
  exports.RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
9
11
  exports.SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,wBAAwB,GACjC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AACnC,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AAEhD,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAKnC,QAAA,+BAA+B,GACxC,4CAA4C,CAAA;AAEnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAOnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AACnC,QAAA,mBAAmB,GAAG,4CAA4C,CAAA;AAClE,QAAA,0BAA0B,GACnC,4CAA4C,CAAA;AACnC,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AACnC,QAAA,oBAAoB,GAAG,4CAA4C,CAAA;AACnE,QAAA,yBAAyB,GAClC,4CAA4C,CAAA;AAEhD,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB"}
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.encodePermissionData = exports.getPermissionFromABI = void 0;
4
4
  const viem_1 = require("viem");
5
- function getPermissionFromABI({ abi, args, functionName }) {
5
+ const constants_js_1 = require("../constants.js");
6
+ const types_js_1 = require("./types.js");
7
+ function getPermissionFromABI({ abi, args, functionName, policyAddress }) {
6
8
  if (!abi || !functionName) {
7
9
  return {
8
10
  selector: undefined,
@@ -21,12 +23,39 @@ function getPermissionFromABI({ abi, args, functionName }) {
21
23
  let paramRules = [];
22
24
  if (args && Array.isArray(args)) {
23
25
  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
26
+ .map((arg, i) => {
27
+ if (!arg)
28
+ return null;
29
+ if (policyAddress === constants_js_1.CALL_POLICY_CONTRACT_V0_0_1) {
30
+ if (arg.condition === types_js_1.ParamCondition.ONE_OF) {
31
+ throw Error("The ONE_OF condition is only supported from CALL_POLICY_CONTRACT_V0_0_2 onwards. Please use CALL_POLICY_CONTRACT_V0_0_2 or a later version.");
32
+ }
33
+ return {
34
+ params: (0, viem_1.pad)((0, viem_1.isHex)(arg.value)
35
+ ? arg.value
36
+ : (0, viem_1.toHex)(arg.value), { size: 32 }),
37
+ offset: i * 32,
38
+ condition: arg.condition
39
+ };
40
+ }
41
+ let params;
42
+ if (arg.condition === types_js_1.ParamCondition.ONE_OF) {
43
+ params = arg.value.map((value) => (0, viem_1.pad)((0, viem_1.isHex)(value)
44
+ ? value
45
+ : (0, viem_1.toHex)(value), { size: 32 }));
46
+ }
47
+ else {
48
+ params = [
49
+ (0, viem_1.pad)((0, viem_1.isHex)(arg.value)
50
+ ? arg.value
51
+ : (0, viem_1.toHex)(arg.value), { size: 32 })
52
+ ];
53
+ }
54
+ return {
55
+ params,
56
+ offset: i * 32,
57
+ condition: arg.condition
58
+ };
30
59
  })
31
60
  .filter((rule) => rule);
32
61
  }
@@ -36,7 +65,7 @@ function getPermissionFromABI({ abi, args, functionName }) {
36
65
  };
37
66
  }
38
67
  exports.getPermissionFromABI = getPermissionFromABI;
39
- const encodePermissionData = (permission) => {
68
+ const encodePermissionData = (permission, policyAddress) => {
40
69
  const permissionParam = {
41
70
  components: [
42
71
  {
@@ -68,8 +97,10 @@ const encodePermissionData = (permission) => {
68
97
  type: "uint64"
69
98
  },
70
99
  {
71
- name: "param",
72
- type: "bytes32"
100
+ name: "params",
101
+ type: policyAddress === constants_js_1.CALL_POLICY_CONTRACT_V0_0_2
102
+ ? "bytes32[]"
103
+ : "bytes32"
73
104
  }
74
105
  ],
75
106
  name: "rules",
@@ -1 +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"}
1
+ {"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toTimestampPolicy = exports.ParamCondition = exports.CallType = exports.toSudoPolicy = exports.toPolicyId = exports.toCallPolicy = exports.toRateLimitPolicy = exports.toSignatureCallerPolicy = exports.toGasPolicy = void 0;
3
+ exports.toTimestampPolicy = exports.ParamCondition = exports.CallType = exports.toSudoPolicy = exports.toPolicyId = exports.CallPolicyVersion = exports.toCallPolicy = exports.toRateLimitPolicy = exports.toSignatureCallerPolicy = exports.toGasPolicy = void 0;
4
4
  var toGasPolicy_js_1 = require("./toGasPolicy.js");
5
5
  Object.defineProperty(exports, "toGasPolicy", { enumerable: true, get: function () { return toGasPolicy_js_1.toGasPolicy; } });
6
6
  var toSignatureCallerPolicy_js_1 = require("./toSignatureCallerPolicy.js");
@@ -9,6 +9,7 @@ var toRateLimitPolicy_js_1 = require("./toRateLimitPolicy.js");
9
9
  Object.defineProperty(exports, "toRateLimitPolicy", { enumerable: true, get: function () { return toRateLimitPolicy_js_1.toRateLimitPolicy; } });
10
10
  var toCallPolicy_js_1 = require("./toCallPolicy.js");
11
11
  Object.defineProperty(exports, "toCallPolicy", { enumerable: true, get: function () { return toCallPolicy_js_1.toCallPolicy; } });
12
+ Object.defineProperty(exports, "CallPolicyVersion", { enumerable: true, get: function () { return toCallPolicy_js_1.CallPolicyVersion; } });
12
13
  var toPolicyId_js_1 = require("./utils/toPolicyId.js");
13
14
  Object.defineProperty(exports, "toPolicyId", { enumerable: true, get: function () { return toPolicyId_js_1.toPolicyId; } });
14
15
  var toSudoPolicy_js_1 = require("./toSudoPolicy.js");
@@ -1 +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;AACrB,uCAAqD;AAA5C,oGAAA,QAAQ,OAAA;AAAE,0GAAA,cAAc,OAAA;AACjC,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA"}
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,qDAI0B;AAHtB,+GAAA,YAAY,OAAA;AAEZ,oHAAA,iBAAiB,OAAA;AAErB,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,qDAAuE;AAA9D,+GAAA,YAAY,OAAA;AACrB,uCAAqD;AAA5C,oGAAA,QAAQ,OAAA;AAAE,0GAAA,cAAc,OAAA;AACjC,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA"}
@@ -1,16 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toCallPolicy = void 0;
3
+ exports.toCallPolicy = exports.getCallPolicyAddress = exports.CallPolicyVersion = void 0;
4
4
  const viem_1 = require("viem");
5
5
  const constants_js_1 = require("../constants.js");
6
- const constants_js_2 = require("../constants.js");
7
6
  const callPolicyUtils_js_1 = require("./callPolicyUtils.js");
8
7
  const types_js_1 = require("./types.js");
9
- function toCallPolicy({ policyAddress = constants_js_2.CALL_POLICY_CONTRACT, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, permissions = [] }) {
8
+ var CallPolicyVersion;
9
+ (function (CallPolicyVersion) {
10
+ CallPolicyVersion["V0_0_1"] = "0.0.1";
11
+ CallPolicyVersion["V0_0_2"] = "0.0.2";
12
+ })(CallPolicyVersion || (exports.CallPolicyVersion = CallPolicyVersion = {}));
13
+ const getCallPolicyAddress = (policyVersion, policyAddress) => {
14
+ if (policyAddress)
15
+ return policyAddress;
16
+ switch (policyVersion) {
17
+ case CallPolicyVersion.V0_0_1:
18
+ return constants_js_1.CALL_POLICY_CONTRACT_V0_0_1;
19
+ case CallPolicyVersion.V0_0_2:
20
+ return constants_js_1.CALL_POLICY_CONTRACT_V0_0_2;
21
+ }
22
+ };
23
+ exports.getCallPolicyAddress = getCallPolicyAddress;
24
+ function toCallPolicy({ policyAddress, policyFlag = constants_js_1.PolicyFlags.FOR_ALL_VALIDATION, policyVersion, permissions = [] }) {
25
+ const callPolicyAddress = (0, exports.getCallPolicyAddress)(policyVersion, policyAddress);
10
26
  const generatedPermissionParams = permissions?.map((perm) => (0, callPolicyUtils_js_1.getPermissionFromABI)({
11
27
  abi: perm.abi,
12
28
  functionName: perm.functionName,
13
- args: perm.args
29
+ args: perm.args,
30
+ policyAddress: callPolicyAddress
14
31
  }));
15
32
  permissions =
16
33
  permissions?.map((perm, index) => ({
@@ -22,16 +39,17 @@ function toCallPolicy({ policyAddress = constants_js_2.CALL_POLICY_CONTRACT, pol
22
39
  valueLimit: perm.valueLimit ?? 0n,
23
40
  rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
24
41
  })) ?? [];
25
- const encodedPermissionData = (0, callPolicyUtils_js_1.encodePermissionData)(permissions);
42
+ const encodedPermissionData = (0, callPolicyUtils_js_1.encodePermissionData)(permissions, callPolicyAddress);
26
43
  return {
27
44
  getPolicyData: () => {
28
45
  return encodedPermissionData;
29
46
  },
30
47
  getPolicyInfoInBytes: () => {
31
- return (0, viem_1.concatHex)([policyFlag, policyAddress]);
48
+ return (0, viem_1.concatHex)([policyFlag, callPolicyAddress]);
32
49
  },
33
50
  policyParams: {
34
51
  type: "call",
52
+ policyVersion,
35
53
  policyAddress,
36
54
  policyFlag,
37
55
  permissions
@@ -1 +1 @@
1
- {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AACrC,kDAA6C;AAC7C,kDAAsD;AAEtD,6DAG6B;AAC7B,yCAAsD;AAStD,SAAgB,YAAY,CAG1B,EACE,aAAa,GAAG,mCAAoB,EACpC,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,WAAW,GAAG,EAAE,EACoB;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,EAAE,MAAM;YACZ,aAAa;YACb,UAAU;YACV,WAAW;SAGd;KACJ,CAAA;AACL,CAAC;AA9CD,oCA8CC"}
1
+ {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":";;;AACA,+BAAqC;AACrC,kDAIwB;AAExB,6DAG6B;AAC7B,yCAAsD;AAEtD,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;AACpB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAEM,MAAM,oBAAoB,GAAG,CAChC,aAAgC,EAChC,aAAuB,EAChB,EAAE;IACT,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IACvC,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,0CAA2B,CAAA;QACtC,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,0CAA2B,CAAA;IAC1C,CAAC;AACL,CAAC,CAAA;AAXY,QAAA,oBAAoB,wBAWhC;AAUD,SAAgB,YAAY,CAG1B,EACE,aAAa,EACb,UAAU,GAAG,0BAAW,CAAC,kBAAkB,EAC3C,aAAa,EACb,WAAW,GAAG,EAAE,EACoB;IACpC,MAAM,iBAAiB,GAAG,IAAA,4BAAoB,EAAC,aAAa,EAAE,aAAa,CAAC,CAAA;IAE5E,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;QACrB,aAAa,EAAE,iBAAiB;KACnC,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,EAC9C,WAAW,EACX,iBAAiB,CACpB,CAAA;IAED,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,iBAAiB,CAAC,CAAC,CAAA;QACrD,CAAC;QACD,YAAY,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,aAAa;YACb,aAAa;YACb,UAAU;YACV,WAAW;SAGd;KACJ,CAAA;AACL,CAAC;AAtDD,oCAsDC"}
@@ -15,5 +15,6 @@ var ParamCondition;
15
15
  ParamCondition[ParamCondition["GREATER_THAN_OR_EQUAL"] = 3] = "GREATER_THAN_OR_EQUAL";
16
16
  ParamCondition[ParamCondition["LESS_THAN_OR_EQUAL"] = 4] = "LESS_THAN_OR_EQUAL";
17
17
  ParamCondition[ParamCondition["NOT_EQUAL"] = 5] = "NOT_EQUAL";
18
+ ParamCondition[ParamCondition["ONE_OF"] = 6] = "ONE_OF";
18
19
  })(ParamCondition || (exports.ParamCondition = ParamCondition = {}));
19
20
  //# 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,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"}
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,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toEmptyECDSASigner = exports.toSignerId = exports.toWebAuthnKey = exports.WebAuthnMode = exports.toWebAuthnSigner = exports.toECDSASigner = void 0;
3
+ exports.toEmptyECDSASigner = exports.toSignerId = exports.toWebAuthnKey = exports.WebAuthnMode = exports.WebAuthnSignerVersion = exports.toWebAuthnSigner = exports.toECDSASigner = void 0;
4
4
  var toECDSASigner_js_1 = require("./toECDSASigner.js");
5
5
  Object.defineProperty(exports, "toECDSASigner", { enumerable: true, get: function () { return toECDSASigner_js_1.toECDSASigner; } });
6
6
  var toWebAuthnSigner_js_1 = require("./toWebAuthnSigner.js");
7
7
  Object.defineProperty(exports, "toWebAuthnSigner", { enumerable: true, get: function () { return toWebAuthnSigner_js_1.toWebAuthnSigner; } });
8
+ Object.defineProperty(exports, "WebAuthnSignerVersion", { enumerable: true, get: function () { return toWebAuthnSigner_js_1.WebAuthnSignerVersion; } });
8
9
  var webauthn_key_1 = require("@zerodev/webauthn-key");
9
10
  Object.defineProperty(exports, "WebAuthnMode", { enumerable: true, get: function () { return webauthn_key_1.WebAuthnMode; } });
10
11
  Object.defineProperty(exports, "toWebAuthnKey", { enumerable: true, get: function () { return webauthn_key_1.toWebAuthnKey; } });
@@ -1 +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,sDAAmE;AAA1D,4GAAA,YAAY,OAAA;AAAE,6GAAA,aAAa,OAAA;AACpC,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,iEAA4D;AAAnD,2HAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":";;;AAAA,uDAG2B;AAFvB,iHAAA,aAAa,OAAA;AAGjB,6DAI8B;AAH1B,uHAAA,gBAAgB,OAAA;AAEhB,4HAAA,qBAAqB,OAAA;AAEzB,sDAAmE;AAA1D,4GAAA,YAAY,OAAA;AAAE,6GAAA,aAAa,OAAA;AACpC,uDAAkD;AAAzC,2GAAA,UAAU,OAAA;AACnB,iEAA4D;AAAnD,2HAAA,kBAAkB,OAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toWebAuthnSigner = void 0;
3
+ exports.toWebAuthnSigner = exports.getWebAuthnSignerAddress = exports.WebAuthnSignerVersion = void 0;
4
4
  const webauthn_key_1 = require("@zerodev/webauthn-key");
5
5
  const accounts_1 = require("permissionless/accounts");
6
6
  const viem_1 = require("viem");
@@ -8,6 +8,11 @@ const viem_2 = require("viem");
8
8
  const accounts_2 = require("viem/accounts");
9
9
  const actions_1 = require("viem/actions");
10
10
  const constants_js_1 = require("../constants.js");
11
+ var WebAuthnSignerVersion;
12
+ (function (WebAuthnSignerVersion) {
13
+ WebAuthnSignerVersion["V0_0_1"] = "0.0.1";
14
+ WebAuthnSignerVersion["V0_0_2"] = "0.0.2";
15
+ })(WebAuthnSignerVersion || (exports.WebAuthnSignerVersion = WebAuthnSignerVersion = {}));
11
16
  const signMessageUsingWebAuthn = async (message, chainId, allowCredentials) => {
12
17
  let messageContent;
13
18
  if (typeof message === "string") {
@@ -57,7 +62,19 @@ const signMessageUsingWebAuthn = async (message, chainId, allowCredentials) => {
57
62
  ]);
58
63
  return encodedSignature;
59
64
  };
60
- const toWebAuthnSigner = async (client, { signerContractAddress = constants_js_1.WEBAUTHN_SIGNER_CONTRACT, webAuthnKey }) => {
65
+ const getWebAuthnSignerAddress = (webAuthnSignerVersion, webAuthnSignerAddress) => {
66
+ if (webAuthnSignerAddress)
67
+ return webAuthnSignerAddress;
68
+ switch (webAuthnSignerVersion) {
69
+ case WebAuthnSignerVersion.V0_0_1:
70
+ return constants_js_1.WEBAUTHN_SIGNER_CONTRACT_V0_0_1;
71
+ case WebAuthnSignerVersion.V0_0_2:
72
+ return constants_js_1.WEBAUTHN_SIGNER_CONTRACT_V0_0_2;
73
+ }
74
+ };
75
+ exports.getWebAuthnSignerAddress = getWebAuthnSignerAddress;
76
+ const toWebAuthnSigner = async (client, { signerContractAddress, webAuthnKey, webAuthnSignerVersion }) => {
77
+ const webAuthnSignerAddress = (0, exports.getWebAuthnSignerAddress)(webAuthnSignerVersion, signerContractAddress);
61
78
  const chainId = await (0, actions_1.getChainId)(client);
62
79
  const account = (0, accounts_2.toAccount)({
63
80
  address: "0x0000000000000000000000000000000000000000",
@@ -86,7 +103,7 @@ const toWebAuthnSigner = async (client, { signerContractAddress = constants_js_1
86
103
  });
87
104
  return {
88
105
  account,
89
- signerContractAddress,
106
+ signerContractAddress: webAuthnSignerAddress,
90
107
  getSignerData: () => {
91
108
  return (0, viem_2.encodeAbiParameters)([
92
109
  {
@@ -1 +1 @@
1
- {"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"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"}
package/_esm/constants.js CHANGED
@@ -1,6 +1,18 @@
1
1
  export const ECDSA_SIGNER_CONTRACT = "0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF";
2
- export const WEBAUTHN_SIGNER_CONTRACT = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
3
- export const CALL_POLICY_CONTRACT = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
2
+ export const WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
3
+ /**
4
+ * @dev WEBAUTHN_SIGNER_CONTRACT_V0_0_2 updates
5
+ * - Fixed checkSignature issue
6
+ */
7
+ export const WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = "0x58625164e306242c7613223bDeb68fbe11300606";
8
+ export const CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
9
+ /**
10
+ * @dev CALL_POLICY_CONTRACT_V0_0_2 updates
11
+ * - Added ONE_OF condition
12
+ * - Added native ETH transfer support
13
+ * - Added `zeroAddress` target address support, which means you can approve any contracts with specific selector. (e.g. approve any ERC20 transfer)
14
+ */
15
+ export const CALL_POLICY_CONTRACT_V0_0_2 = "0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275";
4
16
  export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
5
17
  export const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
6
18
  export const SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
@@ -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,wBAAwB,GACjC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;AAChF,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAEhD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAC9B,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,+BAA+B,GACxC,4CAA4C,CAAA;AAChD;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GACxC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAChD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAG,4CAA4C,CAAA;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAClC,4CAA4C,CAAA;AAEhD,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,iDAAkC,CAAA;IAClC,8CAA+B,CAAA;AACnC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -1,5 +1,7 @@
1
1
  import { encodeAbiParameters, getAbiItem, isHex, pad, toFunctionSelector, toHex } from "viem";
2
- export function getPermissionFromABI({ abi, args, functionName }) {
2
+ import { CALL_POLICY_CONTRACT_V0_0_1, CALL_POLICY_CONTRACT_V0_0_2 } from "../constants.js";
3
+ import { ParamCondition } from "./types.js";
4
+ export function getPermissionFromABI({ abi, args, functionName, policyAddress }) {
3
5
  if (!abi || !functionName) {
4
6
  return {
5
7
  selector: undefined,
@@ -18,12 +20,39 @@ export function getPermissionFromABI({ abi, args, functionName }) {
18
20
  let paramRules = [];
19
21
  if (args && Array.isArray(args)) {
20
22
  paramRules = args
21
- .map((arg, i) => arg && {
22
- param: pad(isHex(arg.value)
23
- ? arg.value
24
- : toHex(arg.value), { size: 32 }),
25
- offset: i * 32,
26
- condition: arg.condition
23
+ .map((arg, i) => {
24
+ if (!arg)
25
+ return null;
26
+ if (policyAddress === CALL_POLICY_CONTRACT_V0_0_1) {
27
+ if (arg.condition === ParamCondition.ONE_OF) {
28
+ throw Error("The ONE_OF condition is only supported from CALL_POLICY_CONTRACT_V0_0_2 onwards. Please use CALL_POLICY_CONTRACT_V0_0_2 or a later version.");
29
+ }
30
+ return {
31
+ params: pad(isHex(arg.value)
32
+ ? arg.value
33
+ : toHex(arg.value), { size: 32 }),
34
+ offset: i * 32,
35
+ condition: arg.condition
36
+ };
37
+ }
38
+ let params;
39
+ if (arg.condition === ParamCondition.ONE_OF) {
40
+ params = arg.value.map((value) => pad(isHex(value)
41
+ ? value
42
+ : toHex(value), { size: 32 }));
43
+ }
44
+ else {
45
+ params = [
46
+ pad(isHex(arg.value)
47
+ ? arg.value
48
+ : toHex(arg.value), { size: 32 })
49
+ ];
50
+ }
51
+ return {
52
+ params,
53
+ offset: i * 32,
54
+ condition: arg.condition
55
+ };
27
56
  })
28
57
  .filter((rule) => rule);
29
58
  }
@@ -32,7 +61,7 @@ export function getPermissionFromABI({ abi, args, functionName }) {
32
61
  rules: paramRules
33
62
  };
34
63
  }
35
- export const encodePermissionData = (permission) => {
64
+ export const encodePermissionData = (permission, policyAddress) => {
36
65
  const permissionParam = {
37
66
  components: [
38
67
  {
@@ -64,8 +93,10 @@ export const encodePermissionData = (permission) => {
64
93
  type: "uint64"
65
94
  },
66
95
  {
67
- name: "param",
68
- type: "bytes32"
96
+ name: "params",
97
+ type: policyAddress === CALL_POLICY_CONTRACT_V0_0_2
98
+ ? "bytes32[]"
99
+ : "bytes32"
69
100
  }
70
101
  ],
71
102
  name: "rules",
@@ -1 +1 @@
1
- {"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKH,mBAAmB,EACnB,UAAU,EACV,KAAK,EACL,GAAG,EACH,kBAAkB,EAClB,KAAK,EACR,MAAM,MAAM,CAAA;AAQb,MAAM,UAAU,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,UAAU,CAAC;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,kBAAkB,CAAC,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,GAAG,CACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;gBACZ,CAAC,CAAC,GAAG,CAAC,KAAK;gBACX,CAAC,CAAC,KAAK,CACD,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;AAED,MAAM,CAAC,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,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC9C,CAAC,CAAA"}
1
+ {"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAMH,mBAAmB,EACnB,UAAU,EACV,KAAK,EACL,GAAG,EACH,kBAAkB,EAClB,KAAK,EACR,MAAM,MAAM,CAAA;AACb,OAAO,EACH,2BAA2B,EAC3B,2BAA2B,EAC9B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAGH,cAAc,EAGjB,MAAM,YAAY,CAAA;AAEnB,MAAM,UAAU,oBAAoB,CAGlC,EACE,GAAG,EACH,IAAI,EACJ,YAAY,EACZ,aAAa,EACoD;IAIjE,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,UAAU,CAAC;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,kBAAkB,CAAC,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,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,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;YACD,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,WAAW;4BACb,CAAC,CAAC,SAAS;qBACtB;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,7 +1,7 @@
1
1
  export { toGasPolicy } from "./toGasPolicy.js";
2
2
  export { toSignatureCallerPolicy } from "./toSignatureCallerPolicy.js";
3
3
  export { toRateLimitPolicy } from "./toRateLimitPolicy.js";
4
- export { toCallPolicy } from "./toCallPolicy.js";
4
+ export { toCallPolicy, CallPolicyVersion } from "./toCallPolicy.js";
5
5
  export { toPolicyId } from "./utils/toPolicyId.js";
6
6
  export { toSudoPolicy } from "./toSudoPolicy.js";
7
7
  export { CallType, ParamCondition } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EAE1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../policies/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACH,uBAAuB,EAE1B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACH,YAAY,EAEZ,iBAAiB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA"}
@@ -1,13 +1,29 @@
1
1
  import { concatHex, pad } from "viem";
2
- import { PolicyFlags } from "../constants.js";
3
- import { CALL_POLICY_CONTRACT } from "../constants.js";
2
+ import { CALL_POLICY_CONTRACT_V0_0_1, CALL_POLICY_CONTRACT_V0_0_2, PolicyFlags } from "../constants.js";
4
3
  import { encodePermissionData, getPermissionFromABI } from "./callPolicyUtils.js";
5
4
  import { CallType } from "./types.js";
6
- export function toCallPolicy({ policyAddress = CALL_POLICY_CONTRACT, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, permissions = [] }) {
5
+ export var CallPolicyVersion;
6
+ (function (CallPolicyVersion) {
7
+ CallPolicyVersion["V0_0_1"] = "0.0.1";
8
+ CallPolicyVersion["V0_0_2"] = "0.0.2";
9
+ })(CallPolicyVersion || (CallPolicyVersion = {}));
10
+ export const getCallPolicyAddress = (policyVersion, policyAddress) => {
11
+ if (policyAddress)
12
+ return policyAddress;
13
+ switch (policyVersion) {
14
+ case CallPolicyVersion.V0_0_1:
15
+ return CALL_POLICY_CONTRACT_V0_0_1;
16
+ case CallPolicyVersion.V0_0_2:
17
+ return CALL_POLICY_CONTRACT_V0_0_2;
18
+ }
19
+ };
20
+ export function toCallPolicy({ policyAddress, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, policyVersion, permissions = [] }) {
21
+ const callPolicyAddress = getCallPolicyAddress(policyVersion, policyAddress);
7
22
  const generatedPermissionParams = permissions?.map((perm) => getPermissionFromABI({
8
23
  abi: perm.abi,
9
24
  functionName: perm.functionName,
10
- args: perm.args
25
+ args: perm.args,
26
+ policyAddress: callPolicyAddress
11
27
  }));
12
28
  permissions =
13
29
  permissions?.map((perm, index) => ({
@@ -19,16 +35,17 @@ export function toCallPolicy({ policyAddress = CALL_POLICY_CONTRACT, policyFlag
19
35
  valueLimit: perm.valueLimit ?? 0n,
20
36
  rules: perm.rules ?? generatedPermissionParams?.[index]?.rules ?? []
21
37
  })) ?? [];
22
- const encodedPermissionData = encodePermissionData(permissions);
38
+ const encodedPermissionData = encodePermissionData(permissions, callPolicyAddress);
23
39
  return {
24
40
  getPolicyData: () => {
25
41
  return encodedPermissionData;
26
42
  },
27
43
  getPolicyInfoInBytes: () => {
28
- return concatHex([policyFlag, policyAddress]);
44
+ return concatHex([policyFlag, callPolicyAddress]);
29
45
  },
30
46
  policyParams: {
31
47
  type: "call",
48
+ policyVersion,
32
49
  policyAddress,
33
50
  policyFlag,
34
51
  permissions
@@ -1 +1 @@
1
- {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEtD,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAA;AAStD,MAAM,UAAU,YAAY,CAG1B,EACE,aAAa,GAAG,oBAAoB,EACpC,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,WAAW,GAAG,EAAE,EACoB;IACpC,MAAM,yBAAyB,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,oBAAoB,CAAC;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,QAAQ,CAAC,IAAI;YACxC,QAAQ,EACJ,IAAI,CAAC,QAAQ;gBACb,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAC5C,GAAG,CAAC,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,oBAAoB,CAAC,WAAW,CAAC,CAAA;IAE/D,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAA;QACjD,CAAC;QACD,YAAY,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,aAAa;YACb,UAAU;YACV,WAAW;SAGd;KACJ,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"toCallPolicy.js","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EACH,2BAA2B,EAC3B,2BAA2B,EAC3B,WAAW,EACd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,QAAQ,EAAmB,MAAM,YAAY,CAAA;AAEtD,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IACzB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;AACpB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAChC,aAAgC,EAChC,aAAuB,EAChB,EAAE;IACT,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IACvC,QAAQ,aAAa,EAAE,CAAC;QACpB,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,2BAA2B,CAAA;QACtC,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,2BAA2B,CAAA;IAC1C,CAAC;AACL,CAAC,CAAA;AAUD,MAAM,UAAU,YAAY,CAG1B,EACE,aAAa,EACb,UAAU,GAAG,WAAW,CAAC,kBAAkB,EAC3C,aAAa,EACb,WAAW,GAAG,EAAE,EACoB;IACpC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;IAE5E,MAAM,yBAAyB,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACxD,oBAAoB,CAAC;QACjB,GAAG,EAAE,IAAI,CAAC,GAAU;QACpB,YAAY,EAAE,IAAI,CAAC,YAAsB;QACzC,IAAI,EAAE,IAAI,CAAC,IAAU;QACrB,aAAa,EAAE,iBAAiB;KACnC,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,QAAQ,CAAC,IAAI;YACxC,QAAQ,EACJ,IAAI,CAAC,QAAQ;gBACb,yBAAyB,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ;gBAC5C,GAAG,CAAC,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,oBAAoB,CAC9C,WAAW,EACX,iBAAiB,CACpB,CAAA;IAED,OAAO;QACH,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,qBAAqB,CAAA;QAChC,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE;YACvB,OAAO,SAAS,CAAC,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAA;QACrD,CAAC;QACD,YAAY,EAAE;YACV,IAAI,EAAE,MAAM;YACZ,aAAa;YACb,aAAa;YACb,UAAU;YACV,WAAW;SAGd;KACJ,CAAA;AACL,CAAC"}
@@ -12,5 +12,6 @@ export var ParamCondition;
12
12
  ParamCondition[ParamCondition["GREATER_THAN_OR_EQUAL"] = 3] = "GREATER_THAN_OR_EQUAL";
13
13
  ParamCondition[ParamCondition["LESS_THAN_OR_EQUAL"] = 4] = "LESS_THAN_OR_EQUAL";
14
14
  ParamCondition[ParamCondition["NOT_EQUAL"] = 5] = "NOT_EQUAL";
15
+ ParamCondition[ParamCondition["ONE_OF"] = 6] = "ONE_OF";
15
16
  })(ParamCondition || (ParamCondition = {}));
16
17
  //# 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,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,KAAd,cAAc,QAOzB"}
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,5 +1,5 @@
1
1
  export { toECDSASigner } from "./toECDSASigner.js";
2
- export { toWebAuthnSigner } from "./toWebAuthnSigner.js";
2
+ export { toWebAuthnSigner, WebAuthnSignerVersion } from "./toWebAuthnSigner.js";
3
3
  export { WebAuthnMode, toWebAuthnKey } from "@zerodev/webauthn-key";
4
4
  export { toSignerId } from "./utils/toSignerId.js";
5
5
  export { toEmptyECDSASigner } from "./toEmptyECDSASigner.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAEhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,gBAAgB,EAEnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EAEhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,gBAAgB,EAEhB,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -4,7 +4,12 @@ import { getTypesForEIP712Domain, hashTypedData, validateTypedData } from "viem"
4
4
  import { encodeAbiParameters } from "viem";
5
5
  import { toAccount } from "viem/accounts";
6
6
  import { getChainId, signMessage } from "viem/actions";
7
- import { WEBAUTHN_SIGNER_CONTRACT } from "../constants.js";
7
+ import { WEBAUTHN_SIGNER_CONTRACT_V0_0_1, WEBAUTHN_SIGNER_CONTRACT_V0_0_2 } from "../constants.js";
8
+ export var WebAuthnSignerVersion;
9
+ (function (WebAuthnSignerVersion) {
10
+ WebAuthnSignerVersion["V0_0_1"] = "0.0.1";
11
+ WebAuthnSignerVersion["V0_0_2"] = "0.0.2";
12
+ })(WebAuthnSignerVersion || (WebAuthnSignerVersion = {}));
8
13
  const signMessageUsingWebAuthn = async (message, chainId, allowCredentials) => {
9
14
  let messageContent;
10
15
  if (typeof message === "string") {
@@ -65,7 +70,18 @@ const signMessageUsingWebAuthn = async (message, chainId, allowCredentials) => {
65
70
  ]);
66
71
  return encodedSignature;
67
72
  };
68
- export const toWebAuthnSigner = async (client, { signerContractAddress = WEBAUTHN_SIGNER_CONTRACT, webAuthnKey }) => {
73
+ export const getWebAuthnSignerAddress = (webAuthnSignerVersion, webAuthnSignerAddress) => {
74
+ if (webAuthnSignerAddress)
75
+ return webAuthnSignerAddress;
76
+ switch (webAuthnSignerVersion) {
77
+ case WebAuthnSignerVersion.V0_0_1:
78
+ return WEBAUTHN_SIGNER_CONTRACT_V0_0_1;
79
+ case WebAuthnSignerVersion.V0_0_2:
80
+ return WEBAUTHN_SIGNER_CONTRACT_V0_0_2;
81
+ }
82
+ };
83
+ export const toWebAuthnSigner = async (client, { signerContractAddress, webAuthnKey, webAuthnSignerVersion }) => {
84
+ const webAuthnSignerAddress = getWebAuthnSignerAddress(webAuthnSignerVersion, signerContractAddress);
69
85
  const chainId = await getChainId(client);
70
86
  const account = toAccount({
71
87
  // note that this address will be overwritten by actual address
@@ -95,7 +111,7 @@ export const toWebAuthnSigner = async (client, { signerContractAddress = WEBAUTH
95
111
  });
96
112
  return {
97
113
  account,
98
- signerContractAddress,
114
+ signerContractAddress: webAuthnSignerAddress,
99
115
  getSignerData: () => {
100
116
  return encodeAbiParameters([
101
117
  {
@@ -1 +1 @@
1
- {"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACxB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,yCAAyC,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAOH,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,EAAwB,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAO1D,MAAM,wBAAwB,GAAG,KAAK,EAClC,OAAwB,EACxB,OAAe,EACf,gBAA4E,EAC9E,EAAE;IACA,IAAI,cAAsB,CAAA;IAC1B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,sBAAsB;QACtB,cAAc,GAAG,OAAO,CAAA;IAC5B,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7D,8BAA8B;QAC9B,cAAc,GAAG,OAAO,CAAC,GAAG,CAAA;IAChC,CAAC;SAAM,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,YAAY,UAAU,EAAE,CAAC;QAC/D,6BAA6B;QAC7B,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3C,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IACjD,CAAC;IAED,8BAA8B;IAC9B,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC;QACpD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,cAAc,CAAA;IAEpB,MAAM,SAAS,GAAG,oBAAoB,CAClC,qBAAqB,CAAC,gBAAgB,CAAC,EACvC,IAAI,CACP,CAAA;IAED,4BAA4B;IAC5B,MAAM,gBAAgB,GAA0C;QAC5D,SAAS;QACT,gBAAgB;QAChB,gBAAgB,EAAE,UAAU;KAC/B,CAAA;IAED,iCAAiC;IACjC,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IACvE,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;IAExD,yBAAyB;IACzB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC3C,MAAM,oBAAoB,GAAG,qBAAqB,CAC9C,UAAU,CAAC,iBAAiB,CAAC,CAChC,CAAA;IAED,uBAAuB;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAEzD,2CAA2C;IAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAA;IAEvD,oBAAoB;IACpB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAA;IACnC,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACjE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAEnD,mBAAmB;IACnB,MAAM,gBAAgB,GAAG,mBAAmB,CACxC;QACI,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;QAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1C,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE;QACjD,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;KAC3C,EACD;QACI,oBAAoB;QACpB,cAAc;QACd,UAAU;QACV,MAAM,CAAC,CAAC,CAAC;QACT,MAAM,CAAC,CAAC,CAAC;QACT,yBAAyB,CAAC,OAAO,CAAC;KACrC,CACJ,CAAA;IACD,OAAO,gBAAgB,CAAA;AAC3B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAIjC,MAA6C,EAC7C,EACI,qBAAqB,GAAG,wBAAwB,EAChD,WAAW,EACe,EACR,EAAE;IACxB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;IAExC,MAAM,OAAO,GAAiB,SAAS,CAAC;QACpC,+DAA+D;QAC/D,OAAO,EAAE,4CAA4C;QACrD,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,OAAO,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE;gBAC9C,EAAE,EAAE,EAAE,WAAW,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE;aAC1D,CAAC,CAAA;QACN,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,yCAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAKjB,SAAwD;YACtD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAClC,SAA+C,CAAA;YAEnD,MAAM,KAAK,GAAG;gBACV,YAAY,EAAE,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;gBACjD,GAAG,SAAS,CAAC,KAAK;aACrB,CAAA;YAED,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAA;YAE1D,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YACrC,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;gBACxC,OAAO;gBACP,OAAO,EAAE,IAAI;aAChB,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QACpB,CAAC;KACJ,CAAC,CAAA;IAEF,OAAO;QACH,OAAO;QACP,qBAAqB;QACrB,aAAa,EAAE,GAAG,EAAE;YAChB,OAAO,mBAAmB,CACtB;gBACI;oBACI,UAAU,EAAE;wBACR,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;qBACvC;oBACD,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,OAAO;iBAChB;gBACD,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,SAAS,EAAE;aACnD,EACD;gBACI,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,EAAE;gBACxD,WAAW,CAAC,mBAAmB;aAClC,CACJ,CAAA;QACL,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE;YACpB,OAAO,mBAAmB,CACtB;gBACI,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC5C,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC1C,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE;gBACjD,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE;gBAC9B,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;aAC3C,EACD;gBACI,8EAA8E;gBAC9E,sPAAsP;gBACtP,EAAE;gBACF,8EAA8E;gBAC9E,6EAA6E;gBAC7E,KAAK;aACR,CACJ,CAAA;QACL,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"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"}