mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-11 13:01:07 +00:00
fix AssetFeeAsExistentialDepositMultiplier
This commit is contained in:
@@ -76,34 +76,35 @@ impl ShouldExecute for DenyReserveTransferToRelayChain {
|
||||
/// A `ChargeFeeInFungibles` implementation that converts the output of
|
||||
/// a given WeightToFee implementation an amount charged in
|
||||
/// a particular assetId from pallet-assets
|
||||
pub struct AssetFeeAsExistentialDepositMultiplier<Runtime, WeightToFee, BalanceConverter>(
|
||||
PhantomData<(Runtime, WeightToFee, BalanceConverter)>,
|
||||
);
|
||||
impl<CurrencyBalance, Runtime, WeightToFee, BalanceConverter>
|
||||
pub struct AssetFeeAsExistentialDepositMultiplier<
|
||||
Runtime,
|
||||
WeightToFee,
|
||||
BalanceConverter,
|
||||
AssetInstance: 'static,
|
||||
>(PhantomData<(Runtime, WeightToFee, BalanceConverter, AssetInstance)>);
|
||||
impl<CurrencyBalance, Runtime, WeightToFee, BalanceConverter, AssetInstance>
|
||||
cumulus_primitives_utility::ChargeWeightInFungibles<
|
||||
AccountIdOf<Runtime>,
|
||||
pallet_assets::Pallet<Runtime, pallet_assets::Instance1>,
|
||||
> for AssetFeeAsExistentialDepositMultiplier<Runtime, WeightToFee, BalanceConverter>
|
||||
pallet_assets::Pallet<Runtime, AssetInstance>,
|
||||
> for AssetFeeAsExistentialDepositMultiplier<Runtime, WeightToFee, BalanceConverter, AssetInstance>
|
||||
where
|
||||
Runtime: pallet_assets::Config<pallet_assets::Instance1>,
|
||||
Runtime: pallet_assets::Config<AssetInstance>,
|
||||
WeightToFee: WeightToFeePolynomial<Balance = CurrencyBalance>,
|
||||
BalanceConverter: BalanceConversion<
|
||||
CurrencyBalance,
|
||||
<Runtime as pallet_assets::Config<pallet_assets::Instance1>>::AssetId,
|
||||
<Runtime as pallet_assets::Config<pallet_assets::Instance1>>::Balance,
|
||||
<Runtime as pallet_assets::Config<AssetInstance>>::AssetId,
|
||||
<Runtime as pallet_assets::Config<AssetInstance>>::Balance,
|
||||
>,
|
||||
AccountIdOf<Runtime>:
|
||||
From<polkadot_primitives::v2::AccountId> + Into<polkadot_primitives::v2::AccountId>,
|
||||
{
|
||||
fn charge_weight_in_fungibles(
|
||||
asset_id: <pallet_assets::Pallet<Runtime, pallet_assets::Instance1> as Inspect<
|
||||
asset_id: <pallet_assets::Pallet<Runtime, AssetInstance> as Inspect<
|
||||
AccountIdOf<Runtime>,
|
||||
>>::AssetId,
|
||||
weight: Weight,
|
||||
) -> Result<
|
||||
<pallet_assets::Pallet<Runtime, pallet_assets::Instance1> as Inspect<
|
||||
AccountIdOf<Runtime>,
|
||||
>>::Balance,
|
||||
<pallet_assets::Pallet<Runtime, AssetInstance> as Inspect<AccountIdOf<Runtime>>>::Balance,
|
||||
XcmError,
|
||||
> {
|
||||
let amount = WeightToFee::weight_to_fee(&weight);
|
||||
|
||||
@@ -189,6 +189,7 @@ impl xcm_executor::Config for XcmConfig {
|
||||
ConvertInto,
|
||||
TrustBackedAssetsInstance,
|
||||
>,
|
||||
TrustBackedAssetsInstance,
|
||||
>,
|
||||
ConvertedConcreteId<
|
||||
AssetId,
|
||||
|
||||
@@ -249,6 +249,19 @@ impl pallet_assets::Config<TrustBackedAssetsInstance> for Runtime {
|
||||
type Helper = ();
|
||||
}
|
||||
|
||||
// This is frustrating...
|
||||
// use pallet_assets::BenchmarkHelper;
|
||||
// pub struct XcmBenchmarkHelper;
|
||||
// #[cfg(feature = "runtime-benchmarks")]
|
||||
// impl<AssetId: From<MultiLocationForAssetId>> BenchmarkHelper<AssetId> for XcmBenchmarkHelper {
|
||||
// fn create_asset_id(id: u32) -> AssetId {
|
||||
// match id {
|
||||
// x => MultiLocationForAssetId { parents: 1, interior: X1(Parachain(x)) },
|
||||
// _ => MultiLocationForAssetId { parents: 0, interior: Here },
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
/// Assets managed by some foreign location.
|
||||
type ForeignAssetsInstance = pallet_assets::Instance2;
|
||||
impl pallet_assets::Config<ForeignAssetsInstance> for Runtime {
|
||||
|
||||
@@ -189,6 +189,7 @@ impl xcm_executor::Config for XcmConfig {
|
||||
ConvertInto,
|
||||
TrustBackedAssetsInstance,
|
||||
>,
|
||||
TrustBackedAssetsInstance,
|
||||
>,
|
||||
ConvertedConcreteId<
|
||||
AssetId,
|
||||
|
||||
@@ -35,7 +35,7 @@ use frame_support::{
|
||||
construct_runtime,
|
||||
dispatch::DispatchClass,
|
||||
parameter_types,
|
||||
traits::Everything,
|
||||
traits::{AsEnsureOriginWithArg, Everything},
|
||||
weights::{
|
||||
constants::WEIGHT_PER_SECOND, ConstantMultiplier, Weight, WeightToFeeCoefficient,
|
||||
WeightToFeeCoefficients, WeightToFeePolynomial,
|
||||
@@ -44,7 +44,7 @@ use frame_support::{
|
||||
};
|
||||
use frame_system::{
|
||||
limits::{BlockLength, BlockWeights},
|
||||
EnsureRoot,
|
||||
EnsureRoot, EnsureSigned,
|
||||
};
|
||||
use smallvec::smallvec;
|
||||
use sp_api::impl_runtime_apis;
|
||||
@@ -398,6 +398,7 @@ impl pallet_assets::Config for Runtime {
|
||||
type Balance = Balance;
|
||||
type AssetId = AssetId;
|
||||
type Currency = Balances;
|
||||
type CreateOrigin = AsEnsureOriginWithArg<EnsureSigned<AccountId>>;
|
||||
type ForceOrigin = EnsureRoot<AccountId>;
|
||||
type AssetDeposit = AssetDeposit;
|
||||
type MetadataDepositBase = MetadataDepositBase;
|
||||
|
||||
@@ -42,7 +42,7 @@ pub use frame_support::{
|
||||
construct_runtime,
|
||||
dispatch::DispatchClass,
|
||||
match_types, parameter_types,
|
||||
traits::{EitherOfDiverse, Everything, IsInVec, Randomness},
|
||||
traits::{AsEnsureOriginWithArg, EitherOfDiverse, Everything, IsInVec, Randomness},
|
||||
weights::{
|
||||
constants::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight, WEIGHT_PER_SECOND},
|
||||
ConstantMultiplier, IdentityFee, Weight,
|
||||
@@ -51,7 +51,7 @@ pub use frame_support::{
|
||||
};
|
||||
use frame_system::{
|
||||
limits::{BlockLength, BlockWeights},
|
||||
EnsureRoot,
|
||||
EnsureRoot, EnsureSigned,
|
||||
};
|
||||
pub use pallet_balances::Call as BalancesCall;
|
||||
pub use pallet_timestamp::Call as TimestampCall;
|
||||
@@ -513,6 +513,7 @@ impl pallet_assets::Config for Runtime {
|
||||
type Balance = u64;
|
||||
type AssetId = AssetId;
|
||||
type Currency = Balances;
|
||||
type CreateOrigin = AsEnsureOriginWithArg<EnsureSigned<AccountId>>;
|
||||
type ForceOrigin = AdminOrigin;
|
||||
type AssetDeposit = AssetDeposit;
|
||||
type MetadataDepositBase = MetadataDepositBase;
|
||||
|
||||
Reference in New Issue
Block a user