1
0
Commit Graph

1133 Commits

Author SHA1 Message Date
ThomasV
afcc695f4d channels_list: show backup text in the state column. fix missing import in previous commit. 2021-03-19 13:35:12 +01:00
ThomasV
2fee920f43 On Android, if channels are not recoverable, display channel backup when a new channel is created.
Remove the 'android_backups' setting, which was unpractical.
2021-03-19 13:17:58 +01:00
ThomasV
64a931f21e Deterministic NodeID:
- use_recoverable_channel is a user setting, available
   only in standard wallets with a 'segwit' seed_type
 - if enabled, 'lightning_xprv' is derived from seed
 - otherwise, wallets use the existing 'lightning_privkey2'

Recoverable channels:
 - channel recovery data is added funding tx using an OP_RETURN
 - recovery data = 4 magic bytes + node id[0:16]
 - recovery data is chacha20 encrypted using funding_address as nonce.
   (this will allow to fund multiple channels in the same tx)

GUI:
  - whether channels are recoverable is shown in wallet info dialog.
  - if the wallet can have recoverable channels but has an old node_id,
    users are told to close their channels and restore from seed
    to have that feature.
2021-03-19 10:17:02 +01:00
ThomasV
9e6996c5c1 qt: use 'local' icon for future transactions 2021-03-18 09:21:36 +01:00
ThomasV
aa58e270c7 increase width of tx dialog, to have one line per input 2021-03-17 18:35:14 +01:00
ThomasV
ef42d26cbf qt channels_list: separate on_success handlers for close_channel and request_force_close 2021-03-17 09:32:34 +01:00
ThomasV
bcfcc20363 fix: add request_force_close method 2021-03-16 17:27:37 +01:00
ThomasV
eec97ddfbb (trivial) lnbackups -> lnworker 2021-03-16 16:58:44 +01:00
ThomasV
2dc79b7040 (minor) word wrap qt tooltip 2021-03-15 14:48:47 +01:00
ThomasV
d6ebb4d4ca (trivial) rm debugging code 2021-03-15 14:33:57 +01:00
ThomasV
b18123fb61 Qt: add "save backup" checkbox to force-close dialog 2021-03-15 14:24:08 +01:00
ThomasV
cf926e8412 Qt: add option to request force close of channel 2021-03-15 12:38:00 +01:00
ThomasV
2ad49bbc5b Kivy: Show fee dialog before opening a new channel.
Remove fee and rbf from settings, as they are now always proposed
2021-03-13 09:34:19 +01:00
SomberNight
5dbf6dbdec qt receive tab: change "Expires after" label and help text 2021-03-12 18:54:49 +01:00
SomberNight
1ba5997238 qt lightning_tx_dialog: use historical fx rate for fiat amounts 2021-03-12 18:29:00 +01:00
ThomasV
65d263801a show capacity of channel backups in GUI 2021-03-12 17:39:13 +01:00
SomberNight
897f90d6e8 wallet: factor out "what key to use for invoice"
fix: qt request list was not using the correct key
2021-03-12 17:29:54 +01:00
ThomasV
1b7d8c0387 Qt: rm gossip menu item: already available in toolbar, and channel_db is not always present 2021-03-11 14:44:13 +01:00
SomberNight
8de52bf523 wallet: (trivial) use kwargs for get_tx_item_fiat 2021-03-09 18:22:30 +01:00
SomberNight
3c019c2f9c daemon/wallet/network: make stop() methods async 2021-03-09 17:52:36 +01:00
ThomasV
652d10aa5f Remove LNBackups object: no longer needed since LNWorker is instantiated by default. 2021-03-09 11:52:04 +01:00
ThomasV
1adde4c54a qt channels_list: use monospace font for channel capacity 2021-03-03 11:20:24 +01:00
ThomasV
6cf79dcfb2 qt: update all tabs when base_unit changes 2021-03-03 11:19:41 +01:00
ThomasV
222c70ada6 qt swap_dialog: use a single button to toggle direction 2021-03-03 10:45:46 +01:00
SomberNight
b3b87555dc qt/kivy: lightning_tx_dialog: show LN invoice 2021-03-01 20:56:45 +01:00
SomberNight
7d7dcf0795 qt/kivy ChannelsList: if node alias is unknown, display node id
instead of "unknown"
2021-03-01 16:41:54 +01:00
SomberNight
dd37151d65 qt ChannelsList: (trivial) format_fields should not know column order 2021-03-01 16:28:18 +01:00
ThomasV
bc1ec6ac34 Qt: fix running GUI offline 2021-02-28 13:34:24 +01:00
SomberNight
2f223cdf46 qt channels dialog: fix for channel backups 2021-02-27 15:15:09 +01:00
ghost43
0ce6adffcc Merge pull request #6968 from HardCorePawn/issue6664
Added fiat fee estimate to Advanced Preview
2021-02-27 08:31:17 +00:00
SomberNight
f9f49daad7 tx dialog: uniform high fee warnings between GUIs 2021-02-26 19:02:24 +01:00
SomberNight
fc3009918c follow-up prev: some clean-up 2021-02-26 16:44:07 +01:00
hcp
e01a2014b1 qt tx dialog: also display fiat amounts 2021-02-26 16:43:46 +01:00
SomberNight
84326cf1f7 qt tx dialog: add legend for input/output colouring
based on e1d70bcd98
2021-02-25 18:54:55 +01:00
SomberNight
d2019fd928 qt bump fee: rename "Final" checkbox to "Keep Replace-By-Fee enabled"
Now that the checkbox is hidden behind an advanced option, there is
no need to be brief about it, better to be explicit.
(terminology unchanged for kivy.)
2021-02-25 15:39:33 +01:00
SomberNight
4c36c45664 qt bump fee: add "advanced" button, allow choosing strategy 2021-02-25 15:39:29 +01:00
SomberNight
8fe7d750f7 qt: move RBF dialog out of main_window.py into its own file 2021-02-25 15:32:03 +01:00
SomberNight
4a8286c744 qrscanner: nicer error messages 2021-02-23 22:38:53 +01:00
ThomasV
10611876ee qt: update swap button together with can_send 2021-02-23 10:58:21 +01:00
ThomasV
0369829e5e MPP: can_send/can_receive is now the sum, no longer the max 2021-02-22 16:42:27 +01:00
ThomasV
1c52203346 wizard: focus password field (fix #7048) 2021-02-21 11:41:34 +01:00
ThomasV
0e23f33f59 kivy and qt: adapt open_channel dialogs to trampoline 2021-02-17 17:35:47 +01:00
ThomasV
ded449233e Trampoline routing.
- trampoline is enabled by default in config, to prevent download of `gossip_db`.
   (if disabled, `gossip_db` will be downloaded, regardless of the existence of channels)
 - if trampoline is enabled:
    - the wallet can only open channels with trampoline nodes
    - already-existing channels with non-trampoline nodes are frozen for sending.
 - there are two types of trampoline payments: legacy and end-to-end (e2e).
 - we decide to perform legacy or e2e based on the invoice:
    - we use trampoline_routing_opt in features to detect Eclair and Phoenix invoices
    - we use trampoline_routing_hints to detect Electrum invoices
 - when trying a legacy payment, we add a second trampoline to the path to preserve privacy.
   (we fall back to a single trampoline if the payment fails for all trampolines)
 - the trampoline list is hardcoded, it will remain so until `trampoline_routing_opt` feature flag is in INIT.
 - there are currently only two nodes in the hardcoded list, it would be nice to have more.
 - similar to Phoenix, we find the fee/cltv by trial-and-error.
    - if there is a second trampoline in the path, we use the same fee for both.
    - the final spec should add fee info in error messages, so we will be able to fine-tune fees
2021-02-17 17:28:13 +01:00
SomberNight
914eb9989d wallet: minor clean-up of tx.set_rbf() calls
Better to always call it, to make sure inputs have identical sequence numbers.
2021-02-12 04:59:40 +01:00
ThomasV
0c93394513 rename lnworker._pay to pay_invoice, call it directly from GUIs 2021-02-07 12:09:37 +01:00
ThomasV
c01ca101e0 minor: fix typo 2021-02-05 17:24:15 +01:00
ThomasV
cc69cf3f33 Qt: fix deprecation warning 2021-02-05 16:43:00 +01:00
ThomasV
f28a2aae73 Reorganize code so that we can send Multi Part Payments:
- LNWorker is notified about htlc events and creates payment events.
 - LNWorker._pay is a while loop that calls create_routes_from_invoice.
 - create_route_from_invoices should decide whether to split the payment,
   using graph knowledge and feedback from previous attempts (not in this commit)
 - data structures for payment logs are simplified into a single type, HtlcLog
2021-02-05 14:28:58 +01:00
ThomasV
c0bf9b4509 LNWorker: do not save PR_INFLIGHT status, detect it on startup instead 2021-02-04 16:30:50 +01:00
SomberNight
337d4890a1 lnworker/swaps: add '_sat' suffix to arg names and force kwargs 2021-02-01 22:11:56 +01:00