From 599758fdeffd22ea673146655740dc64a2be6a2d Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Mon, 18 Sep 2023 18:25:49 +0200 Subject: [PATCH] fix incorrect block hash in eth_getTransactionReceipt (#122) --- src/node.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/node.rs b/src/node.rs index ff7eb231..95581ac4 100644 --- a/src/node.rs +++ b/src/node.rs @@ -1496,7 +1496,7 @@ impl EthNamespaceT for let receipt = tx_result.map(|info| TransactionReceipt { transaction_hash: hash, transaction_index: U64::from(1), - block_hash: Some(hash), + block_hash: reader.block_hashes.get(&info.miniblock_number).cloned(), block_number: Some(U64::from(info.miniblock_number)), l1_batch_tx_index: None, l1_batch_number: Some(U64::from(info.batch_number as u64)), @@ -2678,4 +2678,19 @@ mod tests { ); } } + + #[tokio::test] + async fn test_get_transaction_receipt_uses_produced_block_hash() { + let node = InMemoryNode::::default(); + let tx_hash = H256::repeat_byte(0x01); + let expected_block_hash = testing::apply_tx(&node, tx_hash); + + let actual_tx_receipt = node + .get_transaction_receipt(tx_hash) + .await + .expect("failed fetching transaction receipt by hash") + .expect("no transaction receipt"); + + assert_eq!(Some(expected_block_hash), actual_tx_receipt.block_hash); + } }