Skip to content

Releases: Supercolony-net/openbrush-contracts

OpenBrush v1.4.0

12 Mar 12:51
5ba10e6
Compare
Choose a tag to compare

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 of StorageHashMap. 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

07 Feb 10:31
b3d6181
Compare
Choose a tag to compare
  • Refactored PSP1155 into PSP34
  • Remove burn_from and mint_to from FT, NFT and multi Token
  • Update Burnable and Mintable 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

09 Jan 01:01
524768c
Compare
Choose a tag to compare
  • 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

07 Dec 13:26
Compare
Choose a tag to compare

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

23 Aug 16:02
7834068
Compare
Choose a tag to compare
  • 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 with metadata_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 the InkStorage trait).
  • Renamed PSP20 -> PSP22.
  • Added/Updated/Extended/Fixed documentation. Created GitHub Pages.

OpenBrush v0.3.0-rc1

06 Jul 12:03
1ebb3c1
Compare
Choose a tag to compare
  • 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 of temp.
  • 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

14 Jun 12:51
Compare
Choose a tag to compare
  • 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 via ink::trait_definition. It uses function with according naming from internal trait.
  • Added brush::contract macro which consumes impl_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

05 Jun 15:36
Compare
Choose a tag to compare
OpenBrush v0.1.0-rc2 Pre-release
Pre-release
  • Changed RoleType in AccessControl to u32.
  • Added example with Erc721 + AccessControl.

OpenBrush v0.1.0-rc1

05 Jun 13:34
Compare
Choose a tag to compare
OpenBrush v0.1.0-rc1 Pre-release
Pre-release
  • 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.