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

Add path scanning to 'Access existing keys' and upon request #10973

Closed
4 tasks
hesterbruikman opened this issue Jul 20, 2020 · 11 comments
Closed
4 tasks

Add path scanning to 'Access existing keys' and upon request #10973

hesterbruikman opened this issue Jul 20, 2020 · 11 comments

Comments

@hesterbruikman
Copy link
Contributor

hesterbruikman commented Jul 20, 2020

Problem

There are multiple occasions where the wallet does not accurately shows active accounts in the HD wallet or the tokens they hold.

  • User imports/recovers an existing account using their seed phrase. They have derived and used one or more accounts beyond the first leaf. These accounts are not shown upon recovery, nor is the user informed that they need to manually generate the accounts again in order for them to be visible in the wallet
  • User receives tokens on an account that are not included in their asset list yet. The tokens received will not be visible, nor is the user informed that they need to manually add the token through manage assets in order for them to be visible in the wallet
    _A related issue is that the user is required to restart the app to ensure tokens are visible after manually adding them. See issue Some assets (ADX in particular case) are not shown on wallet when they are received to multiaccount until manual adding #10786 _

User story

  1. As a user I want to see 'active' accounts (i.e. accounts that I've used for transactions) that I have derived from my master keypair, when I recover my keys in onboarding (i.e. multiaccount) so that I feel reassured everything is still there
  2. As a user I want to see 'active' accounts (i.e. accounts that I've used for transactions) that I have derived from my master keypair, when I recover my keys in wallet (i.e. multiaccount) so that I feel reassured everything is still there
  3. As a user I want to enable checking for assets that are not yet visible in my wallet, either upon opening the app, wallet or by manually refreshing the wallet, so that I don't have to manually add the asset
  • Original designs for path scanning as part of Wallet > Add account > Enter a seed phrase (or Enter a private key) on Figma
  • Adapt designs for use in Your keys > Access existing keys > Enter seed phrase
  • Adapt designs for use in Your keys > Access existing keys > Recover with Keycard
  • Original designs for 'Pull to refresh' that can include scanning for new tokens captured in Add Update Gesture to Wallet #10242

Implementation

Acceptance Criteria

Notes

I believe method to scan paths already exists in status-go @gravityblast @Samyoul can you confirm?

cc @johnlea-quiup @churik

Future Steps

@gravityblast
Copy link
Member

gravityblast commented Oct 1, 2020

@hesterbruikman I don't think the scan is already implemented but we could do it easily during the creation of the first account

@cammellos
Copy link
Contributor

Looking at the designs, what happens if the user is offline on account creation (we need to be online to fetch funds/transactions)? Will he be given another chance to go through the process?

@gravityblast
Copy link
Member

good point @cammellos, if the user is offline we can't understand if other accounts have balance or txs.
but we store the BIP44 parent account, so in theory we could derive child accounts in memory and check them later when the user is online.

@hesterbruikman
Copy link
Contributor Author

hesterbruikman commented Oct 1, 2020

Does that mean that in theory we could do this in the background when the user comes online and prompt a notification like?:

'More accounts found'
Ignore / View

@cammellos
Copy link
Contributor

Yes, that sounds feasible

@guylouis
Copy link
Contributor

guylouis commented Oct 15, 2020

Yes, that sounds feasible

it means we keep m/44'/60'/0' or m/44'/60'/0'/0 public key in the app memory for keycard multi-accounts right ?

@gravityblast
Copy link
Member

gravityblast commented Oct 15, 2020

@guylouis for keycard we can't extract that key if you already have a card initialized though.
Instead if the current Status installation is importing a key into the card, yes we could keep in memory an extended public key that allows us to derive child public keys and addresses.

@gravityblast
Copy link
Member

because a normal public key wouldn't be enough, we need an extended public key to derive child public keys.

@guylouis
Copy link
Contributor

guylouis commented Oct 16, 2020

@cammellos
I guess one point to clarify to do this scanning of m/44'/60'/0'/0/i accounts in the background is wether we have

  • for regular accounts
  • for keycard accounts
    what's needed (I guess it's at least m/44'/60'/0'/0 extended public key) to derive the public addresses and scan without asking the user a password (regular m.account) or a keycard tap (keycard m.account)

@cammellos cammellos added this to the Release 1.10 milestone Nov 9, 2020
@cammellos
Copy link
Contributor

I think this issue needs a bit more clarity,
currently there seem to be 3 different features included in this:

As a user I want to see 'active' accounts (i.e. accounts that I've used for transactions) that I have derived from my master keypair, when I recover my keys in onboarding (i.e. multiaccount) so that I feel reassured everything is still there
As a user I want to see 'active' accounts (i.e. accounts that I've used for transactions) that I have derived from my master keypair, when I recover my keys in wallet (i.e. multiaccount) so that I feel reassured everything is still there
As a user I want to enable checking for assets that are not yet visible in my wallet, either upon opening the app, wallet or by manually refreshing the wallet, so that I don't have to manually add the asset

I would recommend splitting them if still necessary and cut the scope, as not sure as it is this is currently actionable.

I would focus on:

As a user I want to see 'active' accounts (i.e. accounts that I've used for transactions) that I have derived from my master keypair, when I recover my keys in onboarding (i.e. multiaccount) so that I feel reassured everything is still there

create a new issue and exclude the custom derivation path and cover the error scenario in https://www.figma.com/file/XUehMnhyD1FGcWzvGz6SXqvh/Wallet?node-id=4207%3A0
in case the user is offline.

Happy to do that but I don't have all the context.

cc @hesterbruikman

@churik
Copy link
Member

churik commented Dec 5, 2022

Obsolete and will be re-considered in the redesigned app.
Added recheck label for easy finding that one in case of need.

@churik churik closed this as completed Dec 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants