solana_program/stake/
config.rs

1//! config for staking
2//!  carries variables that the stake program cares about
3
4#[deprecated(
5    since = "1.16.7",
6    note = "Please use `solana_sdk::stake::state::{DEFAULT_SLASH_PENALTY, DEFAULT_WARMUP_COOLDOWN_RATE}` instead"
7)]
8pub use super::state::{DEFAULT_SLASH_PENALTY, DEFAULT_WARMUP_COOLDOWN_RATE};
9use serde_derive::{Deserialize, Serialize};
10
11// stake config ID
12crate::declare_deprecated_id!("StakeConfig11111111111111111111111111111111");
13
14#[deprecated(
15    since = "1.16.7",
16    note = "Please use `solana_sdk::stake::state::warmup_cooldown_rate()` instead"
17)]
18#[derive(Serialize, Deserialize, Debug, PartialEq, Clone, Copy)]
19pub struct Config {
20    /// how much stake we can activate/deactivate per-epoch as a fraction of currently effective stake
21    pub warmup_cooldown_rate: f64,
22    /// percentage of stake lost when slash, expressed as a portion of u8::MAX
23    pub slash_penalty: u8,
24}
25
26impl Default for Config {
27    fn default() -> Self {
28        Self {
29            warmup_cooldown_rate: DEFAULT_WARMUP_COOLDOWN_RATE,
30            slash_penalty: DEFAULT_SLASH_PENALTY,
31        }
32    }
33}