@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.
- package/_cjs/constants.js +5 -3
- package/_cjs/constants.js.map +1 -1
- package/_cjs/policies/callPolicyUtils.js +41 -10
- package/_cjs/policies/callPolicyUtils.js.map +1 -1
- package/_cjs/policies/index.js +2 -1
- package/_cjs/policies/index.js.map +1 -1
- package/_cjs/policies/toCallPolicy.js +24 -6
- package/_cjs/policies/toCallPolicy.js.map +1 -1
- package/_cjs/policies/types.js +1 -0
- package/_cjs/policies/types.js.map +1 -1
- package/_cjs/signers/index.js +2 -1
- package/_cjs/signers/index.js.map +1 -1
- package/_cjs/signers/toWebAuthnSigner.js +20 -3
- package/_cjs/signers/toWebAuthnSigner.js.map +1 -1
- package/_esm/constants.js +14 -2
- package/_esm/constants.js.map +1 -1
- package/_esm/policies/callPolicyUtils.js +41 -10
- package/_esm/policies/callPolicyUtils.js.map +1 -1
- package/_esm/policies/index.js +1 -1
- package/_esm/policies/index.js.map +1 -1
- package/_esm/policies/toCallPolicy.js +23 -6
- package/_esm/policies/toCallPolicy.js.map +1 -1
- package/_esm/policies/types.js +1 -0
- package/_esm/policies/types.js.map +1 -1
- package/_esm/signers/index.js +1 -1
- package/_esm/signers/index.js.map +1 -1
- package/_esm/signers/toWebAuthnSigner.js +19 -3
- package/_esm/signers/toWebAuthnSigner.js.map +1 -1
- package/_types/constants.d.ts +14 -2
- package/_types/constants.d.ts.map +1 -1
- package/_types/policies/callPolicyUtils.d.ts +4 -4
- package/_types/policies/callPolicyUtils.d.ts.map +1 -1
- package/_types/policies/index.d.ts +1 -1
- package/_types/policies/index.d.ts.map +1 -1
- package/_types/policies/toCallPolicy.d.ts +8 -2
- package/_types/policies/toCallPolicy.d.ts.map +1 -1
- package/_types/policies/types.d.ts +15 -6
- package/_types/policies/types.d.ts.map +1 -1
- package/_types/signers/index.d.ts +1 -1
- package/_types/signers/index.d.ts.map +1 -1
- package/_types/signers/toWebAuthnSigner.d.ts +8 -2
- package/_types/signers/toWebAuthnSigner.d.ts.map +1 -1
- package/constants.ts +18 -2
- package/package.json +1 -1
- package/policies/callPolicyUtils.ts +60 -16
- package/policies/index.ts +5 -1
- package/policies/toCallPolicy.ts +37 -7
- package/policies/types.ts +27 -6
- package/signers/index.ts +2 -1
- 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.
|
|
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.
|
|
6
|
-
exports.
|
|
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";
|
package/_cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,
|
|
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
|
-
|
|
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) =>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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: "
|
|
72
|
-
type:
|
|
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,+
|
|
1
|
+
{"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"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"}
|
package/_cjs/policies/index.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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"}
|
package/_cjs/policies/types.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/_cjs/signers/index.js
CHANGED
|
@@ -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,
|
|
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
|
|
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":";;;AAEA,wDAQ8B;AAE9B,sDAAmF;AACnF,+
|
|
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
|
|
3
|
-
|
|
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";
|
package/_esm/constants.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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) =>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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: "
|
|
68
|
-
type:
|
|
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,
|
|
1
|
+
{"version":3,"file":"callPolicyUtils.js","sourceRoot":"","sources":["../../policies/callPolicyUtils.ts"],"names":[],"mappings":"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"}
|
package/_esm/policies/index.js
CHANGED
|
@@ -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,
|
|
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
|
|
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,
|
|
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,
|
|
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"}
|
package/_esm/policies/types.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/_esm/signers/index.js
CHANGED
|
@@ -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,
|
|
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 {
|
|
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
|
|
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,
|
|
1
|
+
{"version":3,"file":"toWebAuthnSigner.js","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"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"}
|