Closed bkontur closed 1 year ago
@joepetrowski Joe, could you please, help with this?
Yeah, HRMP channels should all be set up now.
I think we'd go the force_create
route and actually set is_sufficient = true
, at least for DOT on Kusama and perhaps also for KSM on Polkadot. min_balance
can be lower on Kusama, perhaps Polkadot's Asset Hub's ED on Kusama (0.1 DOT), but we should find a similar value of Polkadot's ED for KSM on AHP.
if we go with isSufficient=true
on both sides, then we dont need (for KSM<>DOT) any hacks and customization for pallet_xcm
like we tried here https://github.com/paritytech/polkadot/pull/7456
the only thing we need to fix is Trader
and allow to pay fees from ForeignAssets
instance, because now we allow only for TrustBased/Local instance:
type Trader = (
UsingComponents<WeightToFee, KsmLocation, AccountId, Balances, ToStakingPot<Runtime>>,
cumulus_primitives_utility::TakeFirstAssetTrader<
AccountId,
AssetFeeAsExistentialDepositMultiplierFeeCharger,
TrustBackedAssetsConvertedConcreteId,
Assets,
cumulus_primitives_utility::XcmFeesTo32ByteAccount<
FungiblesTransactor,
AccountId,
XcmAssetFeesReceiver,
>,
>,
);
Bonus then. We should use SwapFirstAssetTrader
which solves this problem anyway https://github.com/paritytech/cumulus/pull/2854
what SOVEREIGN_ACCOUNT ->
SA_OF_ASSET_HUB_POLKADOT(MultiLocation(parents: 2, X2(GlobalConsensus(Polkadot), Parachain(1000)))
orSA_OF_POLKADOT(MultiLocation(parents: 2, X1(GlobalConsensus(Polkadot))))
This sounds more like a bridge implementation question. What would the bridge pass over as its origin? Since on Polkadot's local Asset Hub we call DOT { parents: 1, interior: Here }
, IMO the second option is better.
Edit: Yes, let's go with the second option. As this is used for things like freeze
, set_metadata
, set_min_balance
, etc., these calls should come from the governance location, not the reserve location, of the asset.
Governance proposals live:
We need to create
ForeignAssets
for wrappedKSM on AssetHubPolkadot and wrappedDOT on AssetHubKusama.Options: (lets consider wrappedDOT on AssetHubKusama)
pallet_assets::force_create
on Kusama/AssethubKusama governance callMultiLocation(parents: 2, X2(GlobalConsensus(Polkadot), Parachain(1000))
) or SA_OF_POLKADOT(MultiLocation(parents: 2, X1(GlobalConsensus(Polkadot)))
)min_balance
?pallet_assets::create
from Polkadot relaychainmin_balance
?ForeignCreators
wont work forMultiLocation::parent()
and AssetHubPolkadotTODOs