use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct TokenDistribution {
pub staking_allocation: f64,
pub ecosystem_allocation: f64,
pub treasury_allocation: f64,
pub team_allocation: f64,
}
impl Default for TokenDistribution {
fn default() -> Self {
Self {
staking_allocation: 0.40,
ecosystem_allocation: 0.30,
treasury_allocation: 0.20,
team_allocation: 0.10,
}
}
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct StakingTier {
pub name: String,
pub minimum_stake: u64,
pub reward_multiplier: f64,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct EconomicEvent {
pub timestamp: u64,
pub event_type: EconomicEventType,
pub amount: u64,
pub account: String,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub enum EconomicEventType {
Stake,
Unstake,
Reward,
Fee,
Burn,
Mint,
}