Qt balance piechart: show lightning funds that are frozen
This commit is contained in:
@@ -49,6 +49,7 @@ COLOR_UNCONFIRMED = Qt.red
|
|||||||
COLOR_UNMATURED = Qt.magenta
|
COLOR_UNMATURED = Qt.magenta
|
||||||
COLOR_FROZEN = ColorScheme.BLUE.as_color(True)
|
COLOR_FROZEN = ColorScheme.BLUE.as_color(True)
|
||||||
COLOR_LIGHTNING = Qt.yellow
|
COLOR_LIGHTNING = Qt.yellow
|
||||||
|
COLOR_FROZEN_LIGHTNING = Qt.cyan
|
||||||
|
|
||||||
class PieChartObject:
|
class PieChartObject:
|
||||||
|
|
||||||
@@ -146,19 +147,21 @@ class BalanceDialog(WindowModalDialog):
|
|||||||
self.config = parent.config
|
self.config = parent.config
|
||||||
self.fx = parent.fx
|
self.fx = parent.fx
|
||||||
|
|
||||||
confirmed, unconfirmed, unmatured, frozen, lightning = self.wallet.get_balances_for_piechart()
|
confirmed, unconfirmed, unmatured, frozen, lightning, f_lightning = self.wallet.get_balances_for_piechart()
|
||||||
|
|
||||||
frozen_str = self.config.format_amount_and_units(frozen)
|
frozen_str = self.config.format_amount_and_units(frozen)
|
||||||
confirmed_str = self.config.format_amount_and_units(confirmed)
|
confirmed_str = self.config.format_amount_and_units(confirmed)
|
||||||
unconfirmed_str = self.config.format_amount_and_units(unconfirmed)
|
unconfirmed_str = self.config.format_amount_and_units(unconfirmed)
|
||||||
unmatured_str = self.config.format_amount_and_units(unmatured)
|
unmatured_str = self.config.format_amount_and_units(unmatured)
|
||||||
lightning_str = self.config.format_amount_and_units(lightning)
|
lightning_str = self.config.format_amount_and_units(lightning)
|
||||||
|
f_lightning_str = self.config.format_amount_and_units(f_lightning)
|
||||||
|
|
||||||
frozen_fiat_str = self.fx.format_amount_and_units(frozen) if self.fx else ''
|
frozen_fiat_str = self.fx.format_amount_and_units(frozen) if self.fx else ''
|
||||||
confirmed_fiat_str = self.fx.format_amount_and_units(confirmed) if self.fx else ''
|
confirmed_fiat_str = self.fx.format_amount_and_units(confirmed) if self.fx else ''
|
||||||
unconfirmed_fiat_str = self.fx.format_amount_and_units(unconfirmed) if self.fx else ''
|
unconfirmed_fiat_str = self.fx.format_amount_and_units(unconfirmed) if self.fx else ''
|
||||||
unmatured_fiat_str = self.fx.format_amount_and_units(unmatured) if self.fx else ''
|
unmatured_fiat_str = self.fx.format_amount_and_units(unmatured) if self.fx else ''
|
||||||
lightning_fiat_str = self.fx.format_amount_and_units(lightning) if self.fx else ''
|
lightning_fiat_str = self.fx.format_amount_and_units(lightning) if self.fx else ''
|
||||||
|
f_lightning_fiat_str = self.fx.format_amount_and_units(f_lightning) if self.fx else ''
|
||||||
|
|
||||||
piechart = PieChartWidget(120, [
|
piechart = PieChartWidget(120, [
|
||||||
(_('Frozen'), COLOR_FROZEN, frozen),
|
(_('Frozen'), COLOR_FROZEN, frozen),
|
||||||
@@ -166,6 +169,7 @@ class BalanceDialog(WindowModalDialog):
|
|||||||
(_('Unconfirmed'), COLOR_UNCONFIRMED, unconfirmed),
|
(_('Unconfirmed'), COLOR_UNCONFIRMED, unconfirmed),
|
||||||
(_('Confirmed'), COLOR_CONFIRMED, confirmed),
|
(_('Confirmed'), COLOR_CONFIRMED, confirmed),
|
||||||
(_('Lightning'), COLOR_LIGHTNING, lightning),
|
(_('Lightning'), COLOR_LIGHTNING, lightning),
|
||||||
|
(_('Lightning frozen'), COLOR_FROZEN_LIGHTNING, f_lightning),
|
||||||
])
|
])
|
||||||
|
|
||||||
vbox = QVBoxLayout()
|
vbox = QVBoxLayout()
|
||||||
@@ -200,6 +204,11 @@ class BalanceDialog(WindowModalDialog):
|
|||||||
grid.addWidget(QLabel(_("Lightning") + ':'), 4, 1)
|
grid.addWidget(QLabel(_("Lightning") + ':'), 4, 1)
|
||||||
grid.addWidget(QLabel(lightning_str), 4, 2, alignment=Qt.AlignRight)
|
grid.addWidget(QLabel(lightning_str), 4, 2, alignment=Qt.AlignRight)
|
||||||
grid.addWidget(QLabel(lightning_fiat_str), 4, 3, alignment=Qt.AlignRight)
|
grid.addWidget(QLabel(lightning_fiat_str), 4, 3, alignment=Qt.AlignRight)
|
||||||
|
if f_lightning:
|
||||||
|
grid.addWidget(LegendWidget(COLOR_FROZEN_LIGHTNING), 5, 0)
|
||||||
|
grid.addWidget(QLabel(_("Lightning (frozen)") + ':'), 5, 1)
|
||||||
|
grid.addWidget(QLabel(f_lightning_str), 5, 2, alignment=Qt.AlignRight)
|
||||||
|
grid.addWidget(QLabel(f_lightning_fiat_str), 5, 3, alignment=Qt.AlignRight)
|
||||||
|
|
||||||
vbox.addLayout(grid)
|
vbox.addLayout(grid)
|
||||||
vbox.addStretch(1)
|
vbox.addStretch(1)
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ from .transaction_dialog import PreviewTxDialog
|
|||||||
from .rbf_dialog import BumpFeeDialog, DSCancelDialog
|
from .rbf_dialog import BumpFeeDialog, DSCancelDialog
|
||||||
from .qrreader import scan_qrcode
|
from .qrreader import scan_qrcode
|
||||||
from .swap_dialog import SwapDialog
|
from .swap_dialog import SwapDialog
|
||||||
from .balance_dialog import BalanceToolButton, COLOR_FROZEN, COLOR_UNMATURED, COLOR_UNCONFIRMED, COLOR_CONFIRMED, COLOR_LIGHTNING
|
from .balance_dialog import BalanceToolButton, COLOR_FROZEN, COLOR_UNMATURED, COLOR_UNCONFIRMED, COLOR_CONFIRMED, COLOR_LIGHTNING, COLOR_FROZEN_LIGHTNING
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from . import ElectrumGui
|
from . import ElectrumGui
|
||||||
@@ -992,15 +992,16 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
|
|||||||
icon = read_QIcon("status_lagging%s.png"%fork_str)
|
icon = read_QIcon("status_lagging%s.png"%fork_str)
|
||||||
else:
|
else:
|
||||||
network_text = _("Connected")
|
network_text = _("Connected")
|
||||||
confirmed, unconfirmed, unmatured, frozen, lightning = self.wallet.get_balances_for_piechart()
|
confirmed, unconfirmed, unmatured, frozen, lightning, f_lightning = self.wallet.get_balances_for_piechart()
|
||||||
self.balance_label.update_list([
|
self.balance_label.update_list([
|
||||||
(_('Frozen'), COLOR_FROZEN, frozen),
|
(_('Frozen'), COLOR_FROZEN, frozen),
|
||||||
(_('Unmatured'), COLOR_UNMATURED, unmatured),
|
(_('Unmatured'), COLOR_UNMATURED, unmatured),
|
||||||
(_('Unconfirmed'), COLOR_UNCONFIRMED, unconfirmed),
|
(_('Unconfirmed'), COLOR_UNCONFIRMED, unconfirmed),
|
||||||
(_('Confirmed'), COLOR_CONFIRMED, confirmed),
|
(_('Confirmed'), COLOR_CONFIRMED, confirmed),
|
||||||
(_('Lightning'), COLOR_LIGHTNING, lightning),
|
(_('Lightning'), COLOR_LIGHTNING, lightning),
|
||||||
|
(_('Lightning (frozen)'), COLOR_FROZEN_LIGHTNING, f_lightning),
|
||||||
])
|
])
|
||||||
balance = confirmed + unconfirmed + unmatured + frozen + lightning
|
balance = confirmed + unconfirmed + unmatured + frozen + lightning + f_lightning
|
||||||
balance_text = _("Balance") + ": %s "%(self.format_amount_and_units(balance))
|
balance_text = _("Balance") + ": %s "%(self.format_amount_and_units(balance))
|
||||||
# append fiat balance and price
|
# append fiat balance and price
|
||||||
if self.fx.is_enabled():
|
if self.fx.is_enabled():
|
||||||
|
|||||||
@@ -2087,10 +2087,10 @@ class LNWallet(LNWorker):
|
|||||||
return
|
return
|
||||||
self.wallet.save_db()
|
self.wallet.save_db()
|
||||||
|
|
||||||
def get_balance(self):
|
def get_balance(self, frozen=False):
|
||||||
with self.lock:
|
with self.lock:
|
||||||
return Decimal(sum(
|
return Decimal(sum(
|
||||||
chan.balance(LOCAL) if not chan.is_closed() else 0
|
chan.balance(LOCAL) if not chan.is_closed() and (chan.is_frozen_for_sending() if frozen else True) else 0
|
||||||
for chan in self.channels.values())) / 1000
|
for chan in self.channels.values())) / 1000
|
||||||
|
|
||||||
def num_sats_can_send(self) -> Decimal:
|
def num_sats_can_send(self) -> Decimal:
|
||||||
|
|||||||
@@ -729,6 +729,7 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
|
|||||||
c, u, x = self.get_balance()
|
c, u, x = self.get_balance()
|
||||||
fc, fu, fx = self.get_frozen_balance()
|
fc, fu, fx = self.get_frozen_balance()
|
||||||
lightning = self.lnworker.get_balance() if self.has_lightning() else 0
|
lightning = self.lnworker.get_balance() if self.has_lightning() else 0
|
||||||
|
f_lightning = self.lnworker.get_balance(frozen=True) if self.has_lightning() else 0
|
||||||
# subtract frozen funds
|
# subtract frozen funds
|
||||||
cc = c - fc
|
cc = c - fc
|
||||||
uu = u - fu
|
uu = u - fu
|
||||||
@@ -739,7 +740,7 @@ class Abstract_Wallet(AddressSynchronizer, ABC):
|
|||||||
if uu < 0:
|
if uu < 0:
|
||||||
cc = cc + uu
|
cc = cc + uu
|
||||||
uu = 0
|
uu = 0
|
||||||
return cc, uu, xx, frozen, lightning
|
return cc, uu, xx, frozen, lightning - f_lightning, f_lightning
|
||||||
|
|
||||||
def balance_at_timestamp(self, domain, target_timestamp):
|
def balance_at_timestamp(self, domain, target_timestamp):
|
||||||
# we assume that get_history returns items ordered by block height
|
# we assume that get_history returns items ordered by block height
|
||||||
|
|||||||
Reference in New Issue
Block a user