1
0
Commit Graph

15698 Commits

Author SHA1 Message Date
SomberNight
9d3f53932b add descriptor.py from bitcoin-core/HWI 2023-03-01 17:53:37 +00:00
SomberNight
958191013b qt tx dialog: remove "desc" field, just use wallet.get_label_for_txid 2023-03-01 17:13:21 +00:00
SomberNight
d11237d6a1 lnworker: start watching already redeemed chans if txs are missing
This fixes a bug where if one runs `wallet.clear_history()` they would see exceptions later:
```
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 866, in timer_actions
	self.update_wallet()
  File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 1021, in update_wallet
	self.update_tabs()
  File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 1033, in update_tabs
	self.utxo_list.update()
  File "/home/user/wspace/electrum/electrum/gui/qt/utxo_list.py", line 103, in update
	self.refresh_row(name, idx)
  File "/home/user/wspace/electrum/electrum/gui/qt/utxo_list.py", line 124, in refresh_row
	parents = self.wallet.get_tx_parents(txid)
  File "/home/user/wspace/electrum/electrum/wallet.py", line 885, in get_tx_parents
	result.update(self.get_tx_parents(_txid))
  File "/home/user/wspace/electrum/electrum/wallet.py", line 881, in get_tx_parents
	for i, txin in enumerate(tx.inputs()):
AttributeError: 'NoneType' object has no attribute 'inputs'
```
This is related to the privacy analysis, which assumes that for each tx item in the history list
we should have the raw tx in the db. This is no longer true after wallet.clear_history(), if
the wallet has certain LN channels. E.g. an already redeemed channel that was local-force-closed,
as that closing tx is not related to the wallet directly.

In commit 3541ecb576, we decided not to watch already redeemed channels.
This is potentially good for e.g. privacy, as the server would otherwise see us subscribe to that chan.
However it means that after running wallet.clear_history() txs related to the channel but not to the
wallet won't be re-downloaded.

Instead, now if there are missing txs for a redeemed channel, we start watching it, hence the
synchronizer will re-downloaded the txs.
2023-03-01 16:20:42 +00:00
SomberNight
f6dc72899a lnsweep: use chan.logger instead of module _logger
to log the chan id for free
2023-03-01 15:27:13 +00:00
SomberNight
3c5774a189 qt tx dialog: fix for ln-related txs when --offline
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/gui/qt/transaction_dialog.py", line 255, in _open_internal_link
    self.main_window.do_process_from_txid(txid=target, parent=self)
  File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 2212, in do_process_from_txid
    self.show_transaction(tx)
  File "/home/user/wspace/electrum/electrum/gui/qt/main_window.py", line 1079, in show_transaction
    show_transaction(tx, parent=self, desc=tx_desc)
  File "/home/user/wspace/electrum/electrum/gui/qt/transaction_dialog.py", line 351, in show_transaction
    d = TxDialog(tx, parent=parent, desc=desc, prompt_if_unsaved=prompt_if_unsaved)
  File "/home/user/wspace/electrum/electrum/gui/qt/transaction_dialog.py", line 449, in __init__
    self.update()
  File "/home/user/wspace/electrum/electrum/gui/qt/transaction_dialog.py", line 667, in update
    tx_mined_status = self.wallet.lnworker.lnwatcher.adb.get_tx_height(txid)
AttributeError: 'NoneType' object has no attribute 'adb'
2023-03-01 14:45:25 +00:00
ThomasV
4ad9caddab Merge pull request #8231 from spesmilo/fix_8213
Refresh bolt11 routing hints when channel liquidity changes:
2023-03-01 11:35:34 +01:00
ThomasV
b29a63a1f8 TxEditor: always show preview button 2023-03-01 11:23:46 +01:00
ThomasV
33c7ecbaf8 utxo details: show list of parents as a tree 2023-03-01 11:07:12 +01:00
Sander van Grieken
9a3e533096 qml: remove requests button again 2023-02-28 16:31:21 +01:00
Sander van Grieken
e91c45e611 qml: text change 'Change' to 'Modify' 2023-02-28 16:20:18 +01:00
Sander van Grieken
5912c92260 qml: TxDetails buttons refactor
all buttons have icons now
bump fee and cancel tx now below status line in highlightbox
2023-02-28 16:19:47 +01:00
ThomasV
719b468eee Refresh bolt11 routing hints when channel liquidity changes:
- wallet_db update: separate Invoices and Requests.
 - do not store bolt11 invoice in Request
2023-02-28 15:33:17 +01:00
Sander van Grieken
c7cb2fb9e6 qml: explicitly use None when empty string is used as password
backend requires None, Qt5 passes empty string
2023-02-28 14:51:19 +01:00
Sander van Grieken
7e84aed9c2 qml: log and reraise any exceptions in the constructor of QEAbstractInvoiceListModel, so we
at least see the root cause of the confusing AttributeError: 'QEWallet' object has no attribute 'requestModel'
2023-02-28 14:32:26 +01:00
Sander van Grieken
a88c2ced25 qml: qerequestdetails check lnworker before deref 2023-02-28 14:15:37 +01:00
Sander van Grieken
d59e687cdb qml: follow-up fe540200a9 2023-02-28 14:11:52 +01:00
Sander van Grieken
fe540200a9 qml: report wallet open problems when walletdb cannot open a wallet (WalletFileException) 2023-02-28 14:04:20 +01:00
Sander van Grieken
0928c0190a qml: fix toaster quirkyness 2023-02-28 11:58:15 +01:00
ThomasV
da402973cd follow-up 72fb43f950 2023-02-28 09:34:03 +01:00
ThomasV
cb8cc76e1f requests list: remove hidden column LN_INVOICE 2023-02-27 21:40:43 +01:00
Sander van Grieken
68a3364c33 qml: clear deferred intent after processing 2023-02-27 14:42:26 +01:00
Sander van Grieken
8faf8f4a31 wine: add --allow-downgrades to second apt-get command 2023-02-27 12:45:44 +01:00
Sander van Grieken
6a6982cdae qml: defer intent handling at startup, otherwise it gets lost as the app is not handling the signal yet.
Also defer intent handling until a wallet is opened.
2023-02-27 12:20:51 +01:00
Sander van Grieken
65abb90049 build: update build container base image versions, update apt sources to current 2023-02-27 11:16:04 +01:00
Sander van Grieken
40a2591351 qml: wording/styling NetworkOverview 2023-02-27 11:07:00 +01:00
Sander van Grieken
5426411f99 android: include p4a cherry-pick 70fa6ddd040dc14f3cb28ebc2cfc5779c5cc5342,
avoid sh>=2
2023-02-27 10:57:12 +01:00
Sander van Grieken
2b216ef6b9 qml: avoid stacking ReceiveRequests pages 2023-02-25 13:44:49 +01:00
Sander van Grieken
4cb3d411ea qml: override finish button text in ServerConnectWizard 2023-02-24 22:11:20 +01:00
Sander van Grieken
d85ee1b639 qml: move max ln receive to ReceiveDetailsDialog, always show invoice fields on ReceiveDialog 2023-02-24 22:09:44 +01:00
Sander van Grieken
adf23f602d qml: don't show option Never for expiry combobox when in preferences 2023-02-24 20:24:51 +01:00
Sander van Grieken
f12fe4af4d qml: add option to open ReceiveDialog with existing request key 2023-02-24 14:47:28 +01:00
Sander van Grieken
3a90f35888 qml: reintroduce receive requests list page 2023-02-24 12:11:54 +01:00
Sander van Grieken
5ee91594d3 qml: replace Enter manually option in SendDialog with Invoices, which is removed from main menu 2023-02-24 11:15:12 +01:00
ThomasV
72fb43f950 lnworker: do not assume MPP in num_sats_can_receive 2023-02-25 12:23:34 +01:00
ThomasV
e72b76707a Merge pull request #8204 from spesmilo/privacy_analysis
Privacy analysis
2023-02-25 12:00:17 +01:00
ThomasV
e4273e5ab9 utxo privacy analysis:
- add a new event, 'adb_removed_tx'
 - new wallet method: get_tx_parents
 - number of parents is shown in coins tab
 - detailed list of parents is shown in dialog
2023-02-25 11:46:47 +01:00
ThomasV
77fe2e6421 Qt tx dialog: rename Save and Export actions 2023-02-25 11:07:23 +01:00
Sander van Grieken
7fe5282f7c qml: hamburger styling/menu position 2023-02-23 21:49:23 +01:00
Sander van Grieken
e589d859ae qml: reset position in history to top when loading another wallet 2023-02-23 21:27:19 +01:00
Sander van Grieken
9d425b5b23 qml: move remaining buttons to bottom of dialogs 2023-02-23 21:22:44 +01:00
Sander van Grieken
32d00b2982 qml: wallet loading indicator as modal dialog, unclosable 2023-02-23 20:46:56 +01:00
Sander van Grieken
e511701c74 qml: ElDialog assure close behavior is consistent with allowClose property 2023-02-23 20:44:25 +01:00
Sander van Grieken
278486602b qml: add loader overlay, avoid interacting with the to-be-unloaded wallet 2023-02-23 18:20:29 +01:00
Sander van Grieken
a56c9687c8 qml: initial async wallet load 2023-02-23 14:39:55 +01:00
SomberNight
0af7f68dd8 qt tx dialog: fix "preview" for unsigned pre-segwit tx
```
629.08 | E | gui.qt.exception_window.Exception_Hook | exception caught by crash reporter
Traceback (most recent call last):
  File ".../electrum/electrum/gui/qt/invoice_list.py", line 170, in <lambda>
    menu.addAction(_("Pay") + "...", lambda: self.send_tab.do_pay_invoice(invoice))
  File ".../electrum/electrum/gui/qt/send_tab.py", line 573, in do_pay_invoice
    self.pay_onchain_dialog(self.window.get_coins(), invoice.outputs)
  File ".../electrum/electrum/gui/qt/send_tab.py", line 251, in pay_onchain_dialog
    self.window.show_transaction(tx)
  File ".../electrum/electrum/gui/qt/main_window.py", line 1074, in show_transaction
    show_transaction(tx, parent=self, desc=tx_desc)
  File ".../electrum/electrum/gui/qt/transaction_dialog.py", line 351, in show_transaction
    d = TxDialog(tx, parent=parent, desc=desc, prompt_if_unsaved=prompt_if_unsaved)
  File ".../electrum/electrum/gui/qt/transaction_dialog.py", line 450, in __init__
    self.set_title()
  File ".../electrum/electrum/gui/qt/transaction_dialog.py", line 858, in set_title
    self.setWindowTitle(_("Transaction") + ' ' + self.tx.txid())
TypeError: can only concatenate str (not "NoneType") to str
```
2023-02-22 14:05:27 +00:00
SomberNight
2242a506a9 ledger: fix sign_transaction for Ypub / sh(wsh(multi())) wallets
regression from https://github.com/spesmilo/electrum/pull/8041
2023-02-22 14:02:24 +00:00
ThomasV
4e9ddf6ddd cosignerpool: minor fix, follow-up new GUI flow 2023-02-21 13:15:06 +01:00
SomberNight
7aa1609718 tests: disable asyncio debug mode
see https://bugs.python.org/issue38608
2023-02-20 16:53:47 +00:00
SomberNight
d4338fb503 tests: clean-up use of asyncio 2023-02-20 16:53:44 +00:00
SomberNight
3ebf1e44bf tox.ini: allow running tox from local dev env
Some folders e.g. contrib/*/fresh_clone should not be searched.
2023-02-20 16:53:28 +00:00