paritytech / cumulus

Write Parachains on Substrate
GNU General Public License v3.0
620 stars 380 forks source link

max_individual_message on xcmp_queue too low for reserve relayed reserve-backed transfers between parachains #2384

Open JuaniRios opened 1 year ago

JuaniRios commented 1 year ago

Trying to send DOT from parachain A to parachain B through statemint, causes the message to be put in the statemint overweight queue due to a low limit of the config max_individual_message on the xcmp_queue pallet.

The message I'm trying to send is:

let transfer_xcm: Xcm<PolimecCall> = Xcm(vec![
    WithdrawAsset(vec![dot.clone()].into()),
    BuyExecution { fees: execution_dot.clone(), weight_limit: Limited(MAX_XCM_WEIGHT) },
    InitiateReserveWithdraw {
        assets: All.into(),
        reserve: MultiLocation::new(1, X1(Parachain(statemint_id()))),
        xcm: Xcm::<()>(vec![
        BuyExecution {
            fees: execution_dot.clone(),
            weight_limit: Limited(MAX_XCM_WEIGHT),
        },
        DepositReserveAsset {
            assets: All.into(),
            dest: MultiLocation::new(1, X1(Parachain(penpal_id()))),
            xcm: Xcm::<()>(vec![
                BuyExecution {
                    fees: execution_dot.clone(),
                    weight_limit: Limited(MAX_XCM_WEIGHT),
                },
                DepositAsset {
                    assets: All.into(),
                    beneficiary: X1(AccountId32 { network: None, id: ALICE.into() })
                        .into(),
                },
            ]),
        },
        ]),
    },
]);

Another problem is that I cannot take the coded version of this message from PolkadotJS and then paste it later on to get it back, because it says its too long.

ggwpez commented 1 year ago

Should be fixed by https://github.com/paritytech/polkadot/pull/6271/ that is merging EOW.