1
0
Commit Graph

34 Commits

Author SHA1 Message Date
Sander van Grieken
cbd388c297 fix flake8 issues (undefined references) 2023-06-28 16:49:28 +02:00
ThomasV
15eb765eac payment_identifiers:
- this separates GUI from core handling
 - the PaymentIdentifier class handles network requests
 - the GUI is agnostic about the type of PI
2023-06-28 16:49:28 +02:00
SomberNight
1a2d4494eb qt: fix sweeping
closes https://github.com/spesmilo/electrum/issues/8340

regression from 2f6d60c715
2023-04-23 15:10:38 +00:00
SomberNight
89b75f95d0 wallet.set_broadcasting: fix incorrect type-hint and rename arg 2023-04-19 16:29:54 +00:00
SomberNight
e24f837fbf qt send tab: rm incorrect bare raise
follow-up bc3946d2f4

not sure what the raise was trying to do;
note that relevant exception handling is done at:
bba8a272e7/electrum/gui/qt/main_window.py (L1213-L1217)
although note the TODO in main_window.on_error: would be nice to propagate some of the exceptions to the crash reporter

closes https://github.com/spesmilo/electrum/issues/8312
2023-04-19 16:25:39 +00:00
SomberNight
bba8a272e7 qt send tab: rm unused variable and add explanation 2023-04-19 16:18:57 +00:00
SomberNight
e617dd07a0 qt send tab: fix payto_contacts
closes https://github.com/spesmilo/electrum/issues/8313
2023-04-19 16:08:24 +00:00
ThomasV
f04e2e2e6f Add an extra state for invoices where our tx has been broadcast
successfully, but it is not in our history yet.

(follow-up 159646fe54)
2023-04-04 19:31:25 +02:00
ThomasV
159646fe54 Set status of onchain invoices to PR_INFLIGHT while tx is being broadcast 2023-04-04 18:22:30 +02:00
ThomasV
8e3a3cefcf qt: do not mutate already saved invoice after editing amount.
Also show empty an string for invoices that do not have an amount,
similar to the requests list.
2023-04-04 11:21:26 +02:00
ThomasV
545ee24f46 Qt: move new_channel_dialog to main_window and test available amount beforehand 2023-04-02 10:07:34 +02:00
ThomasV
3fb3e3b809 lnurl6: pay invoice directly 2023-03-21 17:08:36 +01:00
ThomasV
4fa192d9e7 follow-up c3e52bfafc 2023-03-20 11:09:18 +01:00
ThomasV
4243b250b1 qt send_tab: simplify method names.
when a method belongs to a class, there is no need to repeat the
class name in the method name.
2023-03-19 10:44:33 +01:00
ThomasV
c3e52bfafc Qt: allow to save invoices that have no amount
(such invoices are already saved by the QML GUI.)
2023-03-19 09:52:47 +01:00
SomberNight
a6c4069617 qt send_tab: allow saving bip70 payment requests
probably got disabled in or around https://github.com/spesmilo/electrum/pull/7839 by accident
2023-03-14 14:54:15 +00:00
ThomasV
1f4cedf56a Rework PaytoEdit:
- show a QLineEdit by default, a QTextEdit only if paytomany is active.
   paytomany is a rare use case, it should not interfer with regular
   use (e.g. when a user inadvertently types enter).
 - this also fixes the visual appearance if the payto line
 - keep paytomany menu in sync with actual state
2023-03-14 15:37:20 +01:00
ThomasV
b15387c89b Qt send tab: move payto_edit input buttons to toolbar 2023-03-13 08:55:45 +01:00
ThomasV
473c86c395 toolbar: use custom MyMenu class with addToggle 2023-03-12 10:11:08 +01:00
ThomasV
5ad4023e7d restore invoices_label and requests_label. move paytomany and toggle_qr_window from main menu to toolbar 2023-03-11 18:08:00 +01:00
ThomasV
1a0a52f9b6 invoices and requests lists: move import/export menus into local toolbars 2023-03-11 15:15:16 +01:00
ThomasV
2f6d60c715 Move transaction related settings into transaction editor.
That way, users can see the effects settings directly on their transaction.
This changes the API of make_tx:
 - get_coins is called inside make_tx, so that inputs can be changed dynamically
 - make_tx takes an optional parameter: unconfirmed_only, passed to get_coins
 - ConfirmTxDialog detects if we can pay by disabling confirmed_only or lowering fee
2023-03-05 10:17:03 +01:00
SomberNight
373db76ac9 util: kill bh2u
no longer useful, and the name is so confusing...
2023-02-17 11:43:11 +00:00
ThomasV
bc3946d2f4 Qt: new onchain tx creation flow:
- transaction_dialog is read-only
 - ConfirmTxDialog and RBF dialogs inherit from TxEditor
 - TxEditors are configurable
2023-02-07 16:42:20 +01:00
SomberNight
df2d0f4e1f qt send: use bolt11 fallback addr even if LN is disabled
Given a wallet with LN disabled,
and a bolt11 invoice (or a bip21 uri that only contains bolt11 but lacks a top-level address),
if the bolt11 invoice includes a fallback address,
we would previously just error "Lightning is disabled".

Now we offer the user to pay on-chain using the fallback address.

closes https://github.com/spesmilo/electrum/issues/8047
2022-10-31 19:15:03 +00:00
SomberNight
2fd762c308 qt send: bip21: ignore "lightning=" part if LN is disabled
A wallet with LN disabled could not pay a bip21 URI with an address and a "lightning=" key.
2022-10-31 19:09:08 +00:00
ThomasV
14e96f4d53 Index request by ID instead of receiving address.
Replace get_key_for_outgoing_invoice, get_key_for_incoming_request
with Invoice.get_id()

When a new request is created, reuse addresses of expired requests (fixes #7927)

The API is changed for the following commands:
 get_request, get_invoice,
 list_requests, list_invoices,
 delete_request, delete_invoice
2022-09-02 10:58:11 +02:00
SomberNight
42f2a3da31 Qt pay_lightning_invoice: handle NoDynamicFeeEstimates
`wallet.make_unsigned_transaction` can raise NotEnoughFunds or NoDynamicFeeEstimates.
These are "expected" exceptions that need to be handled or worked around. Added a note
of this in the docstring now.

We now handle NoDynamicFeeEstimates by allowing a static fallback fee in
`wallet.can_pay_onchain` and `lnworker.suggest_funding_amount`. It should be
fine to have a static fallback in these cases, as the user still has a chance
to set their own fee later in the flow.
(though ofc the static fallback might be too high in some mempool conditions,
in which case e.g. can_pay_onchain might return a false-negative, but this
is still an improvement over raising I believe)

fixes https://github.com/spesmilo/electrum/issues/5784
2022-08-30 11:46:52 +00:00
SomberNight
abef454237 qt: better handle unparseable URIs
fixes https://github.com/spesmilo/electrum/issues/7941
2022-08-16 15:27:13 +00:00
SomberNight
388811296e qt: replace some hardcoded pixel sizes for better high-dpi support 2022-08-10 20:23:56 +02:00
ThomasV
48bb4867a4 fix #7920 2022-08-08 12:50:43 +02:00
SomberNight
d5b5f82b01 LN invoice: better handle unknown required featured bits in bolt11 invs
A user provided an invoice that requires feature bit 30. (That bit is not in the spec)
To test:
```
lnbc1p324a66pp5tundykxx3q5kztsr8x00eknpn2uwe3394cnky3j9a0fswm568wnsdp9facx2mj5d9kk2um5v9khqueqv3hkuct5d9hkucqzpgxq9z0rgqsp5l73jgfgctzc92juer5rk2mqcrkj8teng53dr9vfxj4n8lulu4jmq9q8pqqqssq4gacn859tpzz99hkusnh7m93d5ncpx3t4zns8ynca7akmljpl5vh504qjz7dqwewqjh4md7xagaz5wg85knvxywrhp0sp2t09yta7lcq3qs6fy

lntb1p324a66pp5tundykxx3q5kztsr8x00eknpn2uwe3394cnky3j9a0fswm568wnssp5l73jgfgctzc92juer5rk2mqcrkj8teng53dr9vfxj4n8lulu4jmqdp9facx2mj5d9kk2um5v9khqueqv3hkuct5d9hkuxq9z0rgq9q8pqqqssqdte0z9dy7ur7fagsk7r3mtfj6upq88xfylhufys87zqpamklcfgn2f3xeq3nlhvn3qy9tdgg42vq9eq99qz6rz6tzqezfhzuv6zsr5qp7cgel4
```
2022-07-15 18:00:33 +02:00
SomberNight
5b29e6d4f5 qt: (refactor) split "receive tab" out from main_window.py 2022-07-01 16:03:28 +02:00
SomberNight
2d68350900 qt: (refactor) split "send tab" out from main_window.py 2022-06-30 20:29:08 +02:00