Skip to content

Commit

Permalink
chore: fixing ci
Browse files Browse the repository at this point in the history
  • Loading branch information
AlbertoCentonze committed Mar 8, 2024
1 parent a5d9f9d commit 79ccd2f
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ 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.
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.

[TricryptoNGWETH](contracts/main/CurveTricddryptoOptimizedWETH.vy) is the first optimised implementation of the old 3-coin cryptoswap AMM which allowed native token transfers.
[TricryptoNGWETH](contracts/main/CurveTricddryptoOptimizedWETH.vy) is the first optimised implementation of the old 3-coin cryptoswap AMM which allowed native token transfers.

### From NG 1st gen to NG 2nd gen

Cryptoswap (like everything Curve has) is an ongoing process of improvement. It's immediate upgrade (almost a year or so after it's launch) removes some of the features and adds new ones. The features added in the second iteration of NG are simply features that come out of a natural progression of improving contracts after user feedback, experiences with speaking to auditors etc. There are no known vulnerabilities in the first NG implementation that prompted the second iteration of cryptoswap NG contracts.

Some of the features removed from the first gen (in the second gen) are (not exhaustive list):
Expand Down

0 comments on commit 79ccd2f

Please sign in to comment.