diff --git a/src/test/privatesend_tests.cpp b/src/test/privatesend_tests.cpp index 0275e0905357..3f2e235ebeb0 100644 --- a/src/test/privatesend_tests.cpp +++ b/src/test/privatesend_tests.cpp @@ -58,24 +58,22 @@ class CTransactionBuilderTestSetup : public TestChain100Setup CWalletTx& AddTxToChain(uint256 nTxHash) { - assert(wallet->mapWallet.find(nTxHash) != wallet->mapWallet.end()); + auto it = wallet->mapWallet.find(nTxHash); + assert(it != wallet->mapWallet.end()); CMutableTransaction blocktx; { LOCK(wallet->cs_wallet); - blocktx = CMutableTransaction(*wallet->mapWallet.at(nTxHash).tx); + blocktx = CMutableTransaction(*it->second.tx); } CreateAndProcessBlock({blocktx}, GetScriptForRawPubKey(coinbaseKey.GetPubKey())); - LOCK(cs_main); - LOCK(wallet->cs_wallet); - auto it = wallet->mapWallet.find(blocktx.GetHash()); - BOOST_CHECK(it != wallet->mapWallet.end()); + LOCK2(cs_main, wallet->cs_wallet); it->second.SetMerkleBranch(chainActive.Tip(), 1); return it->second; } CompactTallyItem GetTallyItem(const std::vector& vecAmounts) { CompactTallyItem tallyItem; - CWalletTx tx; + CTransactionRef tx; CReserveKey destKey(wallet.get()); CReserveKey reserveKey(wallet.get()); CAmount nFeeRet; @@ -89,15 +87,15 @@ class CTransactionBuilderTestSetup : public TestChain100Setup for (CAmount nAmount : vecAmounts) { BOOST_CHECK(wallet->CreateTransaction({{GetScriptForDestination(tallyItem.txdest), nAmount, false}}, tx, reserveKey, nFeeRet, nChangePosRet, strError, coinControl)); CValidationState state; - BOOST_CHECK(wallet->CommitTransaction(tx, reserveKey, nullptr, state)); - CWalletTx& wtx = AddTxToChain(tx.GetHash()); - for (size_t n = 0; n < wtx.tx->vout.size(); ++n) { + BOOST_CHECK(wallet->CommitTransaction(tx, {}, {}, {}, reserveKey, nullptr, state)); + AddTxToChain(tx->GetHash()); + for (size_t n = 0; n < tx->vout.size(); ++n) { if (nChangePosRet != -1 && n == nChangePosRet) { // Skip the change output to only return the requested coins continue; } - tallyItem.vecOutPoints.push_back(COutPoint(wtx.GetHash(), n)); - tallyItem.nAmount += wtx.tx->vout[n].nValue; + tallyItem.vecOutPoints.push_back(COutPoint(tx->GetHash(), n)); + tallyItem.nAmount += tx->vout[n].nValue; } } assert(tallyItem.vecOutPoints.size() == vecAmounts.size()); diff --git a/src/wallet/test/wallet_tests.cpp b/src/wallet/test/wallet_tests.cpp index 06f8236d325f..fc0cb926b493 100644 --- a/src/wallet/test/wallet_tests.cpp +++ b/src/wallet/test/wallet_tests.cpp @@ -762,13 +762,13 @@ class CreateTransactionTestSetup : public TestChain100Setup bool CreateTransaction(const std::vector>& vecEntries, std::string strErrorExpected, int nChangePosRequest = -1, bool fCreateShouldSucceed = true, ChangeTest changeTest = ChangeTest::Skip) { - CWalletTx wtx; + CTransactionRef tx; CReserveKey reservekey(wallet.get()); CAmount nFeeRet; int nChangePos = nChangePosRequest; std::string strError; - bool fCreationSucceeded = wallet->CreateTransaction(GetRecipients(vecEntries), wtx, reservekey, nFeeRet, nChangePos, strError, coinControl); + bool fCreationSucceeded = wallet->CreateTransaction(GetRecipients(vecEntries), tx, reservekey, nFeeRet, nChangePos, strError, coinControl); bool fHitMaxTries = strError == strExceededMaxTries; // This should never happen. if (fHitMaxTries) { @@ -800,7 +800,7 @@ class CreateTransactionTestSetup : public TestChain100Setup return false; } // Verify the number of requested outputs does match the resulting outputs - return CheckEqual(vecEntries.size(), wtx.tx->vout.size() - (nChangePos != -1 ? 1 : 0)); + return CheckEqual(vecEntries.size(), tx->vout.size() - (nChangePos != -1 ? 1 : 0)); } std::vector GetRecipients(const std::vector>& vecEntries) @@ -814,36 +814,34 @@ class CreateTransactionTestSetup : public TestChain100Setup std::vector GetCoins(const std::vector>& vecEntries) { - CWalletTx wtx; + CTransactionRef tx; CReserveKey reserveKey(wallet.get()); CAmount nFeeRet; int nChangePosRet = -1; std::string strError; CCoinControl coinControl; - BOOST_CHECK(wallet->CreateTransaction(GetRecipients(vecEntries), wtx, reserveKey, nFeeRet, nChangePosRet, strError, coinControl)); + BOOST_CHECK(wallet->CreateTransaction(GetRecipients(vecEntries), tx, reserveKey, nFeeRet, nChangePosRet, strError, coinControl)); CValidationState state; - BOOST_CHECK(wallet->CommitTransaction(wtx, reserveKey, nullptr, state)); + BOOST_CHECK(wallet->CommitTransaction(tx, {}, {}, {}, reserveKey, nullptr, state)); CMutableTransaction blocktx; { LOCK(wallet->cs_wallet); - blocktx = CMutableTransaction(*wallet->mapWallet.at(wtx.tx->GetHash()).tx); + blocktx = CMutableTransaction(*tx); } CreateAndProcessBlock({CMutableTransaction(blocktx)}, GetScriptForRawPubKey(coinbaseKey.GetPubKey())); - LOCK(cs_main); - LOCK(wallet->cs_wallet); - auto it = wallet->mapWallet.find(wtx.GetHash()); + LOCK2(cs_main, wallet->cs_wallet); + auto it = wallet->mapWallet.find(tx->GetHash()); BOOST_CHECK(it != wallet->mapWallet.end()); it->second.SetMerkleBranch(chainActive.Tip(), 1); - wtx = it->second; std::vector vecOutpoints; size_t n; - for (n = 0; n < wtx.tx->vout.size(); ++n) { + for (n = 0; n < tx->vout.size(); ++n) { if (nChangePosRet != -1 && n == nChangePosRet) { // Skip the change output to only return the requested coins continue; } - vecOutpoints.push_back(COutPoint(wtx.GetHash(), n)); + vecOutpoints.push_back(COutPoint(tx->GetHash(), n)); } assert(vecOutpoints.size() == vecEntries.size()); return vecOutpoints;