Companion for #13352 (#2180)

* Assets balances

* Update docs

* AssetsApi with MultiLocation as preparation for multi pallet_assets instances (#2187)

* AssetsApi with MultiLocation for Westmint + assets-common

* AssetsApi with MultiLocation for Statemine/t

* typo

* typo for check-docs job

* WIP: AssetsApi return MultiAsset instead of (MultiLocation, Balance)

* WIP: assets_api + conversion refactor

* WIP: assets_api + conversion refactor

* Finished asset runtimes

* Refactor AssetsApi to FungiblesApi

* Refactor

* Fix check-rust-docs

* Removed todo

* Fix check-rust-doc

* Update parachains/runtimes/assets/common/Cargo.toml

Co-authored-by: Bastian Köcher <git@kchr.de>

* update lockfile for {"substrate", "polkadot"}

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <git@kchr.de>
This commit is contained in:
Jegor Sidorenko
2023-03-02 16:37:18 +02:00
committed by GitHub
parent 47046d798c
commit 2156cbc046
18 changed files with 917 additions and 466 deletions
@@ -14,9 +14,9 @@
// limitations under the License.
use super::{
AccountId, AllPalletsWithSystem, AssetIdForTrustBackedAssets, Assets, Authorship, Balance,
Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent,
RuntimeOrigin, TrustBackedAssetsInstance, WeightToFee, XcmpQueue,
AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ParachainInfo,
ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin,
TrustBackedAssetsInstance, WeightToFee, XcmpQueue,
};
use frame_support::{
match_types, parameter_types,
@@ -34,17 +34,13 @@ use sp_runtime::traits::ConvertInto;
use xcm::latest::prelude::*;
use xcm_builder::{
AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses,
AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, AsPrefixedGeneralIndex,
ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, LocalMint,
NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative,
SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32,
SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds,
WithComputedOrigin,
};
use xcm_executor::{
traits::{JustTry, WithOriginFilter},
XcmExecutor,
AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin,
FungiblesAdapter, IsConcrete, LocalMint, NativeAsset, ParentAsSuperuser, ParentIsPreset,
RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia,
SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit,
UsingComponents, WeightInfoBounds, WithComputedOrigin,
};
use xcm_executor::{traits::WithOriginFilter, XcmExecutor};
parameter_types! {
pub const DotLocation: MultiLocation = MultiLocation::parent();
@@ -84,21 +80,16 @@ pub type CurrencyTransactor = CurrencyAdapter<
(),
>;
/// `AssetId/Balancer` converter for `TrustBackedAssets``
pub type TrustBackedAssetsConvertedConcreteId =
assets_common::TrustBackedAssetsConvertedConcreteId<TrustBackedAssetsPalletLocation, Balance>;
/// Means for transacting assets besides the native currency on this chain.
pub type FungiblesTransactor = FungiblesAdapter<
// Use this fungibles implementation:
Assets,
// Use this currency when it is a fungible asset matching the given location or name:
ConvertedConcreteId<
AssetIdForTrustBackedAssets,
Balance,
AsPrefixedGeneralIndex<
TrustBackedAssetsPalletLocation,
AssetIdForTrustBackedAssets,
JustTry,
>,
JustTry,
>,
TrustBackedAssetsConvertedConcreteId,
// Convert an XCM MultiLocation into a local account id:
LocationToAccountId,
// Our chain's account ID type (we can't get away without mentioning it explicitly):
@@ -302,16 +293,7 @@ impl xcm_executor::Config for XcmConfig {
cumulus_primitives_utility::TakeFirstAssetTrader<
AccountId,
AssetFeeAsExistentialDepositMultiplierFeeCharger,
ConvertedConcreteId<
AssetIdForTrustBackedAssets,
Balance,
AsPrefixedGeneralIndex<
TrustBackedAssetsPalletLocation,
AssetIdForTrustBackedAssets,
JustTry,
>,
JustTry,
>,
TrustBackedAssetsConvertedConcreteId,
Assets,
cumulus_primitives_utility::XcmFeesTo32ByteAccount<
FungiblesTransactor,