Skip to content

Commit

Permalink
Split milestones into 6-7, 8-9. Removed set_code_hash part. Reduced…
Browse files Browse the repository at this point in the history
… rate to fit < 100 000
  • Loading branch information
xgreenx committed May 23, 2022
1 parent ae03b39 commit ca672c4
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions applications/openbrush-follow-up-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The [second grant](https://github.com/w3f/Grants-Program/pull/621) covered the 3
- [Openbrush Milestone 4 delivery report](https://github.com/w3f/Grant-Milestone-Delivery/pull/385)
- [Openbrush Milestone 5 delivery report](-)

This grant aims to cover milestones 6-9.
This grant aims to cover milestones 6-7.

### Overview
The mission of this project is to make ink! usable and facilitate WASM ecosystem adoption.
Expand Down Expand Up @@ -165,11 +165,11 @@ PSP37 - https://github.com/w3f/PSPs/pull/37

### Overview

**We have decided to describe a full roadmap of an OpenBrush here, with estimates. However, the funding we request at this stage is for milestones 6-9.**
**We have decided to describe a full roadmap of an OpenBrush here, with estimates. However, the funding we request at this stage is for milestones 6-7.**

* **Total Estimated Duration:** 23 weeks
* **Total Estimated Duration:** 13 weeks
* **Full-Time Equivalent (FTE):** 3
* **Total Costs:** 181 500 USD
* **Total Costs:** 99 999 USD

### Previous work

Expand Down Expand Up @@ -267,27 +267,27 @@ PSP37 - https://github.com/w3f/PSPs/pull/37

* **Estimated Duration:** 6 weeks
* **FTE:** 3
* **Costs:** 54 000 USD

| Number | Deliverable | Specification |
|--------|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 0a. | License | MIT |
| 0b. | Documentation | We will provide a documentation of how to write upgradable contracts |
| 1. | Implement `delegate_call` in contract-pallet | The ethereum has a [`delegatecall`](https://docs.soliditylang.org/en/v0.8.10/introduction-to-smart-contracts.html#delegatecall-callcode-and-libraries) function that helps to achieve upgradable functionality in contracts. We will add the support of that function into the `contract-pallet`. With that function the OpenBurhs will provide the implementation fo `Proxy` and `Diamond` patterns. |
| 2. | Implement `set_code_hash` in contract-pallet | The usage of `Proxy` pattern adds overhead during each execution of the contract. It increase the cost of execution, and size of the proof of verification. Instead of `delegate_call` the `contract-pallet` can provide a separate function to change the source code fo the contract. It simplifies the flow and allow to easy upgrade the contract in the future. |
| 3. | Import `delegate_call`, `set_code_hash` in ink! and update `Proxy` example | Support of `delegate_call`, `set_code_hash` on ink! level and providing a user-friendly abstraction. The ink! already provides an abstraction for cross-contract communication, we will extend it to support `delegate_call`. |
| 4. | Implement Diamond Standard in OpenBrush with ink! | We will provide the implementation of the [Diamond standard](https://eips.ethereum.org/EIPS/eip-2535) in OprnBrush. Anyone can easily reuse the implementation or use traits to interact with contracts. |
| 5. | Implement Diamond Standard on raw Rust without ink! | Right now the ink! adds a lot of overhead and increases the size of the contract. Implementation of the Diamond standard with raw rust will show the overhead impact and will provide an additional example for WASM developers on how to write contracts without ink!. |
| 6. | Create an upgradable analog of each contract in OpenBursh | OpenBrush provides many implementations of different contracts. With upgradability, we also need to provide an upgradable version of each contract. |
| 7a. | Marketing - Write down article about OpenBrush | We are going to write the article abot the importance of OpenBrush and applied usage of it. Moreover, Supercolony team will promote it in Twitter, Medium etc. |
| 7b. | Marketing - Create 2 educational video for OpenBrush | We are going to work on educational video materials for OpenBrush and ink! Community. We see a huge gap in knowledge, understanding, and vision for the whole community in that sphere. Moreover, Supercolony team will promote it in Twitter, Medium etc. We will create a lower entry threshold for newcomers by this educational program. |
* **Costs:** 50 000 USD

| Number | Deliverable | Specification |
|--------|-----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 0a. | License | MIT |
| 0b. | Documentation | We will provide a documentation of how to write upgradable contracts |
| 1. | Implement `delegate_call` in contract-pallet | The ethereum has a [`delegatecall`](https://docs.soliditylang.org/en/v0.8.10/introduction-to-smart-contracts.html#delegatecall-callcode-and-libraries) function that helps to achieve upgradable functionality in contracts. We will add the support of that function into the `contract-pallet`. With that function the OpenBurhs will provide the implementation fo `Proxy` and `Diamond` patterns. |
| 2. | Implement `set_code_hash` in contract-pallet | The usage of `Proxy` pattern adds overhead during each execution of the contract. It increase the cost of execution, and size of the proof of verification. Instead of `delegate_call` the `contract-pallet` can provide a separate function to change the source code fo the contract. It simplifies the flow and allow to easy upgrade the contract in the future. |
| 3. | Import `delegate_call` in ink! and update `Proxy` example | Support of `delegate_call` on ink! level and providing a user-friendly abstraction. The ink! already provides an abstraction for cross-contract communication, we will extend it to support `delegate_call`. |
| 4. | Implement Diamond Standard in OpenBrush with ink! | We will provide the implementation of the [Diamond standard](https://eips.ethereum.org/EIPS/eip-2535) in OprnBrush. Anyone can easily reuse the implementation or use traits to interact with contracts. |
| 5. | Implement Diamond Standard on raw Rust without ink! | Right now the ink! adds a lot of overhead and increases the size of the contract. Implementation of the Diamond standard with raw rust will show the overhead impact and will provide an additional example for WASM developers on how to write contracts without ink!. |
| 6. | Create an upgradable analog of each contract in OpenBursh | OpenBrush provides many implementations of different contracts. With upgradability, we also need to provide an upgradable version of each contract. |
| 7a. | Marketing - Write down article about OpenBrush | We are going to write the article abot the importance of OpenBrush and applied usage of it. Moreover, Supercolony team will promote it in Twitter, Medium etc. |
| 7b. | Marketing - Create 2 educational video for OpenBrush | We are going to work on educational video materials for OpenBrush and ink! Community. We see a huge gap in knowledge, understanding, and vision for the whole community in that sphere. Moreover, Supercolony team will promote it in Twitter, Medium etc. We will create a lower entry threshold for newcomers by this educational program. |


#### Milestone 7. AssetPallet chains extension

* **Estimated Duration:** 7 weeks
* **FTE:** 2.5
* **Costs:** 52 500 USD
* **Costs:** 49 999 USD

| Number | Deliverable | Specification |
|--------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
Expand All @@ -302,6 +302,8 @@ PSP37 - https://github.com/w3f/PSPs/pull/37
| 7a. | Marketing - Create 2 educational video for OpenBrush/ink! | We are going to work on educational video materials for OpenBrush and ink! Community. We see a huge gap in knowledge, understanding, and vision for the whole community in that sphere. Moreover, Supercolony team will promote it in Twitter, Medium etc. We will create a lower entry threshold for newcomers by this educational program. |
| 7b. | Marketing - Add SEO optimization to [OpenBrush website](https://openbrush.io/) | SEO optimozation for OpenBrush website |

### Future work

#### Milestone 8. `UniquePallet`/`RMRKPallet` chain extension

* **Estimated Duration:** 6 weeks
Expand Down

0 comments on commit ca672c4

Please sign in to comment.