git.delta.rocks / unique-network / refs/commits / 6a7d5b108992

difftreelog

source

runtime/common/ethereum/transaction_converter.rs1.6 KiBsourcehistory
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617use 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}