mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-22 23:05:42 +00:00
Add ConstFeeMultiplier to the transaction payment pallet (#12222)
* fix: FeeMultiplierUpdate * fix: cargo fmt * fix: rustdoc * Revert "fix: rustdoc" This reverts commit 96b6ad80a4cd4d856cf5a830889858c4dd4c385b. * Revert "fix: cargo fmt" This reverts commit 13016527bdbc53d9484642d6b52430550c0efc55. * Revert "fix: FeeMultiplierUpdate" This reverts commit 2cbddd0b85e0293d0eeda859807ddf70cee29067. * feat: add ConstFeeMultiplier * fix: use cConstFeeMultiplier in the template node
This commit is contained in:
@@ -14,7 +14,9 @@ use sp_consensus_aura::sr25519::AuthorityId as AuraId;
|
|||||||
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
|
use sp_core::{crypto::KeyTypeId, OpaqueMetadata};
|
||||||
use sp_runtime::{
|
use sp_runtime::{
|
||||||
create_runtime_str, generic, impl_opaque_keys,
|
create_runtime_str, generic, impl_opaque_keys,
|
||||||
traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, NumberFor, Verify},
|
traits::{
|
||||||
|
AccountIdLookup, BlakeTwo256, Block as BlockT, IdentifyAccount, NumberFor, One, Verify,
|
||||||
|
},
|
||||||
transaction_validity::{TransactionSource, TransactionValidity},
|
transaction_validity::{TransactionSource, TransactionValidity},
|
||||||
ApplyExtrinsicResult, MultiSignature,
|
ApplyExtrinsicResult, MultiSignature,
|
||||||
};
|
};
|
||||||
@@ -38,7 +40,7 @@ pub use frame_support::{
|
|||||||
pub use frame_system::Call as SystemCall;
|
pub use frame_system::Call as SystemCall;
|
||||||
pub use pallet_balances::Call as BalancesCall;
|
pub use pallet_balances::Call as BalancesCall;
|
||||||
pub use pallet_timestamp::Call as TimestampCall;
|
pub use pallet_timestamp::Call as TimestampCall;
|
||||||
use pallet_transaction_payment::CurrencyAdapter;
|
use pallet_transaction_payment::{ConstFeeMultiplier, CurrencyAdapter, Multiplier};
|
||||||
#[cfg(any(feature = "std", test))]
|
#[cfg(any(feature = "std", test))]
|
||||||
pub use sp_runtime::BuildStorage;
|
pub use sp_runtime::BuildStorage;
|
||||||
pub use sp_runtime::{Perbill, Permill};
|
pub use sp_runtime::{Perbill, Permill};
|
||||||
@@ -251,13 +253,17 @@ impl pallet_balances::Config for Runtime {
|
|||||||
type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>;
|
type WeightInfo = pallet_balances::weights::SubstrateWeight<Runtime>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parameter_types! {
|
||||||
|
pub FeeMultiplier: Multiplier = Multiplier::one();
|
||||||
|
}
|
||||||
|
|
||||||
impl pallet_transaction_payment::Config for Runtime {
|
impl pallet_transaction_payment::Config for Runtime {
|
||||||
type Event = Event;
|
type Event = Event;
|
||||||
type OnChargeTransaction = CurrencyAdapter<Balances, ()>;
|
type OnChargeTransaction = CurrencyAdapter<Balances, ()>;
|
||||||
type OperationalFeeMultiplier = ConstU8<5>;
|
type OperationalFeeMultiplier = ConstU8<5>;
|
||||||
type WeightToFee = IdentityFee<Balance>;
|
type WeightToFee = IdentityFee<Balance>;
|
||||||
type LengthToFee = IdentityFee<Balance>;
|
type LengthToFee = IdentityFee<Balance>;
|
||||||
type FeeMultiplierUpdate = ();
|
type FeeMultiplierUpdate = ConstFeeMultiplier<FeeMultiplier>;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl pallet_sudo::Config for Runtime {
|
impl pallet_sudo::Config for Runtime {
|
||||||
|
|||||||
@@ -226,6 +226,30 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// A struct to make the fee multiplier a constant
|
||||||
|
pub struct ConstFeeMultiplier<M: Get<Multiplier>>(sp_std::marker::PhantomData<M>);
|
||||||
|
|
||||||
|
impl<M: Get<Multiplier>> MultiplierUpdate for ConstFeeMultiplier<M> {
|
||||||
|
fn min() -> Multiplier {
|
||||||
|
M::get()
|
||||||
|
}
|
||||||
|
fn target() -> Perquintill {
|
||||||
|
Default::default()
|
||||||
|
}
|
||||||
|
fn variability() -> Multiplier {
|
||||||
|
Default::default()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<M> Convert<Multiplier, Multiplier> for ConstFeeMultiplier<M>
|
||||||
|
where
|
||||||
|
M: Get<Multiplier>,
|
||||||
|
{
|
||||||
|
fn convert(_previous: Multiplier) -> Multiplier {
|
||||||
|
Self::min()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Storage releases of the pallet.
|
/// Storage releases of the pallet.
|
||||||
#[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
|
#[derive(Encode, Decode, Clone, Copy, PartialEq, Eq, RuntimeDebug, TypeInfo, MaxEncodedLen)]
|
||||||
enum Releases {
|
enum Releases {
|
||||||
@@ -371,7 +395,8 @@ pub mod pallet {
|
|||||||
// add 1 percent;
|
// add 1 percent;
|
||||||
let addition = target / 100;
|
let addition = target / 100;
|
||||||
if addition == Weight::zero() {
|
if addition == Weight::zero() {
|
||||||
// this is most likely because in a test setup we set everything to ().
|
// this is most likely because in a test setup we set everything to ()
|
||||||
|
// or to `ConstFeeMultiplier`.
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user