diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qt/transactionview.cpp | 3 | ||||
-rw-r--r-- | src/rpc/rawtransaction.cpp | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp index 351305f3fa..0641661fcb 100644 --- a/src/qt/transactionview.cpp +++ b/src/qt/transactionview.cpp @@ -532,6 +532,9 @@ void TransactionView::showDetails() TransactionDescDialog *dlg = new TransactionDescDialog(selection.at(0)); dlg->setAttribute(Qt::WA_DeleteOnClose); m_opened_dialogs.append(dlg); + connect(dlg, &QObject::destroyed, [this, dlg] { + m_opened_dialogs.removeOne(dlg); + }); dlg->show(); } } diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp index 21d49fda9d..4ab8a8661b 100644 --- a/src/rpc/rawtransaction.cpp +++ b/src/rpc/rawtransaction.cpp @@ -310,7 +310,7 @@ static RPCHelpMan getrawtransaction() LOCK(cs_main); blockindex = chainman.m_blockman.LookupBlockIndex(hash_block); } - if (verbosity == 1) { + if (verbosity == 1 || !blockindex) { TxToJSON(*tx, hash_block, result, chainman.ActiveChainstate()); return result; } @@ -319,8 +319,7 @@ static RPCHelpMan getrawtransaction() CBlock block; const bool is_block_pruned{WITH_LOCK(cs_main, return chainman.m_blockman.IsBlockPruned(blockindex))}; - if (tx->IsCoinBase() || - !blockindex || is_block_pruned || + if (tx->IsCoinBase() || is_block_pruned || !(UndoReadFromDisk(blockUndo, blockindex) && ReadBlockFromDisk(block, blockindex, Params().GetConsensus()))) { TxToJSON(*tx, hash_block, result, chainman.ActiveChainstate()); return result; |