Social Recovery Wallet#1001
Social Recovery Wallet#1001Noc2 merged 4 commits intow3f:masterfrom hypha-dao:feature/social_recovery_wallet
Conversation
takahser
left a comment
There was a problem hiding this comment.
We will maintain the components on the mainline releases of Substrate for no less than 2 years
Just to be clear, you're not actively planning to abandon this project after max. 2 years, is that correct?;)
Also, I have a question to the deliveries. Do they usually include the whole stack for each deliverable (e.g. Configure Recovery), i.e. UI, business logic, pallet calls?
| For each milestone, we will deliver documentation and a video. | ||
|
|
||
| | Number | Deliverable | Specification | | ||
| | -----: | ----------- | ------------- | | ||
| | 0a. | License | MIT | | ||
| | 0b. | Documentation | We will provide **inline documentation** of the code. | | ||
| | 0c. | Video | We will record and publish a video explainer and demonstration of all features. | |
There was a problem hiding this comment.
I understand, that at first sight it might make sense to declare these deliveries only once while avoiding redundancy (DRY), instead of copying them into each milestone. However, for various reasons, we'd prefer to have them in each milestone.
Please also note that Deliverables 0a-0d are mandatory for all milestones, unless a reason is provided why this shouldn't be followed. Of course, you're free to deliver 0e. Video in addition to these.
There was a problem hiding this comment.
Thank you for this clarification - I missed this.
0d is a dockerfile? Is this also required for mobile apps? Our app will run on Android and iOS, I was thinking delivery would be through Apple and Google app stores, the respective testing tracks (open testing / Testflight)
I imagine maybe it is possible to wrap an android simulator into a docker file...
I am more than happy to rectify this and include these into all milestones. Thank you.
For reference:
| 0a. | License | Apache 2.0 / GPLv3 / MIT / Unlicense |
| 0b. | Documentation | We will provide both **inline documentation** of the code and a basic **tutorial** that explains how a user can (for example) spin up one of our Substrate nodes and send test transactions, which will show how the new functionality works. |
| 0c. | Testing Guide | Core functions will be fully covered by unit tests to ensure functionality and robustness. In the guide, we will describe how to run these tests. |
| 0d. | Docker | We will provide a Dockerfile(s) that can be used to test all the functionality delivered with this milestone. |
| 0e. | Article | We will publish an **article**/workshop that explains [...] (what was done/achieved as part of the grant). (Content, language and medium should reflect your target audience described above.)
There was a problem hiding this comment.
Would this be acceptable, added to all milestones @takahser ?
| Number | Deliverable | Specification |
|---|---|---|
| 0a. | License | MIT |
| 0b. | Documentation | We will provide both inline documentation of the code and a basic tutorial that explains how a user can deploy the app on their mobile phone. |
| 0c. | Testing Guide | Business logic functions will be fully covered by unit tests to ensure functionality and robustness. We will describe how to run these tests. |
| 0d. | App Binaries | We will provide an APK for Android and deliver the app on both Android and iOS platforms via the respective testing tracks in the Google Play and Apple App stores. |
| 0e. | Video | We will record and publish a video explainer and demonstration of all features. |
There was a problem hiding this comment.
Ok I have made the requested changes.
There was a problem hiding this comment.
As for docker vs app delivery - I did a brief search and it is possible to launch Flutter unit tests from a docker container, but the docker container can't start an app in the native simulator - so it's really not all that much fun.
We would be more than happy to deliver a dockerized flutter that runs the unit tests, if that is desired.
There was a problem hiding this comment.
Thanks for your research. I think the main reason we require docker is that it allows us to run the whole project in an easy and integrative way. Since this doesn't seem to be possible for mobile apps, I'm fine with skipping it, as long as you can provide an easy way to run the unit tests. 👍
Co-authored-by: S E R A Y A <takahser@users.noreply.github.com>
No, to the contrary, we are hoping this grant will kick off our full deployment of the wallet on Hashed Network Initially all Hashed Network partners - a suite of business apps - can use the wallet as a secure signing module. We also think that due to the QR code sign and broadcast and node selector capability, it will be universally useful to all apps in the polkadot ecosystem.
We plan to deliver apps that run on the mobile platforms - Android and iOS. This includes business logic, UI, and pallet calls. It will initially run on Hashed.io production nodes - they include the recovery pallet, until the node selector is implemented, at which point it should be able to run on any substrate chain with recovery pallet. |
Thanks for your help and thanks for the approval. I think we can easily add docker for the purpose of running unit tests, as it is much more convenient than having to go and install flutter, make sure it's the right version, and so on. So for running unit tests it's OK. And for running the app, we will use the test tracks, it's the best and easiest way to deploy to mobile devices. |
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the application. It’s nice that someone wants to work on this rfp. I have a few questions:
- Just to double-check the entire code will be open source under the MIT licence and can be compiled by us, correct? Because you mentioned that you will provide the APK
- Did you take a look at other existing open source wallets, like https://github.com/polkawallet-io/polkawallet-flutter You might be able to leverage some of their work. You can find more wallets here: https://github.com/w3f/Grants-Program/blob/master/docs/polkadot_stack.md
Yes. The whole app is under MIT license and can be compiled by you, or really, anyone. I am planning to provide a Docker container that can build the app and run the tests. But Docker can't launch a simulator, so we will also provide Testflight (iOS) and test track (Google Play) versions of the app. On Android we usually attach an APK to releases so users can sideload. But this is less reliable than the Google Play store approach, in my experience. Google Play and Apple Testflight usually run on all devices. Sideloading APK seems to be a little less reliable, sometimes not working. But it's easy enough to create an APK and attach it to the release, and I like the idea of being independent of app stores.
Yes, I did an in depth code review of Polkawallet since it's also a Flutter wallet. We will use the same mechanism of wrapping Polkadot JS into a hidden web view to interact with the chain. This is the best option for a Flutter integration. There are a few different libraries on Flutter dev that can wrap JS code, some use a native web view, others use a JS implementation in Flutter. For user interface and framework we have a great architecture in the Seeds Light Wallet which we will use and adapt (also MIT licensed). Our codebase is a lot cleaner than Polkawallet, at least in my - clearly biased- view. I will take a look at the other wallets too. |
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the quick reply. I have one more request before I approve it: Could you reduce the price of your second and their milestone to 15k each. This seems more aligned with your estimated work (2.5 FTE, 6 weeks) and your first milestone.
I see - the math seems off there. I will look into this. |
The times on the milestones were wrong, and the cost was not linearly distributed. I think we were focused on total time, total FTE, and on deliverables, but didn't check the times on the milestones. I made the following improvements
Thank you for finding this and please let me know if that is sufficient to approve. |
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the update. I’m happy to go ahead with it.
takahser
left a comment
There was a problem hiding this comment.
I'm still happy to go ahead with it;)
Thanks for the approval! |
|
Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions. |
|
Hey @n13 , any updates on how Milestone 3 is coming along? |
|
Hey!
Yes I am working on it just now.
We had some delays due to other projects happening but I am hoping to
deliver this next week
Thanks for checking in!
…On Fri, Jan 20, 2023 at 6:28 AM Keegan | W3F ***@***.***> wrote:
Hey @n13 <https://github.com/n13> , any updates on how Milestone 3 is
coming along?
—
Reply to this email directly, view it on GitHub
<#1001 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAP7BBRHQZNKFPKR324OFLWTG5ZNANCNFSM5ZM74KSQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
|
@n13 No problem, thanks for the update! If you think it will take longer than 2 weeks, you can always file an amendment for approval to extend the timeline. |
I delivered Milestone 3 just now! Yay!! 🎉 |
Project Abstract
Proposal for the RFP titled Social Recovery Wallet.
We propose a flutter app for iOS and Android based on our current Seeds Light Wallet app which also has a social recovery component.
For which grant level are you applying?
Application Checklist
project_name.md) and updated.@n1300:matrix.orgHow Did You Hear About our grants program?