Releases: OpenZeppelin/cairo-contracts
Releases · OpenZeppelin/cairo-contracts
v0.19.0
Summary
Added
- Multisig component (#1193)
is_valid_p256_signature
utility function toopenzeppelin_account::utils::signature
(#1189)Secp256r1KeyPair
type and helpers toopenzeppelin_testing::signing
(#1189)all_tokens_of_owner
function toERC721EnumerableComponent
fetching all owner's tokens in a single call (#1196)- Embeddable impls for ERC2981 component (#1173)
ERC2981Info
with read functions for discovering the component's stateERC2981AdminOwnable
providing admin functions for a token that implements Ownable componentERC2981AdminAccessControl
providing admin functions for a token that implements AccessControl component
Changed (Breaking)
- Refactor
openzeppelin_account::utils::secp256k1
module toopenzeppelin_account::utils::secp256_point
(#1189)Secp256k1PointStorePacking
replaced by a genericSecp256PointStorePacking
Secp256k1PointPartialEq
replaced by a genericSecp256PointPartialEq
DebugSecp256k1Point
replaced by a genericDebugSecp256Point
- Apply underscore pattern to the internal functions of
ERC2981Component
to prevent collisions
with new external functions (#1173) - Move
Hash
andPartialEq
impls ofCall
struct fromopenzeppelin_governance::timelock::utils
toopenzeppelin_governance::utils
(#1193)
Full Changes List
- Refactor hooks contract storage access by @ericnordelo in #1188
- Royalty Info External Traits by @immrsd in #1173
- ERC20Permit Doc by @immrsd in #1183
- Chore(deps): Bump crate-ci/typos from 1.26.0 to 1.26.1 by @dependabot in #1191
- Chore(deps): Bump crate-ci/typos from 1.26.1 to 1.26.2 by @dependabot in #1192
- Chore(deps): Bump crate-ci/typos from 1.26.2 to 1.26.8 by @dependabot in #1194
- Update RELEASING.md by @ericnordelo in #1195
- Add
is_valid_secp256_signature
support by @ericnordelo in #1189 - Chore(deps): Bump crate-ci/typos from 1.26.8 to 1.27.0 by @dependabot in #1197
- Chore(deps): Bump crate-ci/typos from 1.27.0 to 1.27.1 by @dependabot in #1199
- ERC721Enumerable helper function by @immrsd in #1196
- Chore(deps): Bump crate-ci/typos from 1.27.1 to 1.27.2 by @dependabot in #1202
- Test token hooks by @ggonzalez94 in #1198
- Multisig by @immrsd in #1193
Full Changelog: v0.18.0...v0.19.0
v0.18.0
Summary
Added
VotesComponent
with implementation for ERC721 and ERC20 tokens (#1114)IUpgradeAndCall
interface (#1148)upgrade_and_call
function in UpgradeableComponent's InternalImpl (#1148)ERC20Permit
impl forERC20Component
facilitating token approvals via off-chain signatures (#1140)ISNIP12Metadata
interface for discovering name and version of a SNIP-12 impl (#1140)SNIP12MetadataExternal
impl ofISNIP12Metadata
interface forERC20Component
(#1140)
Changed
- Bump scarb to v2.8.4 (#1146)
Changed (Breaking)
- Remove
ERC20Votes
component in favor ofVotesComponent
(#1114)Trace
is now declared as astorage_node
and now usesVec
instead ofStorageArray
.delegate_by_sig
signature
param in theIVotes
interface updated fromArray<felt252>
toSpan<felt252>
.
- Remove
StorageArray
fromopenzeppelin_utils
(#1114) - Bump snforge to 0.31.0
- Remove openzeppelin_utils::selectors (#1163)
- Remove
DualCase dispatchers
(#1163)- Remove
try_selector_with_fallback
fromopenzeppelin_utils
- Remove
unwrap_and_cast
module fromopenzeppelin_utils
- Remove
openzeppelin_access::accesscontrol::dual_accesscontrol
- Remove
openzeppelin_access::ownable::dual_ownable
- Remove
openzeppelin_account::dual_account
- Remove
openzeppelin_account::dual_eth_account
- Remove
openzeppelin_token::erc20::dual20
- Remove
openzeppelin_token::erc721::dual721
- Remove
openzeppelin_token::erc721::dual721_receiver
- Remove
openzeppelin_token::erc1155::dual1155
- Remove
openzeppelin_token::erc1155::dual1155_receiver
- Remove
SRC9Component
now usesISRC6Dispatcher
instead ofDualCaseAccount
(#1163)ERC20VotesComponent
now usesISRC6Dispatcher
instead ofDualCaseAccount
(#1163)ERC721Component
now usesIERC721ReceiverDispatcher
instead ofDualCaseERC721Receiver
(#1163)ERC1155Component
now usesIERC1155ReceiverDispatcher
instead ofDualCaseERC1155Receiver
(#1163)
Full Changes List
- Improve packages READMEs by @ericnordelo in #1159
- Remove git import references and colon use clauses in docs by @ericnordelo in #1165
- Vesting Doc by @immrsd in #1157
- Chore(deps): Bump crate-ci/typos from 1.24.6 to 1.25.0 by @dependabot in #1171
- Bump scarb to 2.8.3 by @ericnordelo in #1166
- Add missing manifest import by @maciektr in #1169
- Use
crate
for local imports by @andrew-fleming in #1176 - Add timelock captions by @andrew-fleming in #1167
- Remove DualCase dispatchers by @ericnordelo in #1163
- Chore(deps): Bump crate-ci/typos from 1.25.0 to 1.26.0 by @dependabot in #1178
- Improve mocks by @ericnordelo in #1146
- Add declare script for presets by @andrew-fleming in #1118
- Add upgrade_and_call by @andrew-fleming in #1148
- ERC20 Permit Component by @immrsd in #1140
- Update imports in snip12 doc code blocks by @andrew-fleming in #1182
- Erc721 votes and general Votes component by @ggonzalez94 in #1114
- Fix comment by @ericnordelo in #1185
Full Changelog: v0.17.0...v0.18.0
v0.17.0
Summary
Added
into_base_16_string_no_padding
function to the test helpers (#1137)- SRC9 (OutsideExecution) component (#1150)
- Vesting component and VestingWallet preset (#1116)
Changed (Breaking)
- Bump scarb to v2.8.2 (#1137)
- Bump snforge to 0.30.0 (#1137)
declare_class
,declare_and_deploy
, anddeclare_and_deploy_at
will skip declaration if the contract is already declared (#1137)- Bump edition to 2024_07 (#1138)
execute_calls
function from account utils (#1150)- calls param type changed from
Array<Call>
toSpan<Call>
- calls param type changed from
Deprecated
- DualCase dispatchers
Full Changes List
- Release v0.16.0 by @immrsd in #1123
- Chore(deps): Bump crate-ci/typos from 1.24.1 to 1.24.5 by @dependabot in #1134
- Bump starknet foundry to 0.30.0 by @ggonzalez94 in #1137
- Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 16.0.0 to 17.0.0 by @dependabot in #1143
- Add missing entries to Test Utilities. by @ericnordelo in #1144
- Upgrade scarb edition to 2024_07 by @ggonzalez94 in #1138
- Improve workspace packages by @ericnordelo in #1121
- Chore(deps): Bump crate-ci/typos from 1.24.5 to 1.24.6 by @dependabot in #1151
- Vesting Component by @immrsd in #1116
- Add coverage to our test workflow by @ggonzalez94 in #1152
- OutsideExecution (SNIP-9) by @ericnordelo in #1150
- Deprecate dualcase dispatchers by @ericnordelo in #1155
- Fix link in docs by @andrew-fleming in #1158
- Release v0.17.0 by @ericnordelo in #1156
Full Changelog: v0.16.0...v0.17.0
v0.16.0
Summary
Added
- ERC721Enumerable component (#996)
- ERC2981 (NFT Royalty Standard) component (#1091)
merkle_tree
package with utilities to verify proofs and multi proofs (#1101)
Changed
Changed (Breaking)
- Changed ABI suffix to Trait in dual case account and eth account modules (#1096)
- DualCaseAccountABI renamed to DualCaseAccountTrait
- DualCaseEthAccountABI renamed to DualCaseEthAccountTrait
- Removed
_accept_ownership
from OwnableComponent::InternalImpl
Fixed
- OwnableTwoStep allowing a pending owner to accept ownership after the original owner has renounced ownership (#1119)
Full Changes List
- Allow dependabot to open PRs by @ggonzalez94 in #1099
- Add hooks section by @andrew-fleming in #1090
- Refactor ETH Account tests by @immrsd in #1098
- Bump crate-ci/typos from 1.19.0 to 1.23.6 by @dependabot in #1104
- Change ABI suffix to Trait in dual case account and eth account traits by @ggonzalez94 in #1096
- Bump stefanzweifel/git-auto-commit-action from 4.16.0 to 5.0.1 by @dependabot in #1105
- ERC2981 (NFT Royalty Standard) by @ericnordelo in #1091
- Fix storage member names in ERC2981 by @ericnordelo in #1109
- Bump snforge to v0.27.0 by @JhChoy in #1107
- Bump crate-ci/typos from 1.23.6 to 1.23.7 by @dependabot in #1113
- Add update tests by @andrew-fleming in #1083
- Bump crate-ci/typos from 1.23.7 to 1.24.1 by @dependabot in #1117
- Add merkle proof module by @ericnordelo in #1101
- Add ERC721EnumerableComponent extension by @andrew-fleming in #983
- Bump scarb to 2.8 by @ericnordelo in #1120
- Fix pending owner late overwrite issue by @ericnordelo in #1122
- Update CHANGELOG by @immrsd in #1123
v0.15.1
Summary
Changed
- Remove unused imports
- Update docsite links
- Remove token dependency from account package
Full Changes List
- Chore/remove unused imports by @amanusk in #1093
- Update docsite links by @andrew-fleming in #1094
- Update package lock by @andrew-fleming in #1095
- Remove token dependency from account package by @andrew-fleming in #1100
New Contributors
Full Changelog: v0.15.0...v0.15.1
v0.15.0
Summary
Added
- TimelockController component (#996)
- HashCall implementation (#996)
- Separate package for each submodule (#1065)
openzeppelin_access
openzeppelin_account
openzeppelin_governance
openzeppelin_introspection
openzeppelin_presets
openzeppelin_security
openzeppelin_token
openzeppelin_upgrades
openzeppelin_utils
- Separate packages intended as [dev-dependencies] (#1084)
openzeppelin_testing
openzeppelin_test_common
Changed
Changed (Breaking)
- Test utilities moved out of the utils module (#1084).
- Test utilities refactored to match the snforge test runner (#1084).
- Removed num_checkpoints and checkpoints from ERC20VotesABI (#1021).
Full Changes List
- Make Checkpoint public and fix interface by @ericnordelo in #1021
- Update LICENSE by @juan-dawson-neufeld in #1024
- Remove unnecessary
mut
, minor fixes by @andrew-fleming in #1032 - Improve SNIP12 examples by @ericnordelo in #1036
- Release v0.15.0-rc.0 by @ericnordelo in #1039
- Bump cairo to 2.7.0-rc.1 by @ericnordelo in #1025
- Bump Scarb to 2.7.0-rc.2 by @andrew-fleming in #1052
- Add timelock component by @andrew-fleming in #996
- Bump scarb to 2.7.0-rc.4 by @JhChoy in #1064
- Fix release workflow by @ericnordelo in #1066
- Add actionlint by @andrew-fleming in #1067
- Migrate testing to
snforge
by @ericnordelo in #1077 - Migrate to multiple packages (workspace) by @ericnordelo in #1065
- Fix presets page update workflow by @ericnordelo in #1079
- Add timelock docs by @andrew-fleming in #1017
- Fix version by @andrew-fleming in #1080
- Fix CONTRIBUTING, README, and index by @andrew-fleming in #1081
- Fix snforge dependency main target by @ericnordelo in #1084
- Re-enable SnAccount preset tests by @immrsd in #1088
- Update CHANGELOG (breaking section) by @ericnordelo in #1087
- Document Sn Foundry test utils by @immrsd in #1085
New Contributors
- @juan-dawson-neufeld made their first contribution in #1024
- @JhChoy made their first contribution in #1064
Full Changelog: v0.14.0...v0.15.0
v0.15.0-rc.0
Summary
Changed
- Trace, Checkpoint, and StorageArray structs made public.
Changed (Breaking)
- Removed num_checkpoints and checkpoints from ERC20VotesABI.
Full Changes List
- Make Checkpoint public and fix interface by @ericnordelo in #1021
- Remove unnecessary
mut
, minor fixes by @andrew-fleming in #1032 - Improve SNIP12 examples by @ericnordelo in #1036
Full Changelog: v0.14.0...v0.15.0-rc.0
v0.14.0
Summary
Changed (Breaking)
-
Migrate to the
2023_11
edition (#995):- Component implementations annotated with
#[embeddable_as()]
(e.g:AccessControlComponent::AccessControl
) are not public anymore. Note that the embeddable versions are still public (e.g:AccessControlComponent::AccessControlImpl
). - Implementations that can be compiler-derived from traits are not public anymore (e.g:
DualCaseAccessControlImpl
is not public whileDualCaseAccessControlTrait
is). Secp256k1PointPartialEq
andDebugSecp256k1Point
are not public anymore.account::utils::execute_single_call
is not public anymore.- Presets are not public anymore, since they should be copied into projects, and not directly imported.
Trace
andCheckpoint
structs are not public anymore, since they are intended to be used inERC20Votes
, and not as generic utilities.StorageArray
is not public anymore, since this implementation is specific toERC20Votes
, and is not intended as a generic utility, but as a temporary solution until Starknet native implementation arrives.
- Component implementations annotated with
-
Apply underscore pattern to modules (#993)
- AccessControlComponent
_set_role_admin
function renamed toset_role_admin
- PausableComponent
_pause
function renamed topause
_unpause
function renamed tounpause
- UpgradeableComponent
_upgrade
function renamed toupgrade
- ERC20Component:
_mint
function renamed tomint
_burn
function renamed toburn
_update
function renamed toupdate
- ERC721Component:
_safe_transfer
function renamed tosafe_transfer
_safe_mint
function renamed tosafe_mint
_mint
function renamed tomint
_transfer
function renamed totransfer
_burn
function renamed toburn
_update
function renamed toupdate
- ERC1155Component:
set_base_uri
function renamed to_set_base_uri
- AccessControlComponent
-
Bump Scarb to v2.6.5 (#1014)
Full Changes List
- Add NOTE to CONTRIBUTING. by @ericnordelo in #997
- Fix docs sections structure inconsistencies by @ericnordelo in #999
- Migrate to the 2023_11 edition. by @ericnordelo in #995
- Apply underscore pattern by @ericnordelo in #993
- Bump scarb and fix examples by @ericnordelo in #1014
Full Changelog: v0.13.0...v0.14.0
v0.13.0
Summary
Added
- Sending transactions section in account docs (#981)
- before_update and after_update hooks to ERC721Component (#978)
- before_update and after_update hooks to ERC1155Component (#982)
Changed (Breaking)
- ERC721Component internal implementation to support transfer, mint, and burn flows going through an
_update
function (#978) - ERC721Component implementations now require an ERC721HooksTrait implementation in scope (#978)
- ERC1155Component implementations now require an ERC1155HooksTrait implementation in scope (#982)
- AccountComponent, preset, and dispatcher now require a
signature
param in the public-key-setter functions (#989) - EthAccountComponent, preset, and dispatcher now require a
signature
param in the public-key-setter functions (#990)
Full Changes List
- fix old interface traits by @kamuik16 in #986
- Add ERC1155 Hooks by @ericnordelo in #982
- Add ERC721 hooks by @ericnordelo in #978
- Add account usage guide by @andrew-fleming in #981
- Validate new public key in Account by @ericnordelo in #989
- Validate new public key in EthAccount by @ericnordelo in #990
- Release v0.13.0 by @ericnordelo in #992
New Contributors
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Summary
Added
- before_update and after_update hooks to ERC20Component (#951)
- INSUFFICIENT_BALANCE and INSUFFICIENT_ALLOWANCE errors to ERC20Component (#951)
- ERC20Votes component (#951)
- Preset interfaces (#964)
- UDC docs (#954)
- Util functions to precompute addresses (#954)
Changed
- Allow testing utilities to be importable (#963)
- Utilities documentation (#963)
- Parameter name in
tests::utils::drop_events
(count
->n_events
) (#963) - Presets to include upgradeable functionality (#964)
- ERC20, ERC721, and ERC1155 presets include Ownable functionality (#964)
- EthAccount
- Expected signature format changed from
(r, s, y)
to(r, s)
(#940)
- Expected signature format changed from
Full Changes List
- Release v0.11.0 by @ericnordelo in #958
- chore: add auto check typos flow when RP by @momodaka in #957
- Add custom order to presets page by @ericnordelo in #967
- Allow importable test utils, update utils docs by @andrew-fleming in #963
- Update docs with mixin when applicable by @ericnordelo in #966
- Migrate ERC20Votes to component by @ericnordelo in #951
- ERC20Votes docs by @ericnordelo in #962
- Add udc docs by @andrew-fleming in #954
- Add upgrades to presets by @andrew-fleming in #964
- Remove y from EthAccount signature. by @ericnordelo in #940
- Update cairo syntax highlighting by @ericnordelo in #976
- Release v0.12.0 by @andrew-fleming in #977
Full Changelog: v0.11.0...v0.12.0