Releases: Supercolony-net/openbrush-contracts
Releases · Supercolony-net/openbrush-contracts
Release list
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-dependencyfeature. - Of course, reduction of the size of the code!=) All contracts are moved to use
Mappinginstead 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
PSP1155intoPSP34 - Remove
burn_fromandmint_tofrom FT, NFT and multi Token - Update
BurnableandMintableextensions - Update
_before_token_transferand add_after_token_transferto 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-rc6instead of our own version. - Each contract returns
Resultinstead 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_nameattribute 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
Flushtrait supported by storage(if you are implementing theInkStoragetrait). - 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
targetfolder instead oftemp. - Tuned implementation of PSP20 to PSP.
- Removed
impl_traitmacro. 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_traitmacro which generates external implementation based on external trait defined viaink::trait_definition. It uses function with according naming from internal trait. - Added
brush::contractmacro which consumesimpl_traitmacro before ink codegen. - Added
brush::trait_definitionto 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.