From 5fd63f3855578e943f2a01641f789f3e25591f62 Mon Sep 17 00:00:00 2001 From: Emmanuel Ikwuoma Date: Wed, 21 Jan 2026 09:00:34 +0100 Subject: [PATCH] use Relaxed memory ordering and add overflow check --- .../src/infrastructure/in_memory/mempool.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/account-abstraction-core/src/infrastructure/in_memory/mempool.rs b/crates/account-abstraction-core/src/infrastructure/in_memory/mempool.rs index 5aa71661..e6398ec8 100644 --- a/crates/account-abstraction-core/src/infrastructure/in_memory/mempool.rs +++ b/crates/account-abstraction-core/src/infrastructure/in_memory/mempool.rs @@ -4,7 +4,7 @@ use alloy_primitives::Address; use std::cmp::Ordering; use std::collections::{BTreeSet, HashMap}; use std::sync::Arc; -use std::sync::atomic::{AtomicU64, Ordering as AtomicOrdering}; +use std::sync::atomic::{AtomicU64, Ordering::Relaxed}; use tracing::warn; #[derive(Eq, PartialEq, Clone, Debug)] @@ -171,7 +171,8 @@ impl InMemoryMempool { fn get_next_order_id(&self) -> u64 { self.submission_id_counter - .fetch_add(1, AtomicOrdering::SeqCst) + .fetch_update(Relaxed, Relaxed, + |id| id.checked_add(1)).expect("too many UserOp") } pub fn new(config: PoolConfig) -> Self {