1use serde::{Deserialize, Serialize};
2use steel::*;
3
4pub enum OreStakeEvent {
5 Claim = 0,
6 Deposit = 1,
7 Distribute = 2,
8 Withdraw = 3,
9 Compound = 4,
10}
11
12#[repr(C)]
13#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
14pub struct ClaimEvent {
15 pub disc: u64,
17
18 pub authority: Pubkey,
20
21 pub amount: u64,
23
24 pub ts: i64,
26}
27
28#[repr(C)]
29#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
30pub struct DepositEvent {
31 pub disc: u64,
33
34 pub authority: Pubkey,
36
37 pub amount: u64,
39
40 pub ts: i64,
42}
43
44#[repr(C)]
45#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
46pub struct DistributeEvent {
47 pub disc: u64,
49
50 pub amount: u64,
52
53 pub total_staked: u64,
55
56 pub ts: i64,
58}
59
60#[repr(C)]
61#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
62pub struct WithdrawEvent {
63 pub disc: u64,
65
66 pub authority: Pubkey,
68
69 pub amount: u64,
71
72 pub ts: i64,
74}
75
76#[repr(C)]
77#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
78pub struct CompoundEvent {
79 pub disc: u64,
81
82 pub authority: Pubkey,
84
85 pub amount: u64,
87
88 pub ts: i64,
90}
91
92event!(ClaimEvent);
93event!(CompoundEvent);
94event!(DepositEvent);
95event!(DistributeEvent);
96event!(WithdrawEvent);