@zerodev/sdk 5.2.1-alpha-8 → 5.2.1-alpha-9

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 (38) hide show
  1. package/_cjs/accounts/kernel/createKernelAccount.js +2 -2
  2. package/_cjs/clients/kernelAccountClient.js +20 -4
  3. package/_cjs/clients/kernelAccountClient.js.map +1 -1
  4. package/_cjs/clients/paymasterClient.js +18 -1
  5. package/_cjs/clients/paymasterClient.js.map +1 -1
  6. package/_cjs/clients/utils.js +31 -0
  7. package/_cjs/clients/utils.js.map +1 -0
  8. package/_cjs/constants.js +5 -2
  9. package/_cjs/constants.js.map +1 -1
  10. package/_cjs/providers/KernelEIP1193Provider.js +37 -0
  11. package/_cjs/providers/KernelEIP1193Provider.js.map +1 -1
  12. package/_esm/accounts/kernel/createKernelAccount.js +2 -2
  13. package/_esm/clients/kernelAccountClient.js +21 -5
  14. package/_esm/clients/kernelAccountClient.js.map +1 -1
  15. package/_esm/clients/paymasterClient.js +19 -2
  16. package/_esm/clients/paymasterClient.js.map +1 -1
  17. package/_esm/clients/utils.js +26 -0
  18. package/_esm/clients/utils.js.map +1 -0
  19. package/_esm/constants.js +4 -1
  20. package/_esm/constants.js.map +1 -1
  21. package/_esm/providers/KernelEIP1193Provider.js +37 -0
  22. package/_esm/providers/KernelEIP1193Provider.js.map +1 -1
  23. package/_types/clients/kernelAccountClient.d.ts +4 -4
  24. package/_types/clients/kernelAccountClient.d.ts.map +1 -1
  25. package/_types/clients/paymasterClient.d.ts.map +1 -1
  26. package/_types/clients/utils.d.ts +3 -0
  27. package/_types/clients/utils.d.ts.map +1 -0
  28. package/_types/constants.d.ts +4 -1
  29. package/_types/constants.d.ts.map +1 -1
  30. package/_types/providers/KernelEIP1193Provider.d.ts +2 -0
  31. package/_types/providers/KernelEIP1193Provider.d.ts.map +1 -1
  32. package/accounts/kernel/createKernelAccount.ts +2 -2
  33. package/clients/kernelAccountClient.ts +25 -5
  34. package/clients/paymasterClient.ts +24 -1
  35. package/clients/utils.ts +28 -0
  36. package/constants.ts +6 -2
  37. package/package.json +1 -1
  38. package/providers/KernelEIP1193Provider.ts +51 -0
@@ -49,9 +49,9 @@ const createAccountAbi = [
49
49
  ];
50
50
  exports.KERNEL_ADDRESSES = {
51
51
  ACCOUNT_LOGIC_V0_6: "0xd3082872F8B06073A021b4602e022d5A070d7cfC",
52
- ACCOUNT_LOGIC_V0_7: "0xe59cffb45AFFB215e3823F7D1a207a71C1aa09c3",
52
+ ACCOUNT_LOGIC_V0_7: "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27",
53
53
  FACTORY_ADDRESS_V0_6: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3",
54
- FACTORY_ADDRESS_V0_7: "0x17B6697d81844518365484323e810Be08EaA3A6a",
54
+ FACTORY_ADDRESS_V0_7: "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
55
55
  FACTORY_STAKER: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5"
56
56
  };
57
57
  const getKernelInitData = async ({ entryPoint: entryPointAddress, kernelPluginManager }) => {
@@ -1,21 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createKernelAccountClient = void 0;
4
+ const permissionless_1 = require("permissionless");
4
5
  const viem_1 = require("viem");
5
6
  const getUserOperationGasPrice_js_1 = require("../actions/account-client/getUserOperationGasPrice.js");
6
7
  const kernel_js_1 = require("./decorators/kernel.js");
8
+ const utils_js_1 = require("./utils.js");
7
9
  const createKernelAccountClient = (parameters) => {
8
- const { key = "Account", name = "Kernel Account Client", bundlerTransport } = parameters;
10
+ const { key = "Account", name = "Kernel Account Client", bundlerTransport, entryPoint } = parameters;
11
+ const entryPointVersion = (0, permissionless_1.getEntryPointVersion)(entryPoint);
12
+ const shouldIncludePimlicoProvider = bundlerTransport({}).config.key === "http" &&
13
+ entryPointVersion === "v0.7";
9
14
  const client = (0, viem_1.createClient)({
10
15
  ...parameters,
11
16
  key,
12
17
  name,
13
- transport: (opts) => bundlerTransport({ ...opts, retryCount: 0 }),
18
+ transport: (opts) => {
19
+ let _bundlerTransport = bundlerTransport({
20
+ ...opts,
21
+ retryCount: 0
22
+ });
23
+ if (!shouldIncludePimlicoProvider)
24
+ return _bundlerTransport;
25
+ _bundlerTransport = (0, viem_1.http)((0, utils_js_1.setPimlicoAsProvider)(_bundlerTransport.value?.url))({ ...opts, retryCount: 0 });
26
+ return _bundlerTransport;
27
+ },
14
28
  type: "kernelAccountClient"
15
29
  });
16
30
  let middleware = parameters.middleware;
17
- if (!middleware ||
18
- (typeof middleware !== "function" && !middleware.gasPrice)) {
31
+ if ((!middleware ||
32
+ (typeof middleware !== "function" && !middleware.gasPrice)) &&
33
+ client.transport?.url &&
34
+ (0, utils_js_1.hasPimlicoAsProvider)(client.transport.url)) {
19
35
  const gasPrice = () => (0, getUserOperationGasPrice_js_1.getUserOperationGasPrice)(client);
20
36
  middleware = {
21
37
  ...middleware,
@@ -1 +1 @@
1
- {"version":3,"file":"kernelAccountClient.js","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":";;;AAIA,+BAMa;AAEb,uGAAgG;AAChG,sDAG+B;AAsCxB,MAAM,yBAAyB,GAAG,CAQrC,UAKC,EACiE,EAAE;IACpE,MAAM,EACF,GAAG,GAAG,SAAS,EACf,IAAI,GAAG,uBAAuB,EAC9B,gBAAgB,EACnB,GAAG,UAAU,CAAA;IACd,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;IAEtC,IACI,CAAC,UAAU;QACX,CAAC,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5D,CAAC;QACC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAA,sDAAwB,EAAC,MAAM,CAAC,CAAA;QACvD,UAAU,GAAG;YACT,GAAG,UAAU;YACb,QAAQ;SACX,CAAA;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAChB,IAAA,sCAA0B,EAAC;QACvB,UAAU;KACb,CAAC,CACiE,CAAA;AAC3E,CAAC,CAAA;AA7CY,QAAA,yBAAyB,6BA6CrC"}
1
+ {"version":3,"file":"kernelAccountClient.js","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":";;;AAAA,mDAAqD;AAKrD,+BAOa;AAEb,uGAAgG;AAChG,sDAG+B;AAC/B,yCAAuE;AAsChE,MAAM,yBAAyB,GAAG,CAQrC,UAKC,EACiE,EAAE;IACpE,MAAM,EACF,GAAG,GAAG,SAAS,EACf,IAAI,GAAG,uBAAuB,EAC9B,gBAAgB,EAChB,UAAU,EACb,GAAG,UAAU,CAAA;IACd,MAAM,iBAAiB,GAAG,IAAA,qCAAoB,EAAC,UAAU,CAAC,CAAA;IAC1D,MAAM,4BAA4B,GAC9B,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM;QAC1C,iBAAiB,KAAK,MAAM,CAAA;IAEhC,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;gBACrC,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,4BAA4B;gBAAE,OAAO,iBAAiB,CAAA;YAC3D,iBAAiB,GAAG,IAAA,WAAI,EACpB,IAAA,+BAAoB,EAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CACrD,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7B,OAAO,iBAAiB,CAAA;QAC5B,CAAC;QACD,IAAI,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;IACtC,IACI,CAAC,CAAC,UAAU;QACR,CAAC,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,EAAE,GAAG;QACrB,IAAA,+BAAoB,EAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5C,CAAC;QACC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,IAAA,sDAAwB,EAAC,MAAM,CAAC,CAAA;QACvD,UAAU,GAAG;YACT,GAAG,UAAU;YACb,QAAQ;SACX,CAAA;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAChB,IAAA,sCAA0B,EAAC;QACvB,UAAU;KACb,CAAC,CACiE,CAAA;AAC3E,CAAC,CAAA;AA9DY,QAAA,yBAAyB,6BA8DrC"}
@@ -1,12 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createZeroDevPaymasterClient = void 0;
4
+ const permissionless_1 = require("permissionless");
4
5
  const viem_1 = require("viem");
5
6
  const kernel_js_1 = require("./decorators/kernel.js");
7
+ const utils_js_1 = require("./utils.js");
6
8
  const createZeroDevPaymasterClient = (parameters) => {
7
- const { key = "public", name = "ZeroDev Paymaster Client" } = parameters;
9
+ const { key = "public", name = "ZeroDev Paymaster Client", entryPoint: entryPointAddress, transport } = parameters;
10
+ const entryPointVersion = (0, permissionless_1.getEntryPointVersion)(entryPointAddress);
11
+ const shouldIncludePimlicoProvider = transport({}).config.key === "http" && entryPointVersion === "v0.7";
8
12
  const client = (0, viem_1.createClient)({
9
13
  ...parameters,
14
+ transport: (opts) => {
15
+ let _transport = transport({
16
+ ...opts,
17
+ retryCount: 0
18
+ });
19
+ if (!shouldIncludePimlicoProvider)
20
+ return _transport;
21
+ _transport = (0, viem_1.http)((0, utils_js_1.setPimlicoAsProvider)(_transport.value?.url))({
22
+ ...opts,
23
+ retryCount: 0
24
+ });
25
+ return _transport;
26
+ },
10
27
  key,
11
28
  name,
12
29
  type: "zerodevPaymasterClient"
@@ -1 +1 @@
1
- {"version":3,"file":"paymasterClient.js","sourceRoot":"","sources":["../../clients/paymasterClient.ts"],"names":[],"mappings":";;;AACA,+BAOa;AAEb,sDAG+B;AA0BxB,MAAM,4BAA4B,GAAG,CAKxC,UAEC,EACiC,EAAE;IACpC,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,IAAI,GAAG,0BAA0B,EAAE,GAAG,UAAU,CAAA;IACxE,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,wBAAwB;KACjC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAA,mCAAuB,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AACxE,CAAC,CAAA;AAjBY,QAAA,4BAA4B,gCAiBxC"}
1
+ {"version":3,"file":"paymasterClient.js","sourceRoot":"","sources":["../../clients/paymasterClient.ts"],"names":[],"mappings":";;;AAAA,mDAAqD;AAErD,+BAQa;AAEb,sDAG+B;AAC/B,yCAAiD;AA0B1C,MAAM,4BAA4B,GAAG,CAKxC,UAEC,EACiC,EAAE;IACpC,MAAM,EACF,GAAG,GAAG,QAAQ,EACd,IAAI,GAAG,0BAA0B,EACjC,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EACZ,GAAG,UAAU,CAAA;IACd,MAAM,iBAAiB,GAAG,IAAA,qCAAoB,EAAC,iBAAiB,CAAC,CAAA;IACjE,MAAM,4BAA4B,GAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,iBAAiB,KAAK,MAAM,CAAA;IACvE,MAAM,MAAM,GAAG,IAAA,mBAAY,EAAC;QACxB,GAAG,UAAU;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,UAAU,GAAG,SAAS,CAAC;gBACvB,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,4BAA4B;gBAAE,OAAO,UAAU,CAAA;YACpD,UAAU,GAAG,IAAA,WAAI,EAAC,IAAA,+BAAoB,EAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3D,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QACrB,CAAC;QACD,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,wBAAwB;KACjC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,IAAA,mCAAuB,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AACxE,CAAC,CAAA;AArCY,QAAA,4BAA4B,gCAqCxC"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hasPimlicoAsProvider = exports.setPimlicoAsProvider = void 0;
4
+ const setPimlicoAsProvider = (urlString) => {
5
+ const url = new URL(urlString);
6
+ const params = url.searchParams;
7
+ if (params.has("bundlerProvider")) {
8
+ params.set("bundlerProvider", "PIMLICO");
9
+ }
10
+ else if (params.has("paymasterProvider")) {
11
+ params.set("paymasterProvider", "PIMLICO");
12
+ }
13
+ else {
14
+ params.set("provider", "PIMLICO");
15
+ }
16
+ url.search = params.toString();
17
+ return url.toString();
18
+ };
19
+ exports.setPimlicoAsProvider = setPimlicoAsProvider;
20
+ const hasPimlicoAsProvider = (urlString) => {
21
+ const url = new URL(urlString);
22
+ const params = url.searchParams;
23
+ const provider = params.get("provider") ??
24
+ params.get("bundlerProvider") ??
25
+ params.get("paymasterProvider");
26
+ if (provider === "PIMLICO")
27
+ return true;
28
+ return false;
29
+ };
30
+ exports.hasPimlicoAsProvider = hasPimlicoAsProvider;
31
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../clients/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAE9B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAA;IAE/B,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC;SAAM,IAAI,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAE9B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;AACzB,CAAC,CAAA;AAhBY,QAAA,oBAAoB,wBAgBhC;AAEM,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAW,EAAE;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAA;IAC/B,MAAM,QAAQ,GACV,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA;AATY,QAAA,oBAAoB,wBAShC"}
package/_cjs/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.safeCreateCallAddress = exports.EXEC_TYPE = exports.CALL_TYPE = exports.VALIDATOR_MODE = exports.VALIDATOR_TYPE = exports.LATEST_KERNEL_VERSION = exports.KERNEL_NAME = exports.TOKEN_ACTION = exports.KernelImplToVersionMap = exports.DUMMY_ECDSA_SIG = void 0;
3
+ exports.KernelFactoryToInitCodeHashMap = exports.safeCreateCallAddress = exports.EXEC_TYPE = exports.CALL_TYPE = exports.VALIDATOR_MODE = exports.VALIDATOR_TYPE = 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,7 +8,7 @@ exports.KernelImplToVersionMap = {
8
8
  "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3",
9
9
  "0x5FC0236D6c88a65beD32EECDC5D60a5CAb377717": "0.2.3",
10
10
  "0xd3082872F8B06073A021b4602e022d5A070d7cfC": "0.2.4",
11
- "0xe59cffb45AFFB215e3823F7D1a207a71C1aa09c3": "0.3.0-beta"
11
+ "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27": "0.3.0-beta"
12
12
  };
13
13
  exports.TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
14
14
  exports.KERNEL_NAME = "Kernel";
@@ -38,4 +38,7 @@ var EXEC_TYPE;
38
38
  EXEC_TYPE["TRY_EXEC"] = "0x01";
39
39
  })(EXEC_TYPE || (exports.EXEC_TYPE = EXEC_TYPE = {}));
40
40
  exports.safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
41
+ exports.KernelFactoryToInitCodeHashMap = {
42
+ "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3": "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73"
43
+ };
41
44
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAGa,QAAA,eAAe,GACxB,sIAAsI,CAAA;AAE7H,QAAA,sBAAsB,GAA+B;IAC9D,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,YAAY;CAC7D,CAAA;AACY,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,WAAW,GAAG,QAAQ,CAAA;AACtB,QAAA,qBAAqB,GAA2C;IACzE,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,YAAY;CACvB,CAAA;AACY,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;CACZ,CAAA;AACV,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;AACnB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AACD,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,2BAAc,CAAA;IACd,mCAAsB,CAAA;AAC1B,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AACD,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6BAAgB,CAAA;IAChB,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAIY,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":";;;AAGa,QAAA,eAAe,GACxB,sIAAsI,CAAA;AAE7H,QAAA,sBAAsB,GAA+B;IAC9D,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,YAAY;CAC7D,CAAA;AACY,QAAA,YAAY,GAAG,4CAA4C,CAAA;AAC3D,QAAA,WAAW,GAAG,QAAQ,CAAA;AACtB,QAAA,qBAAqB,GAA2C;IACzE,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,YAAY;CACvB,CAAA;AACY,QAAA,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;CACZ,CAAA;AACV,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;AACnB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AACD,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,2BAAc,CAAA;IACd,mCAAsB,CAAA;AAC1B,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AACD,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6BAAgB,CAAA;IAChB,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB;AAIY,QAAA,qBAAqB,GAC9B,4CAA4C,CAAA;AACnC,QAAA,8BAA8B,GAA4B;IACnE,4CAA4C,EACxC,oEAAoE;CAC3E,CAAA"}
@@ -21,8 +21,13 @@ class KernelEIP1193Provider extends events_1.EventEmitter {
21
21
  return this.handleEthAccounts();
22
22
  case "eth_sendTransaction":
23
23
  return this.handleEthSendTransaction(params);
24
+ case "eth_sign":
25
+ return this.handleEthSign(params);
24
26
  case "personal_sign":
25
27
  return this.handlePersonalSign(params);
28
+ case "eth_signTypedData":
29
+ case "eth_signTypedData_v4":
30
+ return this.handleEthSignTypedDataV4(params);
26
31
  default:
27
32
  return this.kernelClient.transport.request({ method, params });
28
33
  }
@@ -43,6 +48,20 @@ class KernelEIP1193Provider extends events_1.EventEmitter {
43
48
  const [tx] = params;
44
49
  return this.kernelClient.sendTransaction(tx);
45
50
  }
51
+ async handleEthSign(params) {
52
+ if (!this.kernelClient?.account) {
53
+ throw new Error("account not connected!");
54
+ }
55
+ const [address, message] = params;
56
+ if (address.toLowerCase() !==
57
+ this.kernelClient.account.address.toLowerCase()) {
58
+ throw new Error("cannot sign for address that is not the current account");
59
+ }
60
+ return this.kernelClient.signMessage({
61
+ message,
62
+ account: this.kernelClient.account
63
+ });
64
+ }
46
65
  async handlePersonalSign(params) {
47
66
  if (!this.kernelClient?.account) {
48
67
  throw new Error("account not connected!");
@@ -57,6 +76,24 @@ class KernelEIP1193Provider extends events_1.EventEmitter {
57
76
  account: this.kernelClient.account
58
77
  });
59
78
  }
79
+ async handleEthSignTypedDataV4(params) {
80
+ if (!this.kernelClient?.account) {
81
+ throw new Error("account not connected!");
82
+ }
83
+ const [address, typedDataJSON] = params;
84
+ const typedData = JSON.parse(typedDataJSON);
85
+ if (address.toLowerCase() !==
86
+ this.kernelClient.account.address.toLowerCase()) {
87
+ throw new Error("cannot sign for address that is not the current account");
88
+ }
89
+ return this.kernelClient.signTypedData({
90
+ account: this.kernelClient.account,
91
+ domain: typedData.domain,
92
+ types: typedData.types,
93
+ message: typedData.message,
94
+ primaryType: typedData.primaryType
95
+ });
96
+ }
60
97
  }
61
98
  exports.KernelEIP1193Provider = KernelEIP1193Provider;
62
99
  //# sourceMappingURL=KernelEIP1193Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KernelEIP1193Provider.js","sourceRoot":"","sources":["../../providers/KernelEIP1193Provider.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAUrC,MAAa,qBAEX,SAAQ,qBAAY;IAGlB,YAAY,YAA6C;QACrD,KAAK,EAAE,CAAA;QAHH;;;;;WAA6C;QAIjD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACV,MAAM,EACN,MAAM,GAAG,EAAE,EACK;QAChB,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,qBAAqB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAA;YAC1C,KAAK,cAAc;gBACf,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACnC,KAAK,qBAAqB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;YAChD,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAA0B,CAAC,CAAA;YAC9D;gBACI,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,MAAe;QAClD,MAAM,CAAC,EAAE,CAAC,GAAG,MAAqC,CAAA;QAClD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC5B,MAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,CAAA;QACjC,IACI,OAAO,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EACjD,CAAC;YACC,MAAM,IAAI,KAAK,CACX,yDAAyD,CAC5D,CAAA;QACL,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACjC,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;SACrC,CAAC,CAAA;IACN,CAAC;CACJ;AApED,sDAoEC"}
1
+ {"version":3,"file":"KernelEIP1193Provider.js","sourceRoot":"","sources":["../../providers/KernelEIP1193Provider.ts"],"names":[],"mappings":"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"}
@@ -52,9 +52,9 @@ const createAccountAbi = [
52
52
  */
53
53
  export const KERNEL_ADDRESSES = {
54
54
  ACCOUNT_LOGIC_V0_6: "0xd3082872F8B06073A021b4602e022d5A070d7cfC",
55
- ACCOUNT_LOGIC_V0_7: "0xe59cffb45AFFB215e3823F7D1a207a71C1aa09c3",
55
+ ACCOUNT_LOGIC_V0_7: "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27",
56
56
  FACTORY_ADDRESS_V0_6: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3",
57
- FACTORY_ADDRESS_V0_7: "0x17B6697d81844518365484323e810Be08EaA3A6a",
57
+ FACTORY_ADDRESS_V0_7: "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
58
58
  FACTORY_STAKER: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5"
59
59
  };
60
60
  const getKernelInitData = async ({ entryPoint: entryPointAddress, kernelPluginManager }) => {
@@ -1,19 +1,35 @@
1
- import { createClient } from "viem";
1
+ import { getEntryPointVersion } from "permissionless";
2
+ import { http, createClient } from "viem";
2
3
  import {} from "../accounts/index.js";
3
4
  import { getUserOperationGasPrice } from "../actions/account-client/getUserOperationGasPrice.js";
4
5
  import { kernelAccountClientActions } from "./decorators/kernel.js";
6
+ import { hasPimlicoAsProvider, setPimlicoAsProvider } from "./utils.js";
5
7
  export const createKernelAccountClient = (parameters) => {
6
- const { key = "Account", name = "Kernel Account Client", bundlerTransport } = parameters;
8
+ const { key = "Account", name = "Kernel Account Client", bundlerTransport, entryPoint } = parameters;
9
+ const entryPointVersion = getEntryPointVersion(entryPoint);
10
+ const shouldIncludePimlicoProvider = bundlerTransport({}).config.key === "http" &&
11
+ entryPointVersion === "v0.7";
7
12
  const client = createClient({
8
13
  ...parameters,
9
14
  key,
10
15
  name,
11
- transport: (opts) => bundlerTransport({ ...opts, retryCount: 0 }),
16
+ transport: (opts) => {
17
+ let _bundlerTransport = bundlerTransport({
18
+ ...opts,
19
+ retryCount: 0
20
+ });
21
+ if (!shouldIncludePimlicoProvider)
22
+ return _bundlerTransport;
23
+ _bundlerTransport = http(setPimlicoAsProvider(_bundlerTransport.value?.url))({ ...opts, retryCount: 0 });
24
+ return _bundlerTransport;
25
+ },
12
26
  type: "kernelAccountClient"
13
27
  });
14
28
  let middleware = parameters.middleware;
15
- if (!middleware ||
16
- (typeof middleware !== "function" && !middleware.gasPrice)) {
29
+ if ((!middleware ||
30
+ (typeof middleware !== "function" && !middleware.gasPrice)) &&
31
+ client.transport?.url &&
32
+ hasPimlicoAsProvider(client.transport.url)) {
17
33
  const gasPrice = () => getUserOperationGasPrice(client);
18
34
  middleware = {
19
35
  ...middleware,
@@ -1 +1 @@
1
- {"version":3,"file":"kernelAccountClient.js","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAKH,YAAY,EACf,MAAM,MAAM,CAAA;AACb,OAAO,EAA2B,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAA;AAChG,OAAO,EAEH,0BAA0B,EAC7B,MAAM,wBAAwB,CAAA;AAsC/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAQrC,UAKC,EACiE,EAAE;IACpE,MAAM,EACF,GAAG,GAAG,SAAS,EACf,IAAI,GAAG,uBAAuB,EAC9B,gBAAgB,EACnB,GAAG,UAAU,CAAA;IACd,MAAM,MAAM,GAAG,YAAY,CAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;QACjE,IAAI,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;IAEtC,IACI,CAAC,UAAU;QACX,CAAC,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5D,CAAC;QACC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;QACvD,UAAU,GAAG;YACT,GAAG,UAAU;YACb,QAAQ;SACX,CAAA;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,UAAU;KACb,CAAC,CACiE,CAAA;AAC3E,CAAC,CAAA"}
1
+ {"version":3,"file":"kernelAccountClient.js","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAKrD,OAAO,EACH,IAAI,EAKJ,YAAY,EACf,MAAM,MAAM,CAAA;AACb,OAAO,EAA2B,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAA;AAChG,OAAO,EAEH,0BAA0B,EAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAsCvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAQrC,UAKC,EACiE,EAAE;IACpE,MAAM,EACF,GAAG,GAAG,SAAS,EACf,IAAI,GAAG,uBAAuB,EAC9B,gBAAgB,EAChB,UAAU,EACb,GAAG,UAAU,CAAA;IACd,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAC1D,MAAM,4BAA4B,GAC9B,gBAAgB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM;QAC1C,iBAAiB,KAAK,MAAM,CAAA;IAEhC,MAAM,MAAM,GAAG,YAAY,CAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,iBAAiB,GAAG,gBAAgB,CAAC;gBACrC,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,4BAA4B;gBAAE,OAAO,iBAAiB,CAAA;YAC3D,iBAAiB,GAAG,IAAI,CACpB,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,EAAE,GAAG,CAAC,CACrD,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;YAC7B,OAAO,iBAAiB,CAAA;QAC5B,CAAC;QACD,IAAI,EAAE,qBAAqB;KAC9B,CAAC,CAAA;IAEF,IAAI,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;IACtC,IACI,CAAC,CAAC,UAAU;QACR,CAAC,OAAO,UAAU,KAAK,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,EAAE,GAAG;QACrB,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5C,CAAC;QACC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;QACvD,UAAU,GAAG;YACT,GAAG,UAAU;YACb,QAAQ;SACX,CAAA;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAChB,0BAA0B,CAAC;QACvB,UAAU;KACb,CAAC,CACiE,CAAA;AAC3E,CAAC,CAAA"}
@@ -1,5 +1,7 @@
1
- import { createClient } from "viem";
1
+ import { getEntryPointVersion } from "permissionless";
2
+ import { http, createClient } from "viem";
2
3
  import { zerodevPaymasterActions } from "./decorators/kernel.js";
4
+ import { setPimlicoAsProvider } from "./utils.js";
3
5
  /**
4
6
  * Creates a ZeroDev-specific Paymaster Client with a given [Transport](https://viem.sh/docs/clients/intro.html) configured for a [Chain](https://viem.sh/docs/clients/chains.html).
5
7
  *
@@ -18,9 +20,24 @@ import { zerodevPaymasterActions } from "./decorators/kernel.js";
18
20
  * })
19
21
  */
20
22
  export const createZeroDevPaymasterClient = (parameters) => {
21
- const { key = "public", name = "ZeroDev Paymaster Client" } = parameters;
23
+ const { key = "public", name = "ZeroDev Paymaster Client", entryPoint: entryPointAddress, transport } = parameters;
24
+ const entryPointVersion = getEntryPointVersion(entryPointAddress);
25
+ const shouldIncludePimlicoProvider = transport({}).config.key === "http" && entryPointVersion === "v0.7";
22
26
  const client = createClient({
23
27
  ...parameters,
28
+ transport: (opts) => {
29
+ let _transport = transport({
30
+ ...opts,
31
+ retryCount: 0
32
+ });
33
+ if (!shouldIncludePimlicoProvider)
34
+ return _transport;
35
+ _transport = http(setPimlicoAsProvider(_transport.value?.url))({
36
+ ...opts,
37
+ retryCount: 0
38
+ });
39
+ return _transport;
40
+ },
24
41
  key,
25
42
  name,
26
43
  type: "zerodevPaymasterClient"
@@ -1 +1 @@
1
- {"version":3,"file":"paymasterClient.js","sourceRoot":"","sources":["../../clients/paymasterClient.ts"],"names":[],"mappings":"AACA,OAAO,EAMH,YAAY,EACf,MAAM,MAAM,CAAA;AAEb,OAAO,EAEH,uBAAuB,EAC1B,MAAM,wBAAwB,CAAA;AAS/B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAKxC,UAEC,EACiC,EAAE;IACpC,MAAM,EAAE,GAAG,GAAG,QAAQ,EAAE,IAAI,GAAG,0BAA0B,EAAE,GAAG,UAAU,CAAA;IACxE,MAAM,MAAM,GAAG,YAAY,CAAC;QACxB,GAAG,UAAU;QACb,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,wBAAwB;KACjC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AACxE,CAAC,CAAA"}
1
+ {"version":3,"file":"paymasterClient.js","sourceRoot":"","sources":["../../clients/paymasterClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,OAAO,EACH,IAAI,EAMJ,YAAY,EACf,MAAM,MAAM,CAAA;AAEb,OAAO,EAEH,uBAAuB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AASjD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAKxC,UAEC,EACiC,EAAE;IACpC,MAAM,EACF,GAAG,GAAG,QAAQ,EACd,IAAI,GAAG,0BAA0B,EACjC,UAAU,EAAE,iBAAiB,EAC7B,SAAS,EACZ,GAAG,UAAU,CAAA;IACd,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IACjE,MAAM,4BAA4B,GAC9B,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,IAAI,iBAAiB,KAAK,MAAM,CAAA;IACvE,MAAM,MAAM,GAAG,YAAY,CAAC;QACxB,GAAG,UAAU;QACb,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,IAAI,UAAU,GAAG,SAAS,CAAC;gBACvB,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,IAAI,CAAC,4BAA4B;gBAAE,OAAO,UAAU,CAAA;YACpD,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3D,GAAG,IAAI;gBACP,UAAU,EAAE,CAAC;aAChB,CAAC,CAAA;YACF,OAAO,UAAU,CAAA;QACrB,CAAC;QACD,GAAG;QACH,IAAI;QACJ,IAAI,EAAE,wBAAwB;KACjC,CAAC,CAAA;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;AACxE,CAAC,CAAA"}
@@ -0,0 +1,26 @@
1
+ export const setPimlicoAsProvider = (urlString) => {
2
+ const url = new URL(urlString);
3
+ const params = url.searchParams;
4
+ if (params.has("bundlerProvider")) {
5
+ params.set("bundlerProvider", "PIMLICO");
6
+ }
7
+ else if (params.has("paymasterProvider")) {
8
+ params.set("paymasterProvider", "PIMLICO");
9
+ }
10
+ else {
11
+ params.set("provider", "PIMLICO");
12
+ }
13
+ url.search = params.toString();
14
+ return url.toString();
15
+ };
16
+ export const hasPimlicoAsProvider = (urlString) => {
17
+ const url = new URL(urlString);
18
+ const params = url.searchParams;
19
+ const provider = params.get("provider") ??
20
+ params.get("bundlerProvider") ??
21
+ params.get("paymasterProvider");
22
+ if (provider === "PIMLICO")
23
+ return true;
24
+ return false;
25
+ };
26
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../clients/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAU,EAAE;IAC9D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAE9B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAA;IAE/B,IAAI,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IAC5C,CAAC;SAAM,IAAI,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;IAC9C,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IACrC,CAAC;IAED,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;IAE9B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAW,EAAE;IAC/D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAA;IAC/B,MAAM,QAAQ,GACV,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;QACtB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,KAAK,CAAA;AAChB,CAAC,CAAA"}
package/_esm/constants.js CHANGED
@@ -6,7 +6,7 @@ export const KernelImplToVersionMap = {
6
6
  "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3",
7
7
  "0x5FC0236D6c88a65beD32EECDC5D60a5CAb377717": "0.2.3",
8
8
  "0xd3082872F8B06073A021b4602e022d5A070d7cfC": "0.2.4",
9
- "0xe59cffb45AFFB215e3823F7D1a207a71C1aa09c3": "0.3.0-beta"
9
+ "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27": "0.3.0-beta"
10
10
  };
11
11
  export const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1";
12
12
  export const KERNEL_NAME = "Kernel";
@@ -38,4 +38,7 @@ export var EXEC_TYPE;
38
38
  // Safe's library for create and create2: https://github.com/safe-global/safe-contracts/blob/0acdd35a203299585438f53885df630f9d486a86/contracts/libraries/CreateCall.sol
39
39
  // Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
40
40
  export const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
41
+ export const KernelFactoryToInitCodeHashMap = {
42
+ "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3": "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73"
43
+ };
41
44
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AACA,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;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,YAAY;CAC7D,CAAA;AACD,MAAM,CAAC,MAAM,YAAY,GAAG,4CAA4C,CAAA;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IACzE,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,YAAY;CACvB,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;CACZ,CAAA;AACV,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AACD,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,2BAAc,CAAA;IACd,mCAAsB,CAAA;AAC1B,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AACD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6BAAgB,CAAA;IAChB,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,wKAAwK;AACxK,2JAA2J;AAC3J,MAAM,CAAC,MAAM,qBAAqB,GAC9B,4CAA4C,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,MAAM,MAAM,CAAA;AAE7C,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;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,YAAY;CAC7D,CAAA;AACD,MAAM,CAAC,MAAM,YAAY,GAAG,4CAA4C,CAAA;AACxE,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAA;AACnC,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IACzE,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,YAAY;CACvB,CAAA;AACD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,MAAM;CACZ,CAAA;AACV,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,kCAAgB,CAAA;IAChB,iCAAe,CAAA;AACnB,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AACD,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACjB,4BAAe,CAAA;IACf,2BAAc,CAAA;IACd,mCAAsB,CAAA;AAC1B,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB;AACD,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,6BAAgB,CAAA;IAChB,8BAAiB,CAAA;AACrB,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,wKAAwK;AACxK,2JAA2J;AAC3J,MAAM,CAAC,MAAM,qBAAqB,GAC9B,4CAA4C,CAAA;AAChD,MAAM,CAAC,MAAM,8BAA8B,GAA4B;IACnE,4CAA4C,EACxC,oEAAoE;CAC3E,CAAA"}
@@ -20,8 +20,13 @@ export class KernelEIP1193Provider extends EventEmitter {
20
20
  return this.handleEthAccounts();
21
21
  case "eth_sendTransaction":
22
22
  return this.handleEthSendTransaction(params);
23
+ case "eth_sign":
24
+ return this.handleEthSign(params);
23
25
  case "personal_sign":
24
26
  return this.handlePersonalSign(params);
27
+ case "eth_signTypedData":
28
+ case "eth_signTypedData_v4":
29
+ return this.handleEthSignTypedDataV4(params);
25
30
  default:
26
31
  return this.kernelClient.transport.request({ method, params });
27
32
  }
@@ -42,6 +47,20 @@ export class KernelEIP1193Provider extends EventEmitter {
42
47
  const [tx] = params;
43
48
  return this.kernelClient.sendTransaction(tx);
44
49
  }
50
+ async handleEthSign(params) {
51
+ if (!this.kernelClient?.account) {
52
+ throw new Error("account not connected!");
53
+ }
54
+ const [address, message] = params;
55
+ if (address.toLowerCase() !==
56
+ this.kernelClient.account.address.toLowerCase()) {
57
+ throw new Error("cannot sign for address that is not the current account");
58
+ }
59
+ return this.kernelClient.signMessage({
60
+ message,
61
+ account: this.kernelClient.account
62
+ });
63
+ }
45
64
  async handlePersonalSign(params) {
46
65
  if (!this.kernelClient?.account) {
47
66
  throw new Error("account not connected!");
@@ -56,5 +75,23 @@ export class KernelEIP1193Provider extends EventEmitter {
56
75
  account: this.kernelClient.account
57
76
  });
58
77
  }
78
+ async handleEthSignTypedDataV4(params) {
79
+ if (!this.kernelClient?.account) {
80
+ throw new Error("account not connected!");
81
+ }
82
+ const [address, typedDataJSON] = params;
83
+ const typedData = JSON.parse(typedDataJSON);
84
+ if (address.toLowerCase() !==
85
+ this.kernelClient.account.address.toLowerCase()) {
86
+ throw new Error("cannot sign for address that is not the current account");
87
+ }
88
+ return this.kernelClient.signTypedData({
89
+ account: this.kernelClient.account,
90
+ domain: typedData.domain,
91
+ types: typedData.types,
92
+ message: typedData.message,
93
+ primaryType: typedData.primaryType
94
+ });
95
+ }
59
96
  }
60
97
  //# sourceMappingURL=KernelEIP1193Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KernelEIP1193Provider.js","sourceRoot":"","sources":["../../providers/KernelEIP1193Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAA4B,MAAM,cAAc,CAAA;AAEvD,OAAO,EAKN,MAAM,MAAM,CAAA;AAEb,MAAM,OAAO,qBAEX,SAAQ,YAAY;IAGlB,YAAY,YAA6C;QACrD,KAAK,EAAE,CAAA;QAHH;;;;;WAA6C;QAIjD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EACV,MAAM,EACN,MAAM,GAAG,EAAE,EACK;QAChB,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,qBAAqB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAA;YAC1C,KAAK,cAAc;gBACf,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAA;YACnC,KAAK,qBAAqB;gBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;YAChD,KAAK,eAAe;gBAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAA0B,CAAC,CAAA;YAC9D;gBACI,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACtE,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,MAAe;QAClD,MAAM,CAAC,EAAE,CAAC,GAAG,MAAqC,CAAA;QAClD,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC5B,MAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,CAAA;QACjC,IACI,OAAO,CAAC,WAAW,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EACjD,CAAC;YACC,MAAM,IAAI,KAAK,CACX,yDAAyD,CAC5D,CAAA;QACL,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACjC,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;SACrC,CAAC,CAAA;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"KernelEIP1193Provider.js","sourceRoot":"","sources":["../../providers/KernelEIP1193Provider.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export declare const createKernelAccountClient: <entryPoint extends EntryPoint,
26
26
  maxPriorityFeePerGas: bigint;
27
27
  }>) | undefined;
28
28
  sponsorUserOperation?: ((args: {
29
- userOperation: import("permissionless/types").UserOperation<import("permissionless/types/entrypoint.js").GetEntryPointVersion<entryPoint>>;
29
+ userOperation: import("permissionless").UserOperation<import("permissionless/types/entrypoint.js").GetEntryPointVersion<entryPoint>>;
30
30
  entryPoint: entryPoint;
31
31
  }) => Promise<entryPoint extends "0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789" ? Pick<{
32
32
  sender: `0x${string}`;
@@ -66,9 +66,9 @@ export declare const createKernelAccountClient: <entryPoint extends EntryPoint,
66
66
  paymasterAndData?: undefined;
67
67
  }, "callGasLimit" | "verificationGasLimit" | "preVerificationGas" | "paymaster" | "paymasterVerificationGasLimit" | "paymasterPostOpGasLimit" | "paymasterData">>) | undefined;
68
68
  } | ((args: {
69
- userOperation: import("permissionless/types").UserOperation<import("permissionless/types/entrypoint.js").GetEntryPointVersion<entryPoint>>;
69
+ userOperation: import("permissionless").UserOperation<import("permissionless/types/entrypoint.js").GetEntryPointVersion<entryPoint>>;
70
70
  entryPoint: entryPoint;
71
- }) => Promise<import("permissionless/types").UserOperation<import("permissionless/types/entrypoint.js").GetEntryPointVersion<entryPoint>>>) | undefined;
71
+ }) => Promise<import("permissionless").UserOperation<import("permissionless/types/entrypoint.js").GetEntryPointVersion<entryPoint>>>) | undefined;
72
72
  entryPoint: entryPoint;
73
73
  }) => {
74
74
  account: TSmartAccount;
@@ -299,7 +299,7 @@ export declare const createKernelAccountClient: <entryPoint extends EntryPoint,
299
299
  }, TPrimaryType extends string>(args: import("viem").SignTypedDataParameters<TTypedData, TPrimaryType, TSmartAccount>) => Promise<`0x${string}`>;
300
300
  deployContract: <const TAbi extends readonly unknown[] | import("viem").Abi, TChainOverride_1 extends Chain | undefined = undefined>(args: import("viem").DeployContractParameters<TAbi, TChain, TSmartAccount, TChainOverride_1> extends infer T ? { [K in keyof T]: import("viem").DeployContractParameters<TAbi, TChain, TSmartAccount, TChainOverride_1>[K]; } : never) => Promise<`0x${string}`>;
301
301
  writeContract: <const TAbi_1 extends readonly unknown[] | import("viem").Abi, TFunctionName extends import("viem").ContractFunctionName<TAbi_1, "nonpayable" | "payable"> = import("viem").ContractFunctionName<TAbi_1, "nonpayable" | "payable">, TArgs extends import("viem").ContractFunctionArgs<TAbi_1, "nonpayable" | "payable", TFunctionName> = import("viem").ContractFunctionArgs<TAbi_1, "nonpayable" | "payable", TFunctionName>, TChainOverride_2 extends Chain | undefined = undefined>(args: import("viem").WriteContractParameters<TAbi_1, TFunctionName, TArgs, TChain, TSmartAccount, TChainOverride_2>) => Promise<`0x${string}`>;
302
- prepareUserOperationRequest: <TTransport_1 extends Transport>(args: (import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount> extends infer T_3 ? { [K_2 in keyof T_3]: import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount>[K_2]; } : never) extends infer T_1 ? { [K_1 in keyof T_1]: (import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount> extends infer T_2 ? { [K_2 in keyof T_2]: import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount>[K_2]; } : never)[K_1]; } : never, stateOverrides?: import("permissionless/_types/types/bundler.js").StateOverrides | undefined) => Promise<import("permissionless/types").UserOperation<import("permissionless/types").GetEntryPointVersion<entryPoint>> extends infer T_4 ? { [K_3 in keyof T_4]: import("permissionless/types").UserOperation<import("permissionless/types").GetEntryPointVersion<entryPoint>>[K_3]; } : never>;
302
+ prepareUserOperationRequest: <TTransport_1 extends Transport>(args: (import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount> extends infer T_3 ? { [K_2 in keyof T_3]: import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount>[K_2]; } : never) extends infer T_1 ? { [K_1 in keyof T_1]: (import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount> extends infer T_2 ? { [K_2 in keyof T_2]: import("permissionless/_types/actions/smartAccount.js").PrepareUserOperationRequestParameters<entryPoint, TSmartAccount>[K_2]; } : never)[K_1]; } : never, stateOverrides?: import("permissionless/_types/types/bundler.js").StateOverrides | undefined) => Promise<import("permissionless").UserOperation<import("permissionless/types").GetEntryPointVersion<entryPoint>> extends infer T_4 ? { [K_3 in keyof T_4]: import("permissionless").UserOperation<import("permissionless/types").GetEntryPointVersion<entryPoint>>[K_3]; } : never>;
303
303
  sendUserOperation: <TTransport_2 extends Transport>(args: (import("permissionless/_types/actions/smartAccount.js").SendUserOperationParameters<entryPoint, TSmartAccount> extends infer T_7 ? { [K_5 in keyof T_7]: import("permissionless/_types/actions/smartAccount.js").SendUserOperationParameters<entryPoint, TSmartAccount>[K_5]; } : never) extends infer T_5 ? { [K_4 in keyof T_5]: (import("permissionless/_types/actions/smartAccount.js").SendUserOperationParameters<entryPoint, TSmartAccount> extends infer T_6 ? { [K_5 in keyof T_6]: import("permissionless/_types/actions/smartAccount.js").SendUserOperationParameters<entryPoint, TSmartAccount>[K_5]; } : never)[K_4]; } : never) => Promise<`0x${string}`>;
304
304
  sendTransactions: (args: import("permissionless/_types/actions/smartAccount.js").SendTransactionsWithPaymasterParameters<entryPoint, TSmartAccount> extends infer T_8 ? { [K_6 in keyof T_8]: import("permissionless/_types/actions/smartAccount.js").SendTransactionsWithPaymasterParameters<entryPoint, TSmartAccount>[K_6]; } : never) => Promise<`0x${string}`>;
305
305
  signUserOperation: <TTransport_3 extends Transport>(args: import("../actions/index.js").SignUserOperationParameters<entryPoint, TSmartAccount> extends infer T_9 ? { [K_7 in keyof T_9]: import("../actions/index.js").SignUserOperationParameters<entryPoint, TSmartAccount>[K_7]; } : never) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"kernelAccountClient.d.ts","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EACH,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EAEjB,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EACH,KAAK,0BAA0B,EAElC,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,mBAAmB,CAC3B,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACnD,OAAO,SAAS,kBAAkB,CAAC,UAAU,CAAC,GAAG,SAAS,GACpD,kBAAkB,CAAC,UAAU,CAAC,GAC9B,SAAS,IACf,QAAQ,CACR,MAAM,CACF,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,CAAC,UAAU,CAAC,EAC5B,0BAA0B,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CACzD,CACJ,CAAA;AAED,MAAM,MAAM,wBAAwB,CAChC,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACnD,OAAO,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,IACf,QAAQ,CACR,IAAI,CACA,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACvC,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,iBAAiB,CAC7D,GAAG;IACA,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,SAAS,CAAA;CAC9B,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG;IACrB,UAAU,EAAE,UAAU,CAAA;CACzB,CACR,CAAA;AAED,eAAO,MAAM,yBAAyB;;;;;;;sBANZ,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDlC,CAAA"}
1
+ {"version":3,"file":"kernelAccountClient.d.ts","sourceRoot":"","sources":["../../clients/kernelAccountClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAEH,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,SAAS,EAEjB,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,OAAO,EACH,KAAK,0BAA0B,EAElC,MAAM,wBAAwB,CAAA;AAG/B,MAAM,MAAM,mBAAmB,CAC3B,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACnD,OAAO,SAAS,kBAAkB,CAAC,UAAU,CAAC,GAAG,SAAS,GACpD,kBAAkB,CAAC,UAAU,CAAC,GAC9B,SAAS,IACf,QAAQ,CACR,MAAM,CACF,SAAS,EACT,KAAK,EACL,OAAO,EACP,gBAAgB,CAAC,UAAU,CAAC,EAC5B,0BAA0B,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CACzD,CACJ,CAAA;AAED,MAAM,MAAM,wBAAwB,CAChC,UAAU,SAAS,UAAU,EAC7B,SAAS,SAAS,SAAS,GAAG,SAAS,EACvC,KAAK,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACnD,OAAO,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC9C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,IACf,QAAQ,CACR,IAAI,CACA,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EACvC,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,iBAAiB,CAC7D,GAAG;IACA,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,EAAE,SAAS,CAAA;CAC9B,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG;IACrB,UAAU,EAAE,UAAU,CAAA;CACzB,CACR,CAAA;AAED,eAAO,MAAM,yBAAyB;;;;;;;sBANZ,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoElC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"paymasterClient.d.ts","sourceRoot":"","sources":["../../clients/paymasterClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEjB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EACH,KAAK,6BAA6B,EAErC,MAAM,wBAAwB,CAAA;AAE/B,MAAM,MAAM,sBAAsB,CAAC,UAAU,SAAS,UAAU,IAAI,MAAM,CACtE,SAAS,EACT,KAAK,GAAG,SAAS,EACjB,OAAO,GAAG,SAAS,EACnB,yBAAyB,CAAC,UAAU,CAAC,EACrC,6BAA6B,CAAC,UAAU,CAAC,CAC5C,CAAA;AACD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;wCAiBxC,CAAA"}
1
+ {"version":3,"file":"paymasterClient.d.ts","sourceRoot":"","sources":["../../clients/paymasterClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAEH,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,kBAAkB,EACvB,KAAK,SAAS,EAEjB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EACH,KAAK,6BAA6B,EAErC,MAAM,wBAAwB,CAAA;AAG/B,MAAM,MAAM,sBAAsB,CAAC,UAAU,SAAS,UAAU,IAAI,MAAM,CACtE,SAAS,EACT,KAAK,GAAG,SAAS,EACjB,OAAO,GAAG,SAAS,EACnB,yBAAyB,CAAC,UAAU,CAAC,EACrC,6BAA6B,CAAC,UAAU,CAAC,CAC5C,CAAA;AACD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;wCAqCxC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export declare const setPimlicoAsProvider: (urlString: string) => string;
2
+ export declare const hasPimlicoAsProvider: (urlString: string) => boolean;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../clients/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,cAAe,MAAM,KAAG,MAgBxD,CAAA;AAED,eAAO,MAAM,oBAAoB,cAAe,MAAM,KAAG,OASxD,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { EntryPointVersion } from "permissionless/types/entrypoint";
2
- import { type Address } from "viem";
2
+ import { type Address, type Hex } from "viem";
3
3
  export declare const DUMMY_ECDSA_SIG = "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c";
4
4
  export declare const KernelImplToVersionMap: {
5
5
  [key: Address]: string;
@@ -28,4 +28,7 @@ export declare enum EXEC_TYPE {
28
28
  TRY_EXEC = "0x01"
29
29
  }
30
30
  export declare const safeCreateCallAddress = "0x9b35Af71d77eaf8d7e40252370304687390A1A52";
31
+ export declare const KernelFactoryToInitCodeHashMap: {
32
+ [key: Address]: Hex;
33
+ };
31
34
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,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;CAO5D,CAAA;AACD,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,WAAW,WAAW,CAAA;AACnC,eAAO,MAAM,qBAAqB,EAAE;KAAG,GAAG,IAAI,iBAAiB,GAAG,MAAM;CAGvE,CAAA;AACD,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AACxE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAE7C,eAAO,MAAM,eAAe,yIAC8G,CAAA;AAE1I,eAAO,MAAM,sBAAsB,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAAA;CAO5D,CAAA;AACD,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,WAAW,WAAW,CAAA;AACnC,eAAO,MAAM,qBAAqB,EAAE;KAAG,GAAG,IAAI,iBAAiB,GAAG,MAAM;CAGvE,CAAA;AACD,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AACV,oBAAY,cAAc;IACtB,OAAO,SAAS;IAChB,MAAM,SAAS;CAClB;AACD,oBAAY,SAAS;IACjB,MAAM,SAAS;IACf,KAAK,SAAS;IACd,aAAa,SAAS;CACzB;AACD,oBAAY,SAAS;IACjB,OAAO,SAAS;IAChB,QAAQ,SAAS;CACpB;AAID,eAAO,MAAM,qBAAqB,+CACc,CAAA;AAChD,eAAO,MAAM,8BAA8B,EAAE;IAAE,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAAA;CAGjE,CAAA"}
@@ -10,6 +10,8 @@ export declare class KernelEIP1193Provider<entryPoint extends EntryPoint> extend
10
10
  private handleEthRequestAccounts;
11
11
  private handleEthAccounts;
12
12
  private handleEthSendTransaction;
13
+ private handleEthSign;
13
14
  private handlePersonalSign;
15
+ private handleEthSignTypedDataV4;
14
16
  }
15
17
  //# sourceMappingURL=KernelEIP1193Provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"KernelEIP1193Provider.d.ts","sourceRoot":"","sources":["../../providers/KernelEIP1193Provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGxB,MAAM,MAAM,CAAA;AAEb,qBAAa,qBAAqB,CAC9B,UAAU,SAAS,UAAU,CAC/B,SAAQ,YAAY;IAClB,OAAO,CAAC,YAAY,CAAiC;gBAEzC,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC;IAKnD,OAAO,CAAC,EACV,MAAM,EACN,MAAW,EACd,EAAE,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;YAerC,wBAAwB;YAOxB,iBAAiB;YAOjB,wBAAwB;YAKxB,kBAAkB;CAqBnC"}
1
+ {"version":3,"file":"KernelEIP1193Provider.d.ts","sourceRoot":"","sources":["../../providers/KernelEIP1193Provider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGxB,MAAM,MAAM,CAAA;AAEb,qBAAa,qBAAqB,CAC9B,UAAU,SAAS,UAAU,CAC/B,SAAQ,YAAY;IAClB,OAAO,CAAC,YAAY,CAAiC;gBAEzC,YAAY,EAAE,mBAAmB,CAAC,UAAU,CAAC;IAKnD,OAAO,CAAC,EACV,MAAM,EACN,MAAW,EACd,EAAE,iBAAiB,GAAG,UAAU,CAAC,gBAAgB,CAAC;YAoBrC,wBAAwB;YAOxB,iBAAiB;YAOjB,wBAAwB;YAKxB,aAAa;YAoBb,kBAAkB;YAsBlB,wBAAwB;CAyBzC"}
@@ -120,9 +120,9 @@ export const KERNEL_ADDRESSES: {
120
120
  FACTORY_STAKER: Address
121
121
  } = {
122
122
  ACCOUNT_LOGIC_V0_6: "0xd3082872F8B06073A021b4602e022d5A070d7cfC",
123
- ACCOUNT_LOGIC_V0_7: "0xe59cffb45AFFB215e3823F7D1a207a71C1aa09c3",
123
+ ACCOUNT_LOGIC_V0_7: "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27",
124
124
  FACTORY_ADDRESS_V0_6: "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3",
125
- FACTORY_ADDRESS_V0_7: "0x17B6697d81844518365484323e810Be08EaA3A6a",
125
+ FACTORY_ADDRESS_V0_7: "0x6723b44Abeec4E71eBE3232BD5B455805baDD22f",
126
126
  FACTORY_STAKER: "0xd703aaE79538628d27099B8c4f621bE4CCd142d5"
127
127
  }
128
128
 
@@ -1,8 +1,10 @@
1
+ import { getEntryPointVersion } from "permissionless"
1
2
  import type { SmartAccount } from "permissionless/accounts/types"
2
3
  import type { Middleware } from "permissionless/actions/smartAccount"
3
4
  import type { EntryPoint, Prettify } from "permissionless/types"
4
5
  import type { BundlerRpcSchema } from "permissionless/types/bundler"
5
6
  import {
7
+ http,
6
8
  type Chain,
7
9
  type Client,
8
10
  type ClientConfig,
@@ -15,6 +17,7 @@ import {
15
17
  type KernelAccountClientActions,
16
18
  kernelAccountClientActions
17
19
  } from "./decorators/kernel.js"
20
+ import { hasPimlicoAsProvider, setPimlicoAsProvider } from "./utils.js"
18
21
 
19
22
  export type KernelAccountClient<
20
23
  entryPoint extends EntryPoint,
@@ -70,21 +73,38 @@ export const createKernelAccountClient = <
70
73
  const {
71
74
  key = "Account",
72
75
  name = "Kernel Account Client",
73
- bundlerTransport
76
+ bundlerTransport,
77
+ entryPoint
74
78
  } = parameters
79
+ const entryPointVersion = getEntryPointVersion(entryPoint)
80
+ const shouldIncludePimlicoProvider =
81
+ bundlerTransport({}).config.key === "http" &&
82
+ entryPointVersion === "v0.7"
83
+
75
84
  const client = createClient({
76
85
  ...parameters,
77
86
  key,
78
87
  name,
79
- transport: (opts) => bundlerTransport({ ...opts, retryCount: 0 }),
88
+ transport: (opts) => {
89
+ let _bundlerTransport = bundlerTransport({
90
+ ...opts,
91
+ retryCount: 0
92
+ })
93
+ if (!shouldIncludePimlicoProvider) return _bundlerTransport
94
+ _bundlerTransport = http(
95
+ setPimlicoAsProvider(_bundlerTransport.value?.url)
96
+ )({ ...opts, retryCount: 0 })
97
+ return _bundlerTransport
98
+ },
80
99
  type: "kernelAccountClient"
81
100
  })
82
101
 
83
102
  let middleware = parameters.middleware
84
-
85
103
  if (
86
- !middleware ||
87
- (typeof middleware !== "function" && !middleware.gasPrice)
104
+ (!middleware ||
105
+ (typeof middleware !== "function" && !middleware.gasPrice)) &&
106
+ client.transport?.url &&
107
+ hasPimlicoAsProvider(client.transport.url)
88
108
  ) {
89
109
  const gasPrice = () => getUserOperationGasPrice(client)
90
110
  middleware = {
@@ -1,5 +1,7 @@
1
+ import { getEntryPointVersion } from "permissionless"
1
2
  import type { EntryPoint } from "permissionless/types/entrypoint"
2
3
  import {
4
+ http,
3
5
  type Account,
4
6
  type Chain,
5
7
  type Client,
@@ -12,6 +14,7 @@ import {
12
14
  type ZeroDevPaymasterClientActions,
13
15
  zerodevPaymasterActions
14
16
  } from "./decorators/kernel.js"
17
+ import { setPimlicoAsProvider } from "./utils.js"
15
18
 
16
19
  export type ZeroDevPaymasterClient<entryPoint extends EntryPoint> = Client<
17
20
  Transport,
@@ -46,9 +49,29 @@ export const createZeroDevPaymasterClient = <
46
49
  entryPoint: entryPoint
47
50
  }
48
51
  ): ZeroDevPaymasterClient<entryPoint> => {
49
- const { key = "public", name = "ZeroDev Paymaster Client" } = parameters
52
+ const {
53
+ key = "public",
54
+ name = "ZeroDev Paymaster Client",
55
+ entryPoint: entryPointAddress,
56
+ transport
57
+ } = parameters
58
+ const entryPointVersion = getEntryPointVersion(entryPointAddress)
59
+ const shouldIncludePimlicoProvider =
60
+ transport({}).config.key === "http" && entryPointVersion === "v0.7"
50
61
  const client = createClient({
51
62
  ...parameters,
63
+ transport: (opts) => {
64
+ let _transport = transport({
65
+ ...opts,
66
+ retryCount: 0
67
+ })
68
+ if (!shouldIncludePimlicoProvider) return _transport
69
+ _transport = http(setPimlicoAsProvider(_transport.value?.url))({
70
+ ...opts,
71
+ retryCount: 0
72
+ })
73
+ return _transport
74
+ },
52
75
  key,
53
76
  name,
54
77
  type: "zerodevPaymasterClient"
@@ -0,0 +1,28 @@
1
+ export const setPimlicoAsProvider = (urlString: string): string => {
2
+ const url = new URL(urlString)
3
+
4
+ const params = url.searchParams
5
+
6
+ if (params.has("bundlerProvider")) {
7
+ params.set("bundlerProvider", "PIMLICO")
8
+ } else if (params.has("paymasterProvider")) {
9
+ params.set("paymasterProvider", "PIMLICO")
10
+ } else {
11
+ params.set("provider", "PIMLICO")
12
+ }
13
+
14
+ url.search = params.toString()
15
+
16
+ return url.toString()
17
+ }
18
+
19
+ export const hasPimlicoAsProvider = (urlString: string): boolean => {
20
+ const url = new URL(urlString)
21
+ const params = url.searchParams
22
+ const provider =
23
+ params.get("provider") ??
24
+ params.get("bundlerProvider") ??
25
+ params.get("paymasterProvider")
26
+ if (provider === "PIMLICO") return true
27
+ return false
28
+ }
package/constants.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { EntryPointVersion } from "permissionless/types/entrypoint"
2
- import { type Address } from "viem"
2
+ import { type Address, type Hex } from "viem"
3
3
 
4
4
  export const DUMMY_ECDSA_SIG =
5
5
  "0xfffffffffffffffffffffffffffffff0000000000000000000000000000000007aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1c"
@@ -10,7 +10,7 @@ export const KernelImplToVersionMap: { [key: Address]: string } = {
10
10
  "0xD3F582F6B4814E989Ee8E96bc3175320B5A540ab": "0.2.3",
11
11
  "0x5FC0236D6c88a65beD32EECDC5D60a5CAb377717": "0.2.3",
12
12
  "0xd3082872F8B06073A021b4602e022d5A070d7cfC": "0.2.4",
13
- "0xe59cffb45AFFB215e3823F7D1a207a71C1aa09c3": "0.3.0-beta"
13
+ "0x94F097E1ebEB4ecA3AAE54cabb08905B239A7D27": "0.3.0-beta"
14
14
  }
15
15
  export const TOKEN_ACTION = "0x2087C7FfD0d0DAE80a00EE74325aBF3449e0eaf1"
16
16
  export const KERNEL_NAME = "Kernel"
@@ -41,3 +41,7 @@ export enum EXEC_TYPE {
41
41
  // Address was found here: https://github.com/safe-global/safe-deployments/blob/926ec6bbe2ebcac3aa2c2c6c0aff74aa590cbc6a/src/assets/v1.4.1/create_call.json
42
42
  export const safeCreateCallAddress =
43
43
  "0x9b35Af71d77eaf8d7e40252370304687390A1A52"
44
+ export const KernelFactoryToInitCodeHashMap: { [key: Address]: Hex } = {
45
+ "0x5de4839a76cf55d0c90e2061ef4386d962E15ae3":
46
+ "0xee9d8350bd899dd261db689aafd87eb8a30f085adbaff48152399438ff4eed73"
47
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.2.1-alpha-8",
3
+ "version": "5.2.1-alpha-9",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
@@ -29,8 +29,13 @@ export class KernelEIP1193Provider<
29
29
  return this.handleEthAccounts()
30
30
  case "eth_sendTransaction":
31
31
  return this.handleEthSendTransaction(params)
32
+ case "eth_sign":
33
+ return this.handleEthSign(params as [string, string])
32
34
  case "personal_sign":
33
35
  return this.handlePersonalSign(params as [string, string])
36
+ case "eth_signTypedData":
37
+ case "eth_signTypedData_v4":
38
+ return this.handleEthSignTypedDataV4(params as [string, string])
34
39
  default:
35
40
  return this.kernelClient.transport.request({ method, params })
36
41
  }
@@ -55,6 +60,26 @@ export class KernelEIP1193Provider<
55
60
  return this.kernelClient.sendTransaction(tx)
56
61
  }
57
62
 
63
+ private async handleEthSign(params: [string, string]): Promise<string> {
64
+ if (!this.kernelClient?.account) {
65
+ throw new Error("account not connected!")
66
+ }
67
+ const [address, message] = params
68
+ if (
69
+ address.toLowerCase() !==
70
+ this.kernelClient.account.address.toLowerCase()
71
+ ) {
72
+ throw new Error(
73
+ "cannot sign for address that is not the current account"
74
+ )
75
+ }
76
+
77
+ return this.kernelClient.signMessage({
78
+ message,
79
+ account: this.kernelClient.account
80
+ })
81
+ }
82
+
58
83
  private async handlePersonalSign(
59
84
  params: [string, string]
60
85
  ): Promise<string> {
@@ -76,4 +101,30 @@ export class KernelEIP1193Provider<
76
101
  account: this.kernelClient.account
77
102
  })
78
103
  }
104
+
105
+ private async handleEthSignTypedDataV4(
106
+ params: [string, string]
107
+ ): Promise<string> {
108
+ if (!this.kernelClient?.account) {
109
+ throw new Error("account not connected!")
110
+ }
111
+ const [address, typedDataJSON] = params
112
+ const typedData = JSON.parse(typedDataJSON)
113
+ if (
114
+ address.toLowerCase() !==
115
+ this.kernelClient.account.address.toLowerCase()
116
+ ) {
117
+ throw new Error(
118
+ "cannot sign for address that is not the current account"
119
+ )
120
+ }
121
+
122
+ return this.kernelClient.signTypedData({
123
+ account: this.kernelClient.account,
124
+ domain: typedData.domain,
125
+ types: typedData.types,
126
+ message: typedData.message,
127
+ primaryType: typedData.primaryType
128
+ })
129
+ }
79
130
  }