This document lists features that are not yet implemented in the FlowALPv0 contract:
- ✅ Must Have - Critical features required for launch
- 💛 Should Have - Important features that significantly enhance the product
- 👌 Could Have - Desirable features that would improve the user experience
- ❌ Won't Have (this time) - Features planned for future releases
Features to Implement:
- Real Sink implementation for pushing tokens to yield strategies
- Real Source implementation for pulling tokens from yield strategies
- Basic rebalancing logic
Tests to Add (E-series):
E-1: Push to sink on surplus
- Provide StakeSink
- When health = 2.0, excess pushed to sink
- Verify reserves decrease
E-2: Pull from source on shortfall
- Provide DummySource with 10 FLOW
- Slash price so HF < 1
- Call rebalance()
- Verify source supplies FLOW, health >= 1
Features to Implement:
- Simple price oracle interface
- Manual price updates for testing
- Price staleness checks
Tests to Add:
- Oracle price updates
- Stale price handling
- Price manipulation protection
Features to Implement:
- Support for FLOW and USD as collateral
- Support for 2+ yield tokens
- Token whitelisting mechanism
- Per-token configuration
Tests to Add:
- Deposit multiple token types
- Borrow against multi-token collateral
- Token-specific thresholds
- Exchange rate updates
Features to Implement:
- YieldVault resource in user's account
- Position tracking and metadata
- IRR calculations
- Trade history export
Tests to Add:
- Create YieldVault resource
- Track position metrics
- Calculate returns
- Export trade data
Features to Implement:
- Periodic rebalancing based on price changes
- Accumulation of additional collateral
- Protocol scheduled callbacks (if available)
Tests to Add:
- Automatic rebalance triggers
- Collateral accumulation
- Rebalance frequency limits
Features to Implement:
- User whitelisting for beta
- Per-user collateral limits
- Configurable limits by admin
Tests to Add:
- Whitelist enforcement
- Deposit limits
- Limit updates
Features to Implement:
- Multiple oracle sources
- Oracle aggregation
- Non-FF operated oracles
Tests to Add:
- Multi-oracle aggregation
- Oracle failover
- Price consensus
Features to Implement:
- Replace SimpleInterestCurve with real curves
- Multiple interest curve models
- Dynamic rate adjustment
Tests to Add:
- Interest accrual over time
- Rate changes based on utilization
- Compound interest calculations
Features to Implement:
- Liquidator role/capability
- Liquidation function
- Liquidation incentives/penalties
Features to Implement:
- Flash loan interface
- Flash loan fees
- Reentrancy protection
Features to Implement:
- Governance capability/resource
- Hot-swappable components
- Parameter updates via governance
Features to Implement:
- Rate-limited deposit queue
- TPS throttling
- Queue processing scheduler
Features to Implement:
- Pause mechanism
- Emergency withdrawal
- Circuit breakers
- Immediate (Tracer Bullet): Focus on sink/source integration and basic oracle
- Next (Limited Beta): Multi-token support, YielVault resources, automated rebalancing
- Later (Open Beta): Production oracles, advanced interest curves
- Future: Liquidations, flash loans, governance
cadence/tests/
├── current/ # Existing tests
├── tracer_bullet/ # Tracer bullet phase
│ ├── sink_source_test.cdc # E-series tests
│ └── basic_oracle_test.cdc # Basic oracle tests
├── limited_beta/ # Limited beta phase
│ ├── multi_token_test.cdc # Multi-token tests
│ ├── yield_vault_resource_test.cdc # YieldVault resource tests
│ ├── rebalancing_test.cdc # Auto-rebalance tests
│ └── access_control_test.cdc # Access limit tests
├── open_beta/ # Open beta phase
│ ├── prod_oracle_test.cdc # Production oracle tests
│ └── interest_curves_test.cdc # Real interest tests
└── future/ # Future releases
├── liquidation_test.cdc # Liquidation tests
├── flash_loan_test.cdc # Flash loan tests
├── governance_test.cdc # Governance tests
├── deposit_queue_test.cdc # Queue tests
└── emergency_test.cdc # Emergency tests