|
|
@ -957,9 +957,9 @@ bool CWallet::LoadToWallet(const CWalletTx& wtxIn) |
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Add a transaction to the wallet, or update it. pIndex and posInBlock should |
|
|
|
* Add a transaction to the wallet, or update it. pIndex and posInBlock should |
|
|
|
* be set when the transaction was known to be included in a block. When |
|
|
|
* be set when the transaction was known to be included in a block. When |
|
|
|
* posInBlock = SYNC_TRANSACTION_NOT_IN_BLOCK (-1) , then wallet state is not |
|
|
|
* pIndex == NULL, then wallet state is not updated in AddToWallet, but |
|
|
|
* updated in AddToWallet, but notifications happen and cached balances are |
|
|
|
* notifications happen and cached balances are marked dirty. |
|
|
|
* marked dirty. |
|
|
|
* |
|
|
|
* If fUpdate is true, existing transactions will be updated. |
|
|
|
* If fUpdate is true, existing transactions will be updated. |
|
|
|
* TODO: One exception to this is that the abandoned state is cleared under the |
|
|
|
* TODO: One exception to this is that the abandoned state is cleared under the |
|
|
|
* assumption that any further notification of a transaction that was considered |
|
|
|
* assumption that any further notification of a transaction that was considered |
|
|
@ -973,7 +973,7 @@ bool CWallet::AddToWalletIfInvolvingMe(const CTransactionRef& ptx, const CBlockI |
|
|
|
{ |
|
|
|
{ |
|
|
|
AssertLockHeld(cs_wallet); |
|
|
|
AssertLockHeld(cs_wallet); |
|
|
|
|
|
|
|
|
|
|
|
if (posInBlock != -1) { |
|
|
|
if (pIndex != NULL) { |
|
|
|
BOOST_FOREACH(const CTxIn& txin, tx.vin) { |
|
|
|
BOOST_FOREACH(const CTxIn& txin, tx.vin) { |
|
|
|
std::pair<TxSpends::const_iterator, TxSpends::const_iterator> range = mapTxSpends.equal_range(txin.prevout); |
|
|
|
std::pair<TxSpends::const_iterator, TxSpends::const_iterator> range = mapTxSpends.equal_range(txin.prevout); |
|
|
|
while (range.first != range.second) { |
|
|
|
while (range.first != range.second) { |
|
|
@ -993,7 +993,7 @@ bool CWallet::AddToWalletIfInvolvingMe(const CTransactionRef& ptx, const CBlockI |
|
|
|
CWalletTx wtx(this, ptx); |
|
|
|
CWalletTx wtx(this, ptx); |
|
|
|
|
|
|
|
|
|
|
|
// Get merkle branch if transaction was found in a block
|
|
|
|
// Get merkle branch if transaction was found in a block
|
|
|
|
if (posInBlock != -1) |
|
|
|
if (pIndex != NULL) |
|
|
|
wtx.SetMerkleBranch(pIndex, posInBlock); |
|
|
|
wtx.SetMerkleBranch(pIndex, posInBlock); |
|
|
|
|
|
|
|
|
|
|
|
return AddToWallet(wtx, false); |
|
|
|
return AddToWallet(wtx, false); |
|
|
|