mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 20:29:23 +00:00
Implement block emissions (#551)
* add genesis liquidity implementation * add missing deposit event * fix CI issues * minor fixes * make math safer * fix fmt * implement block emissions * make remove liquidity an authorized call * implement setting initial values for coins * add genesis liquidity test & misc fixes * updato develop latest * fix rotation test * fix licencing * add fast-epoch feature * only create the pool when adding liquidity first time * add initial reward era test * test whole pre ec security emissions * fix clippy * add swap-to-staked-sri feature * rebase changes * fix tests * Remove accidentally commited ETH ABI files * fix some pr comments * Finish up fixing pr comments * exclude SRI from is_allowed check * Misc changes --------- Co-authored-by: akildemir <aeg_asd@hotmail.com> Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
This commit is contained in:
@@ -7,13 +7,16 @@ pub const TARGET_BLOCK_TIME: u64 = 6;
|
||||
|
||||
/// Measured in blocks.
|
||||
pub const MINUTES: BlockNumber = 60 / TARGET_BLOCK_TIME;
|
||||
pub const HOURS: BlockNumber = MINUTES * 60;
|
||||
pub const DAYS: BlockNumber = HOURS * 24;
|
||||
pub const WEEKS: BlockNumber = DAYS * 7;
|
||||
pub const MONTHS: BlockNumber = WEEKS * 4;
|
||||
pub const HOURS: BlockNumber = 60 * MINUTES;
|
||||
pub const DAYS: BlockNumber = 24 * HOURS;
|
||||
pub const WEEKS: BlockNumber = 7 * DAYS;
|
||||
// Defines a month as 30 days, which is slightly inaccurate
|
||||
pub const MONTHS: BlockNumber = 30 * DAYS;
|
||||
// Defines a year as 12 inaccurate months, which is 360 days literally (~1.5% off)
|
||||
pub const YEARS: BlockNumber = 12 * MONTHS;
|
||||
|
||||
/// 6 months of blocks
|
||||
pub const GENESIS_SRI_TRICKLE_FEED: u64 = MONTHS * 6;
|
||||
pub const GENESIS_SRI_TRICKLE_FEED: u64 = 6 * MONTHS;
|
||||
|
||||
// 100 Million SRI
|
||||
pub const GENESIS_SRI: u64 = 100_000_000 * 10_u64.pow(8);
|
||||
@@ -27,3 +30,9 @@ pub const ARBITRAGE_TIME: u16 = (2 * HOURS) as u16;
|
||||
///
|
||||
/// We additionally +1 so there is a true median.
|
||||
pub const MEDIAN_PRICE_WINDOW_LENGTH: u16 = (2 * ARBITRAGE_TIME) + 1;
|
||||
|
||||
/// Amount of blocks per epoch in the fast-epoch feature that is used in tests.
|
||||
pub const FAST_EPOCH_DURATION: u64 = 2 * MINUTES;
|
||||
|
||||
/// Amount of blocks for the initial period era of the emissions under the fast-epoch feature.
|
||||
pub const FAST_EPOCH_INITIAL_PERIOD: u64 = 2 * FAST_EPOCH_DURATION;
|
||||
|
||||
@@ -15,7 +15,9 @@ use sp_core::{ConstU32, bounded::BoundedVec};
|
||||
use crate::{borsh_serialize_bounded_vec, borsh_deserialize_bounded_vec};
|
||||
|
||||
/// The type used to identify networks.
|
||||
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Encode, Decode, MaxEncodedLen, TypeInfo)]
|
||||
#[derive(
|
||||
Clone, Copy, PartialEq, Eq, Hash, Debug, Encode, Decode, PartialOrd, Ord, MaxEncodedLen, TypeInfo,
|
||||
)]
|
||||
#[cfg_attr(feature = "std", derive(Zeroize))]
|
||||
#[cfg_attr(feature = "borsh", derive(BorshSerialize, BorshDeserialize))]
|
||||
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||
|
||||
Reference in New Issue
Block a user