1use serde::{Deserialize, Serialize};
2use steel::*;
3
4pub enum OreEvent {
5 Reset = 0,
6 Bury = 1,
7 Deploy = 2,
8 Liq = 3,
9}
10
11#[repr(C)]
12#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
13pub struct ResetEvent {
14 pub disc: u64,
16
17 pub round_id: u64,
19
20 pub start_slot: u64,
22
23 pub end_slot: u64,
25
26 pub winning_square: u64,
28
29 pub top_miner: Pubkey,
31
32 pub num_winners: u64,
34
35 pub motherlode: u64,
37
38 pub total_deployed: u64,
40
41 pub total_vaulted: u64,
43
44 pub total_winnings: u64,
46
47 pub total_minted: u64,
49
50 pub ts: i64,
52}
53
54#[repr(C)]
55#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
56pub struct BuryEvent {
57 pub disc: u64,
59
60 pub ore_buried: u64,
62
63 pub ore_shared: u64,
65
66 pub sol_amount: u64,
68
69 pub new_circulating_supply: u64,
71
72 pub ts: i64,
74}
75
76#[repr(C)]
77#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
78pub struct DeployEvent {
79 pub disc: u64,
81
82 pub authority: Pubkey,
84
85 pub amount: u64,
87
88 pub mask: u64,
90
91 pub round_id: u64,
93
94 pub ts: i64,
96}
97
98#[repr(C)]
99#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
100pub struct LiqEvent {
101 pub disc: u64,
103
104 pub sol_amount: u64,
106
107 pub recipient: Pubkey,
109
110 pub ts: i64,
112}
113
114event!(ResetEvent);
115event!(BuryEvent);
116event!(DeployEvent);
117event!(LiqEvent);