diff --git a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java index 2a7f2912..84bcee49 100644 --- a/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java +++ b/src/main/java/com/sparrowwallet/sparrow/transaction/HeadersController.java @@ -9,6 +9,7 @@ import com.sparrowwallet.drongo.psbt.PSBT; import com.sparrowwallet.drongo.psbt.PSBTInput; import com.sparrowwallet.drongo.uri.BitcoinURI; import com.sparrowwallet.drongo.wallet.*; +import com.sparrowwallet.hummingbird.UR; import com.sparrowwallet.hummingbird.registry.CryptoPSBT; import com.sparrowwallet.sparrow.AppServices; import com.sparrowwallet.sparrow.EventManager; @@ -227,6 +228,9 @@ public class HeadersController extends TransactionFormController implements Init @FXML private Button broadcastButton; + @FXML + private Button showTransactionButton; + @FXML private Button saveFinalButton; @@ -461,6 +465,8 @@ public class HeadersController extends TransactionFormController implements Init broadcastProgressBar.visibleProperty().bind(signaturesProgressBar.visibleProperty().not()); broadcastButton.managedProperty().bind(broadcastButton.visibleProperty()); + showTransactionButton.managedProperty().bind(showTransactionButton.visibleProperty()); + showTransactionButton.visibleProperty().bind(broadcastButton.visibleProperty().not()); saveFinalButton.managedProperty().bind(saveFinalButton.visibleProperty()); saveFinalButton.visibleProperty().bind(broadcastButton.visibleProperty().not()); broadcastButton.visibleProperty().bind(AppServices.onlineProperty()); @@ -1255,6 +1261,21 @@ public class HeadersController extends TransactionFormController implements Init broadcastTransactionService.start(); } + public void showTransaction(ActionEvent event) { + try { + Transaction transaction = headersForm.getPsbt().extractTransaction(); + byte[] txBytes = transaction.bitcoinSerialize(); + UR ur = UR.fromBytes(txBytes); + BBQR bbqr = new BBQR(BBQRType.TXN, txBytes); + QRDisplayDialog qrDisplayDialog = new QRDisplayDialog(ur, bbqr, false, false, false); + qrDisplayDialog.initOwner(showTransactionButton.getScene().getWindow()); + qrDisplayDialog.showAndWait(); + } catch (Exception exception) { + log.error("Error creating UR", exception); + AppServices.showErrorDialog("Error displaying transaction QR code", exception.getMessage()); + } + } + public void saveFinalTransaction(ActionEvent event) { Stage window = new Stage(); diff --git a/src/main/resources/com/sparrowwallet/sparrow/transaction/headers.fxml b/src/main/resources/com/sparrowwallet/sparrow/transaction/headers.fxml index b6b92ac6..b1cfdcbd 100644 --- a/src/main/resources/com/sparrowwallet/sparrow/transaction/headers.fxml +++ b/src/main/resources/com/sparrowwallet/sparrow/transaction/headers.fxml @@ -285,6 +285,11 @@ +