feat: Support erc20 system tx from address

This commit is contained in:
sprites0
2025-03-10 23:47:59 +00:00
parent 7fe7c06507
commit 9a6a1a4cc1
5 changed files with 29 additions and 21 deletions

View File

@ -21,7 +21,7 @@ use reth_primitives_traits::{
sync::OnceLock,
transaction::{
error::TransactionConversionError,
signed::{is_impersonated_tx, RecoveryError, HL_SYSTEM_TX_FROM_ADDR},
signed::{is_impersonated_tx, RecoveryError},
},
InMemorySize, SignedTransaction,
};
@ -836,8 +836,8 @@ impl SignedTransaction for TransactionSigned {
fn recover_signer(&self) -> Result<Address, RecoveryError> {
let signature = self.signature();
if is_impersonated_tx(signature, self.gas_price()) {
return Ok(HL_SYSTEM_TX_FROM_ADDR);
if let Some(address) = is_impersonated_tx(signature, self.gas_price()) {
return Ok(address);
}
let signature_hash = self.signature_hash();
recover_signer(&self.signature, signature_hash)