From 7005a26fc504b79dea421c448eed849ed0e542ad Mon Sep 17 00:00:00 2001 From: Alekos Filini Date: Mon, 10 Aug 2020 13:20:48 +0200 Subject: [PATCH] [wallet] Nicer interface for WalletExport --- src/wallet/export.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/wallet/export.rs b/src/wallet/export.rs index dac3cfd9..f90200fa 100644 --- a/src/wallet/export.rs +++ b/src/wallet/export.rs @@ -15,6 +15,20 @@ pub struct WalletExport { pub label: String, } +impl ToString for WalletExport { + fn to_string(&self) -> String { + serde_json::to_string(self).unwrap() + } +} + +impl FromStr for WalletExport { + type Err = serde_json::Error; + + fn from_str(s: &str) -> Result { + serde_json::from_str(s) + } +} + impl WalletExport { pub fn export_wallet( wallet: &Wallet, @@ -217,7 +231,7 @@ mod test { .unwrap(); let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap(); - assert_eq!(serde_json::to_string(&export).unwrap(), "{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"); + assert_eq!(export.to_string(), "{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"); } #[test] @@ -226,7 +240,7 @@ mod test { let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"; let import_str = "{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"; - let export: WalletExport = serde_json::from_str(import_str).unwrap(); + let export = WalletExport::from_str(import_str).unwrap(); assert_eq!(export.descriptor(), descriptor); assert_eq!(export.change_descriptor(), Some(change_descriptor.into()));