celo-monorepo

Official repository for core projects comprising the Celo platform

APACHE-2.0 License

Downloads
16.6K
Stars
679
Committers
195

Bot releases are hidden (Show)

celo-monorepo - Core Contracts Release 6

Published by m-chrzan over 2 years ago

Release Notes:

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

Audits:

OpenZeppelin Core Contracts Release 6 Audit (to be published soon)

Key updates in this release:

Release 6 allows wallet and other application developers easier access to off-chain storage, fixes a small bug in the LockedGold contract, and cleans up an unnecessary function in Solidity libraries.

  • Provide direct access to CIP8 storage URLs onchain, bypassing CIP3 (#8360)

CIP8 was originally defined on top of CIP3. This meant that two network hops were necessary to access the CIP8 storage URL (first request the CIP3 URL from the Celo blockchain, then look up the CIP3 data, including the CIP8 URL, over HTTP based on that URL). Modifying the CIP8 URL also meant modifying and reuploading the entire CIP3 file. PR 8360 adds direct access to multiple CIP8 URLs in the Accounts smart contract, making it easier to access and modify these endpoints.

  • Require that slashing reporters are accounts, to ensure reporter can receive locked CELO (#8854)

Slashing rewards are denominated in locked CELO (managed by the LockedGold smart contract). Locked CELO can only be managed by accounts on the Accounts smart contract. Previously there was no check ensuring that a slashing reporter had an account, thus the locked CELO credited as a reporter reward could have ended up indefinitely unusable.

  • Remove unneccesary getVersionNumber() function declaration in contract libraries (#8349).

Core Celo contracts implement a getVersionNumber() function, as per the Celo Smart Contracts release process. This function should only be implemented on concrete, non-library smart contracts deployed on-chain, but was previously also implemented on several library contracts. The unnecessary function was removed from these libraries, forcing PATCH version increases on several contracts:

  • Accounts
  • Election
  • Governance
  • LockedGold
  • Attestations
  • Escrow
  • SortedOracles
  • Validators

Specific Version Updates:

Core Contracts

Contract Name Old New
Accounts 1.1.2.0 1.1.3.0
Attestations 1.1.1.1 1.1.1.2
Election 1.1.2.0 1.1.2.1
Escrow 1.1.1.1 1.1.1.2
Governance 1.2.1.0 1.2.1.1
LockedGold 1.1.1.1 1.1.1.2
SortedOracles 1.1.2.0 1.1.2.1
Validators 1.2.0.1 1.2.0.2
celo-monorepo - Attestation Service 1.5.0

Published by eelanagaraj almost 3 years ago

Release Notes

This is a backwards-compatible release that includes the following features/fixes:

  • feature: configure Twilio Verify or Messaging by country
  • bugfix: signature parsing error for EIP712TypedData
  • bugfix: make ongoingDeliveryId index non-unique to fix rare bug with Verify API
    • see this PR for more details
    • note: though this will change the structure of database, this is not a breaking change. If downgrading from Attestation Service v1.5.0 to 1.4.0-, this can in rare cases cause a one-time dip in automatic resends for in-progress attestations.

Relevant Commits included

  • 7d47b0b5fa3b80165091d1e0c1732503cc83b618
  • de7d9a9c071cd20d86b164ae1da0b1d8f15d8b4e
  • cf48bd7dd467fc86196ea302c50683207be04329
celo-monorepo - Attestation Service 1.4.0

Published by eelanagaraj about 3 years ago

Release Notes

This is a backwards-compatible release that includes the following features/fixes:

Relevant Commits included

  • e9cc99923c75bcff14310c6fa2269483dcd283fd
  • ef0a683f708455b5fe2a120c929feb3ed4d32b95
celo-monorepo - Core Contracts Release 5

Published by yorhodes about 3 years ago

Release Notes:

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

Audits:

OpenZeppelin Core Contracts Release 5 Audit

Key updates in this release:

Release 5 addresses a community demand for large volume exchanges which aren't suited for Mento or OTC. It also fixes a small bug in the Validators contract which only has implications for newborn networks (discovered on our private testnets) and adds an additional registry utility for contract developer usage.

  • Granda Mento smart contract implementation #8129

Granda Mento is a mechanism to facilitate large CELO <-> stable token (e.g. cXXX) exchanges that aren't suitable via Mento or OTC. GrandaMento is a new contract that can exchange CELO <-> stable token for any stable token Governance explicitly enables. Exchanges via this contract must be approved by a multisig and can be vetoed by the Governance contract. For more detailed information, please reference CIP-0038.

  • Make updateMembershipHistory in Validators.sol correct if epoch number is 0 #8060

This change fixes a bug in the Validators contract that has not appeared in a production environment. It is motivated by cLabs usage of mycelo testnets that apply migration results as part of genesis generation. A validator's membership history is currently not updated when there is are no history entries (ie when epoch == 0).

  • UsingRegistryV2 contract with static registry address #7837

This new contract is an alternative to UsingRegistry that contains no storage variables for more lightweight inheritance.

Specific Version Updates:

Core Contracts

Contract Name Old New
GrandaMento - 1.1.0.0
StableToken 1.2.0.0 1.2.0.1
StableTokenEUR 1.1.0.0 1.1.0.1
Validators 1.2.0.0 1.2.0.1
celo-monorepo - Attestation Service 1.3.0

Published by codyborn over 3 years ago

Release Notes

Commits included

  • 77a392216d4927e85ce4b683508fc0539aa92a34
celo-monorepo - Attestation Service 1.2.2

Published by codyborn over 3 years ago

Release Notes

Fixes a filtering bug in Nexmo queries.

Commits included

  • 6ca848629957cac7bd882d0e361a29620b2e03a1
celo-monorepo - SDK/ContractKit 1.2.2

Published by medhakothari over 3 years ago

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] (https://github.com/celo-org/celo-monorepo/pull/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
celo-monorepo - Attestation Service 1.2.1

Published by codyborn over 3 years ago

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
celo-monorepo - Core Contracts Release 4

Published by yorhodes over 3 years ago

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
celo-monorepo - CLI 1.2.0

Published by gastonponti over 3 years ago

Commits included

This release was published on April 22nd, 2021 and includes commits till 125f98da65f9b8161af524d183b7da70b96e2a07 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
celo-monorepo - SDK/ContractKit 1.2.0

Published by gastonponti over 3 years ago

Commits Included

This release was published on April 22nd, 2021 and includes commits till c78ae096d114d88107cc206afcc5150d0f5b6671 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
celo-monorepo - SDK/ContractKit 1.1.0

Published by medhakothari over 3 years ago

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
celo-monorepo - CLI 1.1.0

Published by medhakothari over 3 years ago

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
celo-monorepo - SDK/ContractKit 1.0.2

Published by medhakothari over 3 years ago

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
celo-monorepo - Valora 1.10.1

Published by isabellewei over 3 years ago

Summary

Relative to the 1.9.2 release, the 1.10.0 release allows users to upload profile pictures for their account, features an improved Consumer Incentives experience and the ability to request a daily withdrawal limit increase by contacting cLabs Support. It also addresses various minor bugs.

Commits included

This release was cut from master on February 4, 2021 from https://github.com/celo-org/celo-monorepo/commit/4ff47418e1b0b757ad2c8bf6408db8f7cc6b776c, with some additional translation strings added. See release branch: https://github.com/celo-org/celo-monorepo/tree/release/wallet/1.10.1

Features

#6501 Update radio button designs
#6216 Batch feeless verification transactions
#6488 Enable Flipper on iOS for debugging
#5970 Upload profile pictures
#6835 Allow updating daily limit from backend
#6848 Redesign Consumer Incentives screen

Bug fixes

#6786 Fix verification status
#6819 Disable keyboard suggestion when entering the account key
#6853 Fix Bidali view when number is not specified

Security

N/A

Testing

  • Full QA process through Lodestone
celo-monorepo - CLI 1.0.3

Published by medhakothari almost 4 years ago

Commits included

This release was published on January 25th, 2021 and includes commits from 2f5b795a601375d41b67ca0afe47107f8448ff50 to c8f675fb143862a00df2bbe9a8271abba0fd5f64 inclusive.

Bug Fixes

  • Add missing lib in the shrinkwrap.json that avoids the usage of the package - #6671
celo-monorepo - Valora 1.9.0

Published by gnardini almost 4 years ago

Summary

Valora version 1.9 includes new ways to buy and spend cUSD, featuring cash in cUSD support with MoonPay and cash out with gift cards using Bidali. This release also features improvements to the CELO rewards program and addresses various minor display and navigation bugs.

Commits included

This release was cut from master on January 22nd, 2021 from https://github.com/celo-org/celo-monorepo/commit/76eca55e69595a23f4893dd36fe01947e9d4ff7a and contains additional cherry-picked commits. See release branch: https://github.com/celo-org/celo-monorepo/tree/release/wallet/1.9.2

Features

#6458 Retry Firebase connection upon failure
#6493 Add dynamic download link to Valora invite texts
#6510 Add Bidali integration
#6512 Support remote images for Firebase controlled notifications
#6520 Allow deep linking into any screen from notifications
#6499 Add Moonpay cUSD cash in
#6546 Remote notification targeting specific app versions and countries
#6522 Add native screen for Consumer Incentives

Bug fixes

#6478 Ask PIN immediately on BackupForceScreen
#6479 Fix phone number search on Send Screen
#6338 Fix sporadic payment request hang
#6530 UI fix for Expandable component
#6506 Add loading indicator to WebViewScreen

Security

N/A

Testing

  • Full QA process through Lodestone
celo-monorepo - Valora 1.8.0

Published by tarikbellamine almost 4 years ago

Summary

Relative to the 1.7.2 release, this update includes support for the upcoming CELO rewards program, Portuguese language support, and an improved Account Key import experience. It also addresses various minor display and navigation bugs.

Commits included

This release was cut from master on January 11, 2020 from https://github.com/celo-org/celo-monorepo/commit/a08a4e5179745cf824b6d8410a272b8263d0a386 and contains additional cherry-picked commits. See release branch: https://github.com/celo-org/celo-monorepo/tree/release/wallet/1.8.0

Features

#5945 Add Portuguese support
#6380 Use known names on CELO feed
#6388 Add TransactionReview screen for CELO rewards
#6391 Add dynamic notification to tray from Firebase
#6399 Add deep links for CashIn Screen
#6405 Allow opening WebView or external browser from push notification
#6372 Mnemonic validation flexibility within Valora

Bug fixes

#6347 Show phone number on SendConfirmation Screen when contact display name is not available
#6407 Ask pincode when opening Account Key screen from notification
#6417 Add host of URI as title to WebViewScreen and fix deep links
#6350 Show the international format when displaying phone numbers in Valora

Security

N/A

Testing

  • Full QA process through Lodestone
celo-monorepo - CLI 1.0.2

Published by medhakothari almost 4 years ago

Commits included

This release was published on January 22nd, 2021 and includes commits from 23b12644eda957ef87530845ff062e9f02358dd4 to f5241e11f158675b8f5cbce2feb2ac85cbb58d18 inclusive.

Bug Fixes

  • Fixed Global Flag Parsing in CLI - #6619

Other Changes

  • Add prepublish hook to generate the npm-shrinkwrap - #6575
celo-monorepo - Core Contracts Release 3

Published by yorhodes almost 4 years ago

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