1
0
Commit Graph

17313 Commits

Author SHA1 Message Date
SomberNight
3e81cd1f1d trezor: fix regression in sign_transaction for trezor one for multisig
fixes https://github.com/spesmilo/electrum/issues/8813
regression from eef9680743

We started setting the witness field in above commit to be able to provide the witnesses for already pre-signed
external inputs to the device, e.g. for a coinjoin.

Trezor One fw has pretty strict limits on the witness field: max 109 bytes,
probably because that's a ~tight upper bound for a p2wpkh witness:
  <num_witness_items> <len(sig)> <sig> <len(pubkey)> <pubkey>, it comes out to 3+73(high-S and high-R)+33.
ed1785a985/legacy/firmware/protob/messages-bitcoin.options (L35)

Trezor model T seems to have higher limits.

tx_inputs is called for the tx being signed (for_sig=True), and for its parents/prev_txes (for_sig=False).
The witness is only useful for the tx being signed, I think.

Users reported seeing a "DataError: bytes overflow" exception when using a Trezor One to sign 2of3 p2wsh multisig txs.
There were no external inputs involved so for the tx being signed all witnesses were None, however we were also
setting the witness for the inputs of prev_txes.
The witness for a 2of3 pw2sh multisig input is around ~253 bytes.

To sidestep the problem, we now only set the witness in the for_sig=True case.
Note that this means if someone tries to do a coinjoin with a Trezor One involving non-trivial external inputs,
they will run into the same limit and exception.
2024-02-04 00:14:59 +00:00
SomberNight
ca206de16b qt NetworkDialog: small clean-up 2024-02-03 11:52:33 +00:00
SomberNight
b80f975894 config: rm some dead code 2024-02-03 11:52:29 +00:00
SomberNight
a9a8ed2eb4 follow-up: factor out more hardcoded "sat/byte" and "sat/b" strings
- rename globals
- also rm hardcoded strings from qml
- use consistent unit names in qml
  (previously mixed sat/vB and sat/byte (latter coming from core lib))
2024-02-03 05:26:31 +00:00
SomberNight
13a421aabb factor out hardcoded "sat/byte" and "sat/b" strings
Though note that the qml GUI has some more in qml/js context.
2024-02-03 04:18:46 +00:00
SomberNight
16eec8daf5 qml QEChannelDetails: show currentFeerate
related https://github.com/spesmilo/electrum/issues/8863
2024-02-03 03:43:16 +00:00
SomberNight
d7a9e2d022 qml QEChannelDetails: add some type hints 2024-02-03 03:35:54 +00:00
ThomasV
061c821128 Merge pull request #8843 from SomberNight/202401_jsondb_set
walletdb: change structure of prevouts_by_scripthash, and db upgrade
2024-01-31 12:56:11 +01:00
SomberNight
acae6751d2 wizard: do not log sensitive data (add more keys, again)
frankly this blacklist approach seems too fragile...
2024-01-31 11:23:45 +00:00
SomberNight
cb55c65677 qml wizard: WCWalletPassword: show warning if pw is too short 2024-01-31 10:28:10 +00:00
SomberNight
cc19a86262 lnutil: nicer repr for some attrs data classes 2024-01-31 09:24:42 +00:00
SomberNight
e6a0455ced lnpeer: raise chan fees using update_fee more aggressively
The existing logic of only updating the fee if it is not within 2x of
the current 2-block-eta does not work well for the current mempool.

The current mempool looks a bit weird: you need ~20 sat/vbyte to even get into it,
but there is only around 5 MB of txs paying >25 sat/vbyte.
The estimates look like this:
```
>>> config.fee_estimates
{144: 25764, 25: 27075, 10: 34538, 5: 34538, 2: 34538}
```

This commit changes the logic so that we send update_fee if the old rate is
- below 75% of the current 2-block-eta (instead of 50%), or
- below the 25-block-eta
2024-01-31 08:47:29 +00:00
SomberNight
e7ebf5d950 qt wizard: handle some cases of hw device being unplugged during flow
To reproduce, open two wizards in parallel. Use one to enter the flow and start creating a wallet,
then physically unplug the hw device at the correct time, and use the other wizard to trigger a rescan.
The rescan will unpair the hw device, resulting in device_manager.client_by_id to return None when
continuing the flow on the first wizard.

fixes https://github.com/spesmilo/electrum/issues/8858
2024-01-31 04:02:02 +00:00
SomberNight
67b57da402 qml: WCHaveMasterKey: (fix) re-verify text in onTextChanged
fixes https://github.com/spesmilo/electrum/issues/8853

This is a bit ugly, but activeFocus is declared as final and cannot be overridden directly...
```
  1.42 | W | gui.qml.qeapp | file:///home/user/wspace/electrum/electrum/gui/qml/components/controls/ElTextArea.qml:23:5: Cannot override FINAL property
```
2024-01-30 02:11:01 +00:00
SomberNight
522e9485c1 text gui: rm some magic numbers (ascii key codes), and small clean-up 2024-01-23 23:43:08 +00:00
Sander van Grieken
bd7adc83b3 exchange_rate: don't show ridiculous precision for alts 2024-01-23 11:48:25 +01:00
SomberNight
cbece71894 walletdb: rm some dead code 2024-01-23 02:20:01 +00:00
SomberNight
1734042293 jsondb: raise when trying to store sets in the db
Some generic protection to prevent bugs similar to what was just fixed in prev commits.
related https://github.com/spesmilo/electrum/issues/8842
2024-01-23 01:53:10 +00:00
SomberNight
79aba5364c walletdb: change structure of prevouts_by_scripthash, and db upgrade
this fixes the test case added in prev
2024-01-23 01:53:06 +00:00
SomberNight
4b28bfc323 tests: walletdb: add failing test case for persistence with jsonpatch
add reproducer for https://github.com/spesmilo/electrum/issues/8842
2024-01-23 01:53:03 +00:00
SomberNight
bb226e653e tests: simplify TestWalletStorage.imported_add_privkeys_persistence 2024-01-23 01:42:09 +00:00
SomberNight
cd3be429e4 qt: PayToEdit: always use monospace font 2024-01-23 00:49:03 +00:00
Sander van Grieken
28042c61c1 qml: trustedcoin: remove redundant slot parameter in createKeystore 2024-01-22 13:32:59 +01:00
Sander van Grieken
50a53aaedc qml: handle 2fa wallet can have None for billing_info 2024-01-22 13:30:46 +01:00
SomberNight
def1abfca5 tests: test_mnemonic: extend test_random_seeds 2024-01-22 03:27:24 +00:00
SomberNight
ad95f8ad56 mnemonic: add comments 2024-01-22 03:27:20 +00:00
SomberNight
7007a0c1c9 mnemonic: add type hints 2024-01-22 03:27:17 +00:00
SomberNight
fe03fbf2a0 prepare release 4.5.2 4.5.2 2024-01-19 16:23:24 +00:00
SomberNight
7247130aaf adb: get_balance: add comment about #8835
> These kind of checks look incorrect and confused/confusing for me:
> 43a5d03426/electrum/gui/qml/qeinvoice.py (L388)
> 43a5d03426/electrum/gui/qt/main_window.py (L1801)

> For example, consider creating a local tx that spends all UTXOs in the wallet, and consolidates them to another ismine address.
> Such a tx basically does not change what wallet.get_balance() returns.
> but to the checks listed above, the confirmed balance of the wallet I guess should be 0?
2024-01-19 15:22:28 +00:00
SomberNight
43a5d03426 qt: coins tab: also define sort order for coins mined in same block
follow-up 0f55a1e309
2024-01-19 14:34:33 +00:00
Sander van Grieken
9518bd0e68 qt: replace timer based delayed call with a less confusing event loop queued call 2024-01-19 14:57:55 +01:00
Sander van Grieken
17147732fb qt: fix macOS workaround introducing race 2024-01-19 14:54:23 +01:00
SomberNight
9fd16cd677 follow-up prev 2024-01-19 13:19:44 +00:00
SomberNight
0f55a1e309 qt: coins tab: properly sort unconfirmed/local utxos to top 2024-01-19 13:12:36 +00:00
SomberNight
f98e986345 prepare release 4.5.1 4.5.1 2024-01-18 17:14:41 +00:00
SomberNight
77f6c932ae release notes for 4.5.1: small clarification 2024-01-18 17:11:07 +00:00
accumulator
1b65c301b5 Merge pull request #8828 from spesmilo/release_notes_4_5_1
add release notes for 4.5.1
2024-01-18 18:04:56 +01:00
Sander van Grieken
1f5004320b qt: re-add processEvents() calls for abstract wizard.
might work around #8809/#8815
2024-01-18 17:55:52 +01:00
SomberNight
060b30cf71 add release notes for 4.5.1 2024-01-18 17:53:24 +01:00
ThomasV
2390a76d1f update locale 2024-01-18 17:01:31 +01:00
ThomasV
b563c9dd0e submarine swaps: do not set attempts parameter in pay_invoice
there is no reason to handle that differently.
2024-01-18 12:38:10 +01:00
accumulator
3b841a8dcd Merge pull request #8761 from accumulator/minsdk_23
qml: android.minapi and android.ndk_api to 23 (android 6.0+)
2024-01-18 01:00:15 +01:00
Sander van Grieken
55a2005a6b qml: update history view after address/key delete. fixes #8782 2024-01-18 00:28:02 +01:00
SomberNight
ef9ba0985e wallet: (trivial) add asserts re args in bump_fee and friends
for clearer exceptions in case of bugs

related https://github.com/spesmilo/electrum/issues/8571
2024-01-17 20:37:31 +00:00
SomberNight
c178be74b7 storage: replace assert in append() with named exception
for nicer bug reports

related https://github.com/spesmilo/electrum/issues/8664
2024-01-17 20:20:24 +00:00
SomberNight
49c3567d7d wallet: simplify bump_fee: rm txid arg
closes https://github.com/spesmilo/electrum/issues/8797
2024-01-17 19:20:29 +00:00
SomberNight
de2007e90c adb: simplify get_conflicting_transactions 2024-01-17 18:58:18 +00:00
SomberNight
76e547a084 followup: call super().__init__() for WalletFileException descendants
cases missed in 57bd291491
2024-01-17 14:42:19 +00:00
SomberNight
4a82072443 qt: new_channel_dialog: init USE_RECOVERABLE_CHANNELS cb intuitively
if `not lnworker.can_have_recoverable_channels()`,
- previously: the cb was disabled and checked
- now: the cb is disabled and unchecked
2024-01-17 14:13:20 +00:00
Sander van Grieken
e2bb7df54a qml: invert, more strict check in determine_can_pay for invoice types,
also disable paste button while PI is being evaluated
2024-01-17 14:09:57 +01:00