tlnworker: rename can_send to num_sats_can_send - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 79d202485e1747ad5d16cecb7c35db64ce502177 DIR parent 5c8455d00b367da8d37cc54a15d1a655779cf687 HTML Author: SomberNight <somber.night@protonmail.com> Date: Thu, 26 Mar 2020 07:00:15 +0100 lnworker: rename can_send to num_sats_can_send Diffstat: M electrum/gui/kivy/uix/dialogs/invo… | 2 +- M electrum/gui/kivy/uix/dialogs/ligh… | 13 ++++++++++--- M electrum/gui/kivy/uix/dialogs/requ… | 9 +++++++-- M electrum/gui/qt/channels_list.py | 7 ++++--- M electrum/lnworker.py | 6 +++--- 5 files changed, 25 insertions(+), 12 deletions(-) --- DIR diff --git a/electrum/gui/kivy/uix/dialogs/invoice_dialog.py b/electrum/gui/kivy/uix/dialogs/invoice_dialog.py t@@ -105,7 +105,7 @@ class InvoiceDialog(Factory.Popup): self.status_color = pr_color[self.status] self.can_pay = self.status in [PR_UNPAID, PR_FAILED] if self.can_pay and self.is_lightning and self.app.wallet.lnworker: - if self.amount and self.amount > self.app.wallet.lnworker.can_send(): + if self.amount and self.amount > self.app.wallet.lnworker.num_sats_can_send(): self.warning = _('Warning') + ': ' + _('This amount exceeds the maximum you can currently send with your channels') def on_dismiss(self): DIR diff --git a/electrum/gui/kivy/uix/dialogs/lightning_channels.py b/electrum/gui/kivy/uix/dialogs/lightning_channels.py t@@ -1,14 +1,21 @@ import asyncio import binascii +from typing import TYPE_CHECKING + from kivy.lang import Builder from kivy.factory import Factory from kivy.uix.popup import Popup from kivy.clock import Clock + from electrum.util import bh2u from electrum.lnutil import LOCAL, REMOTE, format_short_channel_id from electrum.gui.kivy.i18n import _ from .question import Question +if TYPE_CHECKING: + from ...main_window import ElectrumWindow + + Builder.load_string(r''' <LightningChannelItem@CardItem> details: {} t@@ -267,7 +274,7 @@ class ChannelDetailsPopup(Popup): class LightningChannelsDialog(Factory.Popup): - def __init__(self, app): + def __init__(self, app: 'ElectrumWindow'): super(LightningChannelsDialog, self).__init__() self.clocks = [] self.app = app t@@ -321,5 +328,5 @@ class LightningChannelsDialog(Factory.Popup): def update_can_send(self): lnworker = self.app.wallet.lnworker - self.can_send = self.app.format_amount_and_units(lnworker.can_send()) - self.can_receive = self.app.format_amount_and_units(lnworker.can_receive()) + self.can_send = self.app.format_amount_and_units(lnworker.num_sats_can_send()) + self.can_receive = self.app.format_amount_and_units(lnworker.num_sats_can_receive()) DIR diff --git a/electrum/gui/kivy/uix/dialogs/request_dialog.py b/electrum/gui/kivy/uix/dialogs/request_dialog.py t@@ -1,3 +1,5 @@ +from typing import TYPE_CHECKING + from kivy.factory import Factory from kivy.lang import Builder from kivy.core.clipboard import Clipboard t@@ -8,6 +10,9 @@ from electrum.gui.kivy.i18n import _ from electrum.util import pr_tooltips, pr_color, get_request_status from electrum.util import PR_UNKNOWN, PR_UNPAID, PR_FAILED, PR_TYPE_LN +if TYPE_CHECKING: + from ...main_window import ElectrumWindow + Builder.load_string(''' <RequestDialog@Popup> t@@ -84,7 +89,7 @@ class RequestDialog(Factory.Popup): def __init__(self, title, data, key, *, is_lightning=False): self.status = PR_UNKNOWN Factory.Popup.__init__(self) - self.app = App.get_running_app() + self.app = App.get_running_app() # type: ElectrumWindow self.title = title self.data = data self.key = key t@@ -107,7 +112,7 @@ class RequestDialog(Factory.Popup): self.status, self.status_str = get_request_status(req) self.status_color = pr_color[self.status] if self.status == PR_UNPAID and self.is_lightning and self.app.wallet.lnworker: - if self.amount and self.amount > self.app.wallet.lnworker.can_receive(): + if self.amount and self.amount > self.app.wallet.lnworker.num_sats_can_receive(): self.warning = _('Warning') + ': ' + _('This amount exceeds the maximum you can currently receive with your channels') def on_dismiss(self): DIR diff --git a/electrum/gui/qt/channels_list.py b/electrum/gui/qt/channels_list.py t@@ -14,6 +14,7 @@ from electrum.i18n import _ from electrum.lnchannel import Channel, peer_states from electrum.wallet import Abstract_Wallet from electrum.lnutil import LOCAL, REMOTE, format_short_channel_id, LN_MAX_FUNDING_SAT +from electrum.lnworker import LNWallet from .util import (MyTreeView, WindowModalDialog, Buttons, OkButton, CancelButton, EnterButton, WaitingDialog, MONOSPACE_FONT, ColorScheme) t@@ -224,10 +225,10 @@ class ChannelsList(MyTreeView): item.setBackground(self._default_item_bg_brush) item.setToolTip("") - def update_can_send(self, lnworker): - msg = _('Can send') + ' ' + self.parent.format_amount(lnworker.can_send())\ + def update_can_send(self, lnworker: LNWallet): + msg = _('Can send') + ' ' + self.parent.format_amount(lnworker.num_sats_can_send())\ + ' ' + self.parent.base_unit() + '; '\ - + _('can receive') + ' ' + self.parent.format_amount(lnworker.can_receive())\ + + _('can receive') + ' ' + self.parent.format_amount(lnworker.num_sats_can_receive())\ + ' ' + self.parent.base_unit() self.can_send_label.setText(msg) DIR diff --git a/electrum/lnworker.py b/electrum/lnworker.py t@@ -7,7 +7,7 @@ import os from decimal import Decimal import random import time -from typing import Optional, Sequence, Tuple, List, Dict, TYPE_CHECKING, NamedTuple +from typing import Optional, Sequence, Tuple, List, Dict, TYPE_CHECKING, NamedTuple, Union import threading import socket import json t@@ -1314,11 +1314,11 @@ class LNWallet(LNWorker): with self.lock: return Decimal(sum(chan.balance(LOCAL) if not chan.is_closed() else 0 for chan in self.channels.values()))/1000 - def can_send(self): + def num_sats_can_send(self) -> Union[Decimal, int]: with self.lock: return Decimal(max(chan.available_to_spend(LOCAL) if chan.is_open() else 0 for chan in self.channels.values()))/1000 if self.channels else 0 - def can_receive(self): + def num_sats_can_receive(self) -> Union[Decimal, int]: with self.lock: return Decimal(max(chan.available_to_spend(REMOTE) if chan.is_open() else 0 for chan in self.channels.values()))/1000 if self.channels else 0