#include "coincontrol.h"
#include <boost/algorithm/string/replace.hpp>
+#include "main.h"
+
using namespace std;
-extern int nStakeMaxAge;
+
bool fCoinsDataActual;
wtx.MarkSpent(txin.prevout.n);
wtx.WriteToDisk();
NotifyTransactionChanged(this, txin.prevout.hash, CT_UPDATED);
+ vMintingWalletUpdated.push_back(txin.prevout.hash);
}
}
}
wtx.MarkUnspent(&txout - &tx.vout[0]);
wtx.WriteToDisk();
NotifyTransactionChanged(this, hash, CT_UPDATED);
+ vMintingWalletUpdated.push_back(hash);
}
}
}
// Notify UI of new or updated transaction
NotifyTransactionChanged(this, hash, fInsertedNew ? CT_NEW : CT_UPDATED);
-
+ vMintingWalletUpdated.push_back(hash);
// notify an external script when a wallet transaction comes in or is updated
std::string strCmd = GetArg("-walletnotify", "");
continue;
// Add meta record
- // txid => ((txindex, (tx, vout.n)), (block, modifier))
- mapMeta[pcoin->first->GetHash()] = make_pair(make_pair(txindex, *pcoin), make_pair(block, nStakeModifier));
+ // (txid, vout.n) => ((txindex, (tx, vout.n)), (block, modifier))
+ mapMeta[make_pair(pcoin->first->GetHash(), pcoin->second)] = make_pair(make_pair(txindex, *pcoin), make_pair(block, nStakeModifier));
if (fDebug)
printf("Load coin: %s\n", pcoin->first->GetHash().GetHex().c_str());
}
if (fDebug)
- printf("Get stake weight: %zu meta items loaded for %zu coins\n", mapMeta.size(), setCoins.size());
+ printf("Get stake weight: %d meta items loaded for %d coins\n", mapMeta.size(), setCoins.size());
fCoinsDataActual = true;
}
}
- // txid => ((txindex, (tx, vout.n)), (block, modifier))
+ // (txid, vout.n) => ((txindex, (tx, vout.n)), (block, modifier))
for(MetaMap::const_iterator meta_item = mapMeta.begin(); meta_item != mapMeta.end(); meta_item++)
{
// Get coin
// Add meta record
// txid => ((txindex, (tx, vout.n)), (block, modifier))
- mapMeta[pcoin->first->GetHash()] = make_pair(make_pair(txindex, *pcoin), make_pair(block, nStakeModifier));
+ mapMeta[make_pair(pcoin->first->GetHash(), pcoin->second)] = make_pair(make_pair(txindex, *pcoin), make_pair(block, nStakeModifier));
if (fDebug)
printf("Load coin: %s\n", pcoin->first->GetHash().GetHex().c_str());
}
if (fDebug)
- printf("Stake miner: %zu meta items loaded for %zu coins\n", mapMeta.size(), setCoins.size());
+ printf("Stake miner: %d meta items loaded for %d coins\n", mapMeta.size(), setCoins.size());
fCoinsDataActual = true;
}
if (nCredit == 0 || nCredit > nBalance - nReserveBalance)
return false;
- // txid => ((txindex, (tx, vout.n)), (block, modifier))
+ // (txid, vout.n) => ((txindex, (tx, vout.n)), (block, modifier))
for(MetaMap::const_iterator meta_item = mapMeta.begin(); meta_item != mapMeta.end(); meta_item++)
{
// Get coin
coin.MarkSpent(txin.prevout.n);
coin.WriteToDisk();
NotifyTransactionChanged(this, coin.GetHash(), CT_UPDATED);
+ vMintingWalletUpdated.push_back(coin.GetHash());
}
if (fFileBacked)
// Only notify UI if this transaction is in this wallet
map<uint256, CWalletTx>::const_iterator mi = mapWallet.find(hashTx);
if (mi != mapWallet.end())
+ {
NotifyTransactionChanged(this, hashTx, CT_UPDATED);
+ vMintingWalletUpdated.push_back(hashTx);
+ }
}
}