permissionless 0.0.28 → 0.0.30

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 (70) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_cjs/actions/bundler/estimateUserOperationGas.js +10 -5
  3. package/_cjs/actions/bundler/estimateUserOperationGas.js.map +1 -1
  4. package/_cjs/actions/pimlico/getUserOperationStatus.js.map +1 -1
  5. package/_cjs/actions/pimlico/sendCompressedUserOperation.js +16 -0
  6. package/_cjs/actions/pimlico/sendCompressedUserOperation.js.map +1 -0
  7. package/_cjs/actions/pimlico.js +3 -1
  8. package/_cjs/actions/pimlico.js.map +1 -1
  9. package/_cjs/actions/smartAccount/prepareUserOperationRequest.js +2 -2
  10. package/_cjs/actions/smartAccount/prepareUserOperationRequest.js.map +1 -1
  11. package/_cjs/clients/decorators/bundler.js +1 -1
  12. package/_cjs/clients/decorators/bundler.js.map +1 -1
  13. package/_cjs/clients/decorators/pimlico.js +2 -1
  14. package/_cjs/clients/decorators/pimlico.js.map +1 -1
  15. package/_cjs/clients/decorators/smartAccount.js +2 -2
  16. package/_cjs/clients/decorators/smartAccount.js.map +1 -1
  17. package/_cjs/utils/getAction.js +1 -1
  18. package/_cjs/utils/getAction.js.map +1 -1
  19. package/_esm/actions/bundler/estimateUserOperationGas.js +10 -5
  20. package/_esm/actions/bundler/estimateUserOperationGas.js.map +1 -1
  21. package/_esm/actions/pimlico/getUserOperationStatus.js +2 -1
  22. package/_esm/actions/pimlico/getUserOperationStatus.js.map +1 -1
  23. package/_esm/actions/pimlico/sendCompressedUserOperation.js +38 -0
  24. package/_esm/actions/pimlico/sendCompressedUserOperation.js.map +1 -0
  25. package/_esm/actions/pimlico.js +2 -1
  26. package/_esm/actions/pimlico.js.map +1 -1
  27. package/_esm/actions/smartAccount/prepareUserOperationRequest.js +2 -2
  28. package/_esm/actions/smartAccount/prepareUserOperationRequest.js.map +1 -1
  29. package/_esm/clients/decorators/bundler.js +1 -1
  30. package/_esm/clients/decorators/bundler.js.map +1 -1
  31. package/_esm/clients/decorators/pimlico.js +3 -2
  32. package/_esm/clients/decorators/pimlico.js.map +1 -1
  33. package/_esm/clients/decorators/smartAccount.js +2 -2
  34. package/_esm/clients/decorators/smartAccount.js.map +1 -1
  35. package/_esm/utils/getAction.js +1 -1
  36. package/_esm/utils/getAction.js.map +1 -1
  37. package/_types/actions/bundler/estimateUserOperationGas.d.ts +2 -2
  38. package/_types/actions/bundler/estimateUserOperationGas.d.ts.map +1 -1
  39. package/_types/actions/pimlico/getUserOperationStatus.d.ts +2 -1
  40. package/_types/actions/pimlico/getUserOperationStatus.d.ts.map +1 -1
  41. package/_types/actions/pimlico/sendCompressedUserOperation.d.ts +35 -0
  42. package/_types/actions/pimlico/sendCompressedUserOperation.d.ts.map +1 -0
  43. package/_types/actions/pimlico.d.ts +3 -2
  44. package/_types/actions/pimlico.d.ts.map +1 -1
  45. package/_types/actions/smartAccount/prepareUserOperationRequest.d.ts +2 -1
  46. package/_types/actions/smartAccount/prepareUserOperationRequest.d.ts.map +1 -1
  47. package/_types/clients/decorators/bundler.d.ts +2 -1
  48. package/_types/clients/decorators/bundler.d.ts.map +1 -1
  49. package/_types/clients/decorators/pimlico.d.ts +27 -2
  50. package/_types/clients/decorators/pimlico.d.ts.map +1 -1
  51. package/_types/clients/decorators/smartAccount.d.ts +2 -1
  52. package/_types/clients/decorators/smartAccount.d.ts.map +1 -1
  53. package/_types/types/bundler.d.ts +27 -1
  54. package/_types/types/bundler.d.ts.map +1 -1
  55. package/_types/types/pimlico.d.ts +9 -0
  56. package/_types/types/pimlico.d.ts.map +1 -1
  57. package/_types/utils/getAction.d.ts +1 -1
  58. package/_types/utils/getAction.d.ts.map +1 -1
  59. package/actions/bundler/estimateUserOperationGas.ts +13 -7
  60. package/actions/pimlico/getUserOperationStatus.ts +2 -1
  61. package/actions/pimlico/sendCompressedUserOperation.ts +62 -0
  62. package/actions/pimlico.ts +11 -5
  63. package/actions/smartAccount/prepareUserOperationRequest.ts +11 -9
  64. package/clients/decorators/bundler.ts +8 -3
  65. package/clients/decorators/pimlico.ts +33 -1
  66. package/clients/decorators/smartAccount.ts +12 -6
  67. package/package.json +1 -1
  68. package/types/bundler.ts +28 -1
  69. package/types/pimlico.ts +9 -0
  70. package/utils/getAction.ts +5 -5
@@ -5,6 +5,7 @@ import { type GetUserOperationByHashParameters, type GetUserOperationByHashRetur
5
5
  import { type GetUserOperationReceiptParameters, type GetUserOperationReceiptReturnType } from "../../actions/bundler/getUserOperationReceipt.js";
6
6
  import { type SendUserOperationParameters } from "../../actions/bundler/sendUserOperation.js";
7
7
  import { type WaitForUserOperationReceiptParameters } from "../../actions/bundler/waitForUserOperationReceipt.js";
8
+ import type { StateOverrides } from "../../types/bundler.js";
8
9
  import type { Prettify } from "../../types/index.js";
9
10
  export type BundlerActions = {
10
11
  /**
@@ -58,7 +59,7 @@ export type BundlerActions = {
58
59
  *
59
60
  * // Return {preVerificationGas: 43492n, verificationGasLimit: 59436n, callGasLimit: 9000n}
60
61
  */
61
- estimateUserOperationGas: (args: Prettify<EstimateUserOperationGasParameters>) => Promise<Prettify<EstimateUserOperationGasReturnType>>;
62
+ estimateUserOperationGas: (args: Prettify<EstimateUserOperationGasParameters>, stateOverrides?: StateOverrides) => Promise<Prettify<EstimateUserOperationGasReturnType>>;
62
63
  /**
63
64
  *
64
65
  * Returns the supported entrypoints by the bundler service
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../clients/decorators/bundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,EAE1C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EAExC,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACH,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EAEzC,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACH,KAAK,2BAA2B,EAEnC,MAAM,4CAA4C,CAAA;AAEnD,OAAO,EACH,KAAK,qCAAqC,EAE7C,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,MAAM,cAAc,GAAG;IACzB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,iBAAiB,EAAE,CACf,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,wBAAwB,EAAE,CACtB,IAAI,EAAE,QAAQ,CAAC,kCAAkC,CAAC,KACjD,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAA;IAC1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oBAAoB,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,sBAAsB,EAAE,CACpB,IAAI,EAAE,QAAQ,CAAC,gCAAgC,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC/D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBAAuB,EAAE,CACrB,IAAI,EAAE,QAAQ,CAAC,iCAAiC,CAAC,KAChD,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,GAAG,IAAI,CAAC,CAAA;IAEhE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,2BAA2B,EAAE,CACzB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAA;CAC5D,CAAA;AAED,QAAA,MAAM,cAAc,WAAY,MAAM,KAAG,cAgBvC,CAAA;AAEF,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../../clients/decorators/bundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,EACH,KAAK,kCAAkC,EACvC,KAAK,kCAAkC,EAE1C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EAExC,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACH,KAAK,iCAAiC,EACtC,KAAK,iCAAiC,EAEzC,MAAM,kDAAkD,CAAA;AACzD,OAAO,EACH,KAAK,2BAA2B,EAEnC,MAAM,4CAA4C,CAAA;AAEnD,OAAO,EACH,KAAK,qCAAqC,EAE7C,MAAM,sDAAsD,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAGpD,MAAM,MAAM,cAAc,GAAG;IACzB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,iBAAiB,EAAE,CACf,IAAI,EAAE,QAAQ,CAAC,2BAA2B,CAAC,KAC1C,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,wBAAwB,EAAE,CACtB,IAAI,EAAE,QAAQ,CAAC,kCAAkC,CAAC,EAClD,cAAc,CAAC,EAAE,cAAc,KAC9B,OAAO,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC,CAAA;IAC1D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,oBAAoB,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,sBAAsB,EAAE,CACpB,IAAI,EAAE,QAAQ,CAAC,gCAAgC,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC/D;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,uBAAuB,EAAE,CACrB,IAAI,EAAE,QAAQ,CAAC,iCAAiC,CAAC,KAChD,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,GAAG,IAAI,CAAC,CAAA;IAEhE;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,2BAA2B,EAAE,CACzB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAA;CAC5D,CAAA;AAED,QAAA,MAAM,cAAc,WAAY,MAAM,KAAG,cAmBvC,CAAA;AAEF,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
- import type { Client } from "viem";
2
- import { type ValidateSponsorshipPolicies, type ValidateSponsorshipPoliciesParameters } from "../../actions/pimlico.js";
1
+ import type { Client, Hash } from "viem";
2
+ import { type SendCompressedUserOperationParameters, type ValidateSponsorshipPolicies, type ValidateSponsorshipPoliciesParameters } from "../../actions/pimlico.js";
3
3
  import { type GetUserOperationGasPriceReturnType } from "../../actions/pimlico/getUserOperationGasPrice.js";
4
4
  import { type GetUserOperationStatusParameters, type GetUserOperationStatusReturnType } from "../../actions/pimlico/getUserOperationStatus.js";
5
5
  import { type PimlicoSponsorUserOperationParameters, type SponsorUserOperationReturnType } from "../../actions/pimlico/sponsorUserOperation.js";
@@ -45,6 +45,31 @@ export type PimlicoBundlerActions = {
45
45
  * await bundlerClient.getUserOperationStatus({ hash: userOpHash })
46
46
  */
47
47
  getUserOperationStatus: (args: Prettify<GetUserOperationStatusParameters>) => Promise<Prettify<GetUserOperationStatusReturnType>>;
48
+ /**
49
+ * Sends a compressed user operation to the bundler
50
+ *
51
+ * - Docs: https://docs.pimlico.io/permissionless/reference/pimlico-bundler-actions/sendCompressedUserOperation
52
+ *
53
+ * @param args {@link SendCompressedUserOperationParameters}.
54
+ * @returns UserOpHash that you can use to track user operation as {@link Hash}.
55
+ *
56
+ * @example
57
+ * import { createClient } from "viem"
58
+ * import { pimlicoBundlerActions } from "permissionless/actions/pimlico"
59
+ *
60
+ * const bundlerClient = createClient({
61
+ * chain: goerli,
62
+ * transport: http("https://api.pimlico.io/v1/goerli/rpc?apikey=YOUR_API_KEY_HERE")
63
+ * }).extend(pimlicoBundlerActions)
64
+ *
65
+ * const userOpHash = await bundlerClient.sendCompressedUserOperation({
66
+ * compressedUserOperation,
67
+ * inflatorAddress,
68
+ * entryPoint
69
+ * })
70
+ * // Return '0xe9fad2cd67f9ca1d0b7a6513b2a42066784c8df938518da2b51bb8cc9a89ea34'
71
+ */
72
+ sendCompressedUserOperation: (args: Prettify<SendCompressedUserOperationParameters>) => Promise<Hash>;
48
73
  };
49
74
  export declare const pimlicoBundlerActions: (client: Client) => PimlicoBundlerActions;
50
75
  export type PimlicoPaymasterClientActions = {
@@ -1 +1 @@
1
- {"version":3,"file":"pimlico.d.ts","sourceRoot":"","sources":["../../../clients/decorators/pimlico.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,MAAM,CAAA;AACxC,OAAO,EACH,KAAK,2BAA2B,EAChC,KAAK,qCAAqC,EAE7C,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EAExC,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACH,KAAK,qCAAqC,EAC1C,KAAK,8BAA8B,EAEtC,MAAM,+CAA+C,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAMpD,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;;;;;;;;;;;;;;;OAkBG;IACH,wBAAwB,EAAE,MAAM,OAAO,CACnC,QAAQ,CAAC,kCAAkC,CAAC,CAC/C,CAAA;IACD;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,EAAE,CACpB,IAAI,EAAE,QAAQ,CAAC,gCAAgC,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAA;CAC3D,CAAA;AAED,eAAO,MAAM,qBAAqB,WACtB,MAAM,KACf,qBAKD,CAAA;AAEF,MAAM,MAAM,6BAA6B,GAAG;IACxC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAA;IAEtD,2BAA2B,EAAE,CACzB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAA;CACxD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,uBAAuB,WACxB,MAAM,KACf,6BAMD,CAAA;AAEF;;GAEG"}
1
+ {"version":3,"file":"pimlico.d.ts","sourceRoot":"","sources":["../../../clients/decorators/pimlico.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,EACH,KAAK,qCAAqC,EAC1C,KAAK,2BAA2B,EAChC,KAAK,qCAAqC,EAG7C,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,mDAAmD,CAAA;AAC1D,OAAO,EACH,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EAExC,MAAM,iDAAiD,CAAA;AACxD,OAAO,EACH,KAAK,qCAAqC,EAC1C,KAAK,8BAA8B,EAEtC,MAAM,+CAA+C,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAMpD,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;;;;;;;;;;;;;;;OAkBG;IACH,wBAAwB,EAAE,MAAM,OAAO,CACnC,QAAQ,CAAC,kCAAkC,CAAC,CAC/C,CAAA;IACD;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,EAAE,CACpB,IAAI,EAAE,QAAQ,CAAC,gCAAgC,CAAC,KAC/C,OAAO,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAA;IACxD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,2BAA2B,EAAE,CACzB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,IAAI,CAAC,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,qBAAqB,WACtB,MAAM,KACf,qBAQD,CAAA;AAEF,MAAM,MAAM,6BAA6B,GAAG;IACxC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,oBAAoB,EAAE,CAClB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC,CAAA;IAEtD,2BAA2B,EAAE,CACzB,IAAI,EAAE,QAAQ,CAAC,qCAAqC,CAAC,KACpD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAA;CACxD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,uBAAuB,WACxB,MAAM,KACf,6BAMD,CAAA;AAEF;;GAEG"}
@@ -8,6 +8,7 @@ import { sendUserOperation } from "../../actions/smartAccount/sendUserOperation.
8
8
  import { signMessage } from "../../actions/smartAccount/signMessage.js";
9
9
  import { signTypedData } from "../../actions/smartAccount/signTypedData.js";
10
10
  import { writeContract } from "../../actions/smartAccount/writeContract.js";
11
+ import type { StateOverrides } from "../../types/bundler.js";
11
12
  import type { Prettify } from "../../types/index.js";
12
13
  export type SmartAccountActions<TChain extends Chain | undefined = Chain | undefined, TSmartAccount extends SmartAccount | undefined = SmartAccount | undefined> = {
13
14
  /**
@@ -273,7 +274,7 @@ export type SmartAccountActions<TChain extends Chain | undefined = Chain | undef
273
274
  * const hash = await client.writeContract(request)
274
275
  */
275
276
  writeContract: <const TAbi extends Abi | readonly unknown[], TFunctionName extends ContractFunctionName<TAbi, "nonpayable" | "payable"> = ContractFunctionName<TAbi, "nonpayable" | "payable">, TArgs extends ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName> = ContractFunctionArgs<TAbi, "nonpayable" | "payable", TFunctionName>, TChainOverride extends Chain | undefined = undefined>(args: WriteContractParameters<TAbi, TFunctionName, TArgs, TChain, TSmartAccount, TChainOverride>) => ReturnType<typeof writeContract<TChain, TSmartAccount, TAbi, TFunctionName, TArgs, TChainOverride>>;
276
- prepareUserOperationRequest: <TTransport extends Transport>(args: Prettify<Parameters<typeof prepareUserOperationRequest<TTransport, TChain, TSmartAccount>>[1]>) => Promise<Prettify<PrepareUserOperationRequestReturnType>>;
277
+ prepareUserOperationRequest: <TTransport extends Transport>(args: Prettify<Parameters<typeof prepareUserOperationRequest<TTransport, TChain, TSmartAccount>>[1]>, stateOverrides?: StateOverrides) => Promise<Prettify<PrepareUserOperationRequestReturnType>>;
277
278
  sendUserOperation: <TTransport extends Transport>(args: Prettify<Parameters<typeof sendUserOperation<TTransport, TChain, TSmartAccount>>[1]>) => Promise<Hash>;
278
279
  /**
279
280
  * Creates, signs, and sends a new transaction to the network.
@@ -1 +1 @@
1
- {"version":3,"file":"smartAccount.d.ts","sourceRoot":"","sources":["../../../clients/decorators/smartAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartAccount.d.ts","sourceRoot":"","sources":["../../../clients/decorators/smartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,KAAK,EACL,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,IAAI,EACJ,yBAAyB,EACzB,SAAS,EACT,SAAS,EACT,uBAAuB,EAC1B,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EACH,KAAK,uCAAuC,EAC5C,gBAAgB,EACnB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEH,cAAc,EACjB,MAAM,8CAA8C,CAAA;AACrD,OAAO,EACH,KAAK,qCAAqC,EAC1C,KAAK,8BAA8B,EACnC,2BAA2B,EAC9B,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAEH,eAAe,EAClB,MAAM,+CAA+C,CAAA;AACtD,OAAO,EAEH,iBAAiB,EACpB,MAAM,iDAAiD,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAC3E,OAAO,EAEH,aAAa,EAChB,MAAM,6CAA6C,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,MAAM,mBAAmB,CAC3B,MAAM,SAAS,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,EACpD,aAAa,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,IACzE;IACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,eAAe,EAAE,CAAC,cAAc,SAAS,KAAK,GAAG,SAAS,EACtD,IAAI,EAAE,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,KACrE,UAAU,CACX,OAAO,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC,CAChE,CAAA;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,WAAW,EAAE,CACT,IAAI,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,KAC7D,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+FG;IACH,aAAa,EAAE,CACX,KAAK,CAAC,UAAU,SAAS,SAAS,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAC/D,YAAY,SAAS,MAAM,EAE3B,IAAI,EAAE,UAAU,CACZ,OAAO,aAAa,CAChB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,aAAa,CAChB,CACJ,CAAC,CAAC,CAAC,KACH,UAAU,CACX,OAAO,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC,CACxE,CAAA;IACD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,cAAc,EAAE,CACZ,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAC3C,cAAc,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,EAEpD,IAAI,EAAE,QAAQ,CACV,wBAAwB,CACpB,IAAI,EACJ,MAAM,EACN,aAAa,EACb,cAAc,CACjB,CACJ,KACA,UAAU,CAAC,OAAO,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;IAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+CG;IACH,aAAa,EAAE,CACX,KAAK,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,EAC3C,aAAa,SAAS,oBAAoB,CACtC,IAAI,EACJ,YAAY,GAAG,SAAS,CAC3B,GAAG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC,EACxD,KAAK,SAAS,oBAAoB,CAC9B,IAAI,EACJ,YAAY,GAAG,SAAS,EACxB,aAAa,CAChB,GAAG,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,EAAE,aAAa,CAAC,EACvE,cAAc,SAAS,KAAK,GAAG,SAAS,GAAG,SAAS,EAEpD,IAAI,EAAE,uBAAuB,CACzB,IAAI,EACJ,aAAa,EACb,KAAK,EACL,MAAM,EACN,aAAa,EACb,cAAc,CACjB,KACA,UAAU,CACX,OAAO,aAAa,CAChB,MAAM,EACN,aAAa,EACb,IAAI,EACJ,aAAa,EACb,KAAK,EACL,cAAc,CACjB,CACJ,CAAA;IACD,2BAA2B,EAAE,CAAC,UAAU,SAAS,SAAS,EACtD,IAAI,EAAE,QAAQ,CACV,UAAU,CACN,OAAO,2BAA2B,CAC9B,UAAU,EACV,MAAM,EACN,aAAa,CAChB,CACJ,CAAC,CAAC,CAAC,CACP,EACD,cAAc,CAAC,EAAE,cAAc,KAC9B,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC,CAAA;IAC7D,iBAAiB,EAAE,CAAC,UAAU,SAAS,SAAS,EAC5C,IAAI,EAAE,QAAQ,CACV,UAAU,CACN,OAAO,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,CAC9D,CAAC,CAAC,CAAC,CACP,KACA,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,gBAAgB,EAAE,CACd,IAAI,EAAE,QAAQ,CAAC,uCAAuC,CAAC,aAAa,CAAC,CAAC,KACrE,UAAU,CAAC,OAAO,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;CAClE,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAChC,oBAAoB,EACvB,EAAE,8BAA8B,oQA+ChC"}
@@ -14,7 +14,20 @@ export type BundlerRpcSchema = [
14
14
  Method: "eth_estimateUserOperationGas";
15
15
  Parameters: [
16
16
  userOperation: PartialBy<UserOperationWithBigIntAsHex, "callGasLimit" | "preVerificationGas" | "verificationGasLimit">,
17
- entryPoint: Address
17
+ entryPoint: Address,
18
+ stateOverrides?: {
19
+ [x: string]: {
20
+ balance?: Hex;
21
+ nonce?: Hex;
22
+ code?: Hex;
23
+ state?: {
24
+ [x: Hex]: Hex;
25
+ };
26
+ stateDiff?: {
27
+ [x: Hex]: Hex;
28
+ };
29
+ };
30
+ }
18
31
  ];
19
32
  ReturnType: {
20
33
  preVerificationGas: Hex;
@@ -81,5 +94,18 @@ type UserOperationReceiptWithBigIntAsHex = {
81
94
  topics: Hex[];
82
95
  }[];
83
96
  };
97
+ export type StateOverrides = {
98
+ [x: string]: {
99
+ balance?: bigint | undefined;
100
+ nonce?: bigint | number | undefined;
101
+ code?: Hex | undefined;
102
+ state?: {
103
+ [x: Hex]: Hex;
104
+ };
105
+ stateDiff?: {
106
+ [x: Hex]: Hex;
107
+ };
108
+ };
109
+ };
84
110
  export {};
85
111
  //# sourceMappingURL=bundler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../types/bundler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC3B;QACI,MAAM,EAAE,uBAAuB,CAAA;QAC/B,UAAU,EAAE;YACR,aAAa,EAAE,4BAA4B;YAC3C,UAAU,EAAE,OAAO;SACtB,CAAA;QACD,UAAU,EAAE,IAAI,CAAA;KACnB;IACD;QACI,MAAM,EAAE,8BAA8B,CAAA;QACtC,UAAU,EAAE;YACR,aAAa,EAAE,SAAS,CACpB,4BAA4B,EAC5B,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,CACjE;YACD,UAAU,EAAE,OAAO;SACtB,CAAA;QACD,UAAU,EAAE;YACR,kBAAkB,EAAE,GAAG,CAAA;YACvB,oBAAoB,EAAE,GAAG,CAAA;YACzB,YAAY,EAAE,GAAG,CAAA;SACpB,CAAA;KACJ;IACD;QACI,MAAM,EAAE,0BAA0B,CAAA;QAClC,UAAU,EAAE,EAAE,CAAA;QACd,UAAU,EAAE,OAAO,EAAE,CAAA;KACxB;IACD;QACI,MAAM,EAAE,aAAa,CAAA;QACrB,UAAU,EAAE,EAAE,CAAA;QACd,UAAU,EAAE,GAAG,CAAA;KAClB;IACD;QACI,MAAM,EAAE,4BAA4B,CAAA;QACpC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACxB,UAAU,EAAE;YACR,aAAa,EAAE,4BAA4B,CAAA;YAC3C,UAAU,EAAE,OAAO,CAAA;YACnB,eAAe,EAAE,IAAI,CAAA;YACrB,SAAS,EAAE,IAAI,CAAA;YACf,WAAW,EAAE,GAAG,CAAA;SACnB,CAAA;KACJ;IACD;QACI,MAAM,EAAE,6BAA6B,CAAA;QACrC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACxB,UAAU,EAAE,mCAAmC,CAAA;KAClD;CACJ,CAAA;AAED,KAAK,mCAAmC,GAAG;IACvC,UAAU,EAAE,IAAI,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,GAAG,CAAA;IACV,aAAa,EAAE,GAAG,CAAA;IAClB,aAAa,EAAE,GAAG,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE;QACL,eAAe,EAAE,GAAG,CAAA;QACpB,gBAAgB,EAAE,GAAG,CAAA;QACrB,SAAS,EAAE,IAAI,CAAA;QACf,WAAW,EAAE,GAAG,CAAA;QAChB,IAAI,EAAE,OAAO,CAAA;QACb,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;QAClB,iBAAiB,EAAE,GAAG,CAAA;QACtB,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;QACrB,OAAO,EAAE,GAAG,CAAA;QACZ,eAAe,EAAE,OAAO,GAAG,IAAI,CAAA;QAC/B,SAAS,EAAE,GAAG,CAAA;QACd,iBAAiB,EAAE,GAAG,CAAA;KACzB,CAAA;IACD,IAAI,EAAE;QACF,IAAI,EAAE,GAAG,CAAA;QACT,WAAW,EAAE,GAAG,CAAA;QAChB,SAAS,EAAE,IAAI,CAAA;QACf,eAAe,EAAE,IAAI,CAAA;QACrB,QAAQ,EAAE,GAAG,CAAA;QACb,gBAAgB,EAAE,GAAG,CAAA;QACrB,OAAO,EAAE,OAAO,CAAA;QAChB,MAAM,EAAE,GAAG,EAAE,CAAA;KAChB,EAAE,CAAA;CACN,CAAA"}
1
+ {"version":3,"file":"bundler.d.ts","sourceRoot":"","sources":["../../types/bundler.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,15 @@ export type PimlicoBundlerRpcSchema = [
29
29
  Method: "pimlico_getUserOperationStatus";
30
30
  Parameters: [hash: Hash];
31
31
  ReturnType: PimlicoUserOperationStatus;
32
+ },
33
+ {
34
+ Method: "pimlico_sendCompressedUserOperation";
35
+ Parameters: [
36
+ compressedUserOperation: Hex,
37
+ inflatorAddress: Address,
38
+ entryPoint: Address
39
+ ];
40
+ ReturnType: Hash;
32
41
  }
33
42
  ];
34
43
  export type PimlicoPaymasterRpcSchema = [
@@ -1 +1 @@
1
- {"version":3,"file":"pimlico.d.ts","sourceRoot":"","sources":["../../types/pimlico.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAEtE,KAAK,2CAA2C,GAAG;IAC/C,IAAI,EAAE;QACF,YAAY,EAAE,GAAG,CAAA;QACjB,oBAAoB,EAAE,GAAG,CAAA;KAC5B,CAAA;IACD,QAAQ,EAAE;QACN,YAAY,EAAE,GAAG,CAAA;QACjB,oBAAoB,EAAE,GAAG,CAAA;KAC5B,CAAA;IACD,IAAI,EAAE;QACF,YAAY,EAAE,GAAG,CAAA;QACjB,oBAAoB,EAAE,GAAG,CAAA;KAC5B,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,MAAM,EACA,WAAW,GACX,eAAe,GACf,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,CAAA;IACd,eAAe,EAAE,IAAI,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC;QACI,MAAM,EAAE,kCAAkC,CAAA;QAC1C,UAAU,EAAE,EAAE,CAAA;QACd,UAAU,EAAE,2CAA2C,CAAA;KAC1D;IACD;QACI,MAAM,EAAE,gCAAgC,CAAA;QACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACxB,UAAU,EAAE,0BAA0B,CAAA;KACzC;CACJ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC;QACI,MAAM,EAAE,yBAAyB,CAAA;QACjC,UAAU,EAAE;YACR,aAAa,EAAE,SAAS,CACpB,4BAA4B,EAC1B,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CACvB;YACD,UAAU,EAAE,OAAO;YACnB,QAAQ,CAAC,EAAE;gBACP,mBAAmB,CAAC,EAAE,MAAM,CAAA;aAC/B;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;SACpB,CAAA;KACJ;IACD;QACI,MAAM,EAAE,gCAAgC,CAAA;QACxC,UAAU,EAAE;YACR,aAAa,EAAE,4BAA4B;YAC3C,UAAU,EAAE,OAAO;YACnB,oBAAoB,EAAE,MAAM,EAAE;SACjC,CAAA;QACD,UAAU,EAAE;YACR,mBAAmB,EAAE,MAAM,CAAA;YAC3B,IAAI,EAAE;gBACF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;gBACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;gBACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;aAC7B,CAAA;SACJ,EAAE,CAAA;KACN;CACJ,CAAA"}
1
+ {"version":3,"file":"pimlico.d.ts","sourceRoot":"","sources":["../../types/pimlico.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAEtE,KAAK,2CAA2C,GAAG;IAC/C,IAAI,EAAE;QACF,YAAY,EAAE,GAAG,CAAA;QACjB,oBAAoB,EAAE,GAAG,CAAA;KAC5B,CAAA;IACD,QAAQ,EAAE;QACN,YAAY,EAAE,GAAG,CAAA;QACjB,oBAAoB,EAAE,GAAG,CAAA;KAC5B,CAAA;IACD,IAAI,EAAE;QACF,YAAY,EAAE,GAAG,CAAA;QACjB,oBAAoB,EAAE,GAAG,CAAA;KAC5B,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACrC,MAAM,EACA,WAAW,GACX,eAAe,GACf,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,CAAA;IACd,eAAe,EAAE,IAAI,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IAClC;QACI,MAAM,EAAE,kCAAkC,CAAA;QAC1C,UAAU,EAAE,EAAE,CAAA;QACd,UAAU,EAAE,2CAA2C,CAAA;KAC1D;IACD;QACI,MAAM,EAAE,gCAAgC,CAAA;QACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACxB,UAAU,EAAE,0BAA0B,CAAA;KACzC;IACD;QACI,MAAM,EAAE,qCAAqC,CAAA;QAC7C,UAAU,EAAE;YACR,uBAAuB,EAAE,GAAG;YAC5B,eAAe,EAAE,OAAO;YACxB,UAAU,EAAE,OAAO;SACtB,CAAA;QACD,UAAU,EAAE,IAAI,CAAA;KACnB;CACJ,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACpC;QACI,MAAM,EAAE,yBAAyB,CAAA;QACjC,UAAU,EAAE;YACR,aAAa,EAAE,SAAS,CACpB,4BAA4B,EAC1B,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,kBAAkB,CACvB;YACD,UAAU,EAAE,OAAO;YACnB,QAAQ,CAAC,EAAE;gBACP,mBAAmB,CAAC,EAAE,MAAM,CAAA;aAC/B;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;SACpB,CAAA;KACJ;IACD;QACI,MAAM,EAAE,gCAAgC,CAAA;QACxC,UAAU,EAAE;YACR,aAAa,EAAE,4BAA4B;YAC3C,UAAU,EAAE,OAAO;YACnB,oBAAoB,EAAE,MAAM,EAAE;SACjC,CAAA;QACD,UAAU,EAAE;YACR,mBAAmB,EAAE,MAAM,CAAA;YAC3B,IAAI,EAAE;gBACF,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;gBACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;gBACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;aAC7B,CAAA;SACJ,EAAE,CAAA;KACN;CACJ,CAAA"}
@@ -1,3 +1,3 @@
1
1
  import type { Client } from "viem";
2
- export declare function getAction<params extends {}, returnType extends {}>(client: Client, action: (_: any, params: params) => returnType, actionName?: string): (params: params) => returnType;
2
+ export declare function getAction<params extends any[], returnType extends {}>(client: Client, action: (_: any, ...params: params) => returnType, actionName?: string): (...params: params) => returnType;
3
3
  //# sourceMappingURL=getAction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getAction.d.ts","sourceRoot":"","sources":["../../utils/getAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,wBAAgB,SAAS,CAAC,MAAM,SAAS,EAAE,EAAE,UAAU,SAAS,EAAE,EAC9D,MAAM,EAAE,MAAM,EAEd,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,UAAU,EAC9C,UAAU,GAAE,MAAoB,uBAEP,UAAU,CAMtC"}
1
+ {"version":3,"file":"getAction.d.ts","sourceRoot":"","sources":["../../utils/getAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAElC,wBAAgB,SAAS,CAAC,MAAM,SAAS,GAAG,EAAE,EAAE,UAAU,SAAS,EAAE,EACjE,MAAM,EAAE,MAAM,EAEd,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,MAAM,KAAK,UAAU,EACjD,UAAU,GAAE,MAAoB,0BAEJ,UAAU,CAMzC"}
@@ -1,10 +1,9 @@
1
1
  import type { Account, Address, Chain, Client, Transport } from "viem"
2
2
  import type { PartialBy } from "viem/types/utils"
3
3
  import type { BundlerClient } from "../../clients/createBundlerClient.js"
4
- import type { BundlerRpcSchema } from "../../types/bundler.js"
4
+ import type { BundlerRpcSchema, StateOverrides } from "../../types/bundler.js"
5
5
  import type { Prettify } from "../../types/index.js"
6
6
  import type { UserOperation } from "../../types/userOperation.js"
7
- import type { UserOperationWithBigIntAsHex } from "../../types/userOperation.js"
8
7
  import { deepHexlify } from "../../utils/deepHexlify.js"
9
8
 
10
9
  export type EstimateUserOperationGasParameters = {
@@ -54,16 +53,23 @@ export const estimateUserOperationGas = async <
54
53
  TAccount extends Account | undefined = Account | undefined
55
54
  >(
56
55
  client: Client<TTransport, TChain, TAccount, BundlerRpcSchema>,
57
- args: Prettify<EstimateUserOperationGasParameters>
56
+ args: Prettify<EstimateUserOperationGasParameters>,
57
+ stateOverrides?: StateOverrides
58
58
  ): Promise<Prettify<EstimateUserOperationGasReturnType>> => {
59
59
  const { userOperation, entryPoint } = args
60
60
 
61
+ const userOperationWithBigIntAsHex = deepHexlify(userOperation)
62
+ const stateOverridesWithBigIntAsHex = deepHexlify(stateOverrides)
63
+
61
64
  const response = await client.request({
62
65
  method: "eth_estimateUserOperationGas",
63
- params: [
64
- deepHexlify(userOperation) as UserOperationWithBigIntAsHex,
65
- entryPoint as Address
66
- ]
66
+ params: stateOverrides
67
+ ? [
68
+ userOperationWithBigIntAsHex,
69
+ entryPoint,
70
+ stateOverridesWithBigIntAsHex
71
+ ]
72
+ : [userOperationWithBigIntAsHex, entryPoint]
67
73
  })
68
74
 
69
75
  return {
@@ -25,11 +25,12 @@ export type GetUserOperationStatusReturnType = PimlicoUserOperationStatus
25
25
  * @example
26
26
  * import { createClient } from "viem"
27
27
  * import { getUserOperationStatus } from "permissionless/actions/pimlico"
28
+ * import { pimlicoBundlerActions } from 'permissionless/actions/pimlico'
28
29
  *
29
30
  * const bundlerClient = createClient({
30
31
  * chain: goerli,
31
32
  * transport: http("https://api.pimlico.io/v2/goerli/rpc?apikey=YOUR_API_KEY_HERE")
32
- * })
33
+ * }).extend(pimlicoBundlerActions)
33
34
  *
34
35
  * await getUserOperationStatus(bundlerClient, { hash: userOpHash })
35
36
  *
@@ -0,0 +1,62 @@
1
+ import type {
2
+ Account,
3
+ Address,
4
+ Chain,
5
+ Client,
6
+ Hash,
7
+ Hex,
8
+ Transport
9
+ } from "viem"
10
+ import type { Prettify } from "../../types/index.js"
11
+ import { type PimlicoBundlerRpcSchema } from "../../types/pimlico.js"
12
+
13
+ export type SendCompressedUserOperationParameters = {
14
+ compressedUserOperation: Hex
15
+ inflatorAddress: Address
16
+ entryPoint: Address
17
+ }
18
+
19
+ /**
20
+ * Sends a compressed user operation to the bundler
21
+ *
22
+ * - Docs: https://docs.pimlico.io/permissionless/reference/pimlico-bundler-actions/sendCompressedUserOperation
23
+ *
24
+ * @param client {@link PimlicoBundlerClient} that you created using viem's createClient whose transport url is pointing to the Pimlico's bundler.
25
+ * @param args {@link SendCompressedUserOperationParameters}.
26
+ * @returns UserOpHash that you can use to track user operation as {@link Hash}.
27
+ *
28
+ * @example
29
+ * import { pimlicoBundlerActions, sendCompressedUserOperation } from 'permissionless/actions/pimlico'
30
+ * import { createClient } from "viem"
31
+ *
32
+ * const bundlerClient = createClient({
33
+ * chain: goerli,
34
+ * transport: http("https://api.pimlico.io/v2/goerli/rpc?apikey=YOUR_API_KEY_HERE")
35
+ * }).extend(pimlicoBundlerActions)
36
+ *
37
+ * const userOpHash = await sendCompressedUserOperation(bundlerClient, {
38
+ * compressedUserOperation,
39
+ * inflatorAddress,
40
+ * entryPoint
41
+ * })
42
+ * // Return '0xe9fad2cd67f9ca1d0b7a6513b2a42066784c8df938518da2b51bb8cc9a89ea34'
43
+ */
44
+ export const sendCompressedUserOperation = async <
45
+ TTransport extends Transport = Transport,
46
+ TChain extends Chain | undefined = Chain | undefined,
47
+ TAccount extends Account | undefined = Account | undefined
48
+ >(
49
+ client: Client<TTransport, TChain, TAccount, PimlicoBundlerRpcSchema>,
50
+ args: Prettify<SendCompressedUserOperationParameters>
51
+ ): Promise<Hash> => {
52
+ const { compressedUserOperation, inflatorAddress, entryPoint } = args
53
+
54
+ return client.request({
55
+ method: "pimlico_sendCompressedUserOperation",
56
+ params: [
57
+ compressedUserOperation as Hex,
58
+ inflatorAddress as Address,
59
+ entryPoint as Address
60
+ ]
61
+ })
62
+ }
@@ -7,6 +7,10 @@ import {
7
7
  type GetUserOperationStatusReturnType,
8
8
  getUserOperationStatus
9
9
  } from "./pimlico/getUserOperationStatus.js"
10
+ import {
11
+ type SendCompressedUserOperationParameters,
12
+ sendCompressedUserOperation
13
+ } from "./pimlico/sendCompressedUserOperation.js"
10
14
  import {
11
15
  type PimlicoSponsorUserOperationParameters,
12
16
  type SponsorUserOperationReturnType,
@@ -32,19 +36,21 @@ export type {
32
36
  GetUserOperationGasPriceReturnType,
33
37
  GetUserOperationStatusParameters,
34
38
  GetUserOperationStatusReturnType,
35
- PimlicoSponsorUserOperationParameters,
36
- SponsorUserOperationReturnType,
37
39
  PimlicoBundlerActions,
38
40
  PimlicoPaymasterClientActions,
39
- ValidateSponsorshipPoliciesParameters,
40
- ValidateSponsorshipPolicies
41
+ PimlicoSponsorUserOperationParameters,
42
+ SendCompressedUserOperationParameters,
43
+ SponsorUserOperationReturnType,
44
+ ValidateSponsorshipPolicies,
45
+ ValidateSponsorshipPoliciesParameters
41
46
  }
42
47
 
43
48
  export {
44
49
  getUserOperationGasPrice,
45
50
  getUserOperationStatus,
46
- sponsorUserOperation,
47
51
  pimlicoBundlerActions,
48
52
  pimlicoPaymasterActions,
53
+ sendCompressedUserOperation,
54
+ sponsorUserOperation,
49
55
  validateSponsorshipPolicies
50
56
  }
@@ -1,6 +1,7 @@
1
1
  import type { Address, Chain, Client, Transport } from "viem"
2
2
  import { estimateFeesPerGas } from "viem/actions"
3
3
  import type { SmartAccount } from "../../accounts/types.js"
4
+ import type { StateOverrides } from "../../types/bundler.js"
4
5
  import type {
5
6
  GetAccountParameter,
6
7
  PartialBy,
@@ -48,7 +49,8 @@ export async function prepareUserOperationRequest<
48
49
  TAccount extends SmartAccount | undefined = SmartAccount | undefined
49
50
  >(
50
51
  client: Client<TTransport, TChain, TAccount>,
51
- args: Prettify<PrepareUserOperationRequestParameters<TAccount>>
52
+ args: Prettify<PrepareUserOperationRequestParameters<TAccount>>,
53
+ stateOverrides?: StateOverrides
52
54
  ): Promise<Prettify<PrepareUserOperationRequestReturnType>> {
53
55
  const {
54
56
  account: account_ = client.account,
@@ -105,15 +107,15 @@ export async function prepareUserOperationRequest<
105
107
  !userOperation.verificationGasLimit ||
106
108
  !userOperation.preVerificationGas
107
109
  ) {
108
- const gasParameters = await getAction(
109
- client,
110
- estimateUserOperationGas
111
- )({
112
- userOperation: {
113
- ...userOperation
110
+ const gasParameters = await getAction(client, estimateUserOperationGas)(
111
+ {
112
+ userOperation: {
113
+ ...userOperation
114
+ },
115
+ entryPoint: account.entryPoint
114
116
  },
115
- entryPoint: account.entryPoint
116
- })
117
+ stateOverrides
118
+ )
117
119
 
118
120
  userOperation.callGasLimit =
119
121
  userOperation.callGasLimit || gasParameters.callGasLimit
@@ -25,6 +25,7 @@ import {
25
25
  type WaitForUserOperationReceiptParameters,
26
26
  waitForUserOperationReceipt
27
27
  } from "../../actions/bundler/waitForUserOperationReceipt.js"
28
+ import type { StateOverrides } from "../../types/bundler.js"
28
29
  import type { Prettify } from "../../types/index.js"
29
30
  import type { BundlerClient } from "../createBundlerClient.js"
30
31
 
@@ -83,7 +84,8 @@ export type BundlerActions = {
83
84
  * // Return {preVerificationGas: 43492n, verificationGasLimit: 59436n, callGasLimit: 9000n}
84
85
  */
85
86
  estimateUserOperationGas: (
86
- args: Prettify<EstimateUserOperationGasParameters>
87
+ args: Prettify<EstimateUserOperationGasParameters>,
88
+ stateOverrides?: StateOverrides
87
89
  ) => Promise<Prettify<EstimateUserOperationGasReturnType>>
88
90
  /**
89
91
  *
@@ -207,8 +209,11 @@ const bundlerActions = (client: Client): BundlerActions => ({
207
209
  sendUserOperation: async (
208
210
  args: SendUserOperationParameters
209
211
  ): Promise<Hash> => sendUserOperation(client as BundlerClient, args),
210
- estimateUserOperationGas: (args: EstimateUserOperationGasParameters) =>
211
- estimateUserOperationGas(client as BundlerClient, args),
212
+ estimateUserOperationGas: (
213
+ args: EstimateUserOperationGasParameters,
214
+ stateOverrides
215
+ ) =>
216
+ estimateUserOperationGas(client as BundlerClient, args, stateOverrides),
212
217
  supportedEntryPoints: (): Promise<Address[]> =>
213
218
  supportedEntryPoints(client as BundlerClient),
214
219
  chainId: () => chainId(client as BundlerClient),
@@ -1,7 +1,9 @@
1
1
  import type { Client, Hash } from "viem"
2
2
  import {
3
+ type SendCompressedUserOperationParameters,
3
4
  type ValidateSponsorshipPolicies,
4
5
  type ValidateSponsorshipPoliciesParameters,
6
+ sendCompressedUserOperation,
5
7
  validateSponsorshipPolicies
6
8
  } from "../../actions/pimlico.js"
7
9
  import {
@@ -69,6 +71,33 @@ export type PimlicoBundlerActions = {
69
71
  getUserOperationStatus: (
70
72
  args: Prettify<GetUserOperationStatusParameters>
71
73
  ) => Promise<Prettify<GetUserOperationStatusReturnType>>
74
+ /**
75
+ * Sends a compressed user operation to the bundler
76
+ *
77
+ * - Docs: https://docs.pimlico.io/permissionless/reference/pimlico-bundler-actions/sendCompressedUserOperation
78
+ *
79
+ * @param args {@link SendCompressedUserOperationParameters}.
80
+ * @returns UserOpHash that you can use to track user operation as {@link Hash}.
81
+ *
82
+ * @example
83
+ * import { createClient } from "viem"
84
+ * import { pimlicoBundlerActions } from "permissionless/actions/pimlico"
85
+ *
86
+ * const bundlerClient = createClient({
87
+ * chain: goerli,
88
+ * transport: http("https://api.pimlico.io/v1/goerli/rpc?apikey=YOUR_API_KEY_HERE")
89
+ * }).extend(pimlicoBundlerActions)
90
+ *
91
+ * const userOpHash = await bundlerClient.sendCompressedUserOperation({
92
+ * compressedUserOperation,
93
+ * inflatorAddress,
94
+ * entryPoint
95
+ * })
96
+ * // Return '0xe9fad2cd67f9ca1d0b7a6513b2a42066784c8df938518da2b51bb8cc9a89ea34'
97
+ */
98
+ sendCompressedUserOperation: (
99
+ args: Prettify<SendCompressedUserOperationParameters>
100
+ ) => Promise<Hash>
72
101
  }
73
102
 
74
103
  export const pimlicoBundlerActions = (
@@ -77,7 +106,10 @@ export const pimlicoBundlerActions = (
77
106
  getUserOperationGasPrice: async () =>
78
107
  getUserOperationGasPrice(client as PimlicoBundlerClient),
79
108
  getUserOperationStatus: async (args: GetUserOperationStatusParameters) =>
80
- getUserOperationStatus(client as PimlicoBundlerClient, args)
109
+ getUserOperationStatus(client as PimlicoBundlerClient, args),
110
+ sendCompressedUserOperation: async (
111
+ args: SendCompressedUserOperationParameters
112
+ ) => sendCompressedUserOperation(client as PimlicoBundlerClient, args)
81
113
  })
82
114
 
83
115
  export type PimlicoPaymasterClientActions = {
@@ -39,6 +39,7 @@ import {
39
39
  type WriteContractWithPaymasterParameters,
40
40
  writeContract
41
41
  } from "../../actions/smartAccount/writeContract.js"
42
+ import type { StateOverrides } from "../../types/bundler.js"
42
43
  import type { Prettify } from "../../types/index.js"
43
44
 
44
45
  export type SmartAccountActions<
@@ -377,7 +378,8 @@ export type SmartAccountActions<
377
378
  TSmartAccount
378
379
  >
379
380
  >[1]
380
- >
381
+ >,
382
+ stateOverrides?: StateOverrides
381
383
  ) => Promise<Prettify<PrepareUserOperationRequestReturnType>>
382
384
  sendUserOperation: <TTransport extends Transport>(
383
385
  args: Prettify<
@@ -452,11 +454,15 @@ export function smartAccountActions({
452
454
  >(
453
455
  client: Client<TTransport, TChain, TSmartAccount>
454
456
  ): SmartAccountActions<TChain, TSmartAccount> => ({
455
- prepareUserOperationRequest: (args) =>
456
- prepareUserOperationRequest(client, {
457
- ...args,
458
- sponsorUserOperation
459
- }),
457
+ prepareUserOperationRequest: (args, stateOverrides) =>
458
+ prepareUserOperationRequest(
459
+ client,
460
+ {
461
+ ...args,
462
+ sponsorUserOperation
463
+ },
464
+ stateOverrides
465
+ ),
460
466
  deployContract: (args) =>
461
467
  deployContract(client, {
462
468
  ...args,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "permissionless",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "author": "Pimlico",
5
5
  "homepage": "https://docs.pimlico.io/permissionless",
6
6
  "repository": "github:pimlicolabs/permissionless.js",
package/types/bundler.ts CHANGED
@@ -18,7 +18,20 @@ export type BundlerRpcSchema = [
18
18
  UserOperationWithBigIntAsHex,
19
19
  "callGasLimit" | "preVerificationGas" | "verificationGasLimit"
20
20
  >,
21
- entryPoint: Address
21
+ entryPoint: Address,
22
+ stateOverrides?: {
23
+ [x: string]: {
24
+ balance?: Hex
25
+ nonce?: Hex
26
+ code?: Hex
27
+ state?: {
28
+ [x: Hex]: Hex
29
+ }
30
+ stateDiff?: {
31
+ [x: Hex]: Hex
32
+ }
33
+ }
34
+ }
22
35
  ]
23
36
  ReturnType: {
24
37
  preVerificationGas: Hex
@@ -86,3 +99,17 @@ type UserOperationReceiptWithBigIntAsHex = {
86
99
  topics: Hex[]
87
100
  }[]
88
101
  }
102
+
103
+ export type StateOverrides = {
104
+ [x: string]: {
105
+ balance?: bigint | undefined
106
+ nonce?: bigint | number | undefined
107
+ code?: Hex | undefined
108
+ state?: {
109
+ [x: Hex]: Hex
110
+ }
111
+ stateDiff?: {
112
+ [x: Hex]: Hex
113
+ }
114
+ }
115
+ }
package/types/pimlico.ts CHANGED
@@ -39,6 +39,15 @@ export type PimlicoBundlerRpcSchema = [
39
39
  Method: "pimlico_getUserOperationStatus"
40
40
  Parameters: [hash: Hash]
41
41
  ReturnType: PimlicoUserOperationStatus
42
+ },
43
+ {
44
+ Method: "pimlico_sendCompressedUserOperation"
45
+ Parameters: [
46
+ compressedUserOperation: Hex,
47
+ inflatorAddress: Address,
48
+ entryPoint: Address
49
+ ]
50
+ ReturnType: Hash
42
51
  }
43
52
  ]
44
53
 
@@ -1,15 +1,15 @@
1
1
  import type { Client } from "viem"
2
2
 
3
- export function getAction<params extends {}, returnType extends {}>(
3
+ export function getAction<params extends any[], returnType extends {}>(
4
4
  client: Client,
5
5
  // biome-ignore lint/suspicious/noExplicitAny: it's a recursive function, so it's hard to type
6
- action: (_: any, params: params) => returnType,
6
+ action: (_: any, ...params: params) => returnType,
7
7
  actionName: string = action.name
8
8
  ) {
9
- return (params: params): returnType =>
9
+ return (...params: params): returnType =>
10
10
  (
11
11
  client as Client & {
12
- [key: string]: (params: params) => returnType
12
+ [key: string]: (...params: params) => returnType
13
13
  }
14
- )[actionName]?.(params) ?? action(client, params)
14
+ )[actionName]?.(...params) ?? action(client, ...params)
15
15
  }