}
}
}
fn get_change_address(client: &Client, chain: Chain) -> Result<Address> {
Ok(
client
.call::<Address<NetworkUnchecked>>("getrawchangeaddress", &["bech32m".into()])
.context("could not get change addresses from wallet")?
.require_network(chain.network())?,
)
}
pub(crate) fn initialize_wallet(options: &Options, seed: [u8; 64]) -> Result {
let client = options.bitcoin_rpc_client_for_wallet_command(true)?;
let network = options.chain().network();
client.create_wallet(&options.wallet, None, Some(true), None, None)?;
let secp = Secp256k1::new();
let master_private_key = ExtendedPrivKey::new_master(network, &seed)?;
let fingerprint = master_private_key.fingerprint(&secp);
let derivation_path = DerivationPath::master()
.child(ChildNumber::Hardened { index: 86 })
.child(ChildNumber::Hardened {
index: u32::from(network != Network::Bitcoin),
})
.child(ChildNumber::Hardened { index: 0 });
let derived_private_key = master_private_key.derive_priv(&secp, &derivation_path)?;