use serde::{Deserialize, Serialize};
use steel::*;
pub enum OreEvent {
Reset = 0,
Bury = 1,
Deploy = 2,
Liq = 3,
Claim = 4,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct ResetEvent {
pub disc: u64,
pub round_id: u64,
pub start_slot: u64,
pub end_slot: u64,
pub winning_square: u64,
pub top_miner: Pubkey,
pub num_winners: u64,
pub motherlode: u64,
pub total_deployed: u64,
pub total_vaulted: u64,
pub total_winnings: u64,
pub total_minted: u64,
pub ts: i64,
pub rng: u64,
pub deployed_winning_square: u64,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct BuryEvent {
pub disc: u64,
pub ore_buried: u64,
pub ore_shared: u64,
pub sol_amount: u64,
pub new_circulating_supply: u64,
pub ts: i64,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct DeployEvent {
pub disc: u64,
pub authority: Pubkey,
pub amount: u64,
pub mask: u64,
pub round_id: u64,
pub signer: Pubkey,
pub strategy: u64,
pub total_squares: u64,
pub ts: i64,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct LiqEvent {
pub disc: u64,
pub sol_amount: u64,
pub recipient: Pubkey,
pub ts: i64,
}
#[repr(C)]
#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
pub struct ClaimEvent {
pub disc: u64,
pub authority: Pubkey,
pub amount: u64,
pub claim_type: u64,
pub ts: i64,
}
event!(ResetEvent);
event!(BuryEvent);
event!(DeployEvent);
event!(LiqEvent);
event!(ClaimEvent);