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}