1use serde::{Deserialize, Serialize};
2use steel::*;
3
4use crate::state::{config_pda, OreAccount};
5
6#[repr(C)]
7#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
8pub struct Config {
9 pub admin: AdminConfig,
11
12 pub protocol: ProtocolConfig,
14}
15
16#[repr(C)]
17#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
18pub struct AdminConfig {
19 pub authority: Pubkey,
21
22 pub fee_collector: Pubkey,
24
25 pub fee_rate: u64,
27}
28
29#[repr(C)]
30#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
31pub struct ProtocolConfig {
32 pub authority: Pubkey,
34
35 pub fee_collector: Pubkey,
37
38 pub fee_rate: u64,
40
41 pub intermission_slots: u64,
43
44 pub round_slots: u64,
46
47 pub entropy_var_address: Pubkey,
49
50 pub entropy_program_id: Pubkey,
52}
53
54impl Config {
55 pub fn pda() -> (Pubkey, u8) {
56 config_pda()
57 }
58}
59
60account!(OreAccount, Config);