Skip to content

Releases: OpenZeppelin/cairo-contracts

v3.0.0

12 Dec 15:27
ddd3338

Choose a tag to compare

Summary

Added

  • 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)

Full Changes List

Read more

v3.0.0-alpha.3

10 Oct 11:14
ba2228e

Choose a tag to compare

v3.0.0-alpha.3 Pre-release
Pre-release

Summary

Added

  • execute_single_call, execute_calls and assert_valid_signature to openzeppelin_utils::execution (#1531)

Changed

  • 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)

Changed (Breaking)

  • Removed execute_single_call, execute_calls and assert_valid_signature from openzeppelin_account::utils (#1531)

Full Changes List

Full Changelog: v3.0.0-alpha.2...v3.0.0-alpha.3

v3.0.0-alpha.2

10 Sep 11:43

Choose a tag to compare

v3.0.0-alpha.2 Pre-release
Pre-release

Summary

Added

  • MetaTransactionV0 preset, interface, and dispatchers (#1512)
  • Embeddable ERC2981AdminAccessControlDefaultAdminRulesImpl implementation providing admin functions for a ERC2981 token based on AccessControlDefaultAdminRules component (#1516)

Full Changes List

  • Bump foundry to 0.48.1 and re-enable fuzzer tests by @ericnordelo in #1498
  • Benchmark mock contract sizes by @ericnordelo in #1471
  • Update contract sizes benchmark by @github-actions[bot] in #1499
  • Check indexed keys by @ericnordelo in #1472
  • Update contract sizes benchmark by @github-actions[bot] in #1500
  • Chore(deps): Bump peter-evans/create-pull-request from 6 to 7 by @dependabot[bot] in #1503
  • Chore(deps): Bump actions/checkout from 4 to 5 by @dependabot[bot] in #1502
  • Release openzeppelin_testing v4.6.0 by @ericnordelo in #1501
  • Chore(deps): Bump crate-ci/typos from 1.35.4 to 1.35.5 by @dependabot[bot] in #1507
  • Chore(deps): Bump crate-ci/typos from 1.35.5 to 1.35.7 by @dependabot[bot] in #1514
  • Update contract sizes benchmark by @github-actions[bot] in #1515
  • Chore(deps): Bump crate-ci/typos from 1.35.7 to 1.36.0 by @dependabot[bot] in #1517
  • Refactor proc macros into v2 by @ericnordelo in #1495
  • Chore(deps): Bump crate-ci/typos from 1.36.0 to 1.36.2 by @dependabot[bot] in #1518
  • Implement ERC2981Admin based on AccessControlDefaultAdminRules by @immrsd in #1516
  • Update contract sizes benchmark by @github-actions[bot] in #1519
  • Bump foundry to 0.49.0 by @immrsd in #1520
  • Release openzeppelin_testing v4.7.0 by @immrsd in #1521
  • Macros: Test missing ERC4626 traits by @immrsd in #1509
  • Macros: Support AccessControlDefaultAdminRules by @immrsd in #1510
  • Add MetaTxV0 wrapper by @ericnordelo in #1512
  • Update contract sizes benchmark by @github-actions[bot] in #1524

New Contributors

  • @github-actions[bot] made their first contribution in #1499

Full Changelog: v3.0.0-alpha.1...v3.0.0-alpha.2

v3.0.0-alpha.1

18 Aug 09:31
a03e01e

Choose a tag to compare

v3.0.0-alpha.1 Pre-release
Pre-release

Summary

Added

  • AssetsManagementTrait defining how assets are managed in ERC4626Component (#1454)
  • openzeppelin_interfaces package (#1463)

Changed

  • Bump scarb to 2.12.0 (#1463)

Changed (Breaking)

  • ERC4626Component now supports alternative asset management strategies (e.g., external vault) via the added AssetsManagementTrait (#1454)
  • ERC4626Component now supports charging fees in shares as well as in assets via the refactored FeeConfigTrait (#1452)
  • Additional input parameters were added to the ERC4626HooksTrait functions (#1452)
  • Moved interfaces, ABIs and dispatchers into openzeppelin_interfaces (#1463)
    • Some structs and types that were defined inside interface files were also moved

Full Changes List

New Contributors

Full Changelog: v3.0.0-alpha.0...v3.0.0-alpha.1

v3.0.0-alpha.0

20 Jul 11:32

Choose a tag to compare

v3.0.0-alpha.0 Pre-release
Pre-release

Summary

Added

  • ERC6372Clock interface to openzeppelin_utils::contract_clock (#1417)
  • AccessControlDefaultAdminRules interface and component (#1432)

Changed

  • GovernorComponent and its extensions support voting tokens that follow the ERC6372 clock standard (#1417)

Changed (Breaking)

  • VotesComponent now supports customizable clock mechanisms via ERC6372Clock, enabling alternative clock sources (#1417)

Full Changes List

New Contributors

Full Changelog: v2.0.0...v3.0.0-alpha.0

v2.0.0

18 Jun 10:06
f1c15a3

Choose a tag to compare

Summary

Added

  • ERC4626Component (#1170)
  • openzeppelin_macros package with the with_components macro (#1282)
  • Support for granting a role with delay in AccessControl component (#1317)
  • type_hash macro (#1399)
  • Math::u256_mul_div (#1170)

Changed

  • Bump scarb to v2.11.4 (#1373)

Changed (Breaking)

  • Add SRC-107 to ERC20Component (#1294)
    • decimals are now configurable using the ImmutableConfig trait
  • Update UDC interface and preset for backward compatibility with v1 (#1371)
    • Change from_zero argument to not_from_zero in both the interface and the
      ContractDeployed event
    • Add deployContract function to the preset
    • Update salt hashing algorithm from Poseidon to Pedersen
  • Update ISRC6 interface to match latest changes reflected in the SNIP (#1383)
    • __execute__ entry point now doesn't return any value
    • Account and EthAccount components SRC6 implementation updated accordingly

Full Changes List

New Contributors

Read more

v2.0.0-alpha.1

28 Apr 08:54

Choose a tag to compare

v2.0.0-alpha.1 Pre-release
Pre-release

Summary

Added

  • The type_hash macro (#1399)
  • Enable Governor modules in the with_components macro (#1414)

Full Changes List

New Contributors

Full Changelog: v2.0.0-alpha.0...v2.0.0-alpha.1

v2.0.0-alpha.0

21 Mar 11:06
bc66fb7

Choose a tag to compare

v2.0.0-alpha.0 Pre-release
Pre-release

Summary

Added

  • Add support for granting a role with delay in the AccessControl component (#1317)
  • Add the openzeppelin_macros package with the with_components macro (#1282)
  • Add ERC4626Component (#1170)
  • Add Math::u256_mul_div (#1170)

Changed

  • Bump scarb to v2.11.1 (#1373)

Changed (Breaking)

  • Add SRC-107 to ERC20Component (#1294)
    • decimals are now configurable using the ImmutableConfig trait
  • Update UDC interface and preset for backward compatibility with v1 (#1371)
    • Change from_zero argument to not_from_zero in both the interface and the ContractDeployed event
    • Add deployContract function to the preset
    • Update salt hashing algorithm from Poseidon to Pedersen
  • Update ISRC6 interface to match latest changes reflected in the SNIP (#1383)
    • __execute__ entry point now doesn't return any value
    • Account and EthAccount components ISRC6 implementation updated accordingly

Full Changes List

New Contributors

Full Changelog: v1.0.0...v2.0.0-alpha.0

v1.0.0

21 Feb 18:39
755ce1a

Choose a tag to compare

Summary

Added

  • ERC721Component initializer_no_metadata (#1278)
  • ERC1155Component initializer_no_metadata (#1287)
  • Unsigned trait restriction to the average function (#1310)

Changed (Breaking)

  • Bump scarb to v2.9.4 (#1336)

Fixed (Breaking)

  • SNIP12 TimelockComponent hash_operation to use hash_operation_batch for single-call operations (#1313)
  • Permit and Message SNIP12 type hashes (#1283)

Fixed

  • Multisig component issue arising when removing signers with unchanged quorum (#1315)
  • Governor timelock extension salt generation panicking on overflow (#1306)
  • SignersInfoStorePacking issue with bit operations (#1316)
  • Message type hash in SNIP12 doc (#1274)

Full Changes List

Full Changelog: v0.20.0-rc.0...v1.0.0

v0.20.0

06 Dec 22:09

Choose a tag to compare

Summary

Added

  • SRC9 (Outside Execution) integration to account presets (#1201)
  • SNIP12HashSpanImpl to openzeppelin_utils::cryptography::snip12 (#1180)
  • GovernorComponent with the following extensions: (#1180)
    • GovernorCoreExecutionComponent
    • GovernorCountingSimpleComponent
    • GovernorSettingsComponent
    • GovernorTimelockExecutionComponent
    • GovernorVotesQuorumFractionComponent
    • GovernorVotesComponent
  • is_tx_version_valid utility function to openzeppelin_account::utils (#1224)

Changed

  • Remove mut from data param in compute_hash_on_elements (#1206)
  • Remove mut from calls param in __execute__ function of Account and EthAccount components (#1224)
  • Remove mut from calls param in __validate__ function of Account and EthAccount components (#1224)

Changed (Breaking)

  • Bump snforge_std to v0.34.0 (#1239)
  • Bump scarb to v2.9.1 (#1239)
  • The initializer in OwnableComponent now checks that owner is not the zero address (#1221)
  • Add verifying_contract member to the Delegation struct used in Votes delegate_by_sig (#1214)
    use crate::votes::VotesComponent::VotingUnitsTrait;
  • VotingUnitsTrait moved from openzeppelin_governance::votes::votes to openzeppelin_governance::votes::VotesComponent (#1214)
  • VestingComponent release function won't emit an event or attempt to transfer when the amount is zero (#1209)
  • Bump snforge_std to v0.33.0 (#1203)

Fixed

  • Scarb manifest dependencies (#1249):
    • Move openzeppelin_utils from dev dep to dep in governance manifest
    • Remove openzeppelin_utils as dep in access package
    • Change openzeppelin_account to crate in src9.cairo

Full Changes List

New Contributors

Full Changelog: v0.19.0...v0.20.0