Skip to content

Commit

Permalink
Let "masternode winner/current" directly use deterministicMNManager
Browse files Browse the repository at this point in the history
  • Loading branch information
codablock committed Dec 31, 2018
1 parent 82745dd commit 96e0385
Showing 1 changed file with 10 additions and 29 deletions.
39 changes: 10 additions & 29 deletions src/rpc/masternode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -270,29 +270,12 @@ UniValue masternode_count(const JSONRPCRequest& request)

UniValue GetNextMasternodeForPayment(int heightShift)
{
int nCount;
int nHeight;
masternode_info_t mnInfo;
CBlockIndex* pindex = NULL;
{
LOCK(cs_main);
pindex = chainActive.Tip();
}

nHeight = pindex->nHeight + heightShift;
mnodeman.UpdateLastPaid(pindex);

CScript payeeScript;
if (deterministicMNManager->IsDIP3Active()) {
auto payee = deterministicMNManager->GetListAtChainTip().GetMNPayee();
if (!payee || !mnodeman.GetMasternodeInfo(payee->proTxHash, mnInfo))
return "unknown";
payeeScript = payee->pdmnState->scriptPayout;
} else {
if (!mnodeman.GetNextMasternodeInQueueForPayment(nHeight, true, nCount, mnInfo))
return "unknown";
payeeScript = GetScriptForDestination(mnInfo.keyIDCollateralAddress);
}
auto mnList = deterministicMNManager->GetListAtChainTip();
auto payees = mnList.GetProjectedMNPayees(heightShift);
if (payees.empty())
return "unknown";
auto payee = payees[heightShift - 9];
CScript payeeScript = payee->pdmnState->scriptPayout;

CTxDestination payeeDest;
CBitcoinAddress payeeAddr;
Expand All @@ -302,13 +285,11 @@ UniValue GetNextMasternodeForPayment(int heightShift)

UniValue obj(UniValue::VOBJ);

obj.push_back(Pair("height", nHeight));
obj.push_back(Pair("IP:port", mnInfo.addr.ToString()));
obj.push_back(Pair("protocol", mnInfo.nProtocolVersion));
obj.push_back(Pair("outpoint", mnInfo.outpoint.ToStringShort()));
obj.push_back(Pair("height", mnList.GetHeight() + heightShift));
obj.push_back(Pair("IP:port", payee->pdmnState->addr.ToString()));
obj.push_back(Pair("proTxHash", payee->proTxHash.ToString()));
obj.push_back(Pair("outpoint", payee->collateralOutpoint.ToStringShort()));
obj.push_back(Pair("payee", payeeAddr.IsValid() ? payeeAddr.ToString() : "UNKNOWN"));
obj.push_back(Pair("lastseen", mnInfo.nTimeLastPing));
obj.push_back(Pair("activeseconds", mnInfo.nTimeLastPing - mnInfo.sigTime));
return obj;
}

Expand Down

0 comments on commit 96e0385

Please sign in to comment.