diff --git a/README.md b/README.md index 48dd257..0efb4f3 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ There are significant improvements from the genesis cryptoswap invariant AMM con 4. Use unsafe math operations wherever it is safe to do so. [Old implementation](https://github.com/curvefi/curve-crypto-contract/blob/d7d04cd9ae038970e40be850df99de8c1ff7241b/contracts/tricrypto/CurveCryptoMath3.vy#L96) -> [new implementation with explanation for why we can do unsafe maths](https://github.com/curvefi/tricrypto-ng/blob/33707fc8b84e08786acf184fcfdb744eb4657a99/contracts/main/CurveCryptoMathOptimized3.vy#L431) 5. Replace [newton_y](https://github.com/curvefi/curve-crypto-contract/blob/d7d04cd9ae038970e40be850df99de8c1ff7241b/contracts/tricrypto/CurveCryptoMath3.vy#L172) for [mathematically verified analytical solution with fallback to newton method for edge cases](https://github.com/curvefi/tricrypto-ng/blob/33707fc8b84e08786acf184fcfdb744eb4657a99/contracts/main/CurveCryptoMathOptimized3.vy#L35). 6. [Bespoke and very cheap calculation of partial derivatives of x w.r.t y, which allows the calculation of state prices](https://github.com/curvefi/tricrypto-ng/blob/33707fc8b84e08786acf184fcfdb744eb4657a99/contracts/main/CurveCryptoMathOptimized3.vy#L539). This was a contribution from Taynan Richards of ChainSecurity, which [replaced the old and initially proposed version](https://github.com/curvefi/tricrypto-ng/commit/b3350d4b7e92d4e12720584b2d1aeb1d74b5a99f). +7. Introduce [Blueprint contracts](https://eips.ethereum.org/EIPS/eip-5202). This allowed factory deployed contracts to have immutables, since blueprint contracts are not like minimal proxies where immutables are not possible whatsoever. The implementation of state prices allowed the creation of very good oracles that power today's curve stablecoin. State prices, as opposed to last traded prices which every other AMM or oracle uses, reduce the impact of price manipulation significantly.