@pimlico/alto 0.0.0-main.20241218T163308 → 0.0.0-main.20241220T183546

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 (133) hide show
  1. package/esm/cli/config/bundler.d.ts +32 -20
  2. package/esm/cli/config/bundler.js +3 -1
  3. package/esm/cli/config/bundler.js.map +1 -1
  4. package/esm/cli/config/options.js +13 -2
  5. package/esm/cli/config/options.js.map +1 -1
  6. package/esm/cli/deploySimulationsContract.js +45 -19
  7. package/esm/cli/deploySimulationsContract.js.map +1 -1
  8. package/esm/cli/handler.js +2 -1
  9. package/esm/cli/handler.js.map +1 -1
  10. package/esm/cli/parseArgs.js +1 -1
  11. package/esm/cli/parseArgs.js.map +1 -1
  12. package/esm/executor/executor.js +45 -20
  13. package/esm/executor/executor.js.map +1 -1
  14. package/esm/executor/executorManager.d.ts +1 -1
  15. package/esm/executor/types.d.ts +25 -0
  16. package/esm/executor/types.js +2 -0
  17. package/esm/executor/types.js.map +1 -0
  18. package/esm/executor/utils.d.ts +4 -2
  19. package/esm/executor/utils.js +20 -6
  20. package/esm/executor/utils.js.map +1 -1
  21. package/esm/mempool/mempool.js +7 -1
  22. package/esm/mempool/mempool.js.map +1 -1
  23. package/esm/rpc/estimation/gasEstimationHandler.d.ts +3 -1
  24. package/esm/rpc/estimation/gasEstimationHandler.js +3 -1
  25. package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
  26. package/esm/rpc/estimation/gasEstimationsV06.d.ts +3 -1
  27. package/esm/rpc/estimation/gasEstimationsV06.js +9 -1
  28. package/esm/rpc/estimation/gasEstimationsV06.js.map +1 -1
  29. package/esm/rpc/estimation/gasEstimationsV07.d.ts +21 -11
  30. package/esm/rpc/estimation/gasEstimationsV07.js +216 -48
  31. package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -1
  32. package/esm/rpc/estimation/types.d.ts +9 -2
  33. package/esm/rpc/estimation/types.js.map +1 -1
  34. package/esm/rpc/rpcHandler.d.ts +53 -1
  35. package/esm/rpc/rpcHandler.js +221 -146
  36. package/esm/rpc/rpcHandler.js.map +1 -1
  37. package/esm/rpc/validation/SafeValidator.d.ts +18 -3
  38. package/esm/rpc/validation/SafeValidator.js +15 -6
  39. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  40. package/esm/rpc/validation/UnsafeValidator.d.ts +41 -6
  41. package/esm/rpc/validation/UnsafeValidator.js +27 -10
  42. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  43. package/esm/types/contracts/EntryPointSimulationsV7.d.ts +983 -15
  44. package/esm/types/contracts/EntryPointSimulationsV7.js +1178 -425
  45. package/esm/types/contracts/EntryPointSimulationsV7.js.map +1 -1
  46. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +2 -1
  47. package/esm/types/contracts/PimlicoEntryPointSimulations.js +2 -1
  48. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  49. package/esm/types/interfaces.d.ts +41 -6
  50. package/esm/types/mempool.d.ts +3 -2
  51. package/esm/types/mempool.js +10 -3
  52. package/esm/types/mempool.js.map +1 -1
  53. package/esm/types/schemas.d.ts +896 -40
  54. package/esm/types/schemas.js +61 -2
  55. package/esm/types/schemas.js.map +1 -1
  56. package/esm/types/validation.d.ts +210 -210
  57. package/esm/types/validation.js +1 -1
  58. package/esm/types/validation.js.map +1 -1
  59. package/esm/utils/helpers.d.ts +14 -1
  60. package/esm/utils/helpers.js +14 -0
  61. package/esm/utils/helpers.js.map +1 -1
  62. package/esm/utils/metrics.d.ts +3 -3
  63. package/esm/utils/userop.d.ts +1 -1
  64. package/esm/utils/validation.d.ts +5 -2
  65. package/esm/utils/validation.js +9 -4
  66. package/esm/utils/validation.js.map +1 -1
  67. package/lib/cli/config/bundler.d.ts +32 -20
  68. package/lib/cli/config/bundler.js +3 -1
  69. package/lib/cli/config/bundler.js.map +1 -1
  70. package/lib/cli/config/options.js +13 -2
  71. package/lib/cli/config/options.js.map +1 -1
  72. package/lib/cli/deploySimulationsContract.js +43 -17
  73. package/lib/cli/deploySimulationsContract.js.map +1 -1
  74. package/lib/cli/handler.js +2 -1
  75. package/lib/cli/handler.js.map +1 -1
  76. package/lib/cli/parseArgs.js +1 -1
  77. package/lib/cli/parseArgs.js.map +1 -1
  78. package/lib/executor/executor.js +44 -19
  79. package/lib/executor/executor.js.map +1 -1
  80. package/lib/executor/executorManager.d.ts +1 -1
  81. package/lib/executor/types.d.ts +25 -0
  82. package/lib/executor/types.js +3 -0
  83. package/lib/executor/types.js.map +1 -0
  84. package/lib/executor/utils.d.ts +4 -2
  85. package/lib/executor/utils.js +21 -6
  86. package/lib/executor/utils.js.map +1 -1
  87. package/lib/mempool/mempool.js +7 -1
  88. package/lib/mempool/mempool.js.map +1 -1
  89. package/lib/rpc/estimation/gasEstimationHandler.d.ts +3 -1
  90. package/lib/rpc/estimation/gasEstimationHandler.js +3 -1
  91. package/lib/rpc/estimation/gasEstimationHandler.js.map +1 -1
  92. package/lib/rpc/estimation/gasEstimationsV06.d.ts +3 -1
  93. package/lib/rpc/estimation/gasEstimationsV06.js +9 -1
  94. package/lib/rpc/estimation/gasEstimationsV06.js.map +1 -1
  95. package/lib/rpc/estimation/gasEstimationsV07.d.ts +21 -11
  96. package/lib/rpc/estimation/gasEstimationsV07.js +213 -45
  97. package/lib/rpc/estimation/gasEstimationsV07.js.map +1 -1
  98. package/lib/rpc/estimation/types.d.ts +9 -2
  99. package/lib/rpc/estimation/types.js.map +1 -1
  100. package/lib/rpc/rpcHandler.d.ts +53 -1
  101. package/lib/rpc/rpcHandler.js +220 -145
  102. package/lib/rpc/rpcHandler.js.map +1 -1
  103. package/lib/rpc/validation/SafeValidator.d.ts +18 -3
  104. package/lib/rpc/validation/SafeValidator.js +15 -6
  105. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  106. package/lib/rpc/validation/UnsafeValidator.d.ts +41 -6
  107. package/lib/rpc/validation/UnsafeValidator.js +27 -10
  108. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  109. package/lib/types/contracts/EntryPointSimulationsV7.d.ts +983 -15
  110. package/lib/types/contracts/EntryPointSimulationsV7.js +1179 -426
  111. package/lib/types/contracts/EntryPointSimulationsV7.js.map +1 -1
  112. package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +2 -1
  113. package/lib/types/contracts/PimlicoEntryPointSimulations.js +3 -2
  114. package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +1 -1
  115. package/lib/types/interfaces.d.ts +41 -6
  116. package/lib/types/mempool.d.ts +3 -2
  117. package/lib/types/mempool.js +12 -4
  118. package/lib/types/mempool.js.map +1 -1
  119. package/lib/types/schemas.d.ts +896 -40
  120. package/lib/types/schemas.js +61 -2
  121. package/lib/types/schemas.js.map +1 -1
  122. package/lib/types/validation.d.ts +210 -210
  123. package/lib/types/validation.js +2 -2
  124. package/lib/types/validation.js.map +1 -1
  125. package/lib/utils/helpers.d.ts +14 -1
  126. package/lib/utils/helpers.js +16 -1
  127. package/lib/utils/helpers.js.map +1 -1
  128. package/lib/utils/metrics.d.ts +3 -3
  129. package/lib/utils/userop.d.ts +1 -1
  130. package/lib/utils/validation.d.ts +5 -2
  131. package/lib/utils/validation.js +9 -4
  132. package/lib/utils/validation.js.map +1 -1
  133. package/package.json +1 -1
@@ -1,13 +1,20 @@
1
- import type { Address, ExecutionResult, PackedUserOperation, TargetCallResult } from "../../types/index.js";
1
+ import type { Address, ExecutionResult, PackedUserOperation, BinarySearchCallResult } from "../../types/index.js";
2
2
  import type { Hex } from "viem";
3
3
  export type SimulateHandleOpResult<TypeResult extends "failed" | "execution" = "failed" | "execution"> = {
4
4
  result: TypeResult;
5
5
  data: TypeResult extends "failed" ? string : {
6
- callDataResult?: TargetCallResult;
6
+ callGasLimit?: bigint;
7
+ verificationGasLimit?: bigint;
8
+ paymasterVerificationGasLimit?: bigint;
7
9
  executionResult: ExecutionResult;
8
10
  };
9
11
  code?: TypeResult extends "failed" ? number : undefined;
10
12
  };
13
+ export type SimulateBinarySearchRetryResult<TypeResult extends "failed" | "success" = "failed" | "success"> = {
14
+ result: TypeResult;
15
+ data: TypeResult extends "failed" ? string : BinarySearchCallResult;
16
+ code?: TypeResult extends "failed" ? number : undefined;
17
+ };
11
18
  export type CallDataSimulationArgs = {
12
19
  op: PackedUserOperation;
13
20
  target: Address;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../rpc/estimation/types.ts"],"names":[],"mappings":"AAsCA,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC5C;QACI,UAAU,EAAE;YACR;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,uBAAuB;wBAC7B,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,yBAAyB;wBAC/B,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,OAAO;wBACrB,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,YAAY,EAAE,+BAA+B;gBAC7C,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,UAAU,EAAE;4BACR;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,SAAS;6BAClB;4BACD;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,iBAAiB;gCACvB,IAAI,EAAE,SAAS;6BAClB;yBACJ;wBACD,YAAY,EAAE,gCAAgC;wBAC9C,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,YAAY,EAAE,wCAAwC;gBACtD,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,OAAO;aAChB;SACJ;QACD,YAAY,EAAE,gDAAgD;QAC9D,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,OAAO;KAChB;CACK,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../rpc/estimation/types.ts"],"names":[],"mappings":"AAgDA,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC5C;QACI,UAAU,EAAE;YACR;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,uBAAuB;wBAC7B,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,yBAAyB;wBAC/B,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,OAAO;wBACrB,IAAI,EAAE,kBAAkB;wBACxB,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,YAAY,EAAE,+BAA+B;gBAC7C,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,SAAS;qBAClB;iBACJ;gBACD,YAAY,EAAE,gCAAgC;gBAC9C,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,OAAO;aAChB;YACD;gBACI,UAAU,EAAE;oBACR;wBACI,YAAY,EAAE,SAAS;wBACvB,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,SAAS;qBAClB;oBACD;wBACI,UAAU,EAAE;4BACR;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,OAAO;gCACb,IAAI,EAAE,SAAS;6BAClB;4BACD;gCACI,YAAY,EAAE,SAAS;gCACvB,IAAI,EAAE,iBAAiB;gCACvB,IAAI,EAAE,SAAS;6BAClB;yBACJ;wBACD,YAAY,EAAE,gCAAgC;wBAC9C,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,OAAO;qBAChB;iBACJ;gBACD,YAAY,EAAE,wCAAwC;gBACtD,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,OAAO;aAChB;SACJ;QACD,YAAY,EAAE,gDAAgD;QAC9D,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,OAAO;KAChB;CACK,CAAA"}
@@ -7,6 +7,7 @@ import type { Logger, Metrics } from "../utils/index.js";
7
7
  import { type Hex } from "viem";
8
8
  import type { NonceQueuer } from "./nonceQueuer.js";
9
9
  import type { AltoConfig } from "../createConfig.js";
10
+ import { SignedAuthorization } from "viem/experimental";
10
11
  export interface IRpcEndpoint {
11
12
  handleMethod(request: BundlerRequest, apiVersion: ApiVersion): Promise<BundlerResponse>;
12
13
  eth_chainId(): ChainIdResponseResult;
@@ -65,6 +66,29 @@ export declare class RpcHandler implements IRpcEndpoint {
65
66
  pimlico_getUserOperationStatus(userOperationHash: HexData32): PimlicoGetUserOperationStatusResponseResult;
66
67
  pimlico_getUserOperationGasPrice(): Promise<PimlicoGetUserOperationGasPriceResponseResult>;
67
68
  addToMempoolIfValid(op: MempoolUserOperation, entryPoint: Address, apiVersion: ApiVersion): Promise<"added" | "queued">;
69
+ pimlico_experimental_estimateUserOperationGas7702(apiVersion: ApiVersion, userOperation: UserOperation, entryPoint: Address, authorization: SignedAuthorization, stateOverrides?: StateOverrides): Promise<{
70
+ preVerificationGas: bigint;
71
+ verificationGasLimit: bigint;
72
+ callGasLimit: bigint;
73
+ paymasterVerificationGasLimit: bigint;
74
+ paymasterPostOpGasLimit: bigint;
75
+ verificationGas?: undefined;
76
+ } | {
77
+ preVerificationGas: bigint;
78
+ verificationGasLimit: bigint;
79
+ callGasLimit: bigint;
80
+ paymasterVerificationGasLimit?: undefined;
81
+ paymasterPostOpGasLimit?: undefined;
82
+ verificationGas?: undefined;
83
+ } | {
84
+ preVerificationGas: bigint;
85
+ verificationGas: bigint;
86
+ verificationGasLimit: bigint;
87
+ callGasLimit: bigint;
88
+ paymasterVerificationGasLimit?: undefined;
89
+ paymasterPostOpGasLimit?: undefined;
90
+ }>;
91
+ pimlico_experimental_sendUserOperation7702(apiVersion: ApiVersion, userOperation: UserOperation, entryPoint: Address, authorizationSignature: SignedAuthorization): Promise<`0x${string}`>;
68
92
  pimlico_sendUserOperationNow(apiVersion: ApiVersion, userOperation: UserOperation, entryPoint: Address): Promise<{
69
93
  sender: `0x${string}`;
70
94
  nonce: bigint;
@@ -87,13 +111,13 @@ export declare class RpcHandler implements IRpcEndpoint {
87
111
  to: `0x${string}` | null;
88
112
  gasUsed: bigint;
89
113
  status: bigint | null;
114
+ contractAddress: `0x${string}` | null;
90
115
  blockNumber: bigint;
91
116
  blockHash: `0x${string}`;
92
117
  transactionHash: `0x${string}`;
93
118
  transactionIndex: bigint;
94
119
  from: `0x${string}`;
95
120
  cumulativeGasUsed: bigint;
96
- contractAddress: `0x${string}` | null;
97
121
  logs: {
98
122
  address: `0x${string}`;
99
123
  data: `0x${string}`;
@@ -113,5 +137,33 @@ export declare class RpcHandler implements IRpcEndpoint {
113
137
  pimlico_sendCompressedUserOperation(apiVersion: ApiVersion, compressedCalldata: Hex, inflatorAddress: Address, entryPoint: Address): Promise<`0x${string}`>;
114
138
  private validateAndInflateCompressedUserOperation;
115
139
  getNonceValue(userOperation: UserOperation, entryPoint: Address): Promise<bigint>;
140
+ doEstimateGas({ apiVersion, userOperation, entryPoint, stateOverrides, authorization }: {
141
+ apiVersion: ApiVersion;
142
+ userOperation: UserOperation;
143
+ entryPoint: Address;
144
+ stateOverrides?: StateOverrides;
145
+ authorization?: SignedAuthorization;
146
+ }): Promise<{
147
+ preVerificationGas: bigint;
148
+ verificationGasLimit: bigint;
149
+ callGasLimit: bigint;
150
+ paymasterVerificationGasLimit: bigint;
151
+ paymasterPostOpGasLimit: bigint;
152
+ verificationGas?: undefined;
153
+ } | {
154
+ preVerificationGas: bigint;
155
+ verificationGasLimit: bigint;
156
+ callGasLimit: bigint;
157
+ paymasterVerificationGasLimit?: undefined;
158
+ paymasterPostOpGasLimit?: undefined;
159
+ verificationGas?: undefined;
160
+ } | {
161
+ preVerificationGas: bigint;
162
+ verificationGas: bigint;
163
+ verificationGasLimit: bigint;
164
+ callGasLimit: bigint;
165
+ paymasterVerificationGasLimit?: undefined;
166
+ paymasterPostOpGasLimit?: undefined;
167
+ }>;
116
168
  }
117
169
  //# sourceMappingURL=rpcHandler.d.ts.map
@@ -1,4 +1,4 @@
1
- import { EntryPointV06Abi, EntryPointV07Abi, IOpInflatorAbi, RpcError, ValidationErrors, bundlerGetStakeStatusResponseSchema, deriveUserOperation } from "../types/index.js";
1
+ import { EntryPointV06Abi, EntryPointV07Abi, IOpInflatorAbi, RpcError, ValidationErrors, bundlerGetStakeStatusResponseSchema, deriveUserOperation, is7702Type } from "../types/index.js";
2
2
  import { calcPreVerificationGas, calcVerificationGasAndCallGasLimit, deepHexlify, getAAError, getNonceKeyAndValue, getUserOperationHash, isVersion06, isVersion07, maxBigInt, parseUserOperationReceipt, scaleBigIntByPercent, toUnpackedUserOperation } from "../utils/index.js";
3
3
  import { TransactionNotFoundError, decodeFunctionData, getAbiItem, getAddress, getContract, slice, toFunctionSelector } from "viem";
4
4
  import { base, baseSepolia, optimism } from "viem/chains";
@@ -127,6 +127,16 @@ export class RpcHandler {
127
127
  method,
128
128
  result: await this.pimlico_sendUserOperationNow(apiVersion, ...request.params)
129
129
  };
130
+ case "pimlico_experimental_sendUserOperation7702":
131
+ return {
132
+ method,
133
+ result: await this.pimlico_experimental_sendUserOperation7702(apiVersion, ...request.params)
134
+ };
135
+ case "pimlico_experimental_estimateUserOperationGas7702":
136
+ return {
137
+ method,
138
+ result: await this.pimlico_experimental_estimateUserOperationGas7702(apiVersion, request.params[0], request.params[1], request.params[2], request.params[3])
139
+ };
130
140
  }
131
141
  }
132
142
  ensureEntryPointIsSupported(entryPoint) {
@@ -172,130 +182,12 @@ export class RpcHandler {
172
182
  return this.config.entrypoints;
173
183
  }
174
184
  async eth_estimateUserOperationGas(apiVersion, userOperation, entryPoint, stateOverrides) {
175
- this.ensureEntryPointIsSupported(entryPoint);
176
- if (userOperation.maxFeePerGas === 0n) {
177
- throw new RpcError("user operation max fee per gas must be larger than 0 during gas estimation");
178
- }
179
- // Check if the nonce is valid
180
- // If the nonce is less than the current nonce, the user operation has already been executed
181
- // If the nonce is greater than the current nonce, we may have missing user operations in the mempool
182
- const currentNonceValue = await this.getNonceValue(userOperation, entryPoint);
183
- const [, userOperationNonceValue] = getNonceKeyAndValue(userOperation.nonce);
184
- let queuedUserOperations = [];
185
- if (userOperationNonceValue < currentNonceValue) {
186
- throw new RpcError("UserOperation reverted during simulation with reason: AA25 invalid account nonce", ValidationErrors.InvalidFields);
187
- }
188
- if (userOperationNonceValue > currentNonceValue) {
189
- // Nonce queues are supported only for v7 user operations
190
- if (isVersion06(userOperation)) {
191
- throw new RpcError("UserOperation reverted during simulation with reason: AA25 invalid account nonce", ValidationErrors.InvalidFields);
192
- }
193
- queuedUserOperations = await this.mempool.getQueuedUserOperations(userOperation, entryPoint, currentNonceValue);
194
- if (userOperationNonceValue >
195
- currentNonceValue + BigInt(queuedUserOperations.length)) {
196
- throw new RpcError("UserOperation reverted during simulation with reason: AA25 invalid account nonce", ValidationErrors.InvalidFields);
197
- }
198
- }
199
- // Prepare userOperation for simulation
200
- const { simulationVerificationGasLimit, simulationCallGasLimit, simulationPaymasterVerificationGasLimit, simulationPaymasterPostOpGasLimit } = this.config;
201
- const simulationUserOperation = {
202
- ...userOperation,
203
- preVerificationGas: 0n,
204
- verificationGasLimit: simulationVerificationGasLimit,
205
- callGasLimit: simulationCallGasLimit
206
- };
207
- if (isVersion07(simulationUserOperation)) {
208
- simulationUserOperation.paymasterVerificationGasLimit =
209
- simulationPaymasterVerificationGasLimit;
210
- simulationUserOperation.paymasterPostOpGasLimit =
211
- simulationPaymasterPostOpGasLimit;
212
- }
213
- // This is necessary because entryPoint pays
214
- // min(maxFeePerGas, baseFee + maxPriorityFeePerGas) for the verification
215
- // Since we don't want our estimations to depend upon baseFee, we set
216
- // maxFeePerGas to maxPriorityFeePerGas
217
- simulationUserOperation.maxPriorityFeePerGas =
218
- simulationUserOperation.maxFeePerGas;
219
- const executionResult = await this.validator.getExecutionResult(simulationUserOperation, entryPoint, queuedUserOperations, true, deepHexlify(stateOverrides));
220
- let { verificationGasLimit, callGasLimit } = calcVerificationGasAndCallGasLimit(simulationUserOperation, executionResult.data.executionResult, this.config.publicClient.chain.id, executionResult.data.callDataResult);
221
- let paymasterVerificationGasLimit = 0n;
222
- let paymasterPostOpGasLimit = 0n;
223
- if (isVersion07(simulationUserOperation) &&
224
- simulationUserOperation.paymaster !== null &&
225
- "paymasterVerificationGasLimit" in
226
- executionResult.data.executionResult &&
227
- "paymasterPostOpGasLimit" in executionResult.data.executionResult) {
228
- paymasterVerificationGasLimit =
229
- executionResult.data.executionResult
230
- .paymasterVerificationGasLimit || 1n;
231
- paymasterPostOpGasLimit =
232
- executionResult.data.executionResult.paymasterPostOpGasLimit ||
233
- 1n;
234
- const multiplier = Number(this.config.paymasterGasLimitMultiplier);
235
- paymasterVerificationGasLimit = scaleBigIntByPercent(paymasterVerificationGasLimit, multiplier);
236
- paymasterPostOpGasLimit = scaleBigIntByPercent(paymasterPostOpGasLimit, multiplier);
237
- }
238
- if (this.config.publicClient.chain.id === base.id ||
239
- this.config.publicClient.chain.id === baseSepolia.id) {
240
- callGasLimit += 10000n;
241
- }
242
- if (this.config.publicClient.chain.id === base.id ||
243
- this.config.publicClient.chain.id === optimism.id) {
244
- callGasLimit = maxBigInt(callGasLimit, 120000n);
245
- }
246
- if (simulationUserOperation.callData === "0x") {
247
- callGasLimit = 0n;
248
- }
249
- if (isVersion06(simulationUserOperation)) {
250
- callGasLimit = scaleBigIntByPercent(callGasLimit, Number(this.config.callGasLimitMultiplier));
251
- }
252
- let preVerificationGas = await calcPreVerificationGas({
253
- config: this.config,
254
- userOperation: {
255
- ...userOperation,
256
- callGasLimit, // use actual callGasLimit
257
- verificationGasLimit, // use actual verificationGasLimit
258
- paymasterPostOpGasLimit, // use actual paymasterPostOpGasLimit
259
- paymasterVerificationGasLimit // use actual paymasterVerificationGasLimit
260
- },
185
+ return await this.doEstimateGas({
186
+ apiVersion,
187
+ userOperation,
261
188
  entryPoint,
262
- gasPriceManager: this.gasPriceManager,
263
- validate: false
189
+ stateOverrides
264
190
  });
265
- preVerificationGas = scaleBigIntByPercent(preVerificationGas, 110);
266
- // Check if userOperation passes without estimation balance overrides
267
- if (isVersion06(simulationUserOperation)) {
268
- await this.validator.getExecutionResult({
269
- ...simulationUserOperation,
270
- preVerificationGas,
271
- verificationGasLimit,
272
- callGasLimit,
273
- paymasterVerificationGasLimit,
274
- paymasterPostOpGasLimit
275
- }, entryPoint, queuedUserOperations, false, deepHexlify(stateOverrides));
276
- }
277
- if (isVersion07(simulationUserOperation)) {
278
- return {
279
- preVerificationGas,
280
- verificationGasLimit,
281
- callGasLimit,
282
- paymasterVerificationGasLimit,
283
- paymasterPostOpGasLimit
284
- };
285
- }
286
- if (apiVersion === "v2") {
287
- return {
288
- preVerificationGas,
289
- verificationGasLimit,
290
- callGasLimit
291
- };
292
- }
293
- return {
294
- preVerificationGas,
295
- verificationGas: verificationGasLimit,
296
- verificationGasLimit,
297
- callGasLimit
298
- };
299
191
  }
300
192
  async eth_sendUserOperation(apiVersion, userOperation, entryPoint) {
301
193
  const hash = getUserOperationHash(userOperation, entryPoint, this.config.publicClient.chain.id);
@@ -505,32 +397,72 @@ export class RpcHandler {
505
397
  isVersion07(userOperation)) {
506
398
  queuedUserOperations = await this.mempool.getQueuedUserOperations(userOperation, entryPoint, currentNonceValue);
507
399
  }
508
- if (userOperationNonceValue ===
400
+ if (userOperationNonceValue >
509
401
  currentNonceValue + BigInt(queuedUserOperations.length)) {
510
- if (this.config.dangerousSkipUserOperationValidation) {
511
- const [success, errorReason] = this.mempool.add(op, entryPoint);
512
- if (!success) {
513
- this.eventManager.emitFailedValidation(opHash, errorReason, getAAError(errorReason));
514
- throw new RpcError(errorReason, ValidationErrors.InvalidFields);
515
- }
516
- }
517
- else {
518
- if (apiVersion !== "v1") {
519
- await this.validator.validatePreVerificationGas(userOperation, entryPoint);
520
- }
521
- const validationResult = await this.validator.validateUserOperation(apiVersion !== "v1", userOperation, queuedUserOperations, entryPoint);
522
- await this.reputationManager.checkReputation(userOperation, entryPoint, validationResult);
523
- await this.mempool.checkEntityMultipleRoleViolation(userOperation);
524
- const [success, errorReason] = this.mempool.add(op, entryPoint, validationResult.referencedContracts);
525
- if (!success) {
526
- this.eventManager.emitFailedValidation(opHash, errorReason, getAAError(errorReason));
527
- throw new RpcError(errorReason, ValidationErrors.InvalidFields);
528
- }
529
- return "added";
402
+ this.nonceQueuer.add(op, entryPoint);
403
+ return "queued";
404
+ }
405
+ if (this.config.dangerousSkipUserOperationValidation) {
406
+ const [success, errorReason] = this.mempool.add(op, entryPoint);
407
+ if (!success) {
408
+ this.eventManager.emitFailedValidation(opHash, errorReason, getAAError(errorReason));
409
+ throw new RpcError(errorReason, ValidationErrors.InvalidFields);
530
410
  }
411
+ return "added";
412
+ }
413
+ if (apiVersion !== "v1") {
414
+ await this.validator.validatePreVerificationGas({
415
+ userOperation,
416
+ entryPoint
417
+ });
418
+ }
419
+ let authorizationList;
420
+ if (is7702Type(op)) {
421
+ authorizationList = [op.authorization];
531
422
  }
532
- this.nonceQueuer.add(op, entryPoint);
533
- return "queued";
423
+ const validationResult = await this.validator.validateUserOperation({
424
+ shouldCheckPrefund: apiVersion !== "v1",
425
+ userOperation,
426
+ queuedUserOperations,
427
+ entryPoint,
428
+ authorizationList
429
+ });
430
+ await this.reputationManager.checkReputation(userOperation, entryPoint, validationResult);
431
+ await this.mempool.checkEntityMultipleRoleViolation(userOperation);
432
+ const [success, errorReason] = this.mempool.add(op, entryPoint, validationResult.referencedContracts);
433
+ if (!success) {
434
+ this.eventManager.emitFailedValidation(opHash, errorReason, getAAError(errorReason));
435
+ throw new RpcError(errorReason, ValidationErrors.InvalidFields);
436
+ }
437
+ return "added";
438
+ }
439
+ async pimlico_experimental_estimateUserOperationGas7702(apiVersion, userOperation, entryPoint, authorization, stateOverrides) {
440
+ if (!this.config.enableExperimental7702Endpoints) {
441
+ throw new RpcError("pimlico_experimental_estimateUserOperationGas7702 endpoint is not enabled", ValidationErrors.InvalidFields);
442
+ }
443
+ return await this.doEstimateGas({
444
+ apiVersion,
445
+ userOperation,
446
+ authorization,
447
+ entryPoint,
448
+ stateOverrides
449
+ });
450
+ }
451
+ async pimlico_experimental_sendUserOperation7702(apiVersion, userOperation, entryPoint, authorizationSignature) {
452
+ if (!this.config.enableExperimental7702Endpoints) {
453
+ throw new RpcError("pimlico_experimental_sendUserOperation7702 endpoint is not enabled", ValidationErrors.InvalidFields);
454
+ }
455
+ this.ensureEntryPointIsSupported(entryPoint);
456
+ try {
457
+ await this.addToMempoolIfValid({
458
+ userOperation,
459
+ authorization: authorizationSignature
460
+ }, entryPoint, apiVersion);
461
+ }
462
+ catch (e) {
463
+ this.logger.error(e);
464
+ }
465
+ return getUserOperationHash(userOperation, entryPoint, this.config.publicClient.chain.id);
534
466
  }
535
467
  async pimlico_sendUserOperationNow(apiVersion, userOperation, entryPoint) {
536
468
  if (!this.config.enableInstantBundlingEndpoint) {
@@ -647,5 +579,148 @@ export class RpcHandler {
647
579
  const [_, currentNonceValue] = getNonceKeyAndValue(getNonceResult);
648
580
  return currentNonceValue;
649
581
  }
582
+ async doEstimateGas({ apiVersion, userOperation, entryPoint, stateOverrides, authorization }) {
583
+ this.ensureEntryPointIsSupported(entryPoint);
584
+ if (userOperation.maxFeePerGas === 0n) {
585
+ throw new RpcError("user operation max fee per gas must be larger than 0 during gas estimation");
586
+ }
587
+ // Check if the nonce is valid
588
+ // If the nonce is less than the current nonce, the user operation has already been executed
589
+ // If the nonce is greater than the current nonce, we may have missing user operations in the mempool
590
+ const currentNonceValue = await this.getNonceValue(userOperation, entryPoint);
591
+ const [, userOperationNonceValue] = getNonceKeyAndValue(userOperation.nonce);
592
+ let queuedUserOperations = [];
593
+ if (userOperationNonceValue < currentNonceValue) {
594
+ throw new RpcError("UserOperation reverted during simulation with reason: AA25 invalid account nonce", ValidationErrors.InvalidFields);
595
+ }
596
+ if (userOperationNonceValue > currentNonceValue) {
597
+ // Nonce queues are supported only for v7 user operations
598
+ if (isVersion06(userOperation)) {
599
+ throw new RpcError("UserOperation reverted during simulation with reason: AA25 invalid account nonce", ValidationErrors.InvalidFields);
600
+ }
601
+ queuedUserOperations = await this.mempool.getQueuedUserOperations(userOperation, entryPoint, currentNonceValue);
602
+ if (userOperationNonceValue >
603
+ currentNonceValue + BigInt(queuedUserOperations.length)) {
604
+ throw new RpcError("UserOperation reverted during simulation with reason: AA25 invalid account nonce", ValidationErrors.InvalidFields);
605
+ }
606
+ }
607
+ // Prepare userOperation for simulation
608
+ const { simulationVerificationGasLimit, simulationCallGasLimit, simulationPaymasterVerificationGasLimit, simulationPaymasterPostOpGasLimit } = this.config;
609
+ const simulationUserOperation = {
610
+ ...userOperation,
611
+ preVerificationGas: 0n,
612
+ verificationGasLimit: simulationVerificationGasLimit,
613
+ callGasLimit: simulationCallGasLimit
614
+ };
615
+ if (isVersion07(simulationUserOperation)) {
616
+ simulationUserOperation.paymasterVerificationGasLimit =
617
+ simulationPaymasterVerificationGasLimit;
618
+ simulationUserOperation.paymasterPostOpGasLimit =
619
+ simulationPaymasterPostOpGasLimit;
620
+ }
621
+ // This is necessary because entryPoint pays
622
+ // min(maxFeePerGas, baseFee + maxPriorityFeePerGas) for the verification
623
+ // Since we don't want our estimations to depend upon baseFee, we set
624
+ // maxFeePerGas to maxPriorityFeePerGas
625
+ simulationUserOperation.maxPriorityFeePerGas =
626
+ simulationUserOperation.maxFeePerGas;
627
+ const executionResult = await this.validator.getExecutionResult({
628
+ userOperation: simulationUserOperation,
629
+ entryPoint,
630
+ queuedUserOperations,
631
+ addSenderBalanceOverride: true,
632
+ stateOverrides: deepHexlify(stateOverrides),
633
+ authorizationList: authorization ? [authorization] : undefined
634
+ });
635
+ let { verificationGasLimit, callGasLimit, paymasterVerificationGasLimit } = calcVerificationGasAndCallGasLimit(simulationUserOperation, executionResult.data.executionResult, this.config.publicClient.chain.id, executionResult.data);
636
+ let paymasterPostOpGasLimit = 0n;
637
+ const multiplier = Number(this.config.paymasterGasLimitMultiplier);
638
+ if (!paymasterVerificationGasLimit &&
639
+ isVersion07(simulationUserOperation) &&
640
+ simulationUserOperation.paymaster !== null &&
641
+ "paymasterVerificationGasLimit" in
642
+ executionResult.data.executionResult) {
643
+ paymasterVerificationGasLimit =
644
+ executionResult.data.executionResult
645
+ .paymasterVerificationGasLimit || 1n;
646
+ paymasterVerificationGasLimit = scaleBigIntByPercent(paymasterVerificationGasLimit, multiplier);
647
+ }
648
+ if (isVersion07(simulationUserOperation) &&
649
+ simulationUserOperation.paymaster !== null &&
650
+ "paymasterPostOpGasLimit" in executionResult.data.executionResult) {
651
+ paymasterPostOpGasLimit =
652
+ executionResult.data.executionResult.paymasterPostOpGasLimit ||
653
+ 1n;
654
+ paymasterPostOpGasLimit = scaleBigIntByPercent(paymasterPostOpGasLimit, multiplier);
655
+ }
656
+ if (this.config.publicClient.chain.id === base.id ||
657
+ this.config.publicClient.chain.id === baseSepolia.id) {
658
+ callGasLimit += 10000n;
659
+ }
660
+ if (this.config.publicClient.chain.id === base.id ||
661
+ this.config.publicClient.chain.id === optimism.id) {
662
+ callGasLimit = maxBigInt(callGasLimit, 120000n);
663
+ }
664
+ if (simulationUserOperation.callData === "0x") {
665
+ callGasLimit = 0n;
666
+ }
667
+ if (isVersion06(simulationUserOperation)) {
668
+ callGasLimit = scaleBigIntByPercent(callGasLimit, Number(this.config.callGasLimitMultiplier));
669
+ }
670
+ let preVerificationGas = await calcPreVerificationGas({
671
+ config: this.config,
672
+ userOperation: {
673
+ ...userOperation,
674
+ callGasLimit, // use actual callGasLimit
675
+ verificationGasLimit, // use actual verificationGasLimit
676
+ paymasterPostOpGasLimit, // use actual paymasterPostOpGasLimit
677
+ paymasterVerificationGasLimit // use actual paymasterVerificationGasLimit
678
+ },
679
+ entryPoint,
680
+ gasPriceManager: this.gasPriceManager,
681
+ validate: false
682
+ });
683
+ preVerificationGas = scaleBigIntByPercent(preVerificationGas, 110);
684
+ // Check if userOperation passes without estimation balance overrides
685
+ if (isVersion06(simulationUserOperation)) {
686
+ await this.validator.getExecutionResult({
687
+ userOperation: {
688
+ ...simulationUserOperation,
689
+ preVerificationGas,
690
+ verificationGasLimit,
691
+ callGasLimit,
692
+ paymasterVerificationGasLimit,
693
+ paymasterPostOpGasLimit
694
+ },
695
+ entryPoint,
696
+ queuedUserOperations,
697
+ addSenderBalanceOverride: false,
698
+ stateOverrides: deepHexlify(stateOverrides),
699
+ authorizationList: authorization ? [authorization] : undefined
700
+ });
701
+ }
702
+ if (isVersion07(simulationUserOperation)) {
703
+ return {
704
+ preVerificationGas,
705
+ verificationGasLimit,
706
+ callGasLimit,
707
+ paymasterVerificationGasLimit,
708
+ paymasterPostOpGasLimit
709
+ };
710
+ }
711
+ if (apiVersion === "v2") {
712
+ return {
713
+ preVerificationGas,
714
+ verificationGasLimit,
715
+ callGasLimit
716
+ };
717
+ }
718
+ return {
719
+ preVerificationGas,
720
+ verificationGas: verificationGasLimit,
721
+ verificationGasLimit,
722
+ callGasLimit
723
+ };
724
+ }
650
725
  }
651
726
  //# sourceMappingURL=rpcHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpcHandler.js","sourceRoot":"","sources":["../../rpc/rpcHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpcHandler.js","sourceRoot":"","sources":["../../rpc/rpcHandler.ts"],"names":[],"mappings":"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"}