diff --git a/src/Ledger.h b/src/Ledger.h index 66f351c42f..0bf03f49b7 100644 --- a/src/Ledger.h +++ b/src/Ledger.h @@ -156,6 +156,9 @@ public: static Ledger::pointer loadByHash(const uint256& ledgerHash); // next/prev function + SLE::pointer getSLE(const uint256& uHash); + SLE::pointer getFirstSLE(); + SLE::pointer getLastSLE(); SLE::pointer getNextSLE(const uint256& uHash); // first node >hash SLE::pointer getNextSLE(const uint256& uHash, const uint256& uEnd); // first node >hash, peekItem(); + if (!node) + return SLE::pointer(); + return boost::make_shared(node->peekSerializer(), node->getTag()); +} + +SLE::pointer Ledger::getFirstSLE() +{ + SHAMapItem::pointer node = mAccountStateMap->peekFirstItem(); + if (!node) + return SLE::pointer(); + return boost::make_shared(node->peekSerializer(), node->getTag()); +} + +SLE::pointer Ledger::getLastSLE() +{ + SHAMapItem::pointer node = mAccountStateMap->peekLastItem(); + if (!node) + return SLE::pointer(); + return boost::make_shared(node->peekSerializer(), node->getTag()); +} + SLE::pointer Ledger::getNextSLE(const uint256& uHash) { SHAMapItem::pointer node = mAccountStateMap->peekNextItem(uHash);