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

Importing additional accounts from same mnemonic no longer possible after initial wallet creation / import #197

Open
Voll3r opened this issue Sep 26, 2024 · 1 comment

Comments

@Voll3r
Copy link

Voll3r commented Sep 26, 2024

When using a mnemonic to import a wallet or accounts, Neon will give the user a choice of which accounts to import. If the accounts to be imported don't have a parent wallet yet, Neon will create one to hold the selected accounts in. So far so good.

However, if the wallet based on the mnemonic already exists, the user will not be given the option to import additional accounts to that wallet.

Example 1:

  • User creates a new wallet via the "New Wallet" option.

image

  • User notes the mnemonic.
  • Wallet is created with a single N3 account as default. No alternative options are given.
  • User wishes to import additional accounts based on that mnemonic.
  • User uses the "Import Account" option

image

  • User enters the mnemonic and pushes "next"

image

  • The UI jumps back to the "Please enter an address or key..." view. No message or feedback is shown to the user.

image

Suggestions:

  1. Provide options upon creation of a new wallet as to the types of accounts to be added to the wallet. The UI for this could be similar to the one already used when importing multiple accounts from a mnemonic.
  2. Provide some form of feedback to the user, e.g. display message "A wallet with this mnemonic already exists."
  3. Allow for the import of additional accounts for an existing wallet. UI could be similar to the one used when importing multiple accounts from a mnemonic. This would require a check as to which accounts are already added and cannot be added again. Such accounts could be greyed out in the UI. E.g. like this:

image

Ideally 1 and 3 are implemented, in which case 2 is not required.

Example 2:

  • User imports a wallet from a mnemonic from the "Import" option.
  • User selects some accounts to be imported
  • User wishes to add further / different accounts later (perhaps forgot, or simply wants to do something new in the same wallet at a later stage).
  • As in example 1, because the wallet already exists the user is unable to import additional accounts from that mnemonic.

Current Workaround

If the user has the mnemonic and they want to add more accounts, they can completely delete the wallet and import it again from the mnemonic. This time they can select all the accounts they want to add.

@Voll3r
Copy link
Author

Voll3r commented Sep 26, 2024

Hi again,

my apologies if I am a little over the place and if the above only makes partial sense. I realise now that I didn't quite understand how wallets and accounts play together when I drafted my initial post.

I think I now have a better understanding of what actually happens when one "imports" a wallet from a mnemonic vs. using "add account" after an initial wallet import or creation vs. using "import account".

That said, I think the current interface is still a bit confusing and I would like to outline and untangle a bit where my confusion originates.

1. Creating and populating a wallet with accounts vs. importing accounts from mnemonic

I understand now that adding accounts via the "Add Account" option essentially does the same thing as selecting those same accounts when "importing" a wallet from a mnemonic. Provided that the mnemonic is the same, the addresses being used are also the same, and the entries are merely added at a different stage, through a different route, and through a different interface.

So, for example, if I want to import a wallet consisting of two N3 accounts, but I forget to check the second N3 address during the initial import, I can just use "Add Account" afterwards and access the very same address I forgot to import initially.

I think my initial confusion came from the language used and also the fact that different interfaces with different information are used to achieve a very similar thing:

Using the "import" from mnemonic route, the user is shown some clear information consisting of a preview of the addresses and how they are derived. Conversely, using the "Add Account" function provides no such information. Instead the language used ("Create New Account") implies that a new account with zero balance will somehow be created (whereas my understanding is that if the next address in line has tokens on it, these will appear in the new account).

I think some of that confusion could be avoided if the UI were to be unified a bit more, whether a new wallet is created, whether a wallet is imported from a mnemonic, or whether an account is added. E.g. in a perfect world, I'd imagine something like this:

On "import" from mnemonic:

  • Neon scans the first addresses for all four account types (N3, legacy, etc.) and creates a dynamic list. Each account type has as many entries as there are addresses with tokens on them plus the first empty address in each category.
  • Any accounts / addresses with tokens on them are preselected for import.
  • User is given the option to check the additional (empty) account / address in each account type.
  • Wallet is created with the selected accounts / addresses.

On "Create new wallet":

  • Page 1 and 2 are the same as current (1. mnemonic is shown, 2. mnemonic is confirmed)
  • Same list as above is shown, but because this is a new wallet, only empty accounts / addresses are listed.
  • User can select the desired account types by checking / unchecking the empty account / address shown for each category.
  • Wallet is created with the selected accounts / addresses.

On "Add account"

  • The same list as above is shown.
  • Already existing accounts / addresses cannot be unchecked (greyed out), but new empty accounts / addresses can be selected to be added to the wallet.
  • Upon confirmation, any additionally checked accounts / addresses are added to the wallet.

All three actions would essentially use the same UI, thus avoiding any confusion about what is actually happening.

2. Option to "Import Account" seems to be misplaced.

When there is an empty wallet, the UI offers the user the "Import account" option:

image

Despite what the description says, using this option will not actually add an account to the wallet (even if addresses are used that are derived from the same mnemonic) but will instead always create a new wallet.

This seems to be redundant, because the same can be achieved by selecting "Import" from the top right menu:

image

Since it's redundant and also misleading, I would suggest for it to be removed.

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

1 participant