Skip to content

Releases: Brushfam/openbrush-contracts

v4.0.0

03 Oct 16:14
49b09b3
Compare
Choose a tag to compare

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 trait PSP22Transfer and added
    different implementation on whether Capped extension is implemented: #141
  • [BREAKING] Changed errors to isNotSet from isZeroAddress: #136
  • Added verification for PSP22Wrapper for whether the account in deposit_for and withdraw_to is underlying wrapper: #140
  • Added max_supply internal method in PSP22, fixed the issue that amount can be calculated wrong way when using Capped and FlashLender together: #142
  • PaymentSplitter now emits PaymentReceived event in receive method: #139
  • _release_all method removed from PaymentSplitter, since it was considered error-prone and unnecessary: #145
  • Added _flash_fee_receiver method to FlashLender, fee is now sent to beneficiary instead of being burned: #157
  • Added releasable method to PaymentSplitter: #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

31 Aug 15:38
Compare
Choose a tag to compare
v4.0.0-beta.1 Pre-release
Pre-release

What's new?

  • Added new Governance feature with extensions - #126
  • Added standard interface detection implementation - #112
  • Added PSP22 Permit extension - #109
  • Bumped ink! version to 4.3.0 - #129

v3.2.0

04 Aug 09:32
Compare
Choose a tag to compare

What's Changed

  • Compatibility with cargo contract v3
  • Bump ink! version to 4.2.1

v4.0.0-beta

20 Jul 15:55
5533473
Compare
Choose a tag to compare

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 either Lazy/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 implements set_code_hash functionality #99
  • UI tests for testing different scenarios for macros #77
  • openbrush::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 with stable toolchain: #78
  • [BREAKING] ZERO_ADDRESS, now using Option<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

  • Fixed reentrancy guard problem: #88
  • Updated reentrancy example: #108

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

09 May 07:37
13e82f3
Compare
Choose a tag to compare

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

03 Apr 09:49
107348d
Compare
Choose a tag to compare

What's Changed

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

17 Feb 10:42
9894c2f
Compare
Choose a tag to compare

What's changed:

  • ink! version was bumped to 4.0.0

3.0.0-beta.1

02 Feb 18:40
c0185bb
Compare
Choose a tag to compare
3.0.0-beta.1 Pre-release
Pre-release

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

04 Jan 23:08
14ff655
Compare
Choose a tag to compare
3.0.0-beta Pre-release
Pre-release

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 your Cargo.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
  • Disable support of Proxy and Diamond contracts for now
    • Initializing storage of upgradeable contracts was marked as a possible attack vector in ink! Therefore the Proxy and Diamond patterns will not work within OpenBrush until this is fixed in ink! 4. We are working on a simple initialization function/macro for now.