From c94f4477e8551314b386c36ab92bcbde8bbb5641 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 5 Oct 2018 10:48:03 -0700 Subject: [PATCH] For #3546. Shielded tx with missing inputs are not treated as orphans. --- src/main.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 2921f657d..40ab31cdd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5483,8 +5483,11 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, BOOST_FOREACH(uint256 hash, vEraseQueue) EraseOrphanTx(hash); } - // TODO: currently, prohibit joinsplits from entering mapOrphans - else if (fMissingInputs && tx.vjoinsplit.size() == 0) + // TODO: currently, prohibit joinsplits and shielded spends/outputs from entering mapOrphans + else if (fMissingInputs && + tx.vjoinsplit.empty() && + tx.vShieldedSpend.empty() && + tx.vShieldedOutput.empty()) { AddOrphanTx(tx, pfrom->GetId());