@pimlico/alto 0.0.18 → 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 -0
- package/contracts/ERC165.sol/ERC165.json +1 -0
- package/contracts/ERC20.sol/ERC20.json +1 -0
- package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -0
- package/contracts/EntryPoint.sol/EntryPoint.json +1 -0
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/contracts/Exec.sol/Exec.json +1 -0
- package/contracts/IAccount.sol/IAccount.json +1 -0
- package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -0
- package/contracts/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/IERC165.sol/IERC165.json +1 -0
- package/contracts/IERC5267.sol/IERC5267.json +1 -0
- package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride08.json +1 -0
- package/contracts/IEntryPointFilterOpsOverride.sol/IEntryPointFilterOpsOverride09.json +1 -0
- package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -0
- package/contracts/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/IPaymaster.sol/IPaymaster.json +1 -0
- package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -0
- package/contracts/IStakeManager.sol/IStakeManager.json +1 -0
- package/contracts/LibBytes.sol/LibBytes.json +1 -0
- package/contracts/Math.sol/Math.json +1 -0
- package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -0
- package/contracts/NonceManager.sol/NonceManager.json +1 -0
- package/contracts/Panic.sol/Panic.json +1 -0
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
- package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -0
- package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -0
- package/contracts/SafeCast.sol/SafeCast.json +1 -0
- package/contracts/SenderCreator.sol/SenderCreator.json +1 -0
- package/contracts/ShortStrings.sol/ShortStrings.json +1 -0
- package/contracts/SignedMath.sol/SignedMath.json +1 -0
- package/contracts/SimulationOverrideHelper.sol/SimulationOverrideHelper.json +1 -0
- package/contracts/StakeManager.sol/StakeManager.json +1 -0
- package/contracts/StorageSlot.sol/StorageSlot.json +1 -0
- package/contracts/Strings.sol/Strings.json +1 -0
- package/contracts/TransientSlot.sol/TransientSlot.json +1 -0
- package/contracts/UserOperation.sol/UserOperationLib.json +1 -0
- package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -0
- 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/8dbf8a4ad39019b5.json +1 -0
- package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
- 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 -0
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- 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 -0
- 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 -0
- package/contracts/utils/StorageSlot.sol/StorageSlot.json +1 -0
- package/contracts/v09/EntryPoint.sol/EntryPoint.json +1 -0
- package/esm/cli/alto.js +16 -7
- package/esm/cli/alto.js.map +1 -1
- package/esm/cli/config/bundler.d.ts +690 -540
- package/esm/cli/config/bundler.js +101 -66
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.d.ts +2 -1
- package/esm/cli/config/options.js +207 -59
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/customTransport.d.ts +3 -3
- package/esm/cli/customTransport.js +4 -3
- package/esm/cli/customTransport.js.map +1 -1
- package/esm/cli/deploySimulationsContract.d.ts +5 -2
- package/esm/cli/deploySimulationsContract.js +108 -40
- package/esm/cli/deploySimulationsContract.js.map +1 -1
- package/esm/cli/handler.js +94 -22
- package/esm/cli/handler.js.map +1 -1
- package/esm/cli/instrumentation.js +7 -1
- package/esm/cli/instrumentation.js.map +1 -1
- package/esm/cli/parseArgs.js.map +1 -1
- package/esm/cli/setupServer.js +63 -63
- 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 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride09.json +1 -0
- package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations09.json +1 -0
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
- package/esm/createConfig.d.ts +12 -4
- package/esm/createConfig.js +2 -0
- package/esm/createConfig.js.map +1 -1
- package/esm/executor/bundleManager.d.ts +111 -0
- package/esm/executor/bundleManager.js +354 -0
- package/esm/executor/bundleManager.js.map +1 -0
- package/esm/executor/executor.d.ts +18 -23
- package/esm/executor/executor.js +183 -119
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +39 -88
- package/esm/executor/executorManager.js +325 -550
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/filterOpsAndEstimateGas.d.ts +39 -0
- package/esm/executor/filterOpsAndEstimateGas.js +280 -0
- package/esm/executor/filterOpsAndEstimateGas.js.map +1 -0
- package/esm/executor/getBundleStatus.d.ts +25 -0
- package/esm/executor/getBundleStatus.js +35 -0
- package/esm/executor/getBundleStatus.js.map +1 -0
- 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.d.ts +3 -3
- package/esm/executor/senderManager/createMemorySenderManager.js +14 -1
- package/esm/executor/senderManager/createMemorySenderManager.js.map +1 -1
- package/esm/executor/senderManager/createRedisSenderManager.d.ts +5 -4
- package/esm/executor/senderManager/createRedisSenderManager.js +4 -7
- package/esm/executor/senderManager/createRedisSenderManager.js.map +1 -1
- package/esm/executor/senderManager/flushOnStartUp.d.ts +3 -3
- package/esm/executor/senderManager/flushOnStartUp.js +4 -4
- package/esm/executor/senderManager/flushOnStartUp.js.map +1 -1
- package/esm/executor/senderManager/index.d.ts +4 -3
- package/esm/executor/senderManager/index.js +6 -2
- package/esm/executor/senderManager/index.js.map +1 -1
- package/esm/executor/senderManager/validateAndRefill.d.ts +4 -4
- package/esm/executor/senderManager/validateAndRefill.js +3 -3
- package/esm/executor/senderManager/validateAndRefill.js.map +1 -1
- package/esm/executor/utilityWalletMonitor.d.ts +5 -5
- package/esm/executor/utilityWalletMonitor.js +1 -1
- package/esm/executor/utilityWalletMonitor.js.map +1 -1
- package/esm/executor/utils.d.ts +14 -6
- package/esm/executor/utils.js +68 -37
- package/esm/executor/utils.js.map +1 -1
- package/esm/handlers/arbitrumGasPriceManager.d.ts +4 -3
- package/esm/handlers/arbitrumGasPriceManager.js +9 -5
- package/esm/handlers/arbitrumGasPriceManager.js.map +1 -1
- package/esm/handlers/eventManager.d.ts +19 -18
- package/esm/handlers/eventManager.js +81 -61
- package/esm/handlers/eventManager.js.map +1 -1
- package/esm/handlers/gasPriceManager.d.ts +12 -10
- package/esm/handlers/gasPriceManager.js +79 -125
- package/esm/handlers/gasPriceManager.js.map +1 -1
- package/esm/handlers/mantleGasPriceManager.d.ts +5 -5
- package/esm/handlers/mantleGasPriceManager.js +4 -4
- package/esm/handlers/mantleGasPriceManager.js.map +1 -1
- package/esm/handlers/optimismManager.d.ts +2 -2
- 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 +71 -33
- package/esm/mempool/mempool.js +231 -155
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/mempool/reputationManager.d.ts +36 -36
- package/esm/mempool/reputationManager.js +93 -97
- 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.d.ts +2 -2
- package/esm/rpc/createMethodHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationHandler.d.ts +15 -16
- package/esm/rpc/estimation/gasEstimationHandler.js +24 -24
- package/esm/rpc/estimation/gasEstimationHandler.js.map +1 -1
- package/esm/rpc/estimation/gasEstimations06.d.ts +18 -0
- package/esm/rpc/estimation/gasEstimations06.js +45 -0
- package/esm/rpc/estimation/gasEstimations06.js.map +1 -0
- package/esm/rpc/estimation/gasEstimations07.d.ts +63 -0
- package/esm/rpc/estimation/gasEstimations07.js +384 -0
- package/esm/rpc/estimation/gasEstimations07.js.map +1 -0
- package/esm/rpc/estimation/preVerificationGasCalculator.d.ts +56 -0
- package/esm/rpc/estimation/preVerificationGasCalculator.js +467 -0
- package/esm/rpc/estimation/preVerificationGasCalculator.js.map +1 -0
- package/esm/rpc/estimation/types.d.ts +25 -111
- package/esm/rpc/estimation/types.js +5 -121
- package/esm/rpc/estimation/types.js.map +1 -1
- package/esm/rpc/estimation/utils.d.ts +69 -0
- package/esm/rpc/estimation/utils.js +240 -0
- package/esm/rpc/estimation/utils.js.map +1 -0
- package/{lib/rpc/methods/pimlico_sendUserOperationNow.d.ts → esm/rpc/methods/boost_sendUserOperation.d.ts} +299 -385
- package/esm/rpc/methods/boost_sendUserOperation.js +57 -0
- package/esm/rpc/methods/boost_sendUserOperation.js.map +1 -0
- package/esm/rpc/methods/debug_bundler_clearReputation.js +2 -2
- package/esm/rpc/methods/debug_bundler_clearReputation.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_clearState.js +2 -2
- 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_dumpMempool.js +1 -1
- package/esm/rpc/methods/debug_bundler_dumpMempool.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_dumpReputation.js +2 -2
- package/esm/rpc/methods/debug_bundler_dumpReputation.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_getStakeStatus.js +1 -2
- package/esm/rpc/methods/debug_bundler_getStakeStatus.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_sendBundleNow.js +10 -2
- package/esm/rpc/methods/debug_bundler_sendBundleNow.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_setBundlingMode.js +1 -1
- package/esm/rpc/methods/debug_bundler_setBundlingMode.js.map +1 -1
- package/esm/rpc/methods/debug_bundler_setReputation.js +1 -1
- package/esm/rpc/methods/debug_bundler_setReputation.js.map +1 -1
- package/esm/rpc/methods/eth_chainId.js +1 -1
- package/esm/rpc/methods/eth_chainId.js.map +1 -1
- package/esm/rpc/methods/eth_estimateUserOperationGas.d.ts +910 -301
- package/esm/rpc/methods/eth_estimateUserOperationGas.js +228 -12
- 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 +8 -8
- 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 +10 -4
- package/esm/rpc/methods/eth_getUserOperationReceipt.js.map +1 -1
- package/esm/rpc/methods/eth_sendUserOperation.d.ts +319 -2
- package/esm/rpc/methods/eth_sendUserOperation.js +223 -20
- package/esm/rpc/methods/eth_sendUserOperation.js.map +1 -1
- package/esm/rpc/methods/eth_supportedEntryPoints.js +1 -1
- package/esm/rpc/methods/eth_supportedEntryPoints.js.map +1 -1
- package/esm/rpc/methods/index.js +11 -6
- package/esm/rpc/methods/index.js.map +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationGasPrice.js.map +1 -1
- package/esm/rpc/methods/pimlico_getUserOperationStatus.d.ts +6 -6
- package/esm/rpc/methods/pimlico_getUserOperationStatus.js +3 -3
- 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 +27 -24
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/{lib/rpc/methods/eth_estimateUserOperationGas.d.ts → esm/rpc/methods/pimlico_simulateAssetChange.d.ts} +891 -333
- package/esm/rpc/methods/pimlico_simulateAssetChange.js +113 -0
- package/esm/rpc/methods/pimlico_simulateAssetChange.js.map +1 -0
- package/esm/rpc/rpcHandler.d.ts +30 -54
- package/esm/rpc/rpcHandler.js +137 -315
- 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 +2 -2
- 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 +20 -22
- package/esm/rpc/validation/SafeValidator.js +87 -100
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV06.d.ts +3 -3
- package/esm/rpc/validation/TracerResultParserV06.js +19 -19
- package/esm/rpc/validation/TracerResultParserV06.js.map +1 -1
- package/esm/rpc/validation/TracerResultParserV07.d.ts +3 -3
- package/esm/rpc/validation/TracerResultParserV07.js +25 -25
- package/esm/rpc/validation/TracerResultParserV07.js.map +1 -1
- package/esm/rpc/validation/UnsafeValidator.d.ts +32 -33
- package/esm/rpc/validation/UnsafeValidator.js +117 -101
- package/esm/rpc/validation/UnsafeValidator.js.map +1 -1
- package/esm/rpc/validation/tracer.d.ts +1 -1
- package/esm/store/createMempoolStore.d.ts +3 -3
- package/esm/store/createMempoolStore.js +100 -113
- package/esm/store/createMempoolStore.js.map +1 -1
- package/esm/store/index.d.ts +4 -80
- 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/outstanding/memory.d.ts +29 -0
- 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 +1661 -0
- package/esm/types/contracts/{EntryPointSimulationsV7.js → PimlicoSimulations.js} +1104 -1788
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -0
- package/esm/types/contracts/index.d.ts +1 -3
- package/esm/types/contracts/index.js +1 -3
- package/esm/types/contracts/index.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 +26 -26
- package/esm/types/mempool.d.ts +14 -28
- package/esm/types/mempool.js +1 -7
- package/esm/types/mempool.js.map +1 -1
- package/esm/types/schemas.d.ts +26347 -10767
- package/esm/types/schemas.js +202 -38
- 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 +9447 -8727
- package/esm/types/validation.js +123 -161
- package/esm/types/validation.js.map +1 -1
- package/esm/utils/asyncTimeout.d.ts +5 -0
- package/esm/utils/asyncTimeout.js +23 -0
- package/esm/utils/asyncTimeout.js.map +1 -0
- package/esm/utils/bigInt.d.ts +9 -0
- package/esm/utils/bigInt.js +19 -2
- package/esm/utils/bigInt.js.map +1 -1
- package/esm/utils/eip7702.d.ts +4 -3
- package/esm/utils/eip7702.js +16 -7
- package/esm/utils/eip7702.js.map +1 -1
- package/esm/utils/entryPointOverrides.d.ts +12 -0
- package/esm/utils/entryPointOverrides.js +71 -0
- package/esm/utils/entryPointOverrides.js.map +1 -0
- package/esm/utils/helpers.d.ts +5 -3
- package/esm/utils/helpers.js +36 -13
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/index.d.ts +2 -2
- package/esm/utils/index.js +1 -1
- package/esm/utils/index.js.map +1 -1
- package/esm/utils/metrics.d.ts +11 -9
- package/esm/utils/metrics.js +44 -25
- package/esm/utils/metrics.js.map +1 -1
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +2 -2
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js +2 -2
- package/esm/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +26 -4
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js +111 -71
- package/esm/utils/minMaxQueue/createRedisMinMaxQueue.js.map +1 -1
- package/esm/utils/minMaxQueue/index.d.ts +3 -3
- 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.d.ts +4 -0
- package/esm/utils/toViemStateOverrides.js +44 -0
- package/esm/utils/toViemStateOverrides.js.map +1 -0
- package/esm/utils/userop.d.ts +89 -87
- package/esm/utils/userop.js +207 -439
- package/esm/utils/userop.js.map +1 -1
- package/package.json +12 -7
- package/esm/executor/fastlane.d.ts +0 -9
- package/esm/executor/fastlane.js +0 -37
- package/esm/executor/fastlane.js.map +0 -1
- package/esm/executor/filterOpsAndEStimateGas.d.ts +0 -29
- package/esm/executor/filterOpsAndEStimateGas.js +0 -198
- package/esm/executor/filterOpsAndEStimateGas.js.map +0 -1
- package/esm/mempool/monitoring.d.ts +0 -14
- package/esm/mempool/monitoring.js +0 -97
- package/esm/mempool/monitoring.js.map +0 -1
- package/esm/rpc/estimation/gasEstimationsV06.d.ts +0 -19
- package/esm/rpc/estimation/gasEstimationsV06.js +0 -144
- package/esm/rpc/estimation/gasEstimationsV06.js.map +0 -1
- package/esm/rpc/estimation/gasEstimationsV07.d.ts +0 -101
- package/esm/rpc/estimation/gasEstimationsV07.js +0 -721
- package/esm/rpc/estimation/gasEstimationsV07.js.map +0 -1
- package/esm/store/createMemoryOutstandingStore.d.ts +0 -28
- package/esm/store/createMemoryOutstandingStore.js +0 -231
- 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/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
- package/esm/types/contracts/EntryPointSimulationsV6.js +0 -48
- package/esm/types/contracts/EntryPointSimulationsV6.js.map +0 -1
- package/esm/types/contracts/EntryPointSimulationsV7.d.ts +0 -2193
- package/esm/types/contracts/EntryPointSimulationsV7.js.map +0 -1
- package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -26
- package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -38
- package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
- package/esm/utils/validation.d.ts +0 -76
- package/esm/utils/validation.js +0 -484
- package/esm/utils/validation.js.map +0 -1
- package/lib/cli/alto.d.ts +0 -7
- package/lib/cli/alto.js +0 -141
- package/lib/cli/alto.js.map +0 -1
- package/lib/cli/config/bundler.d.ts +0 -2836
- package/lib/cli/config/bundler.js +0 -222
- package/lib/cli/config/bundler.js.map +0 -1
- package/lib/cli/config/index.d.ts +0 -3
- package/lib/cli/config/index.js +0 -19
- package/lib/cli/config/index.js.map +0 -1
- package/lib/cli/config/options.d.ts +0 -13
- package/lib/cli/config/options.js +0 -553
- package/lib/cli/config/options.js.map +0 -1
- package/lib/cli/customTransport.d.ts +0 -14
- package/lib/cli/customTransport.js +0 -94
- package/lib/cli/customTransport.js.map +0 -1
- package/lib/cli/deploySimulationsContract.d.ts +0 -13
- package/lib/cli/deploySimulationsContract.js +0 -112
- package/lib/cli/deploySimulationsContract.js.map +0 -1
- package/lib/cli/handler.d.ts +0 -3
- package/lib/cli/handler.js +0 -157
- package/lib/cli/handler.js.map +0 -1
- package/lib/cli/index.d.ts +0 -4
- package/lib/cli/index.js +0 -20
- package/lib/cli/index.js.map +0 -1
- package/lib/cli/instrumentation.d.ts +0 -2
- package/lib/cli/instrumentation.js +0 -47
- package/lib/cli/instrumentation.js.map +0 -1
- package/lib/cli/parseArgs.d.ts +0 -8
- package/lib/cli/parseArgs.js +0 -25
- package/lib/cli/parseArgs.js.map +0 -1
- package/lib/cli/setupServer.d.ts +0 -13
- package/lib/cli/setupServer.js +0 -266
- package/lib/cli/setupServer.js.map +0 -1
- package/lib/cli/util.d.ts +0 -22
- package/lib/cli/util.js +0 -34
- package/lib/cli/util.js.map +0 -1
- package/lib/createConfig.d.ts +0 -16
- package/lib/createConfig.js +0 -13
- package/lib/createConfig.js.map +0 -1
- package/lib/executor/executor.d.ts +0 -65
- package/lib/executor/executor.js +0 -285
- package/lib/executor/executor.js.map +0 -1
- package/lib/executor/executorManager.d.ts +0 -107
- package/lib/executor/executorManager.js +0 -682
- package/lib/executor/executorManager.js.map +0 -1
- package/lib/executor/fastlane.d.ts +0 -9
- package/lib/executor/fastlane.js +0 -41
- package/lib/executor/fastlane.js.map +0 -1
- package/lib/executor/filterOpsAndEStimateGas.d.ts +0 -29
- package/lib/executor/filterOpsAndEStimateGas.js +0 -225
- package/lib/executor/filterOpsAndEStimateGas.js.map +0 -1
- package/lib/executor/index.d.ts +0 -5
- package/lib/executor/index.js +0 -21
- package/lib/executor/index.js.map +0 -1
- package/lib/executor/senderManager/createMemorySenderManager.d.ts +0 -8
- package/lib/executor/senderManager/createMemorySenderManager.js +0 -45
- package/lib/executor/senderManager/createMemorySenderManager.js.map +0 -1
- package/lib/executor/senderManager/createRedisSenderManager.d.ts +0 -8
- package/lib/executor/senderManager/createRedisSenderManager.js +0 -85
- package/lib/executor/senderManager/createRedisSenderManager.js.map +0 -1
- package/lib/executor/senderManager/flushOnStartUp.d.ts +0 -9
- package/lib/executor/senderManager/flushOnStartUp.js +0 -37
- package/lib/executor/senderManager/flushOnStartUp.js.map +0 -1
- package/lib/executor/senderManager/index.d.ts +0 -15
- package/lib/executor/senderManager/index.js +0 -25
- package/lib/executor/senderManager/index.js.map +0 -1
- package/lib/executor/senderManager/validateAndRefill.d.ts +0 -11
- package/lib/executor/senderManager/validateAndRefill.js +0 -115
- package/lib/executor/senderManager/validateAndRefill.js.map +0 -1
- package/lib/executor/utilityWalletMonitor.d.ts +0 -19
- package/lib/executor/utilityWalletMonitor.js +0 -42
- package/lib/executor/utilityWalletMonitor.js.map +0 -1
- package/lib/executor/utils.d.ts +0 -31
- package/lib/executor/utils.js +0 -170
- package/lib/executor/utils.js.map +0 -1
- package/lib/handlers/arbitrumGasPriceManager.d.ts +0 -14
- package/lib/handlers/arbitrumGasPriceManager.js +0 -39
- package/lib/handlers/arbitrumGasPriceManager.js.map +0 -1
- package/lib/handlers/eventManager.d.ts +0 -28
- package/lib/handlers/eventManager.js +0 -207
- package/lib/handlers/eventManager.js.map +0 -1
- package/lib/handlers/gasPriceManager.d.ts +0 -36
- package/lib/handlers/gasPriceManager.js +0 -423
- package/lib/handlers/gasPriceManager.js.map +0 -1
- package/lib/handlers/index.d.ts +0 -3
- package/lib/handlers/index.js +0 -19
- package/lib/handlers/index.js.map +0 -1
- package/lib/handlers/mantleGasPriceManager.d.ts +0 -23
- package/lib/handlers/mantleGasPriceManager.js +0 -44
- package/lib/handlers/mantleGasPriceManager.js.map +0 -1
- package/lib/handlers/optimismManager.d.ts +0 -10
- package/lib/handlers/optimismManager.js +0 -21
- package/lib/handlers/optimismManager.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -4
- package/lib/index.js.map +0 -1
- package/lib/mempool/index.d.ts +0 -4
- package/lib/mempool/index.js +0 -20
- package/lib/mempool/index.js.map +0 -1
- package/lib/mempool/mempool.d.ts +0 -191
- package/lib/mempool/mempool.js +0 -498
- package/lib/mempool/mempool.js.map +0 -1
- package/lib/mempool/monitoring.d.ts +0 -14
- package/lib/mempool/monitoring.js +0 -101
- package/lib/mempool/monitoring.js.map +0 -1
- package/lib/mempool/reputationManager.d.ts +0 -121
- package/lib/mempool/reputationManager.js +0 -472
- package/lib/mempool/reputationManager.js.map +0 -1
- package/lib/rpc/createMethodHandler.d.ts +0 -31
- package/lib/rpc/createMethodHandler.js +0 -34
- package/lib/rpc/createMethodHandler.js.map +0 -1
- package/lib/rpc/estimation/gasEstimationHandler.d.ts +0 -30
- package/lib/rpc/estimation/gasEstimationHandler.js +0 -50
- package/lib/rpc/estimation/gasEstimationHandler.js.map +0 -1
- package/lib/rpc/estimation/gasEstimationsV06.d.ts +0 -19
- package/lib/rpc/estimation/gasEstimationsV06.js +0 -148
- package/lib/rpc/estimation/gasEstimationsV06.js.map +0 -1
- package/lib/rpc/estimation/gasEstimationsV07.d.ts +0 -101
- package/lib/rpc/estimation/gasEstimationsV07.js +0 -727
- package/lib/rpc/estimation/gasEstimationsV07.js.map +0 -1
- package/lib/rpc/estimation/types.d.ts +0 -120
- package/lib/rpc/estimation/types.js +0 -125
- package/lib/rpc/estimation/types.js.map +0 -1
- package/lib/rpc/index.d.ts +0 -4
- package/lib/rpc/index.js +0 -20
- package/lib/rpc/index.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_clearReputation.d.ts +0 -22
- package/lib/rpc/methods/debug_bundler_clearReputation.js +0 -15
- package/lib/rpc/methods/debug_bundler_clearReputation.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_clearState.d.ts +0 -22
- package/lib/rpc/methods/debug_bundler_clearState.js +0 -16
- package/lib/rpc/methods/debug_bundler_clearState.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_dumpMempool.d.ts +0 -973
- package/lib/rpc/methods/debug_bundler_dumpMempool.js +0 -16
- package/lib/rpc/methods/debug_bundler_dumpMempool.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_dumpReputation.d.ts +0 -57
- package/lib/rpc/methods/debug_bundler_dumpReputation.js +0 -16
- package/lib/rpc/methods/debug_bundler_dumpReputation.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_getStakeStatus.d.ts +0 -79
- package/lib/rpc/methods/debug_bundler_getStakeStatus.js +0 -25
- package/lib/rpc/methods/debug_bundler_getStakeStatus.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_sendBundleNow.d.ts +0 -22
- package/lib/rpc/methods/debug_bundler_sendBundleNow.js +0 -15
- package/lib/rpc/methods/debug_bundler_sendBundleNow.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_setBundlingMode.d.ts +0 -22
- package/lib/rpc/methods/debug_bundler_setBundlingMode.js +0 -16
- package/lib/rpc/methods/debug_bundler_setBundlingMode.js.map +0 -1
- package/lib/rpc/methods/debug_bundler_setReputation.d.ts +0 -46
- package/lib/rpc/methods/debug_bundler_setReputation.js +0 -16
- package/lib/rpc/methods/debug_bundler_setReputation.js.map +0 -1
- package/lib/rpc/methods/eth_chainId.d.ts +0 -22
- package/lib/rpc/methods/eth_chainId.js +0 -13
- package/lib/rpc/methods/eth_chainId.js.map +0 -1
- package/lib/rpc/methods/eth_estimateUserOperationGas.js +0 -26
- package/lib/rpc/methods/eth_estimateUserOperationGas.js.map +0 -1
- package/lib/rpc/methods/eth_getUserOperationByHash.d.ts +0 -1775
- package/lib/rpc/methods/eth_getUserOperationByHash.js +0 -101
- package/lib/rpc/methods/eth_getUserOperationByHash.js.map +0 -1
- package/lib/rpc/methods/eth_getUserOperationReceipt.d.ts +0 -412
- package/lib/rpc/methods/eth_getUserOperationReceipt.js +0 -14
- package/lib/rpc/methods/eth_getUserOperationReceipt.js.map +0 -1
- package/lib/rpc/methods/eth_sendUserOperation.d.ts +0 -878
- package/lib/rpc/methods/eth_sendUserOperation.js +0 -44
- package/lib/rpc/methods/eth_sendUserOperation.js.map +0 -1
- package/lib/rpc/methods/eth_supportedEntryPoints.d.ts +0 -22
- package/lib/rpc/methods/eth_supportedEntryPoints.js +0 -13
- package/lib/rpc/methods/eth_supportedEntryPoints.js.map +0 -1
- package/lib/rpc/methods/index.d.ts +0 -3
- package/lib/rpc/methods/index.js +0 -44
- package/lib/rpc/methods/index.js.map +0 -1
- package/lib/rpc/methods/pimlico_getUserOperationGasPrice.d.ts +0 -131
- package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js +0 -33
- package/lib/rpc/methods/pimlico_getUserOperationGasPrice.js.map +0 -1
- package/lib/rpc/methods/pimlico_getUserOperationStatus.d.ts +0 -43
- package/lib/rpc/methods/pimlico_getUserOperationStatus.js +0 -14
- package/lib/rpc/methods/pimlico_getUserOperationStatus.js.map +0 -1
- package/lib/rpc/methods/pimlico_sendUserOperationNow.js +0 -53
- package/lib/rpc/methods/pimlico_sendUserOperationNow.js.map +0 -1
- package/lib/rpc/rpcHandler.d.ts +0 -75
- package/lib/rpc/rpcHandler.js +0 -408
- package/lib/rpc/rpcHandler.js.map +0 -1
- package/lib/rpc/server.d.ts +0 -26
- package/lib/rpc/server.js +0 -283
- package/lib/rpc/server.js.map +0 -1
- package/lib/rpc/validation/BundlerCollectorTracerV06.d.ts +0 -102
- package/lib/rpc/validation/BundlerCollectorTracerV06.js +0 -262
- package/lib/rpc/validation/BundlerCollectorTracerV06.js.map +0 -1
- package/lib/rpc/validation/BundlerCollectorTracerV07.d.ts +0 -102
- package/lib/rpc/validation/BundlerCollectorTracerV07.js +0 -261
- package/lib/rpc/validation/BundlerCollectorTracerV07.js.map +0 -1
- package/lib/rpc/validation/SafeValidator.d.ts +0 -52
- package/lib/rpc/validation/SafeValidator.js +0 -350
- package/lib/rpc/validation/SafeValidator.js.map +0 -1
- package/lib/rpc/validation/TracerResultParserV06.d.ts +0 -13
- package/lib/rpc/validation/TracerResultParserV06.js +0 -582
- package/lib/rpc/validation/TracerResultParserV06.js.map +0 -1
- package/lib/rpc/validation/TracerResultParserV07.d.ts +0 -33
- package/lib/rpc/validation/TracerResultParserV07.js +0 -599
- package/lib/rpc/validation/TracerResultParserV07.js.map +0 -1
- package/lib/rpc/validation/UnsafeValidator.d.ts +0 -98
- package/lib/rpc/validation/UnsafeValidator.js +0 -326
- package/lib/rpc/validation/UnsafeValidator.js.map +0 -1
- package/lib/rpc/validation/index.d.ts +0 -3
- package/lib/rpc/validation/index.js +0 -19
- package/lib/rpc/validation/index.js.map +0 -1
- package/lib/rpc/validation/tracer.d.ts +0 -125
- package/lib/rpc/validation/tracer.js +0 -112
- package/lib/rpc/validation/tracer.js.map +0 -1
- package/lib/store/createMemoryOutstandingStore.d.ts +0 -28
- package/lib/store/createMemoryOutstandingStore.js +0 -236
- package/lib/store/createMemoryOutstandingStore.js.map +0 -1
- package/lib/store/createMempoolStore.d.ts +0 -8
- package/lib/store/createMempoolStore.js +0 -199
- package/lib/store/createMempoolStore.js.map +0 -1
- package/lib/store/createRedisOutstandingStore.d.ts +0 -27
- package/lib/store/createRedisOutstandingStore.js +0 -349
- package/lib/store/createRedisOutstandingStore.js.map +0 -1
- package/lib/store/createRedisStore.d.ts +0 -9
- package/lib/store/createRedisStore.js +0 -138
- package/lib/store/createRedisStore.js.map +0 -1
- package/lib/store/createStore.d.ts +0 -6
- package/lib/store/createStore.js +0 -70
- package/lib/store/createStore.js.map +0 -1
- package/lib/store/index.d.ts +0 -81
- package/lib/store/index.js +0 -6
- package/lib/store/index.js.map +0 -1
- package/lib/types/contracts/ArbitrumL1FeeAbi.d.ts +0 -32
- package/lib/types/contracts/ArbitrumL1FeeAbi.js +0 -45
- package/lib/types/contracts/ArbitrumL1FeeAbi.js.map +0 -1
- package/lib/types/contracts/CallEngine.d.ts +0 -28
- package/lib/types/contracts/CallEngine.js +0 -40
- package/lib/types/contracts/CallEngine.js.map +0 -1
- package/lib/types/contracts/CodeHashGetter.d.ts +0 -37
- package/lib/types/contracts/CodeHashGetter.js +0 -48
- package/lib/types/contracts/CodeHashGetter.js.map +0 -1
- package/lib/types/contracts/EntryPoint.d.ts +0 -1789
- package/lib/types/contracts/EntryPoint.js +0 -2307
- package/lib/types/contracts/EntryPoint.js.map +0 -1
- package/lib/types/contracts/EntryPointSimulationsV6.d.ts +0 -34
- package/lib/types/contracts/EntryPointSimulationsV6.js +0 -51
- package/lib/types/contracts/EntryPointSimulationsV6.js.map +0 -1
- package/lib/types/contracts/EntryPointSimulationsV7.d.ts +0 -2193
- package/lib/types/contracts/EntryPointSimulationsV7.js +0 -2828
- package/lib/types/contracts/EntryPointSimulationsV7.js.map +0 -1
- package/lib/types/contracts/IAccountExecute.d.ts +0 -53
- package/lib/types/contracts/IAccountExecute.js +0 -71
- package/lib/types/contracts/IAccountExecute.js.map +0 -1
- package/lib/types/contracts/IPaymaster.d.ts +0 -3
- package/lib/types/contracts/IPaymaster.js +0 -120
- package/lib/types/contracts/IPaymaster.js.map +0 -1
- package/lib/types/contracts/MantleBvmGasPriceOracle.d.ts +0 -219
- package/lib/types/contracts/MantleBvmGasPriceOracle.js +0 -180
- package/lib/types/contracts/MantleBvmGasPriceOracle.js.map +0 -1
- package/lib/types/contracts/OpL1FeeAbi.d.ts +0 -114
- package/lib/types/contracts/OpL1FeeAbi.js +0 -77
- package/lib/types/contracts/OpL1FeeAbi.js.map +0 -1
- package/lib/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -26
- package/lib/types/contracts/PimlicoEntryPointSimulations.js +0 -41
- package/lib/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
- package/lib/types/contracts/SenderCreator.d.ts +0 -4
- package/lib/types/contracts/SenderCreator.js +0 -26
- package/lib/types/contracts/SenderCreator.js.map +0 -1
- package/lib/types/contracts/SimpleAccountFactory.d.ts +0 -57
- package/lib/types/contracts/SimpleAccountFactory.js +0 -79
- package/lib/types/contracts/SimpleAccountFactory.js.map +0 -1
- package/lib/types/contracts/TestOpcodesAccount.d.ts +0 -4
- package/lib/types/contracts/TestOpcodesAccount.js +0 -284
- package/lib/types/contracts/TestOpcodesAccount.js.map +0 -1
- package/lib/types/contracts/TestOpcodesAccountFactory.d.ts +0 -4
- package/lib/types/contracts/TestOpcodesAccountFactory.js +0 -26
- package/lib/types/contracts/TestOpcodesAccountFactory.js.map +0 -1
- package/lib/types/contracts/TestStorageAccount.d.ts +0 -4
- package/lib/types/contracts/TestStorageAccount.js +0 -316
- package/lib/types/contracts/TestStorageAccount.js.map +0 -1
- package/lib/types/contracts/index.d.ts +0 -17
- package/lib/types/contracts/index.js +0 -33
- package/lib/types/contracts/index.js.map +0 -1
- package/lib/types/gasPrice.d.ts +0 -110
- package/lib/types/gasPrice.js +0 -55
- package/lib/types/gasPrice.js.map +0 -1
- package/lib/types/index.d.ts +0 -11
- package/lib/types/index.js +0 -27
- package/lib/types/index.js.map +0 -1
- package/lib/types/interfaces.d.ts +0 -59
- package/lib/types/interfaces.js +0 -3
- package/lib/types/interfaces.js.map +0 -1
- package/lib/types/mempool.d.ts +0 -60
- package/lib/types/mempool.js +0 -11
- package/lib/types/mempool.js.map +0 -1
- package/lib/types/schemas.d.ts +0 -20779
- package/lib/types/schemas.js +0 -638
- package/lib/types/schemas.js.map +0 -1
- package/lib/types/utils.d.ts +0 -25
- package/lib/types/utils.js +0 -35
- package/lib/types/utils.js.map +0 -1
- package/lib/types/validation.d.ts +0 -14327
- package/lib/types/validation.js +0 -312
- package/lib/types/validation.js.map +0 -1
- package/lib/utils/bigInt.d.ts +0 -4
- package/lib/utils/bigInt.js +0 -19
- package/lib/utils/bigInt.js.map +0 -1
- package/lib/utils/eip7702.d.ts +0 -4
- package/lib/utils/eip7702.js +0 -21
- package/lib/utils/eip7702.js.map +0 -1
- package/lib/utils/fastify-rpc-decorators.d.ts +0 -19
- package/lib/utils/fastify-rpc-decorators.js +0 -23
- package/lib/utils/fastify-rpc-decorators.js.map +0 -1
- package/lib/utils/helpers.d.ts +0 -15
- package/lib/utils/helpers.js +0 -59
- package/lib/utils/helpers.js.map +0 -1
- package/lib/utils/index.d.ts +0 -8
- package/lib/utils/index.js +0 -23
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/logger.d.ts +0 -6
- package/lib/utils/logger.js +0 -85
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/metrics.d.ts +0 -28
- package/lib/utils/metrics.js +0 -192
- package/lib/utils/metrics.js.map +0 -1
- package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.d.ts +0 -6
- package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js +0 -57
- package/lib/utils/minMaxQueue/createMemoryMinMaxQueue.js.map +0 -1
- package/lib/utils/minMaxQueue/createRedisMinMaxQueue.d.ts +0 -7
- package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js +0 -105
- package/lib/utils/minMaxQueue/createRedisMinMaxQueue.js.map +0 -1
- package/lib/utils/minMaxQueue/index.d.ts +0 -12
- package/lib/utils/minMaxQueue/index.js +0 -16
- package/lib/utils/minMaxQueue/index.js.map +0 -1
- package/lib/utils/rpc-reply.d.ts +0 -16
- package/lib/utils/rpc-reply.js +0 -41
- package/lib/utils/rpc-reply.js.map +0 -1
- package/lib/utils/userop.d.ts +0 -138
- package/lib/utils/userop.js +0 -620
- package/lib/utils/userop.js.map +0 -1
- package/lib/utils/validation.d.ts +0 -76
- package/lib/utils/validation.js +0 -500
- package/lib/utils/validation.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entryPointOverrides.js","sourceRoot":"","sources":["../../utils/entryPointOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,gBAAgB,EAChB,SAAS,EACT,GAAG,EACH,KAAK,EACR,MAAM,MAAM,CAAA;AAGb,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AACD,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AACD,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AACD,OAAO,oBAAoB,MAAM,iFAAiF,CAAC;IAC/G,IAAI,EAAE,MAAM;CACf,CAAA;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAmB,EAAE,EAAE;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,GAAG,CACb,gBAAgB,CAAC;QACb,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,EAAE;KACZ,CAAC,EACF,EAAE,IAAI,EAAE,EAAE,EAAE,CACf,CAAA;IAED,OAAO;QACH,IAAI;QACJ,KAAK;KACR,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACtC,OAAO,EACP,UAAU,EACV,aAAa,EAKhB,EAAiB,EAAE;IAChB,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAA;IAClE,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAEvD,mEAAmE;IACnE,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACzD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IAEzE,IAAI,IAAS,CAAA;IACb,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;YAC1D,MAAK;QACT,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;YAC1D,MAAK;QACT,CAAC;QACD,KAAK,KAAK,CAAC,CAAC,CAAC;YACT,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;YAC1D,MAAK;QACT,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACN,IAAI,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,MAAa,CAAA;QAC9D,CAAC;IACL,CAAC;IAED,OAAO;QACH;YACI,OAAO,EAAE,UAAU;YACnB,IAAI;YACJ,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,qBAAqB,CAAC,IAAI;oBAChC,KAAK,EAAE,qBAAqB,CAAC,KAAK;iBACrC;gBACD;oBACI,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,YAAY;iBACtB;gBACD;oBACI,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,cAAc;iBACxB;aACJ;SACJ;KACJ,CAAA;AACL,CAAC,CAAA"}
|
package/esm/utils/helpers.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { StateOverrides, UserOperation } from "../types/index.js";
|
|
2
|
+
export declare const jsonStringifyWithBigint: (obj: unknown) => string;
|
|
3
|
+
export declare const recoverableJsonStringifyWithBigint: (obj: unknown) => string;
|
|
4
|
+
export declare const recoverableJsonParseWithBigint: (str: string) => any;
|
|
2
5
|
export declare const areAddressesEqual: (a: string, b: string) => boolean;
|
|
3
|
-
export declare function getRevertErrorData(err: unknown): `0x${string}` | undefined;
|
|
4
6
|
export declare function getAAError(errorMsg: string): string | undefined;
|
|
5
|
-
export declare function getAuthorizationStateOverrides({
|
|
6
|
-
|
|
7
|
+
export declare function getAuthorizationStateOverrides({ userOps, stateOverrides }: {
|
|
8
|
+
userOps: UserOperation[];
|
|
7
9
|
stateOverrides?: StateOverrides;
|
|
8
10
|
}): Partial<Record<`0x${string}`, {
|
|
9
11
|
balance?: bigint | undefined;
|
package/esm/utils/helpers.js
CHANGED
|
@@ -1,4 +1,36 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { concat, getAddress } from "viem";
|
|
2
|
+
import { getEip7702AuthAddress } from "./eip7702.js";
|
|
3
|
+
/// Convert an object to JSON string, handling bigint values
|
|
4
|
+
export const jsonStringifyWithBigint = (obj) => {
|
|
5
|
+
return JSON.stringify(obj, (_key, value) => typeof value === "bigint" ? value.toString() : value);
|
|
6
|
+
};
|
|
7
|
+
/// Convert an object to JSON string, handling bigint values
|
|
8
|
+
export const recoverableJsonStringifyWithBigint = (obj) => {
|
|
9
|
+
return JSON.stringify(obj, (_key, value) => typeof value === "bigint"
|
|
10
|
+
? {
|
|
11
|
+
type: "bigint",
|
|
12
|
+
value: value.toString()
|
|
13
|
+
}
|
|
14
|
+
: value);
|
|
15
|
+
};
|
|
16
|
+
export const recoverableJsonParseWithBigint = (str) => {
|
|
17
|
+
return JSON.parse(str, (_key, value) => {
|
|
18
|
+
if (value !== null &&
|
|
19
|
+
typeof value === "object" &&
|
|
20
|
+
"type" in value &&
|
|
21
|
+
value.type === "bigint" &&
|
|
22
|
+
"value" in value &&
|
|
23
|
+
typeof value.value === "string") {
|
|
24
|
+
try {
|
|
25
|
+
return BigInt(value.value);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
});
|
|
33
|
+
};
|
|
2
34
|
/// Ensure proper equality by converting both addresses into their checksum type
|
|
3
35
|
export const areAddressesEqual = (a, b) => {
|
|
4
36
|
try {
|
|
@@ -8,13 +40,6 @@ export const areAddressesEqual = (a, b) => {
|
|
|
8
40
|
return false;
|
|
9
41
|
}
|
|
10
42
|
};
|
|
11
|
-
export function getRevertErrorData(err) {
|
|
12
|
-
if (!(err instanceof BaseError)) {
|
|
13
|
-
return undefined;
|
|
14
|
-
}
|
|
15
|
-
const error = err.walk();
|
|
16
|
-
return typeof error?.data === "object" ? error.data?.data : error.data;
|
|
17
|
-
}
|
|
18
43
|
export function getAAError(errorMsg) {
|
|
19
44
|
const uppercase = errorMsg.toUpperCase();
|
|
20
45
|
const match = uppercase.match(/AA\d{2}/);
|
|
@@ -25,17 +50,15 @@ function getAuthorizationStateOverride({ authorization }) {
|
|
|
25
50
|
const code = concat(["0xef0100", authorization.address]);
|
|
26
51
|
return { code };
|
|
27
52
|
}
|
|
28
|
-
export function getAuthorizationStateOverrides({
|
|
53
|
+
export function getAuthorizationStateOverrides({ userOps, stateOverrides }) {
|
|
29
54
|
const overrides = { ...(stateOverrides ?? {}) };
|
|
30
|
-
for (const op of
|
|
55
|
+
for (const op of userOps) {
|
|
31
56
|
if (op.eip7702Auth) {
|
|
32
57
|
overrides[op.sender] = {
|
|
33
58
|
...(overrides[op.sender] || {}),
|
|
34
59
|
...getAuthorizationStateOverride({
|
|
35
60
|
authorization: {
|
|
36
|
-
address:
|
|
37
|
-
? op.eip7702Auth.address
|
|
38
|
-
: op.eip7702Auth.contractAddress,
|
|
61
|
+
address: getEip7702AuthAddress(op.eip7702Auth),
|
|
39
62
|
chainId: op.eip7702Auth.chainId,
|
|
40
63
|
nonce: op.eip7702Auth.nonce,
|
|
41
64
|
r: op.eip7702Auth.r,
|
package/esm/utils/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../utils/helpers.ts"],"names":[],"mappings":"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"}
|
package/esm/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export * from "./logger.js";
|
|
2
2
|
export * from "./metrics.js";
|
|
3
3
|
export * from "./bigInt.js";
|
|
4
|
-
export * from "./validation.js";
|
|
5
4
|
export * from "./userop.js";
|
|
6
5
|
export * from "./helpers.js";
|
|
7
|
-
export
|
|
6
|
+
export * from "./asyncTimeout.js";
|
|
7
|
+
export type { Logger } from "pino";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/esm/utils/index.js
CHANGED
package/esm/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA"}
|
package/esm/utils/metrics.d.ts
CHANGED
|
@@ -3,26 +3,28 @@ export type Metrics = ReturnType<typeof createMetrics>;
|
|
|
3
3
|
export declare function createMetrics(registry: Registry, register?: boolean): {
|
|
4
4
|
httpRequests: Counter<"code" | "method" | "route" | "rpc_method" | "rpc_status">;
|
|
5
5
|
httpRequestsDuration: Histogram<"code" | "method" | "route" | "rpc_method" | "rpc_status" | "api_version">;
|
|
6
|
-
|
|
6
|
+
userOpsInMempool: Gauge<"status">;
|
|
7
7
|
walletsAvailable: Gauge<never>;
|
|
8
8
|
walletsTotal: Gauge<never>;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
userOpsOnChain: Counter<"status">;
|
|
10
|
+
userOpsSubmitted: Counter<"status">;
|
|
11
11
|
bundlesIncluded: Counter<never>;
|
|
12
12
|
bundlesSubmitted: Counter<"status">;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
userOpsReceived: Counter<"type" | "status">;
|
|
14
|
+
userOpsValidationSuccess: Counter<never>;
|
|
15
|
+
userOpsValidationFailure: Counter<never>;
|
|
16
|
+
userOpInclusionDuration: Histogram<never>;
|
|
17
17
|
verificationGasLimitEstimationTime: Histogram<never>;
|
|
18
18
|
verificationGasLimitEstimationCount: Histogram<never>;
|
|
19
19
|
replacedTransactions: Counter<"reason" | "status">;
|
|
20
|
-
|
|
20
|
+
userOpsResubmitted: Counter<never>;
|
|
21
|
+
userOpsDropped: Counter<"reason">;
|
|
21
22
|
utilityWalletBalance: Gauge<never>;
|
|
22
23
|
utilityWalletInsufficientBalance: Gauge<never>;
|
|
23
24
|
executorWalletsBalances: Gauge<"wallet">;
|
|
24
25
|
executorWalletsMinBalance: Gauge<never>;
|
|
25
|
-
emittedOpEvents: Counter<"status" | "event_type">;
|
|
26
26
|
walletsProcessingTime: Histogram<never>;
|
|
27
|
+
userOpsSubmissionAttempts: Histogram<never>;
|
|
28
|
+
altoSecondValidationFailed: Counter<never>;
|
|
27
29
|
};
|
|
28
30
|
//# sourceMappingURL=metrics.d.ts.map
|
package/esm/utils/metrics.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { Counter, Gauge, Histogram, collectDefaultMetrics } from "prom-client";
|
|
2
2
|
export function createMetrics(registry, register = true) {
|
|
3
|
-
|
|
3
|
+
// Skip default metrics collection in development mode or when running in Bun
|
|
4
|
+
// to avoid compatibility issues
|
|
5
|
+
const isBun = typeof globalThis.Bun !== "undefined";
|
|
6
|
+
if (!isBun) {
|
|
7
|
+
collectDefaultMetrics({ register: registry });
|
|
8
|
+
}
|
|
4
9
|
const registers = register ? [registry] : [];
|
|
5
10
|
const httpRequests = new Counter({
|
|
6
11
|
name: "alto_requests_total",
|
|
@@ -27,7 +32,7 @@ export function createMetrics(registry, register = true) {
|
|
|
27
32
|
],
|
|
28
33
|
registers
|
|
29
34
|
});
|
|
30
|
-
const
|
|
35
|
+
const userOpsInMempool = new Gauge({
|
|
31
36
|
name: "alto_user_operations_in_mempool_count",
|
|
32
37
|
help: "Number of user operations in mempool",
|
|
33
38
|
labelNames: ["status"],
|
|
@@ -45,13 +50,13 @@ export function createMetrics(registry, register = true) {
|
|
|
45
50
|
labelNames: [],
|
|
46
51
|
registers
|
|
47
52
|
});
|
|
48
|
-
const
|
|
53
|
+
const userOpsOnChain = new Counter({
|
|
49
54
|
name: "alto_user_operations_on_chain_total",
|
|
50
55
|
help: "Number of user operations on-chain by status",
|
|
51
56
|
labelNames: ["status"],
|
|
52
57
|
registers
|
|
53
58
|
});
|
|
54
|
-
const
|
|
59
|
+
const userOpsSubmitted = new Counter({
|
|
55
60
|
name: "alto_user_operations_submitted_total",
|
|
56
61
|
help: "Number of user operations bundles submitted on-chain",
|
|
57
62
|
labelNames: ["status"],
|
|
@@ -69,25 +74,25 @@ export function createMetrics(registry, register = true) {
|
|
|
69
74
|
labelNames: ["status"],
|
|
70
75
|
registers
|
|
71
76
|
});
|
|
72
|
-
const
|
|
77
|
+
const userOpsReceived = new Counter({
|
|
73
78
|
name: "alto_user_operations_received_total",
|
|
74
79
|
help: "Number of user operations received",
|
|
75
80
|
labelNames: ["status", "type"],
|
|
76
81
|
registers
|
|
77
82
|
});
|
|
78
|
-
const
|
|
83
|
+
const userOpsValidationSuccess = new Counter({
|
|
79
84
|
name: "alto_user_operations_validation_success_total",
|
|
80
85
|
help: "Number of user operations successfully validated",
|
|
81
86
|
labelNames: [],
|
|
82
87
|
registers
|
|
83
88
|
});
|
|
84
|
-
const
|
|
89
|
+
const userOpsValidationFailure = new Counter({
|
|
85
90
|
name: "alto_user_operations_validation_failure_total",
|
|
86
91
|
help: "Number of user operations failed to validate",
|
|
87
92
|
labelNames: [],
|
|
88
93
|
registers
|
|
89
94
|
});
|
|
90
|
-
const
|
|
95
|
+
const userOpInclusionDuration = new Histogram({
|
|
91
96
|
name: "alto_user_operation_inclusion_duration_seconds",
|
|
92
97
|
help: "Duration of user operation inclusion from first submission to inclusion on-chain",
|
|
93
98
|
labelNames: [],
|
|
@@ -117,12 +122,24 @@ export function createMetrics(registry, register = true) {
|
|
|
117
122
|
labelNames: ["reason", "status"],
|
|
118
123
|
registers
|
|
119
124
|
});
|
|
120
|
-
const
|
|
125
|
+
const userOpsResubmitted = new Counter({
|
|
121
126
|
name: "alto_user_operations_resubmitted_total",
|
|
122
127
|
help: "Number of user operations resubmitted",
|
|
123
128
|
labelNames: [],
|
|
124
129
|
registers
|
|
125
130
|
});
|
|
131
|
+
const userOpsDropped = new Counter({
|
|
132
|
+
name: "alto_user_operations_dropped_total",
|
|
133
|
+
help: "Number of user operations dropped from mempool",
|
|
134
|
+
labelNames: ["reason"],
|
|
135
|
+
registers
|
|
136
|
+
});
|
|
137
|
+
const userOpsSubmissionAttempts = new Histogram({
|
|
138
|
+
name: "alto_user_operations_attempts_before_inclusion",
|
|
139
|
+
help: "Number of submission attempts needed before a user operation was included on-chain",
|
|
140
|
+
labelNames: [],
|
|
141
|
+
registers
|
|
142
|
+
});
|
|
126
143
|
const utilityWalletBalance = new Gauge({
|
|
127
144
|
name: "alto_utility_wallet_balance",
|
|
128
145
|
help: "Balance of the utility wallet",
|
|
@@ -147,42 +164,44 @@ export function createMetrics(registry, register = true) {
|
|
|
147
164
|
labelNames: [],
|
|
148
165
|
registers
|
|
149
166
|
});
|
|
150
|
-
const emittedOpEvents = new Counter({
|
|
151
|
-
name: "alto_emitted_user_operation_events",
|
|
152
|
-
help: "Total number of emitted UserOperation status events",
|
|
153
|
-
labelNames: ["event_type", "status"],
|
|
154
|
-
registers
|
|
155
|
-
});
|
|
156
167
|
const walletsProcessingTime = new Histogram({
|
|
157
168
|
name: "alto_executor_wallets_processing_duration_seconds",
|
|
158
169
|
help: "Time spent processing user operations by executor wallets",
|
|
159
170
|
labelNames: [],
|
|
160
171
|
registers
|
|
161
172
|
});
|
|
173
|
+
const altoSecondValidationFailed = new Counter({
|
|
174
|
+
name: "alto_second_validation_failed",
|
|
175
|
+
help: "Number of times alto's second estimation failed during eth_estimateUserOperationGas and we returned 2x gas limits",
|
|
176
|
+
labelNames: [],
|
|
177
|
+
registers
|
|
178
|
+
});
|
|
162
179
|
return {
|
|
163
180
|
httpRequests,
|
|
164
181
|
httpRequestsDuration,
|
|
165
|
-
|
|
182
|
+
userOpsInMempool,
|
|
166
183
|
walletsAvailable,
|
|
167
184
|
walletsTotal,
|
|
168
|
-
|
|
169
|
-
|
|
185
|
+
userOpsOnChain,
|
|
186
|
+
userOpsSubmitted,
|
|
170
187
|
bundlesIncluded,
|
|
171
188
|
bundlesSubmitted,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
189
|
+
userOpsReceived,
|
|
190
|
+
userOpsValidationSuccess,
|
|
191
|
+
userOpsValidationFailure,
|
|
192
|
+
userOpInclusionDuration,
|
|
176
193
|
verificationGasLimitEstimationTime,
|
|
177
194
|
verificationGasLimitEstimationCount,
|
|
178
195
|
replacedTransactions,
|
|
179
|
-
|
|
196
|
+
userOpsResubmitted,
|
|
197
|
+
userOpsDropped,
|
|
180
198
|
utilityWalletBalance,
|
|
181
199
|
utilityWalletInsufficientBalance,
|
|
182
200
|
executorWalletsBalances,
|
|
183
201
|
executorWalletsMinBalance,
|
|
184
|
-
|
|
185
|
-
|
|
202
|
+
walletsProcessingTime,
|
|
203
|
+
userOpsSubmissionAttempts,
|
|
204
|
+
altoSecondValidationFailed
|
|
186
205
|
};
|
|
187
206
|
}
|
|
188
207
|
//# sourceMappingURL=metrics.js.map
|
package/esm/utils/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../utils/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,KAAK,EACL,SAAS,EAET,qBAAqB,EACxB,MAAM,aAAa,CAAA;AAIpB,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,QAAQ,GAAG,IAAI;IAC7D,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../utils/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MinMaxQueue } from "./index.js";
|
|
2
|
-
import { AltoConfig } from "../../createConfig.js";
|
|
1
|
+
import type { MinMaxQueue } from "./index.js";
|
|
2
|
+
import type { AltoConfig } from "../../createConfig.js";
|
|
3
3
|
export declare const createMemoryMinMaxQueue: ({ config }: {
|
|
4
4
|
config: AltoConfig;
|
|
5
5
|
}) => MinMaxQueue;
|
|
@@ -43,10 +43,10 @@ export const createMemoryMinMaxQueue = ({ config }) => {
|
|
|
43
43
|
return latestValue;
|
|
44
44
|
},
|
|
45
45
|
getMinValue: async () => {
|
|
46
|
-
return minDeque.length ? minDeque[0].value : null;
|
|
46
|
+
return minDeque.length > 0 ? minDeque[0].value : null;
|
|
47
47
|
},
|
|
48
48
|
getMaxValue: async () => {
|
|
49
|
-
return maxDeque.length ? maxDeque[0].value : null;
|
|
49
|
+
return maxDeque.length > 0 ? maxDeque[0].value : null;
|
|
50
50
|
}
|
|
51
51
|
};
|
|
52
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMemoryMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createMemoryMinMaxQueue.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAG,CACjB,KAAa,EACb,aAAqB,EACrB,QAAsB,EACtB,QAAsB,EAC+C,EAAE;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA,CAAC,8BAA8B;IACnE,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;IAE5C,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IAED,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,OAAO;QACH,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,SAAS;KACZ,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACpC,MAAM,EACe,EAAe,EAAE;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAA;IAE3C,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,OAAO;QACH,SAAS,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;YAC/B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,OAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CACvB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,CACX,CAAA;YACD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,WAAW,GAAG,KAAK,CAAA;QACvB,CAAC;QACD,cAAc,EAAE,KAAK,IAAI,EAAE;YACvB,OAAO,WAAW,CAAA;QACtB,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"createMemoryMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createMemoryMinMaxQueue.ts"],"names":[],"mappings":"AAKA,MAAM,YAAY,GAAG,CACjB,KAAa,EACb,aAAqB,EACrB,QAAsB,EACtB,QAAsB,EAC+C,EAAE;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAA,CAAC,8BAA8B;IACnE,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAA;IAE5C,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IACD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CACpC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,UAAU,CAC3C,CAAA;IAED,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,yBAAyB;IACzB,OACI,gBAAgB,CAAC,MAAM;QACvB,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,EAC9D,CAAC;QACC,gBAAgB,CAAC,GAAG,EAAE,CAAA;IAC1B,CAAC;IACD,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IAE3C,OAAO;QACH,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ,EAAE,gBAAgB;QAC1B,SAAS;KACZ,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACpC,MAAM,EACe,EAAe,EAAE;IACtC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAA;IAE3C,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,oCAAoC;IACpC,IAAI,QAAQ,GAAiB,EAAE,CAAA;IAC/B,IAAI,WAAW,GAAkB,IAAI,CAAA;IAErC,OAAO;QACH,SAAS,EAAE,KAAK,EAAE,KAAa,EAAE,EAAE;YAC/B,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;gBACf,OAAM;YACV,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CACvB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,QAAQ,CACX,CAAA;YACD,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;YAC1B,WAAW,GAAG,KAAK,CAAA;QACvB,CAAC;QACD,cAAc,EAAE,KAAK,IAAI,EAAE;YACvB,OAAO,WAAW,CAAA;QACtB,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACzD,CAAC;QACD,WAAW,EAAE,KAAK,IAAI,EAAE;YACpB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QACzD,CAAC;KACJ,CAAA;AACL,CAAC,CAAA"}
|
|
@@ -1,7 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* MinMaxQueue implementation in Redis using a single sorted set
|
|
3
|
+
*
|
|
4
|
+
* ## Data Structure
|
|
5
|
+
* - Uses a Redis sorted set where:
|
|
6
|
+
* - Score: timestamp when value was added (seconds since epoch)
|
|
7
|
+
* - Member: the actual bigint value (stored as string)
|
|
8
|
+
*
|
|
9
|
+
* ## Flow
|
|
10
|
+
* 1. **Adding values**: New values are added/updated with current timestamp as score
|
|
11
|
+
* 2. **Reading values**: Queries filter out expired entries based on timestamp
|
|
12
|
+
* 3. **Cleanup**: Background process runs every minute to remove expired entries
|
|
13
|
+
*
|
|
14
|
+
* ## Optimization Strategy
|
|
15
|
+
* - Lazy cleanup: expired entries filtered on read, bulk removed by background process (removing is expensive)
|
|
16
|
+
*
|
|
17
|
+
* ## TTL Management
|
|
18
|
+
* - Entries expire based on `queueValidity` (configured via `gasPriceExpiry`)
|
|
19
|
+
* - Background cleanup prevents unbounded growth
|
|
20
|
+
* - Read operations ignore expired entries without removing them
|
|
21
|
+
*/
|
|
22
|
+
import type { MinMaxQueue } from "./index.js";
|
|
23
|
+
import type { AltoConfig } from "../../createConfig.js";
|
|
24
|
+
export declare const createRedisMinMaxQueue: ({ config, queueName, redisEndpoint }: {
|
|
4
25
|
config: AltoConfig;
|
|
5
|
-
|
|
26
|
+
queueName: string;
|
|
27
|
+
redisEndpoint: string;
|
|
6
28
|
}) => MinMaxQueue;
|
|
7
29
|
//# sourceMappingURL=createRedisMinMaxQueue.d.ts.map
|
|
@@ -1,98 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MinMaxQueue implementation in Redis using a single sorted set
|
|
3
|
+
*
|
|
4
|
+
* ## Data Structure
|
|
5
|
+
* - Uses a Redis sorted set where:
|
|
6
|
+
* - Score: timestamp when value was added (seconds since epoch)
|
|
7
|
+
* - Member: the actual bigint value (stored as string)
|
|
8
|
+
*
|
|
9
|
+
* ## Flow
|
|
10
|
+
* 1. **Adding values**: New values are added/updated with current timestamp as score
|
|
11
|
+
* 2. **Reading values**: Queries filter out expired entries based on timestamp
|
|
12
|
+
* 3. **Cleanup**: Background process runs every minute to remove expired entries
|
|
13
|
+
*
|
|
14
|
+
* ## Optimization Strategy
|
|
15
|
+
* - Lazy cleanup: expired entries filtered on read, bulk removed by background process (removing is expensive)
|
|
16
|
+
*
|
|
17
|
+
* ## TTL Management
|
|
18
|
+
* - Entries expire based on `queueValidity` (configured via `gasPriceExpiry`)
|
|
19
|
+
* - Background cleanup prevents unbounded growth
|
|
20
|
+
* - Read operations ignore expired entries without removing them
|
|
21
|
+
*/
|
|
1
22
|
import Redis from "ioredis";
|
|
2
|
-
|
|
23
|
+
import * as sentry from "@sentry/node";
|
|
3
24
|
class SortedTtlSet {
|
|
4
25
|
redis;
|
|
5
|
-
|
|
6
|
-
timestampKey;
|
|
26
|
+
redisKey; // Single sorted set: score = timestamp, member = value
|
|
7
27
|
queueValidity;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
const redis = new Redis(config.redisGasPriceQueueUrl);
|
|
28
|
+
cleanupInterval = null;
|
|
29
|
+
constructor({ queueName, config, redisEndpoint }) {
|
|
30
|
+
const redis = new Redis(redisEndpoint);
|
|
13
31
|
const queueValidity = config.gasPriceExpiry;
|
|
14
|
-
const redisKey = `${config.chainId}:${keyPrefix}`;
|
|
15
32
|
this.redis = redis;
|
|
16
|
-
this.
|
|
17
|
-
this.timestampKey = `${redisKey}:timestamp`;
|
|
33
|
+
this.redisKey = `${config.redisKeyPrefix}:${config.chainId}:${queueName}`;
|
|
18
34
|
this.queueValidity = queueValidity;
|
|
35
|
+
// Start background cleanup every minute
|
|
36
|
+
this.startBackgroundCleanup();
|
|
19
37
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
38
|
+
startBackgroundCleanup() {
|
|
39
|
+
// Run cleanup every minute
|
|
40
|
+
this.cleanupInterval = setInterval(() => {
|
|
41
|
+
this.cleanup().catch((err) => {
|
|
42
|
+
sentry.captureException(err);
|
|
43
|
+
});
|
|
44
|
+
}, 60 * 1_000);
|
|
45
|
+
// Allow process to exit even if interval is active
|
|
46
|
+
if (this.cleanupInterval.unref) {
|
|
47
|
+
this.cleanupInterval.unref();
|
|
24
48
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
49
|
+
}
|
|
50
|
+
async cleanup() {
|
|
51
|
+
const cutoffTime = Date.now() / 1_000 - this.queueValidity * 5;
|
|
52
|
+
await this.redis.zremrangebyscore(this.redisKey, "-inf", `(${cutoffTime}`);
|
|
53
|
+
}
|
|
54
|
+
async add(value, logger) {
|
|
55
|
+
try {
|
|
56
|
+
if (value === 0n) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const now = Date.now() / 1_000;
|
|
60
|
+
const valueStr = value.toString();
|
|
61
|
+
// Add or update (if exists) with current timestamp
|
|
62
|
+
await this.redis.zadd(this.redisKey, now, valueStr);
|
|
35
63
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
multi.zadd(this.timestampKey, now, valueStr);
|
|
40
|
-
multi.zadd(this.valueKey, valueStr, valueStr);
|
|
41
|
-
await multi.exec();
|
|
64
|
+
catch (err) {
|
|
65
|
+
logger.error({ err }, "Failed to save value to minMaxQueue");
|
|
66
|
+
sentry.captureException(err);
|
|
42
67
|
}
|
|
43
68
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const cutoffTime = timestamp - this.queueValidity;
|
|
47
|
-
// Get expired unique IDs from time queue
|
|
48
|
-
const expiredMembers = await this.redis.zrangebyscore(this.timestampKey, "-inf", `(${cutoffTime}` // exclusive upper bound
|
|
49
|
-
);
|
|
50
|
-
if (expiredMembers.length) {
|
|
51
|
-
const multi = this.redis.multi();
|
|
52
|
-
// Remove expired entries from both sets
|
|
53
|
-
multi.zrem(this.timestampKey, ...expiredMembers);
|
|
54
|
-
multi.zrem(this.valueKey, ...expiredMembers);
|
|
55
|
-
await multi.exec();
|
|
56
|
-
}
|
|
69
|
+
getValidCutoffTime() {
|
|
70
|
+
return Date.now() / 1_000 - this.queueValidity;
|
|
57
71
|
}
|
|
58
|
-
async getMin() {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
72
|
+
async getMin(logger) {
|
|
73
|
+
try {
|
|
74
|
+
// Get all valid (non-expired) values
|
|
75
|
+
const validValues = await this.redis.zrangebyscore(this.redisKey, this.getValidCutoffTime(), "+inf");
|
|
76
|
+
if (validValues.length === 0) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
// Find minimum value among valid entries
|
|
80
|
+
const bigIntValues = validValues.map(BigInt);
|
|
81
|
+
return bigIntValues.reduce((min, val) => (val < min ? val : min));
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
logger.error({ err }, "Failed to get min value");
|
|
85
|
+
sentry.captureException(err);
|
|
64
86
|
return null;
|
|
65
|
-
|
|
87
|
+
}
|
|
66
88
|
}
|
|
67
|
-
async getMax() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
89
|
+
async getMax(logger) {
|
|
90
|
+
try {
|
|
91
|
+
// Get all valid (non-expired) values
|
|
92
|
+
const validValues = await this.redis.zrangebyscore(this.redisKey, this.getValidCutoffTime(), "+inf");
|
|
93
|
+
if (validValues.length === 0) {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
// Find maximum value among valid entries
|
|
97
|
+
const bigIntValues = validValues.map(BigInt);
|
|
98
|
+
return bigIntValues.reduce((max, val) => (val > max ? val : max));
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
logger.error({ err }, "Failed to get max value");
|
|
102
|
+
sentry.captureException(err);
|
|
73
103
|
return null;
|
|
74
|
-
|
|
104
|
+
}
|
|
75
105
|
}
|
|
76
|
-
async getLatestValue() {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
106
|
+
async getLatestValue(logger) {
|
|
107
|
+
try {
|
|
108
|
+
// Get the most recently added value (highest timestamp) that's still valid
|
|
109
|
+
const validValues = await this.redis.zrevrangebyscore(this.redisKey, "+inf", this.getValidCutoffTime(), "LIMIT", 0, 1);
|
|
110
|
+
if (validValues.length === 0) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return BigInt(validValues[0]);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
logger.error({ err }, "Failed to get latest value");
|
|
117
|
+
sentry.captureException(err);
|
|
82
118
|
return null;
|
|
83
|
-
|
|
119
|
+
}
|
|
84
120
|
}
|
|
85
121
|
}
|
|
86
|
-
export const createRedisMinMaxQueue = ({ config,
|
|
122
|
+
export const createRedisMinMaxQueue = ({ config, queueName, redisEndpoint }) => {
|
|
87
123
|
const queue = new SortedTtlSet({
|
|
88
124
|
config,
|
|
89
|
-
|
|
125
|
+
redisEndpoint,
|
|
126
|
+
queueName
|
|
127
|
+
});
|
|
128
|
+
const logger = config.getLogger({ module: "minMaxQueue" }, {
|
|
129
|
+
level: config.logLevel
|
|
90
130
|
});
|
|
91
131
|
return {
|
|
92
|
-
saveValue: async (value) => queue.add(value),
|
|
93
|
-
getLatestValue: async () => queue.getLatestValue(),
|
|
94
|
-
getMinValue: async () => queue.getMin(),
|
|
95
|
-
getMaxValue: async () => queue.getMax()
|
|
132
|
+
saveValue: async (value) => queue.add(value, logger),
|
|
133
|
+
getLatestValue: async () => queue.getLatestValue(logger),
|
|
134
|
+
getMinValue: async () => queue.getMin(logger),
|
|
135
|
+
getMaxValue: async () => queue.getMax(logger)
|
|
96
136
|
};
|
|
97
137
|
};
|
|
98
138
|
//# sourceMappingURL=createRedisMinMaxQueue.js.map
|