diff --git a/src/Ledger.cpp b/src/Ledger.cpp index 789384f011..de44f9f4ad 100644 --- a/src/Ledger.cpp +++ b/src/Ledger.cpp @@ -154,6 +154,7 @@ void Ledger::setAccepted(uint32 closeTime, int closeResolution, bool correctClos void Ledger::setAccepted() { // used when we acquired the ledger assert(mClosed && (mCloseResolution != 0) && (mCloseResolution != 0)); + mCloseTime -= mCloseTime % mCloseResolution; updateHash(); mAccepted = true; mImmutable = true; diff --git a/src/LedgerConsensus.cpp b/src/LedgerConsensus.cpp index 0c0576146d..9c42b24b22 100644 --- a/src/LedgerConsensus.cpp +++ b/src/LedgerConsensus.cpp @@ -492,8 +492,8 @@ void LedgerConsensus::updateOurPositions() std::map closeTimes; for (boost::unordered_map::iterator it = mPeerPositions.begin(), end = mPeerPositions.end(); it != end; ++it) - ++closeTimes[it->second->getCloseTime() % mCloseResolution]; - ++closeTimes[mOurPosition->getCloseTime() % mCloseResolution]; + ++closeTimes[it->second->getCloseTime() - (it->second->getCloseTime % mCloseResolution)]; + ++closeTimes[mOurPosition->getCloseTime() - (mOurPosition->getCloseTime() % mCloseResolution)]; int neededWeight; @@ -513,7 +513,7 @@ void LedgerConsensus::updateOurPositions() closeTime = it->first; } } - if (closeTime != (mOurPosition->getCloseTime() % mCloseResolution)) + if (closeTime != (mOurPosition->getCloseTime() - (mOurPosition->getCloseTime() % mCloseResolution))) changes = true; if (changes)