Skip to content

Commit b617774

Browse files
UdjinM6codablock
authored andcommitted
Add collateraladdress into masternode/protx list rpc output (#2740)
1 parent b5466e2 commit b617774

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/evo/deterministicmns.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,15 @@ void CDeterministicMN::ToJson(UniValue& obj) const
8383
obj.push_back(Pair("proTxHash", proTxHash.ToString()));
8484
obj.push_back(Pair("collateralHash", collateralOutpoint.hash.ToString()));
8585
obj.push_back(Pair("collateralIndex", (int)collateralOutpoint.n));
86+
87+
Coin coin;
88+
if (GetUTXOCoin(collateralOutpoint, coin)) {
89+
CTxDestination dest;
90+
if (ExtractDestination(coin.out.scriptPubKey, dest)) {
91+
obj.push_back(Pair("collateralAddress", CBitcoinAddress(dest).ToString()));
92+
}
93+
}
94+
8695
obj.push_back(Pair("operatorReward", (double)nOperatorReward / 100));
8796
obj.push_back(Pair("state", stateObj));
8897
}

src/rpc/masternode.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -520,10 +520,18 @@ UniValue masternodelist(const JSONRPCRequest& request)
520520

521521
mnList.ForEachMN(false, [&](const CDeterministicMNCPtr& dmn) {
522522
std::string strOutpoint = dmn->collateralOutpoint.ToStringShort();
523+
Coin coin;
524+
std::string collateralAddressStr = "UNKNOWN";
525+
if (GetUTXOCoin(dmn->collateralOutpoint, coin)) {
526+
CTxDestination collateralDest;
527+
if (ExtractDestination(coin.out.scriptPubKey, collateralDest)) {
528+
collateralAddressStr = CBitcoinAddress(collateralDest).ToString();
529+
}
530+
}
523531

524532
CScript payeeScript = dmn->pdmnState->scriptPayout;
525533
CTxDestination payeeDest;
526-
std::string payeeStr = "UNKOWN";
534+
std::string payeeStr = "UNKNOWN";
527535
if (ExtractDestination(payeeScript, payeeDest)) {
528536
payeeStr = CBitcoinAddress(payeeDest).ToString();
529537
}
@@ -564,6 +572,7 @@ UniValue masternodelist(const JSONRPCRequest& request)
564572
dmn->pdmnState->nLastPaidHeight << " " <<
565573
CBitcoinAddress(dmn->pdmnState->keyIDOwner).ToString() << " " <<
566574
CBitcoinAddress(dmn->pdmnState->keyIDVoting).ToString() << " " <<
575+
collateralAddressStr << " " <<
567576
dmn->pdmnState->pubKeyOperator.ToString();
568577
std::string strInfo = streamInfo.str();
569578
if (strFilter !="" && strInfo.find(strFilter) == std::string::npos &&
@@ -576,6 +585,7 @@ UniValue masternodelist(const JSONRPCRequest& request)
576585
objMN.push_back(Pair("lastpaidblock", dmn->pdmnState->nLastPaidHeight));
577586
objMN.push_back(Pair("owneraddress", CBitcoinAddress(dmn->pdmnState->keyIDOwner).ToString()));
578587
objMN.push_back(Pair("votingaddress", CBitcoinAddress(dmn->pdmnState->keyIDVoting).ToString()));
588+
objMN.push_back(Pair("collateraladdress", collateralAddressStr));
579589
objMN.push_back(Pair("pubkeyoperator", dmn->pdmnState->pubKeyOperator.ToString()));
580590
obj.push_back(Pair(strOutpoint, objMN));
581591
} else if (strMode == "lastpaidblock") {

0 commit comments

Comments
 (0)