1234567891011121314151617use codec::{Encode, Decode};18use crate::{19 opaque,20 Runtime,21 UncheckedExtrinsic,22};2324pub struct TransactionConverter;2526impl fp_rpc::ConvertTransaction<UncheckedExtrinsic> for TransactionConverter {27 fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic {28 UncheckedExtrinsic::new_unsigned(29 pallet_ethereum::Call::<Runtime>::transact { transaction }.into(),30 )31 }32}3334impl fp_rpc::ConvertTransaction<opaque::UncheckedExtrinsic> for TransactionConverter {35 fn convert_transaction(36 &self,37 transaction: pallet_ethereum::Transaction,38 ) -> opaque::UncheckedExtrinsic {39 let extrinsic = UncheckedExtrinsic::new_unsigned(40 pallet_ethereum::Call::<Runtime>::transact { transaction }.into(),41 );42 let encoded = extrinsic.encode();43 opaque::UncheckedExtrinsic::decode(&mut &encoded[..])44 .expect("Encoded extrinsic is always valid")45 }46}