Merge bitcoindevkit/bdk#589: export: Rename WalletExport to FullyNodedExport
				
					
				
			9ed36875f1112d884f6c3c2beab89faf8aa5d2e0 export: Rename `WalletExport` to `FullyNodedExport` (Alekos Filini) Pull request description: ### Description The `WalletExport` type can still be used as an alias to `FullyNodedExport` but it has been marked as deprecated and will be removed in the next release. ### Checklists #### All Submissions: * [x] I've signed all my commits * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md) * [x] I ran `cargo fmt` and `cargo clippy` before committing #### New Features: * [ ] I've added tests for the new feature * [x] I've added docs for the new feature * [x] I've updated `CHANGELOG.md` ACKs for top commit: bucko13: Concept ACK 9ed3687 notmandatory: ACK 9ed36875f1112d884f6c3c2beab89faf8aa5d2e0 Tree-SHA512: fe07307092d3040b30ae96901d5fc4afecee635412bca4a0d2e78d90f07990e7bbcd6b87ed923bf5804385356f419cacadbfefbaf97ebc9a622e34548438ee00
This commit is contained in:
		
						commit
						1018bb2b17
					
				| @ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||||||
| - Deprecate `database::Database::flush()`, the function is only needed for the sled database on mobile, instead for mobile use the sqlite database. | - Deprecate `database::Database::flush()`, the function is only needed for the sled database on mobile, instead for mobile use the sqlite database. | ||||||
| - Add `keychain: KeychainKind` to `wallet::AddressInfo`. | - Add `keychain: KeychainKind` to `wallet::AddressInfo`. | ||||||
| - Improve key generation traits | - Improve key generation traits | ||||||
|  | - Rename `WalletExport` to `FullyNodedExport`, deprecate the former. | ||||||
| 
 | 
 | ||||||
| ## [v0.17.0] - [v0.16.1] | ## [v0.17.0] - [v0.16.1] | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -29,7 +29,7 @@ | |||||||
| //!     "label":"testnet"
 | //!     "label":"testnet"
 | ||||||
| //! }"#;
 | //! }"#;
 | ||||||
| //!
 | //!
 | ||||||
| //! let import = WalletExport::from_str(import)?;
 | //! let import = FullyNodedExport::from_str(import)?;
 | ||||||
| //! let wallet = Wallet::new(
 | //! let wallet = Wallet::new(
 | ||||||
| //!     &import.descriptor(),
 | //!     &import.descriptor(),
 | ||||||
| //!     import.change_descriptor().as_ref(),
 | //!     import.change_descriptor().as_ref(),
 | ||||||
| @ -51,7 +51,7 @@ | |||||||
| //!     Network::Testnet,
 | //!     Network::Testnet,
 | ||||||
| //!     MemoryDatabase::default()
 | //!     MemoryDatabase::default()
 | ||||||
| //! )?;
 | //! )?;
 | ||||||
| //! let export = WalletExport::export_wallet(&wallet, "exported wallet", true)
 | //! let export = FullyNodedExport::export_wallet(&wallet, "exported wallet", true)
 | ||||||
| //!     .map_err(ToString::to_string)
 | //!     .map_err(ToString::to_string)
 | ||||||
| //!     .map_err(bdk::Error::Generic)?;
 | //!     .map_err(bdk::Error::Generic)?;
 | ||||||
| //!
 | //!
 | ||||||
| @ -70,11 +70,15 @@ use crate::database::BatchDatabase; | |||||||
| use crate::types::KeychainKind; | use crate::types::KeychainKind; | ||||||
| use crate::wallet::Wallet; | use crate::wallet::Wallet; | ||||||
| 
 | 
 | ||||||
|  | /// Alias for [`FullyNodedExport`]
 | ||||||
|  | #[deprecated(since = "0.18.0", note = "Please use [`FullyNodedExport`] instead")] | ||||||
|  | pub type WalletExport = FullyNodedExport; | ||||||
|  | 
 | ||||||
| /// Structure that contains the export of a wallet
 | /// Structure that contains the export of a wallet
 | ||||||
| ///
 | ///
 | ||||||
| /// For a usage example see [this module](crate::wallet::export)'s documentation.
 | /// For a usage example see [this module](crate::wallet::export)'s documentation.
 | ||||||
| #[derive(Debug, Serialize, Deserialize)] | #[derive(Debug, Serialize, Deserialize)] | ||||||
| pub struct WalletExport { | pub struct FullyNodedExport { | ||||||
|     descriptor: String, |     descriptor: String, | ||||||
|     /// Earliest block to rescan when looking for the wallet's transactions
 |     /// Earliest block to rescan when looking for the wallet's transactions
 | ||||||
|     pub blockheight: u32, |     pub blockheight: u32, | ||||||
| @ -82,13 +86,13 @@ pub struct WalletExport { | |||||||
|     pub label: String, |     pub label: String, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl ToString for WalletExport { | impl ToString for FullyNodedExport { | ||||||
|     fn to_string(&self) -> String { |     fn to_string(&self) -> String { | ||||||
|         serde_json::to_string(self).unwrap() |         serde_json::to_string(self).unwrap() | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl FromStr for WalletExport { | impl FromStr for FullyNodedExport { | ||||||
|     type Err = serde_json::Error; |     type Err = serde_json::Error; | ||||||
| 
 | 
 | ||||||
|     fn from_str(s: &str) -> Result<Self, Self::Err> { |     fn from_str(s: &str) -> Result<Self, Self::Err> { | ||||||
| @ -100,7 +104,7 @@ fn remove_checksum(s: String) -> String { | |||||||
|     s.splitn(2, '#').next().map(String::from).unwrap() |     s.splitn(2, '#').next().map(String::from).unwrap() | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl WalletExport { | impl FullyNodedExport { | ||||||
|     /// Export a wallet
 |     /// Export a wallet
 | ||||||
|     ///
 |     ///
 | ||||||
|     /// This function returns an error if it determines that the `wallet`'s descriptor(s) are not
 |     /// This function returns an error if it determines that the `wallet`'s descriptor(s) are not
 | ||||||
| @ -141,7 +145,7 @@ impl WalletExport { | |||||||
|             } |             } | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
|         let export = WalletExport { |         let export = FullyNodedExport { | ||||||
|             descriptor, |             descriptor, | ||||||
|             label: label.into(), |             label: label.into(), | ||||||
|             blockheight, |             blockheight, | ||||||
| @ -265,7 +269,7 @@ mod test { | |||||||
|             get_test_db(), |             get_test_db(), | ||||||
|         ) |         ) | ||||||
|         .unwrap(); |         .unwrap(); | ||||||
|         let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap(); |         let export = FullyNodedExport::export_wallet(&wallet, "Test Label", true).unwrap(); | ||||||
| 
 | 
 | ||||||
|         assert_eq!(export.descriptor(), descriptor); |         assert_eq!(export.descriptor(), descriptor); | ||||||
|         assert_eq!(export.change_descriptor(), Some(change_descriptor.into())); |         assert_eq!(export.change_descriptor(), Some(change_descriptor.into())); | ||||||
| @ -283,7 +287,7 @@ mod test { | |||||||
|         let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"; |         let descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/0/*)"; | ||||||
| 
 | 
 | ||||||
|         let wallet = Wallet::new(descriptor, None, Network::Bitcoin, get_test_db()).unwrap(); |         let wallet = Wallet::new(descriptor, None, Network::Bitcoin, get_test_db()).unwrap(); | ||||||
|         WalletExport::export_wallet(&wallet, "Test Label", true).unwrap(); |         FullyNodedExport::export_wallet(&wallet, "Test Label", true).unwrap(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     #[test] |     #[test] | ||||||
| @ -302,7 +306,7 @@ mod test { | |||||||
|             get_test_db(), |             get_test_db(), | ||||||
|         ) |         ) | ||||||
|         .unwrap(); |         .unwrap(); | ||||||
|         WalletExport::export_wallet(&wallet, "Test Label", true).unwrap(); |         FullyNodedExport::export_wallet(&wallet, "Test Label", true).unwrap(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     #[test] |     #[test] | ||||||
| @ -325,7 +329,7 @@ mod test { | |||||||
|             get_test_db(), |             get_test_db(), | ||||||
|         ) |         ) | ||||||
|         .unwrap(); |         .unwrap(); | ||||||
|         let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap(); |         let export = FullyNodedExport::export_wallet(&wallet, "Test Label", true).unwrap(); | ||||||
| 
 | 
 | ||||||
|         assert_eq!(export.descriptor(), descriptor); |         assert_eq!(export.descriptor(), descriptor); | ||||||
|         assert_eq!(export.change_descriptor(), Some(change_descriptor.into())); |         assert_eq!(export.change_descriptor(), Some(change_descriptor.into())); | ||||||
| @ -345,7 +349,7 @@ mod test { | |||||||
|             get_test_db(), |             get_test_db(), | ||||||
|         ) |         ) | ||||||
|         .unwrap(); |         .unwrap(); | ||||||
|         let export = WalletExport::export_wallet(&wallet, "Test Label", true).unwrap(); |         let export = FullyNodedExport::export_wallet(&wallet, "Test Label", true).unwrap(); | ||||||
| 
 | 
 | ||||||
|         assert_eq!(export.to_string(), "{\"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\"}"); | ||||||
|     } |     } | ||||||
| @ -356,7 +360,7 @@ mod test { | |||||||
|         let change_descriptor = "wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44'/0'/0'/1/*)"; |         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 import_str = "{\"descriptor\":\"wpkh(xprv9s21ZrQH143K4CTb63EaMxja1YiTnSEWKMbn23uoEnAzxjdUJRQkazCAtzxGm4LSoTSVTptoV9RbchnKPW9HxKtZumdyxyikZFDLhogJ5Uj/44\'/0\'/0\'/0/*)\",\"blockheight\":5000,\"label\":\"Test Label\"}"; | ||||||
|         let export = WalletExport::from_str(import_str).unwrap(); |         let export = FullyNodedExport::from_str(import_str).unwrap(); | ||||||
| 
 | 
 | ||||||
|         assert_eq!(export.descriptor(), descriptor); |         assert_eq!(export.descriptor(), descriptor); | ||||||
|         assert_eq!(export.change_descriptor(), Some(change_descriptor.into())); |         assert_eq!(export.change_descriptor(), Some(change_descriptor.into())); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user