Releases: ebtc-protocol/ebtc
Releases · ebtc-protocol/ebtc
Release 0.7
Release Candidate Changelog
Release 0.6 Changes
High Level Features
- Simplified priceFeed, with governance over primary oracle. Hybrid solution uses the existing PriceFeed mechanics (which combines dual chainlink feeds with validity state machine + potential backup oracle) as the primary oracle in the new design.
- Rounding issue scope verification and research project around potential rearchitectures
- Practically mitigated by enforcing a 1000 wei minimum debt, and 1000 wei minimum change of debt. There is also a 1000 wei minimum change of collShares on user operations.
- New TWAP on totalDebt to prevent spot manipulation of totalDebt via flashloan to reduce redemption fee scaling.
- Governance work on timelock and configuration of highsec / lowsec timelocks.
PRs
- #720 Mid-contest fix for Certora prover
- #737 Introduce simplified "brainead" oracle
- #727 Fixes for Leverage macro, now used as a basis for Zaps
- #721 Forge coverage doesn't work with multiple complier versions, resolved so we can use it
- #730 Track the source CDP for each collSurplus as well as independenly account for collateralShares and liquidatorRewardShares
- #725 Reinsert partially redeemed CDP after all fully redeemed CDPs are removed
- #742 Implement more view functions on Governance
- #741 Allow flashLoans to be called in TargetFunctions (oversight), and clamps partialRedemption parameters to create more valid runs.
- #739 Made test Collateral function exactly like stETH
- #723 Braindead Oracle primary PR with Echidna Tester
- #747 Enforce minimum 100 wei debt, and 1000 wei changes for debt, along with required test modifications.
- #722 Add timelocks and lowsec / highsec governance configuration
- #736 Minimum viable TWAP - track totalDebt value over time to prevent spot manipulation of totalDebt via FL to reduce redemption fee at scale
- #744 Rename braindeadFeed to eBTC feed
Release 0.7 Changes
High Level Changes
- CdpId's array was removed as it's sole purpose was to allow random access on-chain into list which was deemed not worth of storage.
- Combined with switching liquidatorRewardShares to a uint128, it frees up a storage slot write on Cdp opens which is meaningful optimisation at low risk.
- A new chainlink adapter combines the ETH/USD and BTC/USD feeds to get the ETH/BTC price, rather than using that feed directly.
- The stETH:ETH rate is now read as a fixed 1:1 by default, rather than the market rate. There is a governance ability to switch the feed to the market rate oracle.
PRs
- #760 removes CdpId's array for random access into list to free up storage space
- #759 lastGoodPrice is no longer stored on priceFeed contract, just on EbtcFeed
- #761 prevents authority address from being changed on all system contracts except governor.
- #762 cap liquidator reward shares at uin128 to free up one storage slot (when combined with removal of CdpIds array)
- #763 Chainlink adapter to combine ETH/USD and BTC/USD feeds to ETH/BTC
- #767 some governance changes, see PR
- #777 More precise properties around debt and collateral rounding behavior
- #779 TWAP emergency switch in case of revert
- #780 Fix sequenceLiqToBatchLiq inequality to test recovery mode
Release 0.5
C4 Contest Release
Spearbit Fixed
- eBTCToken safemath removal
- Audit files scope fixed
Spearbit
Spearbit audit
v0.1.0
Feature-complete, first audit target