diff --git a/js-packages/tests/sub/appPromotion/appPromotion.test.ts b/js-packages/tests/sub/appPromotion/appPromotion.test.ts index 48b9c7b716..9d3b3912fd 100644 --- a/js-packages/tests/sub/appPromotion/appPromotion.test.ts +++ b/js-packages/tests/sub/appPromotion/appPromotion.test.ts @@ -983,8 +983,8 @@ async function payUntilRewardFor(account: string, helper: DevUniqueHelper) { function calculateIncome(base: bigint, iter = 0, calcPeriod: bigint = UNLOCKING_PERIOD): bigint { const DAY = 7200n; const ACCURACY = 1_000_000_000n; - // 5n / 10_000n = 0.05% p/day - const income = base + base * (ACCURACY * (calcPeriod * 5n) / (10_000n * DAY)) / ACCURACY ; + // 453_256n / 1_000_000_000n = 0.0453256% /day + const income = base + base * (ACCURACY * (calcPeriod * 453_256n) / (1_000_000_000n * DAY)) / ACCURACY ; if(iter > 1) { return calculateIncome(income, iter - 1, calcPeriod); diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs index 2d9e42c1ce..be849eb602 100644 --- a/pallets/collator-selection/src/mock.rs +++ b/pallets/collator-selection/src/mock.rs @@ -208,7 +208,7 @@ parameter_types! { pub const DefaultWeightToFeeCoefficient: u64 = 100_000; pub const DefaultMinGasPrice: u64 = 100_000; pub const MaxXcmAllowedLocations: u32 = 16; - pub AppPromotionDailyRate: Perbill = Perbill::from_rational(5u32, 10_000); + pub AppPromotionDailyRate: Perbill = Perbill::from_parts(453_256); pub const DayRelayBlocks: u32 = 1; pub const LicenceBondIdentifier: [u8; 16] = *b"licenceidentifie"; } diff --git a/runtime/common/config/pallets/app_promotion.rs b/runtime/common/config/pallets/app_promotion.rs index ff2e6fd765..ff8b4f5086 100644 --- a/runtime/common/config/pallets/app_promotion.rs +++ b/runtime/common/config/pallets/app_promotion.rs @@ -15,12 +15,12 @@ // along with Unique Network. If not, see . use frame_support::{parameter_types, PalletId}; -use sp_arithmetic::Perbill; use up_common::{ constants::{DAYS, RELAY_DAYS, UNIQUE}, types::Balance, }; +use super::AppPromotionDailyRate; use crate::{ runtime_common::config::pallets::{RelayChainBlockNumberProvider, TreasuryAccountId}, Balances, BlockNumber, EvmContractHelpers, Maintenance, Runtime, RuntimeEvent, Unique, @@ -32,7 +32,6 @@ parameter_types! { pub const PendingInterval: BlockNumber = 7 * DAYS; pub const Nominal: Balance = UNIQUE; pub const HoldAndFreezeIdentifier: [u8; 16] = *b"appstakeappstake"; - pub IntervalIncome: Perbill = Perbill::from_rational(5u32, 10_000); pub MaintenanceMode: bool = Maintenance::is_enabled(); } @@ -47,7 +46,7 @@ impl pallet_app_promotion::Config for Runtime { type RecalculationInterval = RecalculationInterval; type PendingInterval = PendingInterval; type Nominal = Nominal; - type IntervalIncome = IntervalIncome; + type IntervalIncome = AppPromotionDailyRate; type RuntimeEvent = RuntimeEvent; type FreezeIdentifier = HoldAndFreezeIdentifier; type IsMaintenanceModeEnabled = MaintenanceMode; diff --git a/runtime/common/config/pallets/mod.rs b/runtime/common/config/pallets/mod.rs index 3a4633c7ed..a764a7d19d 100644 --- a/runtime/common/config/pallets/mod.rs +++ b/runtime/common/config/pallets/mod.rs @@ -151,7 +151,7 @@ impl pallet_unique::Config for Runtime { } parameter_types! { - pub AppPromotionDailyRate: Perbill = Perbill::from_rational(5u32, 10_000); + pub AppPromotionDailyRate: Perbill = Perbill::from_parts(453_256); pub const MaxCollators: u32 = MAX_COLLATORS; pub const LicenseBond: Balance = GENESIS_LICENSE_BOND;