mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-14 06:59:24 +00:00
rebase changes
This commit is contained in:
@@ -32,10 +32,10 @@ sp-runtime = { git = "https://github.com/serai-dex/substrate", default-features
|
||||
coins-pallet = { package = "serai-coins-pallet", path = "../../coins/pallet", default-features = false }
|
||||
validator-sets-pallet = { package = "serai-validator-sets-pallet", path = "../../validator-sets/pallet", default-features = false }
|
||||
dex-pallet = { package = "serai-dex-pallet", path = "../../dex/pallet", default-features = false }
|
||||
genesis-liquidity-pallet = { package = "serai-genesis-liquidity-pallet", path = "../../genesis-liquidity/pallet", default-features = false }
|
||||
|
||||
serai-primitives = { path = "../../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]
|
||||
@@ -52,11 +52,10 @@ std = [
|
||||
"coins-pallet/std",
|
||||
"validator-sets-pallet/std",
|
||||
"dex-pallet/std",
|
||||
"genesis-liquidity-pallet/std",
|
||||
|
||||
"serai-primitives/std",
|
||||
"emissions-primitives/std",
|
||||
"genesis-liquidity-primitives/std",
|
||||
]
|
||||
fast-epoch = ["genesis-liquidity-primitives/fast-epoch"]
|
||||
|
||||
default = ["std"]
|
||||
@@ -14,15 +14,19 @@ pub mod pallet {
|
||||
use dex_pallet::{Config as DexConfig, Pallet as Dex};
|
||||
|
||||
use validator_sets_pallet::{Pallet as ValidatorSets, Config as ValidatorSetsConfig};
|
||||
use genesis_liquidity_pallet::{Pallet as GenesisLiquidity, Config as GenesisLiquidityConfig};
|
||||
|
||||
use serai_primitives::{NetworkId, NETWORKS, *};
|
||||
use serai_primitives::*;
|
||||
use validator_sets_primitives::{MAX_KEY_SHARES_PER_SET, Session};
|
||||
use genesis_liquidity_primitives::GENESIS_PERIOD_BLOCKS;
|
||||
use emissions_primitives::*;
|
||||
|
||||
#[pallet::config]
|
||||
pub trait Config:
|
||||
frame_system::Config<AccountId = PublicKey> + ValidatorSetsConfig + CoinsConfig + DexConfig
|
||||
frame_system::Config<AccountId = PublicKey>
|
||||
+ ValidatorSetsConfig
|
||||
+ CoinsConfig
|
||||
+ DexConfig
|
||||
+ GenesisLiquidityConfig
|
||||
{
|
||||
type RuntimeEvent: From<Event<Self>> + IsType<<Self as frame_system::Config>::RuntimeEvent>;
|
||||
}
|
||||
@@ -81,6 +85,9 @@ pub mod pallet {
|
||||
#[pallet::getter(fn last_swap_volume)]
|
||||
pub(crate) type LastSwapVolume<T: Config> = StorageMap<_, Identity, NetworkId, u64, OptionQuery>;
|
||||
|
||||
#[pallet::storage]
|
||||
pub(crate) type GenesisCompleteBlock<T: Config> = StorageValue<_, u64, OptionQuery>;
|
||||
|
||||
#[pallet::genesis_build]
|
||||
impl<T: Config> BuildGenesisConfig for GenesisConfig<T> {
|
||||
fn build(&self) {
|
||||
@@ -101,8 +108,10 @@ pub mod pallet {
|
||||
#[pallet::hooks]
|
||||
impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
|
||||
fn on_finalize(n: BlockNumberFor<T>) {
|
||||
// wait 1 extra block to actually see genesis changes
|
||||
let genesis_ended = n >= (GENESIS_PERIOD_BLOCKS + 1).into();
|
||||
let genesis_ended = GenesisLiquidity::<T>::genesis_complete().is_some();
|
||||
if GenesisCompleteBlock::<T>::get().is_none() && genesis_ended {
|
||||
GenesisCompleteBlock::<T>::set(Some(n.saturated_into::<u64>()));
|
||||
}
|
||||
|
||||
// we accept we reached economic security once we can mint smallest amount of a network's coin
|
||||
for coin in COINS {
|
||||
@@ -299,7 +308,9 @@ pub mod pallet {
|
||||
}
|
||||
|
||||
fn initial_period(n: BlockNumberFor<T>) -> bool {
|
||||
n >= GENESIS_PERIOD_BLOCKS.into() && n < (3 * GENESIS_PERIOD_BLOCKS).into()
|
||||
let genesis_complete_block = GenesisCompleteBlock::<T>::get();
|
||||
genesis_complete_block.is_some() &&
|
||||
(n.saturated_into::<u64>() < (3 * genesis_complete_block.unwrap()))
|
||||
}
|
||||
|
||||
/// Returns true if any of the external networks haven't reached economic security yet.
|
||||
|
||||
Reference in New Issue
Block a user