@pimlico/alto 0.0.4 → 0.0.5

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 (227) hide show
  1. package/esm/cli/alto.js +0 -4
  2. package/esm/cli/alto.js.map +1 -1
  3. package/esm/cli/config/bundler.d.ts +2296 -22
  4. package/esm/cli/config/bundler.js +31 -4
  5. package/esm/cli/config/bundler.js.map +1 -1
  6. package/esm/cli/config/options.js +53 -4
  7. package/esm/cli/config/options.js.map +1 -1
  8. package/esm/cli/customTransport.js +5 -1
  9. package/esm/cli/customTransport.js.map +1 -1
  10. package/esm/cli/handler.js +14 -3
  11. package/esm/cli/handler.js.map +1 -1
  12. package/esm/cli/instrumentation.js +2 -2
  13. package/esm/cli/instrumentation.js.map +1 -1
  14. package/esm/cli/setupServer.d.ts +2 -1
  15. package/esm/cli/setupServer.js +51 -27
  16. package/esm/cli/setupServer.js.map +1 -1
  17. package/esm/executor/executor.d.ts +7 -14
  18. package/esm/executor/executor.js +139 -128
  19. package/esm/executor/executor.js.map +1 -1
  20. package/esm/executor/executorManager.d.ts +58 -4
  21. package/esm/executor/executorManager.js +206 -52
  22. package/esm/executor/executorManager.js.map +1 -1
  23. package/esm/executor/senderManager.d.ts +2 -1
  24. package/esm/executor/senderManager.js +3 -0
  25. package/esm/executor/senderManager.js.map +1 -1
  26. package/esm/executor/utilityWalletMonitor.d.ts +15 -0
  27. package/esm/executor/utilityWalletMonitor.js +38 -0
  28. package/esm/executor/utilityWalletMonitor.js.map +1 -0
  29. package/esm/executor/utils.d.ts +1 -2
  30. package/esm/executor/utils.js +49 -38
  31. package/esm/executor/utils.js.map +1 -1
  32. package/esm/handlers/compressionHandler.js.map +1 -0
  33. package/esm/handlers/eventManager.d.ts +21 -0
  34. package/esm/handlers/eventManager.js +166 -0
  35. package/esm/handlers/eventManager.js.map +1 -0
  36. package/{lib/utils → esm/handlers}/gasPriceManager.d.ts +19 -5
  37. package/esm/{utils → handlers}/gasPriceManager.js +58 -13
  38. package/esm/handlers/gasPriceManager.js.map +1 -0
  39. package/esm/handlers/index.d.ts +4 -0
  40. package/esm/handlers/index.js +4 -0
  41. package/esm/handlers/index.js.map +1 -0
  42. package/esm/mempool/index.d.ts +0 -1
  43. package/esm/mempool/index.js +0 -1
  44. package/esm/mempool/index.js.map +1 -1
  45. package/esm/mempool/mempool.d.ts +4 -2
  46. package/esm/mempool/mempool.js +65 -19
  47. package/esm/mempool/mempool.js.map +1 -1
  48. package/esm/rpc/EntryPointSimulationsV07.d.ts +2 -2
  49. package/esm/rpc/EntryPointSimulationsV07.js +10 -7
  50. package/esm/rpc/EntryPointSimulationsV07.js.map +1 -1
  51. package/esm/rpc/gasEstimation.d.ts +3 -3
  52. package/esm/rpc/gasEstimation.js +22 -17
  53. package/esm/rpc/gasEstimation.js.map +1 -1
  54. package/esm/rpc/nonceQueuer.d.ts +4 -1
  55. package/esm/rpc/nonceQueuer.js +9 -3
  56. package/esm/rpc/nonceQueuer.js.map +1 -1
  57. package/esm/rpc/rpcHandler.d.ts +53 -3
  58. package/esm/rpc/rpcHandler.js +132 -231
  59. package/esm/rpc/rpcHandler.js.map +1 -1
  60. package/esm/rpc/server.d.ts +2 -1
  61. package/esm/rpc/server.js +6 -1
  62. package/esm/rpc/server.js.map +1 -1
  63. package/esm/rpc/validation/SafeValidator.d.ts +3 -2
  64. package/esm/rpc/validation/SafeValidator.js +2 -2
  65. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  66. package/esm/rpc/validation/UnsafeValidator.d.ts +5 -2
  67. package/esm/rpc/validation/UnsafeValidator.js +10 -6
  68. package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
  69. package/esm/rpc/validation/tracer.js +1 -0
  70. package/esm/rpc/validation/tracer.js.map +1 -1
  71. package/esm/types/schemas.d.ts +1029 -333
  72. package/esm/types/schemas.js +94 -20
  73. package/esm/types/schemas.js.map +1 -1
  74. package/esm/types/utils.d.ts +1 -1
  75. package/esm/types/validation.js +7 -2
  76. package/esm/types/validation.js.map +1 -1
  77. package/esm/utils/bigInt.d.ts +1 -0
  78. package/esm/utils/bigInt.js +4 -0
  79. package/esm/utils/bigInt.js.map +1 -1
  80. package/esm/utils/helpers.d.ts +1 -0
  81. package/esm/utils/helpers.js +6 -0
  82. package/esm/utils/helpers.js.map +1 -1
  83. package/esm/utils/index.d.ts +0 -3
  84. package/esm/utils/index.js +0 -3
  85. package/esm/utils/index.js.map +1 -1
  86. package/esm/utils/metrics.d.ts +4 -0
  87. package/esm/utils/metrics.js +29 -1
  88. package/esm/utils/metrics.js.map +1 -1
  89. package/esm/utils/rpc-reply.d.ts +1 -1
  90. package/esm/utils/rpc-reply.js +2 -1
  91. package/esm/utils/rpc-reply.js.map +1 -1
  92. package/esm/utils/userop.d.ts +66 -6
  93. package/esm/utils/userop.js +183 -96
  94. package/esm/utils/userop.js.map +1 -1
  95. package/esm/utils/validation.d.ts +1 -1
  96. package/esm/utils/validation.js +9 -13
  97. package/esm/utils/validation.js.map +1 -1
  98. package/lib/cli/alto.js +0 -4
  99. package/lib/cli/alto.js.map +1 -1
  100. package/lib/cli/config/bundler.d.ts +2296 -22
  101. package/lib/cli/config/bundler.js +30 -3
  102. package/lib/cli/config/bundler.js.map +1 -1
  103. package/lib/cli/config/options.js +53 -4
  104. package/lib/cli/config/options.js.map +1 -1
  105. package/lib/cli/customTransport.js +5 -1
  106. package/lib/cli/customTransport.js.map +1 -1
  107. package/lib/cli/handler.js +13 -2
  108. package/lib/cli/handler.js.map +1 -1
  109. package/lib/cli/instrumentation.js +2 -2
  110. package/lib/cli/instrumentation.js.map +1 -1
  111. package/lib/cli/setupServer.d.ts +2 -1
  112. package/lib/cli/setupServer.js +52 -28
  113. package/lib/cli/setupServer.js.map +1 -1
  114. package/lib/executor/executor.d.ts +7 -14
  115. package/lib/executor/executor.js +138 -128
  116. package/lib/executor/executor.js.map +1 -1
  117. package/lib/executor/executorManager.d.ts +58 -4
  118. package/lib/executor/executorManager.js +204 -50
  119. package/lib/executor/executorManager.js.map +1 -1
  120. package/lib/executor/senderManager.d.ts +2 -1
  121. package/lib/executor/senderManager.js +3 -0
  122. package/lib/executor/senderManager.js.map +1 -1
  123. package/lib/executor/utilityWalletMonitor.d.ts +15 -0
  124. package/lib/executor/utilityWalletMonitor.js +42 -0
  125. package/lib/executor/utilityWalletMonitor.js.map +1 -0
  126. package/lib/executor/utils.d.ts +1 -2
  127. package/lib/executor/utils.js +48 -37
  128. package/lib/executor/utils.js.map +1 -1
  129. package/lib/handlers/compressionHandler.js.map +1 -0
  130. package/lib/handlers/eventManager.d.ts +21 -0
  131. package/lib/handlers/eventManager.js +196 -0
  132. package/lib/handlers/eventManager.js.map +1 -0
  133. package/{esm/utils → lib/handlers}/gasPriceManager.d.ts +19 -5
  134. package/lib/{utils → handlers}/gasPriceManager.js +58 -13
  135. package/lib/handlers/gasPriceManager.js.map +1 -0
  136. package/lib/handlers/index.d.ts +4 -0
  137. package/lib/handlers/index.js +20 -0
  138. package/lib/handlers/index.js.map +1 -0
  139. package/lib/mempool/index.d.ts +0 -1
  140. package/lib/mempool/index.js +0 -1
  141. package/lib/mempool/index.js.map +1 -1
  142. package/lib/mempool/mempool.d.ts +4 -2
  143. package/lib/mempool/mempool.js +65 -19
  144. package/lib/mempool/mempool.js.map +1 -1
  145. package/lib/rpc/EntryPointSimulationsV07.d.ts +2 -2
  146. package/lib/rpc/EntryPointSimulationsV07.js +10 -7
  147. package/lib/rpc/EntryPointSimulationsV07.js.map +1 -1
  148. package/lib/rpc/gasEstimation.d.ts +3 -3
  149. package/lib/rpc/gasEstimation.js +22 -17
  150. package/lib/rpc/gasEstimation.js.map +1 -1
  151. package/lib/rpc/nonceQueuer.d.ts +4 -1
  152. package/lib/rpc/nonceQueuer.js +9 -3
  153. package/lib/rpc/nonceQueuer.js.map +1 -1
  154. package/lib/rpc/rpcHandler.d.ts +53 -3
  155. package/lib/rpc/rpcHandler.js +129 -251
  156. package/lib/rpc/rpcHandler.js.map +1 -1
  157. package/lib/rpc/server.d.ts +2 -1
  158. package/lib/rpc/server.js +6 -1
  159. package/lib/rpc/server.js.map +1 -1
  160. package/lib/rpc/validation/SafeValidator.d.ts +3 -2
  161. package/lib/rpc/validation/SafeValidator.js +2 -2
  162. package/lib/rpc/validation/SafeValidator.js.map +1 -1
  163. package/lib/rpc/validation/UnsafeValidator.d.ts +5 -2
  164. package/lib/rpc/validation/UnsafeValidator.js +33 -6
  165. package/lib/rpc/validation/UnsafeValidator.js.map +1 -1
  166. package/lib/rpc/validation/tracer.js +1 -0
  167. package/lib/rpc/validation/tracer.js.map +1 -1
  168. package/lib/types/schemas.d.ts +1029 -333
  169. package/lib/types/schemas.js +93 -19
  170. package/lib/types/schemas.js.map +1 -1
  171. package/lib/types/utils.d.ts +1 -1
  172. package/lib/types/validation.js +7 -2
  173. package/lib/types/validation.js.map +1 -1
  174. package/lib/utils/bigInt.d.ts +1 -0
  175. package/lib/utils/bigInt.js +6 -1
  176. package/lib/utils/bigInt.js.map +1 -1
  177. package/lib/utils/helpers.d.ts +1 -0
  178. package/lib/utils/helpers.js +8 -1
  179. package/lib/utils/helpers.js.map +1 -1
  180. package/lib/utils/index.d.ts +0 -3
  181. package/lib/utils/index.js +0 -3
  182. package/lib/utils/index.js.map +1 -1
  183. package/lib/utils/metrics.d.ts +4 -0
  184. package/lib/utils/metrics.js +29 -1
  185. package/lib/utils/metrics.js.map +1 -1
  186. package/lib/utils/rpc-reply.d.ts +1 -1
  187. package/lib/utils/rpc-reply.js +2 -1
  188. package/lib/utils/rpc-reply.js.map +1 -1
  189. package/lib/utils/userop.d.ts +66 -6
  190. package/lib/utils/userop.js +208 -96
  191. package/lib/utils/userop.js.map +1 -1
  192. package/lib/utils/validation.d.ts +1 -1
  193. package/lib/utils/validation.js +9 -36
  194. package/lib/utils/validation.js.map +1 -1
  195. package/package.json +15 -14
  196. package/esm/executor/test/utils.d.ts +0 -13
  197. package/esm/executor/test/utils.js +0 -75
  198. package/esm/executor/test/utils.js.map +0 -1
  199. package/esm/mempool/nullMempool.d.ts +0 -15
  200. package/esm/mempool/nullMempool.js +0 -36
  201. package/esm/mempool/nullMempool.js.map +0 -1
  202. package/esm/types/test/validationTestErrors.d.ts +0 -3
  203. package/esm/types/test/validationTestErrors.js +0 -229
  204. package/esm/types/test/validationTestErrors.js.map +0 -1
  205. package/esm/utils/compressionHandler.js.map +0 -1
  206. package/esm/utils/gasPriceManager.js.map +0 -1
  207. package/esm/utils/test.d.ts +0 -17
  208. package/esm/utils/test.js +0 -130
  209. package/esm/utils/test.js.map +0 -1
  210. package/lib/executor/test/utils.d.ts +0 -13
  211. package/lib/executor/test/utils.js +0 -81
  212. package/lib/executor/test/utils.js.map +0 -1
  213. package/lib/mempool/nullMempool.d.ts +0 -15
  214. package/lib/mempool/nullMempool.js +0 -40
  215. package/lib/mempool/nullMempool.js.map +0 -1
  216. package/lib/types/test/validationTestErrors.d.ts +0 -3
  217. package/lib/types/test/validationTestErrors.js +0 -232
  218. package/lib/types/test/validationTestErrors.js.map +0 -1
  219. package/lib/utils/compressionHandler.js.map +0 -1
  220. package/lib/utils/gasPriceManager.js.map +0 -1
  221. package/lib/utils/test.d.ts +0 -17
  222. package/lib/utils/test.js +0 -161
  223. package/lib/utils/test.js.map +0 -1
  224. /package/esm/{utils → handlers}/compressionHandler.d.ts +0 -0
  225. /package/esm/{utils → handlers}/compressionHandler.js +0 -0
  226. /package/lib/{utils → handlers}/compressionHandler.d.ts +0 -0
  227. /package/lib/{utils → handlers}/compressionHandler.js +0 -0
@@ -1,8 +1,8 @@
1
1
  import type { SenderManager } from "./index.js";
2
2
  import type { InterfaceReputationManager } from "../mempool/index.js";
3
- import { type Address, type BundleResult, type CompressedUserOperation, type HexData32, type TransactionInfo, type UserOperation } from "../types/index.js";
4
- import type { GasPriceManager, Logger, Metrics } from "../utils/index.js";
5
- import { type CompressionHandler } from "../utils/index.js";
3
+ import { type TransactionInfo, type Address, type UserOperation, type BundleResult, type CompressedUserOperation } from "../types/index.js";
4
+ import type { Logger, Metrics } from "../utils/index.js";
5
+ import type { GasPriceManager, CompressionHandler, EventManager } from "../handlers/index.js";
6
6
  import { Mutex } from "async-mutex";
7
7
  import { type Account, type Chain, type PublicClient, type Transport, type WalletClient } from "viem";
8
8
  export interface GasEstimateResult {
@@ -18,15 +18,6 @@ export type ReplaceTransactionResult = {
18
18
  } | {
19
19
  status: "failed";
20
20
  };
21
- export declare class NullExecutor {
22
- bundle(_entryPoint: Address, _ops: UserOperation[]): Promise<BundleResult[]>;
23
- bundleCompressed(_entryPoint: Address, _compressedOps: CompressedUserOperation[]): Promise<BundleResult[]>;
24
- replaceTransaction(_entryPoint: Address, _transactionInfo: TransactionInfo): Promise<ReplaceTransactionResult>;
25
- replaceOps(_opHashes: HexData32[]): Promise<void>;
26
- cancelOps(_entryPoint: Address, _ops: UserOperation[]): Promise<void>;
27
- markWalletProcessed(_executor: Account): Promise<void>;
28
- flushStuckTransactions(): Promise<void>;
29
- }
30
21
  export declare class Executor {
31
22
  publicClient: PublicClient;
32
23
  walletClient: WalletClient<Transport, Chain, Account | undefined>;
@@ -41,9 +32,11 @@ export declare class Executor {
41
32
  reputationManager: InterfaceReputationManager;
42
33
  compressionHandler: CompressionHandler | null;
43
34
  gasPriceManager: GasPriceManager;
44
- disableBlockTagSupport: boolean;
35
+ blockTagSupport: boolean;
45
36
  mutex: Mutex;
46
- constructor(publicClient: PublicClient, walletClient: WalletClient<Transport, Chain, Account | undefined>, senderManager: SenderManager, reputationManager: InterfaceReputationManager, entryPoints: Address[], logger: Logger, metrics: Metrics, compressionHandler: CompressionHandler | null, gasPriceManager: GasPriceManager, simulateTransaction?: boolean, legacyTransactions?: boolean, fixedGasLimitForEstimation?: bigint, disableBlockTagSupport?: boolean, localGasLimitCalculation?: boolean);
37
+ eventManager: EventManager;
38
+ noProfitBundling: boolean;
39
+ constructor(publicClient: PublicClient, walletClient: WalletClient<Transport, Chain, Account | undefined>, senderManager: SenderManager, reputationManager: InterfaceReputationManager, entryPoints: Address[], logger: Logger, metrics: Metrics, compressionHandler: CompressionHandler | null, gasPriceManager: GasPriceManager, eventManager: EventManager, simulateTransaction?: boolean, legacyTransactions?: boolean, fixedGasLimitForEstimation?: bigint, blockTagSupport?: boolean, localGasLimitCalculation?: boolean, noProfitBundling?: boolean);
47
40
  getCompressionHandler(): CompressionHandler;
48
41
  cancelOps(_entryPoint: Address, _ops: UserOperation[]): Promise<void>;
49
42
  markWalletProcessed(executor: Account): Promise<void>;
@@ -23,37 +23,14 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Executor = exports.NullExecutor = void 0;
26
+ exports.Executor = void 0;
27
27
  const types_1 = require("../types/index.js");
28
28
  const utils_1 = require("../utils/index.js");
29
+ // biome-ignore lint/style/noNamespaceImport: explicitly make it clear when sentry is used
29
30
  const sentry = __importStar(require("@sentry/node"));
30
31
  const async_mutex_1 = require("async-mutex");
31
32
  const viem_1 = require("viem");
32
33
  const utils_2 = require("./utils.js");
33
- class NullExecutor {
34
- bundle(_entryPoint, _ops) {
35
- return Promise.resolve([]);
36
- }
37
- bundleCompressed(_entryPoint, _compressedOps) {
38
- return Promise.resolve([]);
39
- }
40
- replaceTransaction(_entryPoint, _transactionInfo) {
41
- return Promise.resolve({ status: "failed" });
42
- }
43
- replaceOps(_opHashes) {
44
- return Promise.resolve();
45
- }
46
- cancelOps(_entryPoint, _ops) {
47
- return Promise.resolve();
48
- }
49
- markWalletProcessed(_executor) {
50
- return Promise.resolve();
51
- }
52
- flushStuckTransactions() {
53
- return Promise.resolve();
54
- }
55
- }
56
- exports.NullExecutor = NullExecutor;
57
34
  class Executor {
58
35
  // private unWatch: WatchBlocksReturnType | undefined
59
36
  publicClient;
@@ -69,9 +46,11 @@ class Executor {
69
46
  reputationManager;
70
47
  compressionHandler;
71
48
  gasPriceManager;
72
- disableBlockTagSupport;
49
+ blockTagSupport;
73
50
  mutex;
74
- constructor(publicClient, walletClient, senderManager, reputationManager, entryPoints, logger, metrics, compressionHandler, gasPriceManager, simulateTransaction = false, legacyTransactions = false, fixedGasLimitForEstimation, disableBlockTagSupport = false, localGasLimitCalculation = false) {
51
+ eventManager;
52
+ noProfitBundling; // if true, bundle such that all beneficiary fees go towards tx gasFees
53
+ constructor(publicClient, walletClient, senderManager, reputationManager, entryPoints, logger, metrics, compressionHandler, gasPriceManager, eventManager, simulateTransaction = false, legacyTransactions = false, fixedGasLimitForEstimation, blockTagSupport = true, localGasLimitCalculation = false, noProfitBundling = false) {
75
54
  this.publicClient = publicClient;
76
55
  this.walletClient = walletClient;
77
56
  this.senderManager = senderManager;
@@ -84,8 +63,10 @@ class Executor {
84
63
  this.localGasLimitCalculation = localGasLimitCalculation;
85
64
  this.compressionHandler = compressionHandler;
86
65
  this.gasPriceManager = gasPriceManager;
87
- this.disableBlockTagSupport = disableBlockTagSupport;
66
+ this.eventManager = eventManager;
67
+ this.blockTagSupport = blockTagSupport;
88
68
  this.entryPoints = entryPoints;
69
+ this.noProfitBundling = noProfitBundling;
89
70
  this.mutex = new async_mutex_1.Mutex();
90
71
  }
91
72
  getCompressionHandler() {
@@ -152,27 +133,27 @@ class Executor {
152
133
  type: "compressed"
153
134
  };
154
135
  }
155
- const result = await (0, utils_2.filterOpsAndEstimateGas)(transactionInfo.entryPoint, callContext, transactionInfo.executor, opsWithHashes, newRequest.nonce, newRequest.maxFeePerGas, newRequest.maxPriorityFeePerGas, this.disableBlockTagSupport ? undefined : "latest", this.legacyTransactions, this.fixedGasLimitForEstimation, this.reputationManager, this.logger);
136
+ let { simulatedOps, gasLimit } = await (0, utils_2.filterOpsAndEstimateGas)(transactionInfo.entryPoint, callContext, transactionInfo.executor, opsWithHashes, newRequest.nonce, newRequest.maxFeePerGas, newRequest.maxPriorityFeePerGas, this.blockTagSupport ? "latest" : undefined, this.legacyTransactions, this.fixedGasLimitForEstimation, this.reputationManager, this.logger);
156
137
  const childLogger = this.logger.child({
157
138
  transactionHash: transactionInfo.transactionHash,
158
139
  executor: transactionInfo.executor.address
159
140
  });
160
- if (result.simulatedOps.length === 0) {
141
+ if (simulatedOps.length === 0) {
161
142
  childLogger.warn("no ops to bundle");
162
143
  this.markWalletProcessed(transactionInfo.executor);
163
144
  return { status: "failed" };
164
145
  }
165
- if (result.simulatedOps.every((op) => op.reason === "AA25 invalid account nonce" ||
146
+ if (simulatedOps.every((op) => op.reason === "AA25 invalid account nonce" ||
166
147
  op.reason === "AA10 sender already constructed")) {
167
- childLogger.trace({ reasons: result.simulatedOps.map((sop) => sop.reason) }, "all ops failed simulation with nonce error");
148
+ childLogger.trace({ reasons: simulatedOps.map((sop) => sop.reason) }, "all ops failed simulation with nonce error");
168
149
  return { status: "potentially_already_included" };
169
150
  }
170
- if (result.simulatedOps.every((op) => op.reason !== undefined)) {
151
+ if (simulatedOps.every((op) => op.reason !== undefined)) {
171
152
  childLogger.warn("all ops failed simulation");
172
153
  this.markWalletProcessed(transactionInfo.executor);
173
154
  return { status: "failed" };
174
155
  }
175
- const opsToBundle = result.simulatedOps
156
+ const opsToBundle = simulatedOps
176
157
  .filter((op) => op.reason === undefined)
177
158
  .map((op) => {
178
159
  const opInfo = transactionInfo.userOperationInfos.find((info) => info.userOperationHash === op.owh.userOperationHash);
@@ -181,15 +162,29 @@ class Executor {
181
162
  }
182
163
  return opInfo;
183
164
  });
184
- newRequest.gas = this.localGasLimitCalculation
185
- ? opsToBundle.reduce((acc, opInfo) => {
165
+ if (this.localGasLimitCalculation) {
166
+ gasLimit = opsToBundle.reduce((acc, opInfo) => {
186
167
  const userOperation = (0, types_1.deriveUserOperation)(opInfo.mempoolUserOperation);
187
168
  return (acc +
188
169
  userOperation.preVerificationGas +
189
170
  3n * userOperation.verificationGasLimit +
190
171
  userOperation.callGasLimit);
191
- }, 0n)
192
- : result.gasLimit;
172
+ }, 0n);
173
+ }
174
+ // https://github.com/eth-infinitism/account-abstraction/blob/fa61290d37d079e928d92d53a122efcc63822214/contracts/core/EntryPoint.sol#L236
175
+ let innerHandleOpFloor = 0n;
176
+ for (const owh of opsToBundle) {
177
+ const op = (0, types_1.deriveUserOperation)(owh.mempoolUserOperation);
178
+ innerHandleOpFloor +=
179
+ op.callGasLimit + op.verificationGasLimit + 5000n;
180
+ }
181
+ if (gasLimit < innerHandleOpFloor) {
182
+ gasLimit += innerHandleOpFloor;
183
+ }
184
+ // sometimes the estimation rounds down, adding a fixed constant accounts for this
185
+ gasLimit += 10000n;
186
+ // ensures that we don't submit again with too low of a gas value
187
+ newRequest.gas = (0, utils_1.maxBigInt)(newRequest.gas, gasLimit);
193
188
  // update calldata to include only ops that pass simulation
194
189
  if (transactionInfo.transactionType === "default") {
195
190
  const isUserOpVersion06 = opsWithHashes.reduce((acc, op) => {
@@ -241,6 +236,12 @@ class Executor {
241
236
  accessList: undefined
242
237
  }
243
238
  : newRequest);
239
+ opsToBundle.map((opToBundle) => {
240
+ const op = (0, types_1.deriveUserOperation)(opToBundle.mempoolUserOperation);
241
+ const chainId = this.publicClient.chain?.id;
242
+ const opHash = (0, utils_1.getUserOperationHash)(op, opToBundle.entryPoint, chainId);
243
+ this.eventManager.emitSubmitted(opHash, txHash);
244
+ });
244
245
  const newTxInfo = {
245
246
  ...transactionInfo,
246
247
  transactionRequest: newRequest,
@@ -290,17 +291,15 @@ class Executor {
290
291
  }
291
292
  }
292
293
  async flushStuckTransactions() {
294
+ const allWallets = new Set(this.senderManager.wallets);
295
+ const utilityWallet = this.senderManager.utilityAccount;
296
+ if (utilityWallet) {
297
+ allWallets.add(utilityWallet);
298
+ }
299
+ const wallets = Array.from(allWallets);
293
300
  const gasPrice = await this.gasPriceManager.getGasPrice();
294
- const wallets = this.senderManager.utilityAccount
295
- ? Array.from(new Set([
296
- ...this.senderManager.wallets,
297
- this.senderManager.utilityAccount
298
- ]))
299
- : Array.from(new Set(this.senderManager.wallets));
300
- const promises = wallets.map(async (wallet) => {
301
- for (const entryPoint of this.entryPoints) {
302
- await (0, utils_2.flushStuckTransaction)(this.publicClient, this.walletClient, wallet, gasPrice.maxFeePerGas * 5n, this.logger, entryPoint);
303
- }
301
+ const promises = wallets.map((wallet) => {
302
+ (0, utils_2.flushStuckTransaction)(this.publicClient, this.walletClient, wallet, gasPrice.maxFeePerGas * 5n, this.logger);
304
303
  });
305
304
  await Promise.all(promises);
306
305
  }
@@ -343,33 +342,17 @@ class Executor {
343
342
  ep,
344
343
  type: "default"
345
344
  };
346
- let { gasLimit, simulatedOps, resubmitAllOps } = await (0, utils_2.filterOpsAndEstimateGas)(entryPoint, callContext, wallet, opsWithHashes, nonce, gasPriceParameters.maxFeePerGas, gasPriceParameters.maxPriorityFeePerGas, this.disableBlockTagSupport ? undefined : "pending", this.legacyTransactions, this.fixedGasLimitForEstimation, this.reputationManager, childLogger);
347
- gasLimit += 10000n;
348
- if (resubmitAllOps) {
349
- this.markWalletProcessed(wallet);
350
- return opsWithHashes.map((owh) => {
351
- const bundleResult = {
352
- status: "resubmit",
353
- info: {
354
- entryPoint,
355
- userOpHash: owh.userOperationHash,
356
- userOperation: owh.mempoolUserOperation,
357
- reason: viem_1.FeeCapTooLowError.name
358
- }
359
- };
360
- return bundleResult;
361
- });
362
- }
345
+ let { gasLimit, simulatedOps } = await (0, utils_2.filterOpsAndEstimateGas)(entryPoint, callContext, wallet, opsWithHashes, nonce, gasPriceParameters.maxFeePerGas, gasPriceParameters.maxPriorityFeePerGas, this.blockTagSupport ? "pending" : undefined, this.legacyTransactions, this.fixedGasLimitForEstimation, this.reputationManager, childLogger);
363
346
  if (simulatedOps.length === 0) {
364
347
  childLogger.error("gas limit simulation encountered unexpected failure");
365
348
  this.markWalletProcessed(wallet);
366
- return opsWithHashes.map((owh) => {
349
+ return opsWithHashes.map(({ userOperationHash, mempoolUserOperation }) => {
367
350
  return {
368
351
  status: "failure",
369
352
  error: {
370
353
  entryPoint,
371
- userOpHash: owh.userOperationHash,
372
- userOperation: owh.mempoolUserOperation,
354
+ userOpHash: userOperationHash,
355
+ userOperation: mempoolUserOperation,
373
356
  reason: "INTERNAL FAILURE"
374
357
  }
375
358
  };
@@ -378,14 +361,14 @@ class Executor {
378
361
  if (simulatedOps.every((op) => op.reason !== undefined)) {
379
362
  childLogger.warn("all ops failed simulation");
380
363
  this.markWalletProcessed(wallet);
381
- return simulatedOps.map((op) => {
364
+ return simulatedOps.map(({ reason, owh }) => {
382
365
  return {
383
366
  status: "failure",
384
367
  error: {
385
368
  entryPoint,
386
- userOpHash: op.owh.userOperationHash,
387
- userOperation: op.owh.mempoolUserOperation,
388
- reason: op.reason
369
+ userOpHash: owh.userOperationHash,
370
+ userOperation: owh.mempoolUserOperation,
371
+ reason: reason
389
372
  }
390
373
  };
391
374
  });
@@ -397,36 +380,52 @@ class Executor {
397
380
  userOperations: opsWithHashToBundle.map((owh) => owh.userOperationHash),
398
381
  entryPoint
399
382
  });
400
- childLogger.trace({ gasLimit }, "got gas limit");
401
- let txHash;
383
+ // https://github.com/eth-infinitism/account-abstraction/blob/fa61290d37d079e928d92d53a122efcc63822214/contracts/core/EntryPoint.sol#L236
384
+ let innerHandleOpFloor = 0n;
385
+ let totalBeneficiaryFees = 0n;
386
+ for (const owh of opsWithHashToBundle) {
387
+ const op = (0, types_1.deriveUserOperation)(owh.mempoolUserOperation);
388
+ innerHandleOpFloor +=
389
+ op.callGasLimit + op.verificationGasLimit + 5000n;
390
+ totalBeneficiaryFees += (0, utils_1.getRequiredPrefund)(op);
391
+ }
392
+ if (gasLimit < innerHandleOpFloor) {
393
+ gasLimit += innerHandleOpFloor;
394
+ }
395
+ // sometimes the estimation rounds down, adding a fixed constant accounts for this
396
+ gasLimit += 10000n;
397
+ childLogger.debug({ gasLimit }, "got gas limit");
398
+ let transactionHash;
402
399
  try {
403
- const gasOptions = this.legacyTransactions
404
- ? {
405
- gasPrice: gasPriceParameters.maxFeePerGas
406
- }
400
+ const isLegacyTransaction = this.legacyTransactions;
401
+ const gasOptions = isLegacyTransaction
402
+ ? { gasPrice: gasPriceParameters.maxFeePerGas }
407
403
  : {
408
404
  maxFeePerGas: gasPriceParameters.maxFeePerGas,
409
405
  maxPriorityFeePerGas: gasPriceParameters.maxPriorityFeePerGas
410
406
  };
411
- txHash = isUserOpVersion06
412
- ? await ep.write.handleOps([
413
- opsWithHashToBundle.map((owh) => owh.mempoolUserOperation),
414
- wallet.address
415
- ], {
416
- account: wallet,
417
- gas: gasLimit,
418
- nonce: nonce,
419
- ...gasOptions
420
- })
421
- : await ep.write.handleOps([
422
- opsWithHashToBundle.map((owh) => (0, utils_1.toPackedUserOperation)(owh.mempoolUserOperation)),
423
- wallet.address
424
- ], {
425
- account: wallet,
426
- gas: gasLimit,
427
- nonce: nonce,
428
- ...gasOptions
429
- });
407
+ if (this.noProfitBundling) {
408
+ const gasPrice = totalBeneficiaryFees / gasLimit;
409
+ if (isLegacyTransaction) {
410
+ gasOptions.gasPrice = gasPrice;
411
+ }
412
+ else {
413
+ gasOptions.maxFeePerGas = (0, utils_1.maxBigInt)(gasPrice, gasOptions.maxFeePerGas || 0n);
414
+ }
415
+ }
416
+ const opts = {
417
+ account: wallet,
418
+ gas: gasLimit,
419
+ nonce: nonce,
420
+ ...gasOptions
421
+ };
422
+ const userOps = opsWithHashToBundle.map((owh) => isUserOpVersion06
423
+ ? owh.mempoolUserOperation
424
+ : (0, utils_1.toPackedUserOperation)(owh.mempoolUserOperation));
425
+ transactionHash = await ep.write.handleOps([userOps, wallet.address], opts);
426
+ opsWithHashToBundle.map(({ userOperationHash }) => {
427
+ this.eventManager.emitSubmitted(userOperationHash, transactionHash);
428
+ });
430
429
  }
431
430
  catch (err) {
432
431
  const e = (0, utils_1.parseViemError)(err);
@@ -445,6 +444,23 @@ class Executor {
445
444
  };
446
445
  });
447
446
  }
447
+ if (e?.details
448
+ .toLowerCase()
449
+ .includes("replacement transaction underpriced")) {
450
+ childLogger.error({ error: e }, "replacement transaction underpriced");
451
+ this.markWalletProcessed(wallet);
452
+ return opsWithHashToBundle.map((owh) => {
453
+ return {
454
+ status: "resubmit",
455
+ info: {
456
+ entryPoint,
457
+ userOpHash: owh.userOperationHash,
458
+ userOperation: owh.mempoolUserOperation,
459
+ reason: "replacement transaction underpriced"
460
+ }
461
+ };
462
+ });
463
+ }
448
464
  sentry.captureException(err);
449
465
  childLogger.error({ error: JSON.stringify(err) }, "error submitting bundle transaction");
450
466
  this.markWalletProcessed(wallet);
@@ -473,7 +489,7 @@ class Executor {
473
489
  entryPoint,
474
490
  isVersion06: isUserOpVersion06,
475
491
  transactionType: "default",
476
- transactionHash: txHash,
492
+ transactionHash: transactionHash,
477
493
  previousTransactionHashes: [],
478
494
  transactionRequest: {
479
495
  account: wallet,
@@ -513,7 +529,7 @@ class Executor {
513
529
  ...transactionInfo.transactionRequest,
514
530
  abi: undefined
515
531
  },
516
- txHash,
532
+ txHash: transactionHash,
517
533
  opHashes: opsWithHashToBundle.map((owh) => owh.userOperationHash)
518
534
  }, "submitted bundle transaction");
519
535
  return userOperationResults;
@@ -539,36 +555,23 @@ class Executor {
539
555
  perOpInflatorId: compressionHandler.perOpInflatorId,
540
556
  type: "compressed"
541
557
  };
542
- let { gasLimit, simulatedOps, resubmitAllOps } = await (0, utils_2.filterOpsAndEstimateGas)(entryPoint, callContext, wallet, compressedOps.map((compressedOp) => {
558
+ let { gasLimit, simulatedOps } = await (0, utils_2.filterOpsAndEstimateGas)(entryPoint, callContext, wallet, compressedOps.map((compressedOp) => {
543
559
  return {
544
560
  mempoolUserOperation: compressedOp,
545
561
  userOperationHash: (0, utils_1.getUserOperationHash)(compressedOp.inflatedOp, entryPoint, this.walletClient.chain.id)
546
562
  };
547
- }), nonce, gasPriceParameters.maxFeePerGas, gasPriceParameters.maxPriorityFeePerGas, this.disableBlockTagSupport ? undefined : "pending", this.legacyTransactions, this.fixedGasLimitForEstimation, this.reputationManager, childLogger);
563
+ }), nonce, gasPriceParameters.maxFeePerGas, gasPriceParameters.maxPriorityFeePerGas, this.blockTagSupport ? "pending" : undefined, this.legacyTransactions, this.fixedGasLimitForEstimation, this.reputationManager, childLogger);
548
564
  gasLimit += 10000n;
549
- if (resubmitAllOps) {
550
- this.markWalletProcessed(wallet);
551
- return compressedOps.map((compressedOp) => {
552
- return {
553
- status: "resubmit",
554
- info: {
555
- entryPoint,
556
- userOpHash: (0, utils_1.getUserOperationHash)(compressedOp.inflatedOp, entryPoint, this.walletClient.chain.id),
557
- userOperation: compressedOp,
558
- reason: viem_1.FeeCapTooLowError.name
559
- }
560
- };
561
- });
562
- }
563
565
  if (simulatedOps.length === 0) {
564
566
  childLogger.warn("no ops to bundle");
565
567
  this.markWalletProcessed(wallet);
566
568
  return compressedOps.map((compressedOp) => {
569
+ const userOpHash = (0, utils_1.getUserOperationHash)(compressedOp.inflatedOp, entryPoint, this.walletClient.chain.id);
567
570
  return {
568
571
  status: "failure",
569
572
  error: {
570
573
  entryPoint,
571
- userOpHash: (0, utils_1.getUserOperationHash)(compressedOp.inflatedOp, entryPoint, this.walletClient.chain.id),
574
+ userOpHash,
572
575
  userOperation: compressedOp,
573
576
  reason: "INTERNAL FAILURE"
574
577
  }
@@ -579,14 +582,14 @@ class Executor {
579
582
  if (simulatedOps.some((simulatedOp) => simulatedOp.reason !== undefined)) {
580
583
  childLogger.warn("some ops failed simulation");
581
584
  this.markWalletProcessed(wallet);
582
- return simulatedOps.map((simulatedOp) => {
585
+ return simulatedOps.map(({ reason, owh }) => {
583
586
  return {
584
587
  status: "failure",
585
588
  error: {
586
589
  entryPoint,
587
- userOpHash: simulatedOp.owh.userOperationHash,
588
- userOperation: simulatedOp.owh.mempoolUserOperation,
589
- reason: simulatedOp.reason
590
+ userOpHash: owh.userOperationHash,
591
+ userOperation: owh.mempoolUserOperation,
592
+ reason: reason
590
593
  }
591
594
  };
592
595
  });
@@ -594,7 +597,7 @@ class Executor {
594
597
  const opsToBundle = simulatedOps
595
598
  .filter((simulatedOp) => simulatedOp.reason === undefined)
596
599
  .map((simulatedOp) => simulatedOp.owh);
597
- let txHash;
600
+ let transactionHash;
598
601
  try {
599
602
  const gasOptions = this.legacyTransactions
600
603
  ? {
@@ -604,27 +607,34 @@ class Executor {
604
607
  maxFeePerGas: gasPriceParameters.maxFeePerGas,
605
608
  maxPriorityFeePerGas: gasPriceParameters.maxPriorityFeePerGas
606
609
  };
610
+ const compressedOpsToBundle = opsToBundle.map(({ mempoolUserOperation }) => {
611
+ const compressedOp = mempoolUserOperation;
612
+ return compressedOp;
613
+ });
607
614
  // need to use sendTransaction to target BundleBulker's fallback
608
- txHash = await this.walletClient.sendTransaction({
615
+ transactionHash = await this.walletClient.sendTransaction({
609
616
  account: wallet,
610
617
  to: compressionHandler.bundleBulkerAddress,
611
- data: (0, utils_2.createCompressedCalldata)(compressedOps, compressionHandler.perOpInflatorId),
618
+ data: (0, utils_2.createCompressedCalldata)(compressedOpsToBundle, compressionHandler.perOpInflatorId),
612
619
  gas: gasLimit,
613
620
  nonce: nonce,
614
621
  ...gasOptions
615
622
  });
623
+ opsToBundle.map(({ userOperationHash }) => {
624
+ this.eventManager.emitSubmitted(userOperationHash, transactionHash);
625
+ });
616
626
  }
617
627
  catch (err) {
618
628
  sentry.captureException(err);
619
629
  childLogger.error({ error: JSON.stringify(err) }, "error submitting bundle transaction");
620
630
  this.markWalletProcessed(wallet);
621
- return opsToBundle.map((op) => {
631
+ return opsToBundle.map(({ userOperationHash, mempoolUserOperation }) => {
622
632
  return {
623
633
  status: "failure",
624
634
  error: {
625
635
  entryPoint,
626
- userOpHash: op.userOperationHash,
627
- userOperation: op.mempoolUserOperation,
636
+ userOpHash: userOperationHash,
637
+ userOperation: mempoolUserOperation,
628
638
  reason: "INTERNAL FAILURE"
629
639
  }
630
640
  };
@@ -643,7 +653,7 @@ class Executor {
643
653
  entryPoint,
644
654
  isVersion06: true, //TODO: compressed bundles are always v06
645
655
  transactionType: "compressed",
646
- transactionHash: txHash,
656
+ transactionHash,
647
657
  previousTransactionHashes: [],
648
658
  transactionRequest: {
649
659
  to: compressionHandler.bundleBulkerAddress,
@@ -663,7 +673,7 @@ class Executor {
663
673
  };
664
674
  const userOperationResults = (0, utils_2.simulatedOpsToResults)(simulatedOps, transactionInfo);
665
675
  childLogger.info({
666
- txHash,
676
+ txHash: transactionHash,
667
677
  opHashes: opsToBundle.map((owh) => owh.userOperationHash)
668
678
  }, "submitted bundle transaction");
669
679
  return userOperationResults;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"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"}