Skip to content

Commit

Permalink
chore(mempool): derive copy for transaction reference struct (#836)
Browse files Browse the repository at this point in the history
  • Loading branch information
MohammadNassar1 authored Sep 17, 2024
1 parent 88b6d2c commit eab9d28
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 9 deletions.
7 changes: 3 additions & 4 deletions crates/mempool/src/mempool.rs
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ impl Mempool {
if let Some(next_tx_reference) =
self.tx_pool.get_next_eligible_tx(current_account_state)?
{
self.tx_queue.insert(next_tx_reference.clone());
self.tx_queue.insert(*next_tx_reference);
}
}

Expand Down Expand Up @@ -199,7 +199,7 @@ impl Mempool {
// Maybe close nonce gap.
if self.tx_queue.get_nonce(address).is_none() {
if let Some(tx_reference) = self.tx_pool.get_by_address_and_nonce(address, nonce) {
self.tx_queue.insert(tx_reference.clone());
self.tx_queue.insert(*tx_reference);
}
}
}
Expand All @@ -214,8 +214,7 @@ impl Mempool {
/// execution fields).
/// TODO(Mohammad): rename this struct to `ThinTransaction` once that name
/// becomes available, to better reflect its purpose and usage.
/// TODO(Mohammad): restore the Copy once ResourceBoundsMapping implements it.
#[derive(Clone, Debug, Eq, PartialEq)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub struct TransactionReference {
pub sender_address: ContractAddress,
pub nonce: Nonce,
Expand Down
6 changes: 3 additions & 3 deletions crates/mempool/src/mempool_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ fn test_get_txs_with_holes_single_account() {
let pool_txs = [input_nonce_1.tx];
let queue_txs = [];
let mut mempool: Mempool =
MempoolContent::with_pool_and_queue(pool_txs.clone(), queue_txs.clone()).into();
MempoolContent::with_pool_and_queue(pool_txs.clone(), queue_txs).into();

// Test.
let txs = mempool.get_txs(1).unwrap();
Expand Down Expand Up @@ -507,7 +507,7 @@ fn test_add_tx_lower_than_queued_nonce() {
add_tx_input!(tx_hash: 2, sender_address: "0x0", tx_nonce: 0_u8, account_nonce: 0_u8);

let queue_txs = [TransactionReference::new(&valid_input.tx)];
let expected_mempool_content = MempoolContent::with_queue(queue_txs.clone());
let expected_mempool_content = MempoolContent::with_queue(queue_txs);
let pool_txs = [valid_input.tx];
let mut mempool: Mempool = MempoolContent::with_pool_and_queue(pool_txs, queue_txs).into();

Expand Down Expand Up @@ -706,7 +706,7 @@ fn test_commit_block_includes_all_txs() {
.map(TransactionReference::new);
let pool_txs = [tx_address0_nonce4, tx_address0_nonce5, tx_address1_nonce3, tx_address2_nonce1];
let mut mempool: Mempool =
MempoolContent::with_pool_and_queue(pool_txs.clone(), queue_txs.clone()).into();
MempoolContent::with_pool_and_queue(pool_txs.clone(), queue_txs).into();

// Test.
let state_changes = HashMap::from([
Expand Down
4 changes: 2 additions & 2 deletions crates/mempool/src/transaction_queue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ impl TransactionQueue {
/// Panics: if given a duplicate tx.
pub fn insert(&mut self, tx_reference: TransactionReference) {
assert_eq!(
self.address_to_tx.insert(tx_reference.sender_address, tx_reference.clone()),
self.address_to_tx.insert(tx_reference.sender_address, tx_reference),
None,
"Only a single transaction from the same contract class can be in the mempool at a \
time."
Expand Down Expand Up @@ -77,7 +77,7 @@ impl TransactionQueue {
return false;
};

self.priority_queue.remove(&tx_reference.clone().into())
self.priority_queue.remove(&tx_reference.into())
|| self.pending_queue.remove(&tx_reference.into())
}

Expand Down

0 comments on commit eab9d28

Please sign in to comment.