aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2012-11-03 11:51:13 -0700
committerPieter Wuille <pieter.wuille@gmail.com>2012-11-03 11:51:13 -0700
commita56d3f8a10e3c9f844aee1f362635ae14b872023 (patch)
treeed49a51749249b172088c9b9937447cd79584f46
parent7fac57786b6391b8a83f24f1be64193a6a491dab (diff)
parent5eaf91a4286380e5db239b63477b627ab91a53e7 (diff)
downloadbitcoin-a56d3f8a10e3c9f844aee1f362635ae14b872023.tar.xz
Merge pull request #1971 from sipa/bugfix_norelayspent
Bugfix: do not keep relaying spent wallet transactions
-rw-r--r--src/wallet.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/wallet.cpp b/src/wallet.cpp
index dc6169c4b8..67b4e8f095 100644
--- a/src/wallet.cpp
+++ b/src/wallet.cpp
@@ -820,21 +820,17 @@ void CWallet::ReacceptWalletTransactions()
void CWalletTx::RelayWalletTransaction()
{
- CCoinsViewCache& coins = *pcoinsTip;
BOOST_FOREACH(const CMerkleTx& tx, vtxPrev)
{
- if (!tx.IsCoinBase())
- {
- uint256 hash = tx.GetHash();
- if (!coins.HaveCoins(hash))
- RelayMessage(CInv(MSG_TX, hash), (CTransaction)tx);
+ if (!tx.IsCoinBase()) {
+ if (tx.GetDepthInMainChain() == 0)
+ RelayMessage(CInv(MSG_TX, tx.GetHash()), (CTransaction)tx);
}
}
if (!IsCoinBase())
{
- uint256 hash = GetHash();
- if (!coins.HaveCoins(hash))
- {
+ if (GetDepthInMainChain() == 0) {
+ uint256 hash = GetHash();
printf("Relaying wtx %s\n", hash.ToString().substr(0,10).c_str());
RelayMessage(CInv(MSG_TX, hash), (CTransaction)*this);
}