1use solana_program::pubkey::Pubkey;
4use steel::*;
5
6#[repr(C)]
7#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
8pub struct DojoInitialized {
9 pub owner: Pubkey,
10 pub referrer: Pubkey, }
12
13#[repr(C)]
14#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
15pub struct ShogunRecruited {
16 pub dojo: Pubkey,
17 pub pool_index: u64,
18 pub rarity: u64,
19 pub element: u64,
20 pub spirit_power: u64,
21 pub entropy_value: [u8; 32],
24 pub pull_index: u64,
26}
27
28#[repr(C)]
29#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
30pub struct ShogunAssignedToBarracks {
31 pub dojo: Pubkey,
32 pub pool_index: u64,
33 pub slot: u64,
34}
35
36#[repr(C)]
37#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
38pub struct ShogunUnassignedFromBarracks {
39 pub dojo: Pubkey,
40 pub shogun: Pubkey,
41}
42
43#[repr(C)]
44#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
45pub struct OreMined {
46 pub dojo: Pubkey,
47 pub amount: u64,
48 pub slot: u64,
49}
50
51#[repr(C)]
52#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
53pub struct OreRefined {
54 pub dojo: Pubkey,
55 pub ore_in: u64,
56 pub dojo_out: u64,
58}
59
60#[repr(C)]
61#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
62pub struct ShardsClaimed {
63 pub dojo: Pubkey,
64 pub amount_raw: u64,
66 pub slot: u64,
67}
68
69#[repr(C)]
70#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
71pub struct ShogunMerged {
72 pub dojo: Pubkey,
73 pub pool_index: u64,
74 pub rarity: u64,
75 pub merge_type: u64,
76}
77
78#[repr(C)]
79#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
80pub struct ShogunPrestigeUpgraded {
81 pub dojo: Pubkey,
82 pub pool_index: u64,
83 pub new_prestige: u64,
84 pub new_spirit_power: u64,
85}
86
87#[repr(C)]
88#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
89pub struct EmissionMinted {
90 pub amount: u64,
91 pub slot: u64,
92}
93
94#[repr(C)]
95#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
96pub struct ReferralRewardClaimed {
97 pub referrer: Pubkey,
98 pub referrer_dojo: Pubkey,
99 pub amount: u64,
100}
101
102#[repr(C)]
103#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
104pub struct TaskClaimed {
105 pub dojo: Pubkey,
106 pub task_id: u64,
107 pub recruitment_tickets: u64,
108}
109
110#[repr(C)]
111#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
112pub struct SceneSectionsSalvaged {
113 pub dojo: Pubkey,
114 pub amethyst_refund: u64,
115}
116
117#[repr(C)]
118#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
119pub struct SceneSectionsRolled {
120 pub dojo: Pubkey,
121 pub count: u64,
122 pub payment_type: u8, pub _pad: [u8; 7],
124 pub seed: [u8; 32],
125}
126
127#[repr(C)]
128#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
129pub struct ChestBought {
130 pub dojo: Pubkey,
131 pub amethyst_amount: u64,
132}
133
134#[repr(C)]
135#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
136pub struct SceneBought {
137 pub dojo: Pubkey,
138 pub scene_id: u64,
139}
140
141#[repr(C)]
142#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
143pub struct ActiveSceneUpdated {
144 pub dojo: Pubkey,
145 pub scene_id: u64,
146}
147
148#[repr(C)]
149#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
150pub struct ShogunLeveledUp {
151 pub dojo: Pubkey,
152 pub slot: u64,
153 pub new_level: u64,
154}
155
156#[repr(C)]
157#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
158pub struct ChakraRecovered {
159 pub dojo: Pubkey,
160 pub slot: u64,
161 pub tier: u64,
162}
163
164#[repr(C)]
165#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
166pub struct BarracksUpgraded {
167 pub dojo: Pubkey,
168 pub new_level: u64,
169}
170
171#[repr(C)]
172#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
173pub struct ForgeUpgraded {
174 pub dojo: Pubkey,
175 pub new_level: u64,
176}
177
178#[repr(C)]
179#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
180pub struct BundleBought {
181 pub dojo: Pubkey,
182 pub tickets: u64,
183}
184
185#[repr(C)]
186#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
187pub struct TicketsBoughtWithShards {
188 pub dojo: Pubkey,
189 pub tickets: u64,
190}
191
192#[repr(C)]
193#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
194pub struct FlashSaleBought {
195 pub dojo: Pubkey,
196 pub tickets: u64,
197}
198
199#[repr(C)]
200#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
201pub struct ForgeCooldownCleared {
202 pub dojo: Pubkey,
203}
204
205#[repr(C)]
206#[derive(Clone, Copy, Debug, bytemuck::Pod, bytemuck::Zeroable)]
207pub struct BattleResolved {
208 pub attacker_dojo: Pubkey,
209 pub defender_dojo: Pubkey,
210 pub attacker_won: u8,
211 pub _pad: [u8; 7],
212 pub roll_bps: u64,
213 pub win_probability_bps: u64,
214 pub points_moved: u64,
215 pub attacker_bp_after: u64,
216 pub defender_bp_after: u64,
217 pub slot: u64,
218}
219
220event!(DojoInitialized);
221event!(ShogunRecruited);
222event!(ShogunAssignedToBarracks);
223event!(ShogunUnassignedFromBarracks);
224event!(OreMined);
225event!(OreRefined);
226event!(ShardsClaimed);
227event!(ShogunMerged);
228event!(ShogunPrestigeUpgraded);
229event!(EmissionMinted);
230event!(ReferralRewardClaimed);
231event!(TaskClaimed);
232event!(SceneSectionsSalvaged);
233event!(SceneSectionsRolled);
234event!(ChestBought);
235event!(SceneBought);
236event!(ActiveSceneUpdated);
237event!(ShogunLeveledUp);
238event!(ChakraRecovered);
239event!(BarracksUpgraded);
240event!(ForgeUpgraded);
241event!(BundleBought);
242event!(TicketsBoughtWithShards);
243event!(FlashSaleBought);
244event!(ForgeCooldownCleared);
245event!(BattleResolved);