Как я могу применить транзакцию к бухгалтерской книге? - PullRequest
0 голосов
/ 13 марта 2020

У меня есть STTx и Ledger. Как я могу получить новый Ledger с примененной транзакцией (или даже просто ReadView, такой, что .info().accountHash актуален)?

1 Ответ

0 голосов
/ 13 марта 2020
# include <ripple/app/ledger/BuildLedger.h>
# include <ripple/app/misc/CanonicalTXSet.h>
# include <ripple/consensus/LedgerTiming.h> // ledgerDefaultTimeResolution

// Start with what you have.
Application const& app = ...
beast::Journal journal = ...
std::shared_ptr<Ledger const> const& parent = ...
std::shared_ptr<STTx const> const& transaction = ...

// Massage them into parameters for buildLedger.
NetClock::time_point const closeTime = app.timeKeeper().closeTime();
bool const closeTimeCorrect = false;
NetClock::duration closeTimeResolution = ledgerDefaultTimeResolution;
CanonicalTXSet const transactions{parent->info().hash};
transactions.insert(transaction);
std::set<TXID> failedTransactions; // Leave empty.

std::shared_ptr<Ledger> child = buildLedger(
    parent,
    closeTime,
    closeTimeCorrect ,
    closeTimeResolution,
    app,
    transactions,
    failedTransactions,
    journal);
...