joinmarket-webui/jam

Import wallet using seedphrase

Closed this issue · 15 comments

Existing power users should be able to move their wallets to this UI

Does that not work already for you? Wallets created via the CLI should show up in the UI. As the UI is just a frontend for the RPC API there shouldn't be any difference between wallets created via the CLI scripts and the UI.

After importing wallet file across it shows up in the GUI which you can unlock it, but the UTXO's are not showing up. It's a different wallet file in bitcoin core, if i change it to the wallet that I've been using for joinmarket previously in the joinmarket.cfg the balance shows in cli.

Tried using cli command of python wallet-tool.py -g 50 wallet.jmdat, and after that a bitcoin-cli rescanblockchain and then check balance and it still shows as 0 balance.

update - using the rpcwallet file as part of the rescan command, waiting for the scan to finish

/bitcoin-cli -rpcwallet=jam_default rescanblockchain

that worked transactions and wallet balance can be seen.

Just went through the same process as jase100k. Would be great to have a "rescan" option in wallet settings. Interested if this is possible since rescanblockchain isn't a JM RPC method.

This is not blocked anymore since JoinMarket-Org/joinmarket-clientserver#1461 is merged 💪
Anybody working on this already?

@editwentyone Would you be able to add an "Import Wallet" button and some views to Figma how you think the import process should look like? That'd be amazing.

@theborakompanioni sure, could you give me a rough overview of the needed steps? just with bulletpoints what is actually needed from your side

@theborakompanioni sure, could you give me a rough overview of the needed steps? just with bulletpoints what is actually needed from your side

This is what currently is done when creating a wallet:

  • "Create Wallet" button clicked
  • User provides a "wallet name" and a "password" (twice for verification)
  • User is shown a seed phrase
  • User must retype the seed phrase (verification)
  • Done

So, the above steps (and their corresponding copies) can be reused and basically become:

  • "Import Wallet" button clicked
  • User specifies "wallet name" and "password" (Same as when creating)
  • User must input the seed phrase (Instead of showing a seed phrase and let the user retype it)
  • Then, the wallet is unlocked, but a rescan is triggered -> show somewhere that the rescan is in progress (Wallet is not usable till the rescan is complete.)
    • e.g. show a "Rescan is in process" message on a banner element above the navbar (?)
  • Done

Feel free to design as you see fit. 🧡

on it…

update: hot and greasy live from bitcoin Miami… @theborakompanioni: https://www.figma.com/file/kfejZJFlwBywvLEnPEmJo1/JoinMarket-UI?type=design&node-id=5959-66524&t=3wpjCPr8CTTzNAwh-11

questions:

  • can we show a rescan progress? i.e: 10% » no
  • can we calculate how long it will take? i.e: 5 minutes left, please be patient » no
  • does the rescan progress continues when the wallet is locked again, because the user wants to use another one in the meantime? » wallet must stay unlocked

@editwentyone

During the first steps of implementing this, some thoughts came up:

  • There needs to be a confirmation screen similar to the "create wallet" flow, as the user needs to see the provided password in plaintext at least once - however, there is no need to re-enter the mnemonic phrase. The same component as in "create wallet" can be used.
  • When rescanning the chain, a blockheight must be provided. This could theoretically be asked for via a datepicker element, but I'd thought I go with a plain number input for the first version. What do you think?
  • I need to confirm this, but I think a user should also be able to adapt the gaplimit, in order to find all funds in heavily used wallets.
  • Rescanning should not only be possible after importing a wallet - a user should be able to trigger a rescan anytime. I thought a button "Rescan chain" in section "Wallet" on the settings screen makes sense. It will open a separate page so that an explanation can be given as to what it is or what it is intended to do.
  • I am totally lost on the wording and will add some filler text in the initial PR. Hopefully, someone can provide good texts that describe the functionality well.

let me know when I can test a first draft to experience it and also think about it :)

I modified the flow, based on what I could test and learn until now

image

https://www.figma.com/proto/kfejZJFlwBywvLEnPEmJo1/JoinMarket-UI?page-id=2850%3A67638&type=design&node-id=5959-66524&viewport=-14%2C-4147%2C0.29&t=z8QQU9wCauaNQ9kL-9&scaling=min-zoom&starting-point-node-id=5959%3A66524&show-proto-sidebar=1

there are some points to talk about, open to any feedback

  • added cancel
  • added back
  • check of filename already taken during first screen
  • added month, year and genesis option

no quite sure about rescaning from settings and what gap limit is. I need more clarification here please

I modified the flow, based on what I could test and learn until now

Looks awesome. 🚀

there are some points to talk about, open to any feedback

* added cancel

* added back

* check of filename already taken during first screen

* added month, year and genesis option

no quite sure about rescaning from settings and what gap limit is. I need more clarification here please

Yes, I definitely need some more input as well and I am a little bit unsure of what the right approach is (e.g. currently I think, we have to "pre-generate" a bunch of addresses and then start the rescanning - which means, a user might has to rescan a couple of times.. which feels like bad UX). I'll let you know once I have the basic building blocks ready - currently it is all very rough, but I should be able to allocate some time soon.

Things like "check of filename already taken during first screen" can be a follow-up feature request. I would not want to make reviewing the PR more complex than it already is (the wallet will just fail to be imported if the filename is already taken - same as within the current "create wallet" flow).

Then we should get a hint until then, to name it accordingly.

Also i thought about moving the date picker even a slide earlier, on the „active side“, where you actively insert your seed and choose a date. After that comes the „passive side“ to review only.

Still sick, so Update will come later on figma unfortunately

updated with more differences between active and passive pages:
image

🎨 Figma

▶️ Play