1use solana_program::{keccak::Hash, pubkey, pubkey::Pubkey};
2
3pub const START_AT: i64 = 1713880800;
6
7pub const END_AT: i64 = 1871647200;
10
11pub const INITIAL_REWARD_RATE: u64 = 10 * 10u64.pow(3u32);
13
14pub const INITIAL_DIFFICULTY: Hash = Hash::new_from_array([
16 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
17 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
18]);
19
20pub const TOKEN_DECIMALS: u8 = 8;
24
25pub const ONE_MARS: u64 = 10u64.pow(TOKEN_DECIMALS as u32);
27
28pub const TEN_MARS: u64 = ONE_MARS.saturating_mul(10);
30
31pub const EPOCH_DURATION: i64 = 60;
33
34pub const TARGET_EPOCH_REWARDS: u64 = TEN_MARS;
37
38pub const MAX_EPOCH_REWARDS: u64 = TEN_MARS.saturating_mul(2);
40
41pub const BUS_EPOCH_REWARDS: u64 = MAX_EPOCH_REWARDS.saturating_div(BUS_COUNT as u64);
43
44pub const BUS_COUNT: usize = 8;
46
47pub const SMOOTHING_FACTOR: u64 = 2;
50
51static_assertions::const_assert!(
53 (MAX_EPOCH_REWARDS / BUS_COUNT as u64) * BUS_COUNT as u64 == MAX_EPOCH_REWARDS
54);
55
56pub const BUS: &[u8] = b"bus";
58
59pub const METADATA: &[u8] = b"metadata";
61
62pub const MINT: &[u8] = b"mint";
64
65pub const PROOF: &[u8] = b"proof";
67
68pub const TREASURY: &[u8] = b"treasury";
70
71pub const METADATA_NAME: &str = "Mars";
73
74pub const METADATA_SYMBOL: &str = "MARS";
76
77pub const METADATA_URI: &str = "https://github.com/miraland-labs/resources/blob/main/metadata/mars.json";
79
80pub const MINT_NOISE: [u8; 16] = [
83 105, 170, 164, 162, 145, 155, 145, 127, 141, 171, 117, 156, 115, 141, 162, 163,
84];
85
86pub const BUS_ADDRESSES: [Pubkey; BUS_COUNT] = [
88 pubkey!("6ZcZsUKTv19iFXSnpqjPXzE7joCsEeNpTC5oArFPXzQG"),
89 pubkey!("5jNbJehucBoCov1RkyHJQfMNrjSFG7LYZF79hvjDp4u5"),
90 pubkey!("Ctsj8HbZFe8oqbx3GRfxgz9g1RyTKHeh92UcsabUK6so"),
91 pubkey!("HKo6bDCzHyfYtBtbYeDXs1x3yvDzBWU5EpxhjBWxJB97"),
92 pubkey!("82BDDgQnQeFLjyP1mSpPHRPJdEGkiiZtBqEvjFxYL44W"),
93 pubkey!("CqacmEv1yENenKrZBUPV8LQZrje8ZiBdr8Y3MsEaS3QQ"),
94 pubkey!("Gw4ZkcJkiiLWbqR1qnu2YHg4TsfaEbgUE2Ky721cY1Rv"),
95 pubkey!("DkwXmEda41smeoQiztKopXMQjMW5QYLggddqLUz1Hpck"),
96];
97
98pub const METADATA_ADDRESS: Pubkey = pubkey!("CC8Awvao6Ls5VjREyH78DGPh3SmdjdDZJxTmfsqZmsbJ");
100
101pub const MINT_ADDRESS: Pubkey = pubkey!("7RAV5UPRTzxn46kLeA8MiJsdNy9VKc5fip8FWEgTpTHh");
103
104pub const TREASURY_ADDRESS: Pubkey = pubkey!("Dk13Cdjnjz2pxbsXbvzJiA2bUSMdsHU7Vf2G8yRGQvwC");