Merge pull request #107 from blackjok3rtt/jl777
add daily snapshot address to getsnapshot (top = -1)
This commit is contained in:
@@ -1384,7 +1384,8 @@ UniValue getsnapshot(const UniValue& params, bool fHelp)
|
|||||||
if (params.size() > 0 && !params[0].isNull()) {
|
if (params.size() > 0 && !params[0].isNull()) {
|
||||||
top = atoi(params[0].get_str().c_str());
|
top = atoi(params[0].get_str().c_str());
|
||||||
if (top <= 0)
|
if (top <= 0)
|
||||||
throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, top must be a positive integer");
|
//throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, top must be a positive integer");
|
||||||
|
top = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( fHelp || params.size() > 1)
|
if ( fHelp || params.size() > 1)
|
||||||
|
|||||||
19
src/txdb.cpp
19
src/txdb.cpp
@@ -555,6 +555,8 @@ bool CBlockTreeDB::Snapshot2(std::map <std::string, CAmount> &addressAmounts, Un
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern std::vector <std::pair<CAmount, CTxDestination>> vAddressSnapshot;
|
||||||
|
|
||||||
UniValue CBlockTreeDB::Snapshot(int top)
|
UniValue CBlockTreeDB::Snapshot(int top)
|
||||||
{
|
{
|
||||||
int topN = 0;
|
int topN = 0;
|
||||||
@@ -564,11 +566,20 @@ UniValue CBlockTreeDB::Snapshot(int top)
|
|||||||
UniValue result(UniValue::VOBJ);
|
UniValue result(UniValue::VOBJ);
|
||||||
UniValue addressesSorted(UniValue::VARR);
|
UniValue addressesSorted(UniValue::VARR);
|
||||||
result.push_back(Pair("start_time", (int) time(NULL)));
|
result.push_back(Pair("start_time", (int) time(NULL)));
|
||||||
if ( Snapshot2(addressAmounts,&result) )
|
if ( (vAddressSnapshot.size() > 0 && top < 0) || (Snapshot2(addressAmounts,&result) && top > 0) )
|
||||||
{
|
{
|
||||||
for (std::pair<std::string, CAmount> element : addressAmounts)
|
if ( top > 0 )
|
||||||
vaddr.push_back( make_pair(element.second, element.first) );
|
{
|
||||||
std::sort(vaddr.rbegin(), vaddr.rend());
|
for (std::pair<std::string, CAmount> element : addressAmounts)
|
||||||
|
vaddr.push_back( make_pair(element.second, element.first) );
|
||||||
|
std::sort(vaddr.rbegin(), vaddr.rend());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for ( auto address : vAddressSnapshot )
|
||||||
|
vaddr.push_back(make_pair(address.first, CBitcoinAddress(address.second).ToString()));
|
||||||
|
top = vAddressSnapshot.size();
|
||||||
|
}
|
||||||
int topN = 0;
|
int topN = 0;
|
||||||
for (std::vector<std::pair<CAmount, std::string>>::iterator it = vaddr.begin(); it!=vaddr.end(); ++it)
|
for (std::vector<std::pair<CAmount, std::string>>::iterator it = vaddr.begin(); it!=vaddr.end(); ++it)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user