Chainlink Price Provider
Chainlink price provider
Methods
DEFAULT_ADMIN_ROLE
function DEFAULT_ADMIN_ROLE() external view returns (bytes32)
Returns
_0
bytes32
undefined
DESCRIPTION
function DESCRIPTION() external view returns (string)
Returns
_0
string
undefined
MODERATOR_ROLE
function MODERATOR_ROLE() external view returns (bytes32)
Returns
_0
bytes32
undefined
chainlinkMetadata
function chainlinkMetadata(address) external view returns (bool isActive)
Parameters
_0
address
undefined
Returns
isActive
bool
undefined
changeActive
function changeActive(address token, bool active) external nonpayable
Parameters
token
address
undefined
active
bool
undefined
getEvaluation
function getEvaluation(address token, uint256 tokenAmount) external view returns (uint256 evaluation)
returns the equivalent amount in USD
Parameters
token
address
the address of token
tokenAmount
uint256
the amount of token
Returns
evaluation
uint256
undefined
getEvaluationSigned
function getEvaluationSigned(address token, uint256 tokenAmount, uint256 priceMantissa, uint256 validTo, bytes signature) external view returns (uint256 evaluation)
return the evaluation in $ of tokenAmount
with signed price
Parameters
token
address
the address of token to get evaluation in $
tokenAmount
uint256
the amount of token to get evaluation. Amount is scaled by 10 in power token decimals
priceMantissa
uint256
the price multiplied by priceDecimals. The dimension of priceMantissa should be $/token
validTo
uint256
the timestamp in seconds, when price is gonna be not valid.
signature
bytes
the ECDSA sign on eliptic curve secp256k1.
Returns
evaluation
uint256
undefined
getPrice
function getPrice(address token) external view returns (uint256 priceMantissa, uint8 priceDecimals)
Returns the latest asset price mantissa and price decimals[price] = USD/token
First step is get priceMantissa with priceDecimals by this formula: price = 1 * 10 ** tokenDecimals * (chainlinkPrice_1 / 10 ** priceDecimals_1) * ... * (chainlinkPrice_n / 10 ** priceDecimals_n) = = 10 ** tokenDecimals (chainlinkPrice_1 * ... * chainlinkPrice_n) / 10 ** (priceDecimals_1 + ... + priceDecimals_n) Second step is scale priceMantissa to usdDecimals
Parameters
token
address
the token address
Returns
priceMantissa
uint256
undefined
priceDecimals
uint8
undefined
getPriceDecimals
function getPriceDecimals() external view returns (uint8)
Returns
_0
uint8
undefined
getPriceSigned
function getPriceSigned(address token, uint256 priceMantissa, uint256 validTo, bytes signature) external view returns (uint256 _priceMantissa, uint8 _priceDecimals)
Parameters
token
address
undefined
priceMantissa
uint256
undefined
validTo
uint256
undefined
signature
bytes
undefined
Returns
_priceMantissa
uint256
undefined
_priceDecimals
uint8
undefined
getRoleAdmin
function getRoleAdmin(bytes32 role) external view returns (bytes32)
Returns the admin role that controls role
. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.
Parameters
role
bytes32
undefined
Returns
_0
bytes32
undefined
grandModerator
function grandModerator(address newModerator) external nonpayable
Parameters
newModerator
address
undefined
grantRole
function grantRole(bytes32 role, address account) external nonpayable
Grants role
to account
. If account
had not been already granted role
, emits a {RoleGranted} event. Requirements: - the caller must have role
's admin role.
Parameters
role
bytes32
undefined
account
address
undefined
hasRole
function hasRole(bytes32 role, address account) external view returns (bool)
Returns true
if account
has been granted role
.
Parameters
role
bytes32
undefined
account
address
undefined
Returns
_0
bool
undefined
initialize
function initialize() external nonpayable
isActive
function isActive(address token) external view returns (bool)
Parameters
token
address
undefined
Returns
_0
bool
undefined
isListed
function isListed(address token) external view returns (bool)
Parameters
token
address
undefined
Returns
_0
bool
undefined
renounceRole
function renounceRole(bytes32 role, address account) external nonpayable
Revokes role
from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted role
, emits a {RoleRevoked} event. Requirements: - the caller must be account
.
Parameters
role
bytes32
undefined
account
address
undefined
revokeModerator
function revokeModerator(address moderator) external nonpayable
Parameters
moderator
address
undefined
revokeRole
function revokeRole(bytes32 role, address account) external nonpayable
Revokes role
from account
. If account
had been granted role
, emits a {RoleRevoked} event. Requirements: - the caller must have role
's admin role.
Parameters
role
bytes32
undefined
account
address
undefined
setTokenAndAggregator
function setTokenAndAggregator(address token, address[] aggregatorPath) external nonpayable
Parameters
token
address
undefined
aggregatorPath
address[]
undefined
supportsInterface
function supportsInterface(bytes4 interfaceId) external view returns (bool)
See {IERC165-supportsInterface}.
Parameters
interfaceId
bytes4
undefined
Returns
_0
bool
undefined
usdDecimals
function usdDecimals() external view returns (uint8)
Returns
_0
uint8
undefined
Events
ChangeActive
event ChangeActive(address indexed who, address indexed token, bool active)
Parameters
who indexed
address
undefined
token indexed
address
undefined
active
bool
undefined
GrandModeratorRole
event GrandModeratorRole(address indexed who, address indexed newModerator)
Parameters
who indexed
address
undefined
newModerator indexed
address
undefined
RevokeModeratorRole
event RevokeModeratorRole(address indexed who, address indexed moderator)
Parameters
who indexed
address
undefined
moderator indexed
address
undefined
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
Parameters
role indexed
bytes32
undefined
previousAdminRole indexed
bytes32
undefined
newAdminRole indexed
bytes32
undefined
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
Parameters
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Parameters
role indexed
bytes32
undefined
account indexed
address
undefined
sender indexed
address
undefined
SetTokenAndAggregator
event SetTokenAndAggregator(address indexed who, address indexed token, address[] aggeregatorPath)
Parameters
who indexed
address
undefined
token indexed
address
undefined
aggeregatorPath
address[]
undefined
Last updated