Commit Graph

69 Commits

Author SHA1 Message Date
SomberNight 1c9a6f5770 qt wizard: fix scanning qr code when restoring from xpub
fixes #6342
2020-07-08 01:51:14 +02:00
SomberNight 0d7bcde2db qt dark theme: on mac, AmountEdit units were using dark text on dark bg
see #6281
2020-06-28 03:50:34 +02:00
ThomasV 6058829870 Use attr.s classes for invoices and requests:
- storage upgrade
 - fixes #6192
 - add can_pay_invoice, can_receive_invoice to lnworker
2020-06-01 21:02:45 +02:00
SomberNight 93c90a30f0 qt MyTreeView: impl custom sort order framework, and use for invoices
sort invoices and payreqs (for Date column) based on timestamps
(timestamps have second resolution while the displayed date has minute resolution)
2020-05-15 15:32:18 +02:00
TheCharlatan a4fe14bb82 BitBox02 Electrum plugin support
This commit adds support for the BitBox02 hardware wallet.
It supports both single and multisig for the electrum gui wallet.

To use the plugin a local installation of the BitBox02 python library is
required. It can be found on PiPy under the name 'bitbox02' and can be
installed from the bitbox02-firmware repository in the py/bitbox02
directory.

All communication to and from the BitBox02 is noise encrypted, the keys
required for this are stored in the wallet config file under the
bitbox02 key.

The BitBox02 registers a multisig configuration before allowing
transaction signing. This multisig configuration includes the threshold,
cosigner xpubs, keypath, a variable to indicate for mainnet and testnet,
and a name that the user can choose during configuration registration.
The user is asked to register the multisig configuration either during
address verification or during transaction signing.

The check the xpub of the BitBox02 for other hardware wallets, a button
is added in the wallet info dialog.

The wallet encryption key is fetched in a separate api call, requiring a
slightly tweaked override version of the wallet encryption password.
2020-04-12 15:34:37 +02:00
SomberNight 5259fcb6fd qt PasswordLineEdit: try to clear password from memory
If an attacker has access to the process' memory, it's probably already game over,
still we can make their life a bit harder.

I really tried but failed to encapsulate this logic inside PasswordLineEdit.
The destroyed signal arrives too late.
deleteLater is not called.
__del__ gets called too late.
2020-04-07 18:58:42 +02:00
SomberNight c798e5d9a1 qt: introduce PasswordLineEdit(QLineEdit) 2020-04-07 18:58:37 +02:00
SomberNight 7488cc91cd qt channels: expose long channel id (in ctx menu and details dlg)
Also add separators to context menu to more visible separate
close/delete actions from rest.
2020-03-26 01:20:41 +01:00
ThomasV 3d69f3b0be improve payment status callbacks:
- add 'computing route' status for lightning payments
 - use separate callbacks for invoice status and payment popups
 - show payment error and payment logs in kivy
2020-03-10 13:27:02 +01:00
ThomasV bf4a9d7909 (minor) ButtonsWidget: add 10px offset because of scrollbar 2020-03-05 10:47:42 +01:00
SomberNight d8180c678b Qt addresses list: show derivation path in tooltip (also addr dialog)
related: #5641
2020-03-01 05:45:15 +01:00
SomberNight e1dcdde272 Qt tx dialog: fix file extension when exporting (on MacOS...)
closes #5954

We are now giving every(?) hint possible to the MacOS file dialog...
The extension is put in the filename as before (which turned out not to be enough).
It is also set using QFileDialog.setDefaultSuffix, which again, turns out not to be enough.
In desperation, the file extension filter-list now contains *.psbt and *.txn as separate filters,
and the one with the expected extension is pre-selected. This seems enough...
2020-02-28 21:59:09 +01:00
SomberNight 1d0fc6665b qt: defer refreshing tabs until they are visible
very loosely based on Electron-Cash/Electron-Cash@522e7ca59e
2020-01-19 07:31:50 +01:00
Nelson Perez 7968531065 Restoring old behavior of the outpoint copy to clipboard feature (#5879)
* Restoring old behavior of the outpoint copy to clipboard feature

* Small code style adjustments
2020-01-09 01:14:18 +00:00
SomberNight 1088cf4444 qt: introduce BlockingWaitingDialog
A variant of WaitingDialog that runs the task in the GUI thread,
blocking the GUI. It is probably a code smell to actually use this,
as operations should not block the GUI... still it provides a middle-ground
between blocking the GUI without giving user-feedback and having to refactor
existing code (to avoid blocking).
2019-12-10 03:34:41 +01:00
SomberNight 1526bc9ccf qt: consistently show tooltip when copying to clipboard 2019-11-21 03:01:55 +01:00
Johann Bauer 9fe7917118 Qt: Remove unused color from color scheme 2019-11-20 21:11:41 +01:00
SomberNight aa3d817ef2 qt: clean-up imports 2019-11-18 20:56:49 +01:00
SomberNight 2fec17760d qt address list: check internal address corruption when copying address
regressing following c721e880d0

note that place_text_on_clipboard is overridden in AddressList
2019-11-11 15:51:23 +01:00
ThomasV 5773097b08 rename 'copy column' to 'copy' 2019-11-10 07:55:37 +01:00
SomberNight 365aa189f2 qt FileDialogs for transactions: better file extension filter 2019-11-08 15:22:11 +01:00
SomberNight bafe8a2fff integrate PSBT support natively. WIP 2019-11-04 22:24:36 +01:00
ThomasV c721e880d0 Qt: generic add_copy_menu method for MyTreeView lists 2019-10-16 15:50:18 +02:00
ThomasV 8f86a15f92 improve payment log dialog 2019-10-12 13:47:10 +02:00
SomberNight 2ee881f40a qt channels list: fields should not be editable 2019-08-28 16:54:51 +02:00
ThomasV 8010123c08 Display and refresh the status of incoming payment requests:
- All requests have an expiration date
 - Paid requests are automatically removed from the list
 - Unpaid, unconfirmed and expired requests are displayed
 - Fix a bug in get_payment_status, conf was off by one
2019-08-22 06:00:45 +02:00
ThomasV 1a23dcb8d5 display lightning payment attempts using signal 2019-08-20 09:03:12 +02:00
SomberNight cc57da704b logging: adapt lightning branch to logging changes 2019-08-20 09:03:11 +02:00
ThomasV 7bb4ea150f gui: show incoming lightning requests, add on-chain icon 2019-08-20 09:03:11 +02:00
ThomasV 0e8dba897e lightning:
* store invoices for both directions
* do not store lightning_payments_inflight, lightning_payments_completed in lnworker
* payment history is returned by get_payments method of LNChannel
* command line: lightning history, lightning_invoices
* re-enable push_msat
2019-08-20 09:03:11 +02:00
ThomasV b0d6000771 turn lightning_payments_completed into dict. Show status of lightning payments in GUI. Make 'listchannels' available offline 2019-08-20 09:03:11 +02:00
Axel Gembe fc65cdaa8a AppImage: Fix webbrowser.open not opening links
There was an issue where webbrowser.open would invoke a program like
kde-open5 that loaded the systems libQt5DBus, which was not satisfied
with the AppImage's libdbus. To fix this we fork the process, unset
LD_LIBRARY_PATH and then open the URL.

fixes #5425

-----

taken from Electron-Cash/Electron-Cash@00939aafd1
2019-07-05 00:02:26 +02:00
SomberNight 37809bed74 qt high dpi: fix some text fields
There are probably other DPI related issues though.

closes #5471
closes #4597
closes #1927
2019-06-29 05:27:28 +02:00
SomberNight 212ed8b18b qt: set WWLabel text to be mouse-selectable by default
this lets user to copy-paste text in e.g. many wizard dialogs
2019-06-23 03:10:09 +02:00
SomberNight d07caaf601 qt msgbox: when using rich text, set text format to "AutoText" instead
"\n" newlines were ignored for WIF_HELP_TEXT InfoButtons
2019-06-13 17:03:12 +02:00
SomberNight 371e1a6ebf hw: allow bypassing "too old firmware" error when using hw wallets
The framework here is generic enough that it can be used for any hw plugin,
however atm only Trezor is implemented.

closes #5391
2019-05-31 04:09:03 +02:00
SomberNight aec53ae6af qt: "Help" and "?" buttons can show rich text
namely "Revealer" plugin uses rich text in its description
2019-05-26 01:27:27 +02:00
SomberNight f6dfcccf8c qt: factor out util.MessageBoxMixin.msg_box into function and use it
so these dialogs also get our custom default settings applied,
e.g. their text is selectable by mouse
2019-05-13 23:59:29 +02:00
SomberNight 99f9a1b484 qt: warn user if in testnet mode
closes #5295
2019-04-28 06:31:01 +02:00
SomberNight 46a236f167 qt tabs: restore filter state after refresh 2019-04-19 19:12:42 +02:00
SomberNight 752c518bdc add option to freeze individual UTXOs
based on cculianu's work in Electron-Cash/Electron-Cash@fd910cffc8
2019-03-11 18:46:29 +01:00
SomberNight 026448837f no more "import *"
fixes #5101
fixes #5105
2019-02-11 20:21:24 +01:00
SomberNight c23b869d3c qt MyTreeView subclasses: change "headers" from list to dict 2019-02-10 21:13:53 +01:00
SomberNight 67d080b34a mv qt update checker to its own file 2019-02-04 20:27:03 +01:00
SomberNight 6926b8b2d4 qt update checker: handle --offline 2019-02-04 20:27:02 +01:00
SomberNight 4fa87d8595 fix: qt icons not available when installed as python package
follow-up #5053
2019-02-01 23:32:24 +01:00
SomberNight 7ea01e9e91 qt inline icons: change mouse-over cursor 2019-02-01 21:57:18 +01:00
SomberNight 16bac5fd73 rm qt icons file
so we don't need pyrcc5, which is not deterministic,
and so we don't need the submodule for the icons

based on electrumsv/electrumsv@bf8802c2ea
2019-02-01 20:15:28 +01:00
SomberNight 31c08db909 qt update notifications: make url clickable; prevent multiple dialogs 2019-01-27 14:42:37 +01:00
SomberNight 53310690a5 version notifications: sig check would always fail on testnet 2019-01-26 15:30:30 +01:00