1use serde::{Deserialize, Serialize};
2use steel::*;
3
4pub enum BucksEvent {
6 Wrap = 0,
7 Unwrap = 1,
8 Claim = 2,
9 Rebalance = 3,
10 Checkpoint = 4,
11 ProtocolInit = 5,
12}
13
14#[repr(C)]
16#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
17pub struct WrapEvent {
18 pub disc: u64,
20
21 pub user: Pubkey,
23
24 pub mint: Pubkey,
26
27 pub protocol_id: u64,
29
30 pub usdc_amount: u64,
32
33 pub stable_amount: u64,
35
36 pub shares_minted: u64,
38
39 pub ts: i64,
41}
42
43#[repr(C)]
45#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
46pub struct UnwrapEvent {
47 pub disc: u64,
49
50 pub user: Pubkey,
52
53 pub mint: Pubkey,
55
56 pub protocol_id: u64,
58
59 pub stable_amount: u64,
61
62 pub usdc_amount: u64,
64
65 pub shares_burned: u64,
67
68 pub ts: i64,
70}
71
72#[repr(C)]
74#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
75pub struct ClaimEvent {
76 pub disc: u64,
78
79 pub creator: Pubkey,
81
82 pub mint: Pubkey,
84
85 pub usdc_amount: u64,
87
88 pub platform_fee: u64,
90
91 pub ts: i64,
93}
94
95#[repr(C)]
97#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
98pub struct RebalanceEvent {
99 pub disc: u64,
101
102 pub from_protocol: u64,
104
105 pub to_protocol: u64,
107
108 pub usdc_amount: u64,
110
111 pub ts: i64,
113}
114
115#[repr(C)]
117#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
118pub struct CheckpointEvent {
119 pub disc: u64,
121
122 pub protocol_id: u64,
124
125 pub exchange_rate: u64,
127
128 pub usdc_value: u64,
130
131 pub ts: i64,
133}
134
135#[repr(C)]
137#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable, Serialize, Deserialize)]
138pub struct ProtocolInitEvent {
139 pub disc: u64,
141
142 pub protocol_id: u64,
144
145 pub name: [u8; 32],
147
148 pub ts: i64,
150}
151
152
153event!(WrapEvent);
154event!(UnwrapEvent);
155event!(ClaimEvent);
156event!(RebalanceEvent);
157event!(CheckpointEvent);
158event!(ProtocolInitEvent);