Files
rippled/src/xrpld/app/ledger/BuildLedger.h
2026-07-13 10:40:40 +00:00

66 lines
1.8 KiB
C++

#pragma once
#include <xrpl/basics/chrono.h>
#include <xrpl/beast/utility/Journal.h>
#include <xrpl/ledger/ApplyView.h>
#include <xrpl/protocol/Protocol.h>
#include <memory>
#include <set>
namespace xrpl {
class Application;
class CanonicalTXSet;
class Ledger;
class LedgerReplay;
class SHAMap;
/**
* Build a new ledger by applying consensus transactions
*
* Build a new ledger by applying a set of transactions accepted as part of
* consensus.
*
* @param parent The ledger to apply transactions to
* @param closeTime The time the ledger closed
* @param closeTimeCorrect Whether consensus agreed on close time
* @param closeResolution Resolution used to determine consensus close time
* @param app Handle to application instance
* @param txs On entry, transactions to apply; on exit, transactions that must
* be retried in next round.
* @param failedTxs Populated with transactions that failed in this round
* @param j Journal to use for logging
* @return The newly built ledger
*/
std::shared_ptr<Ledger>
buildLedger(
std::shared_ptr<Ledger const> const& parent,
NetClock::time_point closeTime,
bool const closeTimeCorrect,
NetClock::duration closeResolution,
Application& app,
CanonicalTXSet& txns,
std::set<TxID>& failedTxs,
beast::Journal j);
/**
* Build a new ledger by replaying transactions
*
* Build a new ledger by replaying transactions accepted into a prior ledger.
*
* @param replayData Data of the ledger to replay
* @param applyFlags Flags to use when applying transactions
* @param app Handle to application instance
* @param j Journal to use for logging
* @return The newly built ledger
*/
std::shared_ptr<Ledger>
buildLedger(
LedgerReplay const& replayData,
ApplyFlags applyFlags,
Application& app,
beast::Journal j);
} // namespace xrpl