From ca672c418e500a9ac1247f25a694a6fe8dce178c Mon Sep 17 00:00:00 2001 From: xgreenx Date: Mon, 23 May 2022 09:49:24 +0100 Subject: [PATCH] Split milestones into 6-7, 8-9. Removed `set_code_hash` part. Reduced rate to fit < 100 000 --- applications/openbrush-follow-up-2.md | 40 ++++++++++++++------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/applications/openbrush-follow-up-2.md b/applications/openbrush-follow-up-2.md index f6652b15715..bfb52511d19 100644 --- a/applications/openbrush-follow-up-2.md +++ b/applications/openbrush-follow-up-2.md @@ -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. @@ -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 @@ -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 | |--------|---------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -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