Commit Graph

7212 Commits

Author SHA1 Message Date
Sander van Grieken
313b79cfaf qml: add txid not empty assert to removeLocalTx. ref #8775 2024-01-04 13:08:17 +01:00
accumulator
88058df409 Merge pull request #8772 from accumulator/qml_tx_inputs
qml: add transaction inputs in TxDetails and …
2023-12-29 16:21:22 +01:00
Sander van Grieken
92bff08ba5 qml: don't use predictive text for fields where it makes no sense 2023-12-29 16:18:03 +01:00
Sander van Grieken
e8852918a7 qml: fix newline in TxDetails 2023-12-29 12:13:49 +01:00
Sander van Grieken
7164392b1c qml: add transaction inputs in TxDetails and ConfirmTxDialog, RbfBumpFeeDialog, RbfCancelDialog, CpfpBumpFeeDialog
and allow collapse/expand of input/output lists by clicking on label.
2023-12-29 11:55:36 +01:00
SomberNight
eee61a98cb gui: cpfp: calc parent fee for cpfp using wallet.get_tx_info
I am only making this change as it makes it simpler to do manual testing of CPFP-ing *local* txs.
That is, by changing a few easy-to-find lines of code, I can make the GUI allow CPFP-ing a local tx, but
without this change it errors out with "unknown fee for parent transaction".

If one has an incoming local tx saved in the wallet, adb.get_tx_fee(txid) returns None
(if the tx gets into the mempool, it will use the server-reported value instead).
In contrast, wallet.get_tx_info(tx).fee calls both wallet.get_wallet_delta(tx) and adb.get_tx_fee(txid),
making it more expensive but more complete.
2023-12-29 02:55:11 +00:00
Sander van Grieken
ceb42c2a1b qml: show frozen lightning balance in BalanceDetails only when non-zero 2023-12-28 12:30:37 +01:00
SomberNight
0dae17339d qml: add config setting to allow screenshots
On Android, we disallow screenshots on screens where the seed is visible.
(The seed is extremely sensitive data that should not be stored digitally without
significant precautions but it's also cumbersome to write down or memorise, so
some people instinctively just try to take a screenshot of it when creating a wallet.)
We do this by using the built-in OS mechanism of setting FLAG_SECURE on the window.
However, on some devices with custom ROMs (one report from LineageOS, one from /e/OS),
unsetting FLAG_SECURE crashes the application for some reason.

As a workaround, this commit adds a config setting into the Preferences,
to disable this mechanism and just always allow screenshots.
(note that you can get into the qml Preferences before creating/opening any wallet)

ref https://github.com/spesmilo/electrum/issues/8522
2023-12-27 07:28:39 +00:00
accumulator
9ea15a1c3c Merge pull request #8737 from accumulator/welcome_page
qt,qml: add a welcome page as initial page for server connect wizard
2023-12-24 14:20:52 +01:00
SomberNight
d54184dbc1 fix some DeprecationWarnings in python3.12
...\electrum\electrum\logging.py:137: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
...\electrum\electrum\x509.py:310: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
2023-12-24 08:57:57 +00:00
SomberNight
3d1009f7e2 tests: fix TestLNTransport.test_loop for python 3.12
Semantics for server.wait_closed changed in 3.12, and it was always
a no-op in our usage in prior versions.
see https://github.com/python/cpython/issues/104344
2023-12-24 07:12:15 +00:00
SomberNight
25c50f15c0 qt TxEditor: fix extraneous "not able to RBF later" warning
Imported wallets, and HD wallets with "use change" disabled, would always
get the warning before.
2023-12-22 23:50:04 +00:00
Sander van Grieken
4908c8c389 qml: RbfCancelDialog: warning text in frame 2023-12-22 17:35:25 +01:00
accumulator
d8bd55bf4e Merge pull request #8758 from accumulator/qml_error_dialogs
qml: use warning icon and error title for failure messagedialogs
2023-12-22 16:55:01 +01:00
sha-265
92a08a5fe7 Add Bit2C exchange (#8767)
* Add Bit2C exchange
* Remove whitespace

---------

Co-authored-by: sha-265 <sha@mempool.party>
2023-12-22 11:03:58 +01:00
Sander van Grieken
cb34bbee7e qml: don't enable save button for already saved invoices 2023-12-21 13:29:37 +01:00
Sander van Grieken
adcc9eb2d1 qml: qewallet code style 2023-12-21 12:36:20 +01:00
Sander van Grieken
c7e055bdb9 qml: remove unused components 2023-12-21 12:36:20 +01:00
Sander van Grieken
ebcecdccce qt,qml: add checkboxes for advanced network config on welcome page, remove separate proxy-ask and autoconnect pages 2023-12-21 11:17:48 +01:00
SomberNight
2ea723a91a tests: add test for bip39 utf-8 normalisation
test case from https://github.com/Electron-Cash/Electron-Cash/issues/2740
2023-12-19 22:47:57 +00:00
Sander van Grieken
5e39ff49bc add missing accept handler for welcome page 2023-12-19 18:49:16 +01:00
Sander van Grieken
a03b2d7bae qt,qml: add a welcome page as initial page for server connect wizard
This is much less intimidating than asking if the user wants to use a proxy
out of the gate.
2023-12-19 18:49:16 +01:00
Sander van Grieken
6e576f2a08 qml: fix cancelling network wizard not closing app 2023-12-19 18:37:53 +01:00
SomberNight
3b5b75325e qml: WCServerConfig.qml: only disable autoconnect if given server
if the user entered the server select screen and immediately clicked next,
a random server would get set but with auto_connect disabled.
2023-12-19 16:43:59 +00:00
Sander van Grieken
524adaf747 qml: use warning icon and error title for failure messagedialogs 2023-12-19 15:58:39 +01:00
SomberNight
1d4a5052ef labels plugin: add FIXMEs. don't roll your own crypto...
```
 23.76 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 180
set_label. label='a1'. item='444dffaf758a1b17893cbc8dda4032f9b6e9f61115e7c1a6d486a0950de50c11'. bundle['encryptedLabel']='WzqTZD+cnoQEUrfYsBz0rg=='
 28.10 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 181
set_label. label='a1'. item='4812e9844c958a913a71a5a728ea6d73e42d0618f96a4259bad1895b4f427f8e'. bundle['encryptedLabel']='WzqTZD+cnoQEUrfYsBz0rg=='
set_label. label='a1'. item='c5daddf7972e16e25c1362d492888a8bbf3d8dcfc789342d71dc83d9a8faaa6c'. bundle['encryptedLabel']='WzqTZD+cnoQEUrfYsBz0rg=='
 36.51 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 182
set_label. label='a1'. item='be5973ddf9b6ae6949e544c3cf43a16e2a8719dcf14a1171ec94cfa25d4a3325'. bundle['encryptedLabel']='WzqTZD+cnoQEUrfYsBz0rg=='
 45.68 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 183
set_label. label=''. item='444dffaf758a1b17893cbc8dda4032f9b6e9f61115e7c1a6d486a0950de50c11'. bundle['encryptedLabel']='yErvsmjQUEt4Ry8c55S3Mg=='
 55.99 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 184
 58.69 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 185
set_label. label=''. item='4812e9844c958a913a71a5a728ea6d73e42d0618f96a4259bad1895b4f427f8e'. bundle['encryptedLabel']='yErvsmjQUEt4Ry8c55S3Mg=='
set_label. label=''. item='c5daddf7972e16e25c1362d492888a8bbf3d8dcfc789342d71dc83d9a8faaa6c'. bundle['encryptedLabel']='yErvsmjQUEt4Ry8c55S3Mg=='
 60.98 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 186
set_label. label=''. item='be5973ddf9b6ae6949e544c3cf43a16e2a8719dcf14a1171ec94cfa25d4a3325'. bundle['encryptedLabel']='yErvsmjQUEt4Ry8c55S3Mg=='
 62.80 | I | plugins.labels.qt.Plugin | set test_segwit_2 nonce to 187
```
2023-12-19 01:24:17 +00:00
ThomasV
636195bc6e update version to 4.5.0b1 2023-12-18 12:20:48 +01:00
SomberNight
b5d8d31723 plugins: follow-up prev, log thread name when loading plugins
Correction to comment in prev commit (and removing it here):
spec.loader.exec_module does not spawn new threads, it simply
executes the module in the current thread.
I got confused but turns out "load_plugin" itself is sometimes
not called from the main thread. Specifically (e.g.), since the recent
wizard rewrite, in the qt gui, the wizard loads the hww plugins
from a new thread.

This now better explains the macos hww crashes: they had started
appearing because we upgraded hidapi (which made it more sensitive
to having to import from main thread) AND scanning(->importing) from
the wizard no longer happened on the main thread after the rewrite.

Plugins should be thread-safe in terms of where they are imported from.
Let's log the importer thread's name (added here), to help recognise
related threading issues.
2023-12-17 06:07:37 +00:00
SomberNight
740016e0d5 hw wallets: fix crashes on macOS
related https://github.com/trezor/cython-hidapi/pull/150#issuecomment-1542391087
2023-12-17 05:22:40 +00:00
ThomasV
2d954bb554 payserver plugin: remove support for qt GUI.
(This plugin is not useful without a daemon)

fixes #8748
2023-12-14 11:14:16 +01:00
SomberNight
f4cddd7335 update block header checkpoints 2023-12-13 15:37:06 +00:00
SomberNight
a027a70361 prepare release 4.5.0b0
note: rm-ed the trustedcoin item from the release-notes as it was backported and already released
2023-12-13 15:26:30 +00:00
ThomasV
856163f096 Merge pull request #8743 from SomberNight/202312_sighash_warnings
wallet: refactor check_sighash/risk_of_burning_coins_as_fees
2023-12-13 13:12:56 +01:00
ThomasV
d691aa0736 qt: add 'notes' tab 2023-12-13 12:31:22 +01:00
SomberNight
2bc056ed33 wallet: refactor check_sighash/risk_of_burning_coins_as_fees
- risk_of_burning_coins_as_fees is turned into a private (helper) method, only called by check_sighash.
  UIs should only care about check_sighash.
- check_sighash returns instance of new class "TxSighashDanger" instead of tuple
- made warning levels more fine-grained (FEE_WARNING_SKIPCONFIRM vs FEE_WARNING_NEEDCONFIRM)
- this became more complicated than I had hoped for but I think it is worth it to ~merge
  check_sighash and risk_of_burning_coins_as_fees into one.

related https://github.com/spesmilo/electrum/pull/8699
2023-12-13 04:52:01 +00:00
SomberNight
52771670f2 tests: add test for wallet.check_sighash
related https://github.com/spesmilo/electrum/pull/8699
2023-12-13 04:34:08 +00:00
Sander van Grieken
321f6255fa qt: do not proceed to wallet setup when cancelling network wizard 2023-12-12 17:16:56 +01:00
SomberNight
e1d0247ce4 wallet: clarify difference between wallet.is_mine and adb.is_mine
related https://github.com/spesmilo/electrum/pull/8699
2023-12-12 14:17:38 +00:00
Sander van Grieken
831be3b680 network: fix issue starting tor probe when proxy disabled 2023-12-12 13:27:42 +01:00
Sander van Grieken
a6ceeec09d qml: add frozen lightning to BalanceDetails, indent frozen on-chain and lightning amounts 2023-12-12 13:17:57 +01:00
Sander van Grieken
297f971fae qml: improve info text for incomplete transactions and transactions in mempool on transaction details page. 2023-12-12 12:11:37 +01:00
SomberNight
dd3fc041f9 qt main window: statusbar: swap Tor and Network buttons
I think it's nicer for the network status to be rightmost, which was the case for a long time.

(Though plugins are still added after (via multiple different mechanisms, see 2fa, hww, revealer).
We could perhaps add a VLine separator, or add them to the left instead.)

follow-up 90d1d587e8
2023-12-12 10:56:41 +00:00
SomberNight
c52853341c qt util: add VLine class, for vertical line separators 2023-12-12 10:50:47 +00:00
SomberNight
da775954c0 qt wizard: fix wallets directory relative paths on Windows
follow-up https://github.com/spesmilo/electrum/pull/8651

We cannot do direct comparison of path-like strings without normalisation.
E.g.
```
relative_path() cp1. path='c:\\users\\user\\appdata\\roaming\\electrum\\wallets\\9dk', wallets=C:\Users\User\AppData\Roaming\Electrum\wallets
relative_path() cp2. commonpath='c:\\users\\user\\appdata\\roaming\\electrum\\wallets'
relative_path() cp3. new_path='9dk'
```
2023-12-12 01:34:46 +00:00
SomberNight
58f041fd38 qt: fix window.donate_to_server to switch to send tab
probably regression from payment_identifier refactor
2023-12-12 01:14:13 +00:00
ghost43
e814fa0b25 Merge pull request #8719 from SomberNight/202312_db_seedtype
wallet db: deduplicate "seed_type" field
2023-12-12 01:01:30 +00:00
Sander van Grieken
82ee4c22b8 qml: fix old ref to network.tor_proxy 2023-12-11 16:47:56 +01:00
ThomasV
ee10b0bf3e qt: move plugins dialog to own module 2023-12-11 10:19:36 +01:00
ThomasV
8199a6b5b2 Merge pull request #8733 from accumulator/remove_2fa_email
qt, qml: remove email entry from 2FA wallet ToS pages
2023-12-10 12:39:51 +01:00
Sander van Grieken
d8d2426e83 qml: add local/remote SCID alias to ChannelDetails 2023-12-08 14:17:14 +01:00