Skip to content

Releases: mento-protocol/mento-core

v2.5.0

26 Aug 12:11
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.3.1...v2.5.0

v2.3.1

23 May 12:55
a3965ba
Compare
Choose a tag to compare

This release adds new proxy contracts for a few new stables and updates the proposal threshold for the governance creation.

What's Changed

Full Changelog: v2.3.0...v2.3.1

v2.3.0

23 May 12:54
9019856
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v2.2.1...v2.3.0

v2.2.1

07 Dec 16:27
0e467d1
Compare
Choose a tag to compare

What's Changed

  • A small fix on top of 2.2.0 to add a check for null fee recipient addresses when paying for gas using stable tokens. This fix has been audited by Macro. See the PR here for reference.

Full Changelog: v2.2.0...v2.2.1

v2.2.0

01 Sep 10:04
c2e344e
Compare
Choose a tag to compare

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

08 May 11:23
61dc4aa
Compare
Choose a tag to compare

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

  • fix: Take token precision into account in BiPoolManager by @bowd in #182

Full Changelog: v2.0.0...v2.1.0

v2.0.0

02 Mar 08:10
42b4fef
Compare
Choose a tag to compare

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

Full Changelog: #166

v1.0.0

28 Feb 15:36
7c36d60
Compare
Choose a tag to compare

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.