IFA Oracle system architecture and data flow
relayer: primary_sources: - name: binance type: websocket priority: 1 rate_limit: 100/minute - name: coinbase type: rest priority: 2 rate_limit: 50/minute backup_sources: - name: coingecko type: rest priority: 3 - name: coinmarketcap type: rest priority: 4 validation: price_deviation_threshold: 2.5% minimum_sources: 3 twap_window: 5minutes transaction: max_batch_size: 10 retry_attempts: 3 gas_premium: 10% confirmation_blocks: 2 monitoring: heartbeat_interval: 30seconds alert_channels: - slack - email - pagerduty
Rate = (PriceA * 10^30) / PriceB
getAssetInfo()
getAssetsInfo()
getPairById()
getPairsbyIdForward()
Rate = Price(Asset A) / Price(Asset B)
// Get exchange rate uint256 rate = priceFeed.getPairById(assetA, assetB); // Get asset info AssetInfo memory info = priceFeed.getAssetInfo(assetId); // Batch operations AssetInfo[] memory assets = priceFeed.getAssetsInfo(assetIds);