cloudhead/nakamoto

nakamoto-wallet: `--addresses` parameter is currently ignored

theStack opened this issue · 1 comments

nakamoto-wallet specifies a parameter --addresses:

/// watch the following addresses
#[argh(option)]
pub addresses: Vec<Address>,

But the value of that parameter is never read anywhere. In the start of wallet loop, the addresses are either fetched from the database, or if that is empty, from the hardware device:

let addresses = self.db.addresses()?;
if addresses.is_empty() {
log::info!("No addresses found, requesting from hardware device..");
match self.hw.request_addresses(0..16, hw::AddressFormat::P2WPKH) {
Ok(addrs) => {
for (ix, addr) in addrs {
self.db.add_address(&addr, ix, None)?;
self.watch.insert(addr);
}
}
Err(err) => {
log::warn!("Failed to request addresses from hardware device: {err}");
}
}
} else {
for addr in addresses {
self.watch.insert(addr.address);
}
}

Happy to open a PR if someone can point me into the right direction how that parameter was intended. If it's specified, should only those addresses be watched or do we still want to load the ones from the database?

Happy to open a PR if someone can point me into the right direction how that parameter was intended. If it's specified, should only those addresses be watched or do we still want to load the ones from the database?

Right, so we had to put the address inside the db and then nakamoto will be able to load them. So I think we should insert the address passed by --addresses inside the db and then leave the code query the databases?