@zerodev/sdk 5.1.0 → 5.1.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.
Files changed (36) hide show
  1. package/_cjs/accounts/kernel/createKernelAccount.js +70 -25
  2. package/_cjs/accounts/kernel/createKernelAccount.js.map +1 -1
  3. package/_cjs/accounts/utils/6492.js +31 -0
  4. package/_cjs/accounts/utils/6492.js.map +1 -0
  5. package/_cjs/accounts/utils/index.js +3 -1
  6. package/_cjs/accounts/utils/index.js.map +1 -1
  7. package/_cjs/constants.js +2 -1
  8. package/_cjs/constants.js.map +1 -1
  9. package/_cjs/index.js +3 -1
  10. package/_cjs/index.js.map +1 -1
  11. package/_esm/accounts/kernel/createKernelAccount.js +71 -26
  12. package/_esm/accounts/kernel/createKernelAccount.js.map +1 -1
  13. package/_esm/accounts/utils/6492.js +35 -0
  14. package/_esm/accounts/utils/6492.js.map +1 -0
  15. package/_esm/accounts/utils/index.js +2 -0
  16. package/_esm/accounts/utils/index.js.map +1 -1
  17. package/_esm/constants.js +1 -0
  18. package/_esm/constants.js.map +1 -1
  19. package/_esm/index.js +1 -0
  20. package/_esm/index.js.map +1 -1
  21. package/_types/accounts/kernel/createKernelAccount.d.ts.map +1 -1
  22. package/_types/accounts/utils/6492.d.ts +16 -0
  23. package/_types/accounts/utils/6492.d.ts.map +1 -0
  24. package/_types/accounts/utils/index.d.ts +2 -0
  25. package/_types/accounts/utils/index.d.ts.map +1 -1
  26. package/_types/clients/kernelAccountClient.d.ts +1 -1
  27. package/_types/constants.d.ts +1 -0
  28. package/_types/constants.d.ts.map +1 -1
  29. package/_types/index.d.ts +1 -0
  30. package/_types/index.d.ts.map +1 -1
  31. package/accounts/kernel/createKernelAccount.ts +88 -26
  32. package/accounts/utils/6492.ts +70 -0
  33. package/accounts/utils/index.ts +3 -0
  34. package/constants.ts +1 -0
  35. package/index.ts +1 -0
  36. package/package.json +1 -1
@@ -6,6 +6,8 @@ const accounts_1 = require("permissionless/accounts");
6
6
  const viem_1 = require("viem");
7
7
  const accounts_2 = require("viem/accounts");
8
8
  const actions_1 = require("viem/actions");
9
+ const constants_js_1 = require("../../constants.js");
10
+ const _6492_js_1 = require("../utils/6492.js");
9
11
  const toKernelPluginManager_js_1 = require("../utils/toKernelPluginManager.js");
10
12
  const KernelAccountAbi_js_1 = require("./abi/KernelAccountAbi.js");
11
13
  const createAccountAbi = [
@@ -104,6 +106,11 @@ const getAccountAddress = async ({ client, entryPoint, initCodeProvider }) => {
104
106
  entryPoint
105
107
  });
106
108
  };
109
+ const parseFactoryAddressAndCallDataFromAccountInitCode = (initCode) => {
110
+ const factoryAddress = `0x${initCode.substring(2, 42)}`;
111
+ const factoryCalldata = `0x${initCode.substring(42)}`;
112
+ return [factoryAddress, factoryCalldata];
113
+ };
107
114
  async function createKernelAccount(client, { plugins, entryPoint = exports.KERNEL_ADDRESSES.ENTRYPOINT_V0_6, index = 0n, factoryAddress = exports.KERNEL_ADDRESSES.FACTORY_ADDRESS, accountLogicAddress = exports.KERNEL_ADDRESSES.ACCOUNT_V2_3_LOGIC, deployedAccountAddress }) {
108
115
  const kernelPluginManager = (0, toKernelPluginManager_js_1.isKernelPluginManager)(plugins)
109
116
  ? plugins
@@ -123,14 +130,12 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
123
130
  enableData: validatorInitData.enableData
124
131
  });
125
132
  };
126
- const [accountAddress] = await Promise.all([
127
- deployedAccountAddress ??
128
- getAccountAddress({
129
- client,
130
- entryPoint,
131
- initCodeProvider: generateInitCode
132
- })
133
- ]);
133
+ const accountAddress = deployedAccountAddress ??
134
+ (await getAccountAddress({
135
+ client,
136
+ entryPoint,
137
+ initCodeProvider: generateInitCode
138
+ }));
134
139
  if (!accountAddress)
135
140
  throw new Error("Account address not found");
136
141
  const signHashedMessage = async (messageHash) => {
@@ -147,11 +152,26 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
147
152
  "latest"
148
153
  ]
149
154
  });
150
- const decoded = (0, viem_1.decodeFunctionResult)({
151
- abi: [...exports.EIP1271ABI],
152
- functionName: "eip712Domain",
153
- data: domain
154
- });
155
+ let name;
156
+ let version;
157
+ let chainId;
158
+ if (domain !== "0x") {
159
+ const decoded = (0, viem_1.decodeFunctionResult)({
160
+ abi: [...exports.EIP1271ABI],
161
+ functionName: "eip712Domain",
162
+ data: domain
163
+ });
164
+ name = decoded[1];
165
+ version = decoded[2];
166
+ chainId = decoded[3];
167
+ }
168
+ else {
169
+ name = constants_js_1.KERNEL_NAME;
170
+ version = constants_js_1.LATEST_KERNEL_VERSION;
171
+ chainId = client.chain
172
+ ? BigInt(client.chain.id)
173
+ : BigInt(await client.extend(viem_1.publicActions).getChainId());
174
+ }
155
175
  const encoded = (0, viem_1.encodeAbiParameters)([
156
176
  { type: "bytes32" },
157
177
  { type: "bytes32" },
@@ -160,9 +180,9 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
160
180
  { type: "address" }
161
181
  ], [
162
182
  (0, viem_1.keccak256)((0, viem_1.stringToHex)("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)")),
163
- (0, viem_1.keccak256)((0, viem_1.stringToHex)(decoded[1])),
164
- (0, viem_1.keccak256)((0, viem_1.stringToHex)(decoded[2])),
165
- decoded[3],
183
+ (0, viem_1.keccak256)((0, viem_1.stringToHex)(name)),
184
+ (0, viem_1.keccak256)((0, viem_1.stringToHex)(version)),
185
+ BigInt(chainId),
166
186
  accountAddress
167
187
  ]);
168
188
  const domainSeparator = (0, viem_1.keccak256)(encoded);
@@ -177,7 +197,11 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
177
197
  address: accountAddress,
178
198
  async signMessage({ message }) {
179
199
  const messageHash = (0, viem_1.hashMessage)(message);
180
- return signHashedMessage(messageHash);
200
+ const [isDeployed, signature] = await Promise.all([
201
+ isAccountDeployed(),
202
+ signHashedMessage(messageHash)
203
+ ]);
204
+ return create6492Signature(isDeployed, signature);
181
205
  },
182
206
  async signTransaction(_, __) {
183
207
  throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
@@ -196,15 +220,38 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
196
220
  types: types
197
221
  });
198
222
  const typedHash = (0, viem_1.hashTypedData)(typedData);
199
- return await signHashedMessage(typedHash);
223
+ const [isDeployed, signature] = await Promise.all([
224
+ isAccountDeployed(),
225
+ signHashedMessage(typedHash)
226
+ ]);
227
+ return create6492Signature(isDeployed, signature);
200
228
  }
201
229
  });
230
+ const isAccountDeployed = async () => {
231
+ const contractCode = await (0, actions_1.getBytecode)(client, {
232
+ address: accountAddress
233
+ });
234
+ return (contractCode?.length ?? 0) > 2;
235
+ };
236
+ const create6492Signature = async (isDeployed, signature) => {
237
+ if (isDeployed) {
238
+ return signature;
239
+ }
240
+ const [factoryAddress, factoryCalldata] = parseFactoryAddressAndCallDataFromAccountInitCode(await generateInitCode());
241
+ return (0, _6492_js_1.wrapSignatureWith6492)({
242
+ factoryAddress,
243
+ factoryCalldata,
244
+ signature
245
+ });
246
+ };
202
247
  return {
203
248
  ...account,
204
249
  client: client,
205
250
  publicKey: accountAddress,
206
251
  entryPoint: entryPoint,
207
252
  source: "kernelSmartAccount",
253
+ kernelPluginManager,
254
+ generateInitCode,
208
255
  async getNonce() {
209
256
  const key = await kernelPluginManager.getNonceKey();
210
257
  return (0, permissionless_1.getAccountNonce)(client, {
@@ -213,18 +260,16 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
213
260
  key
214
261
  });
215
262
  },
216
- kernelPluginManager,
217
263
  async signUserOperation(userOperation) {
218
264
  return kernelPluginManager.signUserOperation(userOperation);
219
265
  },
220
- generateInitCode,
221
266
  async getInitCode() {
222
- const contractCode = await (0, actions_1.getBytecode)(client, {
223
- address: accountAddress
224
- });
225
- if ((contractCode?.length ?? 0) > 2)
267
+ if (await isAccountDeployed()) {
226
268
  return "0x";
227
- return generateInitCode();
269
+ }
270
+ else {
271
+ return generateInitCode();
272
+ }
228
273
  },
229
274
  async encodeDeployCallData(_tx) {
230
275
  return (0, viem_1.encodeFunctionData)({
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyEIP6492Signature = exports.wrapSignatureWith6492 = void 0;
4
+ const viem_1 = require("viem");
5
+ const wrapSignatureWith6492 = ({ factoryAddress, factoryCalldata, signature }) => {
6
+ return (0, viem_1.concat)([
7
+ (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)("address, bytes, bytes"), [
8
+ factoryAddress,
9
+ factoryCalldata,
10
+ signature
11
+ ]),
12
+ "0x6492649264926492649264926492649264926492649264926492649264926492"
13
+ ]);
14
+ };
15
+ exports.wrapSignatureWith6492 = wrapSignatureWith6492;
16
+ const universalValidatorByteCode = "0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572";
17
+ const verifyEIP6492Signature = async ({ signer, hash, signature, client }) => {
18
+ const result = await client.call({
19
+ data: (0, viem_1.concat)([
20
+ universalValidatorByteCode,
21
+ (0, viem_1.encodeAbiParameters)((0, viem_1.parseAbiParameters)("address, bytes32, bytes"), [
22
+ signer,
23
+ hash,
24
+ signature
25
+ ])
26
+ ])
27
+ });
28
+ return result.data === "0x01";
29
+ };
30
+ exports.verifyEIP6492Signature = verifyEIP6492Signature;
31
+ //# sourceMappingURL=6492.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6492.js","sourceRoot":"","sources":["../../../accounts/utils/6492.ts"],"names":[],"mappings":";;;AAEA,+BAQa;AAeN,MAAM,qBAAqB,GAAG,CAAC,EAClC,cAAc,EACd,eAAe,EACf,SAAS,EACQ,EAAQ,EAAE;IAQ3B,OAAO,IAAA,aAAM,EAAC;QACV,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,uBAAuB,CAAC,EAAE;YAC7D,cAAc;YACd,eAAe;YACf,SAAS;SACZ,CAAC;QACF,oEAAoE;KACvE,CAAC,CAAA;AACN,CAAC,CAAA;AApBY,QAAA,qBAAqB,yBAoBjC;AAGD,MAAM,0BAA0B,GAC5B,ogHAAogH,CAAA;AAEjgH,MAAM,sBAAsB,GAAG,KAAK,EAAE,EACzC,MAAM,EACN,IAAI,EACJ,SAAS,EACT,MAAM,EACqB,EAAoB,EAAE;IACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC7B,IAAI,EAAE,IAAA,aAAM,EAAC;YACT,0BAA0B;YAC1B,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,yBAAyB,CAAC,EAAE;gBAC/D,MAAM;gBACN,IAAI;gBACJ,SAAS;aACZ,CAAC;SACL,CAAC;KACL,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAA;AACjC,CAAC,CAAA;AAlBY,QAAA,sBAAsB,0BAkBlC"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toKernelPluginManager = void 0;
3
+ exports.verifyEIP6492Signature = exports.toKernelPluginManager = void 0;
4
4
  const toKernelPluginManager_js_1 = require("./toKernelPluginManager.js");
5
5
  Object.defineProperty(exports, "toKernelPluginManager", { enumerable: true, get: function () { return toKernelPluginManager_js_1.toKernelPluginManager; } });
6
+ const _6492_js_1 = require("./6492.js");
7
+ Object.defineProperty(exports, "verifyEIP6492Signature", { enumerable: true, get: function () { return _6492_js_1.verifyEIP6492Signature; } });
6
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../accounts/utils/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkE;AACzD,sGADA,gDAAqB,OACA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../accounts/utils/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkE;AACzD,sGADA,gDAAqB,OACA;AAE9B,wCAAkD;AACzC,uGADA,iCAAsB,OACA"}
package/_cjs/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LATEST_KERNEL_VERSION = exports.TOKEN_ACTION = exports.KernelImplToVersionMap = exports.DUMMY_ECDSA_SIG = void 0;
3
+ exports.LATEST_KERNEL_VERSION = exports.KERNEL_NAME = exports.TOKEN_ACTION = exports.KernelImplToVersionMap = exports.DUMMY_ECDSA_SIG = void 0;
4
4
  exports.DUMMY_ECDSA_SIG = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
5
5
  exports.KernelImplToVersionMap = {
6
6
  "0x8dD4DBB54d8A8Cf0DE6F9CCC4609470A30EfF18C": "0.2.2",
@@ -8,5 +8,6 @@ exports.KernelImplToVersionMap = {
8
8
  "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3"
9
9
  };
10
10
  exports.TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
11
+ exports.KERNEL_NAME = "Kernel";
11
12
  exports.LATEST_KERNEL_VERSION = "0.2.3";
12
13
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GACxB,sIAAsI,CAAA;AAE7H,QAAA,sBAAsB,GAA+B;IAC9D,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;CACxD,CAAA;AACY,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,qBAAqB,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GACxB,sIAAsI,CAAA;AAE7H,QAAA,sBAAsB,GAA+B;IAC9D,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;CACxD,CAAA;AACY,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,WAAW,GAAG,QAAQ,CAAA;AACtB,QAAA,qBAAqB,GAAG,OAAO,CAAA"}
package/_cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.EIP1271ABI = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelAccount = void 0;
3
+ exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.EIP1271ABI = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelAccount = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  var index_js_1 = require("./accounts/index.js");
6
6
  Object.defineProperty(exports, "createKernelAccount", { enumerable: true, get: function () { return index_js_1.createKernelAccount; } });
@@ -26,4 +26,6 @@ exports.constants = require("./constants.js");
26
26
  tslib_1.__exportStar(require("./utils.js"), exports);
27
27
  var gasTokenAddresses_js_1 = require("./gasTokenAddresses.js");
28
28
  Object.defineProperty(exports, "gasTokenAddresses", { enumerable: true, get: function () { return gasTokenAddresses_js_1.gasTokenAddresses; } });
29
+ var index_js_2 = require("./accounts/utils/index.js");
30
+ Object.defineProperty(exports, "verifyEIP6492Signature", { enumerable: true, get: function () { return index_js_2.verifyEIP6492Signature; } });
29
31
  //# sourceMappingURL=index.js.map
package/_cjs/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,gDAM4B;AALxB,+GAAA,mBAAmB,OAAA;AAEnB,4GAAA,gBAAgB,OAAA;AAChB,iHAAA,qBAAqB,OAAA;AACrB,sGAAA,UAAU,OAAA;AAEd,uFAIoD;AAHhD,+HAAA,oBAAoB,OAAA;AAIxB,4DAKuC;AAJnC,oHAAA,uBAAuB,OAAA;AAEvB,uHAAA,0BAA0B,OAAA;AAG9B,mEAGqC;AAFjC,kIAAA,4BAA4B,OAAA;AAGhC,2EAGyC;AAFrC,mIAAA,yBAAyB,OAAA;AAQ7B,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,gDAM4B;AALxB,+GAAA,mBAAmB,OAAA;AAEnB,4GAAA,gBAAgB,OAAA;AAChB,iHAAA,qBAAqB,OAAA;AACrB,sGAAA,UAAU,OAAA;AAEd,uFAIoD;AAHhD,+HAAA,oBAAoB,OAAA;AAIxB,4DAKuC;AAJnC,oHAAA,uBAAuB,OAAA;AAEvB,uHAAA,0BAA0B,OAAA;AAG9B,mEAGqC;AAFjC,kIAAA,4BAA4B,OAAA;AAGhC,2EAGyC;AAFrC,mIAAA,yBAAyB,OAAA;AAQ7B,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAG+B;AAF3B,yHAAA,iBAAiB,OAAA;AAGrB,sDAAkE;AAAzD,kHAAA,sBAAsB,OAAA"}
@@ -1,8 +1,10 @@
1
1
  import { getAccountNonce, getSenderAddress } from "permissionless";
2
2
  import { SignTransactionNotSupportedBySmartAccount } from "permissionless/accounts";
3
- import { concatHex, decodeFunctionResult, encodeAbiParameters, encodeDeployData, encodeFunctionData, getTypesForEIP712Domain, hashMessage, hashTypedData, keccak256, parseAbi, stringToHex, validateTypedData } from "viem";
3
+ import { concatHex, decodeFunctionResult, encodeAbiParameters, encodeDeployData, encodeFunctionData, getTypesForEIP712Domain, hashMessage, hashTypedData, keccak256, parseAbi, publicActions, stringToHex, validateTypedData } from "viem";
4
4
  import { toAccount } from "viem/accounts";
5
5
  import { getBytecode } from "viem/actions";
6
+ import { KERNEL_NAME, LATEST_KERNEL_VERSION } from "../../constants.js";
7
+ import { wrapSignatureWith6492 } from "../utils/6492.js";
6
8
  import { isKernelPluginManager, toKernelPluginManager } from "../utils/toKernelPluginManager.js";
7
9
  import { KernelExecuteAbi, KernelInitAbi } from "./abi/KernelAccountAbi.js";
8
10
  /**
@@ -126,6 +128,11 @@ const getAccountAddress = async ({ client, entryPoint, initCodeProvider }) => {
126
128
  entryPoint
127
129
  });
128
130
  };
131
+ const parseFactoryAddressAndCallDataFromAccountInitCode = (initCode) => {
132
+ const factoryAddress = `0x${initCode.substring(2, 42)}`;
133
+ const factoryCalldata = `0x${initCode.substring(42)}`;
134
+ return [factoryAddress, factoryCalldata];
135
+ };
129
136
  /**
130
137
  * Build a kernel smart account from a private key, that use the ECDSA signer behind the scene
131
138
  * @param client
@@ -158,14 +165,12 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
158
165
  });
159
166
  };
160
167
  // Fetch account address and chain id
161
- const [accountAddress] = await Promise.all([
162
- deployedAccountAddress ??
163
- getAccountAddress({
164
- client,
165
- entryPoint,
166
- initCodeProvider: generateInitCode
167
- })
168
- ]);
168
+ const accountAddress = deployedAccountAddress ??
169
+ (await getAccountAddress({
170
+ client,
171
+ entryPoint,
172
+ initCodeProvider: generateInitCode
173
+ }));
169
174
  if (!accountAddress)
170
175
  throw new Error("Account address not found");
171
176
  const signHashedMessage = async (messageHash) => {
@@ -182,11 +187,26 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
182
187
  "latest"
183
188
  ]
184
189
  });
185
- const decoded = decodeFunctionResult({
186
- abi: [...EIP1271ABI],
187
- functionName: "eip712Domain",
188
- data: domain
189
- });
190
+ let name;
191
+ let version;
192
+ let chainId;
193
+ if (domain !== "0x") {
194
+ const decoded = decodeFunctionResult({
195
+ abi: [...EIP1271ABI],
196
+ functionName: "eip712Domain",
197
+ data: domain
198
+ });
199
+ name = decoded[1];
200
+ version = decoded[2];
201
+ chainId = decoded[3];
202
+ }
203
+ else {
204
+ name = KERNEL_NAME;
205
+ version = LATEST_KERNEL_VERSION;
206
+ chainId = client.chain
207
+ ? BigInt(client.chain.id)
208
+ : BigInt(await client.extend(publicActions).getChainId());
209
+ }
190
210
  const encoded = encodeAbiParameters([
191
211
  { type: "bytes32" },
192
212
  { type: "bytes32" },
@@ -195,9 +215,9 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
195
215
  { type: "address" }
196
216
  ], [
197
217
  keccak256(stringToHex("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)")),
198
- keccak256(stringToHex(decoded[1])),
199
- keccak256(stringToHex(decoded[2])),
200
- decoded[3],
218
+ keccak256(stringToHex(name)),
219
+ keccak256(stringToHex(version)),
220
+ BigInt(chainId),
201
221
  accountAddress
202
222
  ]);
203
223
  const domainSeparator = keccak256(encoded);
@@ -213,7 +233,11 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
213
233
  address: accountAddress,
214
234
  async signMessage({ message }) {
215
235
  const messageHash = hashMessage(message);
216
- return signHashedMessage(messageHash);
236
+ const [isDeployed, signature] = await Promise.all([
237
+ isAccountDeployed(),
238
+ signHashedMessage(messageHash)
239
+ ]);
240
+ return create6492Signature(isDeployed, signature);
217
241
  },
218
242
  async signTransaction(_, __) {
219
243
  throw new SignTransactionNotSupportedBySmartAccount();
@@ -234,15 +258,38 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
234
258
  types: types
235
259
  });
236
260
  const typedHash = hashTypedData(typedData);
237
- return await signHashedMessage(typedHash);
261
+ const [isDeployed, signature] = await Promise.all([
262
+ isAccountDeployed(),
263
+ signHashedMessage(typedHash)
264
+ ]);
265
+ return create6492Signature(isDeployed, signature);
238
266
  }
239
267
  });
268
+ const isAccountDeployed = async () => {
269
+ const contractCode = await getBytecode(client, {
270
+ address: accountAddress
271
+ });
272
+ return (contractCode?.length ?? 0) > 2;
273
+ };
274
+ const create6492Signature = async (isDeployed, signature) => {
275
+ if (isDeployed) {
276
+ return signature;
277
+ }
278
+ const [factoryAddress, factoryCalldata] = parseFactoryAddressAndCallDataFromAccountInitCode(await generateInitCode());
279
+ return wrapSignatureWith6492({
280
+ factoryAddress,
281
+ factoryCalldata,
282
+ signature
283
+ });
284
+ };
240
285
  return {
241
286
  ...account,
242
287
  client: client,
243
288
  publicKey: accountAddress,
244
289
  entryPoint: entryPoint,
245
290
  source: "kernelSmartAccount",
291
+ kernelPluginManager,
292
+ generateInitCode,
246
293
  // Get the nonce of the smart account
247
294
  async getNonce() {
248
295
  const key = await kernelPluginManager.getNonceKey();
@@ -252,20 +299,18 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
252
299
  key
253
300
  });
254
301
  },
255
- kernelPluginManager,
256
302
  // Sign a user operation
257
303
  async signUserOperation(userOperation) {
258
304
  return kernelPluginManager.signUserOperation(userOperation);
259
305
  },
260
- generateInitCode,
261
306
  // Encode the init code
262
307
  async getInitCode() {
263
- const contractCode = await getBytecode(client, {
264
- address: accountAddress
265
- });
266
- if ((contractCode?.length ?? 0) > 2)
308
+ if (await isAccountDeployed()) {
267
309
  return "0x";
268
- return generateInitCode();
310
+ }
311
+ else {
312
+ return generateInitCode();
313
+ }
269
314
  },
270
315
  // Encode the deploy call data
271
316
  async encodeDeployCallData(_tx) {
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createKernelAccount.js","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ // copied from: https://github.com/alchemyplatform/aa-sdk/blob/266c9757cd721ef0bd97d04c0b592a329f8a9da5/packages/core/src/signer/utils.ts
2
+ import { concat, encodeAbiParameters, parseAbiParameters } from "viem";
3
+ export const wrapSignatureWith6492 = ({ factoryAddress, factoryCalldata, signature }) => {
4
+ // wrap the signature as follows: https://eips.ethereum.org/EIPS/eip-6492
5
+ // concat(
6
+ // abi.encode(
7
+ // (create2Factory, factoryCalldata, originalERC1271Signature),
8
+ // (address, bytes, bytes)),
9
+ // magicBytes
10
+ // )
11
+ return concat([
12
+ encodeAbiParameters(parseAbiParameters("address, bytes, bytes"), [
13
+ factoryAddress,
14
+ factoryCalldata,
15
+ signature
16
+ ]),
17
+ "0x6492649264926492649264926492649264926492649264926492649264926492"
18
+ ]);
19
+ };
20
+ // defined in https://github.com/AmbireTech/signature-validator/blob/main/index.ts#L13C17-L13C17
21
+ const universalValidatorByteCode = "0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572";
22
+ export const verifyEIP6492Signature = async ({ signer, hash, signature, client }) => {
23
+ const result = await client.call({
24
+ data: concat([
25
+ universalValidatorByteCode,
26
+ encodeAbiParameters(parseAbiParameters("address, bytes32, bytes"), [
27
+ signer,
28
+ hash,
29
+ signature
30
+ ])
31
+ ])
32
+ });
33
+ return result.data === "0x01";
34
+ };
35
+ //# sourceMappingURL=6492.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6492.js","sourceRoot":"","sources":["../../../accounts/utils/6492.ts"],"names":[],"mappings":"AAAA,yIAAyI;AAEzI,OAAO,EAKH,MAAM,EACN,mBAAmB,EACnB,kBAAkB,EACrB,MAAM,MAAM,CAAA;AAeb,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAClC,cAAc,EACd,eAAe,EACf,SAAS,EACQ,EAAQ,EAAE;IAC3B,yEAAyE;IACzE,UAAU;IACV,eAAe;IACf,kEAAkE;IAClE,+BAA+B;IAC/B,gBAAgB;IAChB,IAAI;IACJ,OAAO,MAAM,CAAC;QACV,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,EAAE;YAC7D,cAAc;YACd,eAAe;YACf,SAAS;SACZ,CAAC;QACF,oEAAoE;KACvE,CAAC,CAAA;AACN,CAAC,CAAA;AAED,gGAAgG;AAChG,MAAM,0BAA0B,GAC5B,ogHAAogH,CAAA;AAExgH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EACzC,MAAM,EACN,IAAI,EACJ,SAAS,EACT,MAAM,EACqB,EAAoB,EAAE;IACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC;YACT,0BAA0B;YAC1B,mBAAmB,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,EAAE;gBAC/D,MAAM;gBACN,IAAI;gBACJ,SAAS;aACZ,CAAC;SACL,CAAC;KACL,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAA;AACjC,CAAC,CAAA"}
@@ -1,3 +1,5 @@
1
1
  import { toKernelPluginManager } from "./toKernelPluginManager.js";
2
2
  export { toKernelPluginManager };
3
+ import { verifyEIP6492Signature } from "./6492.js";
4
+ export { verifyEIP6492Signature };
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../accounts/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../accounts/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,CAAA"}
package/_esm/constants.js CHANGED
@@ -6,5 +6,6 @@ export const KernelImplToVersionMap = {
6
6
  "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3"
7
7
  };
8
8
  export const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
9
+ export const KERNEL_NAME = "Kernel";
9
10
  export const LATEST_KERNEL_VERSION = "0.2.3";
10
11
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,MAAM,CAAA;AAEnC,MAAM,CAAC,MAAM,eAAe,GACxB,sIAAsI,CAAA;AAE1I,MAAM,CAAC,MAAM,sBAAsB,GAA+B;IAC9D,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;CACxD,CAAA;AACD,MAAM,CAAC,MAAM,YAAY,GAAG,4CAA4C,CAAA;AACxE,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,MAAM,CAAA;AAEnC,MAAM,CAAC,MAAM,eAAe,GACxB,sIAAsI,CAAA;AAE1I,MAAM,CAAC,MAAM,sBAAsB,GAA+B;IAC9D,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;CACxD,CAAA;AACD,MAAM,CAAC,MAAM,YAAY,GAAG,4CAA4C,CAAA;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAA"}
package/_esm/index.js CHANGED
@@ -11,4 +11,5 @@ import * as constants_1 from "./constants.js";
11
11
  export { constants_1 as constants };
12
12
  export * from "./utils.js";
13
13
  export { gasTokenAddresses } from "./gasTokenAddresses.js";
14
+ export { verifyEIP6492Signature } from "./accounts/utils/index.js";
14
15
  //# sourceMappingURL=index.js.map
package/_esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EAGvB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACH,uBAAuB,EAEvB,0BAA0B,EAE7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAE/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EAE5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAIN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAEnB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EAGvB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACH,uBAAuB,EAEvB,0BAA0B,EAE7B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAE/B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EAE5B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAIN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EACH,iBAAiB,EAEpB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAEX,KAAK,GAAG,EACR,KAAK,SAAS,EAcjB,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACR,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,uBAAuB,CAAA;AAO9B,MAAM,MAAM,kBAAkB,CAC1B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,YAAY,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG;IACvD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACnE,CAAA;AA8CD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCb,CAAA;AACV;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC3B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CAK3B,CAAA;AAoED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,OAAO,EACP,UAA6C,EAC7C,KAAU,EACV,cAAiD,EACjD,mBAAyD,EACzD,sBAAsB,EACzB,EAAE;IACC,OAAO,EAAE,yBAAyB,GAAG,mBAAmB,CAAA;IACxD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACnC,GACF,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAmOjD"}
1
+ {"version":3,"file":"createKernelAccount.d.ts","sourceRoot":"","sources":["../../../accounts/kernel/createKernelAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,KAAK,YAAY,EACpB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EAGX,KAAK,GAAG,EACR,KAAK,SAAS,EAejB,MAAM,MAAM,CAAA;AAIb,OAAO,KAAK,EACR,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,uBAAuB,CAAA;AAQ9B,MAAM,MAAM,kBAAkB,CAC1B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,IACnD,YAAY,CAAC,oBAAoB,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG;IACvD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACnE,CAAA;AA8CD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCb,CAAA;AACV;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE;IAC3B,kBAAkB,EAAE,OAAO,CAAA;IAC3B,eAAe,EAAE,OAAO,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;CAK3B,CAAA;AA4ED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACrC,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EAEpD,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAC7C,EACI,OAAO,EACP,UAA6C,EAC7C,KAAU,EACV,cAAiD,EACjD,mBAAyD,EACzD,sBAAsB,EACzB,EAAE;IACC,OAAO,EAAE,yBAAyB,GAAG,mBAAmB,CAAA;IACxD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACnC,GACF,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAqRjD"}
@@ -0,0 +1,16 @@
1
+ import { type Address, type Hash, type Hex, type PublicClient } from "viem";
2
+ export type SignWith6492Params = {
3
+ factoryAddress: Address;
4
+ factoryCalldata: Hex;
5
+ signature: Hash;
6
+ };
7
+ type VerifyEIP6492SignatureParams = {
8
+ signer: Address;
9
+ hash: Hash;
10
+ signature: Hash;
11
+ client: PublicClient;
12
+ };
13
+ export declare const wrapSignatureWith6492: ({ factoryAddress, factoryCalldata, signature }: SignWith6492Params) => Hash;
14
+ export declare const verifyEIP6492Signature: ({ signer, hash, signature, client }: VerifyEIP6492SignatureParams) => Promise<boolean>;
15
+ export {};
16
+ //# sourceMappingURL=6492.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"6492.d.ts","sourceRoot":"","sources":["../../../accounts/utils/6492.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,GAAG,EACR,KAAK,YAAY,EAIpB,MAAM,MAAM,CAAA;AAEb,MAAM,MAAM,kBAAkB,GAAG;IAC7B,cAAc,EAAE,OAAO,CAAA;IACvB,eAAe,EAAE,GAAG,CAAA;IACpB,SAAS,EAAE,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,4BAA4B,GAAG;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,IAAI,CAAA;IACf,MAAM,EAAE,YAAY,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,qBAAqB,mDAI/B,kBAAkB,KAAG,IAgBvB,CAAA;AAMD,eAAO,MAAM,sBAAsB,wCAKhC,4BAA4B,KAAG,QAAQ,OAAO,CAahD,CAAA"}
@@ -1,3 +1,5 @@
1
1
  import { toKernelPluginManager } from "./toKernelPluginManager.js";
2
2
  export { toKernelPluginManager };
3
+ import { verifyEIP6492Signature } from "./6492.js";
4
+ export { verifyEIP6492Signature };
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,CAAA"}
@@ -273,7 +273,7 @@ export declare const createKernelAccountClient: <TTransport extends Transport, T
273
273
  transport?: undefined;
274
274
  type?: undefined;
275
275
  uid?: undefined;
276
- } & Partial<Pick<import("viem").PublicActions, "call" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getBlockNumber" | "getChainId" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "prepareTransactionRequest" | "readContract" | "sendRawTransaction" | "simulateContract" | "uninstallFilter" | "watchBlockNumber" | "watchContractEvent"> & Pick<import("viem").WalletActions, "sendTransaction" | "writeContract">>>(fn: (client: Client<TTransport, TChain, ParseAccount<TSmartAccount>, BundlerRpcSchema, KernelAccountClientActions<TChain, ParseAccount<TSmartAccount>>>) => client) => Client<TTransport, TChain, ParseAccount<TSmartAccount>, BundlerRpcSchema, { [K_7 in keyof client]: client[K_7]; } & import("permissionless").SmartAccountActions<TChain, ParseAccount<TSmartAccount>> & {
276
+ } & Partial<Pick<import("viem").PublicActions<TTransport, TChain, ParseAccount<TSmartAccount>>, "call" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getBlockNumber" | "getChainId" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "prepareTransactionRequest" | "readContract" | "sendRawTransaction" | "simulateContract" | "uninstallFilter" | "watchBlockNumber" | "watchContractEvent"> & Pick<import("viem").WalletActions<TChain, ParseAccount<TSmartAccount>>, "sendTransaction" | "writeContract">>>(fn: (client: Client<TTransport, TChain, ParseAccount<TSmartAccount>, BundlerRpcSchema, KernelAccountClientActions<TChain, ParseAccount<TSmartAccount>>>) => client) => Client<TTransport, TChain, ParseAccount<TSmartAccount>, BundlerRpcSchema, { [K_7 in keyof client]: client[K_7]; } & import("permissionless").SmartAccountActions<TChain, ParseAccount<TSmartAccount>> & {
277
277
  signUserOperation: <TTransport_3 extends Transport>(args: import("../actions/index.js").SignUserOperationParameters<ParseAccount<TSmartAccount>> extends infer T_9 ? { [K_6 in keyof T_9]: import("../actions/index.js").SignUserOperationParameters<ParseAccount<TSmartAccount>>[K_6]; } : never) => Promise<import("permissionless/types").UserOperation>;
278
278
  }>;
279
279
  };
@@ -4,5 +4,6 @@ export declare const KernelImplToVersionMap: {
4
4
  [key: Address]: string;
5
5
  };
6
6
  export declare const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
7
+ export declare const KERNEL_NAME = "Kernel";
7
8
  export declare const LATEST_KERNEL_VERSION = "0.2.3";
8
9
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,sBAAsB,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAA;CAI5D,CAAA;AACD,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,qBAAqB,UAAU,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,sBAAsB,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAA;CAI5D,CAAA;AACD,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,WAAW,WAAW,CAAA;AACnC,eAAO,MAAM,qBAAqB,UAAU,CAAA"}
package/_types/index.d.ts CHANGED
@@ -10,4 +10,5 @@ export { TokenActionsAbi } from "./accounts/kernel/abi/TokenActionsAbi.js";
10
10
  export * as constants from "./constants.js";
11
11
  export * from "./utils.js";
12
12
  export { gasTokenAddresses, type TokenSymbolsMap } from "./gasTokenAddresses.js";
13
+ export { verifyEIP6492Signature } from "./accounts/utils/index.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACH,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,0BAA0B,EAC1B,KAAK,0BAA0B,EAClC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAC5B,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EACzB,KAAK,mBAAmB,EAC3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EACH,iBAAiB,EACjB,KAAK,eAAe,EACvB,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACH,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,0BAA0B,EAC1B,KAAK,0BAA0B,EAClC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAC5B,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EACzB,KAAK,mBAAmB,EAC3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EACH,iBAAiB,EACjB,KAAK,eAAe,EACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA"}
@@ -8,6 +8,7 @@ import {
8
8
  type Chain,
9
9
  type Client,
10
10
  type EncodeDeployDataParameters,
11
+ type Hash,
11
12
  type Hex,
12
13
  type Transport,
13
14
  type TypedDataDefinition,
@@ -21,16 +22,19 @@ import {
21
22
  hashTypedData,
22
23
  keccak256,
23
24
  parseAbi,
25
+ publicActions,
24
26
  stringToHex,
25
27
  validateTypedData
26
28
  } from "viem"
27
29
  import { toAccount } from "viem/accounts"
28
30
  import { getBytecode } from "viem/actions"
31
+ import { KERNEL_NAME, LATEST_KERNEL_VERSION } from "../../constants.js"
29
32
  import type {
30
33
  KernelEncodeCallDataArgs,
31
34
  KernelPluginManager,
32
35
  KernelPluginManagerParams
33
36
  } from "../../types/kernel.js"
37
+ import { wrapSignatureWith6492 } from "../utils/6492.js"
34
38
  import {
35
39
  isKernelPluginManager,
36
40
  toKernelPluginManager
@@ -202,6 +206,14 @@ const getAccountAddress = async <
202
206
  })
203
207
  }
204
208
 
209
+ const parseFactoryAddressAndCallDataFromAccountInitCode = (
210
+ initCode: Hex
211
+ ): [Address, Hex] => {
212
+ const factoryAddress = `0x${initCode.substring(2, 42)}` as Address
213
+ const factoryCalldata = `0x${initCode.substring(42)}` as Hex
214
+ return [factoryAddress, factoryCalldata]
215
+ }
216
+
205
217
  /**
206
218
  * Build a kernel smart account from a private key, that use the ECDSA signer behind the scene
207
219
  * @param client
@@ -256,14 +268,13 @@ export async function createKernelAccount<
256
268
  }
257
269
 
258
270
  // Fetch account address and chain id
259
- const [accountAddress] = await Promise.all([
271
+ const accountAddress =
260
272
  deployedAccountAddress ??
261
- getAccountAddress<TTransport, TChain>({
262
- client,
263
- entryPoint,
264
- initCodeProvider: generateInitCode
265
- })
266
- ])
273
+ (await getAccountAddress<TTransport, TChain>({
274
+ client,
275
+ entryPoint,
276
+ initCodeProvider: generateInitCode
277
+ }))
267
278
 
268
279
  if (!accountAddress) throw new Error("Account address not found")
269
280
 
@@ -281,11 +292,28 @@ export async function createKernelAccount<
281
292
  "latest"
282
293
  ]
283
294
  })
284
- const decoded = decodeFunctionResult({
285
- abi: [...EIP1271ABI],
286
- functionName: "eip712Domain",
287
- data: domain
288
- })
295
+
296
+ let name: string
297
+ let version: string
298
+ let chainId: bigint
299
+
300
+ if (domain !== "0x") {
301
+ const decoded = decodeFunctionResult({
302
+ abi: [...EIP1271ABI],
303
+ functionName: "eip712Domain",
304
+ data: domain
305
+ })
306
+
307
+ name = decoded[1]
308
+ version = decoded[2]
309
+ chainId = decoded[3]
310
+ } else {
311
+ name = KERNEL_NAME
312
+ version = LATEST_KERNEL_VERSION
313
+ chainId = client.chain
314
+ ? BigInt(client.chain.id)
315
+ : BigInt(await client.extend(publicActions).getChainId())
316
+ }
289
317
 
290
318
  const encoded = encodeAbiParameters(
291
319
  [
@@ -301,9 +329,9 @@ export async function createKernelAccount<
301
329
  "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"
302
330
  )
303
331
  ),
304
- keccak256(stringToHex(decoded[1])),
305
- keccak256(stringToHex(decoded[2])),
306
- decoded[3],
332
+ keccak256(stringToHex(name)),
333
+ keccak256(stringToHex(version)),
334
+ BigInt(chainId),
307
335
  accountAddress
308
336
  ]
309
337
  )
@@ -324,7 +352,11 @@ export async function createKernelAccount<
324
352
  address: accountAddress,
325
353
  async signMessage({ message }) {
326
354
  const messageHash = hashMessage(message)
327
- return signHashedMessage(messageHash)
355
+ const [isDeployed, signature] = await Promise.all([
356
+ isAccountDeployed(),
357
+ signHashedMessage(messageHash)
358
+ ])
359
+ return create6492Signature(isDeployed, signature)
328
360
  },
329
361
  async signTransaction(_, __) {
330
362
  throw new SignTransactionNotSupportedBySmartAccount()
@@ -347,16 +379,50 @@ export async function createKernelAccount<
347
379
  } as TypedDataDefinition)
348
380
 
349
381
  const typedHash = hashTypedData(typedData)
350
- return await signHashedMessage(typedHash)
382
+ const [isDeployed, signature] = await Promise.all([
383
+ isAccountDeployed(),
384
+ signHashedMessage(typedHash)
385
+ ])
386
+ return create6492Signature(isDeployed, signature)
351
387
  }
352
388
  })
353
389
 
390
+ const isAccountDeployed = async (): Promise<boolean> => {
391
+ const contractCode = await getBytecode(client, {
392
+ address: accountAddress
393
+ })
394
+
395
+ return (contractCode?.length ?? 0) > 2
396
+ }
397
+
398
+ const create6492Signature = async (
399
+ isDeployed: boolean,
400
+ signature: Hash
401
+ ): Promise<Hash> => {
402
+ if (isDeployed) {
403
+ return signature
404
+ }
405
+
406
+ const [factoryAddress, factoryCalldata] =
407
+ parseFactoryAddressAndCallDataFromAccountInitCode(
408
+ await generateInitCode()
409
+ )
410
+
411
+ return wrapSignatureWith6492({
412
+ factoryAddress,
413
+ factoryCalldata,
414
+ signature
415
+ })
416
+ }
417
+
354
418
  return {
355
419
  ...account,
356
420
  client: client,
357
421
  publicKey: accountAddress,
358
422
  entryPoint: entryPoint,
359
423
  source: "kernelSmartAccount",
424
+ kernelPluginManager,
425
+ generateInitCode,
360
426
 
361
427
  // Get the nonce of the smart account
362
428
  async getNonce() {
@@ -367,23 +433,19 @@ export async function createKernelAccount<
367
433
  key
368
434
  })
369
435
  },
370
- kernelPluginManager,
371
436
 
372
437
  // Sign a user operation
373
438
  async signUserOperation(userOperation) {
374
439
  return kernelPluginManager.signUserOperation(userOperation)
375
440
  },
376
- generateInitCode,
377
441
 
378
442
  // Encode the init code
379
443
  async getInitCode() {
380
- const contractCode = await getBytecode(client, {
381
- address: accountAddress
382
- })
383
-
384
- if ((contractCode?.length ?? 0) > 2) return "0x"
385
-
386
- return generateInitCode()
444
+ if (await isAccountDeployed()) {
445
+ return "0x"
446
+ } else {
447
+ return generateInitCode()
448
+ }
387
449
  },
388
450
 
389
451
  // Encode the deploy call data
@@ -0,0 +1,70 @@
1
+ // copied from: https://github.com/alchemyplatform/aa-sdk/blob/266c9757cd721ef0bd97d04c0b592a329f8a9da5/packages/core/src/signer/utils.ts
2
+
3
+ import {
4
+ type Address,
5
+ type Hash,
6
+ type Hex,
7
+ type PublicClient,
8
+ concat,
9
+ encodeAbiParameters,
10
+ parseAbiParameters
11
+ } from "viem"
12
+
13
+ export type SignWith6492Params = {
14
+ factoryAddress: Address
15
+ factoryCalldata: Hex
16
+ signature: Hash
17
+ }
18
+
19
+ type VerifyEIP6492SignatureParams = {
20
+ signer: Address
21
+ hash: Hash
22
+ signature: Hash
23
+ client: PublicClient
24
+ }
25
+
26
+ export const wrapSignatureWith6492 = ({
27
+ factoryAddress,
28
+ factoryCalldata,
29
+ signature
30
+ }: SignWith6492Params): Hash => {
31
+ // wrap the signature as follows: https://eips.ethereum.org/EIPS/eip-6492
32
+ // concat(
33
+ // abi.encode(
34
+ // (create2Factory, factoryCalldata, originalERC1271Signature),
35
+ // (address, bytes, bytes)),
36
+ // magicBytes
37
+ // )
38
+ return concat([
39
+ encodeAbiParameters(parseAbiParameters("address, bytes, bytes"), [
40
+ factoryAddress,
41
+ factoryCalldata,
42
+ signature
43
+ ]),
44
+ "0x6492649264926492649264926492649264926492649264926492649264926492"
45
+ ])
46
+ }
47
+
48
+ // defined in https://github.com/AmbireTech/signature-validator/blob/main/index.ts#L13C17-L13C17
49
+ const universalValidatorByteCode =
50
+ "0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572"
51
+
52
+ export const verifyEIP6492Signature = async ({
53
+ signer,
54
+ hash,
55
+ signature,
56
+ client
57
+ }: VerifyEIP6492SignatureParams): Promise<boolean> => {
58
+ const result = await client.call({
59
+ data: concat([
60
+ universalValidatorByteCode,
61
+ encodeAbiParameters(parseAbiParameters("address, bytes32, bytes"), [
62
+ signer,
63
+ hash,
64
+ signature
65
+ ])
66
+ ])
67
+ })
68
+
69
+ return result.data === "0x01"
70
+ }
@@ -1,2 +1,5 @@
1
1
  import { toKernelPluginManager } from "./toKernelPluginManager.js"
2
2
  export { toKernelPluginManager }
3
+
4
+ import { verifyEIP6492Signature } from "./6492.js"
5
+ export { verifyEIP6492Signature }
package/constants.ts CHANGED
@@ -9,4 +9,5 @@ export const KernelImplToVersionMap: { [key: Address]: string } = {
9
9
  "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3"
10
10
  }
11
11
  export const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1"
12
+ export const KERNEL_NAME = "Kernel"
12
13
  export const LATEST_KERNEL_VERSION = "0.2.3"
package/index.ts CHANGED
@@ -38,3 +38,4 @@ export {
38
38
  gasTokenAddresses,
39
39
  type TokenSymbolsMap
40
40
  } from "./gasTokenAddresses.js"
41
+ export { verifyEIP6492Signature } from "./accounts/utils/index.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.1.0",
3
+ "version": "5.1.2",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",