Skip to main content

tengu_api/state/
referral.rs

1use super::DojosAccount;
2use steel::*;
3
4#[repr(C)]
5#[derive(Clone, Copy, Debug, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
6pub struct Referral {
7    pub referrer_dojo: Pubkey,
8    pub referred_count: u64,
9    pub pending: u64, // Lamports to claim
10    pub buffer1: u64,
11    pub buffer2: u64,
12}
13
14account!(DojosAccount, Referral);
15
16impl Referral {
17    /// Commission rate: 20% for 1–10 referrals, 30% for 11+.
18    pub fn rate(&self) -> u64 {
19        if self.referred_count < 10 {
20            20
21        } else {
22            30
23        }
24    }
25}