Releases: mento-protocol/mento-core
v2.5.0
v2.3.1
This release adds new proxy contracts for a few new stables and updates the proposal threshold for the governance creation.
What's Changed
- feat: add COP and KES proxy contracts by @bayological in #419
- feat: add cKES to fork-tests by @philbow61 in #428
- feat: add cINR proxy contract by @philbow61 in #432
- feat: add cPHP proxy contract by @philbow61 in #433
- feat: update proposal threshold by @baroooo in #431
Full Changelog: v2.3.0...v2.3.1
v2.3.0
What's Changed
This release focused on the Mento Governance system including the Mento Token, Aigrab and Governance system.
Audit details here: https://audits.sherlock.xyz/dashboard/404ec017225af69f6deff9b722393a44
- fix: outdated fork-tests after MU03 by @philbow61 in #264
- feat: Mento Token by @baroooo in #266
- Feat: Mint function for emission contract by @baroooo in #267
- Feat: Emission contract by @baroooo in #271
- Update fork tests to work with eXOF by @bowd in #278
- Feat/governance by @baroooo in #277
- Airgrab Contract by @bowd in #274
- chore: add auto getters to IStableTokenV2 by @philbow61 in #283
- Feat/ve mento locking contract by @baroooo in #281
- Governance factory by @baroooo in #284
- Split mento allocation by @baroooo in #286
- chore: update readme banner image by @bayological in #290
- docs: update dead link in readme by @sissnad in #294
- fix: update fork-tests after MU04 by @nvtaveras in #299
- fix: add null addresses checks in creditGasFees (#302) by @nvtaveras in #316
- Feat: Shift locking week by @baroooo in #320
- Fix: macro audit issues by @baroooo in #321
- Governance Factory Deployment via Deploy Libraries by @chapati23 in #318
- Governance integration tests by @baroooo in #330
- fix: function type minDeposit by @baroooo in #335
- feat: store airgrabEnds in factory by @baroooo in #338
- Feat/make initial allocation flexible by @philbow61 in #361
- Feat/remove mentolabs timelock by @baroooo in #363
- feat: Make emissions Upgradable by @bowd in #365
- fix: remove deprecated test by @bowd in #368
- feat: Improve how the initial allocation is forwarded. by @bowd in #367
- feat: make Token pausable by @bowd in #366
- feat: make ci ✅ with 💚 and 🥑s by @bowd in #371
- chore: fixed solhint warnings by @chapati23 in #374
- Update locking formula by @bowd in #375
- fix: period lte to max by @baroooo in #387
- Feat/add comments to locking contracts by @philbow61 in #376
- fix: fork tests by @baroooo in #390
- fix(GovernanceFactory): added missing assert on MentoGovernor deployment by @chapati23 in #391
- feat: remove migration code by @baroooo in #389
- fix: check for locker and delegate addresses by @baroooo in #392
- chore: fix path to sorted oracles by @baroooo in #394
- fix: hardcoded emission supply by @baroooo in #396
- feat: new kyc criteria by @baroooo in #404
- feat: update airdrop refund address to Mento Treasury by @philbow61 in #402
- fix: update airgrab duration by @nvtaveras in #414
- Merge fixes of contest findings by @baroooo in #413
- fix: update airgrab duration to 10 weeks by @nvtaveras in #418
New Contributors
- @sissnad made their first contribution in #294
- @chapati23 made their first contribution in #318
Full Changelog: v2.2.1...v2.3.0
v2.2.1
v2.2.0
What's Changed (summary)
- Extend circuit breaker functionality to support dependent rate feeds and improve how breakers are configured.
- Extended out Constant Sum pricing logic to support assets 1:1 swaps between assets different prices
- Prepared a streamlined StableToken implementation that removes a lot of bloat
- Additional fixes that came up during the audit
Full Changelog: v2.1.0...v2.2.0
v2.1.0
In this release, MentoLabs is introducing a bug fix that was identified during the initial mainnet testing of MU01. The bug is related to token precision handling in the BiPoolManager, caused by integrating tokens like USDC with 6 decimals, compared to cUSD's 18 decimals. The fix ensures internal buckets use a consistent 18 decimal precision by introducing precision multipliers for all tokens. This guarantees accurate vAMM bucket size management, regardless of a token's decimal count.
Implementing the fix involves a non-breaking change to the storage structure through the addition of a global mapping for token precision multipliers. The enhancement improves the Mento protocol's reliability and accommodates tokens with different decimals.
What's Changed
Full Changelog: v2.0.0...v2.1.0
v2.0.0
MentoLabs is excited to share details about the Mento v2.0.0 release. This release makes the protocol more modular and generalizes the asset swap mechanisms in order to allow trading between stable assets and any form of protocol collateral. Apart from functionality improvements it also focuses on safety improvements by introducing trading limits and the on-chain circuit breaker.
Summary
Changes to existing contracts:
- StableToken: Allow minting and burning by the “Broker” registered in the Celo Registry.
- SortedOracles: Integrate with the on-chain circuit breaker via the BreakerBox contract and push new medians in order to trigger the verification flow.
- Reserve: Add functionality to allow the reserve to hold any ERC20 token as collateral, not just the native Celo token (wrapped by the GoldToken.sol ERC20 contract).
New contracts:
- Broker: Orchestrates asset swaps in the Mento protocol. It has spending rights on the Reserve and mint/burn rights on the StableTokens. It does not, however, implement any AMM logic itself, but relies on exchangeProviders (contracts that implement the IExchangeProvider interface) to price exchanges. The Broker also enforces trading limits with the help of the TradingLimits library.
- BiPoolManager: Implements the IExchangeProvider interfaces and manages two-asset vAMM pools – a generalization of the Mento v1.0.0 Exchange. The pools must be between a Mento stable asset and, either another Mento Stable asset or a Mento Collateral Asset. The pools can use either a constant sum or a constant product market maker function via the pricing modules.
- ConstantSumPricingModule: a contract that implements the IPricingModule interface. It exposes pricing functions for a constant sum market maker.
- ConstantProductPricingModule: a contract that implements the IPricingModule interface. It exposes pricing functions for a constant product market maker.
- TradingLimits: The library is used by the Broker to keep track of and verify limits on asset net flow over time. It implements a structure and helper functions for two time-based limits and one global limit.
- BreakerBox: The control center of the on-chain circuit breaker. It keeps track of active breakers (contracts that implement the IBreaker interface) and executes the verification loop when SortedOracles pushes a new median for a rate feed. It is queried by the BiPoolManager to ensure that a rate feed is “live” when executing swaps.
- MedianDeltaBreaker: Implements the IBreaker interface. It breaks if the absolute difference between two medians is larger than a configured threshold.
- ValueDeltaBreaker: Implements the IBreaker interface. It breaks if the absolute difference between the median and a configured reference value is larger than a configured threshold.
Read the full announcement and this post on the forum for more details.
Major Changes
- feat: implementation of constant sum AMM pricing module by @philbow61 in #25
- feat(broker): make broker capable of minting by @philbow61 in #68
- feat(broker): trading limits by @bowd in #65
- feat(oracles): on-chain circuit breaker by @bowd in #71
- feat(breaker): make breakers configurable for specific ratefeeds by @ninocomputer in #83
- feat(breaker): ValueDeltaBreaker by @bowd in #86
- Feature/mcmint by @bowd in #91
New Contributors
- @bayological made their first contribution in #1
- @ninocomputer made their first contribution in #16
- @philbow61 made their first contribution in #25
- @bowd made their first contribution in #39
- @tobikuhlmann made their first contribution in #70
- @nvtaveras made their first contribution in #93
Full Changelog: #166
v1.0.0
This release marks the first implementation of the mento protocol and reflects what is currently deployed on mainnet. It's important to point out that this release doesn't introduce any new features to the protocol.
For more information please check out the documentation.