Commit graph

3438 commits

Author SHA1 Message Date
ThomasV
2571669a32 fix #6200: if we cannot parse an onion, send a failure code that has the BADONION bit 2020-06-05 12:31:04 +02:00
ThomasV
47b3c49b25 split lnpeer.fail_htlc into two methods with less parameters 2020-06-05 12:01:31 +02:00
SomberNight
59681d0438
regenerate paymentrequest_pb2.py with new protoc
Used protoc 3.12.3 (latest).
Solves many DeprecationWarnings, e.g.:

...\electrum\paymentrequest_pb2.py:114: DeprecationWarning: Call to deprecated create function FieldDescriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
  _descriptor.FieldDescriptor(
...\electrum\paymentrequest_pb2.py:65: DeprecationWarning: Call to deprecated create function Descriptor(). Note: Create unlinked descriptors is going to go away. Please use get/find descriptors from generated code or query the descriptor_pool.
2020-06-04 20:27:26 +02:00
ghost43
8e12b43b5d
Merge pull request #6199 from benma/bb02
plugins/bitbox02: fix compatibility with bitbox02-3.0.0
2020-06-04 17:43:11 +00:00
SomberNight
db5cf22ff4
bitbox02: get prev tx from psbt instead of wallet db
- for symmetry with other plugins
- and because this is a superset. txin.utxo gets populated from the wallet db (or network);
  but the wallet db does not import txs from txin.utxo (so if a psbt already had an
  unknown tx there, it will not get imported)
2020-06-04 19:41:34 +02:00
ThomasV
88bb5309c4 Fix issue #6201:
- Pass a proper callback to WalletDialog
   (we used to call load_wallet_by_name recursively)
 - Do not cache PasswordDialog instances
2020-06-04 19:17:58 +02:00
SomberNight
dc6dbe5bfb
HW_PluginBase: small clean-up for 'maximum_library' 2020-06-04 18:52:08 +02:00
SomberNight
e07d5d8422
fix tests: follow-up psbt changes
follow-up e058ee2957

the difference for each tx here is that
- the old ones had witness utxo but not utxo
- the new ones have utxo but not witness utxo
2020-06-03 21:24:05 +02:00
SomberNight
309ba15745
invoices: follow-up fixes re clean-up
follow-up 6058829870 and related
2020-06-03 21:00:03 +02:00
matejcik
e058ee2957
psbt: always include full prev tx (#6198)
* enable streaming full UTXOs for all types of inputs

Co-authored-by: SomberNight <somber.night@protonmail.com>
2020-06-03 18:03:12 +00:00
SomberNight
1978bba915
fix tests: follow-up 154b9cab50 2020-06-03 19:00:28 +02:00
ThomasV
cc3da6c75f follow-up prev 2020-06-03 18:48:27 +02:00
ThomasV
b6d56ece82 fix #6203: do not let request amount be None 2020-06-03 18:20:20 +02:00
SomberNight
154b9cab50
coinchooser: change "enable_output_value_rounding" default to True
see diff for rationale
2020-06-03 18:18:56 +02:00
SomberNight
5958fa8b2d
coinchooser: small clean-up re enable_output_value_rounding 2020-06-03 18:14:05 +02:00
Marko Bencun
b9b08b768f
plugins/bitbox02: fix min version check
Inform the user that they need to upgrade if their firmware version is
out of date.

The previous `check_device_firmware_version()` was dead code, and the
bb02 function called inside also does not exist.
2020-06-03 15:36:15 +02:00
Marko Bencun
b863150fe3
plugins/bitbox02: fix compatibility with bitbox02-3.0.0 2020-06-03 15:35:43 +02:00
ThomasV
cfdfbd2bfe follow-up 6058829870 2020-06-02 16:32:07 +02:00
ThomasV
84a8b6af1f follow-up 1c436bbc22 2020-06-02 16:31:16 +02:00
ThomasV
0878fe08f7 do not display 'Expires in 100 years' for LN invoices 2020-06-01 22:18:08 +02:00
ThomasV
8cb36cb969 fix #6194 2020-06-01 21:57:46 +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
ThomasV
5f527720cf kivy: update devs list 2020-05-30 20:38:47 +02:00
ThomasV
e51395132e add confirmation dialog for lightning payments. fixes #6100 2020-05-30 13:53:24 +02:00
SomberNight
d0e6747bb5
kivy: (fix) popups had white background with recent kivy
fixes #6191
2020-05-29 21:32:27 +02:00
SomberNight
f8530b1cda
android build: use python3.7 for now
see #6147
2020-05-29 21:15:05 +02:00
SomberNight
3e4ead446b
kivy: (trivial) fix typo in error msg 2020-05-29 20:53:12 +02:00
SomberNight
4a4b0922e5
trustedcoin: (trivial) add a stub method in plugin base class 2020-05-29 20:51:52 +02:00
ThomasV
b505763867 Qt: do not show node_id in channels_list 2020-05-29 19:23:29 +02:00
SomberNight
e6e587b7da
trustedcoin: use psbt format on wire. rm psbt to legacy tx conversion.
closes #6123
2020-05-29 18:58:30 +02:00
ThomasV
2adbbee5fe Add extra state to distinguish shutdown negotiation from post-
negotiation, where channel should not be reestablished. See #6182
2020-05-29 18:00:52 +02:00
ThomasV
680502cfb8 Qt: copy request to clipboard when it is created 2020-05-29 09:57:25 +02:00
ThomasV
3bf2641ce8 kivy: remove test_seed and test_xpub. fixes #6146 and #5925 2020-05-29 08:59:14 +02:00
ThomasV
8e3ee73daf
Merge pull request #6134 from SomberNight/202004_ln_fundingtx_forbid_bump_cjoin
wallet: disallow fee-bumping/coinjoining ln funding tx
2020-05-27 18:37:04 +02:00
ThomasV
6aa337c618 fix #6176 2020-05-27 18:13:30 +02:00
ThomasV
c035bfcc46 Qt: show fee combo next to fee slider, and remove it from settings 2020-05-26 18:34:48 +02:00
ThomasV
959af0065b follow-up previous commit: cleanup imports 2020-05-26 16:06:15 +02:00
ThomasV
7490787d38 follow-up previous commit 2020-05-26 15:55:47 +02:00
ThomasV
1c436bbc22 move units and amount formatting to simple_config 2020-05-26 15:49:28 +02:00
SomberNight
4d8fcded4b
qt plugins dialog: fix caching "settings" button
shesek reported on IRC:
> the button widget for opening plugins configuration gets cached in `settings_widgets`
> even after the plugin is disabled and re-enabled, which causes it to call `settings_dialog()`
> on the previous plugin instance that got unloaded instead of the new one.
2020-05-26 00:54:22 +02:00
SomberNight
ac63444cfc
wallet: better handle used change addresses reverting to unused
If a used/reserved change address became unused/unreserved, it would not
get offered for usage by wallet until app restart.
Make the used->unused transition less likely by requiring 3 confirmations
(instead of considering even local/unconfirmed txs for 'used');
and avoid removing reserved addresses from the pool altogether.
2020-05-25 17:42:11 +02:00
SomberNight
c14a704082
wallet: fix minor locking thing in set_reserved_state_of_address
follow-up 6040e953a3
2020-05-25 17:34:52 +02:00
SomberNight
24221f8fca
plugins: fix labels plugin FIXME re "just enabled plugin" 2020-05-25 17:31:13 +02:00
SomberNight
cdecc4e3fa
wallet: increase gap limit for change (6 -> 10)
We are now using change addresses for the channel SRK to_remote outputs
(and reserving these change addresses). (see prev commits)
Note that every channel open we initiate typically uses two change addresses:
- one for the SRK to_remote output, and
- one for the funding tx change output (assuming there is change).
2020-05-22 17:19:58 +02:00
SomberNight
530a446172
follow-up prev: don't reuse funding tx change address for static_remotekey
see comment in code
2020-05-22 17:19:55 +02:00
SomberNight
6040e953a3
wallet: implement reserving addresses, and use it for LN SRK to_remote
- Use change addresses (instead of receive) for the static_remotekey to_remote outputs,
  and reserve these to greatly reduce the chance of address-reuse
- Use change addresses (instead of receive) for LN channel sweep addresses.
  Note that these atm are not getting reserved.
2020-05-22 17:19:51 +02:00
SomberNight
6457bb141d
wallet: (trivial) rename check_address 2020-05-22 17:19:48 +02:00
SomberNight
f8c574b699
wallet: (fix) get_receiving_address must always return an addr
- also, disallow deleting last address from an imported wallet (fixes #3254, fixes #4833)
- also, set LNBackups.sweep_address lazily, as during fresh wallet creation
  there are no addresses in the wallet at that point yet! see trace below.

Traceback (most recent call last):
  [...]
  File "...\electrum\electrum\tests\test_commands.py", line 112, in test_export_private_key_deterministic
    wallet = restore_wallet_from_text('bitter grass shiver impose acquire brush forget axis eager alone wine silver',
  File "...\electrum\electrum\wallet.py", line 2575, in restore_wallet_from_text
    wallet = Wallet(db, storage, config=config)
  File "...\electrum\electrum\wallet.py", line 2502, in __new__
    wallet = WalletClass(db, storage, config=config)
  File "...\electrum\electrum\wallet.py", line 2346, in __init__
    Deterministic_Wallet.__init__(self, db, storage, config=config)
  File "...\electrum\electrum\wallet.py", line 2147, in __init__
    Abstract_Wallet.__init__(self, db, storage, config=config)
  File "...\electrum\electrum\wallet.py", line 261, in __init__
    self.lnbackups = LNBackups(self)
  File "...\electrum\electrum\lnworker.py", line 1401, in __init__
    self.sweep_address = wallet.get_receiving_address()
  File "...\electrum\electrum\wallet.py", line 1498, in wrapper
    addr = func(self, *args, **kwargs)
  File "...\electrum\electrum\wallet.py", line 1520, in get_receiving_address
    raise Exception("no receiving addresses in wallet?!")
Exception: no receiving addresses in wallet?!
2020-05-22 16:25:33 +02:00
SomberNight
9657e927a7
wallet: (trivial) define import/delete_address in Abstract_Wallet 2020-05-22 16:17:41 +02:00
SomberNight
b9f20d2c79
qt locktimeedit: fix max timestamp platform-dependent crash
fixes #6170
2020-05-21 21:03:41 +02:00