use serde::{Deserialize, Serialize};
use steel::*;
use crate::state::{config_pda, OreAccount};
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct Config {
pub admin: AdminConfig,
pub protocol: ProtocolConfig,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct AdminConfig {
pub authority: Pubkey,
pub fee_collector: Pubkey,
pub fee_rate: u64,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct ProtocolConfig {
pub authority: Pubkey,
pub fee_collector: Pubkey,
pub fee_rate: u64,
pub intermission_slots: u64,
pub round_slots: u64,
pub entropy_var_address: Pubkey,
pub entropy_program_id: Pubkey,
}
impl Config {
pub fn pda() -> (Pubkey, u8) {
config_pda()
}
}
account!(OreAccount, Config);