ore_boost_api/state/boost.rs
1use steel::*;
2
3use super::BoostAccount;
4
5/// Boost tracks the priority, deposits, and rewards of a staking incentive.
6#[repr(C)]
7#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable)]
8pub struct Boost {
9 /// The unix timestamp this boost expires.
10 pub expires_at: i64,
11
12 /// The mint address of the token associated with this boost.
13 pub mint: Pubkey,
14
15 /// The rewards multiplier (priority) associated with this boost.
16 pub multiplier: u64,
17
18 /// The cumulative rewards collected by this boost, divided by the total deposits at the time of collection.
19 pub rewards_factor: Numeric,
20
21 /// The total amount of stake deposited in this boost.
22 pub total_deposits: u64,
23
24 /// The number of stakers in this boost.
25 pub total_stakers: u64,
26
27 /// A protocol fee charged for withdrawing from this boost (in basis points).
28 pub withdraw_fee: u64,
29}
30
31account!(BoostAccount, Boost);