1use serde::{Deserialize, Serialize};
2use steel::*;
3
4pub enum OreEvent {
5 Reset = 0,
6 Bury = 1,
7 Deploy = 2,
8}
9
10#[repr(C)]
11#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
12pub struct ResetEvent {
13 pub disc: u64,
15
16 pub round_id: u64,
18
19 pub start_slot: u64,
21
22 pub end_slot: u64,
24
25 pub winning_square: u64,
27
28 pub top_miner: Pubkey,
30
31 pub num_winners: u64,
33
34 pub motherlode: u64,
36
37 pub total_deployed: u64,
39
40 pub total_vaulted: u64,
42
43 pub total_winnings: u64,
45
46 pub total_minted: u64,
48
49 pub ts: i64,
51}
52
53#[repr(C)]
54#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
55pub struct BuryEvent {
56 pub disc: u64,
58
59 pub ore_buried: u64,
61
62 pub ore_shared: u64,
64
65 pub sol_amount: u64,
67
68 pub new_circulating_supply: u64,
70
71 pub ts: i64,
73}
74
75#[repr(C)]
76#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
77pub struct DeployEvent {
78 pub disc: u64,
80
81 pub authority: Pubkey,
83
84 pub amount: u64,
86
87 pub mask: u64,
89
90 pub round_id: u64,
92
93 pub ts: i64,
95}
96
97event!(ResetEvent);
98event!(BuryEvent);
99event!(DeployEvent);