Returns how far along data is seen for a particular chain.
A [Medallion, ChainStart] tuple
SeenThrough (a Timestamp) or undefined if not yet seen
First, determine if the bundle is novel (represents data not previously marked), then second, mark the data in the data structure (possibly checking that it's a sensible extension). Note that checkValidExtension is used here as a safeguard to make sure we don't send broken chains to the peer; the store should have its own check for receiving.
Meta about a particular bundle.
Optional
checkValidExtension: booleanIf true then barfs if this bundle isn't a valid extension.
true if the bundle represents data not seen before
Allows you to wait until an instance has seen a particular bundle.
either a muid address or a bundle info (indicates what to watch for)
Optional
timeoutMs: numberhow long to wait before giving up, default of undefined doesn't time out
a promise that resolves when the thing has been marked as seen, or rejects at timeout
A class to keep track of what data a given instance (self or peer) has for each chain. So it's kind of like Map<[Medallion, ChainStart], SeenThrough>. This is essentially the same data that's in the Greeting message, so I've included functionality to convert from/to Greeting objects.