1use serde::{Deserialize, Serialize};
2use steel::*;
3pub enum OreEvent {
4 Reset = 0,
5 Bury = 1,
6 Motherlode = 2,
7}
8
9#[repr(C)]
10#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
11pub struct ResetEvent {
12 pub disc: u64,
14
15 pub round_id: u64,
17
18 pub start_slot: u64,
20
21 pub end_slot: u64,
23
24 pub winning_square: u64,
26
27 pub top_miner: Pubkey,
29
30 pub num_winners: u64,
32
33 pub motherlode: u64,
35
36 pub total_deployed: u64,
38
39 pub total_vaulted: u64,
41
42 pub total_winnings: u64,
44
45 pub total_minted: u64,
47
48 pub ts: i64,
50}
51
52#[repr(C)]
53#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
54pub struct BuryEvent {
55 pub disc: u64,
57
58 pub ore_buried: u64,
60
61 pub ore_shared: u64,
63
64 pub sol_amount: u64,
66
67 pub new_circulating_supply: u64,
69
70 pub ts: i64,
72}
73
74#[repr(C)]
75#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
76pub struct MotherlodeEvent {
77 pub disc: u64,
79
80 pub amount: u64,
82
83 pub round_id: u64,
85
86 pub num_miners: u64,
88
89 pub ts: i64,
91}
92
93event!(ResetEvent);
94event!(BuryEvent);
95event!(MotherlodeEvent);