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.
The proposal is to increase the weight limit of the ump trasact
used by XCM to allow more functions like contribute
and staking
. This will improve the flexibility of parachains and benefit the Kusama ecology. Bifrost, a service that helps parachains participate in crowdloan with locked assets and provides liquidity through staking derivatives, uses xcm transact to achieve this. However, the current ump-service-weight threshold does not allow it, causing the call to fail. The original thread and referenda can be found on the provided links, and the hash is 0x370695c3d94646368444225c6473fc0081af1a3f08074471d3155ec8497811cf
.