@zerodev/permissions 5.4.0 → 5.4.2
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 +4 -2
- package/_cjs/constants.js.map +1 -1
- package/_cjs/policies/toCallPolicy.js +3 -0
- package/_cjs/policies/toCallPolicy.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 +11 -1
- package/_esm/constants.js.map +1 -1
- package/_esm/policies/toCallPolicy.js +4 -1
- package/_esm/policies/toCallPolicy.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 +11 -1
- package/_types/constants.d.ts.map +1 -1
- package/_types/policies/toCallPolicy.d.ts +2 -1
- package/_types/policies/toCallPolicy.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 +16 -1
- package/package.json +1 -1
- package/policies/toCallPolicy.ts +5 -1
- package/signers/index.ts +2 -1
- package/signers/toWebAuthnSigner.ts +33 -4
package/_cjs/constants.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
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_V0_0_2 = exports.CALL_POLICY_CONTRACT_V0_0_1 = 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_3 = 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.
|
|
5
|
+
exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_1 = "0x8AA55d4BfAE101609078681A69B5bc3181516612";
|
|
6
|
+
exports.WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = "0x58625164e306242c7613223bDeb68fbe11300606";
|
|
6
7
|
exports.CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
|
|
7
8
|
exports.CALL_POLICY_CONTRACT_V0_0_2 = "0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275";
|
|
9
|
+
exports.CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE98CE503";
|
|
8
10
|
exports.GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
9
11
|
exports.RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
10
12
|
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;AAMnC,QAAA,2BAA2B,GACpC,4CAA4C,CAAA;AAEnC,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"}
|
|
@@ -9,6 +9,7 @@ var CallPolicyVersion;
|
|
|
9
9
|
(function (CallPolicyVersion) {
|
|
10
10
|
CallPolicyVersion["V0_0_1"] = "0.0.1";
|
|
11
11
|
CallPolicyVersion["V0_0_2"] = "0.0.2";
|
|
12
|
+
CallPolicyVersion["V0_0_3"] = "0.0.3";
|
|
12
13
|
})(CallPolicyVersion || (exports.CallPolicyVersion = CallPolicyVersion = {}));
|
|
13
14
|
const getCallPolicyAddress = (policyVersion, policyAddress) => {
|
|
14
15
|
if (policyAddress)
|
|
@@ -18,6 +19,8 @@ const getCallPolicyAddress = (policyVersion, policyAddress) => {
|
|
|
18
19
|
return constants_js_1.CALL_POLICY_CONTRACT_V0_0_1;
|
|
19
20
|
case CallPolicyVersion.V0_0_2:
|
|
20
21
|
return constants_js_1.CALL_POLICY_CONTRACT_V0_0_2;
|
|
22
|
+
case CallPolicyVersion.V0_0_3:
|
|
23
|
+
return constants_js_1.CALL_POLICY_CONTRACT_V0_0_3;
|
|
21
24
|
}
|
|
22
25
|
};
|
|
23
26
|
exports.getCallPolicyAddress = getCallPolicyAddress;
|
|
@@ -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,kDAKwB;AAExB,6DAG6B;AAC7B,yCAAsD;AAEtD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;AACpB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;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;QACtC,KAAK,iBAAiB,CAAC,MAAM;YACzB,OAAO,0CAA2B,CAAA;IAC1C,CAAC;AACL,CAAC,CAAA;AAbY,QAAA,oBAAoB,wBAahC;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/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,5 +1,10 @@
|
|
|
1
1
|
export const ECDSA_SIGNER_CONTRACT = "0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF";
|
|
2
|
-
export const
|
|
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";
|
|
3
8
|
export const CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
|
|
4
9
|
/**
|
|
5
10
|
* @dev CALL_POLICY_CONTRACT_V0_0_2 updates
|
|
@@ -8,6 +13,11 @@ export const CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB9
|
|
|
8
13
|
* - Added `zeroAddress` target address support, which means you can approve any contracts with specific selector. (e.g. approve any ERC20 transfer)
|
|
9
14
|
*/
|
|
10
15
|
export const CALL_POLICY_CONTRACT_V0_0_2 = "0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275";
|
|
16
|
+
/**
|
|
17
|
+
* @dev CALL_POLICY_CONTRACT_V0_0_3 updates
|
|
18
|
+
* - Fixed a bug with delegatecall
|
|
19
|
+
*/
|
|
20
|
+
export const CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE98CE503";
|
|
11
21
|
export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
12
22
|
export const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
13
23
|
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;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACpC,4CAA4C,CAAA;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAA;AAC/E,MAAM,CAAC,MAAM,0BAA0B,GACnC,4CAA4C,CAAA;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,11 +1,12 @@
|
|
|
1
1
|
import { concatHex, pad } from "viem";
|
|
2
|
-
import { CALL_POLICY_CONTRACT_V0_0_1, CALL_POLICY_CONTRACT_V0_0_2, PolicyFlags } from "../constants.js";
|
|
2
|
+
import { CALL_POLICY_CONTRACT_V0_0_1, CALL_POLICY_CONTRACT_V0_0_2, CALL_POLICY_CONTRACT_V0_0_3, PolicyFlags } from "../constants.js";
|
|
3
3
|
import { encodePermissionData, getPermissionFromABI } from "./callPolicyUtils.js";
|
|
4
4
|
import { CallType } from "./types.js";
|
|
5
5
|
export var CallPolicyVersion;
|
|
6
6
|
(function (CallPolicyVersion) {
|
|
7
7
|
CallPolicyVersion["V0_0_1"] = "0.0.1";
|
|
8
8
|
CallPolicyVersion["V0_0_2"] = "0.0.2";
|
|
9
|
+
CallPolicyVersion["V0_0_3"] = "0.0.3";
|
|
9
10
|
})(CallPolicyVersion || (CallPolicyVersion = {}));
|
|
10
11
|
export const getCallPolicyAddress = (policyVersion, policyAddress) => {
|
|
11
12
|
if (policyAddress)
|
|
@@ -15,6 +16,8 @@ export const getCallPolicyAddress = (policyVersion, policyAddress) => {
|
|
|
15
16
|
return CALL_POLICY_CONTRACT_V0_0_1;
|
|
16
17
|
case CallPolicyVersion.V0_0_2:
|
|
17
18
|
return CALL_POLICY_CONTRACT_V0_0_2;
|
|
19
|
+
case CallPolicyVersion.V0_0_3:
|
|
20
|
+
return CALL_POLICY_CONTRACT_V0_0_3;
|
|
18
21
|
}
|
|
19
22
|
};
|
|
20
23
|
export function toCallPolicy({ policyAddress, policyFlag = PolicyFlags.FOR_ALL_VALIDATION, policyVersion, 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,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,
|
|
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,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,iBAIX;AAJD,WAAY,iBAAiB;IACzB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;IAChB,qCAAgB,CAAA;AACpB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;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;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/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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"}
|
package/_types/constants.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export declare const ECDSA_SIGNER_CONTRACT = "0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare 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 declare const WEBAUTHN_SIGNER_CONTRACT_V0_0_2 = "0x58625164e306242c7613223bDeb68fbe11300606";
|
|
3
8
|
export declare const CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8";
|
|
4
9
|
/**
|
|
5
10
|
* @dev CALL_POLICY_CONTRACT_V0_0_2 updates
|
|
@@ -8,6 +13,11 @@ export declare const CALL_POLICY_CONTRACT_V0_0_1 = "0xe4Fec84B7B002273ecC86baa65
|
|
|
8
13
|
* - Added `zeroAddress` target address support, which means you can approve any contracts with specific selector. (e.g. approve any ERC20 transfer)
|
|
9
14
|
*/
|
|
10
15
|
export declare const CALL_POLICY_CONTRACT_V0_0_2 = "0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275";
|
|
16
|
+
/**
|
|
17
|
+
* @dev CALL_POLICY_CONTRACT_V0_0_3 updates
|
|
18
|
+
* - Fixed a bug with delegatecall
|
|
19
|
+
*/
|
|
20
|
+
export declare const CALL_POLICY_CONTRACT_V0_0_3 = "0xB3CB5f502250360335614df1421f2AAbE98CE503";
|
|
11
21
|
export declare const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23";
|
|
12
22
|
export declare const RATE_LIMIT_POLICY_CONTRACT = "0xf63d4139B25c836334edD76641356c6b74C86873";
|
|
13
23
|
export declare const SIGNATURE_POLICY_CONTRACT = "0xF6A936c88D97E6fad13b98d2FD731Ff17eeD591d";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAChD;;;GAGG;AACH,eAAO,MAAM,+BAA+B,+CACI,CAAA;AAEhD,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAChD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD;;;GAGG;AACH,eAAO,MAAM,2BAA2B,+CACQ,CAAA;AAEhD,eAAO,MAAM,mBAAmB,+CAA+C,CAAA;AAC/E,eAAO,MAAM,0BAA0B,+CACS,CAAA;AAChD,eAAO,MAAM,yBAAyB,+CACU,CAAA;AAChD,eAAO,MAAM,oBAAoB,+CAA+C,CAAA;AAChF,eAAO,MAAM,yBAAyB,+CACU,CAAA;AAEhD,oBAAY,WAAW;IACnB,kBAAkB,WAAW;IAC7B,uBAAuB,WAAW;IAClC,oBAAoB,WAAW;CAClC"}
|
|
@@ -3,7 +3,8 @@ import type { Policy, PolicyParams } from "../types.js";
|
|
|
3
3
|
import { type Permission } from "./types.js";
|
|
4
4
|
export declare enum CallPolicyVersion {
|
|
5
5
|
V0_0_1 = "0.0.1",
|
|
6
|
-
V0_0_2 = "0.0.2"
|
|
6
|
+
V0_0_2 = "0.0.2",
|
|
7
|
+
V0_0_3 = "0.0.3"
|
|
7
8
|
}
|
|
8
9
|
export declare const getCallPolicyAddress: (policyVersion: CallPolicyVersion, policyAddress?: Address) => Address;
|
|
9
10
|
export type CallPolicyParams<TAbi extends Abi | readonly unknown[], TFunctionName extends string | undefined = string> = PolicyParams & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"toCallPolicy.d.ts","sourceRoot":"","sources":["../../policies/toCallPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAQxC,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKvD,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAEtD,oBAAY,iBAAiB;IACzB,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;CACnB;AAED,eAAO,MAAM,oBAAoB,kBACd,iBAAiB,kBAChB,OAAO,KACxB,OAUF,CAAA;AAED,MAAM,MAAM,gBAAgB,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,IACjD,YAAY,GAAG;IACf,aAAa,EAAE,iBAAiB,CAAA;IAChC,WAAW,CAAC,EAAE,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,EAAE,CAAA;CAClD,CAAA;AAED,wBAAgB,YAAY,CACxB,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EACrC,aAAa,SAAS,MAAM,GAAG,SAAS,GAAG,MAAM,EACnD,EACE,aAAa,EACb,UAA2C,EAC3C,aAAa,EACb,WAAgB,EACnB,EAAE,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC,GAAG,MAAM,CA8ChD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { toECDSASigner, type ECDSAModularSignerParams } from "./toECDSASigner.js";
|
|
2
|
-
export { toWebAuthnSigner, type WebAuthnModularSignerParams } from "./toWebAuthnSigner.js";
|
|
2
|
+
export { toWebAuthnSigner, type WebAuthnModularSignerParams, 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.d.ts","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,KAAK,wBAAwB,EAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,gBAAgB,EAChB,KAAK,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../signers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,aAAa,EACb,KAAK,wBAAwB,EAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,gBAAgB,EAChB,KAAK,2BAA2B,EAChC,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"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import type { WebAuthnKey } from "@zerodev/webauthn-key";
|
|
2
|
-
import { type Chain, type Client, type Transport } from "viem";
|
|
2
|
+
import { type Address, type Chain, type Client, type Transport } from "viem";
|
|
3
3
|
import type { ModularSigner, ModularSignerParams } from "../types.js";
|
|
4
|
+
export declare enum WebAuthnSignerVersion {
|
|
5
|
+
V0_0_1 = "0.0.1",
|
|
6
|
+
V0_0_2 = "0.0.2"
|
|
7
|
+
}
|
|
4
8
|
export type WebAuthnModularSignerParams = ModularSignerParams & {
|
|
5
9
|
webAuthnKey: WebAuthnKey;
|
|
10
|
+
webAuthnSignerVersion: WebAuthnSignerVersion;
|
|
6
11
|
};
|
|
7
|
-
export declare const
|
|
12
|
+
export declare const getWebAuthnSignerAddress: (webAuthnSignerVersion: WebAuthnSignerVersion, webAuthnSignerAddress?: Address) => Address;
|
|
13
|
+
export declare const toWebAuthnSigner: <TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined>(client: Client<TTransport, TChain, undefined>, { signerContractAddress, webAuthnKey, webAuthnSignerVersion }: WebAuthnModularSignerParams) => Promise<ModularSigner>;
|
|
8
14
|
//# sourceMappingURL=toWebAuthnSigner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toWebAuthnSigner.d.ts","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAYxD,OAAO,EACH,KAAK,KAAK,EACV,KAAK,MAAM,EAGX,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"toWebAuthnSigner.d.ts","sourceRoot":"","sources":["../../signers/toWebAuthnSigner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAYxD,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAGX,KAAK,SAAS,EAKjB,MAAM,MAAM,CAAA;AAQb,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAErE,oBAAY,qBAAqB;IAC7B,MAAM,UAAU;IAChB,MAAM,UAAU;CACnB;AAED,MAAM,MAAM,2BAA2B,GAAG,mBAAmB,GAAG;IAC5D,WAAW,EAAE,WAAW,CAAA;IACxB,qBAAqB,EAAE,qBAAqB,CAAA;CAC/C,CAAA;AAiFD,eAAO,MAAM,wBAAwB,0BACV,qBAAqB,0BACpB,OAAO,KAChC,OAQF,CAAA;AAED,eAAO,MAAM,gBAAgB,iNAStB,2BAA2B,KAC/B,QAAQ,aAAa,CAuFvB,CAAA"}
|
package/constants.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
export const ECDSA_SIGNER_CONTRACT =
|
|
2
2
|
"0x6A6F069E2a08c2468e7724Ab3250CdBFBA14D4FF"
|
|
3
|
-
export const
|
|
3
|
+
export const WEBAUTHN_SIGNER_CONTRACT_V0_0_1 =
|
|
4
4
|
"0x8AA55d4BfAE101609078681A69B5bc3181516612"
|
|
5
|
+
/**
|
|
6
|
+
* @dev WEBAUTHN_SIGNER_CONTRACT_V0_0_2 updates
|
|
7
|
+
* - Fixed checkSignature issue
|
|
8
|
+
*/
|
|
9
|
+
export const WEBAUTHN_SIGNER_CONTRACT_V0_0_2 =
|
|
10
|
+
"0x58625164e306242c7613223bDeb68fbe11300606"
|
|
11
|
+
|
|
5
12
|
export const CALL_POLICY_CONTRACT_V0_0_1 =
|
|
6
13
|
"0xe4Fec84B7B002273ecC86baa65a831ddB92d30a8"
|
|
7
14
|
/**
|
|
@@ -12,6 +19,14 @@ export const CALL_POLICY_CONTRACT_V0_0_1 =
|
|
|
12
19
|
*/
|
|
13
20
|
export const CALL_POLICY_CONTRACT_V0_0_2 =
|
|
14
21
|
"0x67Fa43ca2D689beA4d10b9F2C96828828A2Ab275"
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @dev CALL_POLICY_CONTRACT_V0_0_3 updates
|
|
25
|
+
* - Fixed a bug with delegatecall
|
|
26
|
+
*/
|
|
27
|
+
export const CALL_POLICY_CONTRACT_V0_0_3 =
|
|
28
|
+
"0xB3CB5f502250360335614df1421f2AAbE98CE503"
|
|
29
|
+
|
|
15
30
|
export const GAS_POLICY_CONTRACT = "0xaeFC5AbC67FfD258abD0A3E54f65E70326F84b23"
|
|
16
31
|
export const RATE_LIMIT_POLICY_CONTRACT =
|
|
17
32
|
"0xf63d4139B25c836334edD76641356c6b74C86873"
|
package/package.json
CHANGED
package/policies/toCallPolicy.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { concatHex, pad } from "viem"
|
|
|
3
3
|
import {
|
|
4
4
|
CALL_POLICY_CONTRACT_V0_0_1,
|
|
5
5
|
CALL_POLICY_CONTRACT_V0_0_2,
|
|
6
|
+
CALL_POLICY_CONTRACT_V0_0_3,
|
|
6
7
|
PolicyFlags
|
|
7
8
|
} from "../constants.js"
|
|
8
9
|
import type { Policy, PolicyParams } from "../types.js"
|
|
@@ -14,7 +15,8 @@ import { CallType, type Permission } from "./types.js"
|
|
|
14
15
|
|
|
15
16
|
export enum CallPolicyVersion {
|
|
16
17
|
V0_0_1 = "0.0.1",
|
|
17
|
-
V0_0_2 = "0.0.2"
|
|
18
|
+
V0_0_2 = "0.0.2",
|
|
19
|
+
V0_0_3 = "0.0.3"
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
export const getCallPolicyAddress = (
|
|
@@ -27,6 +29,8 @@ export const getCallPolicyAddress = (
|
|
|
27
29
|
return CALL_POLICY_CONTRACT_V0_0_1
|
|
28
30
|
case CallPolicyVersion.V0_0_2:
|
|
29
31
|
return CALL_POLICY_CONTRACT_V0_0_2
|
|
32
|
+
case CallPolicyVersion.V0_0_3:
|
|
33
|
+
return CALL_POLICY_CONTRACT_V0_0_3
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
|
package/signers/index.ts
CHANGED
|
@@ -4,7 +4,8 @@ export {
|
|
|
4
4
|
} from "./toECDSASigner.js"
|
|
5
5
|
export {
|
|
6
6
|
toWebAuthnSigner,
|
|
7
|
-
type WebAuthnModularSignerParams
|
|
7
|
+
type WebAuthnModularSignerParams,
|
|
8
|
+
WebAuthnSignerVersion
|
|
8
9
|
} from "./toWebAuthnSigner.js"
|
|
9
10
|
export { WebAuthnMode, toWebAuthnKey } from "@zerodev/webauthn-key"
|
|
10
11
|
export { toSignerId } from "./utils/toSignerId.js"
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
import type { TypedData } from "abitype"
|
|
13
13
|
import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts"
|
|
14
14
|
import {
|
|
15
|
+
type Address,
|
|
15
16
|
type Chain,
|
|
16
17
|
type Client,
|
|
17
18
|
type LocalAccount,
|
|
@@ -25,11 +26,20 @@ import {
|
|
|
25
26
|
import { type SignableMessage, encodeAbiParameters } from "viem"
|
|
26
27
|
import { toAccount } from "viem/accounts"
|
|
27
28
|
import { getChainId, signMessage } from "viem/actions"
|
|
28
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
WEBAUTHN_SIGNER_CONTRACT_V0_0_1,
|
|
31
|
+
WEBAUTHN_SIGNER_CONTRACT_V0_0_2
|
|
32
|
+
} from "../constants.js"
|
|
29
33
|
import type { ModularSigner, ModularSignerParams } from "../types.js"
|
|
30
34
|
|
|
35
|
+
export enum WebAuthnSignerVersion {
|
|
36
|
+
V0_0_1 = "0.0.1",
|
|
37
|
+
V0_0_2 = "0.0.2"
|
|
38
|
+
}
|
|
39
|
+
|
|
31
40
|
export type WebAuthnModularSignerParams = ModularSignerParams & {
|
|
32
41
|
webAuthnKey: WebAuthnKey
|
|
42
|
+
webAuthnSignerVersion: WebAuthnSignerVersion
|
|
33
43
|
}
|
|
34
44
|
|
|
35
45
|
const signMessageUsingWebAuthn = async (
|
|
@@ -111,16 +121,35 @@ const signMessageUsingWebAuthn = async (
|
|
|
111
121
|
return encodedSignature
|
|
112
122
|
}
|
|
113
123
|
|
|
124
|
+
export const getWebAuthnSignerAddress = (
|
|
125
|
+
webAuthnSignerVersion: WebAuthnSignerVersion,
|
|
126
|
+
webAuthnSignerAddress?: Address
|
|
127
|
+
): Address => {
|
|
128
|
+
if (webAuthnSignerAddress) return webAuthnSignerAddress
|
|
129
|
+
switch (webAuthnSignerVersion) {
|
|
130
|
+
case WebAuthnSignerVersion.V0_0_1:
|
|
131
|
+
return WEBAUTHN_SIGNER_CONTRACT_V0_0_1
|
|
132
|
+
case WebAuthnSignerVersion.V0_0_2:
|
|
133
|
+
return WEBAUTHN_SIGNER_CONTRACT_V0_0_2
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
114
137
|
export const toWebAuthnSigner = async <
|
|
115
138
|
TTransport extends Transport = Transport,
|
|
116
139
|
TChain extends Chain | undefined = Chain | undefined
|
|
117
140
|
>(
|
|
118
141
|
client: Client<TTransport, TChain, undefined>,
|
|
119
142
|
{
|
|
120
|
-
signerContractAddress
|
|
121
|
-
webAuthnKey
|
|
143
|
+
signerContractAddress,
|
|
144
|
+
webAuthnKey,
|
|
145
|
+
webAuthnSignerVersion
|
|
122
146
|
}: WebAuthnModularSignerParams
|
|
123
147
|
): Promise<ModularSigner> => {
|
|
148
|
+
const webAuthnSignerAddress = getWebAuthnSignerAddress(
|
|
149
|
+
webAuthnSignerVersion,
|
|
150
|
+
signerContractAddress
|
|
151
|
+
)
|
|
152
|
+
|
|
124
153
|
const chainId = await getChainId(client)
|
|
125
154
|
|
|
126
155
|
const account: LocalAccount = toAccount({
|
|
@@ -161,7 +190,7 @@ export const toWebAuthnSigner = async <
|
|
|
161
190
|
|
|
162
191
|
return {
|
|
163
192
|
account,
|
|
164
|
-
signerContractAddress,
|
|
193
|
+
signerContractAddress: webAuthnSignerAddress,
|
|
165
194
|
getSignerData: () => {
|
|
166
195
|
return encodeAbiParameters(
|
|
167
196
|
[
|