diff --git a/crates/wallet/README.md b/crates/wallet/README.md index 9dee46aaa0..8f8bb0338e 100644 --- a/crates/wallet/README.md +++ b/crates/wallet/README.md @@ -80,7 +80,7 @@ let descriptor = "wpkh(tprv8ZgxMBicQKsPdcAqYBpzAFwU5yxBUo88ggoBqu1qPcHUfSbKK1sKM let change_descriptor = "wpkh(tprv8ZgxMBicQKsPdcAqYBpzAFwU5yxBUo88ggoBqu1qPcHUfSbKK1sKMLmC7EAk438btHQrSdu3jGGQa6PA71nvH5nkDexhLteJqkM4dQmWF9g/84'/1'/0'/1/*)"; let wallet_opt = Wallet::load() .descriptors(descriptor, change_descriptor) - .network(network) + .check_network(network) .load_wallet(&mut db) .expect("wallet"); let mut wallet = match wallet_opt { diff --git a/crates/wallet/src/wallet/mod.rs b/crates/wallet/src/wallet/mod.rs index 7217d32fb4..d73e308189 100644 --- a/crates/wallet/src/wallet/mod.rs +++ b/crates/wallet/src/wallet/mod.rs @@ -423,7 +423,7 @@ impl Wallet { /// .keymap(KeychainKind::External, external_keymap) /// .keymap(KeychainKind::Internal, internal_keymap) /// // ensure loaded wallet's genesis hash matches this value - /// .genesis_hash(genesis_hash) + /// .check_genesis_hash(genesis_hash) /// // set a lookahead for our indexer /// .lookahead(101) /// .load_wallet(&mut conn)? diff --git a/crates/wallet/src/wallet/params.rs b/crates/wallet/src/wallet/params.rs index 44d0d1db13..8f43e19e0f 100644 --- a/crates/wallet/src/wallet/params.rs +++ b/crates/wallet/src/wallet/params.rs @@ -149,8 +149,8 @@ impl LoadParams { self } - /// Checks that `descriptor` of `keychain` matches this, and extracts private keys (if - /// available). + /// Checks that the given descriptors match those loaded from persistence and extracts private + /// keys if available. pub fn descriptors(mut self, descriptor: D, change_descriptor: D) -> Self where D: IntoWalletDescriptor + 'static, @@ -160,14 +160,14 @@ impl LoadParams { self } - /// Check for `network`. - pub fn network(mut self, network: Network) -> Self { + /// Checks that the given network matches the one loaded from persistence. + pub fn check_network(mut self, network: Network) -> Self { self.check_network = Some(network); self } - /// Check for a `genesis_hash`. - pub fn genesis_hash(mut self, genesis_hash: BlockHash) -> Self { + /// Checks that the given `genesis_hash` matches the one loaded from persistence. + pub fn check_genesis_hash(mut self, genesis_hash: BlockHash) -> Self { self.check_genesis_hash = Some(genesis_hash); self } diff --git a/crates/wallet/tests/wallet.rs b/crates/wallet/tests/wallet.rs index a4433bc19a..6207460e09 100644 --- a/crates/wallet/tests/wallet.rs +++ b/crates/wallet/tests/wallet.rs @@ -138,7 +138,7 @@ fn wallet_is_persisted() -> anyhow::Result<()> { let mut db = open_db(&file_path).context("failed to recover db")?; let wallet = Wallet::load() .descriptors(external_desc, internal_desc) - .network(Network::Testnet) + .check_network(Network::Testnet) .load_wallet(&mut db)? .expect("wallet must exist"); @@ -210,7 +210,7 @@ fn wallet_load_checks() -> anyhow::Result<()> { assert_matches!( Wallet::load() - .network(Network::Regtest) + .check_network(Network::Regtest) .load_wallet(&mut open_db(&file_path)?), Err(LoadWithPersistError::InvalidChangeSet(LoadError::Mismatch( LoadMismatch::Network { @@ -220,21 +220,9 @@ fn wallet_load_checks() -> anyhow::Result<()> { ))), "unexpected network check result: Regtest (check) is not Testnet (loaded)", ); - assert_matches!( - Wallet::load() - .network(Network::Bitcoin) - .load_wallet(&mut open_db(&file_path)?), - Err(LoadWithPersistError::InvalidChangeSet(LoadError::Mismatch( - LoadMismatch::Network { - loaded: Network::Testnet, - expected: Network::Bitcoin, - } - ))), - "unexpected network check result: Bitcoin (check) is not Testnet (loaded)", - ); let mainnet_hash = BlockHash::from_byte_array(ChainHash::BITCOIN.to_bytes()); assert_matches!( - Wallet::load().genesis_hash(mainnet_hash).load_wallet(&mut open_db(&file_path)?), + Wallet::load().check_genesis_hash(mainnet_hash).load_wallet(&mut open_db(&file_path)?), Err(LoadWithPersistError::InvalidChangeSet(LoadError::Mismatch(LoadMismatch::Genesis { .. }))), "unexpected genesis hash check result: mainnet hash (check) is not testnet hash (loaded)", ); diff --git a/example-crates/wallet_electrum/src/main.rs b/example-crates/wallet_electrum/src/main.rs index 35413a9624..3ca1a12961 100644 --- a/example-crates/wallet_electrum/src/main.rs +++ b/example-crates/wallet_electrum/src/main.rs @@ -27,7 +27,7 @@ fn main() -> Result<(), anyhow::Error> { let wallet_opt = Wallet::load() .descriptors(EXTERNAL_DESC, INTERNAL_DESC) - .network(NETWORK) + .check_network(NETWORK) .load_wallet(&mut db)?; let mut wallet = match wallet_opt { Some(wallet) => wallet, diff --git a/example-crates/wallet_esplora_async/src/main.rs b/example-crates/wallet_esplora_async/src/main.rs index cccd833952..8e25dec4ea 100644 --- a/example-crates/wallet_esplora_async/src/main.rs +++ b/example-crates/wallet_esplora_async/src/main.rs @@ -24,7 +24,7 @@ async fn main() -> Result<(), anyhow::Error> { let wallet_opt = Wallet::load() .descriptors(EXTERNAL_DESC, INTERNAL_DESC) - .network(NETWORK) + .check_network(NETWORK) .load_wallet(&mut conn)?; let mut wallet = match wallet_opt { Some(wallet) => wallet, diff --git a/example-crates/wallet_esplora_blocking/src/main.rs b/example-crates/wallet_esplora_blocking/src/main.rs index 4c4fe99ed0..cbdab20784 100644 --- a/example-crates/wallet_esplora_blocking/src/main.rs +++ b/example-crates/wallet_esplora_blocking/src/main.rs @@ -23,7 +23,7 @@ fn main() -> Result<(), anyhow::Error> { let wallet_opt = Wallet::load() .descriptors(EXTERNAL_DESC, INTERNAL_DESC) - .network(NETWORK) + .check_network(NETWORK) .load_wallet(&mut db)?; let mut wallet = match wallet_opt { Some(wallet) => wallet, diff --git a/example-crates/wallet_rpc/src/main.rs b/example-crates/wallet_rpc/src/main.rs index 2533de644c..75ab50bdd4 100644 --- a/example-crates/wallet_rpc/src/main.rs +++ b/example-crates/wallet_rpc/src/main.rs @@ -90,7 +90,7 @@ fn main() -> anyhow::Result<()> { Store::::open_or_create_new(DB_MAGIC.as_bytes(), args.db_path)?; let wallet_opt = Wallet::load() .descriptors(args.descriptor.clone(), args.change_descriptor.clone()) - .network(args.network) + .check_network(args.network) .load_wallet(&mut db)?; let mut wallet = match wallet_opt { Some(wallet) => wallet,