diff --git a/deliveries/openbrush_follow_up-milestone_2.md b/deliveries/openbrush_follow_up-milestone_2.md new file mode 100644 index 000000000..91b420b54 --- /dev/null +++ b/deliveries/openbrush_follow_up-milestone_2.md @@ -0,0 +1,30 @@ +# Milestone Delivery :mailbox: + +**The [invoice form :pencil:](https://docs.google.com/forms/d/e/1FAIpQLSfmNYaoCgrxyhzgoKQ0ynQvnNRoTmgApz9NrMp-hd8mhIiO0A/viewform) has been filled out correctly for this milestone and the delivery is according to the official [milestone delivery guidelines](https://github.com/w3f/Grants-Program/blob/master/docs/milestone-deliverables-guidelines.md).** + +* **Application Document:** [OpenBrush follow-up](https://github.com/w3f/Grants-Program/blob/master/applications/openbrush-follow-up.md). +* **Milestone Number:** 2 milestone of the grant and 4 milestone of the OpenBrush + +**Context** + +That milestone was related to the creation of the standards and their implementation in OpenBrush. +- [PSP22 - Fungible Token standard](https://github.com/w3f/PSPs/pull/22) +- [PSP34 - Non Fungible Token standard](https://github.com/w3f/PSPs/pull/34) +- [PSP37 - Multi Token standard](https://github.com/w3f/PSPs/pull/37) + +Another important delivery was to use the latest ink! in OpenBrush. +We had two PR related to that. First, we started [supporting the `ink!-rc6`](https://github.com/Supercolony-net/openbrush-contracts/pull/53), but after some changes in ink! we were unable to use it according to several issues. +After fixing these issues we finally started to [support the latest ink](https://github.com/Supercolony-net/openbrush-contracts/pull/78) again. + +**Deliverables** + +| Number | Deliverable | Link | Notes | +|--------|---------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0b. | Documentation | [Documentation](https://docs.openbrush.io) | We actualized the documentation, refactored it to be more clear. Added separate section on how to [manage the structure of the project](https://docs.openbrush.io/smart-contracts/example/overview). Documented all extensions. | +| 0c. | Testing Guide | [How to test](https://github.com/Supercolony-net/openbrush-contracts#installation--testing) | Added CI to run unit and integration tests automatically. The latest usage of the ink! requires usage of the latest `substrate`. At the moment only `substrate-contracts-node` supports it by it takes a lot time to run all integration tests. | +| 1. | Create Proposal for Fungible token | [PSP22 - Fungible Token standard](https://github.com/w3f/PSPs/pull/22) | `PSP22` - `Published` state and implemented. | +| 2. | Implement extensions for tokens | [PSP22 - Burnable, Mintable, Metadata](https://github.com/Supercolony-net/openbrush-contracts/pull/43), [NFT and Multi token - Burnable, Mintable, Metadata](https://github.com/Supercolony-net/openbrush-contracts/pull/45), [PSP22 Extensions](https://github.com/Supercolony-net/openbrush-contracts/pull/47), [Refactor Burnable Mintable for all PSPs](https://github.com/Supercolony-net/openbrush-contracts/pull/73) | Implemented `Burnable`, `Mintable`, `Metadata` extensions for all PSPs. Also implemented `FlashLender` - for `PSP22`, `PSP22Wrapper`, `PSP22TokenTimelock`, `PSP22Capped`, `PSP22Pausable`. Updated contracts to latest changes in OpenZeppelin. | +| 3. | Create Proposal for Non Fungible token and Multi token | [PSP34 - Non Fungible Token standard](https://github.com/w3f/PSPs/pull/34), [PSP37 - Multi Token standard](https://github.com/w3f/PSPs/pull/37) | `PSP34` - `Ready for feedback` state and implemented. `PSP37` - `Draft` state and implemented but not fully adapted(waiting for feedback). | +| 4. | Use original ink! instead of our own | [`ink!-rc6`](https://github.com/Supercolony-net/openbrush-contracts/pull/53), [`ink!-rc10`](https://github.com/Supercolony-net/openbrush-contracts/pull/78) | We've updated and refactored OpenBrush several times to use a new feature from a new ink!. | +| 5. | Refactor the contracts to be compatible with PSPs | [Use `Result` in contracts](https://github.com/Supercolony-net/openbrush-contracts/pull/51), [PSP34 adaption](https://github.com/Supercolony-net/openbrush-contracts/pull/74), [latest ink!](https://github.com/Supercolony-net/openbrush-contracts/pull/78) | During each big change, all contracts were refactored. We only had a separate refactoring for `PSP34` after the finalization of the vision about the NFT standard. | +| 6. | Refactor the structure of the OpenBrush to provide agnostic traits | [Agnostic traits](https://github.com/Supercolony-net/openbrush-contracts/pull/58), [Wrappers for traits](https://github.com/Supercolony-net/openbrush-contracts/pull/54) | It was a big refactoring to support agnostic traits. OpenBrush provides agnostic traits, so with the "wrapper trait" feature, the users can do cross-contract calls only with traits without knowledge about the implementation. |