mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
scripted-diff: replace chainActive -> ::ChainActive()
Though at the moment ChainActive() simply references `g_chainstate.m_chain`,
doing this change now clears the way for multiple chainstate usage and allows
us to script the diff.
-BEGIN VERIFY SCRIPT-
git grep -l "chainActive" | grep -E '(h|cpp)$' | xargs sed -i '/chainActive =/b; /extern CChain& chainActive/b; s/\(::\)\{0,1\}chainActive/::ChainActive()/g'
-END VERIFY SCRIPT-
This commit is contained in:
@@ -182,7 +182,7 @@ static UniValue getblockcount(const JSONRPCRequest& request)
|
||||
}.ToString());
|
||||
|
||||
LOCK(cs_main);
|
||||
return chainActive.Height();
|
||||
return ::ChainActive().Height();
|
||||
}
|
||||
|
||||
static UniValue getbestblockhash(const JSONRPCRequest& request)
|
||||
@@ -202,7 +202,7 @@ static UniValue getbestblockhash(const JSONRPCRequest& request)
|
||||
}.ToString());
|
||||
|
||||
LOCK(cs_main);
|
||||
return chainActive.Tip()->GetBlockHash().GetHex();
|
||||
return ::ChainActive().Tip()->GetBlockHash().GetHex();
|
||||
}
|
||||
|
||||
void RPCNotifyBlockChange(bool ibd, const CBlockIndex * pindex)
|
||||
@@ -381,7 +381,7 @@ static UniValue getdifficulty(const JSONRPCRequest& request)
|
||||
}.ToString());
|
||||
|
||||
LOCK(cs_main);
|
||||
return GetDifficulty(chainActive.Tip());
|
||||
return GetDifficulty(::ChainActive().Tip());
|
||||
}
|
||||
|
||||
static std::string EntryDescriptionString()
|
||||
@@ -732,10 +732,10 @@ static UniValue getblockhash(const JSONRPCRequest& request)
|
||||
LOCK(cs_main);
|
||||
|
||||
int nHeight = request.params[0].get_int();
|
||||
if (nHeight < 0 || nHeight > chainActive.Height())
|
||||
if (nHeight < 0 || nHeight > ::ChainActive().Height())
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Block height out of range");
|
||||
|
||||
CBlockIndex* pblockindex = chainActive[nHeight];
|
||||
CBlockIndex* pblockindex = ::ChainActive()[nHeight];
|
||||
return pblockindex->GetBlockHash().GetHex();
|
||||
}
|
||||
|
||||
@@ -791,7 +791,7 @@ static UniValue getblockheader(const JSONRPCRequest& request)
|
||||
{
|
||||
LOCK(cs_main);
|
||||
pblockindex = LookupBlockIndex(hash);
|
||||
tip = chainActive.Tip();
|
||||
tip = ::ChainActive().Tip();
|
||||
}
|
||||
|
||||
if (!pblockindex) {
|
||||
@@ -904,7 +904,7 @@ static UniValue getblock(const JSONRPCRequest& request)
|
||||
{
|
||||
LOCK(cs_main);
|
||||
pblockindex = LookupBlockIndex(hash);
|
||||
tip = chainActive.Tip();
|
||||
tip = ::ChainActive().Tip();
|
||||
|
||||
if (!pblockindex) {
|
||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Block not found");
|
||||
@@ -1026,7 +1026,7 @@ static UniValue pruneblockchain(const JSONRPCRequest& request)
|
||||
// too low to be a block time (corresponds to timestamp from Sep 2001).
|
||||
if (heightParam > 1000000000) {
|
||||
// Add a 2 hour buffer to include blocks which might have had old timestamps
|
||||
CBlockIndex* pindex = chainActive.FindEarliestAtLeast(heightParam - TIMESTAMP_WINDOW, 0);
|
||||
CBlockIndex* pindex = ::ChainActive().FindEarliestAtLeast(heightParam - TIMESTAMP_WINDOW, 0);
|
||||
if (!pindex) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Could not find block with at least the specified timestamp.");
|
||||
}
|
||||
@@ -1034,7 +1034,7 @@ static UniValue pruneblockchain(const JSONRPCRequest& request)
|
||||
}
|
||||
|
||||
unsigned int height = (unsigned int) heightParam;
|
||||
unsigned int chainHeight = (unsigned int) chainActive.Height();
|
||||
unsigned int chainHeight = (unsigned int) ::ChainActive().Height();
|
||||
if (chainHeight < Params().PruneAfterHeight())
|
||||
throw JSONRPCError(RPC_MISC_ERROR, "Blockchain is too short for pruning.");
|
||||
else if (height > chainHeight)
|
||||
@@ -1333,10 +1333,10 @@ UniValue getblockchaininfo(const JSONRPCRequest& request)
|
||||
|
||||
LOCK(cs_main);
|
||||
|
||||
const CBlockIndex* tip = chainActive.Tip();
|
||||
const CBlockIndex* tip = ::ChainActive().Tip();
|
||||
UniValue obj(UniValue::VOBJ);
|
||||
obj.pushKV("chain", Params().NetworkIDString());
|
||||
obj.pushKV("blocks", (int)chainActive.Height());
|
||||
obj.pushKV("blocks", (int)::ChainActive().Height());
|
||||
obj.pushKV("headers", pindexBestHeader ? pindexBestHeader->nHeight : -1);
|
||||
obj.pushKV("bestblockhash", tip->GetBlockHash().GetHex());
|
||||
obj.pushKV("difficulty", (double)GetDifficulty(tip));
|
||||
@@ -1433,11 +1433,11 @@ static UniValue getchaintips(const JSONRPCRequest& request)
|
||||
LOCK(cs_main);
|
||||
|
||||
/*
|
||||
* Idea: the set of chain tips is chainActive.tip, plus orphan blocks which do not have another orphan building off of them.
|
||||
* Idea: the set of chain tips is ::ChainActive().tip, plus orphan blocks which do not have another orphan building off of them.
|
||||
* Algorithm:
|
||||
* - Make one pass through mapBlockIndex, picking out the orphan blocks, and also storing a set of the orphan block's pprev pointers.
|
||||
* - Iterate through the orphan blocks. If the block isn't pointed to by another orphan, it is a chain tip.
|
||||
* - add chainActive.Tip()
|
||||
* - add ::ChainActive().Tip()
|
||||
*/
|
||||
std::set<const CBlockIndex*, CompareBlocksByHeight> setTips;
|
||||
std::set<const CBlockIndex*> setOrphans;
|
||||
@@ -1445,7 +1445,7 @@ static UniValue getchaintips(const JSONRPCRequest& request)
|
||||
|
||||
for (const std::pair<const uint256, CBlockIndex*>& item : mapBlockIndex)
|
||||
{
|
||||
if (!chainActive.Contains(item.second)) {
|
||||
if (!::ChainActive().Contains(item.second)) {
|
||||
setOrphans.insert(item.second);
|
||||
setPrevs.insert(item.second->pprev);
|
||||
}
|
||||
@@ -1459,7 +1459,7 @@ static UniValue getchaintips(const JSONRPCRequest& request)
|
||||
}
|
||||
|
||||
// Always report the currently active tip.
|
||||
setTips.insert(chainActive.Tip());
|
||||
setTips.insert(::ChainActive().Tip());
|
||||
|
||||
/* Construct the output array. */
|
||||
UniValue res(UniValue::VARR);
|
||||
@@ -1469,11 +1469,11 @@ static UniValue getchaintips(const JSONRPCRequest& request)
|
||||
obj.pushKV("height", block->nHeight);
|
||||
obj.pushKV("hash", block->phashBlock->GetHex());
|
||||
|
||||
const int branchLen = block->nHeight - chainActive.FindFork(block)->nHeight;
|
||||
const int branchLen = block->nHeight - ::ChainActive().FindFork(block)->nHeight;
|
||||
obj.pushKV("branchlen", branchLen);
|
||||
|
||||
std::string status;
|
||||
if (chainActive.Contains(block)) {
|
||||
if (::ChainActive().Contains(block)) {
|
||||
// This block is part of the currently active chain.
|
||||
status = "active";
|
||||
} else if (block->nStatus & BLOCK_FAILED_MASK) {
|
||||
@@ -1694,7 +1694,7 @@ static UniValue getchaintxstats(const JSONRPCRequest& request)
|
||||
|
||||
if (request.params[1].isNull()) {
|
||||
LOCK(cs_main);
|
||||
pindex = chainActive.Tip();
|
||||
pindex = ::ChainActive().Tip();
|
||||
} else {
|
||||
uint256 hash(ParseHashV(request.params[1], "blockhash"));
|
||||
LOCK(cs_main);
|
||||
@@ -1702,7 +1702,7 @@ static UniValue getchaintxstats(const JSONRPCRequest& request)
|
||||
if (!pindex) {
|
||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Block not found");
|
||||
}
|
||||
if (!chainActive.Contains(pindex)) {
|
||||
if (!::ChainActive().Contains(pindex)) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Block is not in main chain");
|
||||
}
|
||||
}
|
||||
@@ -1863,7 +1863,7 @@ static UniValue getblockstats(const JSONRPCRequest& request)
|
||||
CBlockIndex* pindex;
|
||||
if (request.params[0].isNum()) {
|
||||
const int height = request.params[0].get_int();
|
||||
const int current_tip = chainActive.Height();
|
||||
const int current_tip = ::ChainActive().Height();
|
||||
if (height < 0) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Target block height %d is negative", height));
|
||||
}
|
||||
@@ -1871,14 +1871,14 @@ static UniValue getblockstats(const JSONRPCRequest& request)
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Target block height %d after current tip %d", height, current_tip));
|
||||
}
|
||||
|
||||
pindex = chainActive[height];
|
||||
pindex = ::ChainActive()[height];
|
||||
} else {
|
||||
const uint256 hash(ParseHashV(request.params[0], "hash_or_height"));
|
||||
pindex = LookupBlockIndex(hash);
|
||||
if (!pindex) {
|
||||
throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Block not found");
|
||||
}
|
||||
if (!chainActive.Contains(pindex)) {
|
||||
if (!::ChainActive().Contains(pindex)) {
|
||||
throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Block is not in chain %s", Params().NetworkIDString()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user