//! Helper datatypes for cumulus. This includes the [`ParentAsUmp`] routing type which will route
/// Xcm router which recognises the `Parent` destination and handles it by sending the message into
/// NOTE: This is a pretty dumb "just send it" router; we will probably want to introduce queuing
/// to UMP eventually and when we do, the pallet which implements the queuing will be responsible
log::trace!(target: "xcm::weight", "TakeFirstAssetTrader::buy_weight weight: {:?}, payment: {:?}, context: {:?}", weight, payment, context);
log::trace!(target: "xcm::weight", "TakeFirstAssetTrader::refund_weight weight: {:?}, context: {:?}", weight, context);
/// It receives a `Transact` implemented argument and a 32 byte convertible `AccountId`, and the fee
/// The asset used to pay for the weight must differ from the `Target` asset and be exchangeable for
/// - `SwapCredit`: mechanism used for the exchange of the user's payment asset into the `Target`.
/// Allows triggering of additional logic for a specific `ParaId` (e.g. to open an HRMP channel) if