Skip to content

Releases: adrastia-oracle/adrastia-core

v1.0.0-rc.9

08 May 00:52
78600d9
Compare
Choose a tag to compare
v1.0.0-rc.9 Pre-release
Pre-release

Interfaces

  • Change the spec of oracle consultations where using a max age of 0 will return data as of the latest block, straight from the source

Oracles

  • Improve price calculation precision of AggregatedOracle
  • Add PeriodicAccumulationOracle#canUpdate that returns false when one or both of the accumulators are uninitialized
  • Make PeriodicAccumulationOracle#update return true only if something was updated
  • Update AggregatedOracle and PeriodicAccumulation oracle to conform to the new oracle spec

Accumulators

  • Improve price calculation precision of UniswapV3PriceAccumulator
  • Add observation validation logs

v1.0.0-rc.8

29 Apr 00:54
668fb53
Compare
Choose a tag to compare
v1.0.0-rc.8 Pre-release
Pre-release

Interfaces

  • Add IUpdateable#lastUpdateTime and IUpdateable#timeSinceLastUpdate
  • Add IAccumulator to define common functions
  • Remove getLastObservation and getCurrentObservation from accumulators

Accumulators

  • Initialize accumulators when initializing instead of just the observation
  • Validate all observations instead of only the ones after the first update
  • Add AbstractAccumulator to define common logic and reduce redundancy
  • Add convenience functions: changeThresholdSurpassed(address token, uint256 changeThreshold) and updateThresholdSurpassed(address token)
  • Make consultations use stored observations by default, rather than returning data directly from the source
    • A maxAge of 0 allows for the consultation to return data directly from the source

Oracles

  • Make PeriodicAccumulationOracle only update observation timestamp and emit Updated when it has enough information to calculate a price

Libraries

  • Remove unused UniswapV2PriceAccumulator data structure

v1.0.0-rc.7

24 Apr 01:06
408296b
Compare
Choose a tag to compare
v1.0.0-rc.7 Pre-release
Pre-release

Accumulators

  • Add observation validation against externally provided data (MEV and flashbot attack protection)

v1.0.0-rc.6

23 Apr 01:17
fccec43
Compare
Choose a tag to compare
v1.0.0-rc.6 Pre-release
Pre-release

Interfaces

  • Make IUpdateByToken#update public
  • Rename IUpdateByToken to IUpdateable and replace address token with bytes memory data

Accumulators

  • Remove use of pending observations

v1.0.0-rc.5

14 Apr 21:33
a49701e
Compare
Choose a tag to compare
v1.0.0-rc.5 Pre-release
Pre-release

Global

  • Use uint112 for prices and liquidities
  • Change Updated events

Interfaces

  • Add function IUpdateByToken#canUpdate

Accumulators

  • Add observation validation mechanics to accumulators
  • Require in-range liquidity with UniswapV3LiquidityAccumulator
  • Add UniswapV2PriceAccumulator and UniswapV3PriceAccumulator
    • These use spot prices rather than Uniswap's own oracle mechanics
  • Make price accumulators report a price of 1 when it's in-fact 0
  • Make PriceAccumulator implement IPriceOracle
  • Make LiquidityAccumulator implement ILiquidityOracle

Oracles

  • Make AggregatedOracle more strict with the age of underlying oracles' consultations
  • Remove UniswapV2Oracle and UniswapV3Oracle

Libraries

  • Upgrade FullMath to use solc v0.8.11
  • Remove Uniswap library contracts other than FullMath

Utils

  • Add SimpleQuotationMetadata and ExplicitQuotationMetadata

v1.0.0-rc.4

23 Mar 21:08
a74b2a5
Compare
Choose a tag to compare
v1.0.0-rc.4 Pre-release
Pre-release
  • Make accumulator data public
  • Improve manipulation resistance of accumulators

v1.0.0-rc.3

17 Mar 22:37
13728dc
Compare
Choose a tag to compare
v1.0.0-rc.3 Pre-release
Pre-release
  • Fixes some function state modifiers (set to view)

v1.0.0-rc.2

17 Mar 21:31
09142a4
Compare
Choose a tag to compare
v1.0.0-rc.2 Pre-release
Pre-release
  • Implements ERC 165
  • Introduces IPeriodic, IHasPriceAccumulator, and IHasLiquidityAccumulator interfaces
  • More strict solc versioning

v1.0.0-rc.1

04 Mar 01:19
277234a
Compare
Choose a tag to compare
v1.0.0-rc.1 Pre-release
Pre-release

First release candidate for Pythia Core v1.0.0.

v0.0.2

04 Sep 23:27
b066fe4
Compare
Choose a tag to compare
v0.0.2 Pre-release
Pre-release

This experimental release provides most of the core components of the Pythia library. Since this release is still experimental, a lot of things have changed, and nothing is set in stone yet, an overview of the changes is provided.

Changes:

Upgrade the default compiler to solc 0.8.7.
Add liquidity accumulator
Use weighted harmonic mean instead of weighted arithmetic mean in the aggregated oracle
Add liquidity oracle using a liquidity accumulator
Add prettier support
Format code
Add error catching and logging in the aggregated oracle
Add maxAge parameter in IOracle#consult
Add IUpdateByToken interface