PriceProviderAggregator
Overview
License: MIT
The PriceProviderAggregator contract is the contract that provides the functionality of getting the latest price from different price providers.
Contract that provides the functionality of getting the latest price from different price providers.
Events info
SetTokenAndPriceProvider
Emitted when the price provider is set to a token.
Parameters:
Name | Type | Description |
---|---|---|
token | address | The address of the token whose price provider is set. |
priceProvider | address | The address of the price provider. |
SetPriceOracle
Emitted when the priceOracle is set.
Parameters:
Name | Type | Description |
---|---|---|
priceOracle | address | The address of priceOracle contract. |
SetPrimaryLendingPlatform
Emitted when the primary lending platform address is set.
Parameters:
Name | Type | Description |
---|---|---|
newPrimaryLendingPlatform | address | The new address of the primary lending platform. |
ChangeActive
Emitted when the active status of a token changes.
Parameters:
Name | Type | Description |
---|---|---|
token | address | The address of the token whose active status has changed. |
active | bool | The new active status of the token. |
Constants info
MODERATOR_ROLE (0x797669c9)
State variables info
priceOracle (0x2630c12f)
primaryLendingPlatform (0x92641a7c)
tokenPriceProvider (0xa33540f1)
Modifiers info
onlyModerator
Modifier to check if the caller has the MODERATOR_ROLE.
Functions info
initialize (0xc4d66de8)
This function should only be called once during contract deployment. Initializes the contract by setting up the access control roles and assigning the default and moderator roles to the contract deployer.
Parameters:
Name | Type | Description |
---|---|---|
newPriceOracle | address | The address of the new PriceOracle contract. |
setTokenAndPriceProvider (0x072f27b0)
Sets price provider to token
and its corresponding price provider.
Requirements:
The caller must be the moderator.
token
cannot be the zero address.priceProvider
cannot be the zero address.
Parameters:
Name | Type | Description |
---|---|---|
token | address | the address of token. |
priceProvider | address | the address of price provider. Should implement the interface of |
setPriceOracle (0x530e784f)
Sets new priceOracle contract. Requirements:
The caller must be the moderator.
newPriceOracle
cannot be the zero address.
Parameters:
Name | Type | Description |
---|---|---|
newPriceOracle | address | The address of new PriceOracle contract. |
setPrimaryLendingPlatform (0xe801734a)
Sets the address of the primary lending platform contract.
Parameters:
Name | Type | Description |
---|---|---|
plp | address | The address of the primary lending platform contract. |
Requirements:
plp
cannot be the zero address. |
changeActive (0x3651084e)
Allows the moderator to change the active status of a price provider for a specific token.
Requirements:
The caller must be the moderator.
The token's current price provider must match the provided price provider address.
Parameters:
Name | Type | Description |
---|---|---|
priceProvider | address | The address of the price provider to change the active status for. |
token | address | The address of the token to change the active status for. |
active | bool | The new active status to set for the price provider. |
updateMultiFinalPrices (0x1e5f85e6)
Calculates and update multiple the final TWAP prices of a token.
Parameters:
Name | Type | Description |
---|---|---|
token | address[] | The token array needs to update the price. |
getTokensUpdateFinalPrices (0xef290120)
This function is called when performing operations using token prices, to determine which tokens will need to update their final price.
Parameters:
Name | Type | Description |
---|---|---|
projectToken | address | Address of the project token. |
actualLendingToken | address | Address of the lending token. |
isBorrow | bool | Whether getting the list of tokens for updateFinalPrices is related to the borrowing operation or not. |
Return values:
Name | Type | Description |
---|---|---|
tokens | address[] | Array of tokens that need to update final price. |
getPrice (0x41976e09)
Returns the most recent TWAP price or non-TWAP price of a token.
Formula: price = priceMantissa / (10 ** priceDecimals)
Parameters:
Name | Type | Description |
---|---|---|
token | address | The address of the token. |
Return values:
Name | Type | Description |
---|---|---|
priceDecimals | uint8 | The decimals of the price. |
timestamp | uint64 | The last updated timestamp of the price. |
collateralPrice | uint256 | The collateral price of the token. |
capitalPrice | uint256 | The capital price of the token. |
getEvaluation (0x81fd01ea)
returns the most TWAP price or non-TWAP price in USD evaluation of token by its tokenAmount
Parameters:
Name | Type | Description |
---|---|---|
token | address | the address of token to evaluate |
tokenAmount | uint256 | the amount of token to evaluate |
Return values:
Name | Type | Description |
---|---|---|
collateralEvaluation | uint256 | the USD evaluation of token by its |
capitalEvaluation | uint256 | the USD evaluation of token by its |
getMostEvaluation (0x894b23cd)
returns the last stored TWAP price in USD evaluation of token by its tokenAmount
Parameters:
Name | Type | Description |
---|---|---|
token | address | the address of token to evaluate |
tokenAmount | uint256 | the amount of token to evaluate |
Return values:
Name | Type | Description |
---|---|---|
collateralEvaluation | uint256 | the USD evaluation of token by its |
capitalEvaluation | uint256 | the USD evaluation of token by its |
Last updated