-BEGIN VERIFY SCRIPT- sed -i 's/BOOST_FOREACH *(\(.*\),/for (\1 :/' ./src/*.h ./src/*.cpp ./src/*/*.h ./src/*/*.cpp ./src/*/*/*.h ./src/*/*/*.cpp ; -END VERIFY SCRIPT-tags/v0.15.1
@@ -39,7 +39,7 @@ static void CoinSelection(benchmark::State& state) | |||
while (state.KeepRunning()) { | |||
// Empty wallet. | |||
BOOST_FOREACH (COutput output, vCoins) | |||
for (COutput output : vCoins) | |||
delete output.tx; | |||
vCoins.clear(); | |||
@@ -611,7 +611,7 @@ static void MutateTxSign(CMutableTransaction& tx, const std::string& flagStr) | |||
ProduceSignature(MutableTransactionSignatureCreator(&keystore, &mergedTx, i, amount, nHashType), prevPubKey, sigdata); | |||
// ... and merge in other signatures: | |||
BOOST_FOREACH(const CTransaction& txv, txVariants) | |||
for (const CTransaction& txv : txVariants) | |||
sigdata = CombineSignatures(prevPubKey, MutableTransactionSignatureChecker(&mergedTx, i, amount), sigdata, DataFromTransaction(txv, i)); | |||
UpdateTransaction(mergedTx, i, sigdata); | |||
@@ -179,7 +179,7 @@ bool CBloomFilter::IsRelevantAndUpdate(const CTransaction& tx) | |||
if (fFound) | |||
return true; | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) | |||
for (const CTxIn& txin : tx.vin) | |||
{ | |||
// Match if the filter contains an outpoint tx spends | |||
if (contains(txin.prevout)) |
@@ -121,7 +121,7 @@ private: | |||
fOk = fAllOk; | |||
} | |||
// execute work | |||
BOOST_FOREACH (T& check, vChecks) | |||
for (T& check : vChecks) | |||
if (fOk) | |||
fOk = check(); | |||
vChecks.clear(); | |||
@@ -151,7 +151,7 @@ public: | |||
void Add(std::vector<T>& vChecks) | |||
{ | |||
boost::unique_lock<boost::mutex> lock(mutex); | |||
BOOST_FOREACH (T& check, vChecks) { | |||
for (T& check : vChecks) { | |||
queue.push_back(T()); | |||
check.swap(queue.back()); | |||
} |
@@ -141,7 +141,7 @@ void ScriptPubKeyToUniv(const CScript& scriptPubKey, | |||
out.pushKV("type", GetTxnOutputType(type)); | |||
UniValue a(UniValue::VARR); | |||
BOOST_FOREACH(const CTxDestination& addr, addresses) | |||
for (const CTxDestination& addr : addresses) | |||
a.push_back(CBitcoinAddress(addr).ToString()); | |||
out.pushKV("addresses", a); | |||
} |
@@ -95,7 +95,7 @@ static bool multiUserAuthorized(std::string strUserPass) | |||
if (gArgs.IsArgSet("-rpcauth")) { | |||
//Search for multi-user login/pass "rpcauth" from config | |||
BOOST_FOREACH(std::string strRPCAuth, gArgs.GetArgs("-rpcauth")) | |||
for (std::string strRPCAuth : gArgs.GetArgs("-rpcauth")) | |||
{ | |||
std::vector<std::string> vFields; | |||
boost::split(vFields, strRPCAuth, boost::is_any_of(":$")); |
@@ -611,7 +611,7 @@ void CleanupBlockRevFiles() | |||
// keeping a separate counter. Once we hit a gap (or if 0 doesn't exist) | |||
// start removing block files. | |||
int nContigCounter = 0; | |||
BOOST_FOREACH(const PAIRTYPE(std::string, fs::path)& item, mapBlockFiles) { | |||
for (const PAIRTYPE(std::string, fs::path)& item : mapBlockFiles) { | |||
if (atoi(item.first) == nContigCounter) { | |||
nContigCounter++; | |||
continue; | |||
@@ -664,7 +664,7 @@ void ThreadImport(std::vector<fs::path> vImportFiles) | |||
} | |||
// -loadblock= | |||
BOOST_FOREACH(const fs::path& path, vImportFiles) { | |||
for (const fs::path& path : vImportFiles) { | |||
FILE *file = fsbridge::fopen(path, "rb"); | |||
if (file) { | |||
LogPrintf("Importing blocks file %s...\n", path.string()); | |||
@@ -1258,7 +1258,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
// sanitize comments per BIP-0014, format user agent and check total size | |||
std::vector<std::string> uacomments; | |||
if (gArgs.IsArgSet("-uacomment")) { | |||
BOOST_FOREACH(std::string cmt, gArgs.GetArgs("-uacomment")) | |||
for (std::string cmt : gArgs.GetArgs("-uacomment")) | |||
{ | |||
if (cmt != SanitizeString(cmt, SAFE_CHARS_UA_COMMENT)) | |||
return InitError(strprintf(_("User Agent comment (%s) contains unsafe characters."), cmt)); | |||
@@ -1273,7 +1273,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
if (gArgs.IsArgSet("-onlynet")) { | |||
std::set<enum Network> nets; | |||
BOOST_FOREACH(const std::string& snet, gArgs.GetArgs("-onlynet")) { | |||
for (const std::string& snet : gArgs.GetArgs("-onlynet")) { | |||
enum Network net = ParseNetwork(snet); | |||
if (net == NET_UNROUTABLE) | |||
return InitError(strprintf(_("Unknown network specified in -onlynet: '%s'"), snet)); | |||
@@ -1287,7 +1287,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
} | |||
if (gArgs.IsArgSet("-whitelist")) { | |||
BOOST_FOREACH(const std::string& net, gArgs.GetArgs("-whitelist")) { | |||
for (const std::string& net : gArgs.GetArgs("-whitelist")) { | |||
CSubNet subnet; | |||
LookupSubNet(net.c_str(), subnet); | |||
if (!subnet.IsValid()) | |||
@@ -1349,7 +1349,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
if (fListen) { | |||
bool fBound = false; | |||
if (gArgs.IsArgSet("-bind")) { | |||
BOOST_FOREACH(const std::string& strBind, gArgs.GetArgs("-bind")) { | |||
for (const std::string& strBind : gArgs.GetArgs("-bind")) { | |||
CService addrBind; | |||
if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) | |||
return InitError(ResolveErrMsg("bind", strBind)); | |||
@@ -1357,7 +1357,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
} | |||
} | |||
if (gArgs.IsArgSet("-whitebind")) { | |||
BOOST_FOREACH(const std::string& strBind, gArgs.GetArgs("-whitebind")) { | |||
for (const std::string& strBind : gArgs.GetArgs("-whitebind")) { | |||
CService addrBind; | |||
if (!Lookup(strBind.c_str(), addrBind, 0, false)) | |||
return InitError(ResolveErrMsg("whitebind", strBind)); | |||
@@ -1377,7 +1377,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
} | |||
if (gArgs.IsArgSet("-externalip")) { | |||
BOOST_FOREACH(const std::string& strAddr, gArgs.GetArgs("-externalip")) { | |||
for (const std::string& strAddr : gArgs.GetArgs("-externalip")) { | |||
CService addrLocal; | |||
if (Lookup(strAddr.c_str(), addrLocal, GetListenPort(), fNameLookup) && addrLocal.IsValid()) | |||
AddLocal(addrLocal, LOCAL_MANUAL); | |||
@@ -1616,7 +1616,7 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler) | |||
std::vector<fs::path> vImportFiles; | |||
if (gArgs.IsArgSet("-loadblock")) | |||
{ | |||
BOOST_FOREACH(const std::string& strFile, gArgs.GetArgs("-loadblock")) | |||
for (const std::string& strFile : gArgs.GetArgs("-loadblock")) | |||
vImportFiles.push_back(strFile); | |||
} | |||
@@ -242,7 +242,7 @@ bool BlockAssembler::TestPackage(uint64_t packageSize, int64_t packageSigOpsCost | |||
bool BlockAssembler::TestPackageTransactions(const CTxMemPool::setEntries& package) | |||
{ | |||
uint64_t nPotentialBlockSize = nBlockSize; // only used with fNeedSizeAccounting | |||
BOOST_FOREACH (const CTxMemPool::txiter it, package) { | |||
for (const CTxMemPool::txiter it : package) { | |||
if (!IsFinalTx(it->GetTx(), nHeight, nLockTimeCutoff)) | |||
return false; | |||
if (!fIncludeWitness && it->GetTx().HasWitness()) | |||
@@ -284,11 +284,11 @@ int BlockAssembler::UpdatePackagesForAdded(const CTxMemPool::setEntries& already | |||
indexed_modified_transaction_set &mapModifiedTx) | |||
{ | |||
int nDescendantsUpdated = 0; | |||
BOOST_FOREACH(const CTxMemPool::txiter it, alreadyAdded) { | |||
for (const CTxMemPool::txiter it : alreadyAdded) { | |||
CTxMemPool::setEntries descendants; | |||
mempool.CalculateDescendants(it, descendants); | |||
// Insert all descendants (not yet in block) into the modified set | |||
BOOST_FOREACH(CTxMemPool::txiter desc, descendants) { | |||
for (CTxMemPool::txiter desc : descendants) { | |||
if (alreadyAdded.count(desc)) | |||
continue; | |||
++nDescendantsUpdated; |
@@ -295,7 +295,7 @@ bool IsReachable(const CNetAddr& addr) | |||
CNode* CConnman::FindNode(const CNetAddr& ip) | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) | |||
for (CNode* pnode : vNodes) | |||
if ((CNetAddr)pnode->addr == ip) | |||
return (pnode); | |||
return NULL; | |||
@@ -304,7 +304,7 @@ CNode* CConnman::FindNode(const CNetAddr& ip) | |||
CNode* CConnman::FindNode(const CSubNet& subNet) | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) | |||
for (CNode* pnode : vNodes) | |||
if (subNet.Match((CNetAddr)pnode->addr)) | |||
return (pnode); | |||
return NULL; | |||
@@ -313,7 +313,7 @@ CNode* CConnman::FindNode(const CSubNet& subNet) | |||
CNode* CConnman::FindNode(const std::string& addrName) | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) { | |||
for (CNode* pnode : vNodes) { | |||
if (pnode->GetAddrName() == addrName) { | |||
return (pnode); | |||
} | |||
@@ -324,7 +324,7 @@ CNode* CConnman::FindNode(const std::string& addrName) | |||
CNode* CConnman::FindNode(const CService& addr) | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) | |||
for (CNode* pnode : vNodes) | |||
if ((CService)pnode->addr == addr) | |||
return (pnode); | |||
return NULL; | |||
@@ -333,7 +333,7 @@ CNode* CConnman::FindNode(const CService& addr) | |||
bool CConnman::CheckIncomingNonce(uint64_t nonce) | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) { | |||
for (CNode* pnode : vNodes) { | |||
if (!pnode->fSuccessfullyConnected && !pnode->fInbound && pnode->GetLocalNonce() == nonce) | |||
return false; | |||
} | |||
@@ -528,7 +528,7 @@ void CConnman::Ban(const CSubNet& subNet, const BanReason &banReason, int64_t ba | |||
clientInterface->BannedListChanged(); | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) { | |||
for (CNode* pnode : vNodes) { | |||
if (subNet.Match((CNetAddr)pnode->addr)) | |||
pnode->fDisconnect = true; | |||
} | |||
@@ -606,7 +606,7 @@ void CConnman::SetBannedSetDirty(bool dirty) | |||
bool CConnman::IsWhitelistedRange(const CNetAddr &addr) { | |||
LOCK(cs_vWhitelistedRange); | |||
BOOST_FOREACH(const CSubNet& subnet, vWhitelistedRange) { | |||
for (const CSubNet& subnet : vWhitelistedRange) { | |||
if (subnet.Match(addr)) | |||
return true; | |||
} | |||
@@ -959,7 +959,7 @@ bool CConnman::AttemptToEvictConnection() | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode *node, vNodes) { | |||
for (CNode *node : vNodes) { | |||
if (node->fWhitelisted) | |||
continue; | |||
if (!node->fInbound) | |||
@@ -1019,7 +1019,7 @@ bool CConnman::AttemptToEvictConnection() | |||
unsigned int nMostConnections = 0; | |||
int64_t nMostConnectionsTime = 0; | |||
std::map<uint64_t, std::vector<NodeEvictionCandidate> > mapNetGroupNodes; | |||
BOOST_FOREACH(const NodeEvictionCandidate &node, vEvictionCandidates) { | |||
for (const NodeEvictionCandidate &node : vEvictionCandidates) { | |||
mapNetGroupNodes[node.nKeyedNetGroup].push_back(node); | |||
int64_t grouptime = mapNetGroupNodes[node.nKeyedNetGroup][0].nTimeConnected; | |||
size_t groupsize = mapNetGroupNodes[node.nKeyedNetGroup].size(); | |||
@@ -1063,7 +1063,7 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) { | |||
bool whitelisted = hListenSocket.whitelisted || IsWhitelistedRange(addr); | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) | |||
for (CNode* pnode : vNodes) | |||
if (pnode->fInbound) | |||
nInbound++; | |||
} | |||
@@ -1139,7 +1139,7 @@ void CConnman::ThreadSocketHandler() | |||
LOCK(cs_vNodes); | |||
// Disconnect unused nodes | |||
std::vector<CNode*> vNodesCopy = vNodes; | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) | |||
for (CNode* pnode : vNodesCopy) | |||
{ | |||
if (pnode->fDisconnect) | |||
{ | |||
@@ -1161,7 +1161,7 @@ void CConnman::ThreadSocketHandler() | |||
{ | |||
// Delete disconnected nodes | |||
std::list<CNode*> vNodesDisconnectedCopy = vNodesDisconnected; | |||
BOOST_FOREACH(CNode* pnode, vNodesDisconnectedCopy) | |||
for (CNode* pnode : vNodesDisconnectedCopy) | |||
{ | |||
// wait until threads are done using it | |||
if (pnode->GetRefCount() <= 0) { | |||
@@ -1209,7 +1209,7 @@ void CConnman::ThreadSocketHandler() | |||
SOCKET hSocketMax = 0; | |||
bool have_fds = false; | |||
BOOST_FOREACH(const ListenSocket& hListenSocket, vhListenSocket) { | |||
for (const ListenSocket& hListenSocket : vhListenSocket) { | |||
FD_SET(hListenSocket.socket, &fdsetRecv); | |||
hSocketMax = std::max(hSocketMax, hListenSocket.socket); | |||
have_fds = true; | |||
@@ -1217,7 +1217,7 @@ void CConnman::ThreadSocketHandler() | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) | |||
for (CNode* pnode : vNodes) | |||
{ | |||
// Implement the following logic: | |||
// * If there is data to send, select() for sending data. As this only | |||
@@ -1278,7 +1278,7 @@ void CConnman::ThreadSocketHandler() | |||
// | |||
// Accept new connections | |||
// | |||
BOOST_FOREACH(const ListenSocket& hListenSocket, vhListenSocket) | |||
for (const ListenSocket& hListenSocket : vhListenSocket) | |||
{ | |||
if (hListenSocket.socket != INVALID_SOCKET && FD_ISSET(hListenSocket.socket, &fdsetRecv)) | |||
{ | |||
@@ -1293,10 +1293,10 @@ void CConnman::ThreadSocketHandler() | |||
{ | |||
LOCK(cs_vNodes); | |||
vNodesCopy = vNodes; | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) | |||
for (CNode* pnode : vNodesCopy) | |||
pnode->AddRef(); | |||
} | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) | |||
for (CNode* pnode : vNodesCopy) | |||
{ | |||
if (interruptNet) | |||
return; | |||
@@ -1417,7 +1417,7 @@ void CConnman::ThreadSocketHandler() | |||
} | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) | |||
for (CNode* pnode : vNodesCopy) | |||
pnode->Release(); | |||
} | |||
} | |||
@@ -1598,7 +1598,7 @@ void CConnman::ThreadDNSAddressSeed() | |||
LogPrintf("Loading addresses from DNS seeds (could take a while)\n"); | |||
BOOST_FOREACH(const CDNSSeedData &seed, vSeeds) { | |||
for (const CDNSSeedData &seed : vSeeds) { | |||
if (interruptNet) { | |||
return; | |||
} | |||
@@ -1610,7 +1610,7 @@ void CConnman::ThreadDNSAddressSeed() | |||
ServiceFlags requiredServiceBits = nRelevantServices; | |||
if (LookupHost(GetDNSHost(seed, &requiredServiceBits).c_str(), vIPs, 0, true)) | |||
{ | |||
BOOST_FOREACH(const CNetAddr& ip, vIPs) | |||
for (const CNetAddr& ip : vIPs) | |||
{ | |||
int nOneDay = 24*3600; | |||
CAddress addr = CAddress(CService(ip, Params().GetDefaultPort()), requiredServiceBits); | |||
@@ -1691,7 +1691,7 @@ void CConnman::ThreadOpenConnections() | |||
for (int64_t nLoop = 0;; nLoop++) | |||
{ | |||
ProcessOneShot(); | |||
BOOST_FOREACH(const std::string& strAddr, gArgs.GetArgs("-connect")) | |||
for (const std::string& strAddr : gArgs.GetArgs("-connect")) | |||
{ | |||
CAddress addr(CService(), NODE_NONE); | |||
OpenNetworkConnection(addr, false, NULL, strAddr.c_str()); | |||
@@ -1746,7 +1746,7 @@ void CConnman::ThreadOpenConnections() | |||
std::set<std::vector<unsigned char> > setConnected; | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodes) { | |||
for (CNode* pnode : vNodes) { | |||
if (!pnode->fInbound && !pnode->fAddnode) { | |||
// Count the peers that have all relevant services | |||
@@ -1863,7 +1863,7 @@ std::vector<AddedNodeInfo> CConnman::GetAddedNodeInfo() | |||
{ | |||
LOCK(cs_vAddedNodes); | |||
ret.reserve(vAddedNodes.size()); | |||
BOOST_FOREACH(const std::string& strAddNode, vAddedNodes) | |||
for (const std::string& strAddNode : vAddedNodes) | |||
lAddresses.push_back(strAddNode); | |||
} | |||
@@ -1884,7 +1884,7 @@ std::vector<AddedNodeInfo> CConnman::GetAddedNodeInfo() | |||
} | |||
} | |||
BOOST_FOREACH(const std::string& strAddNode, lAddresses) { | |||
for (const std::string& strAddNode : lAddresses) { | |||
CService service(LookupNumeric(strAddNode.c_str(), Params().GetDefaultPort())); | |||
if (service.IsValid()) { | |||
// strAddNode is an IP:port | |||
@@ -1993,14 +1993,14 @@ void CConnman::ThreadMessageHandler() | |||
{ | |||
LOCK(cs_vNodes); | |||
vNodesCopy = vNodes; | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) { | |||
for (CNode* pnode : vNodesCopy) { | |||
pnode->AddRef(); | |||
} | |||
} | |||
bool fMoreWork = false; | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) | |||
for (CNode* pnode : vNodesCopy) | |||
{ | |||
if (pnode->fDisconnect) | |||
continue; | |||
@@ -2022,7 +2022,7 @@ void CConnman::ThreadMessageHandler() | |||
{ | |||
LOCK(cs_vNodes); | |||
BOOST_FOREACH(CNode* pnode, vNodesCopy) | |||
for (CNode* pnode : vNodesCopy) | |||
pnode->Release(); | |||
} | |||
@@ -2150,7 +2150,7 @@ void Discover(boost::thread_group& threadGroup) | |||
std::vector<CNetAddr> vaddr; | |||
if (LookupHost(pszHostName, vaddr, 0, true)) | |||
{ | |||
BOOST_FOREACH (const CNetAddr &addr, vaddr) | |||
for (const CNetAddr &addr : vaddr) | |||
{ | |||
if (AddLocal(addr, LOCAL_IF)) | |||
LogPrintf("%s: %s - %s\n", __func__, pszHostName, addr.ToString()); | |||
@@ -2197,7 +2197,7 @@ void CConnman::SetNetworkActive(bool active) | |||
LOCK(cs_vNodes); | |||
// Close sockets to all nodes | |||
BOOST_FOREACH(CNode* pnode, vNodes) { | |||
for (CNode* pnode : vNodes) { | |||
pnode->CloseSocketDisconnect(); | |||
} | |||
} else { | |||
@@ -2399,18 +2399,18 @@ void CConnman::Stop() | |||
} | |||
// Close sockets | |||
BOOST_FOREACH(CNode* pnode, vNodes) | |||
for (CNode* pnode : vNodes) | |||
pnode->CloseSocketDisconnect(); | |||
BOOST_FOREACH(ListenSocket& hListenSocket, vhListenSocket) | |||
for (ListenSocket& hListenSocket : vhListenSocket) | |||
if (hListenSocket.socket != INVALID_SOCKET) | |||
if (!CloseSocket(hListenSocket.socket)) | |||
LogPrintf("CloseSocket(hListenSocket) failed with error %s\n", NetworkErrorString(WSAGetLastError())); | |||
// clean up some globals (to help leak detection) | |||
BOOST_FOREACH(CNode *pnode, vNodes) { | |||
for (CNode *pnode : vNodes) { | |||
DeleteNode(pnode); | |||
} | |||
BOOST_FOREACH(CNode *pnode, vNodesDisconnected) { | |||
for (CNode *pnode : vNodesDisconnected) { | |||
DeleteNode(pnode); | |||
} | |||
vNodes.clear(); | |||
@@ -2722,7 +2722,7 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn | |||
fPauseSend = false; | |||
nProcessQueueSize = 0; | |||
BOOST_FOREACH(const std::string &msg, getAllNetMessageTypes()) | |||
for (const std::string &msg : getAllNetMessageTypes()) | |||
mapRecvBytesPerMsgCmd[msg] = 0; | |||
mapRecvBytesPerMsgCmd[NET_MESSAGE_COMMAND_OTHER] = 0; | |||
@@ -287,7 +287,7 @@ void FinalizeNode(NodeId nodeid, bool& fUpdateConnectionTime) { | |||
fUpdateConnectionTime = true; | |||
} | |||
BOOST_FOREACH(const QueuedBlock& entry, state->vBlocksInFlight) { | |||
for (const QueuedBlock& entry : state->vBlocksInFlight) { | |||
mapBlocksInFlight.erase(entry.hash); | |||
} | |||
EraseOrphansFor(nodeid); | |||
@@ -522,7 +522,7 @@ void FindNextBlocksToDownload(NodeId nodeid, unsigned int count, std::vector<con | |||
// are not yet downloaded and not in flight to vBlocks. In the mean time, update | |||
// pindexLastCommonBlock as long as all ancestors are already downloaded, or if it's | |||
// already part of our chain (and therefore don't need it even if pruned). | |||
BOOST_FOREACH(const CBlockIndex* pindex, vToFetch) { | |||
for (const CBlockIndex* pindex : vToFetch) { | |||
if (!pindex->IsValid(BLOCK_VALID_TREE)) { | |||
// We consider the chain that this peer is on invalid. | |||
return; | |||
@@ -566,7 +566,7 @@ bool GetNodeStateStats(NodeId nodeid, CNodeStateStats &stats) { | |||
stats.nMisbehavior = state->nMisbehavior; | |||
stats.nSyncHeight = state->pindexBestKnownBlock ? state->pindexBestKnownBlock->nHeight : -1; | |||
stats.nCommonHeight = state->pindexLastCommonBlock ? state->pindexLastCommonBlock->nHeight : -1; | |||
BOOST_FOREACH(const QueuedBlock& queue, state->vBlocksInFlight) { | |||
for (const QueuedBlock& queue : state->vBlocksInFlight) { | |||
if (queue.pindex) | |||
stats.vHeightInFlight.push_back(queue.pindex->nHeight); | |||
} | |||
@@ -627,7 +627,7 @@ bool AddOrphanTx(const CTransactionRef& tx, NodeId peer) EXCLUSIVE_LOCKS_REQUIRE | |||
auto ret = mapOrphanTransactions.emplace(hash, COrphanTx{tx, peer, GetTime() + ORPHAN_TX_EXPIRE_TIME}); | |||
assert(ret.second); | |||
BOOST_FOREACH(const CTxIn& txin, tx->vin) { | |||
for (const CTxIn& txin : tx->vin) { | |||
mapOrphanTransactionsByPrev[txin.prevout].insert(ret.first); | |||
} | |||
@@ -643,7 +643,7 @@ int static EraseOrphanTx(uint256 hash) EXCLUSIVE_LOCKS_REQUIRED(cs_main) | |||
std::map<uint256, COrphanTx>::iterator it = mapOrphanTransactions.find(hash); | |||
if (it == mapOrphanTransactions.end()) | |||
return 0; | |||
BOOST_FOREACH(const CTxIn& txin, it->second.tx->vin) | |||
for (const CTxIn& txin : it->second.tx->vin) | |||
{ | |||
auto itPrev = mapOrphanTransactionsByPrev.find(txin.prevout); | |||
if (itPrev == mapOrphanTransactionsByPrev.end()) | |||
@@ -768,7 +768,7 @@ void PeerLogicValidation::BlockConnected(const std::shared_ptr<const CBlock>& pb | |||
// Erase orphan transactions include or precluded by this block | |||
if (vOrphanErase.size()) { | |||
int nErased = 0; | |||
BOOST_FOREACH(uint256 &orphanHash, vOrphanErase) { | |||
for (uint256 &orphanHash : vOrphanErase) { | |||
nErased += EraseOrphanTx(orphanHash); | |||
} | |||
LogPrint(BCLog::MEMPOOL, "Erased %d orphan tx included or conflicted by block\n", nErased); | |||
@@ -1078,7 +1078,7 @@ void static ProcessGetData(CNode* pfrom, const Consensus::Params& consensusParam | |||
// Thus, the protocol spec specified allows for us to provide duplicate txn here, | |||
// however we MUST always provide at least what the remote peer needs | |||
typedef std::pair<unsigned int, uint256> PairType; | |||
BOOST_FOREACH(PairType& pair, merkleBlock.vMatchedTxn) | |||
for (PairType& pair : merkleBlock.vMatchedTxn) | |||
connman.PushMessage(pfrom, msgMaker.Make(SERIALIZE_TRANSACTION_NO_WITNESS, NetMsgType::TX, *pblock->vtx[pair.first])); | |||
} | |||
// else | |||
@@ -1473,7 +1473,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr | |||
std::vector<CAddress> vAddrOk; | |||
int64_t nNow = GetAdjustedTime(); | |||
int64_t nSince = nNow - 10 * 60; | |||
BOOST_FOREACH(CAddress& addr, vAddr) | |||
for (CAddress& addr : vAddr) | |||
{ | |||
if (interruptMsgProc) | |||
return true; | |||
@@ -1883,13 +1883,13 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr | |||
} | |||
} | |||
BOOST_FOREACH(uint256 hash, vEraseQueue) | |||
for (uint256 hash : vEraseQueue) | |||
EraseOrphanTx(hash); | |||
} | |||
else if (fMissingInputs) | |||
{ | |||
bool fRejectedParents = false; // It may be the case that the orphans parents have all been rejected | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) { | |||
for (const CTxIn& txin : tx.vin) { | |||
if (recentRejects->contains(txin.prevout.hash)) { | |||
fRejectedParents = true; | |||
break; | |||
@@ -1897,7 +1897,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr | |||
} | |||
if (!fRejectedParents) { | |||
uint32_t nFetchFlags = GetFetchFlags(pfrom); | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) { | |||
for (const CTxIn& txin : tx.vin) { | |||
CInv _inv(MSG_TX | nFetchFlags, txin.prevout.hash); | |||
pfrom->AddInventoryKnown(_inv); | |||
if (!AlreadyHave(_inv)) pfrom->AskFor(_inv); | |||
@@ -2433,7 +2433,7 @@ bool static ProcessMessage(CNode* pfrom, const std::string& strCommand, CDataStr | |||
pfrom->vAddrToSend.clear(); | |||
std::vector<CAddress> vAddr = connman.GetAddresses(); | |||
FastRandomContext insecure_rand; | |||
BOOST_FOREACH(const CAddress &addr, vAddr) | |||
for (const CAddress &addr : vAddr) | |||
pfrom->PushAddress(addr, insecure_rand); | |||
} | |||
@@ -2627,7 +2627,7 @@ static bool SendRejectsAndCheckIfBanned(CNode* pnode, CConnman& connman) | |||
AssertLockHeld(cs_main); | |||
CNodeState &state = *State(pnode->GetId()); | |||
BOOST_FOREACH(const CBlockReject& reject, state.rejects) { | |||
for (const CBlockReject& reject : state.rejects) { | |||
connman.PushMessage(pnode, CNetMsgMaker(INIT_PROTO_VERSION).Make(NetMsgType::REJECT, (std::string)NetMsgType::BLOCK, reject.chRejectCode, reject.strRejectReason, reject.hashBlock)); | |||
} | |||
state.rejects.clear(); | |||
@@ -2851,7 +2851,7 @@ bool SendMessages(CNode* pto, CConnman& connman, const std::atomic<bool>& interr | |||
pto->nNextAddrSend = PoissonNextSend(nNow, AVG_ADDRESS_BROADCAST_INTERVAL); | |||
std::vector<CAddress> vAddr; | |||
vAddr.reserve(pto->vAddrToSend.size()); | |||
BOOST_FOREACH(const CAddress& addr, pto->vAddrToSend) | |||
for (const CAddress& addr : pto->vAddrToSend) | |||
{ | |||
if (!pto->addrKnown.contains(addr.GetKey())) | |||
{ | |||
@@ -2929,7 +2929,7 @@ bool SendMessages(CNode* pto, CConnman& connman, const std::atomic<bool>& interr | |||
// Try to find first header that our peer doesn't have, and | |||
// then send all headers past that one. If we come across any | |||
// headers that aren't on chainActive, give up. | |||
BOOST_FOREACH(const uint256 &hash, pto->vBlockHashesToAnnounce) { | |||
for (const uint256 &hash : pto->vBlockHashesToAnnounce) { | |||
BlockMap::iterator mi = mapBlockIndex.find(hash); | |||
assert(mi != mapBlockIndex.end()); | |||
const CBlockIndex *pindex = mi->second; | |||
@@ -3055,7 +3055,7 @@ bool SendMessages(CNode* pto, CConnman& connman, const std::atomic<bool>& interr | |||
vInv.reserve(std::max<size_t>(pto->vInventoryBlockToSend.size(), INVENTORY_BROADCAST_MAX)); | |||
// Add blocks | |||
BOOST_FOREACH(const uint256& hash, pto->vInventoryBlockToSend) { | |||
for (const uint256& hash : pto->vInventoryBlockToSend) { | |||
vInv.push_back(CInv(MSG_BLOCK, hash)); | |||
if (vInv.size() == MAX_INV_SZ) { | |||
connman.PushMessage(pto, msgMaker.Make(NetMsgType::INV, vInv)); | |||
@@ -3213,7 +3213,7 @@ bool SendMessages(CNode* pto, CConnman& connman, const std::atomic<bool>& interr | |||
std::vector<const CBlockIndex*> vToDownload; | |||
NodeId staller = -1; | |||
FindNextBlocksToDownload(pto->GetId(), MAX_BLOCKS_IN_TRANSIT_PER_PEER - state.nBlocksInFlight, vToDownload, staller, consensusParams); | |||
BOOST_FOREACH(const CBlockIndex *pindex, vToDownload) { | |||
for (const CBlockIndex *pindex : vToDownload) { | |||
uint32_t nFetchFlags = GetFetchFlags(pto); | |||
vGetData.push_back(CInv(MSG_BLOCK | nFetchFlags, pindex->GetBlockHash())); | |||
MarkBlockAsInFlight(pto->GetId(), pindex->GetBlockHash(), pindex); |
@@ -111,7 +111,7 @@ bool IsStandardTx(const CTransaction& tx, std::string& reason, const bool witnes | |||
return false; | |||
} | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) | |||
for (const CTxIn& txin : tx.vin) | |||
{ | |||
// Biggest 'standard' txin is a 15-of-15 P2SH multisig with compressed | |||
// keys (remember the 520 byte limit on redeemScript size). That works | |||
@@ -132,7 +132,7 @@ bool IsStandardTx(const CTransaction& tx, std::string& reason, const bool witnes | |||
unsigned int nDataOut = 0; | |||
txnouttype whichType; | |||
BOOST_FOREACH(const CTxOut& txout, tx.vout) { | |||
for (const CTxOut& txout : tx.vout) { | |||
if (!::IsStandard(txout.scriptPubKey, whichType, witnessEnabled)) { | |||
reason = "scriptpubkey"; | |||
return false; |
@@ -6,7 +6,7 @@ | |||
bool SignalsOptInRBF(const CTransaction &tx) | |||
{ | |||
BOOST_FOREACH(const CTxIn &txin, tx.vin) { | |||
for (const CTxIn &txin : tx.vin) { | |||
if (txin.nSequence < std::numeric_limits<unsigned int>::max()-1) { | |||
return true; | |||
} | |||
@@ -38,7 +38,7 @@ RBFTransactionState IsRBFOptIn(const CTransaction &tx, CTxMemPool &pool) | |||
CTxMemPoolEntry entry = *pool.mapTx.find(tx.GetHash()); | |||
pool.CalculateMemPoolAncestors(entry, setAncestors, noLimit, noLimit, noLimit, noLimit, dummy, false); | |||
BOOST_FOREACH(CTxMemPool::txiter it, setAncestors) { | |||
for (CTxMemPool::txiter it : setAncestors) { | |||
if (SignalsOptInRBF(it->GetTx())) { | |||
return RBF_TRANSACTIONSTATE_REPLACEABLE_BIP125; | |||
} |
@@ -81,7 +81,7 @@ public: | |||
cachedAddressTable.clear(); | |||
{ | |||
LOCK(wallet->cs_wallet); | |||
BOOST_FOREACH(const PAIRTYPE(CTxDestination, CAddressBookData)& item, wallet->mapAddressBook) | |||
for (const PAIRTYPE(CTxDestination, CAddressBookData)& item : wallet->mapAddressBook) | |||
{ | |||
const CBitcoinAddress& address = item.first; | |||
bool fMine = IsMine(*wallet, address.Get()); |
@@ -452,7 +452,7 @@ void CoinControlDialog::updateLabels(WalletModel *model, QDialog* dialog) | |||
coinControl->ListSelected(vCoinControl); | |||
model->getOutputs(vCoinControl, vOutputs); | |||
BOOST_FOREACH(const COutput& out, vOutputs) { | |||
for (const COutput& out : vOutputs) { | |||
// unselect already spent, very unlikely scenario, this could happen | |||
// when selected are spent elsewhere, like rpc or another computer | |||
uint256 txhash = out.tx->GetHash(); | |||
@@ -628,7 +628,7 @@ void CoinControlDialog::updateView() | |||
std::map<QString, std::vector<COutput> > mapCoins; | |||
model->listCoins(mapCoins); | |||
BOOST_FOREACH(const PAIRTYPE(QString, std::vector<COutput>)& coins, mapCoins) { | |||
for (const PAIRTYPE(QString, std::vector<COutput>)& coins : mapCoins) { | |||
CCoinControlWidgetItem *itemWalletAddress = new CCoinControlWidgetItem(); | |||
itemWalletAddress->setCheckState(COLUMN_CHECKBOX, Qt::Unchecked); | |||
QString sWalletAddress = coins.first; | |||
@@ -653,7 +653,7 @@ void CoinControlDialog::updateView() | |||
CAmount nSum = 0; | |||
int nChildren = 0; | |||
BOOST_FOREACH(const COutput& out, coins.second) { | |||
for (const COutput& out : coins.second) { | |||
nSum += out.tx->tx->vout[out.i].nValue; | |||
nChildren++; | |||
@@ -79,7 +79,7 @@ public: | |||
TRY_LOCK(cs_main, lockMain); | |||
if (lockMain) | |||
{ | |||
BOOST_FOREACH(CNodeCombinedStats &stats, cachedNodeStats) | |||
for (CNodeCombinedStats &stats : cachedNodeStats) | |||
stats.fNodeStateStatsAvailable = GetNodeStateStats(stats.nodeStats.nodeid, stats.nodeStateStats); | |||
} | |||
} |
@@ -22,7 +22,7 @@ RecentRequestsTableModel::RecentRequestsTableModel(CWallet *wallet, WalletModel | |||
// Load entries from wallet | |||
std::vector<std::string> vReceiveRequests; | |||
parent->loadReceiveRequests(vReceiveRequests); | |||
BOOST_FOREACH(const std::string& request, vReceiveRequests) | |||
for (const std::string& request : vReceiveRequests) | |||
addNewRequest(request); | |||
/* These columns must match the indices in the ColumnIndex enumeration */ |
@@ -133,7 +133,7 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco | |||
// Coinbase | |||
// | |||
CAmount nUnmatured = 0; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
nUnmatured += wallet->GetCredit(txout, ISMINE_ALL); | |||
strHTML += "<b>" + tr("Credit") + ":</b> "; | |||
if (wtx.IsInMainChain()) | |||
@@ -152,14 +152,14 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco | |||
else | |||
{ | |||
isminetype fAllFromMe = ISMINE_SPENDABLE; | |||
BOOST_FOREACH(const CTxIn& txin, wtx.tx->vin) | |||
for (const CTxIn& txin : wtx.tx->vin) | |||
{ | |||
isminetype mine = wallet->IsMine(txin); | |||
if(fAllFromMe > mine) fAllFromMe = mine; | |||
} | |||
isminetype fAllToMe = ISMINE_SPENDABLE; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
{ | |||
isminetype mine = wallet->IsMine(txout); | |||
if(fAllToMe > mine) fAllToMe = mine; | |||
@@ -173,7 +173,7 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco | |||
// | |||
// Debit | |||
// | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
{ | |||
// Ignore change | |||
isminetype toSelf = wallet->IsMine(txout); | |||
@@ -221,10 +221,10 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco | |||
// | |||
// Mixed debit transaction | |||
// | |||
BOOST_FOREACH(const CTxIn& txin, wtx.tx->vin) | |||
for (const CTxIn& txin : wtx.tx->vin) | |||
if (wallet->IsMine(txin)) | |||
strHTML += "<b>" + tr("Debit") + ":</b> " + BitcoinUnits::formatHtmlWithUnit(unit, -wallet->GetDebit(txin, ISMINE_ALL)) + "<br>"; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
if (wallet->IsMine(txout)) | |||
strHTML += "<b>" + tr("Credit") + ":</b> " + BitcoinUnits::formatHtmlWithUnit(unit, wallet->GetCredit(txout, ISMINE_ALL)) + "<br>"; | |||
} | |||
@@ -276,10 +276,10 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco | |||
if (logCategories != BCLog::NONE) | |||
{ | |||
strHTML += "<hr><br>" + tr("Debug information") + "<br><br>"; | |||
BOOST_FOREACH(const CTxIn& txin, wtx.tx->vin) | |||
for (const CTxIn& txin : wtx.tx->vin) | |||
if(wallet->IsMine(txin)) | |||
strHTML += "<b>" + tr("Debit") + ":</b> " + BitcoinUnits::formatHtmlWithUnit(unit, -wallet->GetDebit(txin, ISMINE_ALL)) + "<br>"; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
if(wallet->IsMine(txout)) | |||
strHTML += "<b>" + tr("Credit") + ":</b> " + BitcoinUnits::formatHtmlWithUnit(unit, wallet->GetCredit(txout, ISMINE_ALL)) + "<br>"; | |||
@@ -289,7 +289,7 @@ QString TransactionDesc::toHTML(CWallet *wallet, CWalletTx &wtx, TransactionReco | |||
strHTML += "<br><b>" + tr("Inputs") + ":</b>"; | |||
strHTML += "<ul>"; | |||
BOOST_FOREACH(const CTxIn& txin, wtx.tx->vin) | |||
for (const CTxIn& txin : wtx.tx->vin) | |||
{ | |||
COutPoint prevout = txin.prevout; | |||
@@ -78,7 +78,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet * | |||
{ | |||
bool involvesWatchAddress = false; | |||
isminetype fAllFromMe = ISMINE_SPENDABLE; | |||
BOOST_FOREACH(const CTxIn& txin, wtx.tx->vin) | |||
for (const CTxIn& txin : wtx.tx->vin) | |||
{ | |||
isminetype mine = wallet->IsMine(txin); | |||
if(mine & ISMINE_WATCH_ONLY) involvesWatchAddress = true; | |||
@@ -86,7 +86,7 @@ QList<TransactionRecord> TransactionRecord::decomposeTransaction(const CWallet * | |||
} | |||
isminetype fAllToMe = ISMINE_SPENDABLE; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
{ | |||
isminetype mine = wallet->IsMine(txout); | |||
if(mine & ISMINE_WATCH_ONLY) involvesWatchAddress = true; |
@@ -574,7 +574,7 @@ bool WalletModel::getPrivKey(const CKeyID &address, CKey& vchPrivKeyOut) const | |||
void WalletModel::getOutputs(const std::vector<COutPoint>& vOutpoints, std::vector<COutput>& vOutputs) | |||
{ | |||
LOCK2(cs_main, wallet->cs_wallet); | |||
BOOST_FOREACH(const COutPoint& outpoint, vOutpoints) | |||
for (const COutPoint& outpoint : vOutpoints) | |||
{ | |||
if (!wallet->mapWallet.count(outpoint.hash)) continue; | |||
int nDepth = wallet->mapWallet[outpoint.hash].GetDepthInMainChain(); |
@@ -158,7 +158,7 @@ static bool rest_headers(HTTPRequest* req, | |||
} | |||
CDataStream ssHeader(SER_NETWORK, PROTOCOL_VERSION); | |||
BOOST_FOREACH(const CBlockIndex *pindex, headers) { | |||
for (const CBlockIndex *pindex : headers) { | |||
ssHeader << pindex->GetBlockHeader(); | |||
} | |||
@@ -178,7 +178,7 @@ static bool rest_headers(HTTPRequest* req, | |||
} | |||
case RF_JSON: { | |||
UniValue jsonHeaders(UniValue::VARR); | |||
BOOST_FOREACH(const CBlockIndex *pindex, headers) { | |||
for (const CBlockIndex *pindex : headers) { | |||
jsonHeaders.push_back(blockheaderToJSON(pindex)); | |||
} | |||
std::string strJSON = jsonHeaders.write() + "\n"; | |||
@@ -558,7 +558,7 @@ static bool rest_getutxos(HTTPRequest* req, const std::string& strURIPart) | |||
objGetUTXOResponse.push_back(Pair("bitmap", bitmapStringRepresentation)); | |||
UniValue utxos(UniValue::VARR); | |||
BOOST_FOREACH (const CCoin& coin, outs) { | |||
for (const CCoin& coin : outs) { | |||
UniValue utxo(UniValue::VOBJ); | |||
utxo.push_back(Pair("height", (int32_t)coin.nHeight)); | |||
utxo.push_back(Pair("value", ValueFromAmount(coin.out.nValue))); |
@@ -364,14 +364,14 @@ void entryToJSON(UniValue &info, const CTxMemPoolEntry &e) | |||
info.push_back(Pair("ancestorfees", e.GetModFeesWithAncestors())); | |||
const CTransaction& tx = e.GetTx(); | |||
std::set<std::string> setDepends; | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) | |||
for (const CTxIn& txin : tx.vin) | |||
{ | |||
if (mempool.exists(txin.prevout.hash)) | |||
setDepends.insert(txin.prevout.hash.ToString()); | |||
} | |||
UniValue depends(UniValue::VARR); | |||
BOOST_FOREACH(const std::string& dep, setDepends) | |||
for (const std::string& dep : setDepends) | |||
{ | |||
depends.push_back(dep); | |||
} | |||
@@ -385,7 +385,7 @@ UniValue mempoolToJSON(bool fVerbose) | |||
{ | |||
LOCK(mempool.cs); | |||
UniValue o(UniValue::VOBJ); | |||
BOOST_FOREACH(const CTxMemPoolEntry& e, mempool.mapTx) | |||
for (const CTxMemPoolEntry& e : mempool.mapTx) | |||
{ | |||
const uint256& hash = e.GetTx().GetHash(); | |||
UniValue info(UniValue::VOBJ); | |||
@@ -400,7 +400,7 @@ UniValue mempoolToJSON(bool fVerbose) | |||
mempool.queryHashes(vtxid); | |||
UniValue a(UniValue::VARR); | |||
BOOST_FOREACH(const uint256& hash, vtxid) | |||
for (const uint256& hash : vtxid) | |||
a.push_back(hash.ToString()); | |||
return a; | |||
@@ -485,14 +485,14 @@ UniValue getmempoolancestors(const JSONRPCRequest& request) | |||
if (!fVerbose) { | |||
UniValue o(UniValue::VARR); | |||
BOOST_FOREACH(CTxMemPool::txiter ancestorIt, setAncestors) { | |||
for (CTxMemPool::txiter ancestorIt : setAncestors) { | |||
o.push_back(ancestorIt->GetTx().GetHash().ToString()); | |||
} | |||
return o; | |||
} else { | |||
UniValue o(UniValue::VOBJ); | |||
BOOST_FOREACH(CTxMemPool::txiter ancestorIt, setAncestors) { | |||
for (CTxMemPool::txiter ancestorIt : setAncestors) { | |||
const CTxMemPoolEntry &e = *ancestorIt; | |||
const uint256& _hash = e.GetTx().GetHash(); | |||
UniValue info(UniValue::VOBJ); | |||
@@ -549,14 +549,14 @@ UniValue getmempooldescendants(const JSONRPCRequest& request) | |||
if (!fVerbose) { | |||
UniValue o(UniValue::VARR); | |||
BOOST_FOREACH(CTxMemPool::txiter descendantIt, setDescendants) { | |||
for (CTxMemPool::txiter descendantIt : setDescendants) { | |||
o.push_back(descendantIt->GetTx().GetHash().ToString()); | |||
} | |||
return o; | |||
} else { | |||
UniValue o(UniValue::VOBJ); | |||
BOOST_FOREACH(CTxMemPool::txiter descendantIt, setDescendants) { | |||
for (CTxMemPool::txiter descendantIt : setDescendants) { | |||
const CTxMemPoolEntry &e = *descendantIt; | |||
const uint256& _hash = e.GetTx().GetHash(); | |||
UniValue info(UniValue::VOBJ); | |||
@@ -1256,7 +1256,7 @@ UniValue getchaintips(const JSONRPCRequest& request) | |||
std::set<const CBlockIndex*> setOrphans; | |||
std::set<const CBlockIndex*> setPrevs; | |||
BOOST_FOREACH(const PAIRTYPE(const uint256, CBlockIndex*)& item, mapBlockIndex) | |||
for (const PAIRTYPE(const uint256, CBlockIndex*)& item : mapBlockIndex) | |||
{ | |||
if (!chainActive.Contains(item.second)) { | |||
setOrphans.insert(item.second); | |||
@@ -1276,7 +1276,7 @@ UniValue getchaintips(const JSONRPCRequest& request) | |||
/* Construct the output array. */ | |||
UniValue res(UniValue::VARR); | |||
BOOST_FOREACH(const CBlockIndex* block, setTips) | |||
for (const CBlockIndex* block : setTips) | |||
{ | |||
UniValue obj(UniValue::VOBJ); | |||
obj.push_back(Pair("height", block->nHeight)); |
@@ -580,7 +580,7 @@ UniValue getblocktemplate(const JSONRPCRequest& request) | |||
entry.push_back(Pair("hash", tx.GetWitnessHash().GetHex())); | |||
UniValue deps(UniValue::VARR); | |||
BOOST_FOREACH (const CTxIn &in, tx.vin) | |||
for (const CTxIn &in : tx.vin) | |||
{ | |||
if (setTxIndex.count(in.prevout.hash)) | |||
deps.push_back(setTxIndex[in.prevout.hash]); |
@@ -149,7 +149,7 @@ public: | |||
obj.push_back(Pair("script", GetTxnOutputType(whichType))); | |||
obj.push_back(Pair("hex", HexStr(subscript.begin(), subscript.end()))); | |||
UniValue a(UniValue::VARR); | |||
BOOST_FOREACH(const CTxDestination& addr, addresses) | |||
for (const CTxDestination& addr : addresses) | |||
a.push_back(CBitcoinAddress(addr).ToString()); | |||
obj.push_back(Pair("addresses", a)); | |||
if (whichType == TX_MULTISIG) |
@@ -126,7 +126,7 @@ UniValue getpeerinfo(const JSONRPCRequest& request) | |||
UniValue ret(UniValue::VARR); | |||
BOOST_FOREACH(const CNodeStats& stats, vstats) { | |||
for (const CNodeStats& stats : vstats) { | |||
UniValue obj(UniValue::VOBJ); | |||
CNodeStateStats statestats; | |||
bool fStateStats = GetNodeStateStats(stats.nodeid, statestats); | |||
@@ -163,7 +163,7 @@ UniValue getpeerinfo(const JSONRPCRequest& request) | |||
obj.push_back(Pair("synced_headers", statestats.nSyncHeight)); | |||
obj.push_back(Pair("synced_blocks", statestats.nCommonHeight)); | |||
UniValue heights(UniValue::VARR); | |||
BOOST_FOREACH(int height, statestats.vHeightInFlight) { | |||
for (int height : statestats.vHeightInFlight) { | |||
heights.push_back(height); | |||
} | |||
obj.push_back(Pair("inflight", heights)); | |||
@@ -171,14 +171,14 @@ UniValue getpeerinfo(const JSONRPCRequest& request) | |||
obj.push_back(Pair("whitelisted", stats.fWhitelisted)); | |||
UniValue sendPerMsgCmd(UniValue::VOBJ); | |||
BOOST_FOREACH(const mapMsgCmdSize::value_type &i, stats.mapSendBytesPerMsgCmd) { | |||
for (const mapMsgCmdSize::value_type &i : stats.mapSendBytesPerMsgCmd) { | |||
if (i.second > 0) | |||
sendPerMsgCmd.push_back(Pair(i.first, i.second)); | |||
} | |||
obj.push_back(Pair("bytessent_per_msg", sendPerMsgCmd)); | |||
UniValue recvPerMsgCmd(UniValue::VOBJ); | |||
BOOST_FOREACH(const mapMsgCmdSize::value_type &i, stats.mapRecvBytesPerMsgCmd) { | |||
for (const mapMsgCmdSize::value_type &i : stats.mapRecvBytesPerMsgCmd) { | |||
if (i.second > 0) | |||
recvPerMsgCmd.push_back(Pair(i.first, i.second)); | |||
} | |||
@@ -474,7 +474,7 @@ UniValue getnetworkinfo(const JSONRPCRequest& request) | |||
UniValue localAddresses(UniValue::VARR); | |||
{ | |||
LOCK(cs_mapLocalHost); | |||
BOOST_FOREACH(const PAIRTYPE(CNetAddr, LocalServiceInfo) &item, mapLocalHost) | |||
for (const PAIRTYPE(CNetAddr, LocalServiceInfo) &item : mapLocalHost) | |||
{ | |||
UniValue rec(UniValue::VOBJ); | |||
rec.push_back(Pair("address", item.first.ToString())); |
@@ -282,7 +282,7 @@ UniValue verifytxoutproof(const JSONRPCRequest& request) | |||
if (!mapBlockIndex.count(merkleBlock.header.GetHash()) || !chainActive.Contains(mapBlockIndex[merkleBlock.header.GetHash()])) | |||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Block not found in chain"); | |||
BOOST_FOREACH(const uint256& hash, vMatch) | |||
for (const uint256& hash : vMatch) | |||
res.push_back(hash.GetHex()); | |||
return res; | |||
} | |||
@@ -373,7 +373,7 @@ UniValue createrawtransaction(const JSONRPCRequest& request) | |||
std::set<CBitcoinAddress> setAddress; | |||
std::vector<std::string> addrList = sendTo.getKeys(); | |||
BOOST_FOREACH(const std::string& name_, addrList) { | |||
for (const std::string& name_ : addrList) { | |||
if (name_ == "data") { | |||
std::vector<unsigned char> data = ParseHexV(sendTo[name_].getValStr(),"Data"); | |||
@@ -637,7 +637,7 @@ UniValue signrawtransaction(const JSONRPCRequest& request) | |||
CCoinsViewMemPool viewMempool(&viewChain, mempool); | |||
view.SetBackend(viewMempool); // temporarily switch cache backend to db+mempool view | |||
BOOST_FOREACH(const CTxIn& txin, mergedTx.vin) { | |||
for (const CTxIn& txin : mergedTx.vin) { | |||
view.AccessCoin(txin.prevout); // Load entries from viewChain into view; can fail. | |||
} | |||
@@ -781,7 +781,7 @@ UniValue signrawtransaction(const JSONRPCRequest& request) | |||
ProduceSignature(MutableTransactionSignatureCreator(&keystore, &mergedTx, i, amount, nHashType), prevPubKey, sigdata); | |||
// ... and merge in other signatures: | |||
BOOST_FOREACH(const CMutableTransaction& txv, txVariants) { | |||
for (const CMutableTransaction& txv : txVariants) { | |||
if (txv.vin.size() > i) { | |||
sigdata = CombineSignatures(prevPubKey, TransactionSignatureChecker(&txConst, i, amount), sigdata, DataFromTransaction(txv, i)); | |||
} |
@@ -64,7 +64,7 @@ void RPCTypeCheck(const UniValue& params, | |||
bool fAllowNull) | |||
{ | |||
unsigned int i = 0; | |||
BOOST_FOREACH(UniValue::VType t, typesExpected) | |||
for (UniValue::VType t : typesExpected) | |||
{ | |||
if (params.size() <= i) | |||
break; | |||
@@ -103,7 +103,7 @@ void RPCTypeCheckObj(const UniValue& o, | |||
if (fStrict) | |||
{ | |||
BOOST_FOREACH(const std::string& k, o.getKeys()) | |||
for (const std::string& k : o.getKeys()) | |||
{ | |||
if (typesExpected.count(k) == 0) | |||
{ | |||
@@ -186,7 +186,7 @@ std::string CRPCTable::help(const std::string& strCommand, const JSONRPCRequest& | |||
jreq.fHelp = true; | |||
jreq.params = UniValue(); | |||
BOOST_FOREACH(const PAIRTYPE(std::string, const CRPCCommand*)& command, vCommands) | |||
for (const PAIRTYPE(std::string, const CRPCCommand*)& command : vCommands) | |||
{ | |||
const CRPCCommand *pcmd = command.second; | |||
std::string strMethod = pcmd->name; |
@@ -18,7 +18,7 @@ typedef std::vector<unsigned char> valtype; | |||
unsigned int HaveKeys(const std::vector<valtype>& pubkeys, const CKeyStore& keystore) | |||
{ | |||
unsigned int nResult = 0; | |||
BOOST_FOREACH(const valtype& pubkey, pubkeys) | |||
for (const valtype& pubkey : pubkeys) | |||
{ | |||
CKeyID keyID = CPubKey(pubkey).GetID(); | |||
if (keystore.HaveKey(keyID)) |
@@ -126,7 +126,7 @@ static bool SignStep(const BaseSignatureCreator& creator, const CScript& scriptP | |||
static CScript PushAll(const std::vector<valtype>& values) | |||
{ | |||
CScript result; | |||
BOOST_FOREACH(const valtype& v, values) { | |||
for (const valtype& v : values) { | |||
if (v.size() == 0) { | |||
result << OP_0; | |||
} else if (v.size() == 1 && v[0] >= 1 && v[0] <= 16) { | |||
@@ -232,12 +232,12 @@ static std::vector<valtype> CombineMultisig(const CScript& scriptPubKey, const B | |||
{ | |||
// Combine all the signatures we've got: | |||
std::set<valtype> allsigs; | |||
BOOST_FOREACH(const valtype& v, sigs1) | |||
for (const valtype& v : sigs1) | |||
{ | |||
if (!v.empty()) | |||
allsigs.insert(v); | |||
} | |||
BOOST_FOREACH(const valtype& v, sigs2) | |||
for (const valtype& v : sigs2) | |||
{ | |||
if (!v.empty()) | |||
allsigs.insert(v); | |||
@@ -248,7 +248,7 @@ static std::vector<valtype> CombineMultisig(const CScript& scriptPubKey, const B | |||
unsigned int nSigsRequired = vSolutions.front()[0]; | |||
unsigned int nPubKeys = vSolutions.size()-2; | |||
std::map<valtype, valtype> sigs; | |||
BOOST_FOREACH(const valtype& sig, allsigs) | |||
for (const valtype& sig : allsigs) | |||
{ | |||
for (unsigned int i = 0; i < nPubKeys; i++) | |||
{ |
@@ -94,7 +94,7 @@ bool Solver(const CScript& scriptPubKey, txnouttype& typeRet, std::vector<std::v | |||
// Scan templates | |||
const CScript& script1 = scriptPubKey; | |||
BOOST_FOREACH(const PAIRTYPE(txnouttype, CScript)& tplate, mTemplates) | |||
for (const PAIRTYPE(txnouttype, CScript)& tplate : mTemplates) | |||
{ | |||
const CScript& script2 = tplate.second; | |||
vSolutionsRet.clear(); | |||
@@ -293,7 +293,7 @@ CScript GetScriptForMultisig(int nRequired, const std::vector<CPubKey>& keys) | |||
CScript script; | |||
script << CScript::EncodeOP_N(nRequired); | |||
BOOST_FOREACH(const CPubKey& key, keys) | |||
for (const CPubKey& key : keys) | |||
script << ToByteVector(key); | |||
script << CScript::EncodeOP_N(keys.size()) << OP_CHECKMULTISIG; | |||
return script; |
@@ -77,7 +77,7 @@ static void potential_deadlock_detected(const std::pair<void*, void*>& mismatch, | |||
{ | |||
LogPrintf("POTENTIAL DEADLOCK DETECTED\n"); | |||
LogPrintf("Previous lock order was:\n"); | |||
BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, s2) { | |||
for (const PAIRTYPE(void*, CLockLocation) & i : s2) { | |||
if (i.first == mismatch.first) { | |||
LogPrintf(" (1)"); | |||
} | |||
@@ -87,7 +87,7 @@ static void potential_deadlock_detected(const std::pair<void*, void*>& mismatch, | |||
LogPrintf(" %s\n", i.second.ToString()); | |||
} | |||
LogPrintf("Current lock order is:\n"); | |||
BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, s1) { | |||
for (const PAIRTYPE(void*, CLockLocation) & i : s1) { | |||
if (i.first == mismatch.first) { | |||
LogPrintf(" (1)"); | |||
} | |||
@@ -108,7 +108,7 @@ static void push_lock(void* c, const CLockLocation& locklocation, bool fTry) | |||
(*lockstack).push_back(std::make_pair(c, locklocation)); | |||
BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, (*lockstack)) { | |||
for (const PAIRTYPE(void*, CLockLocation) & i : (*lockstack)) { | |||
if (i.first == c) | |||
break; | |||
@@ -142,14 +142,14 @@ void LeaveCritical() | |||
std::string LocksHeld() | |||
{ | |||
std::string result; | |||
BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, *lockstack) | |||
for (const PAIRTYPE(void*, CLockLocation) & i : *lockstack) | |||
result += i.second.ToString() + std::string("\n"); | |||
return result; | |||
} | |||
void AssertLockHeldInternal(const char* pszName, const char* pszFile, int nLine, void* cs) | |||
{ | |||
BOOST_FOREACH (const PAIRTYPE(void*, CLockLocation) & i, *lockstack) | |||
for (const PAIRTYPE(void*, CLockLocation) & i : *lockstack) | |||
if (i.first == cs) | |||
return; | |||
fprintf(stderr, "Assertion failed: lock %s not held in %s:%i; locks held:\n%s", pszName, pszFile, nLine, LocksHeld().c_str()); |
@@ -93,7 +93,7 @@ void RunTest(const TestVector &test) { | |||
CExtPubKey pubkey; | |||
key.SetMaster(&seed[0], seed.size()); | |||
pubkey = key.Neuter(); | |||
BOOST_FOREACH(const TestDerivation &derive, test.vDerive) { | |||
for (const TestDerivation &derive : test.vDerive) { | |||
unsigned char data[74]; | |||
key.Encode(data); | |||
pubkey.Encode(data); |
@@ -194,7 +194,7 @@ BOOST_AUTO_TEST_CASE(coins_cache_simulation_test) | |||
found_an_entry = true; | |||
} | |||
} | |||
BOOST_FOREACH(const CCoinsViewCacheTest *test, stack) { | |||
for (const CCoinsViewCacheTest *test : stack) { | |||
test->SelfTest(); | |||
} | |||
} |
@@ -25,7 +25,7 @@ static void ResetArgs(const std::string& strArg) | |||
// Convert to char*: | |||
std::vector<const char*> vecChar; | |||
BOOST_FOREACH(std::string& s, vecArg) | |||
for (std::string& s : vecArg) | |||
vecChar.push_back(s.c_str()); | |||
ParseParameters(vecChar.size(), &vecChar[0]); |
@@ -28,7 +28,7 @@ sign_multisig(CScript scriptPubKey, std::vector<CKey> keys, CTransaction transac | |||
CScript result; | |||
result << OP_0; // CHECKMULTISIG bug workaround | |||
BOOST_FOREACH(const CKey &key, keys) | |||
for (const CKey &key : keys) | |||
{ | |||
std::vector<unsigned char> vchSig; | |||
BOOST_CHECK(key.Sign(hash, vchSig)); |
@@ -54,13 +54,13 @@ class prevector_tester { | |||
local_check(pretype(real_vector.begin(), real_vector.end()) == pre_vector); | |||
local_check(pretype(pre_vector.begin(), pre_vector.end()) == pre_vector); | |||
size_t pos = 0; | |||
BOOST_FOREACH(const T& v, pre_vector) { | |||
for (const T& v : pre_vector) { | |||
local_check(v == real_vector[pos++]); | |||
} | |||
BOOST_REVERSE_FOREACH(const T& v, pre_vector) { | |||
local_check(v == real_vector[--pos]); | |||
} | |||
BOOST_FOREACH(const T& v, const_pre_vector) { | |||
for (const T& v : const_pre_vector) { | |||
local_check(v == real_vector[pos++]); | |||
} | |||
BOOST_REVERSE_FOREACH(const T& v, const_pre_vector) { |
@@ -927,7 +927,7 @@ BOOST_AUTO_TEST_CASE(script_build) | |||
std::string strGen; | |||
BOOST_FOREACH(TestBuilder& test, tests) { | |||
for (TestBuilder& test : tests) { | |||
test.Test(); | |||
std::string str = JSONPrettyPrint(test.GetJSON()); | |||
#ifndef UPDATE_JSON_TESTS | |||
@@ -1033,7 +1033,7 @@ sign_multisig(CScript scriptPubKey, std::vector<CKey> keys, CTransaction transac | |||
// and vice-versa) | |||
// | |||
result << OP_0; | |||
BOOST_FOREACH(const CKey &key, keys) | |||
for (const CKey &key : keys) | |||
{ | |||
std::vector<unsigned char> vchSig; | |||
BOOST_CHECK(key.Sign(hash, vchSig)); |
@@ -121,7 +121,7 @@ TestChain100Setup::CreateAndProcessBlock(const std::vector<CMutableTransaction>& | |||
// Replace mempool-selected txns with just coinbase plus passed-in txns: | |||
block.vtx.resize(1); | |||
BOOST_FOREACH(const CMutableTransaction& tx, txns) | |||
for (const CMutableTransaction& tx : txns) | |||
block.vtx.push_back(MakeTransactionRef(tx)); | |||
// IncrementExtraNonce creates a valid coinbase and merkleRoot | |||
unsigned int extraNonce = 0; |
@@ -66,7 +66,7 @@ unsigned int ParseScriptFlags(std::string strFlags) | |||
std::vector<std::string> words; | |||
boost::algorithm::split(words, strFlags, boost::algorithm::is_any_of(",")); | |||
BOOST_FOREACH(std::string word, words) | |||
for (std::string word : words) | |||
{ | |||
if (!mapFlagNames.count(word)) | |||
BOOST_ERROR("Bad test: unknown verification flag '" << word << "'"); | |||
@@ -394,7 +394,7 @@ void CheckWithFlag(const CTransactionRef& output, const CMutableTransaction& inp | |||
static CScript PushAll(const std::vector<valtype>& values) | |||
{ | |||
CScript result; | |||
BOOST_FOREACH(const valtype& v, values) { | |||
for (const valtype& v : values) { | |||
if (v.size() == 0) { | |||
result << OP_0; | |||
} else if (v.size() == 1 && v[0] >= 1 && v[0] <= 16) { |
@@ -95,7 +95,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) | |||
{ | |||
// If nobody has a time different than ours but within 5 minutes of ours, give a warning | |||
bool fMatch = false; | |||
BOOST_FOREACH(int64_t nOffset, vSorted) | |||
for (int64_t nOffset : vSorted) | |||
if (nOffset != 0 && abs64(nOffset) < 5 * 60) | |||
fMatch = true; | |||
@@ -110,7 +110,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample) | |||
} | |||
if (LogAcceptCategory(BCLog::NET)) { | |||
BOOST_FOREACH(int64_t n, vSorted) { | |||
for (int64_t n : vSorted) { | |||
LogPrint(BCLog::NET, "%+d ", n); | |||
} | |||
LogPrint(BCLog::NET, "| "); |
@@ -487,7 +487,7 @@ void TorController::add_onion_cb(TorControlConnection& _conn, const TorControlRe | |||
{ | |||
if (reply.code == 250) { | |||
LogPrint(BCLog::TOR, "tor: ADD_ONION successful\n"); | |||
BOOST_FOREACH(const std::string &s, reply.lines) { | |||
for (const std::string &s : reply.lines) { | |||
std::map<std::string,std::string> m = ParseTorReplyMapping(s); | |||
std::map<std::string,std::string>::iterator i; | |||
if ((i = m.find("ServiceID")) != m.end()) | |||
@@ -617,7 +617,7 @@ void TorController::protocolinfo_cb(TorControlConnection& _conn, const TorContro | |||
* 250-AUTH METHODS=NULL | |||
* 250-AUTH METHODS=HASHEDPASSWORD | |||
*/ | |||
BOOST_FOREACH(const std::string &s, reply.lines) { | |||
for (const std::string &s : reply.lines) { | |||
std::pair<std::string,std::string> l = SplitTorReplyLine(s); | |||
if (l.first == "AUTH") { | |||
std::map<std::string,std::string> m = ParseTorReplyMapping(l.second); | |||
@@ -634,7 +634,7 @@ void TorController::protocolinfo_cb(TorControlConnection& _conn, const TorContro | |||
} | |||
} | |||
} | |||
BOOST_FOREACH(const std::string &s, methods) { | |||
for (const std::string &s : methods) { | |||
LogPrint(BCLog::TOR, "tor: Supported authentication method: %s\n", s); | |||
} | |||
// Prefer NULL, otherwise SAFECOOKIE. If a password is provided, use HASHEDPASSWORD |
@@ -73,12 +73,12 @@ void CTxMemPool::UpdateForDescendants(txiter updateIt, cacheMap &cachedDescendan | |||
setAllDescendants.insert(cit); | |||
stageEntries.erase(cit); | |||
const setEntries &setChildren = GetMemPoolChildren(cit); | |||
BOOST_FOREACH(const txiter childEntry, setChildren) { | |||
for (const txiter childEntry : setChildren) { | |||
cacheMap::iterator cacheIt = cachedDescendants.find(childEntry); | |||
if (cacheIt != cachedDescendants.end()) { | |||
// We've already calculated this one, just add the entries for this set | |||
// but don't traverse again. | |||
BOOST_FOREACH(const txiter cacheEntry, cacheIt->second) { | |||
for (const txiter cacheEntry : cacheIt->second) { | |||
setAllDescendants.insert(cacheEntry); | |||
} | |||
} else if (!setAllDescendants.count(childEntry)) { | |||
@@ -92,7 +92,7 @@ void CTxMemPool::UpdateForDescendants(txiter updateIt, cacheMap &cachedDescendan | |||
int64_t modifySize = 0; | |||
CAmount modifyFee = 0; | |||
int64_t modifyCount = 0; | |||
BOOST_FOREACH(txiter cit, setAllDescendants) { | |||
for (txiter cit : setAllDescendants) { | |||
if (!setExclude.count(cit->GetTx().GetHash())) { | |||
modifySize += cit->GetTxSize(); | |||
modifyFee += cit->GetModifiedFee(); | |||
@@ -202,7 +202,7 @@ bool CTxMemPool::CalculateMemPoolAncestors(const CTxMemPoolEntry &entry, setEntr | |||
} | |||
const setEntries & setMemPoolParents = GetMemPoolParents(stageit); | |||
BOOST_FOREACH(const txiter &phash, setMemPoolParents) { | |||
for (const txiter &phash : setMemPoolParents) { | |||
// If this is a new ancestor, add it. | |||
if (setAncestors.count(phash) == 0) { | |||
parentHashes.insert(phash); | |||
@@ -221,13 +221,13 @@ void CTxMemPool::UpdateAncestorsOf(bool add, txiter it, setEntries &setAncestors | |||
{ | |||
setEntries parentIters = GetMemPoolParents(it); | |||
// add or remove this tx as a child of each parent | |||
BOOST_FOREACH(txiter piter, parentIters) { | |||
for (txiter piter : parentIters) { | |||
UpdateChild(piter, it, add); | |||
} | |||
const int64_t updateCount = (add ? 1 : -1); | |||
const int64_t updateSize = updateCount * it->GetTxSize(); | |||
const CAmount updateFee = updateCount * it->GetModifiedFee(); | |||
BOOST_FOREACH(txiter ancestorIt, setAncestors) { | |||
for (txiter ancestorIt : setAncestors) { | |||
mapTx.modify(ancestorIt, update_descendant_state(updateSize, updateFee, updateCount)); | |||
} | |||
} | |||
@@ -238,7 +238,7 @@ void CTxMemPool::UpdateEntryForAncestors(txiter it, const setEntries &setAncesto | |||
int64_t updateSize = 0; | |||
CAmount updateFee = 0; | |||
int64_t updateSigOpsCost = 0; | |||
BOOST_FOREACH(txiter ancestorIt, setAncestors) { | |||
for (txiter ancestorIt : setAncestors) { | |||
updateSize += ancestorIt->GetTxSize(); | |||
updateFee += ancestorIt->GetModifiedFee(); | |||
updateSigOpsCost += ancestorIt->GetSigOpCost(); | |||
@@ -249,7 +249,7 @@ void CTxMemPool::UpdateEntryForAncestors(txiter it, const setEntries &setAncesto | |||
void CTxMemPool::UpdateChildrenForRemoval(txiter it) | |||
{ | |||
const setEntries &setMemPoolChildren = GetMemPoolChildren(it); | |||
BOOST_FOREACH(txiter updateIt, setMemPoolChildren) { | |||
for (txiter updateIt : setMemPoolChildren) { | |||
UpdateParent(updateIt, it, false); | |||
} | |||
} | |||
@@ -266,19 +266,19 @@ void CTxMemPool::UpdateForRemoveFromMempool(const setEntries &entriesToRemove, b | |||
// Here we only update statistics and not data in mapLinks (which | |||
// we need to preserve until we're finished with all operations that | |||
// need to traverse the mempool). | |||
BOOST_FOREACH(txiter removeIt, entriesToRemove) { | |||
for (txiter removeIt : entriesToRemove) { | |||
setEntries setDescendants; | |||
CalculateDescendants(removeIt, setDescendants); | |||
setDescendants.erase(removeIt); // don't update state for self | |||
int64_t modifySize = -((int64_t)removeIt->GetTxSize()); | |||
CAmount modifyFee = -removeIt->GetModifiedFee(); | |||
int modifySigOps = -removeIt->GetSigOpCost(); | |||
BOOST_FOREACH(txiter dit, setDescendants) { | |||
for (txiter dit : setDescendants) { | |||
mapTx.modify(dit, update_ancestor_state(modifySize, modifyFee, -1, modifySigOps)); | |||
} | |||
} | |||
} | |||
BOOST_FOREACH(txiter removeIt, entriesToRemove) { | |||
for (txiter removeIt : entriesToRemove) { | |||
setEntries setAncestors; | |||
const CTxMemPoolEntry &entry = *removeIt; | |||
std::string dummy; | |||
@@ -307,7 +307,7 @@ void CTxMemPool::UpdateForRemoveFromMempool(const setEntries &entriesToRemove, b | |||
// After updating all the ancestor sizes, we can now sever the link between each | |||
// transaction being removed and any mempool children (ie, update setMemPoolParents | |||
// for each direct child of a transaction being removed). | |||
BOOST_FOREACH(txiter removeIt, entriesToRemove) { | |||
for (txiter removeIt : entriesToRemove) { | |||
UpdateChildrenForRemoval(removeIt); | |||
} | |||
} | |||
@@ -401,7 +401,7 @@ bool CTxMemPool::addUnchecked(const uint256& hash, const CTxMemPoolEntry &entry, | |||
// to clean up the mess we're leaving here. | |||
// Update ancestors with information about this tx | |||
BOOST_FOREACH (const uint256 &phash, setParentTransactions) { | |||
for (const uint256 &phash : setParentTransactions) { | |||
txiter pit = mapTx.find(phash); | |||
if (pit != mapTx.end()) { | |||
UpdateParent(newit, pit, true); | |||
@@ -424,7 +424,7 @@ void CTxMemPool::removeUnchecked(txiter it, MemPoolRemovalReason reason) | |||
{ | |||
NotifyEntryRemoved(it->GetSharedTx(), reason); | |||
const uint256 hash = it->GetTx().GetHash(); | |||
BOOST_FOREACH(const CTxIn& txin, it->GetTx().vin) | |||
for (const CTxIn& txin : it->GetTx().vin) | |||
mapNextTx.erase(txin.prevout); | |||
if (vTxHashes.size() > 1) { | |||
@@ -466,7 +466,7 @@ void CTxMemPool::CalculateDescendants(txiter entryit, setEntries &setDescendants | |||
stage.erase(it); | |||
const setEntries &setChildren = GetMemPoolChildren(it); | |||
BOOST_FOREACH(const txiter &childiter, setChildren) { | |||
for (const txiter &childiter : setChildren) { | |||
if (!setDescendants.count(childiter)) { | |||
stage.insert(childiter); | |||
} | |||
@@ -498,7 +498,7 @@ void CTxMemPool::removeRecursive(const CTransaction &origTx, MemPoolRemovalReaso | |||
} | |||
} | |||
setEntries setAllRemoves; | |||
BOOST_FOREACH(txiter it, txToRemove) { | |||
for (txiter it : txToRemove) { | |||
CalculateDescendants(it, setAllRemoves); | |||
} | |||
@@ -520,7 +520,7 @@ void CTxMemPool::removeForReorg(const CCoinsViewCache *pcoins, unsigned int nMem | |||
// So it's critical that we remove the tx and not depend on the LockPoints. | |||
txToRemove.insert(it); | |||
} else if (it->GetSpendsCoinbase()) { | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) { | |||
for (const CTxIn& txin : tx.vin) { | |||
indexed_transaction_set::const_iterator it2 = mapTx.find(txin.prevout.hash); | |||
if (it2 != mapTx.end()) | |||
continue; | |||
@@ -547,7 +547,7 @@ void CTxMemPool::removeConflicts(const CTransaction &tx) | |||
{ | |||
// Remove transactions which depend on inputs of tx, recursively | |||
LOCK(cs); | |||
BOOST_FOREACH(const CTxIn &txin, tx.vin) { | |||
for (const CTxIn &txin : tx.vin) { | |||
auto it = mapNextTx.find(txin.prevout); | |||
if (it != mapNextTx.end()) { | |||
const CTransaction &txConflict = *it->second; | |||
@@ -642,7 +642,7 @@ void CTxMemPool::check(const CCoinsViewCache *pcoins) const | |||
setEntries setParentCheck; | |||
int64_t parentSizes = 0; | |||
int64_t parentSigOpCost = 0; | |||
BOOST_FOREACH(const CTxIn &txin, tx.vin) { | |||
for (const CTxIn &txin : tx.vin) { | |||
// Check that every mempool transaction's inputs refer to available coins, or other mempool tx's. | |||
indexed_transaction_set::const_iterator it2 = mapTx.find(txin.prevout.hash); | |||
if (it2 != mapTx.end()) { | |||
@@ -674,7 +674,7 @@ void CTxMemPool::check(const CCoinsViewCache *pcoins) const | |||
CAmount nFeesCheck = it->GetModifiedFee(); | |||
int64_t nSigOpCheck = it->GetSigOpCost(); | |||
BOOST_FOREACH(txiter ancestorIt, setAncestors) { | |||
for (txiter ancestorIt : setAncestors) { | |||
nSizeCheck += ancestorIt->GetTxSize(); | |||
nFeesCheck += ancestorIt->GetModifiedFee(); | |||
nSigOpCheck += ancestorIt->GetSigOpCost(); | |||
@@ -848,14 +848,14 @@ void CTxMemPool::PrioritiseTransaction(const uint256& hash, const CAmount& nFeeD | |||
uint64_t nNoLimit = std::numeric_limits<uint64_t>::max(); | |||
std::string dummy; | |||
CalculateMemPoolAncestors(*it, setAncestors, nNoLimit, nNoLimit, nNoLimit, nNoLimit, dummy, false); | |||
BOOST_FOREACH(txiter ancestorIt, setAncestors) { | |||
for (txiter ancestorIt : setAncestors) { | |||
mapTx.modify(ancestorIt, update_descendant_state(0, nFeeDelta, 0)); | |||
} | |||
// Now update all descendants' modified fees with ancestors | |||
setEntries setDescendants; | |||
CalculateDescendants(it, setDescendants); | |||
setDescendants.erase(it); | |||
BOOST_FOREACH(txiter descendantIt, setDescendants) { | |||
for (txiter descendantIt : setDescendants) { | |||
mapTx.modify(descendantIt, update_ancestor_state(0, nFeeDelta, 0, 0)); | |||
} | |||
++nTransactionsUpdated; | |||
@@ -919,7 +919,7 @@ size_t CTxMemPool::DynamicMemoryUsage() const { | |||
void CTxMemPool::RemoveStaged(setEntries &stage, bool updateDescendants, MemPoolRemovalReason reason) { | |||
AssertLockHeld(cs); | |||
UpdateForRemoveFromMempool(stage, updateDescendants); | |||
BOOST_FOREACH(const txiter& it, stage) { | |||
for (const txiter& it : stage) { | |||
removeUnchecked(it, reason); | |||
} | |||
} | |||
@@ -933,7 +933,7 @@ int CTxMemPool::Expire(int64_t time) { | |||
it++; | |||
} | |||
setEntries stage; | |||
BOOST_FOREACH(txiter removeit, toremove) { | |||
for (txiter removeit : toremove) { | |||
CalculateDescendants(removeit, stage); | |||
} | |||
RemoveStaged(stage, false, MemPoolRemovalReason::EXPIRY); | |||
@@ -1042,13 +1042,13 @@ void CTxMemPool::TrimToSize(size_t sizelimit, std::vector<COutPoint>* pvNoSpends | |||
std::vector<CTransaction> txn; | |||
if (pvNoSpendsRemaining) { | |||
txn.reserve(stage.size()); | |||
BOOST_FOREACH(txiter iter, stage) | |||
for (txiter iter : stage) | |||
txn.push_back(iter->GetTx()); | |||
} | |||
RemoveStaged(stage, false, MemPoolRemovalReason::SIZELIMIT); | |||
if (pvNoSpendsRemaining) { | |||
BOOST_FOREACH(const CTransaction& tx, txn) { | |||
BOOST_FOREACH(const CTxIn& txin, tx.vin) { | |||
for (const CTransaction& tx : txn) { | |||
for (const CTxIn& txin : tx.vin) { | |||
if (exists(txin.prevout.hash)) continue; | |||
if (!mapNextTx.count(txin.prevout)) { | |||
pvNoSpendsRemaining->push_back(txin.prevout); |
@@ -160,7 +160,7 @@ namespace { | |||
CBlockIndex* FindForkInGlobalIndex(const CChain& chain, const CBlockLocator& locator) | |||
{ | |||
// Find the first block the caller has in the main chain | |||
BOOST_FOREACH(const uint256& hash, locator.vHave) { | |||
for (const uint256& hash : locator.vHave) { | |||
BlockMap::iterator mi = mapBlockIndex.find(hash); | |||
if (mi != mapBlockIndex.end()) | |||
{ | |||
@@ -297,7 +297,7 @@ bool CheckSequenceLocks(const CTransaction &tx, int flags, LockPoints* lp, bool | |||
// lock on a mempool input, so we can use the return value of | |||
// CheckSequenceLocks to indicate the LockPoints validity | |||
int maxInputHeight = 0; | |||
BOOST_FOREACH(int height, prevheights) { | |||
for (int height : prevheights) { | |||
// Can ignore mempool inputs since we'll fail if they had non-zero locks | |||
if (height != tip->nHeight+1) { | |||
maxInputHeight = std::max(maxInputHeight, height); | |||
@@ -317,7 +317,7 @@ void LimitMempoolSize(CTxMemPool& pool, size_t limit, unsigned long age) { | |||
std::vector<COutPoint> vNoSpendsRemaining; | |||
pool.TrimToSize(limit, &vNoSpendsRemaining); | |||
BOOST_FOREACH(const COutPoint& removed, vNoSpendsRemaining) | |||
for (const COutPoint& removed : vNoSpendsRemaining) | |||
pcoinsTip->Uncache(removed); | |||
} | |||
@@ -434,7 +434,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
std::set<uint256> setConflicts; | |||
{ | |||
LOCK(pool.cs); // protect pool.mapNextTx | |||
BOOST_FOREACH(const CTxIn &txin, tx.vin) | |||
for (const CTxIn &txin : tx.vin) | |||
{ | |||
auto itConflicting = pool.mapNextTx.find(txin.prevout); | |||
if (itConflicting != pool.mapNextTx.end()) | |||
@@ -457,7 +457,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
bool fReplacementOptOut = true; | |||
if (fEnableReplacement) | |||
{ | |||
BOOST_FOREACH(const CTxIn &_txin, ptxConflicting->vin) | |||
for (const CTxIn &_txin : ptxConflicting->vin) | |||
{ | |||
if (_txin.nSequence < std::numeric_limits<unsigned int>::max()-1) | |||
{ | |||
@@ -499,7 +499,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
} | |||
// do all inputs exist? | |||
BOOST_FOREACH(const CTxIn txin, tx.vin) { | |||
for (const CTxIn txin : tx.vin) { | |||
if (!pcoinsTip->HaveCoinInCache(txin.prevout)) { | |||
coins_to_uncache.push_back(txin.prevout); | |||
} | |||
@@ -547,7 +547,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
// Keep track of transactions that spend a coinbase, which we re-scan | |||
// during reorgs to ensure COINBASE_MATURITY is still met. | |||
bool fSpendsCoinbase = false; | |||
BOOST_FOREACH(const CTxIn &txin, tx.vin) { | |||
for (const CTxIn &txin : tx.vin) { | |||
const Coin &coin = view.AccessCoin(txin.prevout); | |||
if (coin.IsCoinBase()) { | |||
fSpendsCoinbase = true; | |||
@@ -598,7 +598,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
// that we have the set of all ancestors we can detect this | |||
// pathological case by making sure setConflicts and setAncestors don't | |||
// intersect. | |||
BOOST_FOREACH(CTxMemPool::txiter ancestorIt, setAncestors) | |||
for (CTxMemPool::txiter ancestorIt : setAncestors) | |||
{ | |||
const uint256 &hashAncestor = ancestorIt->GetTx().GetHash(); | |||
if (setConflicts.count(hashAncestor)) | |||
@@ -629,7 +629,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
std::set<uint256> setConflictsParents; | |||
const int maxDescendantsToVisit = 100; | |||
CTxMemPool::setEntries setIterConflicting; | |||
BOOST_FOREACH(const uint256 &hashConflicting, setConflicts) | |||
for (const uint256 &hashConflicting : setConflicts) | |||
{ | |||
CTxMemPool::txiter mi = pool.mapTx.find(hashConflicting); | |||
if (mi == pool.mapTx.end()) | |||
@@ -665,7 +665,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
oldFeeRate.ToString())); | |||
} | |||
BOOST_FOREACH(const CTxIn &txin, mi->GetTx().vin) | |||
for (const CTxIn &txin : mi->GetTx().vin) | |||
{ | |||
setConflictsParents.insert(txin.prevout.hash); | |||
} | |||
@@ -678,10 +678,10 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
if (nConflictingCount <= maxDescendantsToVisit) { | |||
// If not too many to replace, then calculate the set of | |||
// transactions that would have to be evicted | |||
BOOST_FOREACH(CTxMemPool::txiter it, setIterConflicting) { | |||
for (CTxMemPool::txiter it : setIterConflicting) { | |||
pool.CalculateDescendants(it, allConflicting); | |||
} | |||
BOOST_FOREACH(CTxMemPool::txiter it, allConflicting) { | |||
for (CTxMemPool::txiter it : allConflicting) { | |||
nConflictingFees += it->GetModifiedFee(); | |||
nConflictingSize += it->GetTxSize(); | |||
} | |||
@@ -775,7 +775,7 @@ bool AcceptToMemoryPoolWorker(CTxMemPool& pool, CValidationState& state, const C | |||
} | |||
// Remove conflicting transactions from the mempool | |||
BOOST_FOREACH(const CTxMemPool::txiter it, allConflicting) | |||
for (const CTxMemPool::txiter it : allConflicting) | |||
{ | |||
LogPrint(BCLog::MEMPOOL, "replacing tx %s with %s for %s BTC additional fees, %d delta bytes\n", | |||
it->GetTx().GetHash().ToString(), | |||
@@ -816,7 +816,7 @@ bool AcceptToMemoryPoolWithTime(CTxMemPool& pool, CValidationState &state, const | |||
std::vector<COutPoint> coins_to_uncache; | |||
bool res = AcceptToMemoryPoolWorker(pool, state, tx, fLimitFree, pfMissingInputs, nAcceptTime, plTxnReplaced, fOverrideMempoolLimit, nAbsurdFee, coins_to_uncache); | |||
if (!res) { | |||
BOOST_FOREACH(const COutPoint& hashTx, coins_to_uncache) | |||
for (const COutPoint& hashTx : coins_to_uncache) | |||
pcoinsTip->Uncache(hashTx); | |||
} | |||
// After we've (potentially) uncached entries, ensure our coins cache is still within its size limits | |||
@@ -1116,7 +1116,7 @@ void UpdateCoins(const CTransaction& tx, CCoinsViewCache& inputs, CTxUndo &txund | |||
// mark inputs spent | |||
if (!tx.IsCoinBase()) { | |||
txundo.vprevout.reserve(tx.vin.size()); | |||
BOOST_FOREACH(const CTxIn &txin, tx.vin) { | |||
for (const CTxIn &txin : tx.vin) { | |||
txundo.vprevout.emplace_back(); | |||
inputs.SpendCoin(txin.prevout, &txundo.vprevout.back()); | |||
} | |||
@@ -3097,7 +3097,7 @@ bool TestBlockValidity(CValidationState& state, const CChainParams& chainparams, | |||
uint64_t CalculateCurrentUsage() | |||
{ | |||
uint64_t retval = 0; | |||
BOOST_FOREACH(const CBlockFileInfo &file, vinfoBlockFile) { | |||
for (const CBlockFileInfo &file : vinfoBlockFile) { | |||
retval += file.nSize + file.nUndoSize; | |||
} | |||
return retval; | |||
@@ -3300,13 +3300,13 @@ bool static LoadBlockIndexDB(const CChainParams& chainparams) | |||
// Calculate nChainWork | |||
std::vector<std::pair<int, CBlockIndex*> > vSortedByHeight; | |||
vSortedByHeight.reserve(mapBlockIndex.size()); | |||
BOOST_FOREACH(const PAIRTYPE(uint256, CBlockIndex*)& item, mapBlockIndex) | |||
for (const PAIRTYPE(uint256, CBlockIndex*)& item : mapBlockIndex) | |||
{ | |||
CBlockIndex* pindex = item.second; | |||
vSortedByHeight.push_back(std::make_pair(pindex->nHeight, pindex)); | |||
} | |||
sort(vSortedByHeight.begin(), vSortedByHeight.end()); | |||
BOOST_FOREACH(const PAIRTYPE(int, CBlockIndex*)& item, vSortedByHeight) | |||
for (const PAIRTYPE(int, CBlockIndex*)& item : vSortedByHeight) | |||
{ | |||
CBlockIndex* pindex = item.second; | |||
pindex->nChainWork = (pindex->pprev ? pindex->pprev->nChainWork : 0) + GetBlockProof(*pindex); | |||
@@ -3355,7 +3355,7 @@ bool static LoadBlockIndexDB(const CChainParams& chainparams) | |||
// Check presence of blk files | |||
LogPrintf("Checking all blk files are present...\n"); | |||
std::set<int> setBlkDataFiles; | |||
BOOST_FOREACH(const PAIRTYPE(uint256, CBlockIndex*)& item, mapBlockIndex) | |||
for (const PAIRTYPE(uint256, CBlockIndex*)& item : mapBlockIndex) | |||
{ | |||
CBlockIndex* pindex = item.second; | |||
if (pindex->nStatus & BLOCK_HAVE_DATA) { | |||
@@ -3611,7 +3611,7 @@ void UnloadBlockIndex() | |||
warningcache[b].clear(); | |||
} | |||
BOOST_FOREACH(BlockMap::value_type& entry, mapBlockIndex) { | |||
for (BlockMap::value_type& entry : mapBlockIndex) { | |||
delete entry.second; | |||
} | |||
mapBlockIndex.clear(); |
@@ -285,7 +285,7 @@ bool CCryptoKeyStore::EncryptKeys(CKeyingMaterial& vMasterKeyIn) | |||
return false; | |||
fUseCrypto = true; | |||
BOOST_FOREACH(KeyMap::value_type& mKey, mapKeys) | |||
for (KeyMap::value_type& mKey : mapKeys) | |||
{ | |||
const CKey &key = mKey.second; | |||
CPubKey vchPubKey = key.GetPubKey(); |
@@ -205,7 +205,7 @@ bool CDB::Recover(const std::string& filename, void *callbackDataIn, bool (*reco | |||
} | |||
DbTxn* ptxn = bitdb.TxnBegin(); | |||
BOOST_FOREACH(CDBEnv::KeyValPair& row, salvagedData) | |||
for (CDBEnv::KeyValPair& row : salvagedData) | |||
{ | |||
if (recoverKVcallback) | |||
{ |
@@ -48,7 +48,7 @@ int64_t static DecodeDumpTime(const std::string &str) { | |||
std::string static EncodeDumpString(const std::string &str) { | |||
std::stringstream ret; | |||
BOOST_FOREACH(unsigned char c, str) { | |||
for (unsigned char c : str) { | |||
if (c <= 32 || c >= 128 || c == '%') { | |||
ret << '%' << HexStr(&c, &c + 1); | |||
} else { | |||
@@ -1106,7 +1106,7 @@ UniValue importmulti(const JSONRPCRequest& mainRequest) | |||
UniValue response(UniValue::VARR); | |||
BOOST_FOREACH (const UniValue& data, requests.getValues()) { | |||
for (const UniValue& data : requests.getValues()) { | |||
const int64_t timestamp = std::max(GetImportTimestamp(data, now), minimumTimestamp); | |||
const UniValue result = ProcessImport(pwallet, data, timestamp); | |||
response.push_back(result); |
@@ -78,7 +78,7 @@ void WalletTxToJSON(const CWalletTx& wtx, UniValue& entry) | |||
uint256 hash = wtx.GetHash(); | |||
entry.push_back(Pair("txid", hash.GetHex())); | |||
UniValue conflicts(UniValue::VARR); | |||
BOOST_FOREACH(const uint256& conflict, wtx.GetConflicts()) | |||
for (const uint256& conflict : wtx.GetConflicts()) | |||
conflicts.push_back(conflict.GetHex()); | |||
entry.push_back(Pair("walletconflicts", conflicts)); | |||
entry.push_back(Pair("time", wtx.GetTxTime())); | |||
@@ -96,7 +96,7 @@ void WalletTxToJSON(const CWalletTx& wtx, UniValue& entry) | |||
} | |||
entry.push_back(Pair("bip125-replaceable", rbfStatus)); | |||
BOOST_FOREACH(const PAIRTYPE(std::string, std::string)& item, wtx.mapValue) | |||
for (const PAIRTYPE(std::string, std::string)& item : wtx.mapValue) | |||
entry.push_back(Pair(item.first, item.second)); | |||
} | |||
@@ -490,7 +490,7 @@ UniValue listaddressgroupings(const JSONRPCRequest& request) | |||
std::map<CTxDestination, CAmount> balances = pwallet->GetAddressBalances(); | |||
for (std::set<CTxDestination> grouping : pwallet->GetAddressGroupings()) { | |||
UniValue jsonGrouping(UniValue::VARR); | |||
BOOST_FOREACH(CTxDestination address, grouping) | |||
for (CTxDestination address : grouping) | |||
{ | |||
UniValue addressInfo(UniValue::VARR); | |||
addressInfo.push_back(CBitcoinAddress(address).ToString()); | |||
@@ -616,7 +616,7 @@ UniValue getreceivedbyaddress(const JSONRPCRequest& request) | |||
if (wtx.IsCoinBase() || !CheckFinalTx(*wtx.tx)) | |||
continue; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
if (txout.scriptPubKey == scriptPubKey) | |||
if (wtx.GetDepthInMainChain() >= nMinDepth) | |||
nAmount += txout.nValue; | |||
@@ -671,7 +671,7 @@ UniValue getreceivedbyaccount(const JSONRPCRequest& request) | |||
if (wtx.IsCoinBase() || !CheckFinalTx(*wtx.tx)) | |||
continue; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
{ | |||
CTxDestination address; | |||
if (ExtractDestination(txout.scriptPubKey, address) && IsMine(*pwallet, address) && setAddress.count(address)) { | |||
@@ -950,7 +950,7 @@ UniValue sendmany(const JSONRPCRequest& request) | |||
CAmount totalAmount = 0; | |||
std::vector<std::string> keys = sendTo.getKeys(); | |||
BOOST_FOREACH(const std::string& name_, keys) | |||
for (const std::string& name_ : keys) | |||
{ | |||
CBitcoinAddress address(name_); | |||
if (!address.IsValid()) | |||
@@ -1191,7 +1191,7 @@ UniValue ListReceived(CWallet * const pwallet, const UniValue& params, bool fByA | |||
if (nDepth < nMinDepth) | |||
continue; | |||
BOOST_FOREACH(const CTxOut& txout, wtx.tx->vout) | |||
for (const CTxOut& txout : wtx.tx->vout) | |||
{ | |||
CTxDestination address; | |||
if (!ExtractDestination(txout.scriptPubKey, address)) | |||
@@ -1251,7 +1251,7 @@ UniValue ListReceived(CWallet * const pwallet, const UniValue& params, bool fByA | |||
UniValue transactions(UniValue::VARR); | |||
if (it != mapTally.end()) | |||
{ | |||
BOOST_FOREACH(const uint256& _item, (*it).second.txids) | |||
for (const uint256& _item : (*it).second.txids) | |||
{ | |||
transactions.push_back(_item.GetHex()); | |||
} | |||
@@ -1385,7 +1385,7 @@ void ListTransactions(CWallet* const pwallet, const CWalletTx& wtx, const std::s | |||
// Sent | |||
if ((!listSent.empty() || nFee != 0) && (fAllAccounts || strAccount == strSentAccount)) | |||
{ | |||
BOOST_FOREACH(const COutputEntry& s, listSent) | |||
for (const COutputEntry& s : listSent) | |||
{ | |||
UniValue entry(UniValue::VOBJ); | |||
if (involvesWatchonly || (::IsMine(*pwallet, s.destination) & ISMINE_WATCH_ONLY)) { | |||
@@ -1410,7 +1410,7 @@ void ListTransactions(CWallet* const pwallet, const CWalletTx& wtx, const std::s | |||
// Received | |||
if (listReceived.size() > 0 && wtx.GetDepthInMainChain() >= nMinDepth) | |||
{ | |||
BOOST_FOREACH(const COutputEntry& r, listReceived) | |||
for (const COutputEntry& r : listReceived) | |||
{ | |||
std::string account; | |||
if (pwallet->mapAddressBook.count(r.destination)) { | |||
@@ -1655,11 +1655,11 @@ UniValue listaccounts(const JSONRPCRequest& request) | |||
continue; | |||
wtx.GetAmounts(listReceived, listSent, nFee, strSentAccount, includeWatchonly); | |||
mapAccountBalances[strSentAccount] -= nFee; | |||
BOOST_FOREACH(const COutputEntry& s, listSent) | |||
for (const COutputEntry& s : listSent) | |||
mapAccountBalances[strSentAccount] -= s.amount; | |||
if (nDepth >= nMinDepth) | |||
{ | |||
BOOST_FOREACH(const COutputEntry& r, listReceived) | |||
for (const COutputEntry& r : listReceived) | |||
if (pwallet->mapAddressBook.count(r.destination)) { | |||
mapAccountBalances[pwallet->mapAddressBook[r.destination].name] += r.amount; | |||
} | |||
@@ -1669,11 +1669,11 @@ UniValue listaccounts(const JSONRPCRequest& request) | |||
} | |||
const std::list<CAccountingEntry>& acentries = pwallet->laccentries; | |||
BOOST_FOREACH(const CAccountingEntry& entry, acentries) | |||
for (const CAccountingEntry& entry : acentries) | |||
mapAccountBalances[entry.strAccount] += entry.nCreditDebit; | |||
UniValue ret(UniValue::VOBJ); | |||
BOOST_FOREACH(const PAIRTYPE(std::string, CAmount)& accountBalance, mapAccountBalances) { | |||
for (const PAIRTYPE(std::string, CAmount)& accountBalance : mapAccountBalances) { | |||
ret.push_back(Pair(accountBalance.first, ValueFromAmount(accountBalance.second))); | |||
} | |||
return ret; | |||
@@ -2338,7 +2338,7 @@ UniValue listlockunspent(const JSONRPCRequest& request) | |||
UniValue ret(UniValue::VARR); | |||
BOOST_FOREACH(COutPoint &outpt, vOutpts) { | |||
for (COutPoint &outpt : vOutpts) { | |||
UniValue o(UniValue::VOBJ); | |||
o.push_back(Pair("txid", outpt.hash.GetHex())); | |||
@@ -2456,7 +2456,7 @@ UniValue resendwallettransactions(const JSONRPCRequest& request) | |||
std::vector<uint256> txids = pwallet->ResendWalletTransactionsBefore(GetTime(), g_connman.get()); | |||
UniValue result(UniValue::VARR); | |||
BOOST_FOREACH(const uint256& txid, txids) | |||
for (const uint256& txid : txids) | |||
{ | |||
result.push_back(txid.ToString()); | |||
} | |||
@@ -2581,7 +2581,7 @@ UniValue listunspent(const JSONRPCRequest& request) | |||
LOCK2(cs_main, pwallet->cs_wallet); | |||
pwallet->AvailableCoins(vecOutputs, !include_unsafe, NULL, nMinimumAmount, nMaximumAmount, nMinimumSumAmount, nMaximumCount, nMinDepth, nMaxDepth); | |||
BOOST_FOREACH(const COutput& out, vecOutputs) { | |||
for (const COutput& out : vecOutputs) { | |||
CTxDestination address; | |||
const CScript& scriptPubKey = out.tx->tx->vout[out.i].scriptPubKey; | |||
bool fValidAddress = ExtractDestination(scriptPubKey, address); |
@@ -23,7 +23,7 @@ GetResults(std::map<CAmount, CAccountingEntry>& results) | |||
results.clear(); | |||
BOOST_CHECK(pwalletMain->ReorderTransactions() == DB_LOAD_OK); | |||
pwalletMain->ListAccountCreditDebit("", aes); | |||
BOOST_FOREACH(CAccountingEntry& ae, aes) | |||
for (CAccountingEntry& ae : aes) | |||
{ | |||
results[ae.nOrderPos] = ae; | |||
} |
@@ -297,7 +297,7 @@ bool CWallet::Unlock(const SecureString& strWalletPassphrase) | |||
{ | |||
LOCK(cs_wallet); | |||
BOOST_FOREACH(const MasterKeyMap::value_type& pMasterKey, mapMasterKeys) | |||
for (const MasterKeyMap::value_type& pMasterKey : mapMasterKeys) | |||
{ | |||
if(!crypter.SetKeyFromPassphrase(strWalletPassphrase, pMasterKey.second.vchSalt, pMasterKey.second.nDeriveIterations, pMasterKey.second.nDerivationMethod)) | |||
return false; | |||
@@ -320,7 +320,7 @@ bool CWallet::ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase, | |||
CCrypter crypter; | |||
CKeyingMaterial _vMasterKey; | |||
BOOST_FOREACH(MasterKeyMap::value_type& pMasterKey, mapMasterKeys) | |||
for (MasterKeyMap::value_type& pMasterKey : mapMasterKeys) | |||
{ | |||
if(!crypter.SetKeyFromPassphrase(strOldWalletPassphrase, pMasterKey.second.vchSalt, pMasterKey.second.nDeriveIterations, pMasterKey.second.nDerivationMethod)) | |||
return false; | |||
@@ -412,7 +412,7 @@ std::set<uint256> CWallet::GetConflicts(const uint256& txid) const | |||
std::pair<TxSpends::const_iterator, TxSpends::const_iterator> range; | |||
BOOST_FOREACH(const CTxIn& txin, wtx.tx-> |