All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
IPriceFeedDispatcher.decimals
back for backward compatible.
- Add
PriceFeedDispatcher.getPrice
for backward compatible.
- Refine natspec
- Rename
ChainlinkPriceFeedV3.getCachedTwap
toChainlinkPriceFeedV3.getPrice
. - Rename
ChainlinkPriceFeedV3.getCachedPrice
toChainlinkPriceFeedV3.getLatestOrCachedPrice
.
- Add
ChainlinkPriceFeedV3.getCachePrice
to fetch the latest valid price and updated timestamp. - Add
ChainlinkPriceFeedV3.getTimeout
to get timeout config of ChainlinkPriceFeedV3.
observations
extends to1800
atCumulativeTwap.sol
to support extreme circumstance.- To better enhance above performance, we introduce binary search mimicked from https://github.com/Uniswap/v3-core/blob/05c10bf/contracts/libraries/Oracle.sol#L153.
- Remove
CT_NEH
fromCumulativeTwap.sol
. Won't be calculated if so. Simply return latest price atCachedTwap.sol
. - Fix imprecise TWAP calculation when historical data is not enough at
CumulativeTwap.sol
. Won't be calculated if so.
- Fix cachedTwap won't be updated when latest updated timestamp not changed
- Add
ChainlinkPriceFeedV3.sol
with better error handling when Chainlink is broken. - Add
PriceFeedDispatcher.sol
, a proxy layer to fetch Chainlink or Uniswap's price. - Add
UniswapV3PriceFeed.sol
to fetch a market TWAP with a hard coded time period. - Update
CachedTwap.sol
andCumulativeTwap.sol
to better support above fallbackable oracle
- Add
ChainlinkPriceFeedV1R1
- Add
PriceFeedUpdater
- Add
ChainlinkPriceFeed.getRoundData()
- Fix
npm pack
- Add
ChainlinkPriceFeedV2
, which calculates the TWAP by cached TWAP - Add the origin
ChainlinkPriceFeed
back, which calculates the TWAP by round data instead of cached TWAP
- Add
cacheTwap(uint256)
toIPriceFeed.sol
andEmergencyPriceFeed.sol
- Remove
ICachedTwap.sol
- Refactor
ChainlinkPriceFeed
,BandPriceFeed
, andEmergencyPriceFeed
with efficient TWAP calculation. - Change the license to
GPL-3.0-or-later
.
- Using cumulative twap in Chainlink price feed
- Add
EmergencyPriceFeed
BandPriceFeed
will revert if price not updated yet
- Fix
BandPriceFeed
when the price feed haven't updated
- Add
BandPriceFeed