Oracle Integration
Overview
Chainlink Oracle Manager
Architecture
contract ChainlinkOracleManager is AccessManagedUpgradeable, UUPSUpgradeable {
// Mapping from asset address to Chainlink aggregator
mapping(address => AggregatorV3Interface) public priceFeeds;
// Price validation parameters
uint256 public maxPriceDeviation = 500; // 5% max deviation
uint256 public stalenessTolerance = 3600; // 1 hour staleness tolerance
function getAssetPrice(address asset) external view returns (uint256);
}Supported Price Feeds
ETH/USD Feed
LINK/USD Feed
EURC/USD Feed
Price Feed Integration
Getting Asset Prices
Price Validation
1. Staleness Check
2. Positive Price Check
3. Round Consistency Check
4. Deviation Check (Optional)
Price Calculations
Collateral Value Calculation
Debt Value Calculation
Health Factor Calculation
Liquidation Price Calculations
Liquidation Threshold Prices
Multi-Asset Price Management
Batch Price Updates
Price Aggregation
Oracle Security Features
Circuit Breakers
Fallback Oracles
Time-Weighted Average Price (TWAP)
Oracle Administration
Adding New Price Feeds
Updating Oracle Parameters
Emergency Price Override
Error Handling
Oracle-Related Errors
Graceful Degradation
Gas Optimization
Efficient Price Queries
Batch Price Operations
Monitoring and Alerts
Price Deviation Monitoring
Oracle Health Monitoring
Last updated