diff --git a/electrum/gui/qt/channel_details.py b/electrum/gui/qt/channel_details.py index 81d919203..68172f3d1 100644 --- a/electrum/gui/qt/channel_details.py +++ b/electrum/gui/qt/channel_details.py @@ -159,12 +159,14 @@ class ChannelDetailsDialog(QtWidgets.QDialog, MessageBoxMixin, QtEventListener): def update(self): if self.chan.is_closed() or self.chan.is_backup(): return + assert isinstance(self.chan, Channel), type(self.chan) self.can_send_label.setText(self.format_msat(self.chan.available_to_spend(LOCAL))) self.can_receive_label.setText(self.format_msat(self.chan.available_to_spend(REMOTE))) self.sent_label.setText(self.format_msat(self.chan.total_msat(Direction.SENT))) self.received_label.setText(self.format_msat(self.chan.total_msat(Direction.RECEIVED))) self.local_balance_label.setText(self.format_msat(self.chan.balance(LOCAL))) self.remote_balance_label.setText(self.format_msat(self.chan.balance(REMOTE))) + self.current_feerate.setText(self.window.format_fee_rate(4 * self.chan.get_latest_feerate(LOCAL))) @QtCore.pyqtSlot(str) def show_tx(self, link_text: str): @@ -205,7 +207,7 @@ class ChannelDetailsDialog(QtWidgets.QDialog, MessageBoxMixin, QtEventListener): form.addRow(QLabel(_('Closing Transaction') + ':'), LinkedLabel(closing_label_text, self.show_tx)) return form - def get_hbox_stats(self, chan): + def get_hbox_stats(self, chan: Channel): hbox_stats = QHBoxLayout() form_layout_left = QtWidgets.QFormLayout(None) form_layout_right = QtWidgets.QFormLayout(None) @@ -239,6 +241,18 @@ class ChannelDetailsDialog(QtWidgets.QDialog, MessageBoxMixin, QtEventListener): self.sent_label = SelectableLabel() form_layout_left.addRow(_('Total sent') + ':', self.sent_label) form_layout_right.addRow(_('Total received') + ':', self.received_label) + # to-self-delay + csv_local_header = SelectableLabel(_("Remote force-close CSV delay") + ":") + csv_local_header.setToolTip(_("Force-close CSV delay imposed on them")) + csv_remote_header = SelectableLabel(_("Local force-close CSV delay") + ":") + csv_remote_header.setToolTip(_("Force-close CSV delay imposed on us")) + csv_local_label = SelectableLabel(_("{} blocks").format(chan.config[LOCAL].to_self_delay)) + csv_remote_label = SelectableLabel(_("{} blocks").format(chan.config[REMOTE].to_self_delay)) + form_layout_left.addRow(csv_local_header, csv_local_label) + form_layout_right.addRow(csv_remote_header, csv_remote_label) + # onchain feerate + self.current_feerate = SelectableLabel() + form_layout_left.addRow(_('Current feerate') + ':', self.current_feerate) # channel stats left column hbox_stats.addLayout(form_layout_left, 50) # vertical line separator diff --git a/electrum/gui/qt/main_window.py b/electrum/gui/qt/main_window.py index 5565a0f99..fc0296788 100644 --- a/electrum/gui/qt/main_window.py +++ b/electrum/gui/qt/main_window.py @@ -919,7 +919,8 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger, QtEventListener): """ return self.fx.format_amount_and_units(amount_sat) if self.fx else '' - def format_fee_rate(self, fee_rate): + def format_fee_rate(self, fee_rate) -> str: + """fee_rate is in sat/kvByte.""" return self.config.format_fee_rate(fee_rate) def get_decimal_point(self): diff --git a/electrum/simple_config.py b/electrum/simple_config.py index 2ef63943e..e3979db22 100644 --- a/electrum/simple_config.py +++ b/electrum/simple_config.py @@ -872,7 +872,8 @@ class SimpleConfig(Logger): def format_amount_and_units(self, *args, **kwargs) -> str: return self.format_amount(*args, **kwargs) + ' ' + self.get_base_unit() - def format_fee_rate(self, fee_rate): + def format_fee_rate(self, fee_rate) -> str: + """fee_rate is in sat/kvByte.""" return format_fee_satoshis(fee_rate/1000, num_zeros=self.num_zeros) + ' sat/byte' def get_base_unit(self):