CityOfZion / neon-wallet-desktop

Your self-custodial, open-source blockchain wallet
https://www.neonwallet.com
GNU General Public License v3.0
8 stars 2 forks source link

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

Open Voll3r opened 4 weeks ago

Voll3r commented 4 weeks ago

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:

image

image

image

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:

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 commented 4 weeks ago

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:

On "Create new wallet":

On "Add account"

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.