At current stage, the ump trasact
used by XCM cannot call the contribute
function, due to the insufficient maximum weight of the ump service limit.
This proposal hence to increase the weight limit, in order to call more functions such as contribute
, staking
and etc. Allowing more ump transacts means provide more flexibility&possibility so to improve the flexibility of parachains, which benefits the use cases of Kusama ecology.
One of Bifrost service is to help other parachains to participant crowdloan with assets locked while still provide liquidity in the form of our staking derivatives. We use xcm transact to achieve it with contribution call constructed as following.
Xcm::WithdrawAsset {
assets: vec![MultiAsset::ConcreteFungible {
id: MultiLocation::Null,
amount: contribution_amount,
}],
effects: vec![Order::BuyExecution {
fees: MultiAsset::All,
weight: contribution_weight,
debt: contribution_debt,
halt_on_error: true,
xcm: vec![Xcm::Transact {
origin_type: OriginKind::SovereignAccount,
require_weight_at_most: contribution_weight_at_most,
call: contribution_call,
}],
}],
But the current ump-service-weight threshold does not allow it and the call will just fail.
ump trasact
in XCM cannot call the contribute
function due to insufficient weight limits.contribute
and staking
.0x370695c3d94646368444225c6473fc0081af1a3f08074471d3155ec8497811cf
.