mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-04 19:25:51 +00:00
* Fix RIPD-509, RIPD-514, RIPD-519, RIPD-525, RIPD-527, RIPD-529, RIPD-530 and RIPD-531. * Protect people from ledger-spew and remove cruft. * Better error messages and handling. * Cache command lists or clears ledger cache. * Better ledger summaries. * Offline mode.
25 lines
842 B
Python
25 lines
842 B
Python
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
|
|
import sys
|
|
|
|
from ripple.ledger.Args import ARGS
|
|
from ripple.util import Log
|
|
from ripple.util import Range
|
|
from ripple.util import Search
|
|
|
|
def search(server):
|
|
"""Yields a stream of ledger numbers that match the given condition."""
|
|
condition = lambda number: ARGS.condition(server, number)
|
|
ledgers = server.ledgers
|
|
if ARGS.binary:
|
|
try:
|
|
position = Search.FIRST if ARGS.position == 'first' else Search.LAST
|
|
yield Search.binary_search(
|
|
ledgers[0], ledgers[-1], condition, position)
|
|
except:
|
|
Log.fatal('No ledgers matching condition "%s".' % condition,
|
|
file=sys.stderr)
|
|
else:
|
|
for x in Search.linear_search(ledgers, condition):
|
|
yield x
|