mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 02:49:55 +00:00
fix: Support certain types of system tx
This commit is contained in:
@ -127,6 +127,19 @@ pub struct SystemTx {
|
||||
pub receipt: Option<LegacyReceipt>,
|
||||
}
|
||||
|
||||
impl SystemTx {
|
||||
pub fn gas_limit(&self) -> u64 {
|
||||
use reth_compat::Transaction;
|
||||
match &self.tx {
|
||||
Transaction::Legacy(tx) => tx.gas_limit,
|
||||
Transaction::Eip2930(tx) => tx.gas_limit,
|
||||
Transaction::Eip1559(tx) => tx.gas_limit,
|
||||
Transaction::Eip4844(tx) => tx.gas_limit,
|
||||
Transaction::Eip7702(tx) => tx.gas_limit,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(
|
||||
Debug,
|
||||
Clone,
|
||||
|
||||
@ -117,6 +117,9 @@ impl SealedBlock {
|
||||
receipts: Vec<LegacyReceipt>,
|
||||
chain_id: u64,
|
||||
) -> HlBlock {
|
||||
// NOTE: Filter out system transactions that may be rejected by the EVM (tracked by #97, testnet only).
|
||||
let system_txs: Vec<_> = system_txs.into_iter().filter(|tx| tx.gas_limit() != 0).collect();
|
||||
|
||||
let mut merged_txs = vec![];
|
||||
merged_txs.extend(system_txs.iter().map(|tx| system_tx_to_reth_transaction(tx, chain_id)));
|
||||
merged_txs.extend(self.body.transactions.iter().map(|tx| tx.to_reth_transaction()));
|
||||
|
||||
Reference in New Issue
Block a user