Restricted and hardcoded tier upgrade path.
The upgradeTier function implements a rigid upgrade system where members can only move to the next immediate tier up. The target tier is automatically calculated by subtracting 1 from the current tier index (fromTierIndex - 1), removing any flexibility in the upgrade path.
Here is how the current implementation works:
Tier System Structure:
Lower index numbers represent higher tiers (e.g., Tier 0 is highest)
Tier 3 → Tier 2 → Tier 1 → Tier 0 (ascending value)
Token Operations:
// If member is in Tier 3 (fromTierIndex = 3)
burn(_msgSender(), 3, 2); // Burns 2 tokens from Tier 3
mint(_msgSender(), 2, 1); // Mints 1 token for Tier 2
Members cannot skip tiers (e.g., Tier 3 to Tier 1)
Forces sequential upgrades through all tiers
Increases transaction costs for members wanting higher tiers
Limits DAO flexibility in membership management
Manual review
Upgrade should be made flexible:
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.