Browse Source

add option to strip sensitive info from psbt serialization

terminal
Craig Raw 4 years ago
parent
commit
eb55b9420a
  1. 2
      drongo
  2. 18
      src/main/java/com/sparrowwallet/sparrow/AppController.java
  3. 2
      src/main/resources/com/sparrowwallet/sparrow/app.fxml

2
drongo

@ -1 +1 @@
Subproject commit 428054d375b638bb7e08133fdffe6f1dd438cca9 Subproject commit b7038b19f9d44cfc50af151927b06f9aada9d5e7

18
src/main/java/com/sparrowwallet/sparrow/AppController.java

@ -532,14 +532,22 @@ public class AppController implements Initializable {
} }
public void savePSBTBinary(ActionEvent event) { public void savePSBTBinary(ActionEvent event) {
savePSBT(false); savePSBT(false, true);
} }
public void savePSBTText(ActionEvent event) { public void savePSBTText(ActionEvent event) {
savePSBT(true); savePSBT(true, true);
} }
public void savePSBT(boolean asText) { public void savePSBTBinaryNoXpubs(ActionEvent event) {
savePSBT(false, false);
}
public void savePSBTTextNoXpubs(ActionEvent event) {
savePSBT(true, false);
}
public void savePSBT(boolean asText, boolean includeXpubs) {
Tab selectedTab = tabs.getSelectionModel().getSelectedItem(); Tab selectedTab = tabs.getSelectionModel().getSelectedItem();
TabData tabData = (TabData)selectedTab.getUserData(); TabData tabData = (TabData)selectedTab.getUserData();
if(tabData.getType() == TabData.TabType.TRANSACTION) { if(tabData.getType() == TabData.TabType.TRANSACTION) {
@ -571,10 +579,10 @@ public class AppController implements Initializable {
try(FileOutputStream outputStream = new FileOutputStream(file)) { try(FileOutputStream outputStream = new FileOutputStream(file)) {
if(asText) { if(asText) {
PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8)); PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
writer.print(transactionTabData.getPsbt().toBase64String()); writer.print(transactionTabData.getPsbt().toBase64String(includeXpubs));
writer.flush(); writer.flush();
} else { } else {
outputStream.write(transactionTabData.getPsbt().serialize()); outputStream.write(transactionTabData.getPsbt().serialize(includeXpubs));
} }
} catch(IOException e) { } catch(IOException e) {
log.error("Error saving PSBT", e); log.error("Error saving PSBT", e);

2
src/main/resources/com/sparrowwallet/sparrow/app.fxml

@ -30,6 +30,8 @@
<Menu fx:id="savePSBT" mnemonicParsing="false" text="Save PSBT"> <Menu fx:id="savePSBT" mnemonicParsing="false" text="Save PSBT">
<MenuItem text="As Binary..." onAction="#savePSBTBinary" accelerator="Shortcut+S"/> <MenuItem text="As Binary..." onAction="#savePSBTBinary" accelerator="Shortcut+S"/>
<MenuItem text="As Base64..." onAction="#savePSBTText"/> <MenuItem text="As Base64..." onAction="#savePSBTText"/>
<MenuItem text="As Binary (No Xpubs)..." onAction="#savePSBTBinaryNoXpubs"/>
<MenuItem text="As Base64 (No Xpubs)..." onAction="#savePSBTTextNoXpubs"/>
</Menu> </Menu>
<SeparatorMenuItem /> <SeparatorMenuItem />
<MenuItem mnemonicParsing="false" text="Import Wallet..." onAction="#importWallet"/> <MenuItem mnemonicParsing="false" text="Import Wallet..." onAction="#importWallet"/>

Loading…
Cancel
Save