anya_core/tokenomics/
models.rs1use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Serialize, Deserialize)]
6pub struct TokenDistribution {
7 pub staking_allocation: f64,
9 pub ecosystem_allocation: f64,
11 pub treasury_allocation: f64,
13 pub team_allocation: f64,
15}
16
17impl Default for TokenDistribution {
18 fn default() -> Self {
19 Self {
20 staking_allocation: 0.40,
21 ecosystem_allocation: 0.30,
22 treasury_allocation: 0.20,
23 team_allocation: 0.10,
24 }
25 }
26}
27
28#[derive(Clone, Debug, Serialize, Deserialize)]
30pub struct StakingTier {
31 pub name: String,
33 pub minimum_stake: u64,
35 pub reward_multiplier: f64,
37}
38
39#[derive(Clone, Debug, Serialize, Deserialize)]
41pub struct EconomicEvent {
42 pub timestamp: u64,
44 pub event_type: EconomicEventType,
46 pub amount: u64,
48 pub account: String,
50}
51
52#[derive(Clone, Debug, Serialize, Deserialize)]
54pub enum EconomicEventType {
55 Stake,
57 Unstake,
59 Reward,
61 Fee,
63 Burn,
65 Mint,
67}