Releases: OpenZeppelin/cairo-contracts
Releases · OpenZeppelin/cairo-contracts
v1.0.0
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 usehash_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
- Fix permit hash on v1 by @andrew-fleming in #1285
- Add
initializer_no_metadata
to erc1155 component by @andrew-fleming in #1287 - Add
initializer_no_metadata
to erc721 component by @andrew-fleming in #1278 - Fix Governor timelock salt release branch by @ericnordelo in #1306
- Update license (into release) by @ericglau in #1312
- Prevent potential bitwise operations issue (into release) by @ericnordelo in #1310
- Fix timelock operation hash (release) by @andrew-fleming in #1313
- Fix Multisig quorum issue (v1.0.0) by @immrsd in #1315
- Fix SignerInfo packing issue (v1.0.0) by @immrsd in #1316
- Fix Changelog and versions for release by @ericnordelo in #1307
- fix links to the release-v1.0.0 by @youyyytrok in #1324
- Update governance readme by @immrsd in #1325
- Bump scarb to 2.9.3 and add Debug and PartialEq to component events by @ericnordelo in #1336
- Bump scarb to 2.9.4 by @ericnordelo in #1339
- Remove README no-audit disclaimer by @ericnordelo in #1342
Full Changelog: v0.20.0-rc.0...v1.0.0
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