zcash_client_sqlite: Ensure we will query for status of unmined transactions in `store_decrypted_tx`
This commit is contained in:
parent
3089e3b29d
commit
4059bfeca2
|
@ -1202,14 +1202,6 @@ impl<P: consensus::Parameters> WalletWrite for WalletDb<rusqlite::Connection, P>
|
||||||
#[cfg(feature = "transparent-inputs")]
|
#[cfg(feature = "transparent-inputs")]
|
||||||
let mut tx_has_wallet_outputs = false;
|
let mut tx_has_wallet_outputs = false;
|
||||||
|
|
||||||
#[cfg(feature = "transparent-inputs")]
|
|
||||||
let detectable_via_scanning = d_tx.tx().sapling_bundle().is_some();
|
|
||||||
#[cfg(all(feature = "transparent-inputs", feature = "orchard"))]
|
|
||||||
let detectable_via_scanning = detectable_via_scanning | d_tx.tx().orchard_bundle().is_some();
|
|
||||||
|
|
||||||
#[cfg(feature = "transparent-inputs")]
|
|
||||||
let mut queue_status_retrieval = false;
|
|
||||||
|
|
||||||
for output in d_tx.sapling_outputs() {
|
for output in d_tx.sapling_outputs() {
|
||||||
#[cfg(feature = "transparent-inputs")]
|
#[cfg(feature = "transparent-inputs")]
|
||||||
{
|
{
|
||||||
|
@ -1507,13 +1499,6 @@ impl<P: consensus::Parameters> WalletWrite for WalletDb<rusqlite::Connection, P>
|
||||||
{
|
{
|
||||||
tx_has_wallet_outputs = true;
|
tx_has_wallet_outputs = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the decrypted transaction is unmined and has no shielded
|
|
||||||
// components, add it to the queue for status retrieval.
|
|
||||||
#[cfg(feature = "transparent-inputs")]
|
|
||||||
if d_tx.mined_height().is_none() && !detectable_via_scanning {
|
|
||||||
queue_status_retrieval = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
warn!(
|
warn!(
|
||||||
|
@ -1543,13 +1528,21 @@ impl<P: consensus::Parameters> WalletWrite for WalletDb<rusqlite::Connection, P>
|
||||||
|
|
||||||
notify_tx_retrieved(wdb.conn.0, d_tx.tx().txid())?;
|
notify_tx_retrieved(wdb.conn.0, d_tx.tx().txid())?;
|
||||||
|
|
||||||
|
// If the decrypted transaction is unmined and has no shielded components, add it to
|
||||||
|
// the queue for status retrieval.
|
||||||
#[cfg(feature = "transparent-inputs")]
|
#[cfg(feature = "transparent-inputs")]
|
||||||
if queue_status_retrieval {
|
{
|
||||||
wallet::queue_tx_retrieval(
|
let detectable_via_scanning = d_tx.tx().sapling_bundle().is_some();
|
||||||
wdb.conn.0,
|
#[cfg(feature = "orchard")]
|
||||||
std::iter::once(d_tx.tx().txid()),
|
let detectable_via_scanning = detectable_via_scanning | d_tx.tx().orchard_bundle().is_some();
|
||||||
None
|
|
||||||
)?;
|
if d_tx.mined_height().is_none() && !detectable_via_scanning {
|
||||||
|
wallet::queue_tx_retrieval(
|
||||||
|
wdb.conn.0,
|
||||||
|
std::iter::once(d_tx.tx().txid()),
|
||||||
|
None
|
||||||
|
)?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Reference in New Issue