Files
herolib/lib/threefold/incatokens/params.v
2025-08-27 09:57:06 +02:00

83 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
}