Rate Providers
The rate providers module exposes logic for retrieving or computing the value of vault tokens or underlying assets. This is often required for integrations with strategies, reward calculations, oracles, and accounting systems.
Each provider follows a consistent interface and can be asset-specific, with isolated logic per supported token.
Components
1. Base Provider Logic
RateProvider.sol
defines core functionality shared across all implementations.Includes methods to retrieve the current rate, normalize decimals, and interface with upstream pricing sources.
2. Interfaces
IRateProvider.sol
: Generic interface for fetching the rate of a vault or token.IInceptionVault.sol
: Interface for reading data from vault contracts (used by providers).
3. Per-Asset Implementations
Located under
contracts/lst-providers/
Each folder (e.g.,
inankrETH
,inETHx
, etc.) includes:A concrete implementation of a rate provider for that asset.
These often wrap external data sources or perform internal calculations.
Example:
function getRate() external view override returns (uint256);
Flow
A vault or strategy contract queries a
RateProvider
contract.The provider retrieves or computes a normalized rate.
This rate is used for accounting, reward calculation, or integration purposes.
Contract Summary
Contract
Role
RateProvider.sol
Base logic for rate computation
IRateProvider.sol
Interface for all rate providers
InETHxRateProvider.sol
, inankrETHRateProvider.sol
, etc.
Asset-specific rate retrieval logic
Notes
All implementations conform to the same interface for compatibility.
Rate calculation logic may differ depending on the underlying protocol used by the asset (e.g., Lido, Ankr).
Testing and deployment are handled via Hardhat.
Last updated