mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 20:21:03 +00:00
FRAME: Unity Balance Conversion for Different IDs of Native Asset (#3659)
Introduce types to define 1:1 balance conversion for different relative
asset ids/locations of native asset.
Examples:
native asset on Asset Hub presented as `VersionedLocatableAsset` type in
the context of Relay Chain is
```
{
`location`: (0, Parachain(1000)),
`asset_id`: (1, Here),
}
```
and it's balance should be converted 1:1 by implementations of
`ConversionToAssetBalance` trait.
---------
Co-authored-by: Branislav Kontur <bkontur@gmail.com>
This commit is contained in:
@@ -31,9 +31,9 @@ use frame_support::{
|
||||
genesis_builder_helper::{build_state, get_preset},
|
||||
parameter_types,
|
||||
traits::{
|
||||
fungible::HoldConsideration, ConstU32, Contains, EitherOf, EitherOfDiverse, EverythingBut,
|
||||
InstanceFilter, KeyOwnerProofSystem, LinearStoragePrice, ProcessMessage,
|
||||
ProcessMessageError, WithdrawReasons,
|
||||
fungible::HoldConsideration, tokens::UnityOrOuterConversion, ConstU32, Contains, EitherOf,
|
||||
EitherOfDiverse, EverythingBut, FromContains, InstanceFilter, KeyOwnerProofSystem,
|
||||
LinearStoragePrice, ProcessMessage, ProcessMessageError, WithdrawReasons,
|
||||
},
|
||||
weights::{ConstantMultiplier, WeightMeter, WeightToFee as _},
|
||||
PalletId,
|
||||
@@ -57,7 +57,8 @@ use runtime_common::{
|
||||
elections::OnChainAccuracy,
|
||||
identity_migrator, impl_runtime_weights,
|
||||
impls::{
|
||||
LocatableAssetConverter, ToAuthor, VersionedLocatableAsset, VersionedLocationConverter,
|
||||
ContainsParts, LocatableAssetConverter, ToAuthor, VersionedLocatableAsset,
|
||||
VersionedLocationConverter,
|
||||
},
|
||||
paras_registrar, paras_sudo_wrapper, prod_or_fast, slots,
|
||||
traits::{Leaser, OnSwap},
|
||||
@@ -80,7 +81,7 @@ use runtime_parachains::{
|
||||
shared as parachains_shared,
|
||||
};
|
||||
use scale_info::TypeInfo;
|
||||
use sp_core::{OpaqueMetadata, RuntimeDebug, H256};
|
||||
use sp_core::{ConstU8, OpaqueMetadata, RuntimeDebug, H256};
|
||||
use sp_runtime::{
|
||||
create_runtime_str,
|
||||
curve::PiecewiseLinear,
|
||||
@@ -712,7 +713,15 @@ impl pallet_treasury::Config for Runtime {
|
||||
LocatableAssetConverter,
|
||||
VersionedLocationConverter,
|
||||
>;
|
||||
type BalanceConverter = AssetRate;
|
||||
type BalanceConverter = UnityOrOuterConversion<
|
||||
ContainsParts<
|
||||
FromContains<
|
||||
xcm_builder::IsChildSystemParachain<ParaId>,
|
||||
xcm_builder::IsParentsOnly<ConstU8<1>>,
|
||||
>,
|
||||
>,
|
||||
AssetRate,
|
||||
>;
|
||||
type PayoutPeriod = PayoutSpendPeriod;
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
type BenchmarkHelper = runtime_common::impls::benchmarks::TreasuryArguments;
|
||||
|
||||
Reference in New Issue
Block a user