diff --git a/Cargo.lock b/Cargo.lock index 4ddcfd84..5c25235a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7823,6 +7823,7 @@ dependencies = [ "serai-coins-pallet", "serai-dex-pallet", "serai-emissions-primitives", + "serai-genesis-liquidity-primitives", "serai-primitives", "serai-validator-sets-pallet", "serai-validator-sets-primitives", diff --git a/substrate/emissions/pallet/Cargo.toml b/substrate/emissions/pallet/Cargo.toml index 757eaeca..dc5299bb 100644 --- a/substrate/emissions/pallet/Cargo.toml +++ b/substrate/emissions/pallet/Cargo.toml @@ -37,7 +37,8 @@ validator-sets-pallet = { package = "serai-validator-sets-pallet", path = "../.. dex-pallet = { package = "serai-dex-pallet", path = "../../dex/pallet", default-features = false } serai-primitives = { path = "../../primitives", default-features = false } -serai-validator-sets-primitives = { path = "../../validator-sets/primitives", default-features = false } +validator-sets-primitives = { package = "serai-validator-sets-primitives", path = "../../validator-sets/primitives", default-features = false } +genesis-liquidity-primitives = { package = "serai-genesis-liquidity-primitives", path = "../../genesis-liquidity/primitives", default-features = false } emissions-primitives = { package = "serai-emissions-primitives", path = "../primitives", default-features = false } [features] @@ -60,6 +61,8 @@ std = [ "serai-primitives/std", "emissions-primitives/std", + "genesis-liquidity-primitives/std", ] +fast-epoch = ["genesis-liquidity-primitives/fast-epoch"] default = ["std"] \ No newline at end of file diff --git a/substrate/emissions/pallet/src/lib.rs b/substrate/emissions/pallet/src/lib.rs index 87e2803e..c5f47f7f 100644 --- a/substrate/emissions/pallet/src/lib.rs +++ b/substrate/emissions/pallet/src/lib.rs @@ -18,7 +18,8 @@ pub mod pallet { use pallet_babe::{Pallet as Babe, Config as BabeConfig}; use serai_primitives::{NetworkId, NETWORKS, *}; - use serai_validator_sets_primitives::MAX_KEY_SHARES_PER_SET; + use validator_sets_primitives::MAX_KEY_SHARES_PER_SET; + use genesis_liquidity_primitives::GENESIS_PERIOD_BLOCKS; use emissions_primitives::*; #[pallet::config] @@ -116,7 +117,7 @@ pub mod pallet { // emissions start only after genesis period and happens once per epoch // so we don't do anything before that time. - if !(n >= BLOCKS_PER_MONTH.into() && T::ShouldEndSession::should_end_session(n)) { + if !(n >= GENESIS_PERIOD_BLOCKS.into() && T::ShouldEndSession::should_end_session(n)) { return; } @@ -262,7 +263,7 @@ pub mod pallet { } fn initial_period(n: BlockNumberFor) -> bool { - n >= BLOCKS_PER_MONTH.into() && n < (3 * BLOCKS_PER_MONTH).into() + n >= GENESIS_PERIOD_BLOCKS.into() && n < (3 * GENESIS_PERIOD_BLOCKS).into() } /// Returns true if any of the external networks haven't reached economic security yet. diff --git a/substrate/emissions/primitives/src/lib.rs b/substrate/emissions/primitives/src/lib.rs index f42509ac..74d7f0e0 100644 --- a/substrate/emissions/primitives/src/lib.rs +++ b/substrate/emissions/primitives/src/lib.rs @@ -3,7 +3,7 @@ #![cfg_attr(not(feature = "std"), no_std)] /// Amount of blocks in 30 days for 6s per block. -pub const BLOCKS_PER_MONTH: u32 = 10 * 60 * 24 * 30; +const BLOCKS_PER_MONTH: u32 = 10 * 60 * 24 * 30; /// INITIAL_REWARD = 100,000 SRI / BLOCKS_PER_DAY for 60 days pub const INITIAL_REWARD_PER_BLOCK: u64 = 100_000 * 10u64.pow(8) / ((BLOCKS_PER_MONTH as u64) / 30); diff --git a/substrate/genesis-liquidity/pallet/Cargo.toml b/substrate/genesis-liquidity/pallet/Cargo.toml index 5ce41383..293e77fb 100644 --- a/substrate/genesis-liquidity/pallet/Cargo.toml +++ b/substrate/genesis-liquidity/pallet/Cargo.toml @@ -56,6 +56,6 @@ std = [ "genesis-liquidity-primitives/std", "validator-sets-primitives/std", ] -fast-epoch = [] +fast-epoch = ["genesis-liquidity-primitives/fast-epoch"] default = ["std"] diff --git a/substrate/genesis-liquidity/pallet/src/lib.rs b/substrate/genesis-liquidity/pallet/src/lib.rs index 6e6f2a1f..e4c11370 100644 --- a/substrate/genesis-liquidity/pallet/src/lib.rs +++ b/substrate/genesis-liquidity/pallet/src/lib.rs @@ -94,14 +94,8 @@ pub mod pallet { #[pallet::hooks] impl Hooks> for Pallet { fn on_finalize(n: BlockNumberFor) { - #[cfg(feature = "fast-epoch")] - let final_block = 25u32; - - #[cfg(not(feature = "fast-epoch"))] - let final_block = BLOCKS_PER_MONTH; - // Distribute the genesis sri to pools after a month - if n == final_block.into() { + if n == GENESIS_PERIOD_BLOCKS.into() { // mint the SRI Coins::::mint( GENESIS_LIQUIDITY_ACCOUNT.into(), @@ -261,7 +255,7 @@ pub mod pallet { } fn genesis_ended() -> bool { - >::block_number() >= BLOCKS_PER_MONTH.into() + >::block_number() >= GENESIS_PERIOD_BLOCKS.into() } } diff --git a/substrate/genesis-liquidity/primitives/Cargo.toml b/substrate/genesis-liquidity/primitives/Cargo.toml index e795ff24..3b0b9d3b 100644 --- a/substrate/genesis-liquidity/primitives/Cargo.toml +++ b/substrate/genesis-liquidity/primitives/Cargo.toml @@ -42,4 +42,5 @@ std = [ "sp-std/std" ] +fast-epoch = [] default = ["std"] diff --git a/substrate/genesis-liquidity/primitives/src/lib.rs b/substrate/genesis-liquidity/primitives/src/lib.rs index f334ec74..fce60d35 100644 --- a/substrate/genesis-liquidity/primitives/src/lib.rs +++ b/substrate/genesis-liquidity/primitives/src/lib.rs @@ -19,7 +19,11 @@ use serai_primitives::*; use validator_sets_primitives::ValidatorSet; // amount of blocks in 30 days for 6s per block. -pub const BLOCKS_PER_MONTH: u32 = 10 * 60 * 24 * 30; +#[cfg(not(feature = "fast-epoch"))] +pub const GENESIS_PERIOD_BLOCKS: u32 = 10 * 60 * 24 * 30; + +#[cfg(feature = "fast-epoch")] +pub const GENESIS_PERIOD_BLOCKS: u32 = 25; /// 180 days of blocks pub const GENESIS_SRI_TRICKLE_FEED: u64 = 10 * 60 * 24 * 180; diff --git a/substrate/runtime/Cargo.toml b/substrate/runtime/Cargo.toml index 208274bc..9a59b4e4 100644 --- a/substrate/runtime/Cargo.toml +++ b/substrate/runtime/Cargo.toml @@ -128,7 +128,7 @@ std = [ "pallet-transaction-payment-rpc-runtime-api/std", ] -fast-epoch = ["genesis-liquidity-pallet/fast-epoch"] +fast-epoch = ["genesis-liquidity-pallet/fast-epoch", "emissions-pallet/fast-epoch"] runtime-benchmarks = [ "sp-runtime/runtime-benchmarks",