tengu_api/state/tasks.rs
1//! Tasks account: per-category claimed-up-to state. One per Dojo.
2
3use super::DojosAccount;
4use steel::*;
5
6#[repr(C)]
7#[derive(Clone, Copy, Debug, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
8pub struct Tasks {
9 pub dojo: Pubkey,
10 /// Highest recruit threshold claimed. 0 = none.
11 pub recruit_claimed_up_to: u64,
12 /// Highest forge level tier claimed. 0 = none.
13 pub forge_claimed_up_to: u64,
14 /// Highest dine threshold claimed. 0 = none.
15 pub dine_claimed_up_to: u64,
16 /// Last slot when daily reward was claimed. 0 = never.
17 pub last_daily_claim_slot: u64,
18 /// Collection: 1 = claimed, index = element×5+rarity (25 combos).
19 pub collection_claimed: [u8; 25],
20 pub _pad: [u8; 7], // explicit: align reserved to 8 bytes (25 % 8 = 1)
21 /// Reserved for future task categories and metadata.
22 pub reserved: [u64; 24],
23}
24
25account!(DojosAccount, Tasks);