permissionless 0.1.19 → 0.1.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/accounts/kernel/abi/KernelV3AccountAbi.js +91 -0
  3. package/_cjs/accounts/kernel/abi/KernelV3AccountAbi.js.map +1 -0
  4. package/_cjs/accounts/kernel/abi/KernelV3MetaFactoryAbi.js +21 -0
  5. package/_cjs/accounts/kernel/abi/KernelV3MetaFactoryAbi.js.map +1 -0
  6. package/_cjs/accounts/kernel/constants.js +27 -0
  7. package/_cjs/accounts/kernel/constants.js.map +1 -0
  8. package/_cjs/accounts/kernel/signerToEcdsaKernelSmartAccount.js +138 -45
  9. package/_cjs/accounts/kernel/signerToEcdsaKernelSmartAccount.js.map +1 -1
  10. package/_cjs/accounts/kernel/utils/encodeCallData.js +89 -0
  11. package/_cjs/accounts/kernel/utils/encodeCallData.js.map +1 -0
  12. package/_cjs/accounts/kernel/utils/getExecMode.js +15 -0
  13. package/_cjs/accounts/kernel/utils/getExecMode.js.map +1 -0
  14. package/_cjs/accounts/kernel/utils/getNonceKey.js +24 -0
  15. package/_cjs/accounts/kernel/utils/getNonceKey.js.map +1 -0
  16. package/_cjs/accounts/kernel/utils/signMessage.js +28 -0
  17. package/_cjs/accounts/kernel/utils/signMessage.js.map +1 -0
  18. package/_cjs/accounts/kernel/utils/signTypedData.js +40 -0
  19. package/_cjs/accounts/kernel/utils/signTypedData.js.map +1 -0
  20. package/_cjs/accounts/kernel/utils/wrapMessageHash.js +20 -0
  21. package/_cjs/accounts/kernel/utils/wrapMessageHash.js.map +1 -0
  22. package/_esm/accounts/kernel/abi/KernelV3AccountAbi.js +88 -0
  23. package/_esm/accounts/kernel/abi/KernelV3AccountAbi.js.map +1 -0
  24. package/_esm/accounts/kernel/abi/KernelV3MetaFactoryAbi.js +18 -0
  25. package/_esm/accounts/kernel/abi/KernelV3MetaFactoryAbi.js.map +1 -0
  26. package/_esm/accounts/kernel/constants.js +24 -0
  27. package/_esm/accounts/kernel/constants.js.map +1 -0
  28. package/_esm/accounts/kernel/signerToEcdsaKernelSmartAccount.js +165 -52
  29. package/_esm/accounts/kernel/signerToEcdsaKernelSmartAccount.js.map +1 -1
  30. package/_esm/accounts/kernel/utils/encodeCallData.js +89 -0
  31. package/_esm/accounts/kernel/utils/encodeCallData.js.map +1 -0
  32. package/_esm/accounts/kernel/utils/getExecMode.js +12 -0
  33. package/_esm/accounts/kernel/utils/getExecMode.js.map +1 -0
  34. package/_esm/accounts/kernel/utils/getNonceKey.js +21 -0
  35. package/_esm/accounts/kernel/utils/getNonceKey.js.map +1 -0
  36. package/_esm/accounts/kernel/utils/signMessage.js +24 -0
  37. package/_esm/accounts/kernel/utils/signMessage.js.map +1 -0
  38. package/_esm/accounts/kernel/utils/signTypedData.js +38 -0
  39. package/_esm/accounts/kernel/utils/signTypedData.js.map +1 -0
  40. package/_esm/accounts/kernel/utils/wrapMessageHash.js +16 -0
  41. package/_esm/accounts/kernel/utils/wrapMessageHash.js.map +1 -0
  42. package/_types/accounts/kernel/abi/KernelV3AccountAbi.d.ts +108 -0
  43. package/_types/accounts/kernel/abi/KernelV3AccountAbi.d.ts.map +1 -0
  44. package/_types/accounts/kernel/abi/KernelV3MetaFactoryAbi.d.ts +24 -0
  45. package/_types/accounts/kernel/abi/KernelV3MetaFactoryAbi.d.ts.map +1 -0
  46. package/_types/accounts/kernel/constants.d.ts +21 -0
  47. package/_types/accounts/kernel/constants.d.ts.map +1 -0
  48. package/_types/accounts/kernel/signerToEcdsaKernelSmartAccount.d.ts +18 -5
  49. package/_types/accounts/kernel/signerToEcdsaKernelSmartAccount.d.ts.map +1 -1
  50. package/_types/accounts/kernel/utils/encodeCallData.d.ts +12 -0
  51. package/_types/accounts/kernel/utils/encodeCallData.d.ts.map +1 -0
  52. package/_types/accounts/kernel/utils/getExecMode.d.ts +7 -0
  53. package/_types/accounts/kernel/utils/getExecMode.d.ts.map +1 -0
  54. package/_types/accounts/kernel/utils/getNonceKey.d.ts +4 -0
  55. package/_types/accounts/kernel/utils/getNonceKey.d.ts.map +1 -0
  56. package/_types/accounts/kernel/utils/signMessage.d.ts +4 -0
  57. package/_types/accounts/kernel/utils/signMessage.d.ts.map +1 -0
  58. package/_types/accounts/kernel/utils/signTypedData.d.ts +4 -0
  59. package/_types/accounts/kernel/utils/signTypedData.d.ts.map +1 -0
  60. package/_types/accounts/kernel/utils/wrapMessageHash.d.ts +9 -0
  61. package/_types/accounts/kernel/utils/wrapMessageHash.d.ts.map +1 -0
  62. package/accounts/kernel/abi/KernelV3AccountAbi.ts +88 -0
  63. package/accounts/kernel/abi/KernelV3MetaFactoryAbi.ts +17 -0
  64. package/accounts/kernel/constants.ts +21 -0
  65. package/accounts/kernel/signerToEcdsaKernelSmartAccount.ts +252 -71
  66. package/accounts/kernel/utils/encodeCallData.ts +114 -0
  67. package/accounts/kernel/utils/getExecMode.ts +18 -0
  68. package/accounts/kernel/utils/getNonceKey.ts +32 -0
  69. package/accounts/kernel/utils/signMessage.ts +48 -0
  70. package/accounts/kernel/utils/signTypedData.ts +74 -0
  71. package/accounts/kernel/utils/wrapMessageHash.ts +38 -0
  72. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signMessage = void 0;
4
+ const viem_1 = require("viem");
5
+ const actions_1 = require("viem/actions");
6
+ const wrapMessageHash_1 = require("./wrapMessageHash.js");
7
+ async function signMessage(client, { account: account_ = client.account, message, accountAddress, accountVersion }) {
8
+ if (accountVersion === "0.2.2") {
9
+ return (0, actions_1.signMessage)(client, {
10
+ account: account_,
11
+ message
12
+ });
13
+ }
14
+ const wrappedMessageHash = (0, wrapMessageHash_1.wrapMessageHash)((0, viem_1.hashMessage)(message), {
15
+ accountVersion,
16
+ accountAddress,
17
+ chainId: client.chain
18
+ ? client.chain.id
19
+ : await client.extend(viem_1.publicActions).getChainId()
20
+ });
21
+ const signature = await (0, actions_1.signMessage)(client, {
22
+ account: account_,
23
+ message: { raw: wrappedMessageHash }
24
+ });
25
+ return signature;
26
+ }
27
+ exports.signMessage = signMessage;
28
+ //# sourceMappingURL=signMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signMessage.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signMessage.ts"],"names":[],"mappings":";;;AAAA,+BAUa;AACb,0CAA0D;AAC1D,uDAA+E;AAExE,KAAK,UAAU,WAAW,CAI7B,MAA2C,EAC3C,EACI,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAClC,OAAO,EACP,cAAc,EACd,cAAc,EACwC;IAE1D,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAA,qBAAY,EAAC,MAAM,EAAE;YACxB,OAAO,EAAE,QAAwB;YACjC,OAAO;SACV,CAAC,CAAA;IACN,CAAC;IAED,MAAM,kBAAkB,GAAG,IAAA,iCAAe,EAAC,IAAA,kBAAW,EAAC,OAAO,CAAC,EAAE;QAC7D,cAAc;QACd,cAAc;QACd,OAAO,EAAE,MAAM,CAAC,KAAK;YACjB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACjB,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,oBAAa,CAAC,CAAC,UAAU,EAAE;KACxD,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAY,EAAC,MAAM,EAAE;QACzC,OAAO,EAAE,QAAwB;QACjC,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AACpB,CAAC;AAjCD,kCAiCC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.signTypedData = void 0;
4
+ const viem_1 = require("viem");
5
+ const actions_1 = require("viem/actions");
6
+ const wrapMessageHash_1 = require("./wrapMessageHash.js");
7
+ async function signTypedData(client, parameters) {
8
+ const { account: account_, accountAddress, accountVersion, ...typedData } = parameters;
9
+ if (accountVersion === "0.2.2") {
10
+ return (0, actions_1.signTypedData)(client, { account: account_, ...typedData });
11
+ }
12
+ const { message, primaryType, types: _types, domain } = typedData;
13
+ const types = {
14
+ EIP712Domain: (0, viem_1.getTypesForEIP712Domain)({
15
+ domain: domain
16
+ }),
17
+ ..._types
18
+ };
19
+ (0, viem_1.validateTypedData)({
20
+ domain,
21
+ message,
22
+ primaryType,
23
+ types
24
+ });
25
+ const typedHash = (0, viem_1.hashTypedData)({ message, primaryType, types, domain });
26
+ const wrappedMessageHash = (0, wrapMessageHash_1.wrapMessageHash)(typedHash, {
27
+ accountVersion,
28
+ accountAddress,
29
+ chainId: client.chain
30
+ ? client.chain.id
31
+ : await client.extend(viem_1.publicActions).getChainId()
32
+ });
33
+ const signature = await (0, actions_1.signMessage)(client, {
34
+ account: account_,
35
+ message: { raw: wrappedMessageHash }
36
+ });
37
+ return signature;
38
+ }
39
+ exports.signTypedData = signTypedData;
40
+ //# sourceMappingURL=signTypedData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signTypedData.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/signTypedData.ts"],"names":[],"mappings":";;;AAAA,+BAaa;AAEb,0CAGqB;AACrB,uDAA+E;AAExE,KAAK,UAAU,aAAa,CAM/B,MAAyC,EACzC,UACyB;IAEzB,MAAM,EACF,OAAO,EAAE,QAAQ,EACjB,cAAc,EACd,cAAc,EACd,GAAG,SAAS,EACf,GAAG,UAAwE,CAAA;IAC5E,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,IAAA,uBAAc,EAAC,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;IACtE,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,iCAAe,EAAC,SAAS,EAAE;QAClD,cAAc;QACd,cAAc;QACd,OAAO,EAAE,MAAM,CAAC,KAAK;YACjB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACjB,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,oBAAa,CAAC,CAAC,UAAU,EAAE;KACxD,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,MAAM,IAAA,qBAAY,EAAC,MAAM,EAAE;QACzC,OAAO,EAAE,QAAwB;QACjC,OAAO,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;KACvC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AACpB,CAAC;AApDD,sCAoDC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wrapMessageHash = void 0;
4
+ const viem_1 = require("viem");
5
+ const viem_2 = require("viem");
6
+ const wrapMessageHash = (messageHash, { accountAddress, accountVersion, chainId }) => {
7
+ const _domainSeparator = (0, viem_2.domainSeparator)({
8
+ domain: {
9
+ name: "Kernel",
10
+ version: accountVersion,
11
+ chainId,
12
+ verifyingContract: accountAddress
13
+ }
14
+ });
15
+ const wrappedMessageHash = (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
+ const digest = (0, viem_1.keccak256)((0, viem_1.concatHex)(["0x1901", _domainSeparator, wrappedMessageHash]));
17
+ return digest;
18
+ };
19
+ exports.wrapMessageHash = wrapMessageHash;
20
+ //# sourceMappingURL=wrapMessageHash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapMessageHash.js","sourceRoot":"","sources":["../../../../accounts/kernel/utils/wrapMessageHash.ts"],"names":[],"mappings":";;;AAAA,+BAMa;AACb,+BAAoD;AAQ7C,MAAM,eAAe,GAAG,CAC3B,WAAgB,EAChB,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAyB,EACpE,EAAE;IACA,MAAM,gBAAgB,GAAG,IAAA,sBAAe,EAAC;QACrC,MAAM,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,cAAc;YACvB,OAAO;YACP,iBAAiB,EAAE,cAAc;SACpC;KACJ,CAAC,CAAA;IACF,MAAM,kBAAkB,GAAG,IAAA,gBAAS,EAChC,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;IACD,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;AAtBY,QAAA,eAAe,mBAsB3B"}
@@ -0,0 +1,88 @@
1
+ export const KernelV3InitAbi = [
2
+ {
3
+ type: "function",
4
+ name: "initialize",
5
+ inputs: [
6
+ {
7
+ name: "_rootValidator",
8
+ type: "bytes21",
9
+ internalType: "ValidationId"
10
+ },
11
+ { name: "hook", type: "address", internalType: "contract IHook" },
12
+ { name: "validatorData", type: "bytes", internalType: "bytes" },
13
+ { name: "hookData", type: "bytes", internalType: "bytes" }
14
+ ],
15
+ outputs: [],
16
+ stateMutability: "nonpayable"
17
+ }
18
+ ];
19
+ export const KernelV3ExecuteAbi = [
20
+ {
21
+ type: "function",
22
+ name: "execute",
23
+ inputs: [
24
+ { name: "execMode", type: "bytes32", internalType: "ExecMode" },
25
+ { name: "executionCalldata", type: "bytes", internalType: "bytes" }
26
+ ],
27
+ outputs: [],
28
+ stateMutability: "payable"
29
+ },
30
+ {
31
+ type: "function",
32
+ name: "executeFromExecutor",
33
+ inputs: [
34
+ { name: "execMode", type: "bytes32", internalType: "ExecMode" },
35
+ { name: "executionCalldata", type: "bytes", internalType: "bytes" }
36
+ ],
37
+ outputs: [
38
+ { name: "returnData", type: "bytes[]", internalType: "bytes[]" }
39
+ ],
40
+ stateMutability: "payable"
41
+ },
42
+ {
43
+ type: "function",
44
+ name: "executeUserOp",
45
+ inputs: [
46
+ {
47
+ name: "userOp",
48
+ type: "tuple",
49
+ internalType: "struct PackedUserOperation",
50
+ components: [
51
+ {
52
+ name: "sender",
53
+ type: "address",
54
+ internalType: "address"
55
+ },
56
+ { name: "nonce", type: "uint256", internalType: "uint256" },
57
+ { name: "initCode", type: "bytes", internalType: "bytes" },
58
+ { name: "callData", type: "bytes", internalType: "bytes" },
59
+ {
60
+ name: "accountGasLimits",
61
+ type: "bytes32",
62
+ internalType: "bytes32"
63
+ },
64
+ {
65
+ name: "preVerificationGas",
66
+ type: "uint256",
67
+ internalType: "uint256"
68
+ },
69
+ {
70
+ name: "gasFees",
71
+ type: "bytes32",
72
+ internalType: "bytes32"
73
+ },
74
+ {
75
+ name: "paymasterAndData",
76
+ type: "bytes",
77
+ internalType: "bytes"
78
+ },
79
+ { name: "signature", type: "bytes", internalType: "bytes" }
80
+ ]
81
+ },
82
+ { name: "userOpHash", type: "bytes32", internalType: "bytes32" }
83
+ ],
84
+ outputs: [],
85
+ stateMutability: "payable"
86
+ }
87
+ ];
88
+ //# sourceMappingURL=KernelV3AccountAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KernelV3AccountAbi.js","sourceRoot":"","sources":["../../../../accounts/kernel/abi/KernelV3AccountAbi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export const KernelV3MetaFactoryDeployWithFactoryAbi = [
2
+ {
3
+ type: "function",
4
+ name: "deployWithFactory",
5
+ inputs: [
6
+ {
7
+ name: "factory",
8
+ type: "address",
9
+ internalType: "contract KernelFactory"
10
+ },
11
+ { name: "createData", type: "bytes", internalType: "bytes" },
12
+ { name: "salt", type: "bytes32", internalType: "bytes32" }
13
+ ],
14
+ outputs: [{ name: "", type: "address", internalType: "address" }],
15
+ stateMutability: "payable"
16
+ }
17
+ ];
18
+ //# sourceMappingURL=KernelV3MetaFactoryAbi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KernelV3MetaFactoryAbi.js","sourceRoot":"","sources":["../../../../accounts/kernel/abi/KernelV3MetaFactoryAbi.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACnD;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,mBAAmB;QACzB,MAAM,EAAE;YACJ;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,wBAAwB;aACzC;YACD,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;YAC5D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;SAC7D;QACD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;QACjE,eAAe,EAAE,SAAS;KAC7B;CACK,CAAA"}
@@ -0,0 +1,24 @@
1
+ export const DUMMY_ECDSA_SIGNATURE = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
2
+ export const ROOT_MODE_KERNEL_V2 = "0x00000000";
3
+ export var CALL_TYPE;
4
+ (function (CALL_TYPE) {
5
+ CALL_TYPE["SINGLE"] = "0x00";
6
+ CALL_TYPE["BATCH"] = "0x01";
7
+ CALL_TYPE["DELEGATE_CALL"] = "0xFF";
8
+ })(CALL_TYPE || (CALL_TYPE = {}));
9
+ export var EXEC_TYPE;
10
+ (function (EXEC_TYPE) {
11
+ EXEC_TYPE["DEFAULT"] = "0x00";
12
+ EXEC_TYPE["TRY_EXEC"] = "0x01";
13
+ })(EXEC_TYPE || (EXEC_TYPE = {}));
14
+ export const VALIDATOR_TYPE = {
15
+ ROOT: "0x00",
16
+ VALIDATOR: "0x01",
17
+ PERMISSION: "0x02"
18
+ };
19
+ export var VALIDATOR_MODE;
20
+ (function (VALIDATOR_MODE) {
21
+ VALIDATOR_MODE["DEFAULT"] = "0x00";
22
+ VALIDATOR_MODE["ENABLE"] = "0x01";
23
+ })(VALIDATOR_MODE || (VALIDATOR_MODE = {}));
24
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../accounts/kernel/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,qBAAqB,GAC9B,sIAAsI,CAAA;AAC1I,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAA;AAC/C,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,2BAAc,CAAA;IACd,mCAAsB,CAAA;AAC1B,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AACD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6BAAgB,CAAA;IAChB,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AACD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;CACZ,CAAA;AACV,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB"}
@@ -1,13 +1,20 @@
1
- import { concatHex, encodeFunctionData, isAddressEqual } from "viem";
2
- import { getChainId, readContract, signMessage, signTypedData } from "viem/actions";
1
+ import { concatHex, encodeFunctionData, isAddressEqual, toHex, zeroAddress } from "viem";
2
+ import { getChainId, readContract, signMessage as _signMessage } from "viem/actions";
3
3
  import { getAccountNonce } from "../../actions/public/getAccountNonce.js";
4
4
  import { getSenderAddress } from "../../actions/public/getSenderAddress.js";
5
- import { getEntryPointVersion } from "../../utils/index.js";
5
+ import { ENTRYPOINT_ADDRESS_V06, getEntryPointVersion } from "../../utils/index.js";
6
6
  import { getUserOperationHash } from "../../utils/getUserOperationHash.js";
7
7
  import { isSmartAccountDeployed } from "../../utils/isSmartAccountDeployed.js";
8
8
  import { toSmartAccount } from "../toSmartAccount.js";
9
9
  import { SignTransactionNotSupportedBySmartAccount } from "../types.js";
10
- import { KernelExecuteAbi, KernelInitAbi } from "./abi/KernelAccountAbi.js";
10
+ import { KernelInitAbi } from "./abi/KernelAccountAbi.js";
11
+ import { KernelV3InitAbi } from "./abi/KernelV3AccountAbi.js";
12
+ import { KernelV3MetaFactoryDeployWithFactoryAbi } from "./abi/KernelV3MetaFactoryAbi.js";
13
+ import { DUMMY_ECDSA_SIGNATURE, ROOT_MODE_KERNEL_V2, VALIDATOR_TYPE } from "./constants.js";
14
+ import { encodeCallData } from "./utils/encodeCallData.js";
15
+ import { getNonceKeyWithEncoding } from "./utils/getNonceKey.js";
16
+ import { signMessage } from "./utils/signMessage.js";
17
+ import { signTypedData } from "./utils/signTypedData.js";
11
18
  /**
12
19
  * The account creation ABI for a kernel smart account (from the KernelFactory)
13
20
  */
@@ -43,35 +50,110 @@ const createAccountAbi = [
43
50
  }
44
51
  ];
45
52
  /**
46
- * Default addresses for kernel smart account
53
+ * Default addresses map for different kernel smart account versions
47
54
  */
48
- const KERNEL_ADDRESSES = {
49
- ECDSA_VALIDATOR: "0xd9AB5096a832b9ce79914329DAEE236f8Eea0390",
50
- ACCOUNT_V2_2_LOGIC: "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5",
51
- FACTORY_ADDRESS: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3"
55
+ export const KERNEL_VERSION_TO_ADDRESSES_MAP = {
56
+ "0.2.2": {
57
+ ECDSA_VALIDATOR: "0xd9AB5096a832b9ce79914329DAEE236f8Eea0390",
58
+ ACCOUNT_LOGIC: "0x0DA6a956B9488eD4dd761E59f52FDc6c8068E6B5",
59
+ FACTORY_ADDRESS: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3"
60
+ },
61
+ "0.3.0-beta": {
62
+ ECDSA_VALIDATOR: "0x8104e3Ad430EA6d354d013A6789fDFc71E671c43",
63
+ ACCOUNT_LOGIC: "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27",
64
+ FACTORY_ADDRESS: "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
65
+ META_FACTORY_ADDRESS: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5"
66
+ }
67
+ };
68
+ /**
69
+ * Get supported Kernel Smart Account version based on entryPoint
70
+ * @param entryPoint
71
+ */
72
+ const getKernelVersion = (entryPoint) => {
73
+ return entryPoint === ENTRYPOINT_ADDRESS_V06 ? "0.2.2" : "0.3.0-beta";
74
+ };
75
+ /**
76
+ * Get default addresses for Kernel Smart Account based on entryPoint or user input
77
+ * @param entryPointAddress
78
+ * @param ecdsaValidatorAddress
79
+ * @param accountLogicAddress
80
+ * @param factoryAddress
81
+ * @param metaFactoryAddress
82
+ */
83
+ const getDefaultAddresses = (entryPointAddress, { ecdsaValidatorAddress: _ecdsaValidatorAddress, accountLogicAddress: _accountLogicAddress, factoryAddress: _factoryAddress, metaFactoryAddress: _metaFactoryAddress }) => {
84
+ const kernelVersion = getKernelVersion(entryPointAddress);
85
+ const addresses = KERNEL_VERSION_TO_ADDRESSES_MAP[kernelVersion];
86
+ const ecdsaValidatorAddress = _ecdsaValidatorAddress ?? addresses.ECDSA_VALIDATOR;
87
+ const accountLogicAddress = _accountLogicAddress ?? addresses.ACCOUNT_LOGIC;
88
+ const factoryAddress = _factoryAddress ?? addresses.FACTORY_ADDRESS;
89
+ const metaFactoryAddress = _metaFactoryAddress ?? addresses?.META_FACTORY_ADDRESS ?? zeroAddress; // Meta Factory doesn't exists for Kernel v2.2
90
+ return {
91
+ ecdsaValidatorAddress,
92
+ accountLogicAddress,
93
+ factoryAddress,
94
+ metaFactoryAddress
95
+ };
96
+ };
97
+ export const getEcdsaRootIdentifierForKernelV3 = (validatorAddress) => {
98
+ return concatHex([VALIDATOR_TYPE.VALIDATOR, validatorAddress]);
99
+ };
100
+ /**
101
+ * Get the initialization data for a kernel smart account
102
+ * @param entryPoint
103
+ * @param owner
104
+ * @param ecdsaValidatorAddress
105
+ */
106
+ const getInitialisationData = ({ entryPoint: entryPointAddress, owner, ecdsaValidatorAddress }) => {
107
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
108
+ if (entryPointVersion === "v0.6") {
109
+ return encodeFunctionData({
110
+ abi: KernelInitAbi,
111
+ functionName: "initialize",
112
+ args: [ecdsaValidatorAddress, owner]
113
+ });
114
+ }
115
+ return encodeFunctionData({
116
+ abi: KernelV3InitAbi,
117
+ functionName: "initialize",
118
+ args: [
119
+ getEcdsaRootIdentifierForKernelV3(ecdsaValidatorAddress),
120
+ zeroAddress /* hookAddress */,
121
+ owner,
122
+ "0x" /* hookData */
123
+ ]
124
+ });
52
125
  };
53
126
  /**
54
127
  * Get the account initialization code for a kernel smart account
128
+ * @param entryPoint
55
129
  * @param owner
56
130
  * @param index
57
131
  * @param factoryAddress
58
132
  * @param accountLogicAddress
59
133
  * @param ecdsaValidatorAddress
60
134
  */
61
- const getAccountInitCode = async ({ owner, index, accountLogicAddress, ecdsaValidatorAddress }) => {
135
+ const getAccountInitCode = async ({ entryPoint: entryPointAddress, owner, index, factoryAddress, accountLogicAddress, ecdsaValidatorAddress }) => {
62
136
  if (!owner)
63
137
  throw new Error("Owner account not found");
138
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
64
139
  // Build the account initialization data
65
- const initialisationData = encodeFunctionData({
66
- abi: KernelInitAbi,
67
- functionName: "initialize",
68
- args: [ecdsaValidatorAddress, owner]
140
+ const initialisationData = getInitialisationData({
141
+ entryPoint: entryPointAddress,
142
+ ecdsaValidatorAddress,
143
+ owner
69
144
  });
70
145
  // Build the account init code
146
+ if (entryPointVersion === "v0.6") {
147
+ return encodeFunctionData({
148
+ abi: createAccountAbi,
149
+ functionName: "createAccount",
150
+ args: [accountLogicAddress, initialisationData, index]
151
+ });
152
+ }
71
153
  return encodeFunctionData({
72
- abi: createAccountAbi,
73
- functionName: "createAccount",
74
- args: [accountLogicAddress, initialisationData, index]
154
+ abi: KernelV3MetaFactoryDeployWithFactoryAbi,
155
+ functionName: "deployWithFactory",
156
+ args: [factoryAddress, initialisationData, toHex(index, { size: 32 })]
75
157
  });
76
158
  };
77
159
  /**
@@ -82,6 +164,7 @@ const getAccountInitCode = async ({ owner, index, accountLogicAddress, ecdsaVali
82
164
  * @param ecdsaValidatorAddress
83
165
  * @param initCodeProvider
84
166
  * @param deployedAccountAddress
167
+ * @param factoryAddress
85
168
  */
86
169
  const getAccountAddress = async ({ client, owner, entryPoint: entryPointAddress, initCodeProvider, ecdsaValidatorAddress, deployedAccountAddress, factoryAddress }) => {
87
170
  // If we got an already deployed account, ensure it's well deployed, and the validator & signer are correct
@@ -122,8 +205,16 @@ const getAccountAddress = async ({ client, owner, entryPoint: entryPointAddress,
122
205
  }
123
206
  // Find the init code for this account
124
207
  const factoryData = await initCodeProvider();
208
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
209
+ if (entryPointVersion === "v0.6") {
210
+ return getSenderAddress(client, {
211
+ initCode: concatHex([factoryAddress, factoryData]),
212
+ entryPoint: entryPointAddress
213
+ });
214
+ }
125
215
  return getSenderAddress(client, {
126
- initCode: concatHex([factoryAddress, factoryData]),
216
+ factory: factoryAddress,
217
+ factoryData: factoryData,
127
218
  entryPoint: entryPointAddress
128
219
  });
129
220
  };
@@ -138,11 +229,15 @@ const getAccountAddress = async ({ client, owner, entryPoint: entryPointAddress,
138
229
  * @param ecdsaValidatorAddress
139
230
  * @param deployedAccountAddress
140
231
  */
141
- export async function signerToEcdsaKernelSmartAccount(client, { signer, address, entryPoint: entryPointAddress, index = BigInt(0), factoryAddress = KERNEL_ADDRESSES.FACTORY_ADDRESS, accountLogicAddress = KERNEL_ADDRESSES.ACCOUNT_V2_2_LOGIC, ecdsaValidatorAddress = KERNEL_ADDRESSES.ECDSA_VALIDATOR, deployedAccountAddress }) {
232
+ export async function signerToEcdsaKernelSmartAccount(client, { signer, address, entryPoint: entryPointAddress, index = BigInt(0), factoryAddress: _factoryAddress, metaFactoryAddress: _metaFactoryAddress, accountLogicAddress: _accountLogicAddress, ecdsaValidatorAddress: _ecdsaValidatorAddress, deployedAccountAddress }) {
142
233
  const entryPointVersion = getEntryPointVersion(entryPointAddress);
143
- if (entryPointVersion !== "v0.6") {
144
- throw new Error("Only EntryPoint 0.6 is supported");
145
- }
234
+ const kernelVersion = getKernelVersion(entryPointAddress);
235
+ const { accountLogicAddress, ecdsaValidatorAddress, factoryAddress, metaFactoryAddress } = getDefaultAddresses(entryPointAddress, {
236
+ ecdsaValidatorAddress: _ecdsaValidatorAddress,
237
+ accountLogicAddress: _accountLogicAddress,
238
+ factoryAddress: _factoryAddress,
239
+ metaFactoryAddress: _metaFactoryAddress
240
+ });
146
241
  // Get the private key related account
147
242
  const viemSigner = {
148
243
  ...signer,
@@ -152,8 +247,10 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
152
247
  };
153
248
  // Helper to generate the init code for the smart account
154
249
  const generateInitCode = () => getAccountInitCode({
250
+ entryPoint: entryPointAddress,
155
251
  owner: viemSigner.address,
156
252
  index,
253
+ factoryAddress,
157
254
  accountLogicAddress,
158
255
  ecdsaValidatorAddress
159
256
  });
@@ -167,7 +264,9 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
167
264
  ecdsaValidatorAddress,
168
265
  initCodeProvider: generateInitCode,
169
266
  deployedAccountAddress,
170
- factoryAddress
267
+ factoryAddress: entryPointVersion === "v0.6"
268
+ ? factoryAddress
269
+ : metaFactoryAddress
171
270
  }),
172
271
  client.chain?.id ?? getChainId(client)
173
272
  ]);
@@ -177,16 +276,33 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
177
276
  return toSmartAccount({
178
277
  address: accountAddress,
179
278
  async signMessage({ message }) {
180
- return signMessage(client, { account: viemSigner, message });
279
+ const signature = await signMessage(client, {
280
+ account: viemSigner,
281
+ message,
282
+ accountAddress,
283
+ accountVersion: kernelVersion,
284
+ chainId
285
+ });
286
+ return concatHex([
287
+ getEcdsaRootIdentifierForKernelV3(ecdsaValidatorAddress),
288
+ signature
289
+ ]);
181
290
  },
182
291
  async signTransaction(_, __) {
183
292
  throw new SignTransactionNotSupportedBySmartAccount();
184
293
  },
185
294
  async signTypedData(typedData) {
186
- return signTypedData(client, {
295
+ const signature = await signTypedData(client, {
187
296
  account: viemSigner,
188
- ...typedData
297
+ ...typedData,
298
+ accountAddress,
299
+ accountVersion: kernelVersion,
300
+ chainId
189
301
  });
302
+ return concatHex([
303
+ getEcdsaRootIdentifierForKernelV3(ecdsaValidatorAddress),
304
+ signature
305
+ ]);
190
306
  },
191
307
  client: client,
192
308
  publicKey: accountAddress,
@@ -194,9 +310,14 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
194
310
  source: "kernelEcdsaSmartAccount",
195
311
  // Get the nonce of the smart account
196
312
  async getNonce() {
313
+ const key = getNonceKeyWithEncoding(kernelVersion, ecdsaValidatorAddress
314
+ // @dev specify the custom nonceKey here when integrating the said feature
315
+ /*, nonceKey */
316
+ );
197
317
  return getAccountNonce(client, {
198
318
  sender: accountAddress,
199
- entryPoint: entryPointAddress
319
+ entryPoint: entryPointAddress,
320
+ key
200
321
  });
201
322
  },
202
323
  // Sign a user operation
@@ -209,12 +330,15 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
209
330
  entryPoint: entryPointAddress,
210
331
  chainId: chainId
211
332
  });
212
- const signature = await signMessage(client, {
333
+ const signature = await _signMessage(client, {
213
334
  account: viemSigner,
214
335
  message: { raw: hash }
215
336
  });
216
337
  // Always use the sudo mode, since we will use external paymaster
217
- return concatHex(["0x00000000", signature]);
338
+ if (kernelVersion === "0.2.2") {
339
+ return concatHex(["0x00000000", signature]);
340
+ }
341
+ return signature;
218
342
  },
219
343
  // Encode the init code
220
344
  async getInitCode() {
@@ -223,7 +347,10 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
223
347
  smartAccountDeployed = await isSmartAccountDeployed(client, accountAddress);
224
348
  if (smartAccountDeployed)
225
349
  return "0x";
226
- return concatHex([factoryAddress, await generateInitCode()]);
350
+ const _factoryAddress = entryPointVersion === "v0.6"
351
+ ? factoryAddress
352
+ : metaFactoryAddress;
353
+ return concatHex([_factoryAddress, await generateInitCode()]);
227
354
  },
228
355
  async getFactory() {
229
356
  if (smartAccountDeployed)
@@ -231,7 +358,9 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
231
358
  smartAccountDeployed = await isSmartAccountDeployed(client, accountAddress);
232
359
  if (smartAccountDeployed)
233
360
  return undefined;
234
- return factoryAddress;
361
+ return entryPointVersion === "v0.6"
362
+ ? factoryAddress
363
+ : metaFactoryAddress;
235
364
  },
236
365
  async getFactoryData() {
237
366
  if (smartAccountDeployed)
@@ -247,30 +376,14 @@ export async function signerToEcdsaKernelSmartAccount(client, { signer, address,
247
376
  },
248
377
  // Encode a call
249
378
  async encodeCallData(_tx) {
250
- if (Array.isArray(_tx)) {
251
- // Encode a batched call
252
- return encodeFunctionData({
253
- abi: KernelExecuteAbi,
254
- functionName: "executeBatch",
255
- args: [
256
- _tx.map((tx) => ({
257
- to: tx.to,
258
- value: tx.value,
259
- data: tx.data
260
- }))
261
- ]
262
- });
263
- }
264
- // Encode a simple call
265
- return encodeFunctionData({
266
- abi: KernelExecuteAbi,
267
- functionName: "execute",
268
- args: [_tx.to, _tx.value, _tx.data, 0]
269
- });
379
+ return encodeCallData(_tx, kernelVersion);
270
380
  },
271
381
  // Get simple dummy signature
272
382
  async getDummySignature(_userOperation) {
273
- return "0x00000000fffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
383
+ if (kernelVersion === "0.2.2") {
384
+ return concatHex([ROOT_MODE_KERNEL_V2, DUMMY_ECDSA_SIGNATURE]);
385
+ }
386
+ return DUMMY_ECDSA_SIGNATURE;
274
387
  }
275
388
  });
276
389
  }
@@ -1 +1 @@
1
- {"version":3,"file":"signerToEcdsaKernelSmartAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/signerToEcdsaKernelSmartAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signerToEcdsaKernelSmartAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/signerToEcdsaKernelSmartAccount.ts"],"names":[],"mappings":"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"}