use silent_tweak_sdk::{ScanKeys, SilentTweakClient, SilentTweakClientConfig};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt()
.with_env_filter("silent_tweak_sdk=debug,info")
.init();
let b_scan_bytes =
hex::decode("0000000000000000000000000000000000000000000000000000000000000001")?;
let b_spend_bytes =
hex::decode("0000000000000000000000000000000000000000000000000000000000000002")?;
let keys = ScanKeys::from_secret_bytes(&b_scan_bytes, &b_spend_bytes)?;
let cfg = SilentTweakClientConfig {
server_url: "http://localhost:8080".into(),
verify_commitments: true,
use_filters: true,
..SilentTweakClientConfig::new("http://localhost:8080")
};
let client = SilentTweakClient::new(keys, cfg)?;
let info = client.server_info().await?;
println!(
"Server: {} ({}) — blocks {}-{}",
info.version, info.network, info.first_indexed_height, info.last_indexed_height,
);
let from = info.first_indexed_height;
let to = from + 99;
println!("Scanning blocks {from}..{to}...");
let payments = client.scan_range(from, to).await?;
if payments.is_empty() {
println!("No Silent Payment outputs found in this range.");
} else {
println!("Found {} payment(s):", payments.len());
for p in &payments {
println!(
" block={} txid={} pubkey={}",
p.block_height,
p.txid,
p.output.pubkey_hex()
);
}
}
Ok(())
}