qt tx_dialog: share btn: add option to add slip-19 ownership proofs
This commit is contained in:
@@ -63,7 +63,7 @@ from .util import (MessageBoxMixin, read_QIcon, Buttons, icon_path,
|
||||
TRANSACTION_FILE_EXTENSION_FILTER_ONLY_COMPLETE_TX,
|
||||
TRANSACTION_FILE_EXTENSION_FILTER_ONLY_PARTIAL_TX,
|
||||
BlockingWaitingDialog, getSaveFileName, ColorSchemeItem,
|
||||
get_iconname_qrcode, VLine)
|
||||
get_iconname_qrcode, VLine, WaitingDialog)
|
||||
from .rate_limiter import rate_limited
|
||||
from .my_treeview import create_toolbar_with_menu, QMenuWithConfig
|
||||
|
||||
@@ -511,6 +511,15 @@ class TxDialog(QDialog, MessageBoxMixin):
|
||||
export_option = export_actions_menu.addConfig(
|
||||
self.config.cv.GUI_QT_TX_DIALOG_EXPORT_INCLUDE_GLOBAL_XPUBS)
|
||||
self.psbt_only_widgets.append(export_option)
|
||||
if self.wallet.has_support_for_slip_19_ownership_proofs():
|
||||
export_option = export_actions_menu.addAction(
|
||||
_('Include SLIP-19 ownership proofs'),
|
||||
self._add_slip_19_ownership_proofs_to_tx)
|
||||
export_option.setToolTip(_("Some cosigners (e.g. Trezor) might require this for coinjoins."))
|
||||
self._export_option_slip19 = export_option
|
||||
export_option.setCheckable(True)
|
||||
export_option.setChecked(False)
|
||||
self.psbt_only_widgets.append(export_option)
|
||||
|
||||
self.export_actions_button = QToolButton()
|
||||
self.export_actions_button.setText(_("Share"))
|
||||
@@ -628,6 +637,20 @@ class TxDialog(QDialog, MessageBoxMixin):
|
||||
action.triggered.connect(lambda: self.export_to_file(tx=gettx()))
|
||||
menu.addAction(action)
|
||||
|
||||
def _add_slip_19_ownership_proofs_to_tx(self):
|
||||
assert isinstance(self.tx, PartialTransaction)
|
||||
def on_success(result):
|
||||
self._export_option_slip19.setEnabled(False)
|
||||
self.main_window.pop_top_level_window(self)
|
||||
def on_failure(exc_info):
|
||||
self._export_option_slip19.setChecked(False)
|
||||
self.main_window.on_error(exc_info)
|
||||
self.main_window.pop_top_level_window(self)
|
||||
task = partial(self.wallet.add_slip_19_ownership_proofs_to_tx, self.tx)
|
||||
msg = _('Adding SLIP-19 ownership proofs to transaction...')
|
||||
self.main_window.push_top_level_window(self)
|
||||
WaitingDialog(self, msg, task, on_success, on_failure)
|
||||
|
||||
def copy_to_clipboard(self, *, tx: Transaction = None):
|
||||
if tx is None:
|
||||
tx = self.tx
|
||||
|
||||
Reference in New Issue
Block a user