Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

## 3.0.0 (2025-12-11)

### Added

- AccessControlDefaultAdminRules:
- AccessControlDefaultAdminRules (#1567):
- `MAXIMUM_DEFAULT_ADMIN_TRANSFER_DELAY` constant exposed in the component ImmutableConfig.
- `maximum_default_admin_transfer_delay` getter to the `IAccessControlDefaultAdminRules` interface.
- `execute_single_call`, `execute_calls` and `assert_valid_signature` to openzeppelin_utils::execution (#1531)
- MetaTransactionV0 preset, interface, and dispatchers (#1512)
- Embeddable `ERC2981AdminAccessControlDefaultAdminRulesImpl` implementation providing admin functions for a `ERC2981` token based on `AccessControlDefaultAdminRules` component (#1516)
- `ERC6372Clock` interface to `openzeppelin_utils::contract_clock` (#1417)
- AccessControlDefaultAdminRules interface and component (#1432)

### Changed

- Bump scarb to 2.13.1 (#1565)
- Decoupled openzeppelin_utils version from the umbrella package (#1531)
- Removed openzeppelin_governance dependency on openzeppelin_account (#1531)
- Removed openzeppelin_token dependency on openzeppelin_account (#1531)
- `GovernorComponent` and its extensions support voting tokens that follow the `ERC6372` clock standard (#1417)

### Changed (Breaking)

- `GovernorComponent` proposal state resolution at snapshot timepoint changed from Active to Pending (#1606)
- Removed `execute_single_call`, `execute_calls` and `assert_valid_signature` from openzeppelin_account::utils (#1531)
- `VotesComponent` now supports customizable clock mechanisms via `ERC6372Clock`, enabling alternative clock sources (#1417)

## 3.0.0-alpha.3 (2025-10-9)

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,14 @@ Edit `scarb.toml` and add:

```toml
[dependencies]
openzeppelin = "3.0.0-alpha.3"
openzeppelin = "3.0.0"
```

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:

```toml
[dependencies]
openzeppelin_token = "3.0.0-alpha.3"
openzeppelin_token = "3.0.0"
```

Build the project to download it:
Expand Down
26 changes: 13 additions & 13 deletions Scarb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ version = 1

[[package]]
name = "openzeppelin"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
Expand All @@ -24,7 +24,7 @@ dependencies = [

[[package]]
name = "openzeppelin_access"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_interfaces",
"openzeppelin_introspection",
Expand All @@ -36,7 +36,7 @@ dependencies = [

[[package]]
name = "openzeppelin_account"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_interfaces",
"openzeppelin_introspection",
Expand All @@ -48,7 +48,7 @@ dependencies = [

[[package]]
name = "openzeppelin_finance"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_access",
"openzeppelin_interfaces",
Expand All @@ -61,7 +61,7 @@ dependencies = [

[[package]]
name = "openzeppelin_governance"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_access",
"openzeppelin_interfaces",
Expand All @@ -82,7 +82,7 @@ dependencies = [

[[package]]
name = "openzeppelin_introspection"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_interfaces",
"openzeppelin_test_common",
Expand All @@ -91,19 +91,19 @@ dependencies = [

[[package]]
name = "openzeppelin_macros"
version = "3.0.0-alpha.3"
version = "3.0.0"

[[package]]
name = "openzeppelin_merkle_tree"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_testing",
"snforge_std",
]

[[package]]
name = "openzeppelin_presets"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
Expand All @@ -120,7 +120,7 @@ dependencies = [

[[package]]
name = "openzeppelin_security"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_interfaces",
"openzeppelin_test_common",
Expand All @@ -131,7 +131,7 @@ dependencies = [

[[package]]
name = "openzeppelin_test_common"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_access",
"openzeppelin_account",
Expand All @@ -157,7 +157,7 @@ dependencies = [

[[package]]
name = "openzeppelin_token"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_access",
"openzeppelin_interfaces",
Expand All @@ -170,7 +170,7 @@ dependencies = [

[[package]]
name = "openzeppelin_upgrades"
version = "3.0.0-alpha.3"
version = "3.0.0"
dependencies = [
"openzeppelin_test_common",
"openzeppelin_testing",
Expand Down
2 changes: 1 addition & 1 deletion Scarb.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ keywords.workspace = true
edition.workspace = true

[workspace.package]
version = "3.0.0-alpha.3"
version = "3.0.0"
edition = "2024_07"
cairo-version = "2.13.1"
scarb-version = "2.13.1"
Expand Down
2 changes: 1 addition & 1 deletion docs/antora.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: contracts-cairo
title: Contracts for Cairo
version: 3.0.0-alpha.3
version: 3.0.0
nav:
- modules/ROOT/nav.adoc
asciidoc:
Expand Down
12 changes: 6 additions & 6 deletions docs/modules/ROOT/pages/api/access.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ documented here are contained in the `openzeppelin_interfaces` package version `

[.contract]
[[IAccessControl]]
=== `++IAccessControl++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/access/accesscontrol.cairo[{github-icon},role=heading-link]
=== `++IAccessControl++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/access/accesscontrol.cairo[{github-icon},role=heading-link]

:grant_role: xref:#IAccessControl-grant_role[grant_role]
:revoke_role: xref:#IAccessControl-revoke_role[revoke_role]
Expand Down Expand Up @@ -158,7 +158,7 @@ Emitted when `account` is revoked `role`.

[.contract]
[[IAccessControlWithDelay]]
=== `++IAccessControlWithDelay++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/access/accesscontrol.cairo[{github-icon},role=heading-link]
=== `++IAccessControlWithDelay++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/access/accesscontrol.cairo[{github-icon},role=heading-link]

:grant_role_with_delay: xref:#IAccessControlWithDelay-grant_role_with_delay[grant_role_with_delay]
:RoleGrantedWithDelay: xref:#IAccessControlWithDelay-RoleGrantedWithDelay[RoleGrantedWithDelay]
Expand Down Expand Up @@ -226,7 +226,7 @@ or the deployer address if {_grant_role_with_delay} is called from the construct

[.contract]
[[IAccessControlDefaultAdminRules]]
=== `++IAccessControlDefaultAdminRules++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/access/accesscontrol_default_admin_rules.cairo[{github-icon},role=heading-link]
=== `++IAccessControlDefaultAdminRules++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/access/accesscontrol_default_admin_rules.cairo[{github-icon},role=heading-link]

:grant_role: xref:#IAccessControl-grant_role[grant_role]

Expand Down Expand Up @@ -478,7 +478,7 @@ Emitted when a {pending_default_admin_delay} is reset if its schedule didn't pas

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

```cairo
use openzeppelin_access::ownable::OwnableComponent;
Expand Down Expand Up @@ -718,7 +718,7 @@ Emitted when the ownership is transferred.

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

:assert_only_role: xref:#AccessControlComponent-assert_only_role
:grant_role: xref:#AccessControlComponent-grant_role[grant_role]
Expand Down Expand Up @@ -1097,7 +1097,7 @@ See xref:IAccessControl-RoleRevoked[IAccessControl::RoleRevoked].

[.contract]
[[AccessControlDefaultAdminRulesComponent]]
=== `++AccessControlDefaultAdminRulesComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/access/src/accesscontrol/extensions/accesscontrol_default_admin_rules.cairo[{github-icon},role=heading-link]
=== `++AccessControlDefaultAdminRulesComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/access/src/accesscontrol/extensions/accesscontrol_default_admin_rules.cairo[{github-icon},role=heading-link]

```cairo
use openzeppelin_access::accesscontrol::extensions::AccessControlDefaultAdminRulesComponent;
Expand Down
14 changes: 7 additions & 7 deletions docs/modules/ROOT/pages/api/account.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ documented here are contained in the `openzeppelin_interfaces` package version `

[.contract]
[[ISRC6]]
=== `++ISRC6++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/account/accounts.cairo[{github-icon},role=heading-link]
=== `++ISRC6++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/account/accounts.cairo[{github-icon},role=heading-link]

```cairo
use openzeppelin_interfaces::accounts::ISRC6;
Expand Down Expand Up @@ -68,7 +68,7 @@ Returns the short string `'VALID'` if valid, otherwise it reverts.

[.contract]
[[ISRC9_V2]]
=== `++ISRC9_V2++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/account/src9.cairo[{github-icon},role=heading-link]
=== `++ISRC9_V2++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/account/src9.cairo[{github-icon},role=heading-link]

```cairo
use openzeppelin_interfaces::src9::ISRC9_V2;
Expand Down Expand Up @@ -120,7 +120,7 @@ Get the status of a given nonce. `true` if the nonce is available to use.

[.contract]
[[AccountComponent]]
=== `++AccountComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/account/src/account.cairo[{github-icon},role=heading-link]
=== `++AccountComponent++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/account/src/account.cairo[{github-icon},role=heading-link]

:OwnerAdded: xref:AccountComponent-OwnerAdded[OwnerAdded]
:OwnerRemoved: xref:AccountComponent-OwnerRemoved[OwnerRemoved]
Expand Down Expand Up @@ -370,7 +370,7 @@ Emitted when a `public_key` is removed.

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

:OwnerAdded: xref:EthAccountComponent-OwnerAdded[OwnerAdded]
:OwnerRemoved: xref:EthAccountComponent-OwnerRemoved[OwnerRemoved]
Expand Down Expand Up @@ -625,7 +625,7 @@ Emitted when a `public_key` is removed.

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

```cairo
use openzeppelin_account::extensions::SRC9Component;
Expand Down Expand Up @@ -701,7 +701,7 @@ Initializes the account by registering the `ISRC9_V2` interface ID.

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

```cairo
use openzeppelin_presets::AccountUpgradeable;
Expand Down Expand Up @@ -765,7 +765,7 @@ Requirements:

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

```cairo
use openzeppelin_presets::EthAccountUpgradeable;
Expand Down
12 changes: 6 additions & 6 deletions docs/modules/ROOT/pages/api/erc1155.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ documented here are contained in the `openzeppelin_interfaces` package version `

[.contract]
[[IERC1155]]
=== `++IERC1155++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/token/erc1155.cairo[{github-icon},role=heading-link]
=== `++IERC1155++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/token/erc1155.cairo[{github-icon},role=heading-link]

[.hljs-theme-dark]
```cairo
Expand Down Expand Up @@ -129,7 +129,7 @@ Emitted when the token URI is updated to `value` for the `id` token.

[.contract]
[[IERC1155MetadataURI]]
=== `++IERC1155MetadataURI++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/token/erc1155.cairo[{github-icon},role=heading-link]
=== `++IERC1155MetadataURI++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/token/erc1155.cairo[{github-icon},role=heading-link]

[.hljs-theme-dark]
```cairo
Expand Down Expand Up @@ -159,7 +159,7 @@ Returns the Uniform Resource Identifier (URI) for the `token_id` token.

[.contract]
[[IERC1155Receiver]]
=== `++IERC1155Receiver++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0-alpha.3/packages/interfaces/src/token/erc1155.cairo[{github-icon},role=heading-link]
=== `++IERC1155Receiver++` link:https://github.com/OpenZeppelin/cairo-contracts/blob/release-v3.0.0/packages/interfaces/src/token/erc1155.cairo[{github-icon},role=heading-link]

[.hljs-theme-dark]
```cairo
Expand Down Expand Up @@ -201,7 +201,7 @@ via <<IERC1155-safe_batch_transfer_from,IERC1155::safe_batch_transfer_from>> by

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

[.hljs-theme-dark]
```cairo
Expand Down Expand Up @@ -602,7 +602,7 @@ See <<IERC1155-URI,IERC1155::URI>>.

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

[.hljs-theme-dark]
```cairo
Expand Down Expand Up @@ -679,7 +679,7 @@ Registers the `IERC1155Receiver` interface ID as supported through introspection

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

```cairo
use openzeppelin_presets::ERC1155;
Expand Down
Loading