log::trace!("NativeTokenTransferData: failed to decode message. This is expected if the message is not related to a SendNativeToken command. Error: {:?}", e);
/// `NativeTokenTransferMessageProcessor` is responsible for receiving and processing the Tanssi
// TODO: ensure this does not warn on container token transfers or other message types, if yes change to debug
log::trace!("NativeTokenTransferMessageProcessor: processing token transfer: token_id={:?}, amount={}, destination={:?}",
log::trace!("NativeTokenTransferMessageProcessor: failed to decode message. This is expected if the message is not for this processor.");
/// `NativeContainerTokensProcessor` is responsible for receiving and processing native container
/// chain tokens coming from Ethereum and forwarding them to the container chain via Tanssi through XCM.
"NativeContainerTokensProcessor::can_process_message: token location not found for token_id: {:?}",
/// Process a native container token transfer by creating and sending an XCM message to the destination parachain.
log::error!("NativeContainerTokensProcessor::process_native_token_transfer: invalid destination");
"NativeContainerTokensProcessor: failed to transfer fee from FeesAccount to container sovereign account: {:?}",
fn process_reward(who: T::AccountId, _channel: Channel, message: Message) -> DispatchResult {
/// This ensures that the randomness will be different on different pallets, as long as the subject is different.
pub fn mix_randomness<T: frame_system::Config>(vrf_output: [u8; 32], subject: &[u8]) -> T::Hash {
/// token and ERC20s coming from Ethereum with Tanssi chain or container-chains as final destinations.
fn process_xcm_local_native_eth_transfer(eth_transfer_data: EthTransferData) -> DispatchResult {
"EthTokensLocalProcessor: failed to transfer fee from FeesAccount to container sovereign account: {:?}",
/// Handler for depositing fees to the exporter fees account or a default account based on the reason.
fn handle_fee(fee: XcmAssets, context: Option<&XcmContext>, reason: FeeReason) -> XcmAssets {