Changeset View
Changeset View
Standalone View
Standalone View
src/rpc/avalanche.cpp
Show First 20 Lines • Show All 442 Lines • ▼ Show 20 Lines | RPCHelpMan{ | ||||
.Check(request); | .Check(request); | ||||
if (!g_avalanche) { | if (!g_avalanche) { | ||||
throw JSONRPCError(RPC_INTERNAL_ERROR, "Avalanche is not initialized"); | throw JSONRPCError(RPC_INTERNAL_ERROR, "Avalanche is not initialized"); | ||||
} | } | ||||
UniValue ret(UniValue::VARR); | UniValue ret(UniValue::VARR); | ||||
for (const auto &peer : g_avalanche->getPeers()) { | g_avalanche->withPeerManager([&](const avalanche::PeerManager &pm) { | ||||
pm.forEachPeer([&](const avalanche::Peer &peer) { | |||||
UniValue obj(UniValue::VOBJ); | UniValue obj(UniValue::VOBJ); | ||||
CDataStream serproof(SER_NETWORK, PROTOCOL_VERSION); | CDataStream serproof(SER_NETWORK, PROTOCOL_VERSION); | ||||
serproof << *peer.proof; | serproof << *peer.proof; | ||||
obj.pushKV("peerid", uint64_t(peer.peerid)); | obj.pushKV("peerid", uint64_t(peer.peerid)); | ||||
obj.pushKV("proof", HexStr(serproof)); | obj.pushKV("proof", HexStr(serproof)); | ||||
UniValue nodes(UniValue::VARR); | UniValue nodes(UniValue::VARR); | ||||
for (const auto &id : g_avalanche->getNodeIdsForPeer(peer.peerid)) { | pm.forEachNode(peer, [&](const avalanche::Node &n) { | ||||
nodes.push_back(id); | nodes.push_back(n.nodeid); | ||||
} | }); | ||||
obj.pushKV("nodes", nodes); | obj.pushKV("nodes", nodes); | ||||
obj.pushKV("nodecount", uint64_t(peer.node_count)); | obj.pushKV("nodecount", uint64_t(peer.node_count)); | ||||
ret.push_back(obj); | ret.push_back(obj); | ||||
} | }); | ||||
}); | |||||
return ret; | return ret; | ||||
} | } | ||||
static UniValue getrawavalancheproof(const Config &config, | static UniValue getrawavalancheproof(const Config &config, | ||||
const JSONRPCRequest &request) { | const JSONRPCRequest &request) { | ||||
RPCHelpMan{ | RPCHelpMan{ | ||||
"getrawavalancheproof", | "getrawavalancheproof", | ||||
▲ Show 20 Lines • Show All 154 Lines • Show Last 20 Lines |