@zerodev/sdk 5.2.14 → 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,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,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"}
@@ -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"}
@@ -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.14",
3
+ "version": "5.2.15-test-0",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",