Skip to content

Commit

Permalink
Add missing SideStake specializations for ContractToJson
Browse files Browse the repository at this point in the history
  • Loading branch information
jamescowens committed Jan 1, 2024
1 parent 80f0942 commit 17ca5b1
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/rpc/rawtransaction.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "gridcoin/contract/contract.h"
#include "gridcoin/mrc.h"
#include "gridcoin/project.h"
#include "gridcoin/sidestake.h"
#include "gridcoin/staking/difficulty.h"
#include "gridcoin/superblock.h"
#include "gridcoin/support/block_finder.h"
Expand Down Expand Up @@ -245,6 +246,20 @@ UniValue VotePayloadToJson(const GRC::ContractPayload& payload)
return out;
}

UniValue SideStakePayloadToJson (const GRC::ContractPayload& payload)
{
const auto& sidestake = payload.As<GRC::SideStakePayload>();

UniValue out(UniValue::VOBJ);

out.pushKV("address", CBitcoinAddress(sidestake.m_entry.m_destination).ToString());
out.pushKV("allocation", sidestake.m_entry.m_allocation);
out.pushKV("description", sidestake.m_entry.m_description);
out.pushKV("status", sidestake.m_entry.StatusToString());

return out;
}

UniValue LegacyVotePayloadToJson(const GRC::ContractPayload& payload)
{
const auto& vote = payload.As<GRC::LegacyVote>();
Expand Down Expand Up @@ -295,6 +310,9 @@ UniValue ContractToJson(const GRC::Contract& contract)
case GRC::ContractType::MRC:
out.pushKV("body", MRCToJson(contract.CopyPayloadAs<GRC::MRC>()));
break;
case GRC::ContractType::SIDESTAKE:
out.pushKV("body", SideStakePayloadToJson(contract.SharePayload()));
break;
default:
out.pushKV("body", LegacyContractPayloadToJson(contract.SharePayload()));
break;
Expand Down

0 comments on commit 17ca5b1

Please sign in to comment.