Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/blockchain.cpp
Show First 20 Lines • Show All 1,132 Lines • ▼ Show 20 Lines | RPCHelpMan{ | ||||
HelpExampleRpc("gettxoutsetinfo", "")}, | HelpExampleRpc("gettxoutsetinfo", "")}, | ||||
} | } | ||||
.Check(request); | .Check(request); | ||||
UniValue ret(UniValue::VOBJ); | UniValue ret(UniValue::VOBJ); | ||||
CCoinsStats stats; | CCoinsStats stats; | ||||
::ChainstateActive().ForceFlushStateToDisk(); | ::ChainstateActive().ForceFlushStateToDisk(); | ||||
if (GetUTXOStats(pcoinsdbview.get(), stats)) { | if (GetUTXOStats(&::ChainstateActive().CoinsDB(), 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); | ||||
ret.pushKV("total_amount", ValueFromAmount(stats.nTotalAmount)); | ret.pushKV("total_amount", ValueFromAmount(stats.nTotalAmount)); | ||||
▲ Show 20 Lines • Show All 1,386 Lines • ▼ Show 20 Lines | if (request.params[0].get_str() == "status") { | ||||
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; | ||||
CBlockIndex *tip; | CBlockIndex *tip; | ||||
{ | { | ||||
LOCK(cs_main); | LOCK(cs_main); | ||||
::ChainstateActive().ForceFlushStateToDisk(); | ::ChainstateActive().ForceFlushStateToDisk(); | ||||
pcursor = std::unique_ptr<CCoinsViewCursor>(pcoinsdbview->Cursor()); | pcursor = std::unique_ptr<CCoinsViewCursor>( | ||||
::ChainstateActive().CoinsDB().Cursor()); | |||||
CHECK_NONFATAL(pcursor); | CHECK_NONFATAL(pcursor); | ||||
tip = ::ChainActive().Tip(); | tip = ::ChainActive().Tip(); | ||||
CHECK_NONFATAL(tip); | CHECK_NONFATAL(tip); | ||||
} | } | ||||
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("txouts", count); | result.pushKV("txouts", count); | ||||
▲ Show 20 Lines • Show All 158 Lines • Show Last 20 Lines |