permissionless 0.2.16 → 0.2.17
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/CHANGELOG.md +6 -0
- package/_cjs/accounts/kernel/utils/signMessage.js +1 -2
- package/_cjs/accounts/kernel/utils/signMessage.js.map +1 -1
- package/_cjs/accounts/kernel/utils/signTypedData.js +1 -2
- package/_cjs/accounts/kernel/utils/signTypedData.js.map +1 -1
- package/_cjs/accounts/kernel/utils/wrapMessageHash.js +4 -1
- package/_cjs/accounts/kernel/utils/wrapMessageHash.js.map +1 -1
- package/_esm/accounts/kernel/utils/signMessage.js +1 -2
- package/_esm/accounts/kernel/utils/signMessage.js.map +1 -1
- package/_esm/accounts/kernel/utils/signTypedData.js +1 -2
- package/_esm/accounts/kernel/utils/signTypedData.js.map +1 -1
- package/_esm/accounts/kernel/utils/wrapMessageHash.js +4 -1
- package/_esm/accounts/kernel/utils/wrapMessageHash.js.map +1 -1
- package/_types/accounts/kernel/utils/signMessage.d.ts.map +1 -1
- package/_types/accounts/kernel/utils/signTypedData.d.ts.map +1 -1
- package/_types/accounts/kernel/utils/wrapMessageHash.d.ts.map +1 -1
- package/accounts/kernel/utils/signMessage.ts +1 -2
- package/accounts/kernel/utils/signTypedData.ts +1 -2
- package/accounts/kernel/utils/wrapMessageHash.ts +10 -6
- package/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.test.ts +16 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.signMessage = signMessage;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
|
-
const isKernelV2_js_1 = require("./isKernelV2.js");
|
|
6
5
|
const wrapMessageHash_js_1 = require("./wrapMessageHash.js");
|
|
7
6
|
async function signMessage({ message, owner, accountAddress, kernelVersion: accountVersion, chainId }) {
|
|
8
|
-
if (
|
|
7
|
+
if (accountVersion === "0.2.1" || accountVersion === "0.2.2") {
|
|
9
8
|
return owner.signMessage({
|
|
10
9
|
message
|
|
11
10
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":";;AAYA,kCA6BC;AAzCD,+BAKa;AAEb,6DAG6B;AAEtB,KAAK,UAAU,WAAW,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,cAAc,EACd,aAAa,EAAE,cAAc,EAC7B,OAAO,EAKc;IACrB,IAAI,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC,WAAW,CAAC;YACrB,OAAO;SACV,CAAC,CAAA;IACN,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,oCAAe,EAAC,IAAA,kBAAW,EAAC,OAAO,CAAC,EAAE;QAC7D,aAAa,EAAE,cAAc;QAC7B,cAAc;QACd,OAAO;KAIV,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,WAAW,CAAC;QACrB,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.signTypedData = signTypedData;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
|
-
const isKernelV2_js_1 = require("./isKernelV2.js");
|
|
6
5
|
const wrapMessageHash_js_1 = require("./wrapMessageHash.js");
|
|
7
6
|
async function signTypedData(parameters) {
|
|
8
7
|
const { owner, accountAddress, kernelVersion: accountVersion, chainId, ...typedData } = parameters;
|
|
9
|
-
if (
|
|
8
|
+
if (accountVersion === "0.2.1" || accountVersion === "0.2.2") {
|
|
10
9
|
return owner.signTypedData({
|
|
11
10
|
...typedData
|
|
12
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":";;AAaA,sCA+CC;AA5DD,+BAOa;AACb,6DAG6B;AAEtB,KAAK,UAAU,aAAa,CAC/B,UAGK;IAEL,MAAM,EACF,KAAK,EACL,cAAc,EACd,aAAa,EAAE,cAAc,EAC7B,OAAO,EACP,GAAG,SAAS,EACf,GAAG,UAAU,CAAA;IAEd,IAAI,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC,aAAa,CAAC;YACvB,GAAG,SAAS;SACf,CAAC,CAAA;IACN,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACjE,MAAM,KAAK,GAAG;QACV,YAAY,EAAE,IAAA,8BAAuB,EAAC;YAClC,MAAM,EAAE,MAAM;SACjB,CAAC;QACF,GAAG,MAAM;KACZ,CAAA;IAID,IAAA,wBAAiB,EAAC;QACd,MAAM;QACN,OAAO;QACP,WAAW;QACX,KAAK;KACR,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,IAAA,oBAAa,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAExE,MAAM,kBAAkB,GAAG,IAAA,oCAAe,EAAC,SAAS,EAAE;QAClD,aAAa,EAAE,cAAc;QAC7B,cAAc;QACd,OAAO,EAAE,OAAO;KACnB,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,WAAW,CAAC;QACrB,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.wrapMessageHash = void 0;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const viem_2 = require("viem");
|
|
6
|
+
const isKernelV2_js_1 = require("./isKernelV2.js");
|
|
6
7
|
const wrapMessageHash = (messageHash, { accountAddress, kernelVersion, chainId }) => {
|
|
7
8
|
const _domainSeparator = (0, viem_2.domainSeparator)({
|
|
8
9
|
domain: {
|
|
@@ -12,7 +13,9 @@ const wrapMessageHash = (messageHash, { accountAddress, kernelVersion, chainId }
|
|
|
12
13
|
verifyingContract: accountAddress
|
|
13
14
|
}
|
|
14
15
|
});
|
|
15
|
-
const wrappedMessageHash = (0,
|
|
16
|
+
const wrappedMessageHash = (0, isKernelV2_js_1.isKernelV2)(kernelVersion)
|
|
17
|
+
? messageHash
|
|
18
|
+
: (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([{ type: "bytes32" }, { type: "bytes32" }], [(0, viem_1.keccak256)((0, viem_1.stringToHex)("Kernel(bytes32 hash)")), messageHash]));
|
|
16
19
|
const digest = (0, viem_1.keccak256)((0, viem_1.concatHex)(["0x1901", _domainSeparator, wrappedMessageHash]));
|
|
17
20
|
return digest;
|
|
18
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapMessageHash.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":";;;AAAA,+BAMa;AACb,+BAAoD;
|
|
1
|
+
{"version":3,"file":"wrapMessageHash.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":";;;AAAA,+BAMa;AACb,+BAAoD;AAEpD,mDAA4C;AAQrC,MAAM,eAAe,GAAG,CAC3B,WAAgB,EAChB,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAyB,EACnE,EAAE;IACA,MAAM,gBAAgB,GAAG,IAAA,sBAAe,EAAC;QACrC,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;YACtB,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;KACJ,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,IAAA,0BAAU,EAAC,aAAa,CAAC;QAChD,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,IAAA,gBAAS,EACL,IAAA,0BAAmB,EACf,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,IAAA,gBAAS,EAAC,IAAA,kBAAW,EAAC,sBAAsB,CAAC,CAAC,EAAE,WAAW,CAAC,CAChE,CACJ,CAAA;IAEP,MAAM,MAAM,GAAG,IAAA,gBAAS,EACpB,IAAA,gBAAS,EAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAC9D,CAAA;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AAzBY,QAAA,eAAe,mBAyB3B"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { hashMessage } from "viem";
|
|
2
2
|
import { signMessage as _signMessage } from "viem/actions";
|
|
3
|
-
import { isKernelV2 } from "./isKernelV2.js";
|
|
4
3
|
import { wrapMessageHash } from "./wrapMessageHash.js";
|
|
5
4
|
export async function signMessage({ message, owner, accountAddress, kernelVersion: accountVersion, chainId }) {
|
|
6
|
-
if (
|
|
5
|
+
if (accountVersion === "0.2.1" || accountVersion === "0.2.2") {
|
|
7
6
|
return owner.signMessage({
|
|
8
7
|
message
|
|
9
8
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAEH,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,cAAc,EACd,aAAa,EAAE,cAAc,EAC7B,OAAO,EAKc;IACrB,IAAI,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC,WAAW,CAAC;YACrB,OAAO;SACV,CAAC,CAAA;IACN,CAAC;IAED,MAAM,kBAAkB,GAAG,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QAC7D,aAAa,EAAE,cAAc;QAC7B,cAAc;QACd,OAAO;QACP,wBAAwB;QACxB,wBAAwB;QACxB,wDAAwD;KAC3D,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,WAAW,CAAC;QACrB,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { getTypesForEIP712Domain, hashTypedData, validateTypedData } from "viem";
|
|
2
|
-
import { isKernelV2 } from "./isKernelV2.js";
|
|
3
2
|
import { wrapMessageHash } from "./wrapMessageHash.js";
|
|
4
3
|
export async function signTypedData(parameters) {
|
|
5
4
|
const { owner, accountAddress, kernelVersion: accountVersion, chainId, ...typedData } = parameters;
|
|
6
|
-
if (
|
|
5
|
+
if (accountVersion === "0.2.1" || accountVersion === "0.2.2") {
|
|
7
6
|
return owner.signTypedData({
|
|
8
7
|
...typedData
|
|
9
8
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,
|
|
1
|
+
{"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,EAEH,eAAe,EAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,UAGK;IAEL,MAAM,EACF,KAAK,EACL,cAAc,EACd,aAAa,EAAE,cAAc,EAC7B,OAAO,EACP,GAAG,SAAS,EACf,GAAG,UAAU,CAAA;IAEd,IAAI,cAAc,KAAK,OAAO,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC,aAAa,CAAC;YACvB,GAAG,SAAS;SACf,CAAC,CAAA;IACN,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IACjE,MAAM,KAAK,GAAG;QACV,YAAY,EAAE,uBAAuB,CAAC;YAClC,MAAM,EAAE,MAAM;SACjB,CAAC;QACF,GAAG,MAAM;KACZ,CAAA;IAED,uFAAuF;IACvF,qDAAqD;IACrD,iBAAiB,CAAC;QACd,MAAM;QACN,OAAO;QACP,WAAW;QACX,KAAK;KACR,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;IAExE,MAAM,kBAAkB,GAAG,eAAe,CAAC,SAAS,EAAE;QAClD,aAAa,EAAE,cAAc;QAC7B,cAAc;QACd,OAAO,EAAE,OAAO;KACnB,CAAC,CAAA;IAEF,OAAO,KAAK,CAAC,WAAW,CAAC;QACrB,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { concatHex, encodeAbiParameters, keccak256, stringToHex } from "viem";
|
|
2
2
|
import { domainSeparator } from "viem";
|
|
3
|
+
import { isKernelV2 } from "./isKernelV2.js";
|
|
3
4
|
export const wrapMessageHash = (messageHash, { accountAddress, kernelVersion, chainId }) => {
|
|
4
5
|
const _domainSeparator = domainSeparator({
|
|
5
6
|
domain: {
|
|
@@ -9,7 +10,9 @@ export const wrapMessageHash = (messageHash, { accountAddress, kernelVersion, ch
|
|
|
9
10
|
verifyingContract: accountAddress
|
|
10
11
|
}
|
|
11
12
|
});
|
|
12
|
-
const wrappedMessageHash =
|
|
13
|
+
const wrappedMessageHash = isKernelV2(kernelVersion)
|
|
14
|
+
? messageHash
|
|
15
|
+
: keccak256(encodeAbiParameters([{ type: "bytes32" }, { type: "bytes32" }], [keccak256(stringToHex("Kernel(bytes32 hash)")), messageHash]));
|
|
13
16
|
const digest = keccak256(concatHex(["0x1901", _domainSeparator, wrappedMessageHash]));
|
|
14
17
|
return digest;
|
|
15
18
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapMessageHash.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAgB,eAAe,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"wrapMessageHash.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EACT,mBAAmB,EACnB,SAAS,EACT,WAAW,EACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAgB,eAAe,EAAE,MAAM,MAAM,CAAA;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAQ5C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC3B,WAAgB,EAChB,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAyB,EACnE,EAAE;IACA,MAAM,gBAAgB,GAAG,eAAe,CAAC;QACrC,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;YACtB,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;KACJ,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC;QAChD,CAAC,CAAC,WAAW;QACb,CAAC,CAAC,SAAS,CACL,mBAAmB,CACf,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAC1C,CAAC,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,EAAE,WAAW,CAAC,CAChE,CACJ,CAAA;IAEP,MAAM,MAAM,GAAG,SAAS,CACpB,SAAS,CAAC,CAAC,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC,CAC9D,CAAA;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAEvB,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EAEvB,MAAM,MAAM,CAAA;AAEb,OAAO,EACH,KAAK,qBAAqB,EAE7B,MAAM,sBAAsB,CAAA;AAE7B,wBAAsB,WAAW,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,cAAc,EACd,aAAa,EAAE,cAAc,EAC7B,OAAO,EACV,EAAE;IACC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,eAAe,CAAA;IACxB,KAAK,EAAE,YAAY,CAAA;CACtB,GAAG,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmBzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAI3B,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"signTypedData.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAI3B,MAAM,MAAM,CAAA;AACb,OAAO,EACH,KAAK,qBAAqB,EAE7B,MAAM,sBAAsB,CAAA;AAE7B,wBAAsB,aAAa,CAC/B,UAAU,EAAE,mBAAmB,GAC3B,qBAAqB,GAAG;IACpB,KAAK,EAAE,YAAY,CAAA;CACtB,GACN,OAAO,CAAC,uBAAuB,CAAC,CA0ClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapMessageHash.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,GAAG,EAKX,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"wrapMessageHash.d.ts","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,GAAG,EAKX,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,OAAO,EAAmB,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAGpE,MAAM,MAAM,qBAAqB,GAAG;IAChC,aAAa,EAAE,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;IAC3C,cAAc,EAAE,OAAO,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,eAAe,gBACX,GAAG,8CAC4B,qBAAqB,kBAuBpE,CAAA"}
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
hashMessage
|
|
6
6
|
} from "viem"
|
|
7
7
|
import { signMessage as _signMessage } from "viem/actions"
|
|
8
|
-
import { isKernelV2 } from "./isKernelV2.js"
|
|
9
8
|
import {
|
|
10
9
|
type WrapMessageHashParams,
|
|
11
10
|
wrapMessageHash
|
|
@@ -22,7 +21,7 @@ export async function signMessage({
|
|
|
22
21
|
message: SignableMessage
|
|
23
22
|
owner: LocalAccount
|
|
24
23
|
} & WrapMessageHashParams): Promise<SignMessageReturnType> {
|
|
25
|
-
if (
|
|
24
|
+
if (accountVersion === "0.2.1" || accountVersion === "0.2.2") {
|
|
26
25
|
return owner.signMessage({
|
|
27
26
|
message
|
|
28
27
|
})
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
hashTypedData,
|
|
7
7
|
validateTypedData
|
|
8
8
|
} from "viem"
|
|
9
|
-
import { isKernelV2 } from "./isKernelV2.js"
|
|
10
9
|
import {
|
|
11
10
|
type WrapMessageHashParams,
|
|
12
11
|
wrapMessageHash
|
|
@@ -26,7 +25,7 @@ export async function signTypedData(
|
|
|
26
25
|
...typedData
|
|
27
26
|
} = parameters
|
|
28
27
|
|
|
29
|
-
if (
|
|
28
|
+
if (accountVersion === "0.2.1" || accountVersion === "0.2.2") {
|
|
30
29
|
return owner.signTypedData({
|
|
31
30
|
...typedData
|
|
32
31
|
})
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
} from "viem"
|
|
8
8
|
import { type Address, domainSeparator } from "viem"
|
|
9
9
|
import type { KernelVersion } from "../toEcdsaKernelSmartAccount.js"
|
|
10
|
+
import { isKernelV2 } from "./isKernelV2.js"
|
|
10
11
|
|
|
11
12
|
export type WrapMessageHashParams = {
|
|
12
13
|
kernelVersion: KernelVersion<"0.6" | "0.7">
|
|
@@ -26,12 +27,15 @@ export const wrapMessageHash = (
|
|
|
26
27
|
verifyingContract: accountAddress
|
|
27
28
|
}
|
|
28
29
|
})
|
|
29
|
-
const wrappedMessageHash =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
const wrappedMessageHash = isKernelV2(kernelVersion)
|
|
31
|
+
? messageHash
|
|
32
|
+
: keccak256(
|
|
33
|
+
encodeAbiParameters(
|
|
34
|
+
[{ type: "bytes32" }, { type: "bytes32" }],
|
|
35
|
+
[keccak256(stringToHex("Kernel(bytes32 hash)")), messageHash]
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
|
|
35
39
|
const digest = keccak256(
|
|
36
40
|
concatHex(["0x1901", _domainSeparator, wrappedMessageHash])
|
|
37
41
|
)
|
|
@@ -24,7 +24,8 @@ describe.each(getCoreSmartAccounts())(
|
|
|
24
24
|
({
|
|
25
25
|
getSmartAccountClient,
|
|
26
26
|
supportsEntryPointV06,
|
|
27
|
-
supportsEntryPointV07
|
|
27
|
+
supportsEntryPointV07,
|
|
28
|
+
name
|
|
28
29
|
}) => {
|
|
29
30
|
testWithRpc.skipIf(!supportsEntryPointV06)(
|
|
30
31
|
"prepareUserOperationForErc20Paymaster_v06",
|
|
@@ -94,18 +95,22 @@ describe.each(getCoreSmartAccounts())(
|
|
|
94
95
|
|
|
95
96
|
expect(receipt).toBeTruthy()
|
|
96
97
|
expect(receipt).toBeTruthy()
|
|
97
|
-
expect(receipt.success).toBeTruthy()
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
if (name !== "Kernel 0.2.1") {
|
|
100
|
+
expect(receipt.success).toBeTruthy()
|
|
101
|
+
const FINAL_TOKEN_BALANCE = await tokenBalanceOf(
|
|
102
|
+
smartAccountClient.account.address,
|
|
103
|
+
rpc.anvilRpc
|
|
104
|
+
)
|
|
105
|
+
const FINAL_ETH_BALANCE = await publicClient.getBalance({
|
|
106
|
+
address: smartAccountClient.account.address
|
|
107
|
+
})
|
|
106
108
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
expect(FINAL_TOKEN_BALANCE).toBeLessThan(
|
|
110
|
+
INITIAL_TOKEN_BALANCE
|
|
111
|
+
) // Token balance should be deducted
|
|
112
|
+
expect(FINAL_ETH_BALANCE).toEqual(INTIAL_ETH_BALANCE) // There should be no ETH balance change
|
|
113
|
+
}
|
|
109
114
|
}
|
|
110
115
|
)
|
|
111
116
|
|