Replace electrum with blindbit
This commit is contained in:
parent
08bfffbdb1
commit
294734e089
10
src/main.rs
10
src/main.rs
@ -267,7 +267,7 @@ fn create_new_tx_message(transaction: Vec<u8>) -> Result<NewTxMessage> {
|
||||
))
|
||||
}
|
||||
|
||||
async fn handle_zmq(zmq_url: String, electrum_url: String) {
|
||||
async fn handle_zmq(zmq_url: String, blindbit_url: String) {
|
||||
debug!("Starting listening on Core");
|
||||
let mut socket = zeromq::SubSocket::new();
|
||||
socket.connect(&zmq_url).await.unwrap();
|
||||
@ -297,7 +297,7 @@ async fn handle_zmq(zmq_url: String, electrum_url: String) {
|
||||
continue;
|
||||
}
|
||||
},
|
||||
Ok("hashblock") => match scan_blocks(0, &electrum_url) {
|
||||
Ok("hashblock") => match scan_blocks(0, &blindbit_url).await {
|
||||
Ok(_) => continue,
|
||||
Err(e) => {
|
||||
error!("{}", e);
|
||||
@ -472,14 +472,14 @@ async fn main() -> Result<()> {
|
||||
|
||||
if last_scan < current_tip {
|
||||
log::info!("Scanning for our outputs");
|
||||
scan_blocks(current_tip - last_scan, &config.electrum_url)?;
|
||||
scan_blocks(current_tip - last_scan, &config.blindbit_url)?;
|
||||
}
|
||||
|
||||
Set CHAIN_TIP
|
||||
// Set CHAIN_TIP
|
||||
CHAIN_TIP.store(current_tip as u64, std::sync::atomic::Ordering::SeqCst);
|
||||
|
||||
// Subscribe to Bitcoin Core
|
||||
tokio::spawn(handle_zmq(config.zmq_url, config.electrum_url));
|
||||
tokio::spawn(handle_zmq(config.zmq_url, config.blindbit_url));
|
||||
|
||||
// Create the event loop and TCP listener we'll accept connections on.
|
||||
let try_socket = TcpListener::bind(config.ws_url).await;
|
||||
|
25
src/scan.rs
25
src/scan.rs
@ -3,10 +3,8 @@ use std::str::FromStr;
|
||||
use std::sync::MutexGuard;
|
||||
|
||||
use anyhow::{Error, Result};
|
||||
use bitcoincore_rpc::bitcoin::absolute::Height;
|
||||
use bitcoincore_rpc::bitcoin::hashes::Hash;
|
||||
use electrum_client::ElectrumApi;
|
||||
use sdk_common::silentpayments::SpWallet;
|
||||
use bitcoincore_rpc::bitcoin::absolute::{Amount, Height};
|
||||
use sdk_common::silentpayments::{SpWallet, StateUpdater};
|
||||
use sdk_common::sp_client::bitcoin::bip158::BlockFilter;
|
||||
use sdk_common::sp_client::bitcoin::hex::DisplayHex;
|
||||
use sdk_common::sp_client::bitcoin::secp256k1::{All, PublicKey, Scalar, Secp256k1, SecretKey};
|
||||
@ -15,10 +13,10 @@ use sdk_common::sp_client::silentpayments::receiving::Receiver;
|
||||
use sdk_common::sp_client::silentpayments::utils::receiving::{
|
||||
calculate_tweak_data, get_pubkey_from_input,
|
||||
};
|
||||
use sdk_common::sp_client::{OutputSpendStatus, OwnedOutput};
|
||||
use sdk_common::sp_client::{OutputSpendStatus, OwnedOutput, SpScanner};
|
||||
use tokio::time::Instant;
|
||||
|
||||
use crate::{electrumclient, MutexExt, DAEMON, STORAGE, WALLET};
|
||||
use crate::{MutexExt, DAEMON, STORAGE, WALLET};
|
||||
|
||||
pub fn compute_partial_tweak_to_transaction(tx: &Transaction) -> Result<PublicKey> {
|
||||
let daemon = DAEMON.get().ok_or(Error::msg("DAEMON not initialized"))?;
|
||||
@ -236,9 +234,9 @@ fn scan_block_inputs(
|
||||
Ok(found)
|
||||
}
|
||||
|
||||
pub fn scan_blocks(mut n_blocks_to_scan: u32, electrum_url: &str) -> anyhow::Result<()> {
|
||||
pub async fn scan_blocks(mut n_blocks_to_scan: u32, blindbit_url: &str) -> anyhow::Result<()> {
|
||||
log::info!("Starting a rescan");
|
||||
let electrum_client = electrumclient::create_electrum_client(electrum_url)?;
|
||||
let blindbit_client = sdk_common::sp_client::BlindbitClient::new(blindbit_url.to_owned())?;
|
||||
|
||||
let mut sp_wallet = WALLET
|
||||
.get()
|
||||
@ -269,14 +267,23 @@ pub fn scan_blocks(mut n_blocks_to_scan: u32, electrum_url: &str) -> anyhow::Res
|
||||
if start > end {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
let updater = StateUpdater::new();
|
||||
|
||||
log::info!("start: {} end: {}", start, end);
|
||||
SpScanner::new(
|
||||
sp_wallet.get_sp_client().clone(),
|
||||
Box::new(updater),
|
||||
backend,
|
||||
owned_outpoints,
|
||||
keep_scanning
|
||||
);
|
||||
let mut filters: Vec<(u32, BlockHash, BlockFilter)> = vec![];
|
||||
for blkheight in start..=end {
|
||||
filters.push(core.get_filters(blkheight)?);
|
||||
}
|
||||
|
||||
let mut tweak_data_map = electrum_client.sp_tweaks(start as usize)?;
|
||||
let mut tweak_data_map = blindbit_client.tweaks(Height::from_consensus(start)?, Amount::from_sat(550)).await?;
|
||||
|
||||
let scan_sk = sp_wallet.get_sp_client().get_scan_key();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user