Skip to content

Releases: OpenZeppelin/cairo-contracts

v0.3.1

09 Feb 03:36
8a9b681
Compare
Choose a tag to compare

This patch release mainly removes the unneeded dependency on nile(#419) thus preventing warning message when there's a version mismatch.

What's Changed

New Contributors

Full Changelog: v0.3.0...v0.3.1

v0.3.0

09 Feb 03:35
50bff11
Compare
Choose a tag to compare

Highlights

What's Changed

New Contributors

Full Changelog: v0.2.1...v0.3.0

v0.8.0-beta.1

09 Feb 03:36
d54ee74
Compare
Choose a tag to compare
v0.8.0-beta.1 Pre-release
Pre-release

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

09 Feb 03:36
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.7.0...v0.8.0-beta.0

v0.7.0

09 Feb 03:36
bb8c568
Compare
Choose a tag to compare

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 and UniversalDeployer (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

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

09 Feb 03:36
fbdd759
Compare
Choose a tag to compare
v0.7.0-rc.0 Pre-release
Pre-release

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 like v0.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 and UniversalDeployer (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

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

v0.2.1

13 Jul 16:39
19d0016
Compare
Choose a tag to compare

This release mainly fixes #386, which rendered account contracts unusable on live networks.

What's Changed

New Contributors

  • @0xSachinK made their first contribution in #380
  • @Wave-95 made their first contribution in #388

Full Changelog: v0.2.0...v0.2.1

v0.2.0

01 Jul 12:34
d3ee30b
Compare
Choose a tag to compare

What's Changed

Key points:

  • Improved Extensibility pattern, based on namespaces
  • New accounts (improved library + new EthAccount preset)
  • AccessControl and ReentrancyGuard libraries
  • Support for Cairo 0.9.0

Full changelog:

New Contributors

Full Changelog: 0.1.0...v0.2.0

First release 🎉

23 Mar 00:31
fd6630e
Compare
Choose a tag to compare
Fix event param in erc20 and erc721 (#226)

* fix _from param

* replace _from with from_

* update _from in docs