@pimlico/alto 0.0.19 → 0.0.20
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.
- package/contracts/EIP712.sol/EIP712.json +1 -1
- package/contracts/ERC165.sol/ERC165.json +1 -1
- package/contracts/ERC20.sol/ERC20.json +1 -1
- package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
- package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/contracts/Exec.sol/Exec.json +1 -1
- package/contracts/IAccount.sol/IAccount.json +1 -1
- package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
- package/contracts/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/IERC165.sol/IERC165.json +1 -1
- package/contracts/IERC5267.sol/IERC5267.json +1 -1
- package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
- package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
- package/contracts/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
- package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
- package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/LibBytes.sol/LibBytes.json +1 -1
- package/contracts/Math.sol/Math.json +1 -1
- package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
- package/contracts/NonceManager.sol/NonceManager.json +1 -1
- package/contracts/Panic.sol/Panic.json +1 -1
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
- package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
- package/contracts/SafeCast.sol/SafeCast.json +1 -1
- package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
- package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
- package/contracts/SignedMath.sol/SignedMath.json +1 -1
- package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
- package/contracts/StakeManager.sol/StakeManager.json +1 -1
- package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
- package/contracts/Strings.sol/Strings.json +1 -1
- package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
- package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
- package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
- package/contracts/account-abstraction-v9/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/account-abstraction-v9/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
- package/contracts/build-info/338795fc743ca612.json +1 -0
- package/contracts/build-info/44a9648cfe32a468.json +1 -0
- package/contracts/build-info/{880955d5786bfdae.json → 8dbf8a4ad39019b5.json} +1 -1
- package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/core/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/core/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/core/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/core/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/core/UserOperationLib.sol/UserOperationLib.json +1 -0
- package/contracts/interfaces/IAccount.sol/IAccount.json +1 -0
- package/contracts/interfaces/IAccountExecute.sol/IAccountExecute.json +1 -0
- package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/interfaces/IPaymaster.sol/IPaymaster.json +1 -0
- package/contracts/interfaces/ISenderCreator.sol/ISenderCreator.json +1 -0
- package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/overrides/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/overrides/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/overrides/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/overrides/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/overrides/UserOperationLib.sol/UserOperationLib.json +1 -0
- package/contracts/utils/Exec.sol/Exec.json +1 -1
- package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -0
- package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
- package/esm/cli/alto.js +13 -6
- package/esm/cli/alto.js.map +1 -1
- package/esm/cli/config/bundler.d.ts +190 -148
- package/esm/cli/config/bundler.js +72 -83
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.d.ts +2 -1
- package/esm/cli/config/options.js +105 -68
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/customTransport.d.ts +3 -3
- package/esm/cli/deploySimulationsContract.d.ts +1 -0
- package/esm/cli/deploySimulationsContract.js +41 -5
- package/esm/cli/deploySimulationsContract.js.map +1 -1
- package/esm/cli/handler.js +48 -52
- package/esm/cli/handler.js.map +1 -1
- package/esm/cli/setupServer.js +46 -47
- package/esm/cli/setupServer.js.map +1 -1
- package/esm/cli/shutDown.d.ts +20 -0
- package/esm/cli/shutDown.js +260 -0
- package/esm/cli/shutDown.js.map +1 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -1
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -1
- package/esm/createConfig.d.ts +9 -2
- package/esm/createConfig.js.map +1 -1
- package/esm/executor/{userOpMonitor.d.ts → bundleManager.d.ts} +38 -32
- package/esm/executor/{userOpMonitor.js → bundleManager.js} +127 -99
- package/esm/executor/bundleManager.js.map +1 -0
- package/esm/executor/executor.d.ts +4 -3
- package/esm/executor/executor.js +33 -20
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +17 -15
- package/esm/executor/executorManager.js +130 -55
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/filterOpsAndEstimateGas.d.ts +17 -2
- package/esm/executor/filterOpsAndEstimateGas.js +100 -77
- package/esm/executor/filterOpsAndEstimateGas.js.map +1 -1
- package/esm/executor/index.d.ts +1 -0
- package/esm/executor/index.js +1 -0
- package/esm/executor/index.js.map +1 -1
- package/esm/executor/senderManager/createMemorySenderManager.js +13 -0
- package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
- package/esm/executor/senderManager/createRedisSenderManager.d.ts +2 -1
- package/esm/executor/senderManager/createRedisSenderManager.js +3 -6
- package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
- package/esm/executor/senderManager/flushOnStartUp.js +4 -4
- package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
- package/esm/executor/senderManager/index.d.ts +1 -0
- package/esm/executor/senderManager/index.js +6 -2
- package/esm/executor/senderManager/index.js.map +1 -1
- package/esm/executor/senderManager/validateAndRefill.js +2 -2
- package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
- package/esm/executor/utilityWalletMonitor.d.ts +4 -4
- package/esm/executor/utilityWalletMonitor.js +1 -1
- package/esm/executor/utilityWalletMonitor.js.map +1 -1
- package/esm/executor/utils.d.ts +7 -2
- package/esm/executor/utils.js +57 -26
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/arbitrumGasPriceManager.d.ts +3 -2
- package/esm/handlers/arbitrumGasPriceManager.js +6 -2
- package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
- package/esm/handlers/eventManager.d.ts +9 -9
- package/esm/handlers/eventManager.js +59 -60
- package/esm/handlers/eventManager.js.map +1 -1
- package/esm/handlers/gasPriceManager.d.ts +8 -9
- package/esm/handlers/gasPriceManager.js +68 -80
- package/esm/handlers/gasPriceManager.js.map +1 -1
- package/esm/handlers/mantleGasPriceManager.d.ts +4 -4
- package/esm/handlers/mantleGasPriceManager.js +4 -4
- package/esm/handlers/mantleGasPriceManager.js.map +1 -1
- package/esm/handlers/optimismManager.d.ts +1 -1
- package/esm/handlers/optimismManager.js +1 -1
- package/esm/handlers/optimismManager.js.map +1 -1
- package/esm/mempool/index.d.ts +1 -1
- package/esm/mempool/index.js +1 -1
- package/esm/mempool/index.js.map +1 -1
- package/esm/mempool/mempool.d.ts +57 -22
- package/esm/mempool/mempool.js +180 -134
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/reputationManager.d.ts +14 -14
- package/esm/mempool/reputationManager.js +36 -39
- package/esm/mempool/reputationManager.js.map +1 -1
- package/esm/mempool/statusManager.d.ts +20 -0
- package/esm/mempool/statusManager.js +143 -0
- package/esm/mempool/statusManager.js.map +1 -0
- package/esm/receiptCache/createMemoryReceiptCache.d.ts +3 -0
- package/esm/receiptCache/createMemoryReceiptCache.js +30 -0
- package/esm/receiptCache/createMemoryReceiptCache.js.map +1 -0
- package/esm/receiptCache/createRedisReceiptCache.d.ts +10 -0
- package/esm/receiptCache/createRedisReceiptCache.js +56 -0
- package/esm/receiptCache/createRedisReceiptCache.js.map +1 -0
- package/esm/receiptCache/index.d.ts +11 -0
- package/esm/receiptCache/index.js +21 -0
- package/esm/receiptCache/index.js.map +1 -0
- package/esm/rpc/createMethodHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationHandler.d.ts +2 -4
- package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations06.d.ts +6 -7
- package/esm/rpc/estimation/gasEstimations06.js +1 -5
- package/esm/rpc/estimation/gasEstimations06.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations07.d.ts +13 -41
- package/esm/rpc/estimation/gasEstimations07.js +27 -34
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -1
- package/esm/{utils/preVerificationGasCalulator.d.ts → rpc/estimation/preVerificationGasCalculator.d.ts} +20 -6
- package/esm/{utils/preVerificationGasCalulator.js → rpc/estimation/preVerificationGasCalculator.js} +95 -47
- package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
- package/esm/rpc/estimation/types.d.ts +4 -2
- package/esm/rpc/estimation/utils.d.ts +10 -8
- package/esm/rpc/estimation/utils.js +54 -48
- package/esm/rpc/estimation/utils.js.map +1 -1
- package/esm/rpc/methods/boost_sendUserOperation.d.ts +304 -0
- package/esm/rpc/methods/debug_bundler_clearReputation.js +1 -1
- package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_clearState.js +1 -1
- package/esm/rpc/methods/debug_bundler_clearState.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_dumpMempool.d.ts +338 -0
- package/esm/rpc/methods/debug_bundler_dumpReputation.js +1 -1
- package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
- package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +622 -14
- package/esm/rpc/methods/eth_estimateUserOperationGas.js +50 -29
- package/esm/rpc/methods/eth_estimateUserOperationGas.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationByHash.d.ts +621 -11
- package/esm/rpc/methods/eth_getUserOperationByHash.js.map +1 -1
- package/esm/rpc/methods/eth_getUserOperationReceipt.d.ts +26 -26
- package/esm/rpc/methods/eth_getUserOperationReceipt.js +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.d.ts +305 -1
- package/esm/rpc/methods/eth_sendUserOperation.js +132 -36
- package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js.map +1 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.d.ts +330 -26
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +15 -27
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/methods/pimlico_simulateAssetChange.d.ts +620 -12
- package/esm/rpc/methods/pimlico_simulateAssetChange.js +14 -19
- package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -1
- package/esm/rpc/rpcHandler.d.ts +21 -22
- package/esm/rpc/rpcHandler.js +15 -17
- package/esm/rpc/rpcHandler.js.map +1 -1
- package/esm/rpc/server.d.ts +5 -5
- package/esm/rpc/server.js +15 -11
- package/esm/rpc/server.js.map +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV06.js +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV06.js.map +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV07.js +1 -1
- package/esm/rpc/validation/BundlerCollectorTracerV07.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.d.ts +13 -14
- package/esm/rpc/validation/SafeValidator.js +24 -24
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV06.d.ts +2 -2
- package/esm/rpc/validation/TracerResultParserV06.js +11 -11
- package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV07.d.ts +2 -2
- package/esm/rpc/validation/TracerResultParserV07.js +13 -13
- package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +18 -14
- package/esm/rpc/validation/UnsafeValidator.js +71 -40
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/store/createMempoolStore.d.ts +1 -1
- package/esm/store/createMempoolStore.js +63 -139
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/store/index.d.ts +4 -75
- package/esm/store/index.js +4 -1
- package/esm/store/index.js.map +1 -1
- package/esm/store/outstanding/index.d.ts +13 -0
- package/esm/store/outstanding/index.js +16 -0
- package/esm/store/outstanding/index.js.map +1 -0
- package/esm/store/{createMemoryOutstandingStore.d.ts → outstanding/memory.d.ts} +14 -13
- package/esm/store/outstanding/memory.js +263 -0
- package/esm/store/outstanding/memory.js.map +1 -0
- package/esm/store/outstanding/redis.d.ts +11 -0
- package/esm/store/outstanding/redis.js +229 -0
- package/esm/store/outstanding/redis.js.map +1 -0
- package/esm/store/outstanding/types.d.ts +19 -0
- package/esm/store/outstanding/types.js +2 -0
- package/esm/store/outstanding/types.js.map +1 -0
- package/esm/store/processing/index.d.ts +11 -0
- package/esm/store/processing/index.js +17 -0
- package/esm/store/processing/index.js.map +1 -0
- package/esm/store/processing/memory.d.ts +16 -0
- package/esm/store/processing/memory.js +58 -0
- package/esm/store/processing/memory.js.map +1 -0
- package/esm/store/processing/redis.d.ts +23 -0
- package/esm/store/processing/redis.js +85 -0
- package/esm/store/processing/redis.js.map +1 -0
- package/esm/store/processing/types.d.ts +10 -0
- package/esm/store/processing/types.js +2 -0
- package/esm/store/processing/types.js.map +1 -0
- package/esm/store/types.d.ts +50 -0
- package/esm/store/types.js +2 -0
- package/esm/store/types.js.map +1 -0
- package/esm/types/contracts/PimlicoSimulations.d.ts +81 -0
- package/esm/types/contracts/PimlicoSimulations.js +105 -0
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -1
- package/esm/types/gasPrice.js +0 -18
- package/esm/types/gasPrice.js.map +1 -1
- package/esm/types/interfaces.d.ts +15 -10
- package/esm/types/mempool.d.ts +3 -0
- package/esm/types/schemas.d.ts +13174 -4732
- package/esm/types/schemas.js +113 -25
- package/esm/types/schemas.js.map +1 -1
- package/esm/types/utils.d.ts +2 -5
- package/esm/types/utils.js +16 -18
- package/esm/types/utils.js.map +1 -1
- package/esm/types/validation.d.ts +7646 -6912
- package/esm/types/validation.js +122 -152
- package/esm/types/validation.js.map +1 -1
- package/esm/utils/eip7702.d.ts +2 -1
- package/esm/utils/eip7702.js +14 -8
- package/esm/utils/eip7702.js.map +1 -1
- package/esm/utils/entryPointOverrides.js +18 -4
- package/esm/utils/entryPointOverrides.js.map +1 -1
- package/esm/utils/helpers.d.ts +2 -1
- package/esm/utils/helpers.js +30 -11
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/index.d.ts +0 -1
- package/esm/utils/index.js +0 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/metrics.d.ts +2 -1
- package/esm/utils/metrics.js +15 -8
- package/esm/utils/metrics.js.map +1 -1
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +8 -9
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +24 -2
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +85 -64
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/index.d.ts +2 -2
- package/esm/utils/minMaxQueue/index.js +4 -3
- package/esm/utils/minMaxQueue/index.js.map +1 -1
- package/esm/utils/rpc-reply.d.ts +3 -3
- package/esm/utils/rpc-reply.js.map +1 -1
- package/esm/utils/toViemStateOverrides.js +7 -7
- package/esm/utils/toViemStateOverrides.js.map +1 -1
- package/esm/utils/userop.d.ts +87 -55
- package/esm/utils/userop.js +138 -248
- package/esm/utils/userop.js.map +1 -1
- package/package.json +4 -2
- package/contracts/build-info/7710b5a048396e70.json +0 -1
- package/esm/executor/userOpMonitor.js.map +0 -1
- package/esm/mempool/monitoring.d.ts +0 -15
- package/esm/mempool/monitoring.js +0 -118
- package/esm/mempool/monitoring.js.map +0 -1
- package/esm/store/createMemoryOutstandingStore.js +0 -240
- package/esm/store/createMemoryOutstandingStore.js.map +0 -1
- package/esm/store/createRedisOutstandingStore.d.ts +0 -27
- package/esm/store/createRedisOutstandingStore.js +0 -344
- package/esm/store/createRedisOutstandingStore.js.map +0 -1
- package/esm/store/createRedisStore.d.ts +0 -9
- package/esm/store/createRedisStore.js +0 -131
- package/esm/store/createRedisStore.js.map +0 -1
- package/esm/store/createStore.d.ts +0 -6
- package/esm/store/createStore.js +0 -66
- package/esm/store/createStore.js.map +0 -1
- package/esm/utils/preVerificationGasCalulator.js.map +0 -1
package/esm/mempool/mempool.js
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { EntryPointV06Abi, EntryPointV07Abi, RpcError
|
|
2
|
-
import { getAAError, getAddressFromInitCodeOrPaymasterAndData,
|
|
1
|
+
import { ERC7769Errors, EntryPointV06Abi, EntryPointV07Abi, RpcError } from "../types/index.js";
|
|
2
|
+
import { getAAError, getAddressFromInitCodeOrPaymasterAndData, getViemEntryPointVersion, isVersion06, isVersion07, jsonStringifyWithBigint, scaleBigIntByPercent } from "../utils/index.js";
|
|
3
3
|
import { getAddress, getContract } from "viem";
|
|
4
|
-
import { generatePrivateKey, privateKeyToAddress } from "viem/accounts";
|
|
5
4
|
import { calculateAA95GasFloor } from "../executor/utils.js";
|
|
5
|
+
import { getEip7702AuthAddress } from "../utils/eip7702.js";
|
|
6
6
|
import { ReputationStatuses } from "./reputationManager.js";
|
|
7
7
|
export class Mempool {
|
|
8
8
|
config;
|
|
9
9
|
metrics;
|
|
10
|
-
|
|
10
|
+
statusManager;
|
|
11
11
|
reputationManager;
|
|
12
|
-
store;
|
|
13
12
|
throttledEntityBundleCount;
|
|
14
13
|
logger;
|
|
15
14
|
validator;
|
|
16
15
|
eventManager;
|
|
17
|
-
|
|
16
|
+
store;
|
|
17
|
+
constructor({ config, metrics, statusManager, reputationManager, validator, store, eventManager }) {
|
|
18
18
|
this.metrics = metrics;
|
|
19
19
|
this.store = store;
|
|
20
20
|
this.config = config;
|
|
21
21
|
this.reputationManager = reputationManager;
|
|
22
|
-
this.
|
|
22
|
+
this.statusManager = statusManager;
|
|
23
23
|
this.validator = validator;
|
|
24
24
|
this.logger = config.getLogger({ module: "mempool" }, {
|
|
25
25
|
level: config.logLevel
|
|
@@ -28,30 +28,49 @@ export class Mempool {
|
|
|
28
28
|
this.eventManager = eventManager;
|
|
29
29
|
}
|
|
30
30
|
// === Methods for handling changing userOp state === //
|
|
31
|
-
async markUserOpsAsSubmitted({ userOps,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
status: "submitted",
|
|
38
|
-
transactionHash
|
|
39
|
-
});
|
|
40
|
-
}));
|
|
31
|
+
async markUserOpsAsSubmitted({ userOps, transactionHash }) {
|
|
32
|
+
const userOpHashes = userOps.map((userOpInfo) => userOpInfo.userOpHash);
|
|
33
|
+
await this.statusManager.set(userOpHashes, {
|
|
34
|
+
status: "submitted",
|
|
35
|
+
transactionHash
|
|
36
|
+
});
|
|
41
37
|
this.metrics.userOpsSubmitted
|
|
42
38
|
.labels({ status: "success" })
|
|
43
39
|
.inc(userOps.length);
|
|
44
40
|
}
|
|
45
41
|
async resubmitUserOps({ userOps, entryPoint, reason }) {
|
|
46
42
|
await Promise.all(userOps.map(async (userOpInfo) => {
|
|
47
|
-
const { userOpHash,
|
|
43
|
+
const { userOpHash, submissionAttempts } = userOpInfo;
|
|
44
|
+
const maxResubmits = this.config.maxResubmits;
|
|
45
|
+
// Check if max resubmits has been reached
|
|
46
|
+
if (maxResubmits !== undefined &&
|
|
47
|
+
submissionAttempts >= maxResubmits) {
|
|
48
|
+
this.logger.warn({
|
|
49
|
+
userOpHash,
|
|
50
|
+
submissionAttempts,
|
|
51
|
+
maxResubmits
|
|
52
|
+
}, "dropping userOp: max resubmits reached");
|
|
53
|
+
const rejectedUserOp = {
|
|
54
|
+
...userOpInfo,
|
|
55
|
+
reason: "max resubmits reached"
|
|
56
|
+
};
|
|
57
|
+
await this.dropUserOps(entryPoint, [rejectedUserOp]);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
48
60
|
this.logger.warn({
|
|
49
61
|
userOpHash,
|
|
62
|
+
submissionAttempts,
|
|
50
63
|
reason
|
|
51
64
|
}, "resubmitting user operation");
|
|
52
|
-
|
|
53
|
-
await this.store.
|
|
54
|
-
|
|
65
|
+
// Complete processing before re-adding to outstanding pool.
|
|
66
|
+
await this.store.removeProcessing({
|
|
67
|
+
entryPoint,
|
|
68
|
+
userOpInfo
|
|
69
|
+
});
|
|
70
|
+
const [success, failureReason] = await this.add({
|
|
71
|
+
userOpInfo,
|
|
72
|
+
entryPoint
|
|
73
|
+
});
|
|
55
74
|
if (!success) {
|
|
56
75
|
this.logger.error({ userOpHash, failureReason }, "Failed to resubmit user operation");
|
|
57
76
|
const rejectedUserOp = {
|
|
@@ -66,13 +85,17 @@ export class Mempool {
|
|
|
66
85
|
async dropUserOps(entryPoint, rejectedUserOps) {
|
|
67
86
|
await Promise.all(rejectedUserOps.map(async (rejectedUserOp) => {
|
|
68
87
|
const { userOp, reason, userOpHash } = rejectedUserOp;
|
|
69
|
-
|
|
70
|
-
await this.store.
|
|
88
|
+
// Complete processing since userOp is dropped.
|
|
89
|
+
await this.store.removeProcessing({
|
|
90
|
+
entryPoint,
|
|
91
|
+
userOpInfo: rejectedUserOp
|
|
92
|
+
});
|
|
71
93
|
this.eventManager.emitDropped(userOpHash, reason, getAAError(reason));
|
|
72
|
-
await this.
|
|
94
|
+
await this.statusManager.set([userOpHash], {
|
|
73
95
|
status: "rejected",
|
|
74
96
|
transactionHash: null
|
|
75
97
|
});
|
|
98
|
+
this.metrics.userOpsDropped.labels({ reason }).inc();
|
|
76
99
|
this.logger.warn({
|
|
77
100
|
userOperation: jsonStringifyWithBigint(userOp),
|
|
78
101
|
userOpHash,
|
|
@@ -80,30 +103,29 @@ export class Mempool {
|
|
|
80
103
|
}, "user operation rejected");
|
|
81
104
|
}));
|
|
82
105
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
106
|
+
// Remove userOps from processing store.
|
|
107
|
+
// should be called when userOps are included onchain.
|
|
108
|
+
async removeProcessing({ userOps, entryPoint }) {
|
|
109
|
+
await Promise.all(userOps.map(async (userOpInfo) => {
|
|
110
|
+
await this.store.removeProcessing({
|
|
111
|
+
entryPoint,
|
|
112
|
+
userOpInfo
|
|
113
|
+
});
|
|
86
114
|
}));
|
|
87
115
|
}
|
|
88
116
|
// === Methods for dropping mempool entries === //
|
|
89
117
|
async dumpOutstanding(entryPoint) {
|
|
90
118
|
return await this.store.dumpOutstanding(entryPoint);
|
|
91
119
|
}
|
|
92
|
-
async dumpProcessing(entryPoint) {
|
|
93
|
-
return await this.store.dumpProcessing(entryPoint);
|
|
94
|
-
}
|
|
95
|
-
async dumpSubmittedOps(entryPoint) {
|
|
96
|
-
return await this.store.dumpSubmitted(entryPoint);
|
|
97
|
-
}
|
|
98
120
|
// === Methods for entity management === //
|
|
99
121
|
async checkEntityMultipleRoleViolation(entryPoint, op) {
|
|
100
122
|
if (!this.config.safeMode) {
|
|
101
|
-
return
|
|
123
|
+
return;
|
|
102
124
|
}
|
|
103
125
|
const knownEntities = await this.getKnownEntities(entryPoint);
|
|
104
126
|
if (knownEntities.paymasters.has(op.sender) ||
|
|
105
127
|
knownEntities.factories.has(op.sender)) {
|
|
106
|
-
throw new RpcError(`The sender address "${op.sender}" is used as a different entity in another UserOperation currently in mempool`,
|
|
128
|
+
throw new RpcError(`The sender address "${op.sender}" is used as a different entity in another UserOperation currently in mempool`, ERC7769Errors.OpcodeValidation);
|
|
107
129
|
}
|
|
108
130
|
let paymaster = null;
|
|
109
131
|
let factory = null;
|
|
@@ -116,12 +138,11 @@ export class Mempool {
|
|
|
116
138
|
factory = op.factory;
|
|
117
139
|
}
|
|
118
140
|
if (paymaster && knownEntities.sender.has(paymaster)) {
|
|
119
|
-
throw new RpcError(`A Paymaster at ${paymaster} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`,
|
|
141
|
+
throw new RpcError(`A Paymaster at ${paymaster} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`, ERC7769Errors.OpcodeValidation);
|
|
120
142
|
}
|
|
121
143
|
if (factory && knownEntities.sender.has(factory)) {
|
|
122
|
-
throw new RpcError(`A Factory at ${factory} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`,
|
|
144
|
+
throw new RpcError(`A Factory at ${factory} in this UserOperation is used as a sender entity in another UserOperation currently in mempool.`, ERC7769Errors.OpcodeValidation);
|
|
123
145
|
}
|
|
124
|
-
return Promise.resolve();
|
|
125
146
|
}
|
|
126
147
|
async getKnownEntities(entryPoint) {
|
|
127
148
|
// TODO: this won't work with redis
|
|
@@ -151,21 +172,13 @@ export class Mempool {
|
|
|
151
172
|
return entities;
|
|
152
173
|
}
|
|
153
174
|
// === Methods for adding userOps / creating bundles === //
|
|
154
|
-
async add(
|
|
155
|
-
const userOpHash =
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
chainId: this.config.chainId,
|
|
159
|
-
publicClient: this.config.publicClient
|
|
160
|
-
});
|
|
161
|
-
// Check if the exact same userOperation is already in the mempool.
|
|
162
|
-
if (await this.store.isInMempool({ userOpHash, entryPoint })) {
|
|
163
|
-
return [false, "Already known"];
|
|
164
|
-
}
|
|
165
|
-
// Check if there is a conflicting userOp already being processed
|
|
166
|
-
const validation = await this.store.validateSubmittedOrProcessing({
|
|
175
|
+
async add({ userOpInfo, entryPoint }) {
|
|
176
|
+
const { userOp, userOpHash } = userOpInfo;
|
|
177
|
+
// Check if the userOp is already known or conflicts with existing operations
|
|
178
|
+
const validation = await this.store.checkDuplicatesAndConflicts({
|
|
167
179
|
entryPoint,
|
|
168
|
-
userOp
|
|
180
|
+
userOp,
|
|
181
|
+
userOpHash
|
|
169
182
|
});
|
|
170
183
|
if (!validation.valid) {
|
|
171
184
|
return [false, validation.reason];
|
|
@@ -176,7 +189,7 @@ export class Mempool {
|
|
|
176
189
|
userOp
|
|
177
190
|
});
|
|
178
191
|
if (conflicting) {
|
|
179
|
-
const { userOpInfo,
|
|
192
|
+
const { userOpInfo, conflictReason } = conflicting;
|
|
180
193
|
const conflictingUserOp = userOpInfo.userOp;
|
|
181
194
|
const hasHigherPriorityFee = userOp.maxPriorityFeePerGas >=
|
|
182
195
|
scaleBigIntByPercent(conflictingUserOp.maxPriorityFeePerGas, 110n);
|
|
@@ -184,13 +197,23 @@ export class Mempool {
|
|
|
184
197
|
scaleBigIntByPercent(conflictingUserOp.maxFeePerGas, 110n);
|
|
185
198
|
const hasHigherFees = hasHigherPriorityFee && hasHigherMaxFee;
|
|
186
199
|
if (!hasHigherFees) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
200
|
+
let message;
|
|
201
|
+
if (conflictReason === "conflicting_deployment") {
|
|
202
|
+
message =
|
|
203
|
+
"AA10 sender already constructed: A conflicting userOperation with initCode for this sender is already in the mempool";
|
|
204
|
+
}
|
|
205
|
+
else if (conflictReason === "conflicting_7702_auth") {
|
|
206
|
+
message =
|
|
207
|
+
"AA10 sender already constructed: Sender already has an inflight EIP-7702 authorization";
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
message =
|
|
211
|
+
"AA25 invalid account nonce: User operation already present in mempool";
|
|
212
|
+
}
|
|
190
213
|
// Re-add to outstanding as it wasn't replaced
|
|
191
214
|
await this.store.addOutstanding({
|
|
192
215
|
entryPoint,
|
|
193
|
-
|
|
216
|
+
userOpInfos: [conflicting.userOpInfo]
|
|
194
217
|
});
|
|
195
218
|
return [false, `${message}, bump the gas price by minimum 10%`];
|
|
196
219
|
}
|
|
@@ -199,15 +222,9 @@ export class Mempool {
|
|
|
199
222
|
await this.reputationManager.increaseUserOpSeenStatus(userOp, entryPoint);
|
|
200
223
|
await this.store.addOutstanding({
|
|
201
224
|
entryPoint,
|
|
202
|
-
|
|
203
|
-
userOp,
|
|
204
|
-
userOpHash,
|
|
205
|
-
referencedContracts,
|
|
206
|
-
addedToMempool: Date.now(),
|
|
207
|
-
submissionAttempts: 0
|
|
208
|
-
}
|
|
225
|
+
userOpInfos: [userOpInfo]
|
|
209
226
|
});
|
|
210
|
-
await this.
|
|
227
|
+
await this.statusManager.set([userOpHash], {
|
|
211
228
|
status: "not_submitted",
|
|
212
229
|
transactionHash: null
|
|
213
230
|
});
|
|
@@ -215,7 +232,33 @@ export class Mempool {
|
|
|
215
232
|
return [true, ""];
|
|
216
233
|
}
|
|
217
234
|
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: <explanation>
|
|
218
|
-
async shouldSkip({ userOpInfo, paymasterDeposit, stakedEntityCount, knownEntities, senders, storageMap, entryPoint }) {
|
|
235
|
+
async shouldSkip({ userOpInfo, paymasterDeposit, touchedEip7702Auth, stakedEntityCount, knownEntities, senders, storageMap, entryPoint }) {
|
|
236
|
+
const { userOp, userOpHash, referencedContracts } = userOpInfo;
|
|
237
|
+
// Check conflicting EIP-7702 auths (same sender, different delegate address)
|
|
238
|
+
if (userOp.eip7702Auth) {
|
|
239
|
+
const auth = getEip7702AuthAddress(userOp.eip7702Auth);
|
|
240
|
+
const existingAuth = touchedEip7702Auth.get(userOp.sender);
|
|
241
|
+
if (existingAuth && existingAuth !== auth) {
|
|
242
|
+
this.logger.warn({
|
|
243
|
+
userOpHash,
|
|
244
|
+
conflictingAuth: auth,
|
|
245
|
+
existingAuth
|
|
246
|
+
}, "Conflicting EIP-7702 auths");
|
|
247
|
+
return {
|
|
248
|
+
skip: true,
|
|
249
|
+
removeOutstanding: false,
|
|
250
|
+
paymasterDeposit,
|
|
251
|
+
touchedEip7702Auth,
|
|
252
|
+
stakedEntityCount,
|
|
253
|
+
knownEntities,
|
|
254
|
+
senders,
|
|
255
|
+
storageMap
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
if (!existingAuth) {
|
|
259
|
+
touchedEip7702Auth.set(userOp.sender, auth);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
219
262
|
if (!this.config.safeMode) {
|
|
220
263
|
return {
|
|
221
264
|
skip: false,
|
|
@@ -223,10 +266,10 @@ export class Mempool {
|
|
|
223
266
|
stakedEntityCount,
|
|
224
267
|
knownEntities,
|
|
225
268
|
senders,
|
|
226
|
-
storageMap
|
|
269
|
+
storageMap,
|
|
270
|
+
touchedEip7702Auth
|
|
227
271
|
};
|
|
228
272
|
}
|
|
229
|
-
const { userOp, userOpHash, referencedContracts } = userOpInfo;
|
|
230
273
|
const isUserOpV06 = isVersion06(userOp);
|
|
231
274
|
const paymaster = isUserOpV06
|
|
232
275
|
? getAddressFromInitCodeOrPaymasterAndData(userOp.paymasterAndData)
|
|
@@ -245,7 +288,8 @@ export class Mempool {
|
|
|
245
288
|
stakedEntityCount,
|
|
246
289
|
knownEntities,
|
|
247
290
|
senders,
|
|
248
|
-
storageMap
|
|
291
|
+
storageMap,
|
|
292
|
+
touchedEip7702Auth
|
|
249
293
|
};
|
|
250
294
|
}
|
|
251
295
|
if (paymasterStatus === ReputationStatuses.throttled &&
|
|
@@ -261,7 +305,8 @@ export class Mempool {
|
|
|
261
305
|
stakedEntityCount,
|
|
262
306
|
knownEntities,
|
|
263
307
|
senders,
|
|
264
|
-
storageMap
|
|
308
|
+
storageMap,
|
|
309
|
+
touchedEip7702Auth
|
|
265
310
|
};
|
|
266
311
|
}
|
|
267
312
|
if (factoryStatus === ReputationStatuses.throttled &&
|
|
@@ -277,7 +322,8 @@ export class Mempool {
|
|
|
277
322
|
stakedEntityCount,
|
|
278
323
|
knownEntities,
|
|
279
324
|
senders,
|
|
280
|
-
storageMap
|
|
325
|
+
storageMap,
|
|
326
|
+
touchedEip7702Auth
|
|
281
327
|
};
|
|
282
328
|
}
|
|
283
329
|
if (senders.has(userOp.sender) &&
|
|
@@ -292,14 +338,15 @@ export class Mempool {
|
|
|
292
338
|
stakedEntityCount,
|
|
293
339
|
knownEntities,
|
|
294
340
|
senders,
|
|
295
|
-
storageMap
|
|
341
|
+
storageMap,
|
|
342
|
+
touchedEip7702Auth
|
|
296
343
|
};
|
|
297
344
|
}
|
|
298
345
|
let validationResult;
|
|
299
346
|
try {
|
|
300
347
|
let queuedUserOps = [];
|
|
301
348
|
if (!isUserOpV06) {
|
|
302
|
-
queuedUserOps = await this.
|
|
349
|
+
queuedUserOps = await this.getQueuedOutstandingUserOps({
|
|
303
350
|
userOp,
|
|
304
351
|
entryPoint
|
|
305
352
|
});
|
|
@@ -316,7 +363,7 @@ export class Mempool {
|
|
|
316
363
|
userOpHash,
|
|
317
364
|
error: JSON.stringify(e)
|
|
318
365
|
}, "2nd Validation error");
|
|
319
|
-
this.store.removeOutstanding({ entryPoint, userOpHash });
|
|
366
|
+
await this.store.removeOutstanding({ entryPoint, userOpHash });
|
|
320
367
|
this.reputationManager.decreaseUserOpSeenStatus(userOp, entryPoint, e instanceof RpcError ? e.message : JSON.stringify(e));
|
|
321
368
|
return {
|
|
322
369
|
skip: true,
|
|
@@ -324,7 +371,8 @@ export class Mempool {
|
|
|
324
371
|
stakedEntityCount,
|
|
325
372
|
knownEntities,
|
|
326
373
|
senders,
|
|
327
|
-
storageMap
|
|
374
|
+
storageMap,
|
|
375
|
+
touchedEip7702Auth
|
|
328
376
|
};
|
|
329
377
|
}
|
|
330
378
|
for (const storageAddress of Object.keys(validationResult.storageMap)) {
|
|
@@ -341,7 +389,8 @@ export class Mempool {
|
|
|
341
389
|
stakedEntityCount,
|
|
342
390
|
knownEntities,
|
|
343
391
|
senders,
|
|
344
|
-
storageMap
|
|
392
|
+
storageMap,
|
|
393
|
+
touchedEip7702Auth
|
|
345
394
|
};
|
|
346
395
|
}
|
|
347
396
|
}
|
|
@@ -369,7 +418,8 @@ export class Mempool {
|
|
|
369
418
|
stakedEntityCount,
|
|
370
419
|
knownEntities,
|
|
371
420
|
senders,
|
|
372
|
-
storageMap
|
|
421
|
+
storageMap,
|
|
422
|
+
touchedEip7702Auth
|
|
373
423
|
};
|
|
374
424
|
}
|
|
375
425
|
stakedEntityCount[paymaster] =
|
|
@@ -386,7 +436,8 @@ export class Mempool {
|
|
|
386
436
|
stakedEntityCount,
|
|
387
437
|
knownEntities,
|
|
388
438
|
senders,
|
|
389
|
-
storageMap
|
|
439
|
+
storageMap,
|
|
440
|
+
touchedEip7702Auth
|
|
390
441
|
};
|
|
391
442
|
}
|
|
392
443
|
async getBundles(maxBundleCount) {
|
|
@@ -394,7 +445,6 @@ export class Mempool {
|
|
|
394
445
|
return await this.process({
|
|
395
446
|
entryPoint,
|
|
396
447
|
maxGasLimit: this.config.maxGasPerBundle,
|
|
397
|
-
minOpsPerBundle: 1,
|
|
398
448
|
maxBundleCount
|
|
399
449
|
});
|
|
400
450
|
});
|
|
@@ -403,34 +453,34 @@ export class Mempool {
|
|
|
403
453
|
return bundles;
|
|
404
454
|
}
|
|
405
455
|
// Returns a bundle of userOperations in array format.
|
|
406
|
-
async process({ maxGasLimit, entryPoint,
|
|
407
|
-
|
|
408
|
-
const
|
|
409
|
-
|
|
456
|
+
async process({ maxGasLimit, entryPoint, maxBundleCount }) {
|
|
457
|
+
const bundles = [];
|
|
458
|
+
const batchSize = this.config.mempoolPopBatchSize;
|
|
459
|
+
// Pop batch of userOps.
|
|
460
|
+
const poppedUserOps = await this.store.popOutstanding(entryPoint, batchSize);
|
|
461
|
+
if (poppedUserOps.length === 0) {
|
|
410
462
|
return [];
|
|
411
463
|
}
|
|
412
|
-
//
|
|
413
|
-
const
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
// Process operations until no more are available or we hit maxBundleCount
|
|
417
|
-
while (await this.store.peekOutstanding(entryPoint)) {
|
|
418
|
-
// If maxBundles is set and we reached the limit, break
|
|
464
|
+
// Keep track of unused ops from the batch
|
|
465
|
+
const unusedUserOps = [...poppedUserOps];
|
|
466
|
+
while (unusedUserOps.length > 0) {
|
|
467
|
+
// If maxBundles is set and we reached the limit, put back all unused ops and break.
|
|
419
468
|
if (maxBundleCount && bundles.length >= maxBundleCount) {
|
|
469
|
+
if (unusedUserOps.length > 0) {
|
|
470
|
+
await this.store.addOutstanding({
|
|
471
|
+
entryPoint,
|
|
472
|
+
userOpInfos: unusedUserOps
|
|
473
|
+
});
|
|
474
|
+
}
|
|
420
475
|
break;
|
|
421
476
|
}
|
|
422
|
-
//
|
|
423
|
-
|
|
424
|
-
if (
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
}
|
|
430
|
-
else {
|
|
431
|
-
version = "0.6";
|
|
432
|
-
}
|
|
433
|
-
// Setup for next bundle
|
|
477
|
+
// Peek next userOp from unused batch.
|
|
478
|
+
const nextUserOp = unusedUserOps[0];
|
|
479
|
+
if (!nextUserOp)
|
|
480
|
+
break;
|
|
481
|
+
// Derive version.
|
|
482
|
+
const version = getViemEntryPointVersion(nextUserOp.userOp, entryPoint);
|
|
483
|
+
// Setup next bundle.
|
|
434
484
|
const currentBundle = {
|
|
435
485
|
entryPoint,
|
|
436
486
|
version,
|
|
@@ -438,33 +488,21 @@ export class Mempool {
|
|
|
438
488
|
submissionAttempts: 0
|
|
439
489
|
};
|
|
440
490
|
let gasUsed = 0n;
|
|
491
|
+
let touchedEip7702Auth = new Map();
|
|
441
492
|
let paymasterDeposit = {};
|
|
442
493
|
let stakedEntityCount = {};
|
|
443
494
|
let senders = new Set();
|
|
444
495
|
let knownEntities = await this.getKnownEntities(entryPoint);
|
|
445
496
|
let storageMap = {};
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
// Keep adding ops to current bundle
|
|
450
|
-
while (await this.store.peekOutstanding(entryPoint)) {
|
|
451
|
-
const userOpInfo = await this.store.popOutstanding(entryPoint);
|
|
452
|
-
if (!userOpInfo) {
|
|
497
|
+
while (unusedUserOps.length > 0) {
|
|
498
|
+
const currentUserOp = unusedUserOps.shift();
|
|
499
|
+
if (!currentUserOp)
|
|
453
500
|
break;
|
|
454
|
-
}
|
|
455
|
-
if (seenOps.has(userOpInfo.userOpHash)) {
|
|
456
|
-
breakLoop = true;
|
|
457
|
-
await this.store.addOutstanding({
|
|
458
|
-
entryPoint,
|
|
459
|
-
userOpInfo
|
|
460
|
-
});
|
|
461
|
-
break;
|
|
462
|
-
}
|
|
463
|
-
seenOps.add(userOpInfo.userOpHash);
|
|
464
|
-
const { userOp } = userOpInfo;
|
|
501
|
+
const { userOp } = currentUserOp;
|
|
465
502
|
// Check if we should skip this operation
|
|
466
503
|
const skipResult = await this.shouldSkip({
|
|
467
|
-
userOpInfo,
|
|
504
|
+
userOpInfo: currentUserOp,
|
|
505
|
+
touchedEip7702Auth,
|
|
468
506
|
paymasterDeposit,
|
|
469
507
|
stakedEntityCount,
|
|
470
508
|
knownEntities,
|
|
@@ -477,22 +515,20 @@ export class Mempool {
|
|
|
477
515
|
if (!skipResult.removeOutstanding) {
|
|
478
516
|
await this.store.addOutstanding({
|
|
479
517
|
entryPoint,
|
|
480
|
-
|
|
518
|
+
userOpInfos: [currentUserOp]
|
|
481
519
|
});
|
|
482
520
|
}
|
|
521
|
+
// Continue with next op from batch
|
|
483
522
|
continue;
|
|
484
523
|
}
|
|
485
|
-
const beneficiary = this.config.utilityPrivateKey?.address ||
|
|
486
|
-
privateKeyToAddress(generatePrivateKey());
|
|
487
524
|
gasUsed += calculateAA95GasFloor({
|
|
488
525
|
userOps: [userOp],
|
|
489
|
-
beneficiary
|
|
526
|
+
beneficiary: this.config.utilityWalletAddress
|
|
490
527
|
});
|
|
491
|
-
//
|
|
492
|
-
if (gasUsed > maxGasLimit
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
await this.store.addOutstanding({ entryPoint, userOpInfo });
|
|
528
|
+
// Check bundle gasLimit if bundle is not empty
|
|
529
|
+
if (currentBundle.userOps.length > 0 && gasUsed > maxGasLimit) {
|
|
530
|
+
// Put current op back to front of unused for next bundle
|
|
531
|
+
unusedUserOps.unshift(currentUserOp);
|
|
496
532
|
break;
|
|
497
533
|
}
|
|
498
534
|
// Update state based on skip result
|
|
@@ -501,10 +537,20 @@ export class Mempool {
|
|
|
501
537
|
knownEntities = skipResult.knownEntities;
|
|
502
538
|
senders = skipResult.senders;
|
|
503
539
|
storageMap = skipResult.storageMap;
|
|
540
|
+
touchedEip7702Auth = skipResult.touchedEip7702Auth;
|
|
504
541
|
this.reputationManager.decreaseUserOpCount(userOp);
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
542
|
+
// Track the operation as active (being bundled).
|
|
543
|
+
await this.store.addProcessing({
|
|
544
|
+
entryPoint,
|
|
545
|
+
userOpInfo: currentUserOp
|
|
546
|
+
});
|
|
547
|
+
// Add userOp to current bundle.
|
|
548
|
+
currentBundle.userOps.push(currentUserOp);
|
|
549
|
+
// Try to fetch more userOps if we've exhausted this batch.
|
|
550
|
+
if (unusedUserOps.length === 0) {
|
|
551
|
+
const morePoppedOps = await this.store.popOutstanding(entryPoint, batchSize);
|
|
552
|
+
unusedUserOps.push(...morePoppedOps);
|
|
553
|
+
}
|
|
508
554
|
}
|
|
509
555
|
if (currentBundle.userOps.length > 0) {
|
|
510
556
|
bundles.push(currentBundle);
|
|
@@ -517,7 +563,7 @@ export class Mempool {
|
|
|
517
563
|
this.store.clearOutstanding(entryPoint);
|
|
518
564
|
}
|
|
519
565
|
}
|
|
520
|
-
async
|
|
566
|
+
async getQueuedOutstandingUserOps(args) {
|
|
521
567
|
return await this.store.getQueuedOutstandingUserOps(args);
|
|
522
568
|
}
|
|
523
569
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mempool.js","sourceRoot":"","sources":["../../mempool/mempool.ts"],"names":[],"mappings":"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"}
|