permissionless 0.2.16 → 0.2.18
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 +12 -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/_cjs/accounts/thirdweb/toThirdwebSmartAccount.js +7 -3
- package/_cjs/accounts/thirdweb/toThirdwebSmartAccount.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/_esm/accounts/thirdweb/toThirdwebSmartAccount.js +7 -3
- package/_esm/accounts/thirdweb/toThirdwebSmartAccount.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/_types/accounts/thirdweb/toThirdwebSmartAccount.d.ts +7 -2
- package/_types/accounts/thirdweb/toThirdwebSmartAccount.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/accounts/thirdweb/toThirdwebSmartAccount.ts +13 -3
- package/experimental/pimlico/utils/prepareUserOperationForErc20Paymaster.test.ts +16 -11
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# permissionless
|
|
2
2
|
|
|
3
|
+
## 0.2.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b23471a3daa08cda57d09366c01356f38564fd7a: Added thirdweb factory version
|
|
8
|
+
|
|
9
|
+
## 0.2.17
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 7ad534ed914b53e595844ca029afd0c8a0377e56: Fixed signMessage & signTypeData for Kernel version 0.2.3 and 0.2.4
|
|
14
|
+
|
|
3
15
|
## 0.2.16
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -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"}
|
|
@@ -14,10 +14,14 @@ const signMessage_js_1 = require("./utils/signMessage.js");
|
|
|
14
14
|
const signTypedData_js_1 = require("./utils/signTypedData.js");
|
|
15
15
|
exports.THIRDWEB_ADDRESSES = {
|
|
16
16
|
"0.6": {
|
|
17
|
-
|
|
17
|
+
"1.5.20": {
|
|
18
|
+
factoryAddress: "0x85e23b94e7F5E9cC1fF78BCe78cfb15B81f0DF00"
|
|
19
|
+
}
|
|
18
20
|
},
|
|
19
21
|
"0.7": {
|
|
20
|
-
|
|
22
|
+
"1.5.20": {
|
|
23
|
+
factoryAddress: "0x4be0ddfebca9a5a4a617dee4dece99e7c862dceb"
|
|
24
|
+
}
|
|
21
25
|
}
|
|
22
26
|
};
|
|
23
27
|
async function toThirdwebSmartAccount(parameters) {
|
|
@@ -28,7 +32,7 @@ async function toThirdwebSmartAccount(parameters) {
|
|
|
28
32
|
: account_abstraction_1.entryPoint07Abi,
|
|
29
33
|
version: parameters.entryPoint?.version ?? "0.7"
|
|
30
34
|
};
|
|
31
|
-
const { owner, client, salt, address, factoryAddress = exports.THIRDWEB_ADDRESSES[entryPoint.version].factoryAddress } = parameters;
|
|
35
|
+
const { owner, client, salt, version, address, factoryAddress = exports.THIRDWEB_ADDRESSES[entryPoint.version][version ?? "1.5.20"].factoryAddress } = parameters;
|
|
32
36
|
const admin = await (0, toOwner_js_1.toOwner)({ owner });
|
|
33
37
|
let accountAddress = address;
|
|
34
38
|
let chainId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toThirdwebSmartAccount.js","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"toThirdwebSmartAccount.js","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -13,10 +13,14 @@ import { signTypedData } from "./utils/signTypedData.js";
|
|
|
13
13
|
*/
|
|
14
14
|
export const THIRDWEB_ADDRESSES = {
|
|
15
15
|
"0.6": {
|
|
16
|
-
|
|
16
|
+
"1.5.20": {
|
|
17
|
+
factoryAddress: "0x85e23b94e7F5E9cC1fF78BCe78cfb15B81f0DF00"
|
|
18
|
+
}
|
|
17
19
|
},
|
|
18
20
|
"0.7": {
|
|
19
|
-
|
|
21
|
+
"1.5.20": {
|
|
22
|
+
factoryAddress: "0x4be0ddfebca9a5a4a617dee4dece99e7c862dceb"
|
|
23
|
+
}
|
|
20
24
|
}
|
|
21
25
|
};
|
|
22
26
|
/**
|
|
@@ -32,7 +36,7 @@ export async function toThirdwebSmartAccount(parameters) {
|
|
|
32
36
|
: entryPoint07Abi,
|
|
33
37
|
version: parameters.entryPoint?.version ?? "0.7"
|
|
34
38
|
};
|
|
35
|
-
const { owner, client, salt, address, factoryAddress = THIRDWEB_ADDRESSES[entryPoint.version].factoryAddress } = parameters;
|
|
39
|
+
const { owner, client, salt, version, address, factoryAddress = THIRDWEB_ADDRESSES[entryPoint.version][version ?? "1.5.20"].factoryAddress } = parameters;
|
|
36
40
|
const admin = await toOwner({ owner });
|
|
37
41
|
let accountAddress = address;
|
|
38
42
|
let chainId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toThirdwebSmartAccount.js","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAA;AAEzE,OAAO,EAIH,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAyB,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,KAAK,EAAE;QACH,
|
|
1
|
+
{"version":3,"file":"toThirdwebSmartAccount.js","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -6,10 +6,14 @@ import { type EthereumProvider } from "../../utils/toOwner.js";
|
|
|
6
6
|
*/
|
|
7
7
|
export declare const THIRDWEB_ADDRESSES: {
|
|
8
8
|
"0.6": {
|
|
9
|
-
|
|
9
|
+
"1.5.20": {
|
|
10
|
+
factoryAddress: Address;
|
|
11
|
+
};
|
|
10
12
|
};
|
|
11
13
|
"0.7": {
|
|
12
|
-
|
|
14
|
+
"1.5.20": {
|
|
15
|
+
factoryAddress: Address;
|
|
16
|
+
};
|
|
13
17
|
};
|
|
14
18
|
};
|
|
15
19
|
export type ToThirdwebSmartAccountParameters<entryPointVersion extends "0.6" | "0.7" = "0.7"> = {
|
|
@@ -20,6 +24,7 @@ export type ToThirdwebSmartAccountParameters<entryPointVersion extends "0.6" | "
|
|
|
20
24
|
address: Address;
|
|
21
25
|
version: entryPointVersion;
|
|
22
26
|
};
|
|
27
|
+
version?: "1.5.20";
|
|
23
28
|
salt?: string;
|
|
24
29
|
address?: Address;
|
|
25
30
|
secp256k1VerificationFacetAddress?: Address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toThirdwebSmartAccount.d.ts","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,KAAK,EACL,SAAS,EAET,YAAY,EACf,MAAM,MAAM,CAAA;AAIb,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAE/B,eAAe,EACf,eAAe,EAIlB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,KAAK,gBAAgB,EAAW,MAAM,wBAAwB,CAAA;AAOvE;;GAEG;AACH,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"toThirdwebSmartAccount.d.ts","sourceRoot":"","sources":["../../../accounts/thirdweb/toThirdwebSmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,YAAY,EACZ,KAAK,EACL,SAAS,EAET,YAAY,EACf,MAAM,MAAM,CAAA;AAIb,OAAO,EACH,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAE/B,eAAe,EACf,eAAe,EAIlB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,KAAK,gBAAgB,EAAW,MAAM,wBAAwB,CAAA;AAOvE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;4BAIiC,OAAO;;;;;4BAMP,OAAO;;;CAGtE,CAAA;AAED,MAAM,MAAM,gCAAgC,CACxC,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,IAC/C;IACA,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,KAAK,CACN,gBAAgB,GAChB,YAAY,CAAC,SAAS,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,CAAC,GACnD,YAAY,CACjB,CAAA;IACD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,UAAU,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAA;QAChB,OAAO,EAAE,iBAAiB,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,QAAQ,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iCAAiC,CAAC,EAAE,OAAO,CAAA;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kCAAkC,CAC1C,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,IAC/C,MAAM,CACN,0BAA0B,CACtB,iBAAiB,SAAS,KAAK,GACzB,OAAO,eAAe,GACtB,OAAO,eAAe,EAC5B,iBAAiB,CACpB,EACD;IAAE,IAAI,EAAE,WAAW,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,CAC5D,CAAA;AAED,MAAM,MAAM,gCAAgC,CACxC,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,IAC/C,YAAY,CAAC,kCAAkC,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEvE;;;;GAIG;AACH,wBAAsB,sBAAsB,CACxC,iBAAiB,SAAS,KAAK,GAAG,KAAK,GAAG,KAAK,EAE/C,UAAU,EAAE,gCAAgC,CAAC,iBAAiB,CAAC,GAChE,OAAO,CAAC,gCAAgC,CAAC,iBAAiB,CAAC,CAAC,CAkH9D"}
|
|
@@ -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
|
)
|
|
@@ -36,10 +36,16 @@ import { signTypedData } from "./utils/signTypedData.js"
|
|
|
36
36
|
*/
|
|
37
37
|
export const THIRDWEB_ADDRESSES = {
|
|
38
38
|
"0.6": {
|
|
39
|
-
|
|
39
|
+
"1.5.20": {
|
|
40
|
+
factoryAddress:
|
|
41
|
+
"0x85e23b94e7F5E9cC1fF78BCe78cfb15B81f0DF00" as Address
|
|
42
|
+
}
|
|
40
43
|
},
|
|
41
44
|
"0.7": {
|
|
42
|
-
|
|
45
|
+
"1.5.20": {
|
|
46
|
+
factoryAddress:
|
|
47
|
+
"0x4be0ddfebca9a5a4a617dee4dece99e7c862dceb" as Address
|
|
48
|
+
}
|
|
43
49
|
}
|
|
44
50
|
}
|
|
45
51
|
|
|
@@ -57,6 +63,7 @@ export type ToThirdwebSmartAccountParameters<
|
|
|
57
63
|
address: Address
|
|
58
64
|
version: entryPointVersion
|
|
59
65
|
}
|
|
66
|
+
version?: "1.5.20"
|
|
60
67
|
salt?: string
|
|
61
68
|
address?: Address
|
|
62
69
|
secp256k1VerificationFacetAddress?: Address
|
|
@@ -102,8 +109,11 @@ export async function toThirdwebSmartAccount<
|
|
|
102
109
|
owner,
|
|
103
110
|
client,
|
|
104
111
|
salt,
|
|
112
|
+
version,
|
|
105
113
|
address,
|
|
106
|
-
factoryAddress = THIRDWEB_ADDRESSES[entryPoint.version]
|
|
114
|
+
factoryAddress = THIRDWEB_ADDRESSES[entryPoint.version][
|
|
115
|
+
version ?? "1.5.20"
|
|
116
|
+
].factoryAddress
|
|
107
117
|
} = parameters
|
|
108
118
|
|
|
109
119
|
const admin = await toOwner({ owner })
|
|
@@ -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
|
|