From 2b33b59ed8dbd08e09f0411b1f48d4fd1393c8a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Hodul=C3=A1k?= Date: Fri, 23 May 2025 18:04:32 +0200 Subject: [PATCH] refactor(examples): Rename `CustomTxEnv` => `PaymentTxEnv` and `CustomEvmTransaction` => `CustomTxEnv` (#16443) --- examples/custom-node/src/evm/alloy.rs | 14 +-- examples/custom-node/src/evm/env.rs | 115 +++++++++++------------ examples/custom-node/src/evm/executor.rs | 4 +- examples/custom-node/src/evm/mod.rs | 2 +- 4 files changed, 67 insertions(+), 68 deletions(-) diff --git a/examples/custom-node/src/evm/alloy.rs b/examples/custom-node/src/evm/alloy.rs index 45cd285969..0c7d3811e8 100644 --- a/examples/custom-node/src/evm/alloy.rs +++ b/examples/custom-node/src/evm/alloy.rs @@ -1,4 +1,4 @@ -use crate::evm::{CustomEvmTransaction, CustomTxEnv}; +use crate::evm::{CustomTxEnv, PaymentTxEnv}; use alloy_evm::{precompiles::PrecompilesMap, Database, Evm, EvmEnv, EvmFactory}; use alloy_op_evm::{OpEvm, OpEvmFactory}; use alloy_primitives::{Address, Bytes}; @@ -15,9 +15,9 @@ use reth_ethereum::evm::revm::{ use revm::{context_interface::result::EVMError, inspector::NoOpInspector}; use std::error::Error; -/// EVM context contains data that EVM needs for execution of [`CustomEvmTransaction`]. +/// EVM context contains data that EVM needs for execution of [`CustomTxEnv`]. pub type CustomContext = - Context, CfgEnv, DB, Journal, L1BlockInfo>; + Context, CfgEnv, DB, Journal, L1BlockInfo>; pub struct CustomEvm { inner: OpEvm, @@ -36,7 +36,7 @@ where P: PrecompileProvider, Output = InterpreterResult>, { type DB = DB; - type Tx = CustomEvmTransaction; + type Tx = CustomTxEnv; type Error = EVMError; type HaltReason = OpHaltReason; type Spec = OpSpecId; @@ -56,8 +56,8 @@ where tx: Self::Tx, ) -> Result, Self::Error> { match tx { - CustomEvmTransaction::Op(tx) => self.inner.transact_raw(tx), - CustomEvmTransaction::Payment(..) => todo!(), + CustomTxEnv::Op(tx) => self.inner.transact_raw(tx), + CustomTxEnv::Payment(..) => todo!(), } } @@ -105,7 +105,7 @@ pub struct CustomEvmFactory(pub OpEvmFactory); impl EvmFactory for CustomEvmFactory { type Evm>> = CustomEvm; type Context = OpContext; - type Tx = CustomEvmTransaction; + type Tx = CustomTxEnv; type Error = EVMError; type HaltReason = OpHaltReason; type Spec = OpSpecId; diff --git a/examples/custom-node/src/evm/env.rs b/examples/custom-node/src/evm/env.rs index 6e42eaeaba..91e7293b92 100644 --- a/examples/custom-node/src/evm/env.rs +++ b/examples/custom-node/src/evm/env.rs @@ -6,14 +6,13 @@ use op_alloy_consensus::OpTxEnvelope; use op_revm::OpTransaction; use reth_ethereum::evm::{primitives::TransactionEnv, revm::context::TxEnv}; -/// An Optimism extended Ethereum transaction that can be fed to [`Evm`] because it contains -/// [`CustomTxEnv`]. +/// An Optimism transaction extended by [`PaymentTxEnv`] that can be fed to [`Evm`]. /// /// [`Evm`]: alloy_evm::Evm #[derive(Clone, Debug)] -pub enum CustomEvmTransaction { +pub enum CustomTxEnv { Op(OpTransaction), - Payment(CustomTxEnv), + Payment(PaymentTxEnv), } /// A transaction environment is a set of information related to an Ethereum transaction that can be @@ -21,9 +20,9 @@ pub enum CustomEvmTransaction { /// /// [`Evm`]: alloy_evm::Evm #[derive(Clone, Debug, Default)] -pub struct CustomTxEnv(pub TxEnv); +pub struct PaymentTxEnv(pub TxEnv); -impl revm::context::Transaction for CustomEvmTransaction { +impl revm::context::Transaction for CustomTxEnv { type AccessListItem<'a> = ::AccessListItem<'a> where @@ -35,111 +34,111 @@ impl revm::context::Transaction for CustomEvmTransaction { fn tx_type(&self) -> u8 { match self { - CustomEvmTransaction::Op(tx) => tx.tx_type(), - CustomEvmTransaction::Payment(tx) => tx.tx_type(), + Self::Op(tx) => tx.tx_type(), + Self::Payment(tx) => tx.tx_type(), } } fn caller(&self) -> Address { match self { - CustomEvmTransaction::Op(tx) => tx.caller(), - CustomEvmTransaction::Payment(tx) => tx.caller(), + Self::Op(tx) => tx.caller(), + Self::Payment(tx) => tx.caller(), } } fn gas_limit(&self) -> u64 { match self { - CustomEvmTransaction::Op(tx) => tx.gas_limit(), - CustomEvmTransaction::Payment(tx) => tx.gas_limit(), + Self::Op(tx) => tx.gas_limit(), + Self::Payment(tx) => tx.gas_limit(), } } fn value(&self) -> U256 { match self { - CustomEvmTransaction::Op(tx) => tx.value(), - CustomEvmTransaction::Payment(tx) => tx.value(), + Self::Op(tx) => tx.value(), + Self::Payment(tx) => tx.value(), } } fn input(&self) -> &Bytes { match self { - CustomEvmTransaction::Op(tx) => tx.input(), - CustomEvmTransaction::Payment(tx) => tx.input(), + Self::Op(tx) => tx.input(), + Self::Payment(tx) => tx.input(), } } fn nonce(&self) -> u64 { match self { - CustomEvmTransaction::Op(tx) => revm::context::Transaction::nonce(tx), - CustomEvmTransaction::Payment(tx) => revm::context::Transaction::nonce(tx), + Self::Op(tx) => revm::context::Transaction::nonce(tx), + Self::Payment(tx) => revm::context::Transaction::nonce(tx), } } fn kind(&self) -> TxKind { match self { - CustomEvmTransaction::Op(tx) => tx.kind(), - CustomEvmTransaction::Payment(tx) => tx.kind(), + Self::Op(tx) => tx.kind(), + Self::Payment(tx) => tx.kind(), } } fn chain_id(&self) -> Option { match self { - CustomEvmTransaction::Op(tx) => tx.chain_id(), - CustomEvmTransaction::Payment(tx) => tx.chain_id(), + Self::Op(tx) => tx.chain_id(), + Self::Payment(tx) => tx.chain_id(), } } fn gas_price(&self) -> u128 { match self { - CustomEvmTransaction::Op(tx) => tx.gas_price(), - CustomEvmTransaction::Payment(tx) => tx.gas_price(), + Self::Op(tx) => tx.gas_price(), + Self::Payment(tx) => tx.gas_price(), } } fn access_list(&self) -> Option>> { Some(match self { - CustomEvmTransaction::Op(tx) => tx.base.access_list.iter(), - CustomEvmTransaction::Payment(tx) => tx.0.access_list.iter(), + Self::Op(tx) => tx.base.access_list.iter(), + Self::Payment(tx) => tx.0.access_list.iter(), }) } fn blob_versioned_hashes(&self) -> &[B256] { match self { - CustomEvmTransaction::Op(tx) => tx.blob_versioned_hashes(), - CustomEvmTransaction::Payment(tx) => tx.blob_versioned_hashes(), + Self::Op(tx) => tx.blob_versioned_hashes(), + Self::Payment(tx) => tx.blob_versioned_hashes(), } } fn max_fee_per_blob_gas(&self) -> u128 { match self { - CustomEvmTransaction::Op(tx) => tx.max_fee_per_blob_gas(), - CustomEvmTransaction::Payment(tx) => tx.max_fee_per_blob_gas(), + Self::Op(tx) => tx.max_fee_per_blob_gas(), + Self::Payment(tx) => tx.max_fee_per_blob_gas(), } } fn authorization_list_len(&self) -> usize { match self { - CustomEvmTransaction::Op(tx) => tx.authorization_list_len(), - CustomEvmTransaction::Payment(tx) => tx.authorization_list_len(), + Self::Op(tx) => tx.authorization_list_len(), + Self::Payment(tx) => tx.authorization_list_len(), } } fn authorization_list(&self) -> impl Iterator> { match self { - CustomEvmTransaction::Op(tx) => tx.base.authorization_list.iter(), - CustomEvmTransaction::Payment(tx) => tx.0.authorization_list.iter(), + Self::Op(tx) => tx.base.authorization_list.iter(), + Self::Payment(tx) => tx.0.authorization_list.iter(), } } fn max_priority_fee_per_gas(&self) -> Option { match self { - CustomEvmTransaction::Op(tx) => tx.max_priority_fee_per_gas(), - CustomEvmTransaction::Payment(tx) => tx.max_priority_fee_per_gas(), + Self::Op(tx) => tx.max_priority_fee_per_gas(), + Self::Payment(tx) => tx.max_priority_fee_per_gas(), } } } -impl revm::context::Transaction for CustomTxEnv { +impl revm::context::Transaction for PaymentTxEnv { type AccessListItem<'a> = ::AccessListItem<'a> where @@ -210,7 +209,7 @@ impl revm::context::Transaction for CustomTxEnv { } } -impl TransactionEnv for CustomTxEnv { +impl TransactionEnv for PaymentTxEnv { fn set_gas_limit(&mut self, gas_limit: u64) { self.0.set_gas_limit(gas_limit); } @@ -228,39 +227,39 @@ impl TransactionEnv for CustomTxEnv { } } -impl TransactionEnv for CustomEvmTransaction { +impl TransactionEnv for CustomTxEnv { fn set_gas_limit(&mut self, gas_limit: u64) { match self { - CustomEvmTransaction::Op(tx) => tx.set_gas_limit(gas_limit), - CustomEvmTransaction::Payment(tx) => tx.set_gas_limit(gas_limit), + Self::Op(tx) => tx.set_gas_limit(gas_limit), + Self::Payment(tx) => tx.set_gas_limit(gas_limit), } } fn nonce(&self) -> u64 { match self { - CustomEvmTransaction::Op(tx) => tx.nonce(), - CustomEvmTransaction::Payment(tx) => tx.nonce(), + Self::Op(tx) => tx.nonce(), + Self::Payment(tx) => tx.nonce(), } } fn set_nonce(&mut self, nonce: u64) { match self { - CustomEvmTransaction::Op(tx) => tx.set_nonce(nonce), - CustomEvmTransaction::Payment(tx) => tx.set_nonce(nonce), + Self::Op(tx) => tx.set_nonce(nonce), + Self::Payment(tx) => tx.set_nonce(nonce), } } fn set_access_list(&mut self, access_list: AccessList) { match self { - CustomEvmTransaction::Op(tx) => tx.set_access_list(access_list), - CustomEvmTransaction::Payment(tx) => tx.set_access_list(access_list), + Self::Op(tx) => tx.set_access_list(access_list), + Self::Payment(tx) => tx.set_access_list(access_list), } } } -impl FromRecoveredTx for CustomTxEnv { +impl FromRecoveredTx for PaymentTxEnv { fn from_recovered_tx(tx: &CustomTransaction, sender: Address) -> Self { - CustomTxEnv(match tx { + PaymentTxEnv(match tx { CustomTransaction::BuiltIn(tx) => { OpTransaction::::from_recovered_tx(tx, sender).base } @@ -269,9 +268,9 @@ impl FromRecoveredTx for CustomTxEnv { } } -impl FromTxWithEncoded for CustomTxEnv { +impl FromTxWithEncoded for PaymentTxEnv { fn from_encoded_tx(tx: &CustomTransaction, sender: Address, encoded: Bytes) -> Self { - CustomTxEnv(match tx { + PaymentTxEnv(match tx { CustomTransaction::BuiltIn(tx) => { OpTransaction::::from_encoded_tx(tx, sender, encoded).base } @@ -318,41 +317,41 @@ impl FromTxWithEncoded for TxEnv { } } -impl FromRecoveredTx for CustomEvmTransaction { +impl FromRecoveredTx for CustomTxEnv { fn from_recovered_tx(tx: &OpTxEnvelope, sender: Address) -> Self { Self::Op(OpTransaction::from_recovered_tx(tx, sender)) } } -impl FromTxWithEncoded for CustomEvmTransaction { +impl FromTxWithEncoded for CustomTxEnv { fn from_encoded_tx(tx: &OpTxEnvelope, sender: Address, encoded: Bytes) -> Self { Self::Op(OpTransaction::from_encoded_tx(tx, sender, encoded)) } } -impl FromRecoveredTx for CustomEvmTransaction { +impl FromRecoveredTx for CustomTxEnv { fn from_recovered_tx(tx: &CustomTransaction, sender: Address) -> Self { match tx { CustomTransaction::BuiltIn(tx) => Self::from_recovered_tx(tx, sender), CustomTransaction::Other(tx) => { - Self::Payment(CustomTxEnv(TxEnv::from_recovered_tx(tx, sender))) + Self::Payment(PaymentTxEnv(TxEnv::from_recovered_tx(tx, sender))) } } } } -impl FromTxWithEncoded for CustomEvmTransaction { +impl FromTxWithEncoded for CustomTxEnv { fn from_encoded_tx(tx: &CustomTransaction, sender: Address, encoded: Bytes) -> Self { match tx { CustomTransaction::BuiltIn(tx) => Self::from_encoded_tx(tx, sender, encoded), CustomTransaction::Other(tx) => { - Self::Payment(CustomTxEnv(TxEnv::from_encoded_tx(tx, sender, encoded))) + Self::Payment(PaymentTxEnv(TxEnv::from_encoded_tx(tx, sender, encoded))) } } } } -impl IntoTxEnv for CustomEvmTransaction { +impl IntoTxEnv for CustomTxEnv { fn into_tx_env(self) -> Self { self } diff --git a/examples/custom-node/src/evm/executor.rs b/examples/custom-node/src/evm/executor.rs index 5b26e5ced5..976c45ef52 100644 --- a/examples/custom-node/src/evm/executor.rs +++ b/examples/custom-node/src/evm/executor.rs @@ -1,7 +1,7 @@ use crate::{ evm::{ alloy::{CustomEvm, CustomEvmFactory}, - CustomEvmConfig, CustomEvmTransaction, + CustomEvmConfig, CustomTxEnv, }, primitives::CustomTransaction, }; @@ -27,7 +27,7 @@ pub struct CustomBlockExecutor { impl<'db, DB, E> BlockExecutor for CustomBlockExecutor where DB: Database + 'db, - E: Evm, Tx = CustomEvmTransaction>, + E: Evm, Tx = CustomTxEnv>, { type Transaction = CustomTransaction; type Receipt = OpReceipt; diff --git a/examples/custom-node/src/evm/mod.rs b/examples/custom-node/src/evm/mod.rs index 81441154be..eb1fe974ff 100644 --- a/examples/custom-node/src/evm/mod.rs +++ b/examples/custom-node/src/evm/mod.rs @@ -7,5 +7,5 @@ mod executor; pub use alloy::{CustomContext, CustomEvm}; pub use assembler::CustomBlockAssembler; pub use config::CustomEvmConfig; -pub use env::{CustomEvmTransaction, CustomTxEnv}; +pub use env::{CustomTxEnv, PaymentTxEnv}; pub use executor::CustomBlockExecutor;