1234567891011121314151617use crate::{18 runtime_common::config::pallets::{TreasuryAccountId, RelayChainBlockNumberProvider},19 Runtime, Balances, BlockNumber, Unique, Event, EvmContractHelpers,20};2122use frame_support::{parameter_types, PalletId};23use sp_arithmetic::Perbill;24use up_common::{25 constants::{UNIQUE, RELAY_DAYS},26 types::Balance,27};2829#[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))]30parameter_types! {31 pub const AppPromotionId: PalletId = PalletId(*b"appstake");32 pub const RecalculationInterval: BlockNumber = 20;33 pub const PendingInterval: BlockNumber = 10;34 pub const Nominal: Balance = UNIQUE;35 36 pub IntervalIncome: Perbill = Perbill::from_rational(RecalculationInterval::get(), RELAY_DAYS) * Perbill::from_rational(5u32, 10_000);37}3839#[cfg(any(feature = "unique-runtime", feature = "quartz-runtime"))]40parameter_types! {41 pub const AppPromotionId: PalletId = PalletId(*b"appstake");42 pub const RecalculationInterval: BlockNumber = RELAY_DAYS;43 pub const PendingInterval: BlockNumber = 7 * RELAY_DAYS;44 pub const Nominal: Balance = UNIQUE;45 46 pub IntervalIncome: Perbill = Perbill::from_rational(5u32, 10_000);47}4849impl pallet_app_promotion::Config for Runtime {50 type PalletId = AppPromotionId;51 type CollectionHandler = Unique;52 type ContractHandler = EvmContractHelpers;53 type Currency = Balances;54 type WeightInfo = pallet_app_promotion::weights::SubstrateWeight<Self>;55 type TreasuryAccountId = TreasuryAccountId;56 type RelayBlockNumberProvider = RelayChainBlockNumberProvider<Runtime>;57 type RecalculationInterval = RecalculationInterval;58 type PendingInterval = PendingInterval;59 60 type Nominal = Nominal;61 type IntervalIncome = IntervalIncome;62 type Event = Event;63}