Skip to content

Releases: celo-org/celo-monorepo

Attestation Service 1.2.2

09 Jul 20:07
6ca8486
Compare
Choose a tag to compare

Release Notes

Fixes a filtering bug in Nexmo queries.

Commits included

  • 6ca848629957cac7bd882d0e361a29620b2e03a1

Attestation Service 1.2.1

25 Jun 00:12
ab46eec
Compare
Choose a tag to compare

Release Notes

Support a US toll-free number registration in Nexmo. Add new information to /status endpoint that helps correlate SMS Provider success rates.

Commits included

  • ab46eecf3b13793580cabac2bb80a425cb10f9e3
  • f632e799a97cbcf803683a1da87dc63c912f5e9a

Core Contracts Release 4

17 Jun 22:17
9e04953
Compare
Choose a tag to compare

Release Notes:

This is the fourth release of the Celo Core Contracts. It follows the release process per the docs.

Audits:

Certora Core Contracts Release 4 Audit
OpenZeppelin Core Contracts Release 4 Audit

Key updates in this release:

Release 4 addresses feedback the community has provided on the identity abstraction implemented in the core contracts. It also makes way for various throughput optimizations and improvements in light of recent network throttling as a result of new user influx.

  • Generalize the Account signer authorization abstraction as specified by CIP-0010 #5913

The Accounts contract houses a general account abstraction that currently serves several purposes including identity in the Proof-of-Stake system (validator, voter, and attestation signers) and storing profile information such as a Data Encryption Key for use with off-chain signed metadata. The authorization of signer keys is a useful method to authenticate the account owner for specific roles without requiring the most-privileged account key to come online. This change adds a generalized segmentation of domains for account authorizations, giving Celo stakeholders more flexibility in their custody setup.

  • Support EIP-1167 for gas optimization in user onboarding flows #7661

During periods of heavy onboarding traffic, we have observed the block gas limit being the limiting factor in the number of users we can onboard per block. This is primarily because we subsidize the costs of user onboarding and phone number verification through smart contract wallets, and subsequently need to deploy a new contract per user. This change employs "minimal" proxies to greatly reduce the gas costs of performing this onboarding subsidization and contract deployment.

  • Allow anyone to activate an account's pending Election votes on their behalf #7517

An account's pending votes must be activated after an epoch has passed. For end users, this is an unideal experience. This change allows a non-trusted account to activate pending votes on behalf of another account, eliminating the need for 2 transactions over the course of 2 epochs. The recipient validator group, for example, has a direct incentive to perform this activation.

  • Allow Governance proposal votes to be revoked during Referendum stage #7611

During recent governance activities, some users voted and were surprised that they could not unlock their CELO. This is to prevent voting on proposals that result in depreciation of CELO. Previously there was no option to revoke votes for an account so that locked CELO can be released. This change adds a revokeVotes method which revokes all Referendum votes for an account and allows them to begin the unlock period.

  • Update remaining token references from cGLD to CELO #7542

The Celo blockchain launched with the native token called "Celo Gold" (symbol "cGLD"), but to avoid confusion (since the token has nothing to do with physical gold), after a community proposal and vote (CGP 4), it was renamed to "Celo native asset" (ticker symbol CELO). This change updates the ERC-20 contract's name and symbol constants.

  • Implement attestation-based identity proxies for arbitrary external calls #7363

To support phone numbers (or other future identifiers) as a factor in account recovery, a contract needs to act as a proxy for any address considered verified. This change adds an IdentityProxy that can be used by the owner of an identifier to make arbitrary calls, determining ownership by the on-chain heuristic as defined in the Attestations contract. It also adds an IdentityProxyHub for deploying instances with CREATE2, delaying deployment until the proxy is needed during account recovery and avoiding additional throughput congestion during heavy onboarding traffic.

  • Add owner controlled guardian address and recovery to the MetaTransactionWallet #7364

The MetaTransactionWallet will have an owner settable guardian address. This address has the ability to change the wallet's signer. This feature is in support of account recovery features for user-facing wallets like Valora.

Specific Version Updates:

Core Contracts

Contract Name Old New
Accounts 1.1.1.1 1.1.2.0
Election 1.1.1.0 1.1.2.0
Governance 1.2.0.2 1.2.1.0
GoldToken 1.1.1.0 1.1.1.1
Reserve 1.1.2.0 1.1.2.1

User Contracts

Contract Name Old New
MetaTransactionWalletDeployer 1.1.0.0 1.1.0.1
MetaTransactionWallet 1.1.0.1 1.1.1.0

SDK/ContractKit 1.2.2

09 Jul 16:54
Compare
Choose a tag to compare

Commits included

This release was published on July 8th, 2021 and includes commits from 125f98da65f9b8161af524d183b7da70b96e2a07 to 9207df90be8c0ae3b377914156ce600eec08d32a inclusive.

Features

  • new package: JS keystore support #8096
  • Add euro in the currencies enum #7786
  • CIP10 contracts changes #5913
  • Use Node 12 #7851
  • Add token address support to oracle commands #8010
  • Add manual personal_decrypt flow to WalletConnect CLI client #8037
  • Account utilities for normalization and heuristic based correction of mnemonic phrases [#8034] (#8034)
  • Add getBlockHeader utilities to connect package #8213
  • Granda Mento smart contract implementation #8129

Bug Fixes

  • Fix governance:build-proposal bigNumber bug #8028
  • Remove ERC20 from core contracts #8212

Other Changes

  • celocli: transfer:erc20 and balance commands #7753
  • Tutorial: Integrating WalletConnect into your DApp #7802
  • chore: remove @umpirsky/country-list package to save space #7895
  • Add script for running + testing eth_signTypedData #7951
  • Bump walletConnect version #8012
  • Upgrade vulnerable dependencies #8073
  • Add more params to status endpoint #8125
  • Add check for phrase length in mnemonic phrase correction #8146
  • JS Keystore Docs (with updated file structure) #8185

SDK/ContractKit 1.2.0

22 Apr 21:24
c78ae09
Compare
Choose a tag to compare

Commits Included

This release was published on April 22nd, 2021 and includes commits till c78ae09 inclusive

Features

  • cEUR ContractKit support - #7257
  • CK works with StableTokens not yet deployed - #7524
  • Decode Governance.setConstitution proposals - #7415
  • Adds timeout functions to sdk/base package - #7617

Bug Fixes

Other Changes

  • Update @celo/utils to allow AccountAuthResponseSuccess to include pepper - #7546
  • Updated ledger blob to support cEUR - #7531
  • Bump web3 from 1.3.4 to 1.3.5 - #7684

CLI 1.2.0

22 Apr 21:27
125f98d
Compare
Choose a tag to compare

Commits included

This release was published on April 22nd, 2021 and includes commits till 125f98d inclusive

Features

  • cEUR support - #7524
  • Add more info to network:contracts - #7379
  • Approvehotfix to support multisigs - #7671

Other Changes

  • Add --globalHelp option to BaseCommand - #7669

SDK/ContractKit 1.1.0

23 Mar 18:35
Compare
Choose a tag to compare

Commits included

This release was published on March 22nd, 2021 and includes commits from 64e618b9b856073305dd5748fc04fc772ff72714 to 7e7a7913e1dbd4ce72ddc6384a054138c8ec32e8 inclusive.

Features

  • Implementation of a WalletConnect compatible wallet - #7122
  • Add dappkit-web functionality - #7328
  • Adds Reserve unfrozen balance methods - #7103
  • Merge branch 'release/celo-core-contracts/3' - #7183
  • Improve granularity of governance tooling information - #6475
  • Upload/Download Profile Data with CIP8 - #6604
  • CIP8 name access via the CLI - #6855
  • Allow DEK to be a CIP8 signer - #7467

Bug Fixes

  • Fixed references to goldToken in README - #7189
  • Update proposals.ts - #7275
  • Functions to invalidate the contracts cache - #7203
  • fix rewards:show - #7325
  • In getReserveGoldBalance, dont alias itself - #7334
  • Fix check for unregistered contracts - #7319
  • Fix no approval case for governance:approver information - #7478

Other Changes

  • Makes the grace period variable governable - #6987
  • added cleaning command to dappKit - #7205
  • Support Portuguese mnemonics - #7220
  • Remove wallet code from the monorepo - #7232
  • Small fixes in the proposal process for cEUR/Release 3 - #7184
  • Improve dappkit example in README - #7346
  • Add instructions for Eth recovery with celowallet.app in documentation - #7350
  • Fix packages vulnerabilities - #7476

CLI 1.1.0

18 Feb 05:40
faa411c
Compare
Choose a tag to compare

Commits included

This release was published on February 17th, 2021 and includes commits from 23b12644eda957ef87530845ff062e9f02358dd4 to f79c14fd5dfb96249cd28d4fcc6287a088eaacd5 inclusive.

Features

  • Add plugins to CLI - #5973
  • New CLI command identity:get-attestations to query attestations - #5974

Bug Fixes

  • releasegold:show should succeed w/o account registration - #7092
  • Add check for signer or registered account in releasegold:show - #7098

Other Changes

  • Clarify Docs for multisig:transfer - #6982

SDK/ContractKit 1.0.2

18 Feb 05:38
Compare
Choose a tag to compare

Commits included

This release was published on February 17th, 2021 and includes commits from 2f5b795a601375d41b67ca0afe47107f8448ff50 to ffcf304361ae18cd38d4bc45b635a9043bb55c7a inclusive.

Features

  • Show owner in releasegold:show - #6608
  • Metadata HTTPS Monitoring in identity:current-attestation-services - #6806
  • Determine signing algorithm based on key type for Azure HSM - #6010

Bug Fixes

  • Fix 8 digit codes for mainnet - #6663
  • Fix Azure HSM Wallet PublicKey to Address conversion - #6829
  • Shouldn't import from src folder in peer package - #7073
  • Fix wallets-test #7094

Other Changes

  • Small Docs Fixes related to CK1 release - #6576
  • Simplify SortedOracles API by allowing consumers to report to arbitrary Addresses - #6898
  • Updated DappKit README.md - #6957

Core Contracts Release 3

22 Jan 00:47
64e618b
Compare
Choose a tag to compare

Release Notes:

This is the third release of the Celo Core Contracts. It follows the release process per the docs.

Audit Report:

OpenZeppelin Core Contracts Release 3 Audit

Key updates in this release:

Release 3 generalizes the stability protocol for the launch of cEUR (and others coming soon!) and implements multiple CIPs in an effort to incorporate community feedback. More information about the Celo Euro launch can be obtained in CIP-33.

  • Update Reserve.sol with support for multiple exchanges to pull assets #6299:

For the upcoming launch of cEUR, the new exchange will need to spend CELO on behalf of the reserve for one side of CP-DOTO. A storage whitelist of exchange spenders was added while maintaining permission for the registered Exchange identifier to circumvent initializing new storage on the already initialized Reserve contract.

  • Add ExchangeEUR.sol and StableTokenEUR.sol to the core contracts #6572:

The stability implementation for cEUR is identical to cUSD, and the new contracts simply inherit the implementation from the existing Exchange.sol and StableToken.sol. These contracts will be registered under the ExchangeEUR and StableTokenEUR registry identifiers and versioned independently. The initialization parameters are also included here.

  • Permit registered exchange to expand/contract supply on StableToken.sol #6780

The new exchange also needs to be able to mint and burn cEUR on the new StableTokenEUR.sol. A storage registry identifier is used to give the stable token implementation knowledge of the corresponding exchange's address, and permit these sensitive operations.

  • Update BlockchainParameters.sol with CIP-21 implementation #4747:

A validator's rewards in each epoch are affected proportionally by the percentage of blocks they provide signatures for, incentivizing uptime. This change makes the number of consecutive blocks which must be missed before the validator is considered down a governable parameter that the blockchain client reads from. The Donut hard fork specified in CIP-27 necessitates this change.

  • Update Validators.sol with CIP-29 implementation #6287:

The validator uptime grace period was especially punitive and began punishing the validator group's future rewards after ~1 minute of continuous downtime. This change extends the grace period to ~10 minutes of continuous downtime to allow for routine maintenance and restarts.

Other changes:

  • Update Governance.sol with small fix to getProposalStage external view #6502

Specific Version Updates:

Core Contracts:

Registry Identifier Old New
Reserve 1.1.1.0 1.1.2.0
StableTokenEUR 1.1.0.0
ExchangeEUR 1.1.0.0
BlockchainParameters 1.1.0.0 1.2.0.0
Validators 1.1.1.0 1.2.0.0
Governance 1.2.0.1 1.2.0.2