@zerodev/sdk 5.2.13 → 5.2.15-test-0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"signUserOperation.js","sourceRoot":"","sources":["../../../actions/account-client/signUserOperation.ts"],"names":[],"mappings":";;;AACA,sEAG4C;AAS5C,gDAG6B;AAE7B,sCAAsC;AA0B/B,KAAK,UAAU,iBAAiB,CAQnC,MAA4C,EAC5C,IAAiE;IAEjE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,oCAA4B,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAA6B,CAAA;IAElE,MAAM,aAAa,GAAG,MAAM,IAAA,iBAAS,EACjC,MAAM,EACN,CAAA,0CAAqE,CAAA,EACrE,6BAA6B,CAChC,CAAC,IAAI,CAAC,CAAA;IAEP,aAAa,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACrD,aAAgE,CACnE,CAAA;IAED,OAAO,aAA4C,CAAA;AACvD,CAAC;AA3BD,8CA2BC"}
1
+ {"version":3,"file":"signUserOperation.js","sourceRoot":"","sources":["../../../actions/account-client/signUserOperation.ts"],"names":[],"mappings":";;;AACA,sEAAiF;AAWjF,gDAG6B;AAE7B,sCAAsC;AAY/B,KAAK,UAAU,iBAAiB,CAQnC,MAA4C,EAC5C,IAAiE;IAEjE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,oCAA4B,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,IAAA,oBAAY,EAAC,QAAQ,CAA6B,CAAA;IAElE,MAAM,aAAa,GAAG,MAAM,IAAA,iBAAS,EACjC,MAAM,EACN,CAAA,0CAAqE,CAAA,EACrE,6BAA6B,CAChC,CAAC,IAAI,CAAC,CAAA;IAEP,aAAa,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACrD,aAAgE,CACnE,CAAA;IAED,OAAO,aAAwD,CAAA;AACnE,CAAC;AA3BD,8CA2BC"}
@@ -1,34 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFallbackKernelAccountClient = void 0;
4
- const createFallbackKernelAccountClient = (clients) => {
4
+ const createFallbackKernelAccountClient = (clients, onError) => {
5
+ const extendedMethods = new Map();
6
+ function createFallbackMethod(prop) {
7
+ return async (...args) => {
8
+ for (let i = 0; i < clients.length; i++) {
9
+ try {
10
+ const method = Reflect.get(clients[i], prop);
11
+ if (typeof method === "function") {
12
+ return await method(...args);
13
+ }
14
+ }
15
+ catch (error) {
16
+ console.error(`Action ${String(prop)} failed with client ${clients[i].transport.url}, trying next if available.`);
17
+ if (onError !== undefined) {
18
+ await onError(error, clients[i].transport.url);
19
+ }
20
+ if (i === clients.length - 1) {
21
+ throw error;
22
+ }
23
+ }
24
+ }
25
+ };
26
+ }
5
27
  const proxyClient = new Proxy(clients[0], {
6
28
  get(_target, prop, receiver) {
7
- for (const client of clients) {
8
- const value = Reflect.get(client, prop, receiver);
9
- if (value !== undefined) {
10
- if (typeof value === "function") {
11
- return async (...args) => {
12
- for (let i = 0; i < clients.length; i++) {
13
- try {
14
- const method = Reflect.get(clients[i], prop, receiver);
15
- if (typeof method === "function") {
16
- return await method(...args);
17
- }
18
- }
19
- catch (error) {
20
- console.error(`Action ${String(prop)} failed with client ${client.transport.url}, trying next if available.`, error);
21
- if (i === clients.length - 1) {
22
- throw error;
23
- }
24
- }
25
- }
26
- };
29
+ if (prop === "extend") {
30
+ return (fn) => {
31
+ const modifications = fn(proxyClient);
32
+ for (const [key, modification] of Object.entries(modifications)) {
33
+ if (typeof modification === "function") {
34
+ ;
35
+ proxyClient[key] = async (...args) => {
36
+ return modification(...args);
37
+ };
38
+ }
39
+ else {
40
+ console.error(`Expected a function for modification of ${key}, but received type ${typeof modification}`);
41
+ }
27
42
  }
28
- return value;
29
- }
43
+ return proxyClient;
44
+ };
45
+ }
46
+ if (extendedMethods.has(prop)) {
47
+ return extendedMethods.get(prop);
48
+ }
49
+ const value = Reflect.get(_target, prop, receiver);
50
+ if (typeof value === "function") {
51
+ return createFallbackMethod(prop);
30
52
  }
31
- return undefined;
53
+ return value;
32
54
  }
33
55
  });
34
56
  return proxyClient;
@@ -1 +1 @@
1
- {"version":3,"file":"fallbackKernelAccountClient.js","sourceRoot":"","sources":["../../clients/fallbackKernelAccountClient.ts"],"names":[],"mappings":";;;AAKO,MAAM,iCAAiC,GAAG,CAM7C,OAEC,EACkE,EAAE;IACrE,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ;YACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;gBACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAEtB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;wBAE9B,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;4BAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCACtC,IAAI,CAAC;oCACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CACtB,OAAO,CAAC,CAAC,CAAC,EACV,IAAI,EACJ,QAAQ,CACX,CAAA;oCACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wCAE/B,OAAO,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;oCAChC,CAAC;gCACL,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACb,OAAO,CAAC,KAAK,CACT,UAAU,MAAM,CACZ,IAAI,CACP,uBACG,MAAM,CAAC,SAAS,CAAC,GACrB,6BAA6B,EAC7B,KAAK,CACR,CAAA;oCACD,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wCAC3B,MAAM,KAAK,CAAA;oCACf,CAAC;gCACL,CAAC;4BACL,CAAC;wBACL,CAAC,CAAA;oBACL,CAAC;oBAED,OAAO,KAAK,CAAA;gBAChB,CAAC;YACL,CAAC;YAED,OAAO,SAAS,CAAA;QACpB,CAAC;KACJ,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACtB,CAAC,CAAA;AAxDY,QAAA,iCAAiC,qCAwD7C"}
1
+ {"version":3,"file":"fallbackKernelAccountClient.js","sourceRoot":"","sources":["../../clients/fallbackKernelAccountClient.ts"],"names":[],"mappings":";;;AAKO,MAAM,iCAAiC,GAAG,CAM7C,OAEC,EACD,OAA4D,EACO,EAAE;IAGrE,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAA;IAInD,SAAS,oBAAoB,CAAC,IAAiB;QAE3C,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;oBAC5C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wBAC/B,OAAO,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;oBAChC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CACT,UAAU,MAAM,CAAC,IAAI,CAAC,uBAClB,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GACzB,6BAA6B,CAChC,CAAA;oBAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBACxB,MAAM,OAAO,CAAC,KAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;oBAC3D,CAAC;oBACD,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,KAAK,CAAA;oBACf,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAA;IACL,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ;YACvB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAEpB,OAAO,CAAC,EAAO,EAAE,EAAE;oBACf,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,CAAA;oBACrC,KAAK,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAC5C,aAAa,CAChB,EAAE,CAAC;wBACA,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE,CAAC;4BAErC,CAAC;4BAAC,WAAmB,CAAC,GAAG,CAAC,GAAG,KAAK,EAE9B,GAAG,IAAW,EAChB,EAAE;gCACA,OAAO,YAAY,CAAC,GAAG,IAAI,CAAC,CAAA;4BAChC,CAAC,CAAA;wBACL,CAAC;6BAAM,CAAC;4BACJ,OAAO,CAAC,KAAK,CACT,2CAA2C,GAAG,uBAAuB,OAAO,YAAY,EAAE,CAC7F,CAAA;wBACL,CAAC;oBACL,CAAC;oBACD,OAAO,WAAW,CAAA;gBACtB,CAAC,CAAA;YACL,CAAC;YAGD,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACpC,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;YAClD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAA;YACrC,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;KACJ,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACtB,CAAC,CAAA;AArFY,QAAA,iCAAiC,qCAqF7C"}
package/_cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUserOperationGasPrice = exports.isProviderSet = exports.getEncodedPluginsData = exports.KernelEIP1193Provider = exports.getCustomNonceKeyFromString = exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryStakerAbi = exports.KernelV3FactoryAbi = exports.KernelV3InitAbi = exports.KernelV3ExecuteAbi = exports.KernelV3AccountAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createFallbackKernelAccountClient = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.EIP1271Abi = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelV2Account = exports.createKernelV1Account = exports.createKernelAccount = void 0;
3
+ exports.getUserOperationGasPrice = exports.setPimlicoAsProvider = exports.isProviderSet = exports.getEncodedPluginsData = exports.KernelEIP1193Provider = exports.getCustomNonceKeyFromString = exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryStakerAbi = exports.KernelV3FactoryAbi = exports.KernelV3InitAbi = exports.KernelV3ExecuteAbi = exports.KernelV3AccountAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createFallbackKernelAccountClient = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.EIP1271Abi = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelV2Account = exports.createKernelV1Account = 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; } });
@@ -47,6 +47,7 @@ var getEncodedPluginsData_js_1 = require("./accounts/kernel/utils/plugins/ep0_7/
47
47
  Object.defineProperty(exports, "getEncodedPluginsData", { enumerable: true, get: function () { return getEncodedPluginsData_js_1.getEncodedPluginsData; } });
48
48
  var utils_js_1 = require("./clients/utils.js");
49
49
  Object.defineProperty(exports, "isProviderSet", { enumerable: true, get: function () { return utils_js_1.isProviderSet; } });
50
+ Object.defineProperty(exports, "setPimlicoAsProvider", { enumerable: true, get: function () { return utils_js_1.setPimlicoAsProvider; } });
50
51
  var getUserOperationGasPrice_js_1 = require("./actions/account-client/getUserOperationGasPrice.js");
51
52
  Object.defineProperty(exports, "getUserOperationGasPrice", { enumerable: true, get: function () { return getUserOperationGasPrice_js_1.getUserOperationGasPrice; } });
52
53
  //# 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,gDAQ4B;AAPxB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AAErB,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;AAG7B,2FAA4F;AAAnF,mJAAA,iCAAiC,OAAA;AAO1C,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,gGAIiE;AAH7D,yHAAA,kBAAkB,OAAA;AAClB,yHAAA,kBAAkB,OAAA;AAClB,sHAAA,eAAe,OAAA;AAEnB,gGAA6F;AAApF,yHAAA,kBAAkB,OAAA;AAC3B,4GAAuG;AAA9F,mIAAA,sBAAsB,OAAA;AAC/B,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAAgF;AAAvE,yHAAA,iBAAiB,OAAA;AAC1B,sDAGkC;AAF9B,kHAAA,sBAAsB,OAAA;AACtB,uHAAA,2BAA2B,OAAA;AAE/B,iDAA4D;AAAnD,iHAAA,qBAAqB,OAAA;AAC9B,2GAAsG;AAA7F,iIAAA,qBAAqB,OAAA;AAC9B,+CAAkD;AAAzC,yGAAA,aAAa,OAAA;AACtB,oGAA+F;AAAtF,uIAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,gDAQ4B;AAPxB,+GAAA,mBAAmB,OAAA;AACnB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AAErB,4GAAA,gBAAgB,OAAA;AAChB,iHAAA,qBAAqB,OAAA;AACrB,sGAAA,UAAU,OAAA;AAEd,uFAIoD;AAHhD,+HAAA,oBAAoB,OAAA;AAKxB,4DAKuC;AAJnC,oHAAA,uBAAuB,OAAA;AAEvB,uHAAA,0BAA0B,OAAA;AAG9B,mEAGqC;AAFjC,kIAAA,4BAA4B,OAAA;AAGhC,2EAGyC;AAFrC,mIAAA,yBAAyB,OAAA;AAG7B,2FAA4F;AAAnF,mJAAA,iCAAiC,OAAA;AAO1C,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,gGAIiE;AAH7D,yHAAA,kBAAkB,OAAA;AAClB,yHAAA,kBAAkB,OAAA;AAClB,sHAAA,eAAe,OAAA;AAEnB,gGAA6F;AAApF,yHAAA,kBAAkB,OAAA;AAC3B,4GAAuG;AAA9F,mIAAA,sBAAsB,OAAA;AAC/B,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAAgF;AAAvE,yHAAA,iBAAiB,OAAA;AAC1B,sDAGkC;AAF9B,kHAAA,sBAAsB,OAAA;AACtB,uHAAA,2BAA2B,OAAA;AAE/B,iDAA4D;AAAnD,iHAAA,qBAAqB,OAAA;AAC9B,2GAAsG;AAA7F,iIAAA,qBAAqB,OAAA;AAC9B,+CAAwE;AAA/D,yGAAA,aAAa,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAC5C,oGAA+F;AAAtF,uIAAA,wBAAwB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"signUserOperation.js","sourceRoot":"","sources":["../../../actions/account-client/signUserOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAEH,2BAA2B,EAC9B,MAAM,qCAAqC,CAAA;AAS5C,OAAO,EACH,4BAA4B,EAC5B,YAAY,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA0BtC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAQnC,MAA4C,EAC5C,IAAiE;IAEjE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,4BAA4B,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAA6B,CAAA;IAElE,MAAM,aAAa,GAAG,MAAM,SAAS,CACjC,MAAM,EACN,CAAA,2BAAqE,CAAA,EACrE,6BAA6B,CAChC,CAAC,IAAI,CAAC,CAAA;IAEP,aAAa,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACrD,aAAgE,CACnE,CAAA;IAED,OAAO,aAA4C,CAAA;AACvD,CAAC"}
1
+ {"version":3,"file":"signUserOperation.js","sourceRoot":"","sources":["../../../actions/account-client/signUserOperation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAA;AAWjF,OAAO,EACH,4BAA4B,EAC5B,YAAY,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAYtC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAQnC,MAA4C,EAC5C,IAAiE;IAEjE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAA;IACnD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,4BAA4B,EAAE,CAAA;IAEvD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAA6B,CAAA;IAElE,MAAM,aAAa,GAAG,MAAM,SAAS,CACjC,MAAM,EACN,CAAA,2BAAqE,CAAA,EACrE,6BAA6B,CAChC,CAAC,IAAI,CAAC,CAAA;IAEP,aAAa,CAAC,SAAS,GAAG,MAAM,OAAO,CAAC,iBAAiB,CACrD,aAAgE,CACnE,CAAA;IAED,OAAO,aAAwD,CAAA;AACnE,CAAC"}
@@ -1,36 +1,64 @@
1
- export const createFallbackKernelAccountClient = (clients) => {
1
+ export const createFallbackKernelAccountClient = (clients, onError) => {
2
+ // Map to store methods extended at runtime.
3
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
4
+ const extendedMethods = new Map();
5
+ // Function to create a fallback method for a given property.
6
+ // This method will try each client in sequence until one succeeds or all fail.
7
+ function createFallbackMethod(prop) {
8
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
9
+ return async (...args) => {
10
+ for (let i = 0; i < clients.length; i++) {
11
+ try {
12
+ const method = Reflect.get(clients[i], prop);
13
+ if (typeof method === "function") {
14
+ return await method(...args);
15
+ }
16
+ }
17
+ catch (error) {
18
+ console.error(`Action ${String(prop)} failed with client ${clients[i].transport.url}, trying next if available.`);
19
+ // Call the error handler if provided.
20
+ if (onError !== undefined) {
21
+ await onError(error, clients[i].transport.url);
22
+ }
23
+ if (i === clients.length - 1) {
24
+ throw error;
25
+ }
26
+ }
27
+ }
28
+ };
29
+ }
2
30
  const proxyClient = new Proxy(clients[0], {
3
31
  get(_target, prop, receiver) {
4
- for (const client of clients) {
5
- const value = Reflect.get(client, prop, receiver);
6
- if (value !== undefined) {
7
- // If the property is a function, wrap it to add fallback logic
8
- if (typeof value === "function") {
9
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
10
- return async (...args) => {
11
- for (let i = 0; i < clients.length; i++) {
12
- try {
13
- const method = Reflect.get(clients[i], prop, receiver);
14
- if (typeof method === "function") {
15
- // Attempt to call the function on the current client
16
- return await method(...args);
17
- }
18
- }
19
- catch (error) {
20
- console.error(`Action ${String(prop)} failed with client ${client.transport.url}, trying next if available.`, error);
21
- if (i === clients.length - 1) {
22
- throw error;
23
- }
24
- }
25
- }
26
- };
32
+ if (prop === "extend") {
33
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
34
+ return (fn) => {
35
+ const modifications = fn(proxyClient);
36
+ for (const [key, modification] of Object.entries(modifications)) {
37
+ if (typeof modification === "function") {
38
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
39
+ ;
40
+ proxyClient[key] = async (
41
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
42
+ ...args) => {
43
+ return modification(...args);
44
+ };
45
+ }
46
+ else {
47
+ console.error(`Expected a function for modification of ${key}, but received type ${typeof modification}`);
48
+ }
27
49
  }
28
- // For non-function properties, return the first defined value found
29
- return value;
30
- }
50
+ return proxyClient; // Consider whether to return a new instance
51
+ };
52
+ }
53
+ // Return an extended method if it exists.
54
+ if (extendedMethods.has(prop)) {
55
+ return extendedMethods.get(prop);
56
+ }
57
+ const value = Reflect.get(_target, prop, receiver);
58
+ if (typeof value === "function") {
59
+ return createFallbackMethod(prop);
31
60
  }
32
- // If no clients have a defined value for the property, return undefined
33
- return undefined;
61
+ return value;
34
62
  }
35
63
  });
36
64
  return proxyClient;
@@ -1 +1 @@
1
- {"version":3,"file":"fallbackKernelAccountClient.js","sourceRoot":"","sources":["../../clients/fallbackKernelAccountClient.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAM7C,OAEC,EACkE,EAAE;IACrE,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACtC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ;YACvB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;gBACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,+DAA+D;oBAC/D,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;wBAC9B,4DAA4D;wBAC5D,OAAO,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE;4BAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCACtC,IAAI,CAAC;oCACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CACtB,OAAO,CAAC,CAAC,CAAC,EACV,IAAI,EACJ,QAAQ,CACX,CAAA;oCACD,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;wCAC/B,qDAAqD;wCACrD,OAAO,MAAM,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;oCAChC,CAAC;gCACL,CAAC;gCAAC,OAAO,KAAK,EAAE,CAAC;oCACb,OAAO,CAAC,KAAK,CACT,UAAU,MAAM,CACZ,IAAI,CACP,uBACG,MAAM,CAAC,SAAS,CAAC,GACrB,6BAA6B,EAC7B,KAAK,CACR,CAAA;oCACD,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wCAC3B,MAAM,KAAK,CAAA;oCACf,CAAC;gCACL,CAAC;4BACL,CAAC;wBACL,CAAC,CAAA;oBACL,CAAC;oBACD,oEAAoE;oBACpE,OAAO,KAAK,CAAA;gBAChB,CAAC;YACL,CAAC;YACD,wEAAwE;YACxE,OAAO,SAAS,CAAA;QACpB,CAAC;KACJ,CAAC,CAAA;IAEF,OAAO,WAAW,CAAA;AACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"fallbackKernelAccountClient.js","sourceRoot":"","sources":["../../clients/fallbackKernelAccountClient.ts"],"names":[],"mappings":"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"}
package/_esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export { createKernelAccount, createKernelV1Account, createKernelV2Account, KERNEL_ADDRESSES, addressToEmptyAccount, EIP1271Abi } from "./accounts/index.js";
2
2
  export { sponsorUserOperation } from "./actions/paymaster/sponsorUserOperation.js";
3
+ export {} from "./clients/kernelAccountClient.js";
3
4
  export { zerodevPaymasterActions, kernelAccountClientActions } from "./clients/decorators/kernel.js";
4
5
  export { createZeroDevPaymasterClient } from "./clients/paymasterClient.js";
5
6
  export { createKernelAccountClient } from "./clients/kernelAccountClient.js";
@@ -18,6 +19,6 @@ export { gasTokenAddresses } from "./gasTokenAddresses.js";
18
19
  export { verifyEIP6492Signature, getCustomNonceKeyFromString } from "./accounts/utils/index.js";
19
20
  export { KernelEIP1193Provider } from "./providers/index.js";
20
21
  export { getEncodedPluginsData } from "./accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js";
21
- export { isProviderSet } from "./clients/utils.js";
22
+ export { isProviderSet, setPimlicoAsProvider } from "./clients/utils.js";
22
23
  export { getUserOperationGasPrice } from "./actions/account-client/getUserOperationGasPrice.js";
23
24
  //# 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,EACnB,qBAAqB,EACrB,qBAAqB,EAErB,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,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAKN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EAErB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EAGvB,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAAiC,MAAM,kCAAkC,CAAA;AAChF,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,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EAKN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA"}
@@ -1,10 +1,8 @@
1
1
  import type { SmartAccount } from "permissionless/accounts/types";
2
- import { type Middleware } from "permissionless/actions/smartAccount";
3
- import type { EntryPoint, GetAccountParameter, PartialBy, Prettify, UserOperation } from "permissionless/types";
2
+ import type { PrepareUserOperationRequestParameters, PrepareUserOperationRequestReturnType } from "permissionless/actions/smartAccount/prepareUserOperationRequest";
3
+ import type { EntryPoint, Prettify } from "permissionless/types";
4
4
  import type { Chain, Client, Transport } from "viem";
5
- export type SignUserOperationParameters<entryPoint extends EntryPoint, TAccount extends SmartAccount<entryPoint> | undefined = SmartAccount<entryPoint> | undefined> = {
6
- userOperation: PartialBy<UserOperation<"v0.6">, "nonce" | "sender" | "initCode" | "signature" | "callGasLimit" | "maxFeePerGas" | "maxPriorityFeePerGas" | "preVerificationGas" | "verificationGasLimit" | "paymasterAndData">;
7
- } & GetAccountParameter<entryPoint, TAccount> & Middleware<entryPoint>;
8
- export type SignUserOperationReturnType = UserOperation<"v0.6">;
9
- export declare function signUserOperation<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartAccount<entryPoint> | undefined = SmartAccount<entryPoint> | undefined>(client: Client<TTransport, TChain, TAccount>, args: Prettify<SignUserOperationParameters<entryPoint, TAccount>>): Promise<SignUserOperationReturnType>;
5
+ export type SignUserOperationParameters<entryPoint extends EntryPoint, TAccount extends SmartAccount<entryPoint> | undefined = SmartAccount<entryPoint> | undefined> = PrepareUserOperationRequestParameters<entryPoint, TAccount>;
6
+ export type SignUserOperationReturnType<entryPoint extends EntryPoint> = PrepareUserOperationRequestReturnType<entryPoint>;
7
+ export declare function signUserOperation<entryPoint extends EntryPoint, TTransport extends Transport = Transport, TChain extends Chain | undefined = Chain | undefined, TAccount extends SmartAccount<entryPoint> | undefined = SmartAccount<entryPoint> | undefined>(client: Client<TTransport, TChain, TAccount>, args: Prettify<SignUserOperationParameters<entryPoint, TAccount>>): Promise<SignUserOperationReturnType<entryPoint>>;
10
8
  //# sourceMappingURL=signUserOperation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signUserOperation.d.ts","sourceRoot":"","sources":["../../../actions/account-client/signUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EACH,KAAK,UAAU,EAElB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EACR,UAAU,EACV,mBAAmB,EAEnB,SAAS,EACT,QAAQ,EACR,aAAa,EAChB,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAGpD,MAAM,MAAM,2BAA2B,CACnC,UAAU,SAAS,UAAU,EAC7B,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,IACf;IACA,aAAa,EAAE,SAAS,CACpB,aAAa,CAAC,MAAM,CAAC,EACnB,OAAO,GACP,QAAQ,GACR,UAAU,GACV,WAAW,GACX,cAAc,GACd,cAAc,GACd,sBAAsB,GACtB,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CACvB,CAAA;CACJ,GAAG,mBAAmB,CAAC,UAAU,EAAE,QAAQ,CAAC,GACzC,UAAU,CAAC,UAAU,CAAC,CAAA;AAE1B,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;AAE/D,wBAAsB,iBAAiB,CACnC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,EAEf,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC5C,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAClE,OAAO,CAAC,2BAA2B,CAAC,CAiBtC"}
1
+ {"version":3,"file":"signUserOperation.d.ts","sourceRoot":"","sources":["../../../actions/account-client/signUserOperation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEjE,OAAO,KAAK,EACR,qCAAqC,EACrC,qCAAqC,EACxC,MAAM,iEAAiE,CAAA;AACxE,OAAO,KAAK,EACR,UAAU,EAEV,QAAQ,EAEX,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAGpD,MAAM,MAAM,2BAA2B,CACnC,UAAU,SAAS,UAAU,EAC7B,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,IACf,qCAAqC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AAE/D,MAAM,MAAM,2BAA2B,CAAC,UAAU,SAAS,UAAU,IACjE,qCAAqC,CAAC,UAAU,CAAC,CAAA;AAErD,wBAAsB,iBAAiB,CACnC,UAAU,SAAS,UAAU,EAC7B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,QAAQ,SAAS,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,GAC/C,YAAY,CAAC,UAAU,CAAC,GACxB,SAAS,EAEf,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC5C,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,GAClE,OAAO,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAiBlD"}
@@ -23,7 +23,7 @@ export type KernelAccountClientActions<entryPoint extends EntryPoint, TChain ext
23
23
  * @param args - Parameters for the signUserOperation function
24
24
  * @returns A promise that resolves to the result of the signUserOperation function
25
25
  */
26
- signUserOperation: <TTransport extends Transport>(args: Parameters<typeof signUserOperation<entryPoint, TTransport, TChain, TSmartAccount>>[1]) => Promise<SignUserOperationReturnType>;
26
+ signUserOperation: <TTransport extends Transport>(args: Parameters<typeof signUserOperation<entryPoint, TTransport, TChain, TSmartAccount>>[1]) => Promise<SignUserOperationReturnType<entryPoint>>;
27
27
  /**
28
28
  * Returns the live gas prices that you can use to send a user operation.
29
29
  *
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,gBAAgB,CAAA;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,KAAK,EAER,2BAA2B,EAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAEpC,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EAEtC,MAAM,iDAAiD,CAAA;AAGxD,MAAM,MAAM,6BAA6B,CAAC,UAAU,SAAS,UAAU,IAAI;IACvE;;OAEG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,8BAA8B,CAAC,UAAU,CAAC,KAC/C,OAAO,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,CAAA;IACxD,kBAAkB,EAAE,CAChB,IAAI,EAAE,4BAA4B,KACjC,OAAO,CAAC,4BAA4B,CAAC,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,uBAAuB,6EAEvB,MAAM,8CAgBb,CAAA;AAEN,MAAM,MAAM,0BAA0B,CAClC,UAAU,SAAS,UAAU,EAC7B,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,kBAAkB,CAAC,UAAU,CAAC,GAAG,SAAS,GAC1D,kBAAkB,CAAC,UAAU,CAAC,GAC9B,SAAS,IACf,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG;IACzD;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,UAAU,SAAS,SAAS,EAC5C,IAAI,EAAE,UAAU,CACZ,OAAO,iBAAiB,CACpB,UAAU,EACV,UAAU,EACV,MAAM,EACN,aAAa,CAChB,CACJ,CAAC,CAAC,CAAC,KACH,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACzC;;;;OAIG;IACH,wBAAwB,EAAE,MAAM,OAAO,CACnC,QAAQ,CAAC,kCAAkC,CAAC,CAC/C,CAAA;CACJ,CAAA;AAED,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,UAAU,EAAE,EACtE,UAAU,EACb,EAAE,UAAU,CAAC,UAAU,CAAC,2TAqBxB"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,gBAAgB,CAAA;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,0DAA0D,CAAA;AACjE,OAAO,KAAK,EAER,2BAA2B,EAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EACH,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAEpC,MAAM,+CAA+C,CAAA;AACtD,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EAEtC,MAAM,iDAAiD,CAAA;AAGxD,MAAM,MAAM,6BAA6B,CAAC,UAAU,SAAS,UAAU,IAAI;IACvE;;OAEG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,8BAA8B,CAAC,UAAU,CAAC,KAC/C,OAAO,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC,CAAA;IACxD,kBAAkB,EAAE,CAChB,IAAI,EAAE,4BAA4B,KACjC,OAAO,CAAC,4BAA4B,CAAC,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,uBAAuB,6EAEvB,MAAM,8CAgBb,CAAA;AAEN,MAAM,MAAM,0BAA0B,CAClC,UAAU,SAAS,UAAU,EAC7B,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,kBAAkB,CAAC,UAAU,CAAC,GAAG,SAAS,GAC1D,kBAAkB,CAAC,UAAU,CAAC,GAC9B,SAAS,IACf,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG;IACzD;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,UAAU,SAAS,SAAS,EAC5C,IAAI,EAAE,UAAU,CACZ,OAAO,iBAAiB,CACpB,UAAU,EACV,UAAU,EACV,MAAM,EACN,aAAa,CAChB,CACJ,CAAC,CAAC,CAAC,KACH,OAAO,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAA;IACrD;;;;OAIG;IACH,wBAAwB,EAAE,MAAM,OAAO,CACnC,QAAQ,CAAC,kCAAkC,CAAC,CAC/C,CAAA;CACJ,CAAA;AAED,wBAAgB,0BAA0B,CAAC,UAAU,SAAS,UAAU,EAAE,EACtE,UAAU,EACb,EAAE,UAAU,CAAC,UAAU,CAAC,2TAqBxB"}
@@ -2,5 +2,5 @@ import type { EntryPoint } from "permissionless/types";
2
2
  import type { Chain, Transport } from "viem";
3
3
  import type { KernelSmartAccount } from "../accounts/index.js";
4
4
  import type { KernelAccountClient } from "./kernelAccountClient.js";
5
- export declare const createFallbackKernelAccountClient: <TEntryPoint extends EntryPoint, TTransport extends Transport, TChain extends Chain | undefined, TSmartAccount extends KernelSmartAccount<TEntryPoint> | undefined>(clients: KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount>[]) => KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount>;
5
+ export declare const createFallbackKernelAccountClient: <TEntryPoint extends EntryPoint, TTransport extends Transport, TChain extends Chain | undefined, TSmartAccount extends KernelSmartAccount<TEntryPoint> | undefined>(clients: KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount>[], onError?: ((error: Error, clientUrl: string) => Promise<void>) | undefined) => KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount>;
6
6
  //# sourceMappingURL=fallbackKernelAccountClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fallbackKernelAccountClient.d.ts","sourceRoot":"","sources":["../../clients/fallbackKernelAccountClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,eAAO,MAAM,iCAAiC,4TAwD7C,CAAA"}
1
+ {"version":3,"file":"fallbackKernelAccountClient.d.ts","sourceRoot":"","sources":["../../clients/fallbackKernelAccountClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,eAAO,MAAM,iCAAiC,yQASxB,KAAK,aAAa,MAAM,KAAK,QAAQ,IAAI,CAAC,qFA4E/D,CAAA"}
package/_types/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { createKernelAccount, createKernelV1Account, createKernelV2Account, type KernelSmartAccount, KERNEL_ADDRESSES, addressToEmptyAccount, EIP1271Abi } from "./accounts/index.js";
2
2
  export { sponsorUserOperation, type SponsorUserOperationParameters, type SponsorUserOperationReturnType } from "./actions/paymaster/sponsorUserOperation.js";
3
+ export { type SmartAccountClientConfig } from "./clients/kernelAccountClient.js";
3
4
  export { zerodevPaymasterActions, type ZeroDevPaymasterClientActions, kernelAccountClientActions, type KernelAccountClientActions } from "./clients/decorators/kernel.js";
4
5
  export { createZeroDevPaymasterClient, type ZeroDevPaymasterClient } from "./clients/paymasterClient.js";
5
6
  export { createKernelAccountClient, type KernelAccountClient } from "./clients/kernelAccountClient.js";
@@ -17,6 +18,6 @@ export { gasTokenAddresses, type TokenSymbolsMap } from "./gasTokenAddresses.js"
17
18
  export { verifyEIP6492Signature, getCustomNonceKeyFromString } from "./accounts/utils/index.js";
18
19
  export { KernelEIP1193Provider } from "./providers/index.js";
19
20
  export { getEncodedPluginsData } from "./accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js";
20
- export { isProviderSet } from "./clients/utils.js";
21
+ export { isProviderSet, setPimlicoAsProvider } from "./clients/utils.js";
21
22
  export { getUserOperationGasPrice } from "./actions/account-client/getUserOperationGasPrice.js";
22
23
  //# 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,qBAAqB,EACrB,qBAAqB,EACrB,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,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,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,EAAE,KAAK,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAChF,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,EAAE,iCAAiC,EAAE,MAAM,0CAA0C,CAAA;AAC5F,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,MAAM,EACd,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EACH,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAClB,MAAM,0DAA0D,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AACvG,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EACH,sBAAsB,EACtB,2BAA2B,EAC9B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAA;AACtG,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sDAAsD,CAAA"}
@@ -1,13 +1,12 @@
1
1
  import type { SmartAccount } from "permissionless/accounts/types"
2
- import {
3
- type Middleware,
4
- prepareUserOperationRequest
5
- } from "permissionless/actions/smartAccount"
2
+ import { prepareUserOperationRequest } from "permissionless/actions/smartAccount"
3
+ import type {
4
+ PrepareUserOperationRequestParameters,
5
+ PrepareUserOperationRequestReturnType
6
+ } from "permissionless/actions/smartAccount/prepareUserOperationRequest"
6
7
  import type {
7
8
  EntryPoint,
8
- GetAccountParameter,
9
9
  GetEntryPointVersion,
10
- PartialBy,
11
10
  Prettify,
12
11
  UserOperation
13
12
  } from "permissionless/types"
@@ -23,24 +22,10 @@ export type SignUserOperationParameters<
23
22
  TAccount extends SmartAccount<entryPoint> | undefined =
24
23
  | SmartAccount<entryPoint>
25
24
  | undefined
26
- > = {
27
- userOperation: PartialBy<
28
- UserOperation<"v0.6">,
29
- | "nonce"
30
- | "sender"
31
- | "initCode"
32
- | "signature"
33
- | "callGasLimit"
34
- | "maxFeePerGas"
35
- | "maxPriorityFeePerGas"
36
- | "preVerificationGas"
37
- | "verificationGasLimit"
38
- | "paymasterAndData"
39
- >
40
- } & GetAccountParameter<entryPoint, TAccount> &
41
- Middleware<entryPoint>
25
+ > = PrepareUserOperationRequestParameters<entryPoint, TAccount>
42
26
 
43
- export type SignUserOperationReturnType = UserOperation<"v0.6">
27
+ export type SignUserOperationReturnType<entryPoint extends EntryPoint> =
28
+ PrepareUserOperationRequestReturnType<entryPoint>
44
29
 
45
30
  export async function signUserOperation<
46
31
  entryPoint extends EntryPoint,
@@ -52,7 +37,7 @@ export async function signUserOperation<
52
37
  >(
53
38
  client: Client<TTransport, TChain, TAccount>,
54
39
  args: Prettify<SignUserOperationParameters<entryPoint, TAccount>>
55
- ): Promise<SignUserOperationReturnType> {
40
+ ): Promise<SignUserOperationReturnType<entryPoint>> {
56
41
  const { account: account_ = client.account } = args
57
42
  if (!account_) throw new AccountOrClientNotFoundError()
58
43
 
@@ -68,5 +53,5 @@ export async function signUserOperation<
68
53
  userOperation as UserOperation<GetEntryPointVersion<entryPoint>>
69
54
  )
70
55
 
71
- return userOperation as SignUserOperationReturnType
56
+ return userOperation as SignUserOperationReturnType<entryPoint>
72
57
  }
@@ -78,7 +78,7 @@ export type KernelAccountClientActions<
78
78
  TSmartAccount
79
79
  >
80
80
  >[1]
81
- ) => Promise<SignUserOperationReturnType>
81
+ ) => Promise<SignUserOperationReturnType<entryPoint>>
82
82
  /**
83
83
  * Returns the live gas prices that you can use to send a user operation.
84
84
  *
@@ -11,50 +11,79 @@ export const createFallbackKernelAccountClient = <
11
11
  >(
12
12
  clients: Array<
13
13
  KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount>
14
- >
14
+ >,
15
+ onError?: (error: Error, clientUrl: string) => Promise<void>
15
16
  ): KernelAccountClient<TEntryPoint, TTransport, TChain, TSmartAccount> => {
17
+ // Map to store methods extended at runtime.
18
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
19
+ const extendedMethods = new Map<PropertyKey, any>()
20
+
21
+ // Function to create a fallback method for a given property.
22
+ // This method will try each client in sequence until one succeeds or all fail.
23
+ function createFallbackMethod(prop: PropertyKey) {
24
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
25
+ return async (...args: any[]) => {
26
+ for (let i = 0; i < clients.length; i++) {
27
+ try {
28
+ const method = Reflect.get(clients[i], prop)
29
+ if (typeof method === "function") {
30
+ return await method(...args)
31
+ }
32
+ } catch (error) {
33
+ console.error(
34
+ `Action ${String(prop)} failed with client ${
35
+ clients[i].transport.url
36
+ }, trying next if available.`
37
+ )
38
+ // Call the error handler if provided.
39
+ if (onError !== undefined) {
40
+ await onError(error as Error, clients[i].transport.url)
41
+ }
42
+ if (i === clients.length - 1) {
43
+ throw error
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+
16
50
  const proxyClient = new Proxy(clients[0], {
17
51
  get(_target, prop, receiver) {
18
- for (const client of clients) {
19
- const value = Reflect.get(client, prop, receiver)
20
- if (value !== undefined) {
21
- // If the property is a function, wrap it to add fallback logic
22
- if (typeof value === "function") {
23
- // biome-ignore lint/suspicious/noExplicitAny: <explanation>
24
- return async (...args: any[]) => {
25
- for (let i = 0; i < clients.length; i++) {
26
- try {
27
- const method = Reflect.get(
28
- clients[i],
29
- prop,
30
- receiver
31
- )
32
- if (typeof method === "function") {
33
- // Attempt to call the function on the current client
34
- return await method(...args)
35
- }
36
- } catch (error) {
37
- console.error(
38
- `Action ${String(
39
- prop
40
- )} failed with client ${
41
- client.transport.url
42
- }, trying next if available.`,
43
- error
44
- )
45
- if (i === clients.length - 1) {
46
- throw error
47
- }
48
- }
52
+ if (prop === "extend") {
53
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
54
+ return (fn: any) => {
55
+ const modifications = fn(proxyClient)
56
+ for (const [key, modification] of Object.entries(
57
+ modifications
58
+ )) {
59
+ if (typeof modification === "function") {
60
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
61
+ ;(proxyClient as any)[key] = async (
62
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
63
+ ...args: any[]
64
+ ) => {
65
+ return modification(...args)
49
66
  }
67
+ } else {
68
+ console.error(
69
+ `Expected a function for modification of ${key}, but received type ${typeof modification}`
70
+ )
50
71
  }
51
72
  }
52
- // For non-function properties, return the first defined value found
53
- return value
73
+ return proxyClient // Consider whether to return a new instance
54
74
  }
55
75
  }
56
- // If no clients have a defined value for the property, return undefined
57
- return undefined
76
+
77
+ // Return an extended method if it exists.
78
+ if (extendedMethods.has(prop)) {
79
+ return extendedMethods.get(prop)
80
+ }
81
+
82
+ const value = Reflect.get(_target, prop, receiver)
83
+ if (typeof value === "function") {
84
+ return createFallbackMethod(prop)
85
+ }
86
+ return value
58
87
  }
59
88
  })
60
89
 
package/index.ts CHANGED
@@ -12,6 +12,7 @@ export {
12
12
  type SponsorUserOperationParameters,
13
13
  type SponsorUserOperationReturnType
14
14
  } from "./actions/paymaster/sponsorUserOperation.js"
15
+ export { type SmartAccountClientConfig } from "./clients/kernelAccountClient.js"
15
16
  export {
16
17
  zerodevPaymasterActions,
17
18
  type ZeroDevPaymasterClientActions,
@@ -52,5 +53,5 @@ export {
52
53
  } from "./accounts/utils/index.js"
53
54
  export { KernelEIP1193Provider } from "./providers/index.js"
54
55
  export { getEncodedPluginsData } from "./accounts/kernel/utils/plugins/ep0_7/getEncodedPluginsData.js"
55
- export { isProviderSet } from "./clients/utils.js"
56
+ export { isProviderSet, setPimlicoAsProvider } from "./clients/utils.js"
56
57
  export { getUserOperationGasPrice } from "./actions/account-client/getUserOperationGasPrice.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.2.13",
3
+ "version": "5.2.15-test-0",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
@@ -9,13 +9,7 @@
9
9
  "type": "module",
10
10
  "sideEffects": false,
11
11
  "description": "A utility library for working with ERC-4337",
12
- "keywords": [
13
- "ethereum",
14
- "erc-4337",
15
- "eip-4337",
16
- "paymaster",
17
- "bundler"
18
- ],
12
+ "keywords": ["ethereum", "erc-4337", "eip-4337", "paymaster", "bundler"],
19
13
  "license": "MIT",
20
14
  "files": [
21
15
  "_esm",
@@ -91,30 +85,14 @@
91
85
  },
92
86
  "typesVersions": {
93
87
  "*": {
94
- "accounts": [
95
- "./_types/accounts/index.d.ts"
96
- ],
97
- "plugins": [
98
- "./_types/plugins/index.d.ts"
99
- ],
100
- "actions": [
101
- "./_types/actions/index.d.ts"
102
- ],
103
- "types": [
104
- "./_types/types/index.d.ts"
105
- ],
106
- "actions/kernel": [
107
- "./_types/actions/kernel/index.d.ts"
108
- ],
109
- "clients": [
110
- "./_types/clients/index.d.ts"
111
- ],
112
- "clients/kernel": [
113
- "./_types/clients/kernel/index.d.ts"
114
- ],
115
- "providers": [
116
- "./_types/providers/index.d.ts"
117
- ]
88
+ "accounts": ["./_types/accounts/index.d.ts"],
89
+ "plugins": ["./_types/plugins/index.d.ts"],
90
+ "actions": ["./_types/actions/index.d.ts"],
91
+ "types": ["./_types/types/index.d.ts"],
92
+ "actions/kernel": ["./_types/actions/kernel/index.d.ts"],
93
+ "clients": ["./_types/clients/index.d.ts"],
94
+ "clients/kernel": ["./_types/clients/kernel/index.d.ts"],
95
+ "providers": ["./_types/providers/index.d.ts"]
118
96
  }
119
97
  },
120
98
  "peerDependencies": {