(Some(_rpc_user), None) => Err(anyhow!("no bitcoind rpc password specified")), _ => Ok(Auth::CookieFile(self.cookie_file()?)), } } pub(crate) fn bitcoin_rpc_client(&self) -> Result { let rpc_url = self.rpc_url(); let auth = self.auth()?; log::info!("Connecting to Bitcoin Core at {}", self.rpc_url()); if let Auth::CookieFile(cookie_file) = &auth { log::info!( "Using credentials from cookie file at `{}`", cookie_file.display() ); } let client = Client::new(&rpc_url, auth) .with_context(|| format!("failed to connect to Bitcoin Core RPC at {rpc_url}"))?; let rpc_chain = match client.get_blockchain_info()?.chain.as_str() { "main" => Chain::Mainnet, "test" => Chain::Testnet, "regtest" => Chain::Regtest, "signet" => Chain::Signet, other => bail!("Bitcoin RPC server on unknown chain: {other}"), }; let ord_chain = self.chain(); if rpc_chain != ord_chain { bail!("Bitcoin RPC server is on {rpc_chain} but ord is on {ord_chain}");