@zerodev/sdk 5.1.10 → 5.1.12

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 (34) hide show
  1. package/_cjs/actions/index.js +3 -1
  2. package/_cjs/actions/index.js.map +1 -1
  3. package/_cjs/actions/paymaster/estimateGasInERC20.js +26 -0
  4. package/_cjs/actions/paymaster/estimateGasInERC20.js.map +1 -0
  5. package/_cjs/clients/decorators/kernel.js +3 -1
  6. package/_cjs/clients/decorators/kernel.js.map +1 -1
  7. package/_cjs/index.js +3 -1
  8. package/_cjs/index.js.map +1 -1
  9. package/_cjs/types/kernel.js.map +1 -1
  10. package/_esm/actions/index.js +1 -0
  11. package/_esm/actions/index.js.map +1 -1
  12. package/_esm/actions/paymaster/estimateGasInERC20.js +25 -0
  13. package/_esm/actions/paymaster/estimateGasInERC20.js.map +1 -0
  14. package/_esm/clients/decorators/kernel.js +3 -1
  15. package/_esm/clients/decorators/kernel.js.map +1 -1
  16. package/_esm/index.js +1 -0
  17. package/_esm/index.js.map +1 -1
  18. package/_esm/types/kernel.js.map +1 -1
  19. package/_types/actions/index.d.ts +1 -0
  20. package/_types/actions/index.d.ts.map +1 -1
  21. package/_types/actions/paymaster/estimateGasInERC20.d.ts +20 -0
  22. package/_types/actions/paymaster/estimateGasInERC20.d.ts.map +1 -0
  23. package/_types/clients/decorators/kernel.d.ts +2 -0
  24. package/_types/clients/decorators/kernel.d.ts.map +1 -1
  25. package/_types/index.d.ts +1 -0
  26. package/_types/index.d.ts.map +1 -1
  27. package/_types/types/kernel.d.ts +15 -0
  28. package/_types/types/kernel.d.ts.map +1 -1
  29. package/actions/index.ts +6 -0
  30. package/actions/paymaster/estimateGasInERC20.ts +57 -0
  31. package/clients/decorators/kernel.ts +11 -1
  32. package/index.ts +1 -0
  33. package/package.json +1 -1
  34. package/types/kernel.ts +15 -0
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signUserOperation = exports.sponsorUserOperation = void 0;
3
+ exports.estimateGasInERC20 = exports.signUserOperation = exports.sponsorUserOperation = void 0;
4
4
  var sponsorUserOperation_js_1 = require("./paymaster/sponsorUserOperation.js");
5
5
  Object.defineProperty(exports, "sponsorUserOperation", { enumerable: true, get: function () { return sponsorUserOperation_js_1.sponsorUserOperation; } });
6
6
  var signUserOperation_js_1 = require("./account-client/signUserOperation.js");
7
7
  Object.defineProperty(exports, "signUserOperation", { enumerable: true, get: function () { return signUserOperation_js_1.signUserOperation; } });
8
+ var estimateGasInERC20_js_1 = require("./paymaster/estimateGasInERC20.js");
9
+ Object.defineProperty(exports, "estimateGasInERC20", { enumerable: true, get: function () { return estimateGasInERC20_js_1.estimateGasInERC20; } });
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":";;;AAAA,+EAI4C;AAHxC,+HAAA,oBAAoB,OAAA;AAKxB,8EAI8C;AAH1C,yHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":";;;AAAA,+EAI4C;AAHxC,+HAAA,oBAAoB,OAAA;AAKxB,8EAI8C;AAH1C,yHAAA,iBAAiB,OAAA;AAKrB,2EAI0C;AAHtC,2HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.estimateGasInERC20 = void 0;
4
+ const utils_1 = require("permissionless/utils");
5
+ const index_js_1 = require("../../accounts/index.js");
6
+ const estimateGasInERC20 = async (client, args) => {
7
+ const response = await client.request({
8
+ method: "stackup_getERC20TokenQuotes",
9
+ params: [
10
+ {
11
+ chainId: client.chain?.id,
12
+ userOp: (0, utils_1.deepHexlify)(args.userOperation),
13
+ tokenAddress: args.gasTokenAddress,
14
+ entryPointAddress: args.entryPoint ?? index_js_1.KERNEL_ADDRESSES.ENTRYPOINT_V0_6
15
+ }
16
+ ]
17
+ });
18
+ const result = {
19
+ maxGasCostToken: response.maxGasCostToken,
20
+ tokenDecimals: response.tokenDecimals
21
+ };
22
+ const amount = Number(result.maxGasCostToken) / 10 ** Number(result.tokenDecimals);
23
+ return { amount };
24
+ };
25
+ exports.estimateGasInERC20 = estimateGasInERC20;
26
+ //# sourceMappingURL=estimateGasInERC20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateGasInERC20.js","sourceRoot":"","sources":["../../../actions/paymaster/estimateGasInERC20.ts"],"names":[],"mappings":";;;AAIA,gDAAkD;AAElD,sDAA0D;AAsBnD,MAAM,kBAAkB,GAAG,KAAK,EACnC,MAA8B,EAC9B,IAAkC,EACG,EAAE;IACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE;YACJ;gBACI,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAY;gBACnC,MAAM,EAAE,IAAA,mBAAW,EACf,IAAI,CAAC,aAAa,CACW;gBACjC,YAAY,EAAE,IAAI,CAAC,eAAe;gBAClC,iBAAiB,EACb,IAAI,CAAC,UAAU,IAAI,2BAAgB,CAAC,eAAe;aAC1D;SACJ;KACJ,CAAC,CAAA;IAEF,MAAM,MAAM,GAAkC;QAC1C,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;KACxC,CAAA;IAED,MAAM,MAAM,GACR,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAEvE,OAAO,EAAE,MAAM,EAAE,CAAA;AACrB,CAAC,CAAA;AA5BY,QAAA,kBAAkB,sBA4B9B"}
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.kernelAccountClientActions = exports.zerodevPaymasterActions = void 0;
4
4
  const permissionless_1 = require("permissionless");
5
5
  const index_js_1 = require("../../actions/index.js");
6
+ const estimateGasInERC20_js_1 = require("../../actions/paymaster/estimateGasInERC20.js");
6
7
  const sponsorUserOperation_js_1 = require("../../actions/paymaster/sponsorUserOperation.js");
7
8
  const zerodevPaymasterActions = (client) => ({
8
- sponsorUserOperation: async (args) => (0, sponsorUserOperation_js_1.sponsorUserOperation)(client, args)
9
+ sponsorUserOperation: async (args) => (0, sponsorUserOperation_js_1.sponsorUserOperation)(client, args),
10
+ estimateGasInERC20: async (args) => (0, estimateGasInERC20_js_1.estimateGasInERC20)(client, args)
9
11
  });
10
12
  exports.zerodevPaymasterActions = zerodevPaymasterActions;
11
13
  const kernelAccountClientActions = ({ sponsorUserOperation }) => (client) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":";;;AAAA,mDAA8E;AAQ9E,qDAA0D;AAC1D,6FAIwD;AAYjD,MAAM,uBAAuB,GAAG,CACnC,MAAc,EACe,EAAE,CAAC,CAAC;IACjC,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,IAAA,8CAAoB,EAAC,MAAgC,EAAE,IAAI,CAAC;CACnE,CAAC,CAAA;AALW,QAAA,uBAAuB,2BAKlC;AA8BK,MAAM,0BAA0B,GACnC,CAAC,EAAE,oBAAoB,EAAkC,EAAE,EAAE,CAC7D,CAOI,MAAiD,EACA,EAAE,CAAC,CAAC;IACrD,GAAG,IAAA,oCAAmB,EAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;IACxD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,IAAA,4BAAiB,EAAC,MAAM,EAAE;QACtB,GAAG,IAAI;QACP,oBAAoB;KACuB,CAAC;CACvD,CAAC,CAAA;AAjBO,QAAA,0BAA0B,8BAiBjC"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":";;;AAAA,mDAA8E;AAQ9E,qDAA0D;AAC1D,yFAIsD;AACtD,6FAIwD;AAejD,MAAM,uBAAuB,GAAG,CACnC,MAAc,EACe,EAAE,CAAC,CAAC;IACjC,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,IAAA,8CAAoB,EAAC,MAAgC,EAAE,IAAI,CAAC;IAChE,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,IAAA,0CAAkB,EAAC,MAAgC,EAAE,IAAI,CAAC;CACjE,CAAC,CAAA;AAPW,QAAA,uBAAuB,2BAOlC;AA8BK,MAAM,0BAA0B,GACnC,CAAC,EAAE,oBAAoB,EAAkC,EAAE,EAAE,CAC7D,CAOI,MAAiD,EACA,EAAE,CAAC,CAAC;IACrD,GAAG,IAAA,oCAAmB,EAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;IACxD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,IAAA,4BAAiB,EAAC,MAAM,EAAE;QACtB,GAAG,IAAI;QACP,oBAAoB;KACuB,CAAC;CACvD,CAAC,CAAA;AAjBO,QAAA,0BAA0B,8BAiBjC"}
package/_cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.EIP1271ABI = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.createKernelV1Account = exports.createKernelAccount = void 0;
3
+ exports.KernelEIP1193Provider = exports.verifyEIP6492Signature = exports.gasTokenAddresses = exports.constants = exports.TokenActionsAbi = exports.KernelFactoryAbi = exports.KernelAccountAbi = exports.createKernelAccountClient = exports.createZeroDevPaymasterClient = exports.kernelAccountClientActions = exports.zerodevPaymasterActions = exports.sponsorUserOperation = exports.EIP1271ABI = exports.addressToEmptyAccount = exports.KERNEL_ADDRESSES = exports.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; } });
@@ -29,4 +29,6 @@ var gasTokenAddresses_js_1 = require("./gasTokenAddresses.js");
29
29
  Object.defineProperty(exports, "gasTokenAddresses", { enumerable: true, get: function () { return gasTokenAddresses_js_1.gasTokenAddresses; } });
30
30
  var index_js_2 = require("./accounts/utils/index.js");
31
31
  Object.defineProperty(exports, "verifyEIP6492Signature", { enumerable: true, get: function () { return index_js_2.verifyEIP6492Signature; } });
32
+ var index_js_3 = require("./providers/index.js");
33
+ Object.defineProperty(exports, "KernelEIP1193Provider", { enumerable: true, get: function () { return index_js_3.KernelEIP1193Provider; } });
32
34
  //# 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,gDAO4B;AANxB,+GAAA,mBAAmB,OAAA;AACnB,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;AAQ7B,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAAgF;AAAvE,yHAAA,iBAAiB,OAAA;AAC1B,sDAAkE;AAAzD,kHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;AAAA,gDAO4B;AANxB,+GAAA,mBAAmB,OAAA;AACnB,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;AAQ7B,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,iFAA4E;AAAnE,uHAAA,gBAAgB,OAAA;AACzB,+EAA0E;AAAjE,qHAAA,eAAe,OAAA;AACxB,8CAA2C;AAC3C,qDAA0B;AAC1B,+DAAgF;AAAvE,yHAAA,iBAAiB,OAAA;AAC1B,sDAAkE;AAAzD,kHAAA,sBAAsB,OAAA;AAC/B,iDAA4D;AAAnD,iHAAA,qBAAqB,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":";;;AA8FA,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":";;;AA6GA,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
@@ -1,3 +1,4 @@
1
1
  export { sponsorUserOperation } from "./paymaster/sponsorUserOperation.js";
2
2
  export { signUserOperation } from "./account-client/signUserOperation.js";
3
+ export { estimateGasInERC20 } from "./paymaster/estimateGasInERC20.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAGvB,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EACH,iBAAiB,EAGpB,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EAGvB,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EACH,iBAAiB,EAGpB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACH,kBAAkB,EAGrB,MAAM,mCAAmC,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { deepHexlify } from "permissionless/utils";
2
+ import { KERNEL_ADDRESSES } from "../../accounts/index.js";
3
+ /**
4
+ * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
5
+ */
6
+ export const estimateGasInERC20 = async (client, args) => {
7
+ const response = await client.request({
8
+ method: "stackup_getERC20TokenQuotes",
9
+ params: [
10
+ {
11
+ chainId: client.chain?.id,
12
+ userOp: deepHexlify(args.userOperation),
13
+ tokenAddress: args.gasTokenAddress,
14
+ entryPointAddress: args.entryPoint ?? KERNEL_ADDRESSES.ENTRYPOINT_V0_6
15
+ }
16
+ ]
17
+ });
18
+ const result = {
19
+ maxGasCostToken: response.maxGasCostToken,
20
+ tokenDecimals: response.tokenDecimals
21
+ };
22
+ const amount = Number(result.maxGasCostToken) / 10 ** Number(result.tokenDecimals);
23
+ return { amount };
24
+ };
25
+ //# sourceMappingURL=estimateGasInERC20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateGasInERC20.js","sourceRoot":"","sources":["../../../actions/paymaster/estimateGasInERC20.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAkB1D;;GAEG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACnC,MAA8B,EAC9B,IAAkC,EACG,EAAE;IACvC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QAClC,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE;YACJ;gBACI,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAY;gBACnC,MAAM,EAAE,WAAW,CACf,IAAI,CAAC,aAAa,CACW;gBACjC,YAAY,EAAE,IAAI,CAAC,eAAe;gBAClC,iBAAiB,EACb,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,eAAe;aAC1D;SACJ;KACJ,CAAC,CAAA;IAEF,MAAM,MAAM,GAAkC;QAC1C,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,aAAa,EAAE,QAAQ,CAAC,aAAa;KACxC,CAAA;IAED,MAAM,MAAM,GACR,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAEvE,OAAO,EAAE,MAAM,EAAE,CAAA;AACrB,CAAC,CAAA"}
@@ -1,8 +1,10 @@
1
1
  import { smartAccountActions } from "permissionless";
2
2
  import { signUserOperation } from "../../actions/index.js";
3
+ import { estimateGasInERC20 } from "../../actions/paymaster/estimateGasInERC20.js";
3
4
  import { sponsorUserOperation } from "../../actions/paymaster/sponsorUserOperation.js";
4
5
  export const zerodevPaymasterActions = (client) => ({
5
- sponsorUserOperation: async (args) => sponsorUserOperation(client, args)
6
+ sponsorUserOperation: async (args) => sponsorUserOperation(client, args),
7
+ estimateGasInERC20: async (args) => estimateGasInERC20(client, args)
6
8
  });
7
9
  export const kernelAccountClientActions = ({ sponsorUserOperation }) => (client) => ({
8
10
  ...smartAccountActions({ sponsorUserOperation })(client),
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAQ9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAGH,oBAAoB,EACvB,MAAM,iDAAiD,CAAA;AAYxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,MAAc,EACe,EAAE,CAAC,CAAC;IACjC,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,oBAAoB,CAAC,MAAgC,EAAE,IAAI,CAAC;CACnE,CAAC,CAAA;AA8BF,MAAM,CAAC,MAAM,0BAA0B,GACnC,CAAC,EAAE,oBAAoB,EAAkC,EAAE,EAAE,CAC7D,CAOI,MAAiD,EACA,EAAE,CAAC,CAAC;IACrD,GAAG,mBAAmB,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;IACxD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,iBAAiB,CAAC,MAAM,EAAE;QACtB,GAAG,IAAI;QACP,oBAAoB;KACuB,CAAC;CACvD,CAAC,CAAA"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../clients/decorators/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAQ9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAGH,kBAAkB,EACrB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAGH,oBAAoB,EACvB,MAAM,iDAAiD,CAAA;AAexD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,MAAc,EACe,EAAE,CAAC,CAAC;IACjC,oBAAoB,EAAE,KAAK,EAAE,IAAoC,EAAE,EAAE,CACjE,oBAAoB,CAAC,MAAgC,EAAE,IAAI,CAAC;IAChE,kBAAkB,EAAE,KAAK,EAAE,IAAkC,EAAE,EAAE,CAC7D,kBAAkB,CAAC,MAAgC,EAAE,IAAI,CAAC;CACjE,CAAC,CAAA;AA8BF,MAAM,CAAC,MAAM,0BAA0B,GACnC,CAAC,EAAE,oBAAoB,EAAkC,EAAE,EAAE,CAC7D,CAOI,MAAiD,EACA,EAAE,CAAC,CAAC;IACrD,GAAG,mBAAmB,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;IACxD,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CACxB,iBAAiB,CAAC,MAAM,EAAE;QACtB,GAAG,IAAI;QACP,oBAAoB;KACuB,CAAC;CACvD,CAAC,CAAA"}
package/_esm/index.js CHANGED
@@ -12,4 +12,5 @@ export { constants_1 as constants };
12
12
  export * from "./utils.js";
13
13
  export { gasTokenAddresses } from "./gasTokenAddresses.js";
14
14
  export { verifyEIP6492Signature } from "./accounts/utils/index.js";
15
+ export { KernelEIP1193Provider } from "./providers/index.js";
15
16
  //# 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,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,EAIN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,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,EAIN,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;6BAC/C,gBAAgB;wBAA/B,SAAS;AACrB,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAwB,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,MAAM,MAAM,CAAA;AA0FhE,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAIA,OAAO,EAA6C,MAAM,MAAM,CAAA;AAyGhE,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;AACzB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB"}
@@ -1,3 +1,4 @@
1
1
  export { sponsorUserOperation, type SponsorUserOperationParameters, type SponsorUserOperationReturnType } from "./paymaster/sponsorUserOperation.js";
2
2
  export { signUserOperation, type SignUserOperationParameters, type SignUserOperationReturnType } from "./account-client/signUserOperation.js";
3
+ export { estimateGasInERC20, type EstimateGasInERC20Parameters, type EstimateGasInERC20ReturnType } from "./paymaster/estimateGasInERC20.js";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EACH,iBAAiB,EACjB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EACnC,MAAM,uCAAuC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EACH,iBAAiB,EACjB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EACnC,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EACH,kBAAkB,EAClB,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACpC,MAAM,mCAAmC,CAAA"}
@@ -0,0 +1,20 @@
1
+ import type { UserOperation } from "permissionless/types/userOperation.js";
2
+ import type { Address, Hex } from "viem";
3
+ import type { ZeroDevPaymasterClient } from "../../clients/paymasterClient.js";
4
+ export type EstimateGasInERC20Parameters = {
5
+ userOperation: UserOperation;
6
+ gasTokenAddress: Hex;
7
+ entryPoint?: Address;
8
+ };
9
+ export type GetERC20TokenQuotesReturnType = {
10
+ maxGasCostToken: string;
11
+ tokenDecimals: string;
12
+ };
13
+ export type EstimateGasInERC20ReturnType = {
14
+ amount: number;
15
+ };
16
+ /**
17
+ * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
18
+ */
19
+ export declare const estimateGasInERC20: (client: ZeroDevPaymasterClient, args: EstimateGasInERC20Parameters) => Promise<EstimateGasInERC20ReturnType>;
20
+ //# sourceMappingURL=estimateGasInERC20.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimateGasInERC20.d.ts","sourceRoot":"","sources":["../../../actions/paymaster/estimateGasInERC20.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EAEhB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAE9E,MAAM,MAAM,4BAA4B,GAAG;IACvC,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,GAAG,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IACxC,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,4BAA4B,GAAG;IACvC,MAAM,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;GAEG;AAEH,eAAO,MAAM,kBAAkB,WACnB,sBAAsB,QACxB,4BAA4B,KACnC,QAAQ,4BAA4B,CAyBtC,CAAA"}
@@ -4,12 +4,14 @@ import type { SponsorUserOperationMiddleware } from "permissionless/actions/smar
4
4
  import type { Chain, Client, Transport } from "viem";
5
5
  import type { SignUserOperationReturnType } from "../../actions/index.js";
6
6
  import { signUserOperation } from "../../actions/index.js";
7
+ import { type EstimateGasInERC20Parameters, type EstimateGasInERC20ReturnType } from "../../actions/paymaster/estimateGasInERC20.js";
7
8
  import { type SponsorUserOperationParameters, type SponsorUserOperationReturnType } from "../../actions/paymaster/sponsorUserOperation.js";
8
9
  export type ZeroDevPaymasterClientActions = {
9
10
  /**
10
11
  * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
11
12
  */
12
13
  sponsorUserOperation: (args: SponsorUserOperationParameters) => Promise<SponsorUserOperationReturnType>;
14
+ estimateGasInERC20: (args: EstimateGasInERC20Parameters) => Promise<EstimateGasInERC20ReturnType>;
13
15
  };
14
16
  export declare const zerodevPaymasterActions: (client: Client) => ZeroDevPaymasterClientActions;
15
17
  export type KernelAccountClientActions<TChain extends Chain | undefined = Chain | undefined, TSmartAccount extends SmartAccount | undefined = SmartAccount | undefined> = SmartAccountActions<TChain, TSmartAccount> & {
@@ -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,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACpD,OAAO,KAAK,EAER,2BAA2B,EAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EACH,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EAEtC,MAAM,iDAAiD,CAAA;AAGxD,MAAM,MAAM,6BAA6B,GAAG;IACxC;;OAEG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,8BAA8B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAA;CAC/C,CAAA;AAED,eAAO,MAAM,uBAAuB,WACxB,MAAM,KACf,6BAGD,CAAA;AAaF,MAAM,MAAM,0BAA0B,CAClC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,IACzE,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG;IAC7C;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,UAAU,SAAS,SAAS,EAC5C,IAAI,EAAE,UAAU,CACZ,OAAO,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAC9D,CAAC,CAAC,CAAC,KACH,OAAO,CAAC,2BAA2B,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,0BAA0B,6BACR,8BAA8B,4QAgBvD,CAAA"}
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,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AACpD,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,GAAG;IACxC;;OAEG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,8BAA8B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAA;IAC5C,kBAAkB,EAAE,CAChB,IAAI,EAAE,4BAA4B,KACjC,OAAO,CAAC,4BAA4B,CAAC,CAAA;CAC7C,CAAA;AAED,eAAO,MAAM,uBAAuB,WACxB,MAAM,KACf,6BAKD,CAAA;AAaF,MAAM,MAAM,0BAA0B,CAClC,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,IACzE,mBAAmB,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG;IAC7C;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,UAAU,SAAS,SAAS,EAC5C,IAAI,EAAE,UAAU,CACZ,OAAO,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAC9D,CAAC,CAAC,CAAC,KACH,OAAO,CAAC,2BAA2B,CAAC,CAAA;CAC5C,CAAA;AAED,eAAO,MAAM,0BAA0B,6BACR,8BAA8B,4QAgBvD,CAAA"}
package/_types/index.d.ts CHANGED
@@ -11,4 +11,5 @@ export * as constants from "./constants.js";
11
11
  export * from "./utils.js";
12
12
  export { gasTokenAddresses, type TokenSymbolsMap } from "./gasTokenAddresses.js";
13
13
  export { verifyEIP6492Signature } from "./accounts/utils/index.js";
14
+ export { KernelEIP1193Provider } from "./providers/index.js";
14
15
  //# 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,KAAK,kBAAkB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,UAAU,EACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,oBAAoB,EACpB,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACtC,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACH,uBAAuB,EACvB,KAAK,6BAA6B,EAClC,0BAA0B,EAC1B,KAAK,0BAA0B,EAClC,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACH,4BAA4B,EAC5B,KAAK,sBAAsB,EAC9B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACH,yBAAyB,EACzB,KAAK,mBAAmB,EAC3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACH,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EACnB,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,EACH,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAC1E,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,cAAc,YAAY,CAAA;AAC1B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA"}
@@ -35,6 +35,21 @@ export type ZeroDevPaymasterRpcSchema = [
35
35
  }
36
36
  ];
37
37
  ReturnType: Address[];
38
+ },
39
+ {
40
+ Method: "stackup_getERC20TokenQuotes";
41
+ Parameters: [
42
+ {
43
+ chainId: number;
44
+ userOp: UserOperationWithBigIntAsHex;
45
+ entryPointAddress: Address;
46
+ tokenAddress: Address;
47
+ }
48
+ ];
49
+ ReturnType: {
50
+ maxGasCostToken: string;
51
+ tokenDecimals: string;
52
+ };
38
53
  }
39
54
  ];
40
55
  export type KernelValidator<Name extends string = string> = LocalAccount<Name> & {
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../types/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,aAAa,EACb,4BAA4B,EAC/B,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,GAAG,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,MAAM,MAAM,yBAAyB,GAAG;IACpC;QACI,MAAM,EAAE,yBAAyB,CAAA;QACjC,UAAU,EAAE;YACR;gBACI,OAAO,EAAE,MAAM,CAAA;gBACf,MAAM,EAAE,SAAS,CACb,4BAA4B,EAC1B,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CACvB,CAAA;gBACD,iBAAiB,EAAE,OAAO,CAAA;gBAC1B,YAAY,CAAC,EAAE;oBACX,YAAY,EAAE,GAAG,CAAA;iBACpB,CAAA;gBACD,iBAAiB,CAAC,EAAE,OAAO,CAAA;gBAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAA;gBAC7B,aAAa,CAAC,EAAE,OAAO,CAAA;aAC1B;SACJ,CAAA;QACD,UAAU,EAAE;YACR,gBAAgB,EAAE,GAAG,CAAA;YACrB,kBAAkB,EAAE,GAAG,CAAA;YACvB,oBAAoB,EAAE,GAAG,CAAA;YACzB,YAAY,EAAE,GAAG,CAAA;YACjB,YAAY,EAAE,GAAG,CAAA;YACjB,oBAAoB,EAAE,GAAG,CAAA;SAC5B,CAAA;KACJ;IACD;QACI,MAAM,EAAE,gBAAgB,CAAA;QACxB,UAAU,EAAE;YACR;gBACI,OAAO,EAAE,MAAM,CAAA;gBACf,iBAAiB,EAAE,OAAO,CAAA;aAC7B;SACJ,CAAA;QACD,UAAU,EAAE,OAAO,EAAE,CAAA;KACxB;IACD;QACI,MAAM,EAAE,6BAA6B,CAAA;QACrC,UAAU,EAAE;YACR;gBACI,OAAO,EAAE,MAAM,CAAA;gBACf,MAAM,EAAE,4BAA4B,CAAA;gBACpC,iBAAiB,EAAE,OAAO,CAAA;gBAC1B,YAAY,EAAE,OAAO,CAAA;aACxB;SACJ,CAAA;QACD,UAAU,EAAE;YACR,eAAe,EAAE,MAAM,CAAA;YACvB,aAAa,EAAE,MAAM,CAAA;SACxB,CAAA;KACJ;CACJ,CAAA;AAED,MAAM,MAAM,eAAe,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IACpD,YAAY,CAAC,IAAI,CAAC,GAAG;IACjB,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAClC,iBAAiB,CACb,aAAa,EAAE,aAAa,EAC5B,qBAAqB,CAAC,EAAE,GAAG,GAC5B,OAAO,CAAC,GAAG,CAAC,CAAA;IACf,iBAAiB,EAAE,CACf,aAAa,EAAE,aAAa,EAC5B,qBAAqB,CAAC,EAAE,GAAG,KAC1B,OAAO,CAAC,GAAG,CAAC,CAAA;IACjB,aAAa,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACrD,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACtE,CAAA;AAEL,MAAM,MAAM,iBAAiB,GAAG;IAC5B,gBAAgB,EAAE,OAAO,CAAA;IACzB,UAAU,EAAE,GAAG,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IAChD,wBAAwB,CAAC,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/D,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAClD,eAAe,IAAI,YAAY,CAAA;IAC/B,eAAe,IAAI,kBAAkB,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,qBAAqB,CAAC,EAAE,GAAG,CAAA;IAC3B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,YAAY,CAAC,EAAE,YAAY,CAAA;CAC9B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;AAE/B,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,GAAG,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,oBAAY,aAAa;IACrB,IAAI,eAAe;IACnB,MAAM,eAAe;IACrB,MAAM,eAAe;CACxB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAA;AAE9C,MAAM,MAAM,wBAAwB,GAC9B;IACI,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CACjC,GACD;IACI,EAAE,EAAE,OAAO,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CACjC,EAAE,CAAA"}
package/actions/index.ts CHANGED
@@ -9,3 +9,9 @@ export {
9
9
  type SignUserOperationParameters,
10
10
  type SignUserOperationReturnType
11
11
  } from "./account-client/signUserOperation.js"
12
+
13
+ export {
14
+ estimateGasInERC20,
15
+ type EstimateGasInERC20Parameters,
16
+ type EstimateGasInERC20ReturnType
17
+ } from "./paymaster/estimateGasInERC20.js"
@@ -0,0 +1,57 @@
1
+ import type {
2
+ UserOperation,
3
+ UserOperationWithBigIntAsHex
4
+ } from "permissionless/types/userOperation.js"
5
+ import { deepHexlify } from "permissionless/utils"
6
+ import type { Address, Hex } from "viem"
7
+ import { KERNEL_ADDRESSES } from "../../accounts/index.js"
8
+ import type { ZeroDevPaymasterClient } from "../../clients/paymasterClient.js"
9
+
10
+ export type EstimateGasInERC20Parameters = {
11
+ userOperation: UserOperation
12
+ gasTokenAddress: Hex
13
+ entryPoint?: Address
14
+ }
15
+
16
+ export type GetERC20TokenQuotesReturnType = {
17
+ maxGasCostToken: string
18
+ tokenDecimals: string
19
+ }
20
+
21
+ export type EstimateGasInERC20ReturnType = {
22
+ amount: number
23
+ }
24
+
25
+ /**
26
+ * Returns paymasterAndData & updated gas parameters required to sponsor a userOperation.
27
+ */
28
+
29
+ export const estimateGasInERC20 = async (
30
+ client: ZeroDevPaymasterClient,
31
+ args: EstimateGasInERC20Parameters
32
+ ): Promise<EstimateGasInERC20ReturnType> => {
33
+ const response = await client.request({
34
+ method: "stackup_getERC20TokenQuotes",
35
+ params: [
36
+ {
37
+ chainId: client.chain?.id as number,
38
+ userOp: deepHexlify(
39
+ args.userOperation
40
+ ) as UserOperationWithBigIntAsHex,
41
+ tokenAddress: args.gasTokenAddress,
42
+ entryPointAddress:
43
+ args.entryPoint ?? KERNEL_ADDRESSES.ENTRYPOINT_V0_6
44
+ }
45
+ ]
46
+ })
47
+
48
+ const result: GetERC20TokenQuotesReturnType = {
49
+ maxGasCostToken: response.maxGasCostToken,
50
+ tokenDecimals: response.tokenDecimals
51
+ }
52
+
53
+ const amount =
54
+ Number(result.maxGasCostToken) / 10 ** Number(result.tokenDecimals)
55
+
56
+ return { amount }
57
+ }
@@ -7,6 +7,11 @@ import type {
7
7
  SignUserOperationReturnType
8
8
  } from "../../actions/index.js"
9
9
  import { signUserOperation } from "../../actions/index.js"
10
+ import {
11
+ type EstimateGasInERC20Parameters,
12
+ type EstimateGasInERC20ReturnType,
13
+ estimateGasInERC20
14
+ } from "../../actions/paymaster/estimateGasInERC20.js"
10
15
  import {
11
16
  type SponsorUserOperationParameters,
12
17
  type SponsorUserOperationReturnType,
@@ -21,13 +26,18 @@ export type ZeroDevPaymasterClientActions = {
21
26
  sponsorUserOperation: (
22
27
  args: SponsorUserOperationParameters
23
28
  ) => Promise<SponsorUserOperationReturnType>
29
+ estimateGasInERC20: (
30
+ args: EstimateGasInERC20Parameters
31
+ ) => Promise<EstimateGasInERC20ReturnType>
24
32
  }
25
33
 
26
34
  export const zerodevPaymasterActions = (
27
35
  client: Client
28
36
  ): ZeroDevPaymasterClientActions => ({
29
37
  sponsorUserOperation: async (args: SponsorUserOperationParameters) =>
30
- sponsorUserOperation(client as ZeroDevPaymasterClient, args)
38
+ sponsorUserOperation(client as ZeroDevPaymasterClient, args),
39
+ estimateGasInERC20: async (args: EstimateGasInERC20Parameters) =>
40
+ estimateGasInERC20(client as ZeroDevPaymasterClient, args)
31
41
  })
32
42
 
33
43
  // export type KernelAccountClientActions<
package/index.ts CHANGED
@@ -37,3 +37,4 @@ export * as constants from "./constants.js"
37
37
  export * from "./utils.js"
38
38
  export { gasTokenAddresses, type TokenSymbolsMap } from "./gasTokenAddresses.js"
39
39
  export { verifyEIP6492Signature } from "./accounts/utils/index.js"
40
+ export { KernelEIP1193Provider } from "./providers/index.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zerodev/sdk",
3
- "version": "5.1.10",
3
+ "version": "5.1.12",
4
4
  "author": "ZeroDev",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
package/types/kernel.ts CHANGED
@@ -44,6 +44,21 @@ export type ZeroDevPaymasterRpcSchema = [
44
44
  }
45
45
  ]
46
46
  ReturnType: Address[]
47
+ },
48
+ {
49
+ Method: "stackup_getERC20TokenQuotes"
50
+ Parameters: [
51
+ {
52
+ chainId: number
53
+ userOp: UserOperationWithBigIntAsHex
54
+ entryPointAddress: Address
55
+ tokenAddress: Address
56
+ }
57
+ ]
58
+ ReturnType: {
59
+ maxGasCostToken: string
60
+ tokenDecimals: string
61
+ }
47
62
  }
48
63
  ]
49
64