@zerodev/sdk 5.1.0-beta.1 → 5.1.1

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 +67 -26
  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 +68 -27
  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
@@ -8,6 +8,8 @@ const accounts_2 = require("viem/accounts");
8
8
  const actions_1 = require("viem/actions");
9
9
  const toKernelPluginManager_js_1 = require("../utils/toKernelPluginManager.js");
10
10
  const KernelAccountAbi_js_1 = require("./abi/KernelAccountAbi.js");
11
+ const _6492_js_1 = require("../utils/6492.js");
12
+ const constants_js_1 = require("../../constants.js");
11
13
  const createAccountAbi = [
12
14
  {
13
15
  inputs: [
@@ -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,22 @@ 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, version, chainId;
156
+ if (domain !== "0x") {
157
+ const decoded = (0, viem_1.decodeFunctionResult)({
158
+ abi: [...exports.EIP1271ABI],
159
+ functionName: "eip712Domain",
160
+ data: domain
161
+ });
162
+ name = decoded[1];
163
+ version = decoded[2];
164
+ chainId = decoded[3];
165
+ }
166
+ else {
167
+ name = constants_js_1.KERNEL_NAME;
168
+ version = constants_js_1.LATEST_KERNEL_VERSION;
169
+ chainId = client.chain ? client.chain.id : await client.extend(viem_1.publicActions).getChainId();
170
+ }
155
171
  const encoded = (0, viem_1.encodeAbiParameters)([
156
172
  { type: "bytes32" },
157
173
  { type: "bytes32" },
@@ -160,9 +176,9 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
160
176
  { type: "address" }
161
177
  ], [
162
178
  (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],
179
+ (0, viem_1.keccak256)((0, viem_1.stringToHex)(name)),
180
+ (0, viem_1.keccak256)((0, viem_1.stringToHex)(version)),
181
+ BigInt(chainId),
166
182
  accountAddress
167
183
  ]);
168
184
  const domainSeparator = (0, viem_1.keccak256)(encoded);
@@ -177,7 +193,11 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
177
193
  address: accountAddress,
178
194
  async signMessage({ message }) {
179
195
  const messageHash = (0, viem_1.hashMessage)(message);
180
- return signHashedMessage(messageHash);
196
+ const [isDeployed, signature] = await Promise.all([
197
+ isAccountDeployed(),
198
+ signHashedMessage(messageHash),
199
+ ]);
200
+ return create6492Signature(isDeployed, signature);
181
201
  },
182
202
  async signTransaction(_, __) {
183
203
  throw new accounts_1.SignTransactionNotSupportedBySmartAccount();
@@ -196,15 +216,38 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
196
216
  types: types
197
217
  });
198
218
  const typedHash = (0, viem_1.hashTypedData)(typedData);
199
- return await signHashedMessage(typedHash);
219
+ const [isDeployed, signature] = await Promise.all([
220
+ isAccountDeployed(),
221
+ signHashedMessage(typedHash),
222
+ ]);
223
+ return create6492Signature(isDeployed, signature);
200
224
  }
201
225
  });
226
+ const isAccountDeployed = async () => {
227
+ const contractCode = await (0, actions_1.getBytecode)(client, {
228
+ address: accountAddress
229
+ });
230
+ return (contractCode?.length ?? 0) > 2;
231
+ };
232
+ const create6492Signature = async (isDeployed, signature) => {
233
+ if (isDeployed) {
234
+ return signature;
235
+ }
236
+ const [factoryAddress, factoryCalldata] = parseFactoryAddressAndCallDataFromAccountInitCode(await generateInitCode());
237
+ return (0, _6492_js_1.wrapSignatureWith6492)({
238
+ factoryAddress,
239
+ factoryCalldata,
240
+ signature,
241
+ });
242
+ };
202
243
  return {
203
244
  ...account,
204
245
  client: client,
205
246
  publicKey: accountAddress,
206
247
  entryPoint: entryPoint,
207
248
  source: "kernelSmartAccount",
249
+ kernelPluginManager,
250
+ generateInitCode,
208
251
  async getNonce() {
209
252
  const key = await kernelPluginManager.getNonceKey();
210
253
  return (0, permissionless_1.getAccountNonce)(client, {
@@ -213,18 +256,16 @@ async function createKernelAccount(client, { plugins, entryPoint = exports.KERNE
213
256
  key
214
257
  });
215
258
  },
216
- kernelPluginManager,
217
259
  async signUserOperation(userOperation) {
218
260
  return kernelPluginManager.signUserOperation(userOperation);
219
261
  },
220
- generateInitCode,
221
262
  async getInitCode() {
222
- const contractCode = await (0, actions_1.getBytecode)(client, {
223
- address: accountAddress
224
- });
225
- if ((contractCode?.length ?? 0) > 2)
226
- return "0x";
227
- return generateInitCode();
263
+ if (await isAccountDeployed()) {
264
+ return '0x';
265
+ }
266
+ else {
267
+ return generateInitCode();
268
+ }
228
269
  },
229
270
  async encodeDeployCallData(_tx) {
230
271
  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,+BAQc;AAeP,MAAM,qBAAqB,GAAG,CAAC,EACpC,cAAc,EACd,eAAe,EACf,SAAS,GACU,EAAQ,EAAE;IAQ7B,OAAO,IAAA,aAAM,EAAC;QACZ,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,uBAAuB,CAAC,EAAE;YAC/D,cAAc;YACd,eAAe;YACf,SAAS;SACV,CAAC;QACF,oEAAoE;KACrE,CAAC,CAAC;AACL,CAAC,CAAC;AApBW,QAAA,qBAAqB,yBAoBhC;AAGF,MAAM,0BAA0B,GAC9B,ogHAAogH,CAAC;AAEhgH,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,MAAM,EACN,IAAI,EACJ,SAAS,EACT,MAAM,GACuB,EAAoB,EAAE;IACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,IAAA,aAAM,EAAC;YACX,0BAA0B;YAC1B,IAAA,0BAAmB,EAAC,IAAA,yBAAkB,EAAC,yBAAyB,CAAC,EAAE;gBACjE,MAAM;gBACN,IAAI;gBACJ,SAAS;aACV,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC"}
@@ -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 utils_1 = require("./accounts/utils");
30
+ Object.defineProperty(exports, "verifyEIP6492Signature", { enumerable: true, get: function () { return utils_1.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,0CAEyB;AADrB,+GAAA,sBAAsB,OAAA"}
@@ -1,10 +1,12 @@
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, stringToHex, validateTypedData, publicActions, } from "viem";
4
4
  import { toAccount } from "viem/accounts";
5
5
  import { getBytecode } from "viem/actions";
6
6
  import { isKernelPluginManager, toKernelPluginManager } from "../utils/toKernelPluginManager.js";
7
7
  import { KernelExecuteAbi, KernelInitAbi } from "./abi/KernelAccountAbi.js";
8
+ import { wrapSignatureWith6492 } from "../utils/6492.js";
9
+ import { KERNEL_NAME, LATEST_KERNEL_VERSION } from "../../constants.js";
8
10
  /**
9
11
  * The account creation ABI for a kernel smart account (from the KernelFactory)
10
12
  */
@@ -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,22 @@ 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, version, chainId;
191
+ if (domain !== "0x") {
192
+ const decoded = decodeFunctionResult({
193
+ abi: [...EIP1271ABI],
194
+ functionName: "eip712Domain",
195
+ data: domain
196
+ });
197
+ name = decoded[1];
198
+ version = decoded[2];
199
+ chainId = decoded[3];
200
+ }
201
+ else {
202
+ name = KERNEL_NAME;
203
+ version = LATEST_KERNEL_VERSION;
204
+ chainId = client.chain ? client.chain.id : await client.extend(publicActions).getChainId();
205
+ }
190
206
  const encoded = encodeAbiParameters([
191
207
  { type: "bytes32" },
192
208
  { type: "bytes32" },
@@ -195,9 +211,9 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
195
211
  { type: "address" }
196
212
  ], [
197
213
  keccak256(stringToHex("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)")),
198
- keccak256(stringToHex(decoded[1])),
199
- keccak256(stringToHex(decoded[2])),
200
- decoded[3],
214
+ keccak256(stringToHex(name)),
215
+ keccak256(stringToHex(version)),
216
+ BigInt(chainId),
201
217
  accountAddress
202
218
  ]);
203
219
  const domainSeparator = keccak256(encoded);
@@ -213,7 +229,11 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
213
229
  address: accountAddress,
214
230
  async signMessage({ message }) {
215
231
  const messageHash = hashMessage(message);
216
- return signHashedMessage(messageHash);
232
+ const [isDeployed, signature] = await Promise.all([
233
+ isAccountDeployed(),
234
+ signHashedMessage(messageHash),
235
+ ]);
236
+ return create6492Signature(isDeployed, signature);
217
237
  },
218
238
  async signTransaction(_, __) {
219
239
  throw new SignTransactionNotSupportedBySmartAccount();
@@ -234,15 +254,38 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
234
254
  types: types
235
255
  });
236
256
  const typedHash = hashTypedData(typedData);
237
- return await signHashedMessage(typedHash);
257
+ const [isDeployed, signature] = await Promise.all([
258
+ isAccountDeployed(),
259
+ signHashedMessage(typedHash),
260
+ ]);
261
+ return create6492Signature(isDeployed, signature);
238
262
  }
239
263
  });
264
+ const isAccountDeployed = async () => {
265
+ const contractCode = await getBytecode(client, {
266
+ address: accountAddress
267
+ });
268
+ return (contractCode?.length ?? 0) > 2;
269
+ };
270
+ const create6492Signature = async (isDeployed, signature) => {
271
+ if (isDeployed) {
272
+ return signature;
273
+ }
274
+ const [factoryAddress, factoryCalldata] = parseFactoryAddressAndCallDataFromAccountInitCode(await generateInitCode());
275
+ return wrapSignatureWith6492({
276
+ factoryAddress,
277
+ factoryCalldata,
278
+ signature,
279
+ });
280
+ };
240
281
  return {
241
282
  ...account,
242
283
  client: client,
243
284
  publicKey: accountAddress,
244
285
  entryPoint: entryPoint,
245
286
  source: "kernelSmartAccount",
287
+ kernelPluginManager,
288
+ generateInitCode,
246
289
  // Get the nonce of the smart account
247
290
  async getNonce() {
248
291
  const key = await kernelPluginManager.getNonceKey();
@@ -252,20 +295,18 @@ export async function createKernelAccount(client, { plugins, entryPoint = KERNEL
252
295
  key
253
296
  });
254
297
  },
255
- kernelPluginManager,
256
298
  // Sign a user operation
257
299
  async signUserOperation(userOperation) {
258
300
  return kernelPluginManager.signUserOperation(userOperation);
259
301
  },
260
- generateInitCode,
261
302
  // Encode the init code
262
303
  async getInitCode() {
263
- const contractCode = await getBytecode(client, {
264
- address: accountAddress
265
- });
266
- if ((contractCode?.length ?? 0) > 2)
267
- return "0x";
268
- return generateInitCode();
304
+ if (await isAccountDeployed()) {
305
+ return '0x';
306
+ }
307
+ else {
308
+ return generateInitCode();
309
+ }
269
310
  },
270
311
  // Encode the deploy call data
271
312
  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":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EACH,yCAAyC,EAE5C,MAAM,yBAAyB,CAAA;AAChC,OAAO,EASH,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,WAAW,EACX,aAAa,EACb,SAAS,EACT,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,aAAa,GAChB,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAM1C,OAAO,EACH,qBAAqB,EACrB,qBAAqB,EACxB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAWvE;;GAEG;AACH,MAAM,gBAAgB,GAAG;IACrB;QACI,MAAM,EAAE;YACJ;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,SAAS;aAClB;YACD;gBACI,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE;YACL;gBACI,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAClB;SACJ;QACD,eAAe,EAAE,SAAS;QAC1B,IAAI,EAAE,UAAU;KACnB;CACK,CAAA;AAEV,wKAAwK;AACxK,2JAA2J;AAC3J,MAAM,iBAAiB,GAAG,4CAA4C,CAAA;AAEtE,MAAM,aAAa,GAAG,QAAQ,CAAC;IAC3B,yGAAyG;IACzG,wHAAwH;CAC3H,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;YAC1D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;YACxD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;YAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAC7D;gBACI,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,SAAS;gBACf,YAAY,EAAE,SAAS;aAC1B;YACD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAC1D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;SACvE;QACD,eAAe,EAAE,MAAM;KAC1B;IACD;QACI,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACJ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE;YAC1D,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE;SAC9D;QACD,OAAO,EAAE;YACL,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE;SACjE;QACD,eAAe,EAAE,MAAM;KAC1B;CACK,CAAA;AACV;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAIzB;IACA,kBAAkB,EAAE,4CAA4C;IAChE,eAAe,EAAE,4CAA4C;IAC7D,eAAe,EAAE,4CAA4C;CAChE,CAAA;AAED;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAC9B,KAAK,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EAOb,EAAgB,EAAE;IACf,wCAAwC;IACxC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;QAC1C,GAAG,EAAE,aAAa;QAClB,YAAY,EAAE,YAAY;QAC1B,IAAI,EAAE,CAAC,gBAAgB,EAAE,UAAU,CAAC;KACvC,CAAC,CAAA;IAEF,8BAA8B;IAC9B,OAAO,SAAS,CAAC;QACb,cAAc;QACd,kBAAkB,CAAC;YACf,GAAG,EAAE,gBAAgB;YACrB,YAAY,EAAE,eAAe;YAC7B,IAAI,EAAE,CAAC,mBAAmB,EAAE,kBAAkB,EAAE,KAAK,CAAC;SACzD,CAAQ;KACZ,CAAC,CAAA;AACN,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,KAAK,EAG7B,EACE,MAAM,EACN,UAAU,EACV,gBAAgB,EAKnB,EAAoB,EAAE;IACnB,sCAAsC;IACtC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAEzC,gDAAgD;IAChD,OAAO,gBAAgB,CAAC,MAAM,EAAE;QAC5B,QAAQ;QACR,UAAU;KACb,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,iDAAiD,GAAG,CAAC,QAAa,EAAkB,EAAE;IACxF,MAAM,cAAc,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAa,CAAA;IAClE,MAAM,eAAe,GAAG,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAS,CAAA;IAC5D,OAAO,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA;AAC5C,CAAC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAIrC,MAA6C,EAC7C,EACI,OAAO,EACP,UAAU,GAAG,gBAAgB,CAAC,eAAe,EAC7C,KAAK,GAAG,EAAE,EACV,cAAc,GAAG,gBAAgB,CAAC,eAAe,EACjD,mBAAmB,GAAG,gBAAgB,CAAC,kBAAkB,EACzD,sBAAsB,EAQzB;IAED,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,OAAO,CAAC;QACtD,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,MAAM,qBAAqB,CAAC,MAAM,EAAE;YAClC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;SACvD,CAAC,CAAA;IACN,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE;QAChC,MAAM,iBAAiB,GACnB,MAAM,mBAAmB,CAAC,oBAAoB,EAAE,CAAA;QACpD,OAAO,kBAAkB,CAAC;YACtB,KAAK;YACL,cAAc;YACd,mBAAmB;YACnB,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB;YACpD,UAAU,EAAE,iBAAiB,CAAC,UAAU;SAC3C,CAAC,CAAA;IACN,CAAC,CAAA;IAED,qCAAqC;IACrC,MAAM,cAAc,GAAG,sBAAsB;QACzC,MAAM,iBAAiB,CAAqB;YACxC,MAAM;YACN,UAAU;YACV,gBAAgB,EAAE,gBAAgB;SACrC,CAAC,CAAA;IAEN,IAAI,CAAC,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAEjE,MAAM,iBAAiB,GAAG,KAAK,EAAE,WAAgB,EAAgB,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;YAChC,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE;gBACJ;oBACI,EAAE,EAAE,cAAc;oBAClB,IAAI,EAAE,kBAAkB,CAAC;wBACrB,GAAG,EAAE,UAAU;wBACf,YAAY,EAAE,cAAc;qBAC/B,CAAC;iBACL;gBACD,QAAQ;aACX;SACJ,CAAC,CAAA;QAEF,IAAI,IAAI,EAAE,OAAO,EAAE,OAAO,CAAA;QAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,oBAAoB,CAAC;gBACjC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC;gBACpB,YAAY,EAAE,cAAc;gBAC5B,IAAI,EAAE,MAAM;aACf,CAAC,CAAA;YAEF,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACjB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YACpB,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACJ,IAAI,GAAG,WAAW,CAAA;YAClB,OAAO,GAAG,qBAAqB,CAAA;YAC/B,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,CAAA;QAC9F,CAAC;QAGD,MAAM,OAAO,GAAG,mBAAmB,CAC/B;YACI,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;YACnB,EAAE,IAAI,EAAE,SAAS,EAAE;SACtB,EACD;YACI,SAAS,CACL,WAAW,CACP,oFAAoF,CACvF,CACJ;YACD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,CAAC;YACf,cAAc;SACjB,CACJ,CAAA;QAED,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,SAAS,CACpB,SAAS,CAAC,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CACtD,CAAA;QACD,OAAO,mBAAmB,CAAC,WAAW,CAAC;YACnC,OAAO,EAAE;gBACL,GAAG,EAAE,MAAM;aACd;SACJ,CAAC,CAAA;IACN,CAAC,CAAA;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,SAAS,CAAC;QACtB,OAAO,EAAE,cAAc;QACvB,KAAK,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE;YACzB,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,iBAAiB,EAAE;gBACnB,iBAAiB,CAAC,WAAW,CAAC;aACjC,CAAC,CAAA;YACF,OAAO,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,IAAI,yCAAyC,EAAE,CAAA;QACzD,CAAC;QACD,KAAK,CAAC,aAAa,CAAC,SAAS;YACzB,MAAM,KAAK,GAAG;gBACV,YAAY,EAAE,uBAAuB,CAAC;oBAClC,MAAM,EAAE,SAAS,CAAC,MAAM;iBAC3B,CAAC;gBACF,GAAG,SAAS,CAAC,KAAK;aACrB,CAAA;YAED,uFAAuF;YACvF,qDAAqD;YACrD,iBAAiB,CAAC;gBACd,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,KAAK,EAAE,KAAK;aACQ,CAAC,CAAA;YAEzB,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;YAC1C,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,iBAAiB,EAAE;gBACnB,iBAAiB,CAAC,SAAS,CAAC;aAC/B,CAAC,CAAA;YACF,OAAO,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrD,CAAC;KACJ,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,KAAK,IAAsB,EAAE;QACnD,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE;YAC3C,OAAO,EAAE,cAAc;SAC1B,CAAC,CAAA;QAEF,OAAO,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC1C,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,KAAK,EAC7B,UAAmB,EACnB,SAAe,EACF,EAAE;QACf,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GACnC,iDAAiD,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAA;QAE/E,OAAO,qBAAqB,CAAC;YACzB,cAAc;YACd,eAAe;YACf,SAAS;SACZ,CAAC,CAAA;IACN,CAAC,CAAA;IAED,OAAO;QACH,GAAG,OAAO;QACV,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,cAAc;QACzB,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,oBAAoB;QAC5B,mBAAmB;QACnB,gBAAgB;QAEhB,qCAAqC;QACrC,KAAK,CAAC,QAAQ;YACV,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,CAAA;YACnD,OAAO,eAAe,CAAC,MAAM,EAAE;gBAC3B,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,UAAU;gBACtB,GAAG;aACN,CAAC,CAAA;QACN,CAAC;QAED,wBAAwB;QACxB,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACjC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC/D,CAAC;QAED,uBAAuB;QACvB,KAAK,CAAC,WAAW;YACb,IAAI,MAAM,iBAAiB,EAAE,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAA;YACf,CAAC;iBAAM,CAAC;gBACJ,OAAO,gBAAgB,EAAE,CAAA;YAC7B,CAAC;QACL,CAAC;QAED,8BAA8B;QAC9B,KAAK,CAAC,oBAAoB,CAAC,GAAG;YAC1B,OAAO,kBAAkB,CAAC;gBACtB,GAAG,EAAE,gBAAgB;gBACrB,YAAY,EAAE,qBAAqB;gBACnC,IAAI,EAAE;oBACF,iBAAiB;oBACjB,kBAAkB,CAAC;wBACf,GAAG,EAAE,aAAa;wBAClB,YAAY,EAAE,eAAe;wBAC7B,IAAI,EAAE;4BACF,EAAE;4BACF,gBAAgB,CAAC;gCACb,GAAG,EAAE,GAAG,CAAC,GAAG;gCACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;gCACtB,IAAI,EAAE,GAAG,CAAC,IAAI;6BACa,CAAC;yBACnC;qBACJ,CAAC;iBACL;aACJ,CAAC,CAAA;QACN,CAAC;QAED,gBAAgB;QAChB,KAAK,CAAC,cAAc,CAAC,GAAG;YACpB,MAAM,EAAE,GAAG,GAA+B,CAAA;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACpB,wBAAwB;gBACxB,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,gBAAgB;oBACrB,YAAY,EAAE,cAAc;oBAC5B,IAAI,EAAE;wBACF,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;4BACX,IAAI,GAAG,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;gCAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;4BAChD,CAAC;4BACD,OAAO;gCACH,EAAE,EAAE,GAAG,CAAC,EAAE;gCACV,KAAK,EAAE,GAAG,CAAC,KAAK;gCAChB,IAAI,EAAE,GAAG,CAAC,IAAI;6BACjB,CAAA;wBACL,CAAC,CAAC;qBACL;iBACJ,CAAC,CAAA;YACN,CAAC;YAED,oBAAoB;YACpB,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;gBACzC,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvD,OAAO,EAAE,CAAC,IAAI,CAAA;gBAClB,CAAC;gBACD,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,gBAAgB;oBACrB,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;iBACtC,CAAC,CAAA;YACN,CAAC;YAED,IAAI,EAAE,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;gBACjC,OAAO,kBAAkB,CAAC;oBACtB,GAAG,EAAE,gBAAgB;oBACrB,YAAY,EAAE,qBAAqB;oBACnC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;iBACzB,CAAC,CAAA;YACN,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACxC,CAAC;QAED,6BAA6B;QAC7B,KAAK,CAAC,iBAAiB,CAAC,aAAa;YACjC,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAA;QAC/D,CAAC;KACJ,CAAA;AACL,CAAC"}
@@ -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,EACL,MAAM,EACN,mBAAmB,EACnB,kBAAkB,GAKnB,MAAM,MAAM,CAAC;AAed,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,cAAc,EACd,eAAe,EACf,SAAS,GACU,EAAQ,EAAE;IAC7B,yEAAyE;IACzE,UAAU;IACV,eAAe;IACf,kEAAkE;IAClE,+BAA+B;IAC/B,gBAAgB;IAChB,IAAI;IACJ,OAAO,MAAM,CAAC;QACZ,mBAAmB,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,EAAE;YAC/D,cAAc;YACd,eAAe;YACf,SAAS;SACV,CAAC;QACF,oEAAoE;KACrE,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,gGAAgG;AAChG,MAAM,0BAA0B,GAC9B,ogHAAogH,CAAC;AAEvgH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,MAAM,EACN,IAAI,EACJ,SAAS,EACT,MAAM,GACuB,EAAoB,EAAE;IACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;YACX,0BAA0B;YAC1B,mBAAmB,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,EAAE;gBACjE,MAAM;gBACN,IAAI;gBACJ,SAAS;aACV,CAAC;SACH,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;AAChC,CAAC,CAAC"}
@@ -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';
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,EACH,sBAAsB,EACzB,MAAM,kBAAkB,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;AAGb,OAAO,KAAK,EACR,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EAC5B,MAAM,uBAAuB,CAAA;AAS9B,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;AA0ED;;;;;;;;;;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,CA+QjD"}
@@ -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,EAIL,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,GAAG,EACR,KAAK,YAAY,EAClB,MAAM,MAAM,CAAC;AAEd,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,GAAG,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,KAAK,4BAA4B,GAAG;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,qBAAqB,oDAI/B,kBAAkB,KAAG,IAgBvB,CAAC;AAMF,eAAO,MAAM,sBAAsB,yCAKhC,4BAA4B,KAAG,QAAQ,OAAO,CAahD,CAAC"}
@@ -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" | "getChainId" | "prepareTransactionRequest" | "sendRawTransaction" | "createContractEventFilter" | "createEventFilter" | "estimateContractGas" | "estimateGas" | "getBlock" | "getBlockNumber" | "getContractEvents" | "getEnsText" | "getFilterChanges" | "getGasPrice" | "getLogs" | "getTransaction" | "getTransactionCount" | "getTransactionReceipt" | "readContract" | "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';
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,EACH,sBAAsB,EACzB,MAAM,kBAAkB,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
+ ? client.chain.id
315
+ : 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"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.1.0-beta.1",
3
+ "version": "5.1.1",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",