All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- [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
- [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
- [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
- Added new Governance feature with extensions: #126 - was not under audit
- Added standard interface detection implementation: #112 - was not under audit
- Added PSP22 Permit extension: #109 - was not under audit
- Crypto module with some useful methods for better DX: #109 - was not under audit
- Bumped ink! version to 4.3.0: #129
- [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] Removed
PSP22::approve
method, because it creates a double-spending issue. We recommend usingincrease_allowance
anddecrease_allowance
instead: #138 - [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