Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenBrush follow-up delivery milestone 4 #385

Merged
merged 2 commits into from
Mar 14, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions deliveries/openbrush_follow_up-milestone_2.md
Original file line number Diff line number Diff line change
@@ -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. |