Skip to content

Commit f1c15a3

Browse files
authored
Release 2.0.0 (#1455)
* feat: update Changelog * Bump version to 2.0.0 and update presets page * feat: add audit report --------- Co-authored-by: ericnordelo <[email protected]>
1 parent 800ea46 commit f1c15a3

File tree

117 files changed

+287
-258
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+287
-258
lines changed

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,34 @@ All notable changes to this project will be documented in this file.
77
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
88
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

10+
## 2.0.0 (2025-06-18)
11+
12+
### Added
13+
14+
- ERC4626Component (#1170)
15+
- The openzeppelin_macros package with the `with_components` macro (#1282)
16+
- Support for granting a role with delay in AccessControl component (#1317)
17+
- The `type_hash` macro (#1399)
18+
- Enable Governor modules in the `with_components` macro (#1414)
19+
- `Math::u256_mul_div` (#1170)
20+
21+
### Changed
22+
23+
- Bump scarb to v2.11.4 (#1373)
24+
25+
### Changed (Breaking)
26+
27+
- Add SRC-107 to ERC20Component (#1294)
28+
- `decimals` are now configurable using the ImmutableConfig trait
29+
- Update UDC interface and preset for backward compatibility with v1 (#1371)
30+
- Change `from_zero` argument to `not_from_zero` in both the interface and the
31+
ContractDeployed event
32+
- Add `deployContract` function to the preset
33+
- Update salt hashing algorithm from Poseidon to Pedersen
34+
- Update ISRC6 interface to match latest changes reflected in the SNIP (#1383)
35+
- `__execute__` entry point now doesn't return any value
36+
- Account and EthAccount components SRC6 implementation updated accordingly
37+
1038
## 2.0.0-alpha.1 (2025-04-26)
1139

1240
### Added

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ Edit `scarb.toml` and add:
3737

3838
```toml
3939
[dependencies]
40-
openzeppelin = "2.0.0-alpha.1"
40+
openzeppelin = "2.0.0"
4141
```
4242

4343
The previous example would import the entire library. We can also add each package as a separate dependency to improve the building time by not including modules that won't be used:
4444

4545
```toml
4646
[dependencies]
47-
openzeppelin_token = "2.0.0-alpha.1"
47+
openzeppelin_token = "2.0.0"
4848
```
4949

5050
Build the project to download it:

Scarb.lock

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version = 1
33

44
[[package]]
55
name = "openzeppelin"
6-
version = "2.0.0-alpha.1"
6+
version = "2.0.0"
77
dependencies = [
88
"openzeppelin_access",
99
"openzeppelin_account",
@@ -23,7 +23,7 @@ dependencies = [
2323

2424
[[package]]
2525
name = "openzeppelin_access"
26-
version = "2.0.0-alpha.1"
26+
version = "2.0.0"
2727
dependencies = [
2828
"openzeppelin_introspection",
2929
"openzeppelin_test_common",
@@ -33,7 +33,7 @@ dependencies = [
3333

3434
[[package]]
3535
name = "openzeppelin_account"
36-
version = "2.0.0-alpha.1"
36+
version = "2.0.0"
3737
dependencies = [
3838
"openzeppelin_introspection",
3939
"openzeppelin_test_common",
@@ -44,7 +44,7 @@ dependencies = [
4444

4545
[[package]]
4646
name = "openzeppelin_finance"
47-
version = "2.0.0-alpha.1"
47+
version = "2.0.0"
4848
dependencies = [
4949
"openzeppelin_access",
5050
"openzeppelin_test_common",
@@ -56,7 +56,7 @@ dependencies = [
5656

5757
[[package]]
5858
name = "openzeppelin_governance"
59-
version = "2.0.0-alpha.1"
59+
version = "2.0.0"
6060
dependencies = [
6161
"openzeppelin_access",
6262
"openzeppelin_account",
@@ -70,27 +70,27 @@ dependencies = [
7070

7171
[[package]]
7272
name = "openzeppelin_introspection"
73-
version = "2.0.0-alpha.1"
73+
version = "2.0.0"
7474
dependencies = [
7575
"openzeppelin_test_common",
7676
"snforge_std",
7777
]
7878

7979
[[package]]
8080
name = "openzeppelin_macros"
81-
version = "2.0.0-alpha.1"
81+
version = "2.0.0"
8282

8383
[[package]]
8484
name = "openzeppelin_merkle_tree"
85-
version = "2.0.0-alpha.1"
85+
version = "2.0.0"
8686
dependencies = [
8787
"openzeppelin_testing",
8888
"snforge_std",
8989
]
9090

9191
[[package]]
9292
name = "openzeppelin_presets"
93-
version = "2.0.0-alpha.1"
93+
version = "2.0.0"
9494
dependencies = [
9595
"openzeppelin_access",
9696
"openzeppelin_account",
@@ -106,7 +106,7 @@ dependencies = [
106106

107107
[[package]]
108108
name = "openzeppelin_security"
109-
version = "2.0.0-alpha.1"
109+
version = "2.0.0"
110110
dependencies = [
111111
"openzeppelin_test_common",
112112
"openzeppelin_testing",
@@ -115,7 +115,7 @@ dependencies = [
115115

116116
[[package]]
117117
name = "openzeppelin_test_common"
118-
version = "2.0.0-alpha.1"
118+
version = "2.0.0"
119119
dependencies = [
120120
"openzeppelin_access",
121121
"openzeppelin_account",
@@ -140,7 +140,7 @@ dependencies = [
140140

141141
[[package]]
142142
name = "openzeppelin_token"
143-
version = "2.0.0-alpha.1"
143+
version = "2.0.0"
144144
dependencies = [
145145
"openzeppelin_access",
146146
"openzeppelin_account",
@@ -153,7 +153,7 @@ dependencies = [
153153

154154
[[package]]
155155
name = "openzeppelin_upgrades"
156-
version = "2.0.0-alpha.1"
156+
version = "2.0.0"
157157
dependencies = [
158158
"openzeppelin_test_common",
159159
"openzeppelin_testing",
@@ -162,7 +162,7 @@ dependencies = [
162162

163163
[[package]]
164164
name = "openzeppelin_utils"
165-
version = "2.0.0-alpha.1"
165+
version = "2.0.0"
166166
dependencies = [
167167
"openzeppelin_test_common",
168168
"openzeppelin_testing",

Scarb.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ keywords.workspace = true
2424
edition.workspace = true
2525

2626
[workspace.package]
27-
version = "2.0.0-alpha.1"
27+
version = "2.0.0"
2828
edition = "2024_07"
2929
cairo-version = "2.11.4"
3030
scarb-version = "2.11.4"

audits/2025-06-v2.0.0.pdf

729 KB
Binary file not shown.

audits/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
| ------------ | ------- | ------------------------------------------------------------------------- | ------- | -------------------------------------- | -------------------------- |
55
| January 2025 | v1.0.0 | [`3fdef27`](https://github.com/OpenZeppelin/cairo-contracts/tree/3fdef27) | Zellic | Everything except `governance` package | [🔗](./2025-01-v1.0.0.pdf) |
66
| January 2025 | v1.0.0 | [`79391c6`](https://github.com/OpenZeppelin/cairo-contracts/tree/79391c6) | Zellic | `governance` package | [🔗](./2025-01-v1.0.0.pdf) |
7+
| June 2025 | v2.0.0 | [`1f792f5`](https://github.com/OpenZeppelin/cairo-contracts/tree/1f792f5) | Zellic | v2.0.0 Changes package | [🔗](./2025-06-v2.0.0.pdf) |

docs/antora.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: contracts-cairo
22
title: Contracts for Cairo
3-
version: 2.0.0-alpha.1
3+
version: 2.0.0
44
nav:
55
- modules/ROOT/nav.adoc
66
asciidoc:

docs/modules/ROOT/pages/api/access.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ assigned each to multiple accounts.
2222

2323
[.contract]
2424
[[OwnableComponent]]
25-
=== `++OwnableComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/access/src/ownable/ownable.cairo[{github-icon},role=heading-link]
25+
=== `++OwnableComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/access/src/ownable/ownable.cairo[{github-icon},role=heading-link]
2626

2727
```cairo
2828
use openzeppelin_access::ownable::OwnableComponent;
@@ -262,7 +262,7 @@ Emitted when the ownership is transferred.
262262

263263
[.contract]
264264
[[IAccessControl]]
265-
=== `++IAccessControl++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/access/src/accesscontrol/interface.cairo[{github-icon},role=heading-link]
265+
=== `++IAccessControl++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/access/src/accesscontrol/interface.cairo[{github-icon},role=heading-link]
266266

267267
:grant_role: xref:#IAccessControl-grant_role[grant_role]
268268
:revoke_role: xref:#IAccessControl-revoke_role[revoke_role]
@@ -395,7 +395,7 @@ Emitted when `account` is revoked `role`.
395395

396396
[.contract]
397397
[[IAccessControlWithDelay]]
398-
=== `++IAccessControlWithDelay++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/access/src/accesscontrol/interface.cairo[{github-icon},role=heading-link]
398+
=== `++IAccessControlWithDelay++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/access/src/accesscontrol/interface.cairo[{github-icon},role=heading-link]
399399

400400
:grant_role_with_delay: xref:#IAccessControlWithDelay-grant_role_with_delay[grant_role_with_delay]
401401
:RoleGrantedWithDelay: xref:#IAccessControlWithDelay-RoleGrantedWithDelay[RoleGrantedWithDelay]
@@ -463,7 +463,7 @@ or the deployer address if {_grant_role_with_delay} is called from the construct
463463

464464
[.contract]
465465
[[AccessControlComponent]]
466-
=== `++AccessControlComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/access/src/accesscontrol/accesscontrol.cairo[{github-icon},role=heading-link]
466+
=== `++AccessControlComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/access/src/accesscontrol/accesscontrol.cairo[{github-icon},role=heading-link]
467467

468468
:assert_only_role: xref:#AccessControlComponent-assert_only_role
469469
:grant_role: xref:#AccessControlComponent-grant_role[grant_role]

docs/modules/ROOT/pages/api/account.adoc

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include::../utils/_common.adoc[]
1414

1515
[.contract]
1616
[[ISRC6]]
17-
=== `++ISRC6++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/account/src/interface.cairo[{github-icon},role=heading-link]
17+
=== `++ISRC6++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/account/src/interface.cairo[{github-icon},role=heading-link]
1818

1919
```cairo
2020
use openzeppelin_account::interface::ISRC6;
@@ -65,7 +65,7 @@ Returns the short string `'VALID'` if valid, otherwise it reverts.
6565

6666
[.contract]
6767
[[AccountComponent]]
68-
=== `++AccountComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/account/src/account.cairo[{github-icon},role=heading-link]
68+
=== `++AccountComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/account/src/account.cairo[{github-icon},role=heading-link]
6969

7070
:OwnerAdded: xref:AccountComponent-OwnerAdded[OwnerAdded]
7171
:OwnerRemoved: xref:AccountComponent-OwnerRemoved[OwnerRemoved]
@@ -315,7 +315,7 @@ Emitted when a `public_key` is removed.
315315

316316
[.contract]
317317
[[EthAccountComponent]]
318-
=== `++EthAccountComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/account/src/eth_account.cairo[{github-icon},role=heading-link]
318+
=== `++EthAccountComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/account/src/eth_account.cairo[{github-icon},role=heading-link]
319319

320320
:OwnerAdded: xref:EthAccountComponent-OwnerAdded[OwnerAdded]
321321
:OwnerRemoved: xref:EthAccountComponent-OwnerRemoved[OwnerRemoved]
@@ -570,7 +570,7 @@ Emitted when a `public_key` is removed.
570570

571571
[.contract]
572572
[[ISRC9_V2]]
573-
=== `++ISRC9_V2++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/account/src/extensions/src9/interface.cairo[{github-icon},role=heading-link]
573+
=== `++ISRC9_V2++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/account/src/extensions/src9/interface.cairo[{github-icon},role=heading-link]
574574

575575
```cairo
576576
use openzeppelin_account::extensions::src9::ISRC9_V2;
@@ -620,7 +620,7 @@ Get the status of a given nonce. `true` if the nonce is available to use.
620620

621621
[.contract]
622622
[[SRC9Component]]
623-
=== `++SRC9Component++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/account/src/extensions/src9/src9.cairo[{github-icon},role=heading-link]
623+
=== `++SRC9Component++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/account/src/extensions/src9/src9.cairo[{github-icon},role=heading-link]
624624

625625
```cairo
626626
use openzeppelin_account::extensions::SRC9Component;
@@ -696,7 +696,7 @@ Initializes the account by registering the `ISRC9_V2` interface ID.
696696

697697
[.contract]
698698
[[AccountUpgradeable]]
699-
=== `++AccountUpgradeable++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/presets/src/account.cairo[{github-icon},role=heading-link]
699+
=== `++AccountUpgradeable++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/presets/src/account.cairo[{github-icon},role=heading-link]
700700

701701
```cairo
702702
use openzeppelin_presets::AccountUpgradeable;
@@ -760,7 +760,7 @@ Requirements:
760760

761761
[.contract]
762762
[[EthAccountUpgradeable]]
763-
=== `++EthAccountUpgradeable++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/presets/src/eth_account.cairo[{github-icon},role=heading-link]
763+
=== `++EthAccountUpgradeable++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/presets/src/eth_account.cairo[{github-icon},role=heading-link]
764764

765765
```cairo
766766
use openzeppelin_presets::EthAccountUpgradeable;

docs/modules/ROOT/pages/api/erc1155.adoc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ TIP: For an overview of ERC1155, read our xref:erc1155.adoc[ERC1155 guide].
1616

1717
[.contract]
1818
[[IERC1155]]
19-
=== `++IERC1155++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/token/src/erc1155/interface.cairo[{github-icon},role=heading-link]
19+
=== `++IERC1155++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/token/src/erc1155/interface.cairo[{github-icon},role=heading-link]
2020

2121
[.hljs-theme-dark]
2222
```cairo
@@ -126,7 +126,7 @@ Emitted when the token URI is updated to `value` for the `id` token.
126126

127127
[.contract]
128128
[[IERC1155MetadataURI]]
129-
=== `++IERC1155MetadataURI++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/token/src/erc1155/interface.cairo[{github-icon},role=heading-link]
129+
=== `++IERC1155MetadataURI++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/token/src/erc1155/interface.cairo[{github-icon},role=heading-link]
130130

131131
[.hljs-theme-dark]
132132
```cairo
@@ -156,7 +156,7 @@ Returns the Uniform Resource Identifier (URI) for the `token_id` token.
156156

157157
[.contract]
158158
[[ERC1155Component]]
159-
=== `++ERC1155Component++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/token/src/erc1155/erc1155.cairo[{github-icon},role=heading-link]
159+
=== `++ERC1155Component++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/token/src/erc1155/erc1155.cairo[{github-icon},role=heading-link]
160160

161161
[.hljs-theme-dark]
162162
```cairo
@@ -559,7 +559,7 @@ See <<IERC1155-URI,IERC1155::URI>>.
559559

560560
[.contract]
561561
[[IERC1155Receiver]]
562-
=== `++IERC1155Receiver++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/token/src/erc1155/interface.cairo[{github-icon},role=heading-link]
562+
=== `++IERC1155Receiver++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/token/src/erc1155/interface.cairo[{github-icon},role=heading-link]
563563

564564
[.hljs-theme-dark]
565565
```cairo
@@ -599,7 +599,7 @@ via <<IERC1155-safe_batch_transfer_from,IERC1155::safe_batch_transfer_from>> by
599599

600600
[.contract]
601601
[[ERC1155ReceiverComponent]]
602-
=== `++ERC1155ReceiverComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/token/src/erc1155/erc1155_receiver.cairo[{github-icon},role=heading-link]
602+
=== `++ERC1155ReceiverComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/token/src/erc1155/erc1155_receiver.cairo[{github-icon},role=heading-link]
603603

604604
[.hljs-theme-dark]
605605
```cairo
@@ -676,7 +676,7 @@ Registers the `IERC1155Receiver` interface ID as supported through introspection
676676

677677
[.contract]
678678
[[ERC1155Upgradeable]]
679-
=== `++ERC1155Upgradeable++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0-alpha.1/packages/presets/src/erc1155.cairo[{github-icon},role=heading-link]
679+
=== `++ERC1155Upgradeable++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v2.0.0/packages/presets/src/erc1155.cairo[{github-icon},role=heading-link]
680680

681681
```cairo
682682
use openzeppelin_presets::ERC1155;

0 commit comments

Comments
 (0)