1use serde::{Deserialize, Serialize};
2use steel::*;
3
4pub enum OreStakeEvent {
5 Claim = 0,
6 Deposit = 1,
7 Distribute = 2,
8 Withdraw = 3,
9}
10
11#[repr(C)]
12#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
13pub struct ClaimEvent {
14 pub disc: u64,
16
17 pub authority: Pubkey,
19
20 pub amount: u64,
22
23 pub ts: i64,
25}
26
27#[repr(C)]
28#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
29pub struct DepositEvent {
30 pub disc: u64,
32
33 pub authority: Pubkey,
35
36 pub amount: u64,
38
39 pub ts: i64,
41}
42
43#[repr(C)]
44#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
45pub struct DistributeEvent {
46 pub disc: u64,
48
49 pub amount: u64,
51
52 pub total_staked: u64,
54
55 pub ts: i64,
57}
58
59#[repr(C)]
60#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
61pub struct WithdrawEvent {
62 pub disc: u64,
64
65 pub authority: Pubkey,
67
68 pub amount: u64,
70
71 pub ts: i64,
73}
74
75event!(ClaimEvent);
76event!(DepositEvent);
77event!(DistributeEvent);
78event!(WithdrawEvent);