- separation between Wallet and key management (Keystore)
- simplification of wallet classes
- remove support for multiple accounts in the same wallet
- add support for OP_RETURN to Trezor plugin
- split multi-accounts wallets for backward compatibility
They used to be confused as a user cancel.
Fixes#1788
Also fix Cancel pressed in passphrase dialog when *restoring*
a hardware wallet in install wizard; it used to be taken as an
empty passphrase. Like the password dialog it now cancels the
wizard.
Tell the user and ask if they want to try again. If they
say no, raise a silent exception. Apply this more friendly
behaviour to the install wizard too (see issue #1668).
Making a window with no parent window-modal on Mac makes it
application-modal. This is different to behaviour under X, and
we don't want that. Use QDialog instead.
Also put back set_layout. This is causing two things:
a) on MacOSX the next / cancel buttons vanish if in one position
b) on all O/Ses the Next button is not the default
We're obviously abusing StackedLayout in an unintended way.
This code is identical to before, but for some reason the positioning
of this affects whether Next is the default action or not!
And it didn't have that effect with the old install wizard. Odd.
Benefits of this rewrite include:
- support of disconnecting / reconnecting a device without having
to close the wallet, even in a different USB socket
- support of multiple keepkey / trezor devices, both during wallet
creation and general use
- wallet is watching-only dynamically according to whether the
associated device is currently plugged in or not
Break out the workflow logic of the install wizard
into a base class. This means reimplementing with
full support in a new GUI is now easy; you just provide
ways to request passwords, show messages etc. The API
is fully documented in the base class.
There are a couple of minor outstanding issues, including that
the old messages shown when recovering a wallet are missing.
I will come back to that. Ledger wallet might be broken.
Other improvements:
The install wizard code is now easy to follow and understand.
Hardware wallets can now be restored without any need for their
accompanying libraries.
Various bits of trustedcoin were broken and have been fixed.
Many plugin hooks can be removed. I have only started on this.