From cc3ebd788a7bdef4c447a84b5144d79b89ce0357 Mon Sep 17 00:00:00 2001 From: Daniel Shiposha Date: Mon, 28 Nov 2022 11:50:10 +0000 Subject: [PATCH] fix: weight coeffs --- --- a/pallets/configuration/src/lib.rs +++ b/pallets/configuration/src/lib.rs @@ -25,12 +25,14 @@ }; use parity_scale_codec::{Decode, Encode, MaxEncodedLen}; use scale_info::TypeInfo; -use sp_arithmetic::traits::{BaseArithmetic, Unsigned}; +use sp_arithmetic::{ + per_things::{Perbill, PerThing}, + traits::{BaseArithmetic, Unsigned}, +}; use smallvec::smallvec; pub use pallet::*; use sp_core::U256; -use sp_runtime::Perbill; #[pallet] mod pallet { @@ -46,8 +48,7 @@ #[pallet::config] pub trait Config: frame_system::Config { #[pallet::constant] - type DefaultWeightToFeeCoefficient: Get; - + type DefaultWeightToFeeCoefficient: Get; #[pallet::constant] type DefaultMinGasPrice: Get; @@ -66,7 +67,7 @@ #[pallet::storage] pub type WeightToFeeCoefficientOverride = StorageValue< - Value = u32, + Value = u64, QueryKind = ValueQuery, OnEmpty = T::DefaultWeightToFeeCoefficient, >; @@ -90,7 +91,7 @@ #[pallet::weight(T::DbWeight::get().writes(1))] pub fn set_weight_to_fee_coefficient_override( origin: OriginFor, - coeff: Option, + coeff: Option, ) -> DispatchResult { ensure_root(origin)?; if let Some(coeff) = coeff { @@ -156,14 +157,17 @@ impl WeightToFeePolynomial for WeightToFee where T: Config, - B: BaseArithmetic + From + Copy + Unsigned, + B: BaseArithmetic + From + From + Copy + Unsigned, { type Balance = B; fn polynomial() -> WeightToFeeCoefficients { smallvec!(WeightToFeeCoefficient { - coeff_integer: >::get().into(), - coeff_frac: Perbill::zero(), + coeff_integer: (>::get() / Perbill::ACCURACY as u64) + .into(), + coeff_frac: Perbill::from_parts( + (>::get() % Perbill::ACCURACY as u64) as u32 + ), negative: false, degree: 1, }) --- a/primitives/common/src/constants.rs +++ b/primitives/common/src/constants.rs @@ -43,7 +43,7 @@ pub const UNIQUE: Balance = 100 * CENTIUNIQUE; // Targeting 0.1 UNQ per transfer -pub const WEIGHT_TO_FEE_COEFF: u32 = /**/175_199_920/**/; +pub const WEIGHT_TO_FEE_COEFF: u64 = /**/78_389_100_150_858_528/**/; // Targeting 0.15 UNQ per transfer via ETH pub const MIN_GAS_PRICE: u64 = /**/1_014_919_410_810/**/; @@ -60,5 +60,5 @@ .set_proof_size(MAX_POV_SIZE as u64); parameter_types! { - pub const TransactionByteFee: Balance = 501 * MICROUNIQUE; + pub const TransactionByteFee: Balance = 501 * MICROUNIQUE / 2; } --- a/runtime/common/config/pallets/mod.rs +++ b/runtime/common/config/pallets/mod.rs @@ -25,7 +25,7 @@ }, Runtime, RuntimeEvent, RuntimeCall, Balances, }; -use frame_support::traits::{ConstU32, ConstU64}; +use frame_support::traits::ConstU64; use up_common::{ types::{AccountId, Balance, BlockNumber}, constants::*, @@ -104,7 +104,7 @@ pub const DayRelayBlocks: BlockNumber = RELAY_DAYS; } impl pallet_configuration::Config for Runtime { - type DefaultWeightToFeeCoefficient = ConstU32<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>; + type DefaultWeightToFeeCoefficient = ConstU64<{ up_common::constants::WEIGHT_TO_FEE_COEFF }>; type DefaultMinGasPrice = ConstU64<{ up_common::constants::MIN_GAS_PRICE }>; type MaxXcmAllowedLocations = ConstU32<16>; type AppPromotionDailyRate = AppPromotionDailyRate; -- gitstuff