mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 07:01:03 +00:00
XCM: Properly set the pricing for the DMP router (#6843)
* Properly set the pricing for the DMP router * Publicize price types * Use FixedU128 instead of Percent * Add sp-arithmetic as a dependency for rococo runtime * Add sp-arithmetic as a dependency to all runtimes * Remove duplicate import * Add missing import * Fix tests * Create an appropriate QueueDownwardMessageError variant * Recalculate delivery fee factor based on past queue sizes * Remove unused error variant * Fixes * Fixes * Remove unused imports * Rewrite fee factor update mechanism * Remove unused imports * Fixes * Update runtime/parachains/src/dmp.rs Co-authored-by: Squirrel <gilescope@gmail.com> * Make DeliveryFeeFactor be a StorageMap keyed on ParaIds * Fixes * introduce limit for fee increase on dmp queue * add message_size based fee factor to increment_fee_factor * change message_size fee rate to correct value * fix div by 0 error * bind limit to variable * fix message_size_factor and add DeliveryFeeFactor test * add test for ExponentialPrice implementation * make test formula based * make delivery fee factor test formula based * add max value test for DeliveryFeeFactor and move limit to config * change threshold back to dynamic value and fix tests * fmt * suggested changes and fmt * small stylistic change * fmt * change to tokenlocation * small fixes * fmt * remove sp_arithmetic dependency * Update runtime/parachains/src/dmp.rs Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> --------- Co-authored-by: Squirrel <gilescope@gmail.com> Co-authored-by: Just van Stam <just.van.stam@gmail.com> Co-authored-by: Just van Stam <vstam1@users.noreply.github.com> Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
This commit is contained in:
@@ -1160,7 +1160,7 @@ construct_runtime! {
|
||||
ParaScheduler: parachains_scheduler::{Pallet, Storage} = 46,
|
||||
Paras: parachains_paras::{Pallet, Call, Storage, Event, Config, ValidateUnsigned} = 47,
|
||||
Initializer: parachains_initializer::{Pallet, Call, Storage} = 48,
|
||||
Dmp: parachains_dmp::{Pallet, Call, Storage} = 49,
|
||||
Dmp: parachains_dmp::{Pallet, Storage} = 49,
|
||||
Ump: parachains_ump::{Pallet, Call, Storage, Event} = 50,
|
||||
Hrmp: parachains_hrmp::{Pallet, Call, Storage, Event<T>, Config} = 51,
|
||||
ParaSessionInfo: parachains_session_info::{Pallet, Storage} = 52,
|
||||
|
||||
@@ -17,16 +17,21 @@
|
||||
//! XCM configurations for Westend.
|
||||
|
||||
use super::{
|
||||
parachains_origin, weights, AccountId, AllPalletsWithSystem, Balances, ParaId, Runtime,
|
||||
RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmPallet,
|
||||
parachains_origin, weights, AccountId, AllPalletsWithSystem, Balances, Dmp, ParaId, Runtime,
|
||||
RuntimeCall, RuntimeEvent, RuntimeOrigin, TransactionByteFee, WeightToFee, XcmPallet,
|
||||
};
|
||||
use frame_support::{
|
||||
parameter_types,
|
||||
traits::{Contains, Everything, Nothing},
|
||||
};
|
||||
use frame_system::EnsureRoot;
|
||||
use runtime_common::{crowdloan, paras_registrar, xcm_sender, ToAuthor};
|
||||
use runtime_common::{
|
||||
crowdloan, paras_registrar,
|
||||
xcm_sender::{ChildParachainRouter, ExponentialPrice},
|
||||
ToAuthor,
|
||||
};
|
||||
use sp_core::ConstU32;
|
||||
use westend_runtime_constants::currency::CENTS;
|
||||
use xcm::latest::prelude::*;
|
||||
use xcm_builder::{
|
||||
AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses,
|
||||
@@ -44,6 +49,10 @@ parameter_types! {
|
||||
pub UniversalLocation: InteriorMultiLocation = ThisNetwork::get().into();
|
||||
pub CheckAccount: AccountId = XcmPallet::check_account();
|
||||
pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local);
|
||||
/// The asset ID for the asset that we use to pay for message delivery fees.
|
||||
pub FeeAssetId: AssetId = Concrete(TokenLocation::get());
|
||||
/// The base fee for the message delivery fees.
|
||||
pub const BaseDeliveryFee: u128 = CENTS.saturating_mul(3);
|
||||
}
|
||||
|
||||
pub type LocationConverter =
|
||||
@@ -73,7 +82,11 @@ type LocalOriginConverter = (
|
||||
/// individual routers.
|
||||
pub type XcmRouter = (
|
||||
// Only one router so far - use DMP to communicate with child parachains.
|
||||
xcm_sender::ChildParachainRouter<Runtime, XcmPallet, ()>,
|
||||
ChildParachainRouter<
|
||||
Runtime,
|
||||
XcmPallet,
|
||||
ExponentialPrice<FeeAssetId, BaseDeliveryFee, TransactionByteFee, Dmp>,
|
||||
>,
|
||||
);
|
||||
|
||||
parameter_types! {
|
||||
|
||||
Reference in New Issue
Block a user