Skip to content

Social Recovery Wallet#1001

Merged
Noc2 merged 4 commits intow3f:masterfrom
hypha-dao:feature/social_recovery_wallet
Jun 27, 2022
Merged

Social Recovery Wallet#1001
Noc2 merged 4 commits intow3f:masterfrom
hypha-dao:feature/social_recovery_wallet

Conversation

@n13
Copy link
Copy Markdown
Contributor

@n13 n13 commented Jun 21, 2022

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?

  • Level 1: Up to $10,000, 2 approvals
  • Level 2: Up to $50,000, 3 approvals
  • Level 3: Unlimited, 5 approvals (for > $100k Web3 Foundation Council approval)

Application Checklist

  • The application template has been copied, renamed ( project_name.md) and updated.
  • I have read and understood the FAQs, application guidelines and announcement guidelines.
  • A BTC, Ethereum (USDT/USDC/DAI) or Polkadot/Kusama (aUSD) address for the payment of the milestones is provided inside the application.
  • I have read and acknowledge the terms and conditions.
  • The software delivered for this grant will be released under an open-source license specified in the application.
  • The initial PR contains only one commit (squash and force-push if needed).
  • The grant will only be announced once the first milestone has been accepted.
  • I prefer the discussion of this application to be in a private Element/Matrix channel. My username is: @n1300:matrix.org

How Did You Hear About our grants program?

  • Social Media
  • Hackathon
  • Personal Recommendation
  • Substrate Builders Program
  • Investor/VC
  • Online Search
  • Other: _______

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jun 21, 2022

CLA assistant check
All committers have signed the CLA.

Copy link
Copy Markdown
Contributor

@takahser takahser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Comment on lines +132 to +138
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. |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok I have made the requested changes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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. 👍

@takahser takahser self-assigned this Jun 22, 2022
@takahser takahser added the changes requested The team needs to clarify a few things first. label Jun 22, 2022
Co-authored-by: S E R A Y A <takahser@users.noreply.github.com>
@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jun 22, 2022

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?

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?;)

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.

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?

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.

@n13 n13 requested a review from takahser June 22, 2022 09:40
@takahser takahser added ready for review The project is ready to be reviewed by the committee members. and removed changes requested The team needs to clarify a few things first. labels Jun 22, 2022
takahser
takahser previously approved these changes Jun 22, 2022
Copy link
Copy Markdown
Contributor

@takahser takahser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@n13 thanks for fixing, looks better now. I think we can skip docker in this case, providing us with testing track access should be sufficient imho. I'm happy to approve your application and share it with my team.

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jun 22, 2022

@n13 thanks for fixing, looks better now. I think we can skip docker in this case, providing us with testing track access should be sufficient imho. I'm happy to approve your application and share it with my team.

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.

Copy link
Copy Markdown
Contributor

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the application. It’s nice that someone wants to work on this rfp. I have a few questions:

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jun 22, 2022

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

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.

@n13 n13 requested a review from Noc2 June 22, 2022 12:55
Copy link
Copy Markdown
Contributor

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jun 23, 2022

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.

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jun 23, 2022

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.

@Noc2

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

  • Milestones add up to 3 months now (the total project period)
  • Cost over time is constant, based on a blended hourly rate of 35 USD
  • Updated total cost to 45,500 USD

Thank you for finding this and please let me know if that is sufficient to approve.

@n13 n13 requested a review from Noc2 June 23, 2022 16:36
Copy link
Copy Markdown
Contributor

@Noc2 Noc2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update. I’m happy to go ahead with it.

@Noc2 Noc2 requested a review from takahser June 24, 2022 07:07
Copy link
Copy Markdown
Contributor

@takahser takahser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still happy to go ahead with it;)

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jun 24, 2022

Thanks for the update. I’m happy to go ahead with it.

Thanks for the approval!

@Noc2 Noc2 merged commit f332690 into w3f:master Jun 27, 2022
@github-actions
Copy link
Copy Markdown
Contributor

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.

Before you start, take a moment to read through our announcement guidelines for all communications related to the grant or make them known to the right person in your organisation. In particular, please don't announce the grant publicly before at least the first milestone of your project has been approved. At that point or shortly before, you can get in touch with us at grantsPR@web3.foundation and we'll be happy to collaborate on an announcement about the work you’re doing.

Lastly, please remember to let us know in case you run into any delays or deviate from the deliverables in your application. You can either leave a comment here or directly request to amend your application via PR. We wish you luck with your project! 🚀

@keeganquigley
Copy link
Copy Markdown
Contributor

Hey @n13 , any updates on how Milestone 3 is coming along?

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jan 20, 2023 via email

@keeganquigley
Copy link
Copy Markdown
Contributor

@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.

@n13
Copy link
Copy Markdown
Contributor Author

n13 commented Jan 27, 2023

@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!! 🎉

w3f/Grant-Milestone-Delivery#713

@takahser

@takahser takahser mentioned this pull request Aug 23, 2023
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready for review The project is ready to be reviewed by the committee members.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants