82 lines
1.9 KiB
V
82 lines
1.9 KiB
V
module incatokens
|
|
|
|
import os
|
|
|
|
// SimulationParams is the main configuration struct containing all parameters
|
|
pub struct SimulationParams {
|
|
pub mut:
|
|
name string
|
|
distribution TokenDistribution
|
|
investor_rounds []InvestorRoundConfig
|
|
vesting VestingConfigs
|
|
economics EconomicsConfig
|
|
simulation SimulationConfig
|
|
scenarios []ScenarioConfig
|
|
output OutputConfig
|
|
}
|
|
|
|
// TokenDistribution defines how tokens are allocated across different categories
|
|
pub struct TokenDistribution {
|
|
pub mut:
|
|
total_supply f64 = 10_000_000_000
|
|
public_pct f64 = 0.50
|
|
team_pct f64 = 0.15
|
|
treasury_pct f64 = 0.15
|
|
investor_pct f64 = 0.20
|
|
}
|
|
|
|
// VestingConfig defines cliff and vesting periods
|
|
pub struct VestingConfig {
|
|
pub mut:
|
|
cliff_months int = 6
|
|
vesting_months int = 24
|
|
}
|
|
|
|
// InvestorRoundConfig defines parameters for each investment round
|
|
pub struct InvestorRoundConfig {
|
|
pub mut:
|
|
name string
|
|
allocation_pct f64
|
|
price f64
|
|
vesting VestingConfig
|
|
}
|
|
|
|
// EconomicsConfig defines economic parameters affecting token pricing
|
|
pub struct EconomicsConfig {
|
|
pub mut:
|
|
epoch1_floor_uplift f64 = 1.20
|
|
epochn_floor_uplift f64 = 1.20
|
|
amm_liquidity_depth_factor f64 = 2.0
|
|
}
|
|
|
|
// VestingConfigs groups all vesting configurations
|
|
pub struct VestingConfigs {
|
|
pub mut:
|
|
team VestingConfig
|
|
treasury VestingConfig
|
|
}
|
|
|
|
// SimulationConfig defines technical simulation parameters
|
|
pub struct SimulationConfig {
|
|
pub mut:
|
|
nrcol int = 60 // Number of months to simulate
|
|
currency string = 'USD'
|
|
}
|
|
|
|
// ScenarioConfig defines a single scenario with market conditions
|
|
pub struct ScenarioConfig {
|
|
pub mut:
|
|
name string
|
|
demands []f64
|
|
amm_trades []f64
|
|
}
|
|
|
|
// OutputConfig defines where and how to generate outputs
|
|
pub struct OutputConfig {
|
|
pub mut:
|
|
export_dir string = './output'
|
|
generate_csv bool = true
|
|
generate_charts bool = true
|
|
generate_report bool = true
|
|
}
|