Releases: OpenZeppelin/cairo-contracts
v0.5.0
What's Changed
- Fix: typos by @omahs in #492
- Fix CONTRIBUTING coding style by @andrew-fleming in #485
- Import utils funcs from Nile/remove funcs from utils.py by @andrew-fleming in #450
- Rename ReentrancyGuard methods by @martriay in #482
- Add deployer preset by @martriay in #467
- Removed syscall_ptr and pedersen_ptr from SafeUint256 functions by @msaug in #496
- Allow simulating calls in Account by @ericnordelo in #486
New Contributors
Full Changelog: v0.4.0...v0.5.0
v0.4.0b
Beta release with support for Cairo 0.10
What's Changed
- Update RELEASING.md by @martriay in #438
- Fix linter lack of package.json by @martriay in #448
- Run docs locally and add Deploy Previews through Netlify by @ericnordelo in #459
- Bump to cairo v0.10 by @andrew-fleming in #449
New Contributors
- @ericnordelo made their first contribution in #459
Full Changelog: v0.3.2...v0.4.0b
v0.4.0
What's Changed
- Update RELEASING.md by @martriay in #438
- Fix linter lack of package.json by @martriay in #448
- Run docs locally and add Deploy Previews through Netlify by @ericnordelo in #459
- Bump to cairo v0.10 by @andrew-fleming in #449
- Fix Wizard position in docs by @ericnordelo in #463
- Add integration steps to CONTRIBUTING.md by @ericnordelo in #476
- Fix
class_hash
redefinition error fromIAccount.__validate_declare__
by @unparalleled-js in #466 - Document new preset style/add ERC20Burnable to preset list by @andrew-fleming in #477
- Refactor tests for better coverage by @andrew-fleming in #473
- Proxy initialization atomicity by @ericnordelo in #443
- Update documentation to Cairo v0.10 by @andrew-fleming in #472
New Contributors
- @ericnordelo made their first contribution in #459
- @unparalleled-js made their first contribution in #466
Full Changelog: v0.3.2...v0.4.0
v0.3.2
What's Changed
- Create IAccessControl.cairo by @zoey-t in #408
- Ownable: split assertion checks in two statements by @achab in #422
- Fix docs for proxy view calls by @andrew-fleming in #423
- Add ERC20Burnable preset by @koloz193 in #252
New Contributors
Full Changelog: v0.3.1...v0.3.2
v0.3.1
This patch release mainly removes the unneeded dependency on nile(#419) thus preventing warning message when there's a version mismatch.
What's Changed
- Update documentation links to 0.3.0 by @pscott in #416
- Update pinned tox deps, remove nile from setup.cfg by @andrew-fleming in #419
- Fix docs example by @martriay in #428
- Fix account preset link in extensibility.adoc by @ivpavici in #431
- Automate docsite links bump by @andrew-fleming in #420
New Contributors
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Highlights
- new docsite: https://docs.openzeppelin.com/contracts-cairo
- revamped directory structure, and therefore import paths
- new utility to deploy accounts
What's Changed
- fix: remove unused imports by @ca11ab1e in #400
- Add AccessControl docs by @andrew-fleming in #368
- style: update SPDX license identifiers by @ca11ab1e in #399
- Update ownable check to validate zero address by @JulissaDantes in #398
- Refactor directory structure by @andrew-fleming in #350
- Bump Nile version to 0.7.1 by @EvolveArt in #381
- Fix setup.cfg version by @martriay in #406
- Integrate docsite by @martriay in #396
- Deploy account util by @andrew-fleming in #339
- Update docsite links to match new docsite by @martriay in #410
- Fix docs example by @martriay in #413
- Add script to update version by @andrew-fleming in #405
New Contributors
- @ca11ab1e made their first contribution in #400
- @EvolveArt made their first contribution in #381
Full Changelog: v0.2.1...v0.3.0
v0.8.0-beta.1
This beta release introduces the ERC20Votes
extension and preset along with some of its dependencies such as Votes
, Nonces
, Checkpoints
, EIP712
, StorageArray
, as well as introducing before/after hooks to ERC20
.
v0.8.0-beta.0
What's Changed
- Fix links in doc site by @ericnordelo in #776
- Migrate SRC5 to component by @ericnordelo in #767
- Migrate ReentrancyGuard to component by @andrew-fleming in #775
- Fix typos by @xiaolou86 in #784
- Migrate Ownable to component by @ericnordelo in #768
- Migrate Initializable to component by @andrew-fleming in #764
- Migrate Pausable to component by @andrew-fleming in #773
- Migrate AccessControl to component by @ericnordelo in #770
- Add mentions to our public roadmap by @martriay in #793
- Migrate Upgrades to component by @ericnordelo in #792
- Bump Scarb and Cairo to 2.3.0 by @ericnordelo in #797
New Contributors
- @xiaolou86 made their first contribution in #784
Full Changelog: v0.7.0...v0.8.0-beta.0
v0.7.0
This is the very first release of the OpenZeppelin Contracts for Cairo 1+, and the result of ~10 months of very hard work.
It’s been a long way, and now the end of the transition feels near. A new stage of maturity is ahead 🌺🚀.
Usage
Install the library as a scarb dependency:
[dependencies]
openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts.git", tag = "v0.7.0" }
It requires scarb 0.7.0 and supports Cairo 2.2.0.
What has changed?
Most things! This is a brand new library written in a new language with a new type system. It exposes a new API and usage model (no more extensibility pattern), which will be continually improved.
The feature set is pretty much the same as previous versions with few notable differences:
ERC1155
andUniversalDeployer
(UDC) are still in development- no
EthAccount
library (yet) - almost no presets like
ERC20Upgradeable
,ERC721Mintable
, etc. (yet) - upgrades are now based on the
replace_class
syscall- no
Proxy
module either (can’t be implemented in Cairo 1+)
- no
This library also:
- uses SRC5 instead of ERC165 for contract introspection
- follows the great interface migration plan implementing dual interfaces (snake and camel case ones), while also providing dual-case dispatchers to interface with contracts implementing either standard
- is distributed as a scarb package
What’s in it?
This release candidate includes a revamped docsite along with the following modules:
- Account
- Upgrades
- Introspection module (SRC5)
- Dual interface ABI dispatchers
- Tokens
- ERC20
- ERC721
- Access
- AccessControl
- Ownable
- Security
- Pausable
- Initializable
- Reentrancy guard
Acknowledgements
by @martriay
The main heroes of this story are @ericnordelo and @andrew-fleming. Over 10 months of relentless work, design, discussions, reviews back and forth, hitting the wall many times with the tooling, language, bugs, missing features. None of that stopped them. And here's the result, for the entire ecosystem to build and enjoy. Thank you.
Also thank you very much to our community of contributors, with special mention for recent contributions to @milancermak who contributed not only code but also ideas, @Amxx, @frangio, @maciektr and the scarb team, and @bal7hazar. This is thanks to you too.
v0.7.0-rc.0
This is the very first (pre) release of the OpenZeppelin Contracts for Cairo 1+, and the first official release in 7 months.
It’s been a long way, but now end of the transition feels near. A new stage of maturity is ahead 🌺🚀.
Warning
This release candidate is NOT storage-compatible with previous Contracts for Cairo versions (e.g.v0.6.1
), it is not safe to upgrade previously deployed contracts to this version. This is fixed in the actual release (v0.7.0
), where contracts are storage-compatible with previous versions likev0.6.1
.
Usage
Install the library as a scarb dependency:
[dependencies]
openzeppelin = { git = "https://github.com/OpenZeppelin/cairo-contracts.git", tag = "v0.7.0-rc.0" }
It requires scarb 0.7.0 and supports Cairo 2.2.0
What has changed?
Most things! This is a brand new library written in a new language with a new type system. It exposes a new API and usage model (no more extensibility pattern), which will be continually improved.
The feature set is pretty much the same as previous versions with few notable differences:
ERC1155
andUniversalDeployer
(UDC) are still in development- no
EthAccount
library (yet) - almost no presets like
ERC20Upgradeable
,ERC721Mintable
, etc. (yet) - upgrades are now based on the
replace_class
syscall- no
Proxy
module either (can’t be implemented in Cairo 1+)
- no
This library also:
- uses SRC5 instead of ERC165 for contract introspection
- follows the great interface migration plan implementing dual interfaces (snake and camel case ones), while also providing dual-case dispatchers to interface with contracts implementing either standard
- is distributed as a scarb package
What’s in it?
This release candidate includes the following modules:
- basic account
- upgrades
- introspection module (SRC5)
- dual interface ABI dispatchers
- tokens
- ERC20
- ERC721
- access
- AccessControl
- Ownable
- security
- Pausable
- Initializable
- Reentrancy guard