Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/blockchain.cpp
Show First 20 Lines • Show All 1,212 Lines • ▼ Show 20 Lines | if (request.fHelp || request.params.size() != 0) { | ||||
HelpExampleRpc("gettxoutsetinfo", "")}, | HelpExampleRpc("gettxoutsetinfo", "")}, | ||||
} | } | ||||
.ToString()); | .ToString()); | ||||
} | } | ||||
UniValue ret(UniValue::VOBJ); | UniValue ret(UniValue::VOBJ); | ||||
CCoinsStats stats; | CCoinsStats stats; | ||||
FlushStateToDisk(); | ::ChainstateActive().ForceFlushStateToDisk(); | ||||
if (GetUTXOStats(pcoinsdbview.get(), stats)) { | if (GetUTXOStats(pcoinsdbview.get(), stats)) { | ||||
ret.pushKV("height", int64_t(stats.nHeight)); | ret.pushKV("height", int64_t(stats.nHeight)); | ||||
ret.pushKV("bestblock", stats.hashBlock.GetHex()); | ret.pushKV("bestblock", stats.hashBlock.GetHex()); | ||||
ret.pushKV("transactions", int64_t(stats.nTransactions)); | ret.pushKV("transactions", int64_t(stats.nTransactions)); | ||||
ret.pushKV("txouts", int64_t(stats.nTransactionOutputs)); | ret.pushKV("txouts", int64_t(stats.nTransactionOutputs)); | ||||
ret.pushKV("bogosize", int64_t(stats.nBogoSize)); | ret.pushKV("bogosize", int64_t(stats.nBogoSize)); | ||||
ret.pushKV("hash_serialized", stats.hashSerialized.GetHex()); | ret.pushKV("hash_serialized", stats.hashSerialized.GetHex()); | ||||
ret.pushKV("disk_size", stats.nDiskSize); | ret.pushKV("disk_size", stats.nDiskSize); | ||||
▲ Show 20 Lines • Show All 1,500 Lines • ▼ Show 20 Lines | if (request.params[0].get_str() == "status") { | ||||
std::vector<CTxOut> input_txos; | std::vector<CTxOut> input_txos; | ||||
std::map<COutPoint, Coin> coins; | std::map<COutPoint, Coin> coins; | ||||
g_should_abort_scan = false; | g_should_abort_scan = false; | ||||
g_scan_progress = 0; | g_scan_progress = 0; | ||||
int64_t count = 0; | int64_t count = 0; | ||||
std::unique_ptr<CCoinsViewCursor> pcursor; | std::unique_ptr<CCoinsViewCursor> pcursor; | ||||
{ | { | ||||
LOCK(cs_main); | LOCK(cs_main); | ||||
FlushStateToDisk(); | ::ChainstateActive().ForceFlushStateToDisk(); | ||||
pcursor = std::unique_ptr<CCoinsViewCursor>(pcoinsdbview->Cursor()); | pcursor = std::unique_ptr<CCoinsViewCursor>(pcoinsdbview->Cursor()); | ||||
assert(pcursor); | assert(pcursor); | ||||
} | } | ||||
bool res = FindScriptPubKey(g_scan_progress, g_should_abort_scan, count, | bool res = FindScriptPubKey(g_scan_progress, g_should_abort_scan, count, | ||||
pcursor.get(), needles, coins); | pcursor.get(), needles, coins); | ||||
result.pushKV("success", res); | result.pushKV("success", res); | ||||
result.pushKV("searched_items", count); | result.pushKV("searched_items", count); | ||||
▲ Show 20 Lines • Show All 71 Lines • Show Last 20 Lines |