diff --git a/src/LedgerMaster.cpp b/src/LedgerMaster.cpp index 6d72b2d0ec..12002a74bf 100644 --- a/src/LedgerMaster.cpp +++ b/src/LedgerMaster.cpp @@ -36,6 +36,17 @@ void LedgerMaster::pushLedger(Ledger::pointer newLedger) mEngine.setLedger(newLedger); } +void LedgerMaster::switchLedgers(Ledger::pointer lastClosed, Ledger::pointer current) +{ + mFinalizedLedger = lastClosed; + mFinalizedLedger->setClosed(); + mFinalizedLedger->setAccepted(); + + mCurrentLedger = current; + assert(!mCurrentLedger->isClosed()); + mEngine.setLedger(mCurrentLedger); +} + #if 0 void LedgerMaster::startFinalization() diff --git a/src/LedgerMaster.h b/src/LedgerMaster.h index 07c8907ed0..8caa1012e2 100644 --- a/src/LedgerMaster.h +++ b/src/LedgerMaster.h @@ -45,6 +45,7 @@ public: { return mEngine.applyTransaction(txn, params); } void pushLedger(Ledger::pointer newLedger); + void switchLedgers(Ledger::pointer lastClosed, Ledger::pointer newCurrent); Ledger::pointer getLedgerBySeq(uint32 index) {