1234567891011121314151617use codec::{Encode, Decode};18use crate::{opaque, Runtime, UncheckedExtrinsic};1920pub struct TransactionConverter;2122impl fp_rpc::ConvertTransaction<UncheckedExtrinsic> for TransactionConverter {23 fn convert_transaction(&self, transaction: pallet_ethereum::Transaction) -> UncheckedExtrinsic {24 UncheckedExtrinsic::new_unsigned(25 pallet_ethereum::Call::<Runtime>::transact { transaction }.into(),26 )27 }28}2930impl fp_rpc::ConvertTransaction<opaque::UncheckedExtrinsic> for TransactionConverter {31 fn convert_transaction(32 &self,33 transaction: pallet_ethereum::Transaction,34 ) -> opaque::UncheckedExtrinsic {35 let extrinsic = UncheckedExtrinsic::new_unsigned(36 pallet_ethereum::Call::<Runtime>::transact { transaction }.into(),37 );38 let encoded = extrinsic.encode();39 opaque::UncheckedExtrinsic::decode(&mut &encoded[..])40 .expect("Encoded extrinsic is always valid")41 }42}