v0.7.0-rc.0
Pre-releaseThis 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