Adapters are smart contracts designed to implement oracle integration logic. Each adapter is dedicated to a specific oracle. Oracles can follow either a pull or push model, and their underlying abstract adapter contracts share the same interface.
The primary function of adapters is to assist the calculator contract in converting token amounts into USD values.
A base adapter contract. Implements a single internal function.
function _convertToUsdPrice(
uint256 _amount,
int256 _price,
uint8 _baseDecimals,
uint8 _quoteDecimals
) internal pure returns (uint256);
Converts a token amount to a USD value based on the provided price.
An abstract contract for pull model oracle adapters. Each pull adapter must implement convert and convertMultiple functions.
function convert(
address _token,
uint256 _amount,
bytes memory _payload
) external view virtual returns (uint256);
Converts token amount to USD value using the encoded payload.
function convertMultiple(
address[] memory _token,
uint256[] memory _amount,
bytes memory _payload
) external view virtual returns (uint256[] memory);
Same as *convert* but for multiple tokens.
An abstract contract for push model oracle adapters. Each pull adapter must implement convert and convertMultiple functions.
function convert(
address _token,
uint256 _amount
) external view virtual returns (uint256);
Should use the push oracle feeds to convert token amount to USD.
function convertMultiple(
address[] memory _tokens,
uint256[] memory _amounts
) external view virtual returns (uint256[] memory);
Same as *convert* but for multiple tokens.