diff --git a/core/src/main/java/org/bitcoinj/wallet/bip47/Wallet.java b/core/src/main/java/org/bitcoinj/wallet/bip47/Wallet.java index 1f9cdb3825b..062378071d2 100644 --- a/core/src/main/java/org/bitcoinj/wallet/bip47/Wallet.java +++ b/core/src/main/java/org/bitcoinj/wallet/bip47/Wallet.java @@ -275,20 +275,21 @@ public void setBlockchainDownloadProgressTracker(BlockchainDownloadProgressTrack /** * */ - public void loadBip47MetaData(Function decryption) { + public void loadBip47MetaData() { File file = new File(directory, getCoin().concat(".bip47")); - String encryptedJson; + String jsonString; try { - encryptedJson = FileUtils.readFileToString(file, Charset.defaultCharset()); - } catch (IOException e) { - e.printStackTrace(); + jsonString = FileUtils.readFileToString(file, Charset.defaultCharset()); + } catch (IOException e){ + log.debug("Creating BIP47 wallet file at " + file.getAbsolutePath() + " ..."); + saveBip47MetaData(); + loadBip47MetaData(); return; } - if (StringUtils.isEmpty(encryptedJson)) { + if (StringUtils.isEmpty(jsonString)) { return; } - String jsonString = decryption.apply(encryptedJson); log.debug("loadBip47MetaData: "+jsonString); @@ -302,18 +303,22 @@ public void loadBip47MetaData(Function decryption) { } } - public synchronized void saveBip47MetaData(Function encryption) { + public synchronized void saveBip47MetaData() { + try { + vWallet.saveToFile(vWalletFile); + } catch (IOException io){ + log.error("Failed to save wallet file",io); + } + Gson gson = new GsonBuilder().setPrettyPrinting().create(); String json = gson.toJson(bip47MetaData.values()); log.debug("saveBip47MetaData: "+json); - String encryptedJson = encryption.apply(json); - File file = new File(directory, getCoin().concat(".bip47")); try { - FileUtils.writeStringToFile(file, encryptedJson, Charset.defaultCharset(), false); + FileUtils.writeStringToFile(file, json, Charset.defaultCharset(), false); log.debug("saveBip47MetaData: saved"); } catch (IOException e) { e.printStackTrace();