mirror of
https://github.com/sparrowwallet/sparrow.git
synced 2025-11-05 11:56:37 +00:00
[feature/1630] Add QR code button on signed transaction screen
This commit is contained in:
parent
78f0721168
commit
0c4b281475
2 changed files with 25 additions and 0 deletions
|
|
@ -9,6 +9,7 @@ import com.sparrowwallet.drongo.psbt.PSBT;
|
||||||
import com.sparrowwallet.drongo.psbt.PSBTInput;
|
import com.sparrowwallet.drongo.psbt.PSBTInput;
|
||||||
import com.sparrowwallet.drongo.uri.BitcoinURI;
|
import com.sparrowwallet.drongo.uri.BitcoinURI;
|
||||||
import com.sparrowwallet.drongo.wallet.*;
|
import com.sparrowwallet.drongo.wallet.*;
|
||||||
|
import com.sparrowwallet.hummingbird.UR;
|
||||||
import com.sparrowwallet.hummingbird.registry.CryptoPSBT;
|
import com.sparrowwallet.hummingbird.registry.CryptoPSBT;
|
||||||
import com.sparrowwallet.sparrow.AppServices;
|
import com.sparrowwallet.sparrow.AppServices;
|
||||||
import com.sparrowwallet.sparrow.EventManager;
|
import com.sparrowwallet.sparrow.EventManager;
|
||||||
|
|
@ -230,6 +231,9 @@ public class HeadersController extends TransactionFormController implements Init
|
||||||
@FXML
|
@FXML
|
||||||
private Button saveFinalButton;
|
private Button saveFinalButton;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Button showTransactionButton;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private Button payjoinButton;
|
private Button payjoinButton;
|
||||||
|
|
||||||
|
|
@ -463,6 +467,8 @@ public class HeadersController extends TransactionFormController implements Init
|
||||||
broadcastButton.managedProperty().bind(broadcastButton.visibleProperty());
|
broadcastButton.managedProperty().bind(broadcastButton.visibleProperty());
|
||||||
saveFinalButton.managedProperty().bind(saveFinalButton.visibleProperty());
|
saveFinalButton.managedProperty().bind(saveFinalButton.visibleProperty());
|
||||||
saveFinalButton.visibleProperty().bind(broadcastButton.visibleProperty().not());
|
saveFinalButton.visibleProperty().bind(broadcastButton.visibleProperty().not());
|
||||||
|
showTransactionButton.managedProperty().bind(showTransactionButton.visibleProperty());
|
||||||
|
showTransactionButton.visibleProperty().bind(broadcastButton.visibleProperty().not());
|
||||||
broadcastButton.visibleProperty().bind(AppServices.onlineProperty());
|
broadcastButton.visibleProperty().bind(AppServices.onlineProperty());
|
||||||
|
|
||||||
BitcoinURI payjoinURI = getPayjoinURI();
|
BitcoinURI payjoinURI = getPayjoinURI();
|
||||||
|
|
@ -1280,6 +1286,20 @@ public class HeadersController extends TransactionFormController implements Init
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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.showAndWait();
|
||||||
|
} catch (Exception exception) {
|
||||||
|
log.error("Error creating UR", exception);
|
||||||
|
AppServices.showErrorDialog("Error displaying transaction QR code", exception.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void getPayjoinTransaction(ActionEvent event) {
|
public void getPayjoinTransaction(ActionEvent event) {
|
||||||
BitcoinURI payjoinURI = getPayjoinURI();
|
BitcoinURI payjoinURI = getPayjoinURI();
|
||||||
if(payjoinURI == null) {
|
if(payjoinURI == null) {
|
||||||
|
|
|
||||||
|
|
@ -293,6 +293,11 @@
|
||||||
<Tooltip text="Connect to a server (bottom right toggle) to broadcast a transaction" />
|
<Tooltip text="Connect to a server (bottom right toggle) to broadcast a transaction" />
|
||||||
</tooltip>
|
</tooltip>
|
||||||
</Button>
|
</Button>
|
||||||
|
<Button fx:id="showTransactionButton" defaultButton="true" HBox.hgrow="ALWAYS" text="Show Transaction as QR" contentDisplay="TOP" wrapText="true" textAlignment="CENTER" onAction="#showTransaction">
|
||||||
|
<graphic>
|
||||||
|
<Glyph fontFamily="Font Awesome 5 Free Solid" fontSize="20" icon="QRCODE" />
|
||||||
|
</graphic>
|
||||||
|
</Button>
|
||||||
<Button fx:id="payjoinButton" defaultButton="true" HBox.hgrow="ALWAYS" text="Get Payjoin Transaction" contentDisplay="TOP" wrapText="true" textAlignment="CENTER" onAction="#getPayjoinTransaction">
|
<Button fx:id="payjoinButton" defaultButton="true" HBox.hgrow="ALWAYS" text="Get Payjoin Transaction" contentDisplay="TOP" wrapText="true" textAlignment="CENTER" onAction="#getPayjoinTransaction">
|
||||||
<graphic>
|
<graphic>
|
||||||
<Glyph fontFamily="Font Awesome 5 Free Solid" fontSize="20" icon="RANDOM" />
|
<Glyph fontFamily="Font Awesome 5 Free Solid" fontSize="20" icon="RANDOM" />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue