|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## v1.1.0 (latest) |
| 3 | +## v2.0.0 (latest) |
| 4 | + |
| 5 | +Major release with breaking changes to the auction constructor, factory constructor, sweep authorization, and a number of interface renames. Adds supply rollover settlement math, a protocol fee controller, and new lens contracts for offchain reads. Integrators must redeploy and update integrations. |
| 6 | + |
| 7 | +### Changed |
| 8 | + |
| 9 | +- **Breaking:** Moved `ClaimBlockIsBeforeEndBlock`, `NotClaimable`, and `AuctionIsNotOver` errors out of `IContinuousClearingAuction` and into `IStepStorage`. Integrators importing these from the auction interface must update imports. ([#321](https://github.com/Uniswap/continuous-clearing-auction/pull/321)) |
| 10 | +- Added `CCALens` and `TickDataLens` periphery contracts for offchain reads of auction state and initialized tick data. Non-breaking addition. ([#325](https://github.com/Uniswap/continuous-clearing-auction/pull/325)) |
| 11 | +- **Breaking:** `sweepCurrency()` is now restricted to `FUNDS_RECIPIENT` and `sweepUnsoldTokens()` is now restricted to `TOKENS_RECIPIENT`. Adds new `NotAuthorized(address authorized, address caller)` error. Callers other than the configured recipients will revert. ([#329](https://github.com/Uniswap/continuous-clearing-auction/pull/329)) |
| 12 | +- **Breaking:** Reworked auction settlement to support supply rollover so that demand above the clearing price carries forward over the remaining schedule. Adds new getters `remainingSupplyQ96X7`, `remainingSupply`, `requiredDemandQ96`, and `requiredDemandQ96AtNextActiveTick`. Final clearing prices, per-block fills, and bid economics may differ from v1.x for the same inputs. ([#327](https://github.com/Uniswap/continuous-clearing-auction/pull/327)) |
| 13 | +- **Breaking:** Added optional custody tokens to `AuctionParameters` and changed `TokensReceived` event signature. ([#330](https://github.com/Uniswap/continuous-clearing-auction/pull/330)) |
| 14 | +- Removed obsolete DoS test. Non-breaking. ([#333](https://github.com/Uniswap/continuous-clearing-auction/pull/333)) |
| 15 | +- **Breaking:** Renamed `ITokenCurrencyStorage` to `IAuctionStorage` and moved `currencyRaised`, `currencyRaisedQ96X7`, `sumCurrencyDemandAboveClearingQ96`, `totalCleared`, `totalClearedQ96X7`, `remainingSupply`, and `remainingSupplyQ96X7` into that interface. Renamed `currencyRaisedQ96_X7` → `currencyRaisedQ96X7` and `totalClearedQ96_X7` → `totalClearedQ96X7`. ([#332](https://github.com/Uniswap/continuous-clearing-auction/pull/332)) |
| 16 | +- Fixed an edge case where the clearing price could be incorrectly advanced when rounding caused `remainingSupply` to reach zero before the schedule completed. New bids submitted with zero remaining supply now revert. ([#331](https://github.com/Uniswap/continuous-clearing-auction/pull/331)) |
| 17 | +- **Breaking:** Reverted the custody tokens feature from [#330](https://github.com/Uniswap/continuous-clearing-auction/pull/330). `AuctionParameters.custodyTokens` and the `custodyTokens()` getter are removed; `TokensReceived` event reverts to `(uint256 totalSupply)`. ([#335](https://github.com/Uniswap/continuous-clearing-auction/pull/335)) |
| 18 | +- **Breaking:** Tightened `MIN_FLOOR_PRICE` from `2^32` to `2^32 + 1` so that its Q96 reciprocal fits in a `uint160` for downstream LBP / v4 initialization math. Auctions configured with floor price exactly `2^32` are no longer accepted. ([#336](https://github.com/Uniswap/continuous-clearing-auction/pull/336)) |
| 19 | +- Internal refactor to call `CheckpointAccountingLib` helpers directly from `ContinuousClearingAuction`, removing thin wrappers from `CheckpointStorage`. Non-breaking. ([#338](https://github.com/Uniswap/continuous-clearing-auction/pull/338)) |
| 20 | +- **Breaking:** Added an owner-controlled `IProtocolFeeController` and threaded it through the factory and auction. `ContinuousClearingAuctionFactory` constructor now takes `address _protocolFeeController` and exposes a `protocolFeeController()` getter; `ContinuousClearingAuction` constructor takes an additional `address _protocolFeeController` argument. `sweepCurrency()` now transfers the protocol fee to the controller and sweeps `currencyRaised − protocolFee` to the funds recipient. `currencyRaised()` no longer subtracts protocol fees, and `lbpInitializationParams()` returns the post-fee `currencyRaised`. `ILBPInitializer` is now imported from the `liquidity-launcher` submodule rather than `src/interfaces/external`. ([#340](https://github.com/Uniswap/continuous-clearing-auction/pull/340)) |
| 21 | +- Updated `TickDataLens` to use the rollover-aware `requiredDemandQ96` helper so tick data reflects the remaining supply over the remaining issuance schedule. ([#334](https://github.com/Uniswap/continuous-clearing-auction/pull/334)) |
| 22 | +- **Breaking:** `lbpInitializationParams()` now reverts with `NotGraduated` if the auction did not graduate. Previously it returned stale values for unsuccessful auctions. ([#342](https://github.com/Uniswap/continuous-clearing-auction/pull/342)) |
| 23 | +- Expanded stateful invariant test coverage. Test-only, non-breaking. ([#337](https://github.com/Uniswap/continuous-clearing-auction/pull/337)) |
| 24 | + |
| 25 | +### Audits |
| 26 | + |
| 27 | +### Deployment addresses |
| 28 | + |
| 29 | +**ContinuousClearingAuctionFactory** |
| 30 | +| Network | Address | Commit Hash | Version | |
| 31 | +| -------- | ------------------------------------------ | ---------------------------------------- | ---------------- | |
| 32 | +| Mainnet | | | v2.0.0 | |
| 33 | +| Unichain | | | v2.0.0 | |
| 34 | +| Base | | | v2.0.0 | |
| 35 | +| Sepolia | | | v2.0.0 | |
| 36 | +| Unichain Sepolia | | | v2.0.0 | |
| 37 | + |
| 38 | +## v1.1.0 |
4 | 39 |
|
5 | 40 | Fully backwards compatible with Liquidity Launcher v1.0.0 deployments. Contains bug fixes, periphery contracts, and implements the new ILBPInitializer interface introduced in Liquidity Launcher v1.1.0. |
6 | 41 |
|
|
0 commit comments