Releases: Brushfam/openbrush-contracts
v4.0.0
v4.0.0
Meet new secured version of OpenBrush! In this release we fixed main issues that were found in the security review. Contracts that were added in version 4.0.0-beta.1(Governance, PSP22Permit, PSP61) were not audited.
Changes
Changed
- [BREAKING] Separated
_before_token_transfer
and_after_token_transfer
in PSP22 to a traitPSP22Transfer
and added
different implementation on whetherCapped
extension is implemented: #141 - [BREAKING] Changed errors to
isNotSet
fromisZeroAddress
: #136 - Added verification for
PSP22Wrapper
for whether the account indeposit_for
andwithdraw_to
is underlying wrapper: #140 - Added
max_supply
internal method inPSP22
, fixed the issue that amount can be calculated wrong way when usingCapped
andFlashLender
together: #142 PaymentSplitter
now emitsPaymentReceived
event inreceive
method: #139_release_all
method removed fromPaymentSplitter
, since it was considered error-prone and unnecessary: #145- Added
_flash_fee_receiver
method toFlashLender
, fee is now sent to beneficiary instead of being burned: #157 - Added
releasable
method toPaymentSplitter
: #146 - [BREAKING] Ownership now can't be transferred to
None
: #137 - Fixed validation in
macro_definition
: #144 - Use boolean values in
reentrancy_guard
: #143
v4.0.0-beta.1
v3.2.0
What's Changed
- Compatibility with cargo contract v3
- Bump ink! version to 4.2.1
v4.0.0-beta
Welcome the new version of OpenBrush! 🥳
OpenBrush has already been used in production for a long time, and we have accumulated a lot of experience in the process of using it.
We have also received a lot of feedback from the community.
We have been working hard to improve OpenBrush, and now we are finally ready to release the new version of OpenBrush. So get ready to use it!
We decided that this version should be beta version until OpenBrush is audited to make the library as good as possible!
Changes
Added
- [BREAKING]
implementation
,override
,default_impl
macros: #78 - [BREAKING]
storage_item
macro, which implements#[ink::storage_item]
macro, but also allows to make field of struct upgradeable by using#[lazy]
attribute. For all fields that
are eitherLazy
/Mapping
/MultiMapping
is generated it's own constant storage key. Also it allows OpenBrush to work correctly with every default implementation #99 - New OB feature:
Upgradeable
, which implementsset_code_hash
functionality #99 UI
tests for testing different scenarios for macros #77openbrush::accessors
macro for automatic generation of getters/setters for storage items: #66 and 61
Removed
- [BREAKING]
upgradeable_storage
macro,OccupyStorage
trait #99 - [BREAKING]
min_specilization
, now OpenBrush can be used withstable
toolchain: #78 - [BREAKING]
ZERO_ADDRESS
, now usingOption<AccountId>
instead: #98
Changed
- [BREAKING] Now every field in OpenBrush's types that is not read/written directly in storage, is wrapped in
Lazy
, so all the types in OpenBrush can be considered upgradeable: #99
Fixed
More changes coming soon!
We are working on a new features and improvements, and also, as an important announcement, OpenBrush is going under the audit, so stay tuned!
3.1.1
What's Changed
- Change address zero to [255u8;32] by @coreggon11 in #48
- Integration tests are using ink e2e framework instead of typechain by @varex83 in #44
New Contributors
Full Changelog: 3.1.0...3.1.1
3.1.0
What's Changed
- Update docs by @Artemka374 in #23
- Allow override of total_supply by @qudacki in #31
- Bump ink! version to 4.1.0 by @Artemka374 in #34
Breaking changes
- Remove before_received from contract implementations by @Artemka374 in #24
Note
PSP22Receiver and similar traits were removed because before_received
was found as a vulnerability point in ink! audit, that can be used in malicious intents by exhausting the call stack limit.
New Contributors
Full Changelog: 3.0.0...3.1.0
3.0.0
What's changed:
- ink! version was bumped to 4.0.0
3.0.0-beta.1
What's changed:
- ink! version was bumped to 4.0.0-rc (no need to use the version from rev now 🤠 )
3.0.0-beta
What's changed:
- Support of ink! 4
- This version of openbrush uses ink! 4 from commit
4655a8b4413cb50cbc38d1b7c173ad426ab06cde
- You can use this version of ink by importing
ink = { git = "https://github.com/paritytech/ink", rev = "4655a8b4413cb50cbc38d1b7c173ad426ab06cde", default-features = false}
dependency to yourCargo.toml
- We do not use a stable release of ink! due to this fix which is essential for OpenBrush
- You can find the migration information here
- This version of openbrush uses ink! 4 from commit
- Disable support of
Proxy
andDiamond
contracts for now- Initializing storage of upgradeable contracts was marked as a possible attack vector in ink! Therefore the
Proxy
andDiamond
patterns will not work within OpenBrush until this is fixed in ink! 4. We are working on a simple initialization function/macro for now.
- Initializing storage of upgradeable contracts was marked as a possible attack vector in ink! Therefore the