fn add_supported_asset(asset_type: parachain::AssetType, units_per_second: u128) -> Result<(), ()> {
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// If we set the dest weight to be 1e7, we know the buy_execution will spend 1e7*1e6/1e12 = 10
// 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// What we will do now is transfer this relay tokens from the derived account to the sovereign
// 4000000000 transact + 3000 correspond to 4000003000 tokens. 100 more for the transfer call
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// What we will do now is transfer this relay tokens from the derived account to the sovereign
// 4000000000 transact + 9000 correspond to 4000009000 tokens. 100 more for the transfer call
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// What we will do now is transfer this relay tokens from the derived account to the sovereign
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// What we will do now is transfer this relay tokens from the derived account to the sovereign
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// What we will do now is transfer this relay tokens from the derived account to the sovereign
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
// What we will do now is transfer this relay tokens from the derived account to the sovereign
// The router is mocked, and we cannot use WrapVersion in ChildParachainRouter. So we will force
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let (chain_part, beneficiary) = split_location_into_chain_part_and_beneficiary(dest).unwrap();
let mut call_bytes = pallet_ethereum_xcm::Call::<parachain::Runtime>::transact_through_proxy {
let mut call_bytes = pallet_ethereum_xcm::Call::<parachain::Runtime>::transact_through_proxy {
pub fn derivative_account_id(who: sp_runtime::AccountId32, index: u16) -> sp_runtime::AccountId32 {