Releases: Supercolony-net/openbrush-contracts
Releases · Supercolony-net/openbrush-contracts
OpenBrush v1.4.0
We are able to use the latest ink! =) At the moment it points to master
, but then the 3.0.0-rc10
release will be ready we will create release v1.4.1.
- Updated contract to be compatible with latest
contract-pallet
. - Simplified the brush's codegen, now we don't need to worry about the
ink-as-dependency
feature. - Of course, reduction of the size of the code!=) All contracts are moved to use
Mapping
instead ofStorageHashMap
. All values are passed by reference instead of move. - Fixed the issues with the target folder
- Fixed highlighting for rust-analyzer
OpenBrush v1.3.0
- Refactored
PSP1155
intoPSP34
- Remove
burn_from
andmint_to
from FT, NFT and multi Token - Update
Burnable
andMintable
extensions - Update
_before_token_transfer
and add_after_token_transfer
to FT, NFT and multi Token - Remove owner validation logic for permissioned functions (
_mint
,_burn
) - Fix broken github links in documentation
OpenBrush v1.2.0
- Implemented Agnostic traits - don't contain any stuff related to the implementation of the trait.
- Created a new macro
brush::wrapper
. That macro allows defining a new type - wrapper around some trait. All methods that are marked with#[ink(message)]
will generate in wrapper a code to do cross-contract calls. So now is enough to have a trait definition to do cross-contract calls. - Created an example and updated documentation. The example shows how better to maintain the structure of the project and how you can split the logic to improve the readability.
- Configured the CI to run unit and integration tests.
OpenBrush v1.1.0
That release contains a lot of refactoring and new extensions. The project uses Results
everywhere instead of panic. That release simplifies the usage of the OpenBrush to do cross-contract calls to other contracts.
- Started using ink!
3.0-rc6
instead of our own version. - Each contract returns
Result
instead of panic on error. - Implemented extensions:
- PSP22Burnable
- PSP22Metadata
- PSP22Mintable
- FlashLender - for PSP22
- PSP22Wrapper
- PSP22TokenTimelock
- PSP721Burnable
- PSP721Mintable
- PSP721Metadata
- PSP1155Burnable
- PSP1155Mintable
- PSP1155Metadata - Added example for each new extension and also added example how to implement:
- PSP22Capped
- PSP22Pausable - Removed the usage of stub implementation for contracts. Instead of it, we added a new macro
#[brush::wrapper]
to define wrappers around traits. With that wrapper, the developer is able to do a cross-contract call to the contract that implements that trait. - Fixed bug in default implementation during cross-contract calls to
Receiver
. - Added more integration and unit tests.
- Updated documentation to cover extensions.
OpenBrush v1.0.0
- Implemented Advanced modifiers on Rust level.
- Redesigned storage traits. Instead of adding fields to the struct during compilation time via macro, the user must declare the corresponding data field in the storage struct and mark it with an attribute from the derive macro.
- Redesigned default implementation in traits. Now, the trait defined by the user is a simple rust trait. Our macro will generate separate "external" trait with
#[ink(message)]
and#[ink(constructor)]
. This trait will have the name of the original trait + prefix. All methods in this trait also will be prefixed. But withmetadata_name
attribute we will generate the same ABI. - Added macros to generate a hash from the string during compilation time.
- Renamed IOwnable -> Ownable, IAccessControl -> AccessControl.
- Added new contracts: TimelockController, PaymentSplitter, ReentrancyGuard, and Pausable.
- Introduced a
Flush
trait supported by storage(if you are implementing theInkStorage
trait). - Renamed
PSP20
->PSP22
. - Added/Updated/Extended/Fixed documentation. Created GitHub Pages.
OpenBrush v0.3.0-rc1
- Added derive macros for storage traits. Based on methods in storage trait macro will generate according to fields in the struct.
- Added integration tests for the AccessControl example.
- Added initial documentation generated from readme files.
- Added support of simple modifiers.
- Added unit tests for Ownable and AccessControl.
- Added Ownable + PSP1155 example.
- Added comments for macros with examples of usage.
- Changed folder for storing metadata file. Now it is the
target
folder instead oftemp
. - Tuned implementation of PSP20 to PSP.
- Removed
impl_trait
macro. Instead of it added support of default implementation in external trait definition. Users can define default implementation in traits and macro will copy/paste this implementation during the generation of the contract(the implementation must be public and the user must import everything from the according crate).
OpenBrush v0.2.0-rc1
- Added ability to store the definition of traits, methods and etc in the temporary metadata file.
- Added
brush::impl_trait
macro which generates external implementation based on external trait defined viaink::trait_definition
. It uses function with according naming from internal trait. - Added
brush::contract
macro which consumesimpl_trait
macro before ink codegen. - Added
brush::trait_definition
to hide reflaction functionality. - Removed underscore from all public methods inside of internal trait.
- Removed Erc*Internal traits. All methods from them moved to accord external trait.
- Simplified public functions to not return results with errors. Now all contracts will assert if some inner check can't be passed.
- Moved unit tests to separate folders.
OpenBrush v0.1.0-rc2
- Changed RoleType in AccessControl to
u32
. - Added example with Erc721 + AccessControl.
OpenBrush v0.1.0-rc1
- Added initial implementation of fungible, non-fungible, and multi tokens.
- Added implementation of AccessControl and Ownable.
- Added example of ERC20 usage.
- Added stub implementation for tokens.
- Added integration tests for ERC20.
- Defined readme and issues-blockers for the library.