From ccfd1ced4e8592d70c724291bc43fc83273a9f2b Mon Sep 17 00:00:00 2001 From: Rodrigo Quelhas Date: Tue, 18 Feb 2025 22:29:04 +0000 Subject: [PATCH] Trace calls originated from pallet_ethereum_xcm force_transact_as call --- .../src/impl_moonbeam_xcm_call_tracing.rs | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs b/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs index ffddb3b88fe..635d8cc4e0a 100644 --- a/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs +++ b/runtime/common/src/impl_moonbeam_xcm_call_tracing.rs @@ -31,14 +31,14 @@ macro_rules! impl_moonbeam_xcm_call_tracing { origin: RuntimeOrigin, ) -> CallResult { if let Ok(raw_origin) = TryInto::>::try_into(origin.clone().caller) { - match (call.clone(), raw_origin) { - ( - RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact { xcm_transaction }) | - RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact_through_proxy { - xcm_transaction, .. - }), - RawOrigin::Signed(account_id) - ) => { + match call.clone() { + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact { xcm_transaction }) | + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::transact_through_proxy { + xcm_transaction, .. + }) | + RuntimeCall::EthereumXcm(pallet_ethereum_xcm::Call::force_transact_as { + xcm_transaction, .. + }) => { use crate::EthereumXcm; use moonbeam_evm_tracer::tracer::EvmTracer; use xcm_primitives::{ @@ -52,9 +52,14 @@ macro_rules! impl_moonbeam_xcm_call_tracing { let dispatch_call = || { RuntimeCall::dispatch( call, - pallet_ethereum_xcm::Origin::XcmEthereumTransaction( - account_id.into() - ).into() + match raw_origin { + RawOrigin::Signed(account_id) => { + pallet_ethereum_xcm::Origin::XcmEthereumTransaction( + account_id.into() + ).into() + }, + origin => origin.into() + } ) };