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    pub buffer3: u64,
13    pub buffer4: u64,
14}
15
16account!(DojosAccount, Referral);
17
18impl Referral {
19    /// Commission rate: 20% for 1–10 referrals, 30% for 11+.
20    pub fn rate(&self) -> u64 {
21        if self.referred_count < 10 {
22            20
23        } else {
24            30
25        }
26    }
27}