@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/utils/metrics.js
CHANGED
|
@@ -128,6 +128,12 @@ export function createMetrics(registry, register = true) {
|
|
|
128
128
|
labelNames: [],
|
|
129
129
|
registers
|
|
130
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
|
+
});
|
|
131
137
|
const userOpsSubmissionAttempts = new Histogram({
|
|
132
138
|
name: "alto_user_operations_attempts_before_inclusion",
|
|
133
139
|
help: "Number of submission attempts needed before a user operation was included on-chain",
|
|
@@ -158,18 +164,18 @@ export function createMetrics(registry, register = true) {
|
|
|
158
164
|
labelNames: [],
|
|
159
165
|
registers
|
|
160
166
|
});
|
|
161
|
-
const emittedOpEvents = new Counter({
|
|
162
|
-
name: "alto_emitted_user_operation_events",
|
|
163
|
-
help: "Total number of emitted UserOperation status events",
|
|
164
|
-
labelNames: ["event_type", "status"],
|
|
165
|
-
registers
|
|
166
|
-
});
|
|
167
167
|
const walletsProcessingTime = new Histogram({
|
|
168
168
|
name: "alto_executor_wallets_processing_duration_seconds",
|
|
169
169
|
help: "Time spent processing user operations by executor wallets",
|
|
170
170
|
labelNames: [],
|
|
171
171
|
registers
|
|
172
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
|
+
});
|
|
173
179
|
return {
|
|
174
180
|
httpRequests,
|
|
175
181
|
httpRequestsDuration,
|
|
@@ -188,13 +194,14 @@ export function createMetrics(registry, register = true) {
|
|
|
188
194
|
verificationGasLimitEstimationCount,
|
|
189
195
|
replacedTransactions,
|
|
190
196
|
userOpsResubmitted,
|
|
197
|
+
userOpsDropped,
|
|
191
198
|
utilityWalletBalance,
|
|
192
199
|
utilityWalletInsufficientBalance,
|
|
193
200
|
executorWalletsBalances,
|
|
194
201
|
executorWalletsMinBalance,
|
|
195
|
-
emittedOpEvents,
|
|
196
202
|
walletsProcessingTime,
|
|
197
|
-
userOpsSubmissionAttempts
|
|
203
|
+
userOpsSubmissionAttempts,
|
|
204
|
+
altoSecondValidationFailed
|
|
198
205
|
};
|
|
199
206
|
}
|
|
200
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":"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
|
|
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,6EAA6E;IAC7E,gCAAgC;IAChC,MAAM,KAAK,GAAG,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW,CAAA;IAE5D,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,qBAAqB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE5C,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC;QAC7B,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,0BAA0B;QAChC,UAAU,EAAE;YACR,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,MAAM;YACN,QAAQ;SACF;QACV,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAI,SAAS,CAAC;QACvC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE;YACR,OAAO;YACP,YAAY;YACZ,YAAY;YACZ,MAAM;YACN,QAAQ;YACR,aAAa;SACP;QACV,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC;QAC/B,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,sCAAsC;QAC5C,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,KAAK,CAAC;QAC/B,IAAI,EAAE,uCAAuC;QAC7C,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC;QAC3B,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,iDAAiD;QACvD,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC;QAC/B,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC;QACjC,IAAI,EAAE,sCAAsC;QAC5C,IAAI,EAAE,sDAAsD;QAC5D,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC;QAChC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC;QACjC,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,sDAAsD;QAC5D,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC;QAChC,IAAI,EAAE,qCAAqC;QAC3C,IAAI,EAAE,oCAAoC;QAC1C,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAU;QACvC,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC;QACzC,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,kDAAkD;QACxD,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC;QACzC,IAAI,EAAE,+CAA+C;QACrD,IAAI,EAAE,8CAA8C;QACpD,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAAG,IAAI,SAAS,CAAC;QAC1C,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,kFAAkF;QACxF,UAAU,EAAE,EAAW;QACvB,SAAS;QACT,OAAO,EAAE;YACL,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG;YACnE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;SAChC;KACJ,CAAC,CAAA;IAEF,MAAM,kCAAkC,GAAG,IAAI,SAAS,CAAC;QACrD,IAAI,EAAE,qDAAqD;QAC3D,IAAI,EAAE,qDAAqD;QAC3D,UAAU,EAAE,EAAW;QACvB,SAAS;QACT,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACzD,CAAC,CAAA;IAEF,MAAM,mCAAmC,GAAG,IAAI,SAAS,CAAC;QACtD,IAAI,EAAE,8CAA8C;QACpD,IAAI,EAAE,mDAAmD;QACzD,UAAU,EAAE,EAAW;QACvB,SAAS;QACT,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;KAC9C,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC;QACrC,IAAI,EAAE,kCAAkC;QACxC,IAAI,EAAE,iCAAiC;QACvC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAU;QACzC,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC;QACnC,IAAI,EAAE,wCAAwC;QAC9C,IAAI,EAAE,uCAAuC;QAC7C,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC;QAC/B,IAAI,EAAE,oCAAoC;QAC1C,IAAI,EAAE,gDAAgD;QACtD,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,IAAI,SAAS,CAAC;QAC5C,IAAI,EAAE,gDAAgD;QACtD,IAAI,EAAE,oFAAoF;QAC1F,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAI,KAAK,CAAC;QACnC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,+BAA+B;QACrC,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,gCAAgC,GAAG,IAAI,KAAK,CAAC;QAC/C,IAAI,EAAE,0CAA0C;QAChD,IAAI,EAAE,6EAA6E;QACnF,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAAG,IAAI,KAAK,CAAC;QACtC,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,gCAAgC;QACtC,UAAU,EAAE,CAAC,QAAQ,CAAU;QAC/B,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,IAAI,KAAK,CAAC;QACxC,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,yCAAyC;QAC/C,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,IAAI,SAAS,CAAC;QACxC,IAAI,EAAE,mDAAmD;QACzD,IAAI,EAAE,2DAA2D;QACjE,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,MAAM,0BAA0B,GAAG,IAAI,OAAO,CAAC;QAC3C,IAAI,EAAE,+BAA+B;QACrC,IAAI,EAAE,mHAAmH;QACzH,UAAU,EAAE,EAAW;QACvB,SAAS;KACZ,CAAC,CAAA;IAEF,OAAO;QACH,YAAY;QACZ,oBAAoB;QACpB,gBAAgB;QAChB,gBAAgB;QAChB,YAAY;QACZ,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,wBAAwB;QACxB,wBAAwB;QACxB,uBAAuB;QACvB,kCAAkC;QAClC,mCAAmC;QACnC,oBAAoB;QACpB,kBAAkB;QAClB,cAAc;QACd,oBAAoB;QACpB,gCAAgC;QAChC,uBAAuB;QACvB,yBAAyB;QACzB,qBAAqB;QACrB,yBAAyB;QACzB,0BAA0B;KAC7B,CAAA;AACL,CAAC"}
|
|
@@ -30,24 +30,23 @@ export const createMemoryMinMaxQueue = ({ config }) => {
|
|
|
30
30
|
let maxDeque = [];
|
|
31
31
|
let latestValue = null;
|
|
32
32
|
return {
|
|
33
|
-
saveValue: (value) => {
|
|
33
|
+
saveValue: async (value) => {
|
|
34
34
|
if (value === 0n) {
|
|
35
|
-
return
|
|
35
|
+
return;
|
|
36
36
|
}
|
|
37
37
|
const result = updateQueues(value, queueValidity, minDeque, maxDeque);
|
|
38
38
|
minDeque = result.minDeque;
|
|
39
39
|
maxDeque = result.maxDeque;
|
|
40
40
|
latestValue = value;
|
|
41
|
-
return Promise.resolve();
|
|
42
41
|
},
|
|
43
|
-
getLatestValue: () => {
|
|
44
|
-
return
|
|
42
|
+
getLatestValue: async () => {
|
|
43
|
+
return latestValue;
|
|
45
44
|
},
|
|
46
|
-
getMinValue: () => {
|
|
47
|
-
return
|
|
45
|
+
getMinValue: async () => {
|
|
46
|
+
return minDeque.length > 0 ? minDeque[0].value : null;
|
|
48
47
|
},
|
|
49
|
-
getMaxValue: () => {
|
|
50
|
-
return
|
|
48
|
+
getMaxValue: async () => {
|
|
49
|
+
return maxDeque.length > 0 ? maxDeque[0].value : null;
|
|
51
50
|
}
|
|
52
51
|
};
|
|
53
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,
|
|
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
|
+
* 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 type { MinMaxQueue } from "./index.js";
|
|
2
23
|
import type { AltoConfig } from "../../createConfig.js";
|
|
3
|
-
export declare const createRedisMinMaxQueue: ({ config,
|
|
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,108 +1,129 @@
|
|
|
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
|
-
// Sorted TTL queue, one queue to keep track of values and other queue to keep track of TTL.
|
|
4
24
|
class SortedTtlSet {
|
|
5
25
|
redis;
|
|
6
|
-
|
|
7
|
-
timestampKey;
|
|
26
|
+
redisKey; // Single sorted set: score = timestamp, member = value
|
|
8
27
|
queueValidity;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
const redis = new Redis(config.redisGasPriceQueueUrl);
|
|
28
|
+
cleanupInterval = null;
|
|
29
|
+
constructor({ queueName, config, redisEndpoint }) {
|
|
30
|
+
const redis = new Redis(redisEndpoint);
|
|
14
31
|
const queueValidity = config.gasPriceExpiry;
|
|
15
|
-
const redisKey = `${config.chainId}:${keyPrefix}`;
|
|
16
32
|
this.redis = redis;
|
|
17
|
-
this.
|
|
18
|
-
this.timestampKey = `${redisKey}:timestamp`;
|
|
33
|
+
this.redisKey = `${config.redisKeyPrefix}:${config.chainId}:${queueName}`;
|
|
19
34
|
this.queueValidity = queueValidity;
|
|
35
|
+
// Start background cleanup every minute
|
|
36
|
+
this.startBackgroundCleanup();
|
|
37
|
+
}
|
|
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();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async cleanup() {
|
|
51
|
+
const cutoffTime = Date.now() / 1_000 - this.queueValidity * 5;
|
|
52
|
+
await this.redis.zremrangebyscore(this.redisKey, "-inf", `(${cutoffTime}`);
|
|
20
53
|
}
|
|
21
54
|
async add(value, logger) {
|
|
22
55
|
try {
|
|
23
|
-
await this.pruneExpiredEntries(logger);
|
|
24
56
|
if (value === 0n) {
|
|
25
57
|
return;
|
|
26
58
|
}
|
|
27
59
|
const now = Date.now() / 1_000;
|
|
28
60
|
const valueStr = value.toString();
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
if (exists) {
|
|
32
|
-
// If value exists, only update its timestamp
|
|
33
|
-
const multi = this.redis.multi();
|
|
34
|
-
multi.zrem(this.timestampKey, valueStr); // Remove old timestamp
|
|
35
|
-
multi.zadd(this.timestampKey, now, valueStr); // Add new timestamp
|
|
36
|
-
await multi.exec();
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
// If it's a new value, add entry to timestamp and value queues
|
|
40
|
-
const multi = this.redis.multi();
|
|
41
|
-
multi.zadd(this.timestampKey, now, valueStr);
|
|
42
|
-
multi.zadd(this.valueKey, valueStr, valueStr);
|
|
43
|
-
await multi.exec();
|
|
44
|
-
}
|
|
61
|
+
// Add or update (if exists) with current timestamp
|
|
62
|
+
await this.redis.zadd(this.redisKey, now, valueStr);
|
|
45
63
|
}
|
|
46
64
|
catch (err) {
|
|
47
65
|
logger.error({ err }, "Failed to save value to minMaxQueue");
|
|
48
66
|
sentry.captureException(err);
|
|
49
67
|
}
|
|
50
68
|
}
|
|
51
|
-
|
|
69
|
+
getValidCutoffTime() {
|
|
70
|
+
return Date.now() / 1_000 - this.queueValidity;
|
|
71
|
+
}
|
|
72
|
+
async getMin(logger) {
|
|
52
73
|
try {
|
|
53
|
-
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
);
|
|
58
|
-
if (expiredMembers.length) {
|
|
59
|
-
const multi = this.redis.multi();
|
|
60
|
-
// Remove expired entries from both sets
|
|
61
|
-
multi.zrem(this.timestampKey, ...expiredMembers);
|
|
62
|
-
multi.zrem(this.valueKey, ...expiredMembers);
|
|
63
|
-
await multi.exec();
|
|
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;
|
|
64
78
|
}
|
|
79
|
+
// Find minimum value among valid entries
|
|
80
|
+
const bigIntValues = validValues.map(BigInt);
|
|
81
|
+
return bigIntValues.reduce((min, val) => (val < min ? val : min));
|
|
65
82
|
}
|
|
66
83
|
catch (err) {
|
|
67
|
-
logger.error({ err }, "Failed to
|
|
84
|
+
logger.error({ err }, "Failed to get min value");
|
|
68
85
|
sentry.captureException(err);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
async getMin(logger) {
|
|
72
|
-
// Prune expired entries
|
|
73
|
-
await this.pruneExpiredEntries(logger);
|
|
74
|
-
// Get the smallest value from the value set
|
|
75
|
-
const values = await this.redis.zrange(this.valueKey, 0, 0);
|
|
76
|
-
if (values.length === 0) {
|
|
77
86
|
return null;
|
|
78
87
|
}
|
|
79
|
-
return BigInt(values[0]);
|
|
80
88
|
}
|
|
81
89
|
async getMax(logger) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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);
|
|
87
103
|
return null;
|
|
88
104
|
}
|
|
89
|
-
return BigInt(values[0]);
|
|
90
105
|
}
|
|
91
106
|
async getLatestValue(logger) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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);
|
|
97
118
|
return null;
|
|
98
119
|
}
|
|
99
|
-
return BigInt(values[0]);
|
|
100
120
|
}
|
|
101
121
|
}
|
|
102
|
-
export const createRedisMinMaxQueue = ({ config,
|
|
122
|
+
export const createRedisMinMaxQueue = ({ config, queueName, redisEndpoint }) => {
|
|
103
123
|
const queue = new SortedTtlSet({
|
|
104
124
|
config,
|
|
105
|
-
|
|
125
|
+
redisEndpoint,
|
|
126
|
+
queueName
|
|
106
127
|
});
|
|
107
128
|
const logger = config.getLogger({ module: "minMaxQueue" }, {
|
|
108
129
|
level: config.logLevel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRedisMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createRedisMinMaxQueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAA;AAG3B,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAItC,
|
|
1
|
+
{"version":3,"file":"createRedisMinMaxQueue.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/createRedisMinMaxQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ export interface MinMaxQueue {
|
|
|
5
5
|
getMinValue(): Promise<bigint | null>;
|
|
6
6
|
getMaxValue(): Promise<bigint | null>;
|
|
7
7
|
}
|
|
8
|
-
export declare const createMinMaxQueue: ({ config,
|
|
8
|
+
export declare const createMinMaxQueue: ({ config, queueName }: {
|
|
9
9
|
config: AltoConfig;
|
|
10
|
-
|
|
10
|
+
queueName: string;
|
|
11
11
|
}) => MinMaxQueue;
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { createMemoryMinMaxQueue } from "./createMemoryMinMaxQueue.js";
|
|
2
2
|
import { createRedisMinMaxQueue } from "./createRedisMinMaxQueue.js";
|
|
3
|
-
export const createMinMaxQueue = ({ config,
|
|
4
|
-
if (config.
|
|
3
|
+
export const createMinMaxQueue = ({ config, queueName }) => {
|
|
4
|
+
if (config.enableHorizontalScaling && config.redisEndpoint) {
|
|
5
5
|
return createRedisMinMaxQueue({
|
|
6
6
|
config,
|
|
7
|
-
|
|
7
|
+
queueName: queueName,
|
|
8
|
+
redisEndpoint: config.redisEndpoint
|
|
8
9
|
});
|
|
9
10
|
}
|
|
10
11
|
return createMemoryMinMaxQueue({ config });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AASjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,MAAM,EACN,SAAS,EAC+B,EAAe,EAAE;IACzD,IAAI,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../utils/minMaxQueue/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AASjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAC9B,MAAM,EACN,SAAS,EAC+B,EAAe,EAAE;IACzD,IAAI,MAAM,CAAC,uBAAuB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzD,OAAO,sBAAsB,CAAC;YAC1B,MAAM;YACN,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,MAAM,CAAC,aAAa;SACtC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;AAC9C,CAAC,CAAA"}
|
package/esm/utils/rpc-reply.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import type { FastifyReply } from "fastify";
|
|
|
2
2
|
import type * as WebSocket from "ws";
|
|
3
3
|
import { RpcStatus } from "./fastify-rpc-decorators.js";
|
|
4
4
|
declare class RpcReply {
|
|
5
|
-
private reply;
|
|
6
|
-
private websocket;
|
|
5
|
+
private readonly reply;
|
|
6
|
+
private readonly websocket;
|
|
7
7
|
constructor(reply: FastifyReply | null, websocket: WebSocket.WebSocket | null);
|
|
8
8
|
status(status: number): this;
|
|
9
9
|
send(data: any): Promise<void>;
|
|
10
|
-
setRpcStatus(status: RpcStatus):
|
|
10
|
+
setRpcStatus(status: RpcStatus): this;
|
|
11
11
|
static fromHttpReply(reply: FastifyReply): RpcReply;
|
|
12
12
|
static fromSocket(socket: WebSocket.WebSocket): RpcReply;
|
|
13
13
|
get rpcStatus(): RpcStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-reply.js","sourceRoot":"","sources":["../../utils/rpc-reply.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,MAAM,QAAQ;
|
|
1
|
+
{"version":3,"file":"rpc-reply.js","sourceRoot":"","sources":["../../utils/rpc-reply.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,MAAM,QAAQ;IACO,KAAK,CAAqB;IAC1B,SAAS,CAA4B;IAEtD,YACI,KAA0B,EAC1B,SAAqC;QAErC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC9B,CAAC;IAEM,MAAM,CAAC,MAAc;QACxB,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAE1B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,yCAAyC;IAClC,KAAK,CAAC,IAAI,CAAC,IAAS;QACvB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACpD,CAAC;IACL,CAAC;IAEM,YAAY,CAAC,MAAiB;QACjC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;QAEhC,OAAO,IAAI,CAAA;IACf,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAmB;QACpC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA2B;QACzC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAE3C,OAAO,QAAQ,CAAA;IACnB,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,SAAS,IAAI,SAAS,CAAC,KAAK,CAAA;IACnD,CAAC;CACJ;AAED,eAAe,QAAQ,CAAA"}
|
|
@@ -12,12 +12,12 @@ export function toViemStateOverrides(stateOverrides) {
|
|
|
12
12
|
const validatedAddress = getAddress(address);
|
|
13
13
|
const entry = {
|
|
14
14
|
address: validatedAddress,
|
|
15
|
-
balance: override.balance
|
|
16
|
-
?
|
|
17
|
-
:
|
|
18
|
-
nonce: override.nonce
|
|
19
|
-
?
|
|
20
|
-
:
|
|
15
|
+
balance: override.balance === undefined
|
|
16
|
+
? undefined
|
|
17
|
+
: override.balance,
|
|
18
|
+
nonce: override.nonce === undefined
|
|
19
|
+
? undefined
|
|
20
|
+
: Number(override.nonce),
|
|
21
21
|
code: override.code
|
|
22
22
|
};
|
|
23
23
|
// Convert state or stateDiff from record to array format
|
|
@@ -35,7 +35,7 @@ export function toViemStateOverrides(stateOverrides) {
|
|
|
35
35
|
}
|
|
36
36
|
result.push(entry);
|
|
37
37
|
}
|
|
38
|
-
catch
|
|
38
|
+
catch {
|
|
39
39
|
console.warn(`Invalid address in state override: ${address}`);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toViemStateOverrides.js","sourceRoot":"","sources":["../../utils/toViemStateOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACb,MAAM,MAAM,CAAA;AAGb,MAAM,UAAU,oBAAoB,CAChC,cAA+B;IAE/B,MAAM,MAAM,GAAsB,EAAE,CAAA;IAEpC,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/D,gCAAgC;QAChC,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEvB,IAAI,CAAC;YACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;YAC5C,MAAM,KAAK,GAA8B;gBACrC,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EACH,QAAQ,CAAC,OAAO,KAAK,SAAS;oBAC1B,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"toViemStateOverrides.js","sourceRoot":"","sources":["../../utils/toViemStateOverrides.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,UAAU,EACb,MAAM,MAAM,CAAA;AAGb,MAAM,UAAU,oBAAoB,CAChC,cAA+B;IAE/B,MAAM,MAAM,GAAsB,EAAE,CAAA;IAEpC,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/D,gCAAgC;QAChC,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEvB,IAAI,CAAC;YACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;YAC5C,MAAM,KAAK,GAA8B;gBACrC,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EACH,QAAQ,CAAC,OAAO,KAAK,SAAS;oBAC1B,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,QAAQ,CAAC,OAAO;gBAC1B,KAAK,EACD,QAAQ,CAAC,KAAK,KAAK,SAAS;oBACxB,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChC,IAAI,EAAE,QAAQ,CAAC,IAAI;aACtB,CAAA;YAED,yDAAyD;YACzD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAC5C,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChB,IAAI,EAAE,IAAW;oBACjB,KAAK,EAAE,KAAY;iBACtB,CAAC,CACL,CAAA;YACL,CAAC;YAED,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACrB,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CACpD,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChB,IAAI,EAAE,IAAW;oBACjB,KAAK,EAAE,KAAY;iBACtB,CAAC,CACL,CAAA;YACL,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,CAAC,IAAI,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAA;QACjE,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}
|