tengu_api/state/seeker.rs
1//! Seeker account: per-SGT-mint state. One per SGT mint that has claimed the Seeker task.
2//! Anti-Sybil: prevents reusing same SGT across wallets. Tracks soulbound_mint when minted.
3
4use super::DojosAccount;
5use steel::*;
6
7#[repr(C)]
8#[derive(Clone, Copy, Debug, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
9pub struct Seeker {
10 pub sgt_mint: Pubkey,
11 pub dojo: Pubkey,
12 pub slot: u64,
13 /// Soulbound mint address when minted; Pubkey::default() = not yet minted.
14 pub soulbound_mint: Pubkey,
15}
16
17account!(DojosAccount, Seeker);