test: add tests for base l1 blockinfo (#12609)

This commit is contained in:
Matthias Seitz
2024-11-18 14:19:30 +01:00
committed by GitHub
parent a84f58bcb8
commit b5bb3157c3

View File

@ -233,13 +233,12 @@ impl OpReceiptBuilder {
#[cfg(test)]
mod test {
use super::*;
use alloy_primitives::hex;
use op_alloy_network::eip2718::Decodable2718;
use reth_optimism_chainspec::OP_MAINNET;
use reth_optimism_chainspec::{BASE_MAINNET, OP_MAINNET};
use reth_primitives::{Block, BlockBody};
use super::*;
/// OP Mainnet transaction at index 0 in block 124665056.
///
/// <https://optimistic.etherscan.io/tx/0x312e290cf36df704a2217b015d6455396830b0ce678b860ebfcc30f41403d7b1>
@ -342,4 +341,46 @@ mod test {
"incorrect l1 blob base fee scalar"
);
}
// <https://github.com/paradigmxyz/reth/issues/12177>
#[test]
fn base_receipt_gas_fields() {
// https://basescan.org/tx/0x510fd4c47d78ba9f97c91b0f2ace954d5384c169c9545a77a373cf3ef8254e6e
let system = hex!("7ef8f8a0389e292420bcbf9330741f72074e39562a09ff5a00fd22e4e9eee7e34b81bca494deaddeaddeaddeaddeaddeaddeaddeaddead00019442000000000000000000000000000000000000158080830f424080b8a4440a5e20000008dd00101c120000000000000004000000006721035b00000000014189960000000000000000000000000000000000000000000000000000000349b4dcdc000000000000000000000000000000000000000000000000000000004ef9325cc5991ce750960f636ca2ffbb6e209bb3ba91412f21dd78c14ff154d1930f1f9a0000000000000000000000005050f69a9786f081509234f1a7f4684b5e5b76c9");
let tx_0 = TransactionSigned::decode_2718(&mut &system[..]).unwrap();
let block = Block {
body: BlockBody { transactions: vec![tx_0], ..Default::default() },
..Default::default()
};
let l1_block_info =
reth_optimism_evm::extract_l1_info(&block.body).expect("should extract l1 info");
// https://basescan.org/tx/0xf9420cbaf66a2dda75a015488d37262cbfd4abd0aad7bb2be8a63e14b1fa7a94
let tx = hex!("02f86c8221058034839a4ae283021528942f16386bb37709016023232523ff6d9daf444be380841249c58bc080a001b927eda2af9b00b52a57be0885e0303c39dd2831732e14051c2336470fd468a0681bf120baf562915841a48601c2b54a6742511e535cf8f71c95115af7ff63bd");
let tx_1 = TransactionSigned::decode_2718(&mut &tx[..]).unwrap();
let receipt_meta = OpReceiptFieldsBuilder::new(1730216981)
.l1_block_info(&BASE_MAINNET, &tx_1, l1_block_info)
.expect("should parse revm l1 info")
.build();
let L1BlockInfo {
l1_gas_price,
l1_gas_used,
l1_fee,
l1_fee_scalar,
l1_base_fee_scalar,
l1_blob_base_fee,
l1_blob_base_fee_scalar,
} = receipt_meta.l1_block_info;
assert_eq!(l1_gas_price, Some(14121491676), "incorrect l1 base fee (former gas price)");
assert_eq!(l1_gas_used, Some(1600), "incorrect l1 gas used");
assert_eq!(l1_fee, Some(191150293412), "incorrect l1 fee");
assert!(l1_fee_scalar.is_none(), "incorrect l1 fee scalar");
assert_eq!(l1_base_fee_scalar, Some(2269), "incorrect l1 base fee scalar");
assert_eq!(l1_blob_base_fee, Some(1324954204), "incorrect l1 blob base fee");
assert_eq!(l1_blob_base_fee_scalar, Some(1055762), "incorrect l1 blob base fee scalar");
}
}