1use bytemuck::{Pod, Zeroable};
2use shank::ShankAccount;
3use solana_program::pubkey::Pubkey;
4
5use crate::{
6 impl_account_from_bytes, impl_to_bytes,
7 state::Hash,
8 utils::{AccountDiscriminator, Discriminator},
9};
10
11#[repr(C)]
14#[derive(Clone, Copy, Debug, PartialEq, Pod, ShankAccount, Zeroable)]
15pub struct Treasury {
16 pub admin: Pubkey,
18
19 pub bump: u64,
21
22 pub difficulty: Hash,
24
25 pub last_reset_at: i64,
27
28 pub reward_rate: u64,
30
31 pub total_claimed_rewards: u64,
33}
34
35impl Discriminator for Treasury {
36 fn discriminator() -> AccountDiscriminator {
37 AccountDiscriminator::Treasury
38 }
39}
40
41impl_to_bytes!(Treasury);
42impl_account_from_bytes!(Treasury);