Skip to content

Commit

Permalink
refactor: make Get*MN* and friends return std::optional
Browse files Browse the repository at this point in the history
  • Loading branch information
kwvg committed Dec 3, 2024
1 parent 46ad133 commit a197cb7
Show file tree
Hide file tree
Showing 22 changed files with 267 additions and 216 deletions.
14 changes: 8 additions & 6 deletions src/coinjoin/client.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ PeerMsgRet CCoinJoinClientQueueManager::ProcessDSQueue(const CNode& peer, CDataS

const auto tip_mn_list = m_dmnman.GetListAtChainTip();
if (dsq.masternodeOutpoint.IsNull()) {
if (auto dmn = tip_mn_list.GetValidMN(dsq.m_protxHash)) {
dsq.masternodeOutpoint = dmn->collateralOutpoint;
if (auto dmn_opt = tip_mn_list.GetValidMN(dsq.m_protxHash); dmn_opt.has_value()) {
dsq.masternodeOutpoint = dmn_opt.value()->collateralOutpoint;
} else {
return tl::unexpected{10};
}
Expand Down Expand Up @@ -90,9 +90,10 @@ PeerMsgRet CCoinJoinClientQueueManager::ProcessDSQueue(const CNode& peer, CDataS

if (dsq.IsTimeOutOfBounds()) return {};

auto dmn = tip_mn_list.GetValidMNByCollateral(dsq.masternodeOutpoint);
if (!dmn) return {};
auto dmn_opt = tip_mn_list.GetValidMNByCollateral(dsq.masternodeOutpoint);
if (!dmn_opt.has_value()) return {};

auto dmn = dmn_opt.value();
if (dsq.m_protxHash.IsNull()) {
dsq.m_protxHash = dmn->proTxHash;
}
Expand Down Expand Up @@ -1085,14 +1086,15 @@ bool CCoinJoinClientSession::JoinExistingQueue(CAmount nBalanceNeedsAnonymized,
// Look through the queues and see if anything matches
CCoinJoinQueue dsq;
while (m_queueman->GetQueueItemAndTry(dsq)) {
auto dmn = mnList.GetValidMNByCollateral(dsq.masternodeOutpoint);
auto dmn_opt = mnList.GetValidMNByCollateral(dsq.masternodeOutpoint);

if (!dmn) {
if (!dmn_opt) {
WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::JoinExistingQueue -- dsq masternode is not in masternode list, masternode=%s\n", dsq.masternodeOutpoint.ToStringShort());
continue;
}

// skip next mn payments winners
auto dmn = dmn_opt.value();
if (dmn->pdmnState->nLastPaidHeight + nWeightedMnCount < mnList.GetHeight() + WinnersToSkip()) {
WalletCJLogPrint(m_wallet, "CCoinJoinClientSession::JoinExistingQueue -- skipping winner, masternode=%s\n", dmn->proTxHash.ToString());
continue;
Expand Down
14 changes: 8 additions & 6 deletions src/coinjoin/server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ void CCoinJoinServer::ProcessDSACCEPT(CNode& peer, CDataStream& vRecv)
LogPrint(BCLog::COINJOIN, "DSACCEPT -- nDenom %d (%s) txCollateral %s", dsa.nDenom, CoinJoin::DenominationToString(dsa.nDenom), dsa.txCollateral.ToString()); /* Continued */

auto mnList = m_dmnman.GetListAtChainTip();
auto dmn = mnList.GetValidMNByCollateral(m_mn_activeman->GetOutPoint());
if (!dmn) {
auto dmn_opt = mnList.GetValidMNByCollateral(m_mn_activeman->GetOutPoint());
if (!dmn_opt.has_value()) {
PushStatus(peer, STATUS_REJECTED, ERR_MN_LIST);
return;
}

auto dmn = dmn_opt.value();
if (vecSessionCollaterals.empty()) {
{
TRY_LOCK(cs_vecqueue, lockRecv);
Expand Down Expand Up @@ -129,8 +130,8 @@ PeerMsgRet CCoinJoinServer::ProcessDSQUEUE(const CNode& peer, CDataStream& vRecv

const auto tip_mn_list = m_dmnman.GetListAtChainTip();
if (dsq.masternodeOutpoint.IsNull()) {
if (auto dmn = tip_mn_list.GetValidMN(dsq.m_protxHash)) {
dsq.masternodeOutpoint = dmn->collateralOutpoint;
if (auto dmn_opt = tip_mn_list.GetValidMN(dsq.m_protxHash); dmn_opt.has_value()) {
dsq.masternodeOutpoint = dmn_opt.value()->collateralOutpoint;
} else {
return tl::unexpected{10};
}
Expand All @@ -157,9 +158,10 @@ PeerMsgRet CCoinJoinServer::ProcessDSQUEUE(const CNode& peer, CDataStream& vRecv

if (dsq.IsTimeOutOfBounds()) return {};

auto dmn = tip_mn_list.GetValidMNByCollateral(dsq.masternodeOutpoint);
if (!dmn) return {};
auto dmn_opt = tip_mn_list.GetValidMNByCollateral(dsq.masternodeOutpoint);
if (!dmn_opt.has_value()) return {};

auto dmn = dmn_opt.value();
if (dsq.m_protxHash.IsNull()) {
dsq.m_protxHash = dmn->proTxHash;
}
Expand Down
Loading

0 comments on commit a197cb7

Please sign in to comment.