OpenZeppelin Contracts written in Cairo for Starknet, a decentralized ZK Rollup
_update
function (#978)signature
param in the public-key-setter functions (#989)signature
param in the public-key-setter functions (#990)Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.12.0...v0.13.0
tests::utils::drop_events
(count
-> n_events
) (#963)(r, s, y)
to (r, s)
(#940)Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.11.0...v0.12.0
Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.10.0...v0.11.0
InternalTrait::_set_base_uri
and InternalTrait::_base_uri
to handle ByteArrays (#857)ERC721_base_uri
Storage member to store the base URI (#857)unwrap
to unwrap_syscall
(#901)IERC20::name
and IERC20::symbol
return ByteArrays instead of felts (#857)IERC721::name
, IERC721::symbol
, and IERC721Metadata::token_uri
return ByteArrays instead of felts (#857)InternalTrait::initializer
accepts an additional base_uri
ByteArray parameter (#857)InternalTrait::_set_token_uri
because individual token URIs are no longer stored (#857)ERC721_token_uri
Storage member because individual token URIs are no longer stored (#857)unwrap
to unwrap_syscall
by @andrew-fleming in https://github.com/OpenZeppelin/cairo-contracts/pull/901
DEVELOPMENT.md
by @martriay in https://github.com/OpenZeppelin/cairo-contracts/pull/914
ByteArray
for strings by @andrew-fleming in https://github.com/OpenZeppelin/cairo-contracts/pull/857
pop_log
util by @andrew-fleming in https://github.com/OpenZeppelin/cairo-contracts/pull/893
Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.9.0...v0.10.0
Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.8.1...v0.9.0
ERC721ABI
and fix other abis by @andrew-fleming in https://github.com/OpenZeppelin/cairo-contracts/pull/761
release-v0.8.1
by @martriay in https://github.com/OpenZeppelin/cairo-contracts/pull/884
Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.8.0...v0.8.1
Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.7.0...v0.8.0
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
.
Full Changelog: https://github.com/OpenZeppelin/cairo-contracts/compare/v0.7.0...v0.8.0-beta.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 🌺🚀.
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.
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 developmentEthAccount
library (yet)ERC20Upgradeable
, ERC721Mintable
, etc. (yet)replace_class
syscall
Proxy
module either (can’t be implemented in Cairo 1+)This library also:
This release candidate includes a revamped docsite along with the following modules:
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.