1
0
Commit Graph

13153 Commits

Author SHA1 Message Date
SomberNight
a83805e00b tweak electrum-env script
- set -e, and don't call deactivate (not needed; and with -e
  if ./run_electrum errors it wouldn't run anyway)
- re PYTHONPATH
    - I think the sane thing is to give priority to the virtualenv,
      and only use system-packages as a fallback
    - added more paths; tested that it now works for modern Ubuntu
      and Manjaro
- use "python3 -m venv" instead of "virtualenv"
  (as former is always(?) available now)
2020-12-11 15:53:33 +01:00
SomberNight
c81551299e transaction: put full derivation paths into PSBT by default
There are three export options for exporting a PSBT.
The default option previously only put derivation path suffixes for pubkeys
(paths relative to the intermediate xpub), now it puts the full path
(if is known by the keystore).

The "export for hardware device; include xpubs" option works same as before:
it puts both full paths and also global xpubs into the PSBT.
Hence the difference between the default option and the "include xpubs" option
is now only that the latter puts global xpubs into the PSBT.

This change is largely made for user-convenient in mind.
Now exporting a PSBT should be less error-prone: particularly for the
single-signer coldcard with sdcard usage, the default option will now work.

closes #5969
related #5955
2020-12-10 17:39:12 +01:00
SomberNight
c3c64a37c2 keystore: ignore fingerprint for pubkeys in psbt, try to match all keys 2020-12-10 17:39:07 +01:00
ThomasV
8872e43f27 cleanup, remove if statement (follow-up 13b05f64e6) 2020-12-10 17:21:41 +01:00
ThomasV
567130f4a3 Merge pull request #6838 from SomberNight/202012_seed_type_old_2fa
mnemonic: tighten seed_type check for old "2fa" type seeds
2020-12-10 14:43:29 +01:00
SomberNight
d1302d3384 mnemonic: tighten seed_type check for old "2fa" type seeds
Seeds in the set difference could already not be restored: they raised
an exception in the wizard; now these are not recognised as valid seeds
anymore (so e.g. OK button in wizard will be disabled).
Also see comments in code.
2020-12-10 14:36:31 +01:00
SomberNight
4bda6f5e61 test_wallet_vertical: add test case for pre-2.7 "2fa" seed 2020-12-10 14:35:10 +01:00
ThomasV
093a03ebcf Merge pull request #6836 from SomberNight/202012_kivy_fix_paths
kivy: fix some resource path issues
2020-12-10 11:01:02 +01:00
SomberNight
9e45108395 kivy: fix some resource path issues
When running kivy on Linux desktop,
running from git clone, `./run_electrum -g kivy` worked,
but `pip install -e .; electrum -g kivy` did not.
This was due to the relative paths using cwd as base.

see #6835
2020-12-10 07:30:31 +01:00
ThomasV
b6f63e1abf kivy: dismiss wizard dialog before calling go_back 2020-12-09 19:10:51 +01:00
SomberNight
1851ec962f trustedcoin: fix two-step wallet creation (offline->online)
got broken in c46fbf08a5
2020-12-09 18:31:08 +01:00
ghost43
e3ea0f6241 Merge pull request #6736 from SomberNight/202011_appimage_build
appimage build: build most of our python dependencies from source
2020-12-09 16:35:22 +00:00
SomberNight
4ca2a5cf3e appimage build: build most of our python dependencies from source
instead of using pre-built binary wheels from PyPI
2020-12-09 16:38:03 +01:00
SomberNight
e0917d12f6 rerun freeze_packages 2020-12-09 16:37:59 +01:00
SomberNight
d40bedb2ac also support uppercase bip21 URIs
related https://github.com/btcpayserver/btcpayserver/issues/2110
2020-12-09 16:09:12 +01:00
SomberNight
37a124fa1c appimage: update package in dockerfile 4.0.7 2020-12-09 15:00:42 +01:00
ThomasV
4fdeeb224e update locale 2020-12-09 14:20:34 +01:00
ThomasV
0e0cb57c73 update locale 2020-12-09 14:19:04 +01:00
ThomasV
f396ae0a29 prepare 4.0.7 2020-12-09 14:10:50 +01:00
ghost43
b4cc420d0a Merge pull request #6300 from SomberNight/202006_qt_statusbarbutton
qt StatusBarButton: use QToolButton instead of QPushButton
2020-12-09 12:42:23 +00:00
SomberNight
5b9c972499 qt StatusBarButton: use custom theme for macOS if using default theme 2020-12-09 12:41:19 +01:00
SomberNight
6f14375a68 qt StatusBarButton: use QToolButton instead of QPushButton
related: #6299
2020-12-09 12:15:55 +01:00
ThomasV
07bc4c40ef kivy: add on_dismiss method to crash reporter dialog 2020-12-09 10:22:42 +01:00
ThomasV
9ddb675550 kivy: handle lightning invoices on wallets that do not have lightning. fix #6371 2020-12-09 10:04:49 +01:00
SomberNight
ac223073ba keystore: handle unusual derivation paths in PSBT
If a tx contained a derivation path for a pubkey,
with a length=2 der suffix,
with the first element of the suffix not in (0, 1),
with a fingerprint that matches either our root or intermediate fp,
then processing that tx would raise and result in a crash reporter.

Traceback (most recent call last):
  File ".../electrum/electrum/gui/qt/main_window.py", line 2718, in do_process_from_text
    self.show_transaction(tx)
  File ".../electrum/electrum/gui/qt/main_window.py", line 1041, in show_transaction
    show_transaction(tx, parent=self, desc=tx_desc)
  File ".../electrum/electrum/gui/qt/transaction_dialog.py", line 84, 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 680, in __init__
    self.set_tx(tx)
  File ".../electrum/electrum/gui/qt/transaction_dialog.py", line 218, in set_tx
    tx.add_info_from_wallet(self.wallet)
  File ".../electrum/electrum/transaction.py", line 1944, in add_info_from_wallet
    wallet.add_input_info(txin, only_der_suffix=only_der_suffix)
  File ".../electrum/electrum/wallet.py", line 1573, in add_input_info
    is_mine = self._learn_derivation_path_for_address_from_txinout(txin, address)
  File ".../electrum/electrum/wallet.py", line 2609, in _learn_derivation_path_for_address_from_txinout
    pubkey, der_suffix = ks.find_my_pubkey_in_txinout(txinout, only_der_suffix=True)
  File ".../electrum/electrum/keystore.py", line 155, in find_my_pubkey_in_txinout
    path = self.get_pubkey_derivation(pubkey, txinout, only_der_suffix=only_der_suffix)
  File ".../electrum/electrum/keystore.py", line 391, in get_pubkey_derivation
    if not test_der_suffix_against_pubkey(der_suffix, pubkey):
  File ".../electrum/electrum/keystore.py", line 368, in test_der_suffix_against_pubkey
    if pubkey != self.derive_pubkey(*der_suffix):
  File ".../electrum/electrum/keystore.py", line 491, in derive_pubkey
    assert for_change in (0, 1)
AssertionError
2020-12-09 09:42:51 +01:00
ThomasV
0c3f360385 Merge pull request #6832 from SomberNight/202012_fix_qt_swap_dialog_ok_btn
qt swap dialog: fix enabling OK button
2020-12-09 09:28:16 +01:00
SomberNight
8c5601a172 dnspython: fix deprecation warnings when using dnspython 2.0
related: #6828
2020-12-09 09:04:04 +01:00
SomberNight
2ebd844b31 qt swap dialog: fix enabling OK button
fixes #6831
2020-12-09 08:20:46 +01:00
ThomasV
6273b4808f kivy: ensure WizardDialog.on_release is not executed more than once (see #6822) 2020-12-08 19:42:21 +01:00
ghost43
201ffa210e Merge pull request #6828 from SomberNight/202012_dnspython20
dependencies: require dnspython 2.0, require cryptography 2.6, drop python-ecdsa
2020-12-08 16:30:29 +00:00
SomberNight
239776cb41 gitignore: add some more build artifacts 2020-12-08 17:18:01 +01:00
SomberNight
cf5333187e update block header checkpoints 2020-12-08 17:08:03 +01:00
SomberNight
2c8ebff965 rerun freeze_packages 2020-12-08 16:53:51 +01:00
SomberNight
5a2d588e8b dependencies: rm python-ecdsa 2020-12-08 16:38:13 +01:00
SomberNight
14372e0a94 dependencies: support and require dnspython 2.0, rm monkey patches
- dnspython 2.0 requires cryptography 2.6 so we now always require that
  (no longer a choice between cryptography and pycryptodomex)
- test_dnssec.py is deleted as it was testing the monkey-patch

related: #6538
2020-12-08 16:35:29 +01:00
ThomasV
1684b348df Qt: keep pending_invoice logic in main_window (follow-up 56579c2, fixes #5829) 2020-12-08 13:12:57 +01:00
SomberNight
f74ac1a741 cli/rpc: fix 'sweep' command
fixes #6825
2020-12-08 12:21:56 +01:00
SomberNight
dbb7d7ce4d network: set _loop_thread again as it helps debugging
related: #6825
2020-12-08 11:48:01 +01:00
ThomasV
8bdd44edcb kivy: remove redundant declaration 2020-12-08 10:44:59 +01:00
SomberNight
95b08e9961 plugins: remove 'on_new_window' hook 2020-12-08 10:33:43 +01:00
SomberNight
933d8861ce mnemonic.make_seed: de-duplicate num_bits default magic number 2020-12-08 10:00:34 +01:00
SomberNight
376ee395f8 kivy: (fix) clicking "max" to send would raise for empty wallet
fix #6812
2020-12-08 08:47:13 +01:00
SomberNight
78513affe5 kivy: fix open channel with "max" amt
related #6169

E | gui.kivy.uix.dialogs.lightning_open_channel.LightningOpenChannelDialog | Problem opening channel
Traceback (most recent call last):
  File "/home/user/wspace/electrum/electrum/gui/kivy/uix/dialogs/lightning_open_channel.py", line 167, in do_open_channel
    chan, funding_tx = lnworker.open_channel(
  File "/home/user/wspace/electrum/electrum/lnworker.py", line 859, in open_channel
    if funding_sat > LN_MAX_FUNDING_SAT:
TypeError: '>' not supported between instances of 'str' and 'int'
2020-12-07 15:38:10 +01:00
ThomasV
dc810f131d kivy: wizard does not need Factory 2020-12-07 10:53:53 +01:00
ThomasV
2ac815e669 Merge pull request #6820 from ValdikSS/bug6404-fork-child-exit-fix
Use os._exit() for FORKed child browser opener process. Fixes #6404.
2020-12-07 10:31:36 +01:00
ThomasV
d2b96ad64b Merge pull request #6821 from aldrinpscastro/master
Added new brazillian exchange to exchange rates plugin: Walltime.
2020-12-07 10:11:15 +01:00
Aldrin P. S. Castro
c32ac41c36 Added new brazillian exchange to exchange rates plugin: Walltime. 2020-12-06 23:35:39 -03:00
ValdikSS
276d8f9a4d Use os._exit() for FORKed child browser opener process. Fixes #6404.
On Linux, when Electrum is executed from Appimage file, to prevent system library
inconsistence for Electrum and web browser and all issues involving that,
Electrum starts web browser and opens web page upon clicking on
'View on block explorer' by fork()'ing the process, unsetting
its custom LD_LIBRARY_PATH environment variable in the child process,
and calling webbrowser.open().

Due to incorrect usage of sys.exit() instead of os._exit() for child process,
Electrum (parent) can't be terminated and endlessly waits for child process upon
exit, while child process does nothing but still exists.

Fix this issue by using os._exit function, which should be used for
child processes (not only in Python).
2020-12-06 20:42:42 +03:00
ThomasV
40fbf3a929 follow-up c66c54a (simplification) 2020-12-06 13:16:17 +01:00
ThomasV
305ca90647 revert a9fc440, use Clock.schedule_interval to set address. Fixes #6810 and #6817 2020-12-06 11:51:15 +01:00