Releases: OpenZeppelin/cairo-contracts
Releases · OpenZeppelin/cairo-contracts
v0.20.0
Summary
Added
- SRC9 (Outside Execution) integration to account presets (#1201)
SNIP12HashSpanImpl
toopenzeppelin_utils::cryptography::snip12
(#1180)- GovernorComponent with the following extensions: (#1180)
- GovernorCoreExecutionComponent
- GovernorCountingSimpleComponent
- GovernorSettingsComponent
- GovernorTimelockExecutionComponent
- GovernorVotesQuorumFractionComponent
- GovernorVotesComponent
is_tx_version_valid
utility function toopenzeppelin_account::utils
(#1224)
Changed
- Remove
mut
fromdata
param incompute_hash_on_elements
(#1206) - Remove
mut
fromcalls
param in__execute__
function of Account and EthAccount components (#1224) - Remove
mut
fromcalls
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 thatowner
is not the zero address (#1221) - Add
verifying_contract
member to theDelegation
struct used in Votesdelegate_by_sig
(#1214)
use crate::votes::VotesComponent::VotingUnitsTrait; - VotingUnitsTrait moved from
openzeppelin_governance::votes::votes
toopenzeppelin_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
tocrate
insrc9.cairo
- Move
Full Changes List
- Release v0.19.0 by @immrsd in #1204
- Add src9 component to account presets by @ericnordelo in #1201
- Chore(deps): Bump crate-ci/typos from 1.27.2 to 1.27.3 by @dependabot in #1205
- Bump snforge, unignore tests by @andrew-fleming in #1203
- Minor improvements for the introspection module by @ericnordelo in #1210
- Minor improvements for the token module by @ericnordelo in #1208
- Minor improvements for the finance module by @ericnordelo in #1209
- Fix missing -m flag in git commit command Update CONTRIBUTING.md by @famouswizard in #1215
- Update README by @ericnordelo in #1216
- Minor improvements to testing package by @andrew-fleming in #1212
- Minor improvements to the merkle tree package by @andrew-fleming in #1213
- Minor governance module improvements plus adding veryfing_contract to Delegation by @ericnordelo in #1214
- Refactor Development Cycle Documentation for Clarity and Consistency by @donatik27 in #1217
- Update Merkle Tree documentation to use Pedersen hash function by @Hopium21 in #1220
- Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 17.0.0 to 18.0.0 by @dependabot in #1219
- Bump scarb version to 2.8.5 by @ericnordelo in #1222
- Minor improvements to Utils package by @andrew-fleming in #1206
- Minor improvements to Upgrades package by @immrsd in #1225
- Clean up and small refactors to the access module by @ggonzalez94 in #1221
- Minor improvements to Account package by @immrsd in #1224
- Add Governor component by @ericnordelo in #1180
- Pre-release 0.20.0-rc.0 by @ericnordelo in #1227
- Chore(deps): Bump crate-ci/typos from 1.27.3 to 1.28.0 by @dependabot in #1231
- Update scarb version in docs by @ericnordelo in #1233
- Chore(deps): Bump crate-ci/typos from 1.28.0 to 1.28.1 by @dependabot in #1236
- Chore(deps): Bump crate-ci/typos from 1.28.1 to 1.28.2 by @dependabot in #1240
- Add Governor documentation by @ericnordelo in #1235
- Bump scarb to v2.9.1 by @andrew-fleming in #1239
- Fix transient deps by @andrew-fleming in #1249
- Add Governor to governance README by @ericnordelo in #1250
New Contributors
- @famouswizard made their first contribution in #1215
- @donatik27 made their first contribution in #1217
- @Hopium21 made their first contribution in #1220
Full Changelog: v0.19.0...v0.20.0
v0.20.0-rc.0
Summary
Added
- SRC9 (Outside Execution) integration to account presets (#1201)
SNIP12HashSpanImpl
toopenzeppelin_utils::cryptography::snip12
(#1180)- GovernorComponent with the following extensions: (#1180)
- GovernorCoreExecutionComponent
- GovernorCountingSimpleComponent
- GovernorSettingsComponent
- GovernorTimelockExecutionComponent
- GovernorVotesQuorumFractionComponent
- GovernorVotesComponent
is_tx_version_valid
utility function toopenzeppelin_account::utils
(#1224)
Changed
- Remove
mut
fromdata
param incompute_hash_on_elements
(#1206) - Remove
mut
fromcalls
param in__execute__
function of Account and EthAccount components (#1224) - Remove
mut
fromcalls
param in__validate__
function of Account and EthAccount components (#1224)
Changed (Breaking)
- The initializer in
OwnableComponent
now checks thatowner
is not the zero address (#1221) - Add
verifying_contract
member to theDelegation
struct used in Votesdelegate_by_sig
(#1214)
use crate::votes::VotesComponent::VotingUnitsTrait; - VotingUnitsTrait moved from
openzeppelin_governance::votes::votes
toopenzeppelin_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)
Full Changes List
- Release v0.19.0 by @immrsd in #1204
- Add src9 component to account presets by @ericnordelo in #1201
- Chore(deps): Bump crate-ci/typos from 1.27.2 to 1.27.3 by @dependabot in #1205
- Bump snforge, unignore tests by @andrew-fleming in #1203
- Minor improvements for the introspection module by @ericnordelo in #1210
- Minor improvements for the token module by @ericnordelo in #1208
- Minor improvements for the finance module by @ericnordelo in #1209
- Fix missing -m flag in git commit command Update CONTRIBUTING.md by @famouswizard in #1215
- Update README by @ericnordelo in #1216
- Minor improvements to testing package by @andrew-fleming in #1212
- Minor improvements to the merkle tree package by @andrew-fleming in #1213
- Minor governance module improvements plus adding veryfing_contract to Delegation by @ericnordelo in #1214
- Refactor Development Cycle Documentation for Clarity and Consistency by @donatik27 in #1217
- Update Merkle Tree documentation to use Pedersen hash function by @Hopium21 in #1220
- Chore(deps): Bump DavidAnson/markdownlint-cli2-action from 17.0.0 to 18.0.0 by @dependabot in #1219
- Bump scarb version to 2.8.5 by @ericnordelo in #1222
- Minor improvements to Utils package by @andrew-fleming in #1206
- Minor improvements to Upgrades package by @immrsd in #1225
- Clean up and small refactors to the access module by @ggonzalez94 in #1221
- Minor improvements to Account package by @immrsd in #1224
- Add Governor component by @ericnordelo in #1180
- Pre-release 0.20.0-rc.0 by @ericnordelo in #1227
New Contributors
- @famouswizard made their first contribution in #1215
- @donatik27 made their first contribution in #1217
- @Hopium21 made their first contribution in #1220
Full Changelog: v0.19.0...v0.20.0-rc.0
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