ChainlinkCalculator
A helper contract for interactions with https://docs.chain.link
Functions#
singlePrice#
function singlePrice( contract AggregatorV3Interface oracle, uint256 inverseAndSpread, uint256 amount) external returns (uint256)Calculates price of token relative to oracle unit (ETH or USD)
Parameters:#
| Name | Type | Description |
|---|---|---|
oracle | contract AggregatorV3Interface | concatenated inverse flag and spread. Lowest 254 bits specify spread amount. Spread is scaled by 1e9, i.e. 101% = 1.01e9, 99% = 0.99e9. Highest bit is set when oracle price should be inverted, e.g. for DAI-ETH oracle, inverse=false means that we request DAI price in ETH and inverse=true means that we request ETH price in DAI |
inverseAndSpread | uint256 | |
amount | uint256 |
Return Values:#
| Name | Type | Description |
|---|---|---|
Amount | uint256 | spread oracle price |
doublePrice#
function doublePrice( contract AggregatorV3Interface oracle1, contract AggregatorV3Interface oracle2, uint256 spread, int256 decimalsScale, uint256 amount) external returns (uint256)Calculates price of token A relative to token B. Note that order is important
Parameters:#
| Name | Type | Description |
|---|---|---|
oracle1 | contract AggregatorV3Interface | |
oracle2 | contract AggregatorV3Interface | |
spread | uint256 | |
decimalsScale | int256 | |
amount | uint256 |
Return Values:#
| Name | Type | Description |
|---|---|---|
Result | uint256 | Token A relative price times amount |