1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use ;
/// Authority for `Initialize`. Replace with your deploy multisig before mainnet.
pub const ADMIN_ADDRESS: Pubkey = pubkey!;
/// Signs executor-gated instructions: `AdminPayout`. Replace before production.
pub const EXECUTOR_ADDRESS: Pubkey =
pubkey!;
/// Basis points denominator (100%).
pub const MAX_BPS: u16 = 10_000;
/// PDA seed for the `Treasury` account.
pub const TREASURY: & = b"treasury";
/// PDA seed for `UserTicket` accounts.
/// Full seeds: [USER_TICKET, user_pubkey, series_id_le2, period_le8]
pub const USER_TICKET: & = b"ticket";
/// Ticket revenue split to daily pool (BPS).
pub const TICKET_DAILY_BPS: u16 = 7000;
/// Ticket revenue split to weekly pool (BPS).
pub const TICKET_WEEKLY_BPS: u16 = 1500;
/// Ticket revenue split to buyback reserve (BPS).
pub const TICKET_BUYBACK_BPS: u16 = 1000;
/// Ticket revenue split to team (BPS).
pub const TICKET_TEAM_BPS: u16 = 500;
/// SPL USDC recipient for team-fee legs.
pub const FEE_COLLECTOR: Pubkey = pubkey!;
/// SPL USDC mint.
/// Devnet: GAmHPNMcgh9BTpe3DWirqMwvYCeDskE2im6fUhZyukJp (custom devnet USDC)
/// Mainnet: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v (Circle mainnet)
pub const USDC_MAINNET_MINT: Pubkey = pubkey!;
/// Duration of each 5-minute market bucket in seconds.
/// `open_ts = period * MARKET_BUCKET_SECS`, `close_ts = open_ts + MARKET_BUCKET_SECS`.
pub const MARKET_BUCKET_SECS: i64 = 300;