From 4030467621c192864fd3b3f519a2b97a5cc18a3f Mon Sep 17 00:00:00 2001 From: miketout Date: Tue, 13 Sep 2022 22:00:40 -0700 Subject: [PATCH] Notarization cleanup fix --- src/pbaas/notarization.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pbaas/notarization.cpp b/src/pbaas/notarization.cpp index ff6a0d05d..17bebaa52 100644 --- a/src/pbaas/notarization.cpp +++ b/src/pbaas/notarization.cpp @@ -4031,7 +4031,7 @@ bool CPBaaSNotarization::ConfirmOrRejectNotarizations(CWallet *pWallet, // then is spent into the main transaction std::vector evidenceInputs; auto newTxBuilder = TransactionBuilder(Params().GetConsensus(), nHeight, pWallet); - TransactionBuilder &oneConfirmedBuilder = makeInputTx ? newTxBuilder : txBuilder; + TransactionBuilder &oneConfirmedBuilder = (oneConfirmedIdx != cnd.lastConfirmed && makeInputTx) ? newTxBuilder : txBuilder; bool isConfirmed = false; for (auto &oneInput : spendsToClose[oneConfirmedIdx]) @@ -4047,13 +4047,14 @@ bool CPBaaSNotarization::ConfirmOrRejectNotarizations(CWallet *pWallet, if (tP.evalCode == EVAL_FINALIZE_NOTARIZATION && tP.vData.size() && (tPOF = CObjectFinalization(tP.vData[0])).IsValid() && + tPOF.IsConfirmed() && ((tPOF.output.hash.IsNull() && oneInput.txIn.prevout.hash == cnd.vtx[oneConfirmedIdx].first.hash && tPOF.output.n == cnd.vtx[oneConfirmedIdx].first.n) || - tPOF.output == cnd.vtx[oneConfirmedIdx].first) && - tPOF.IsConfirmed()) + tPOF.output == cnd.vtx[oneConfirmedIdx].first)) { isConfirmed = true; + makeInputTx = false; } } @@ -4080,7 +4081,6 @@ bool CPBaaSNotarization::ConfirmOrRejectNotarizations(CWallet *pWallet, cnd.vtx[oneConfirmedIdx].first.hash, cnd.vtx[oneConfirmedIdx].first.n, height); - //oneConfirmedFinalization.evidenceInputs = evidenceInputs; cp = CCinit(&CC, EVAL_FINALIZE_NOTARIZATION); dests = std::vector({CPubKey(ParseHex(CC.CChexstr))});