BlockCoverage

scalus.cardano.node.stream.internal.BlockCoverage
See theBlockCoverage companion object

What the provider actually examined when it produced an AppliedBlock.

A provider that holds the whole block can answer any subscription from it. A metered provider cannot afford to: Blockfrost's cheap path is per-address and per-asset endpoints, so what it learns about a block is only ever "what these sources did in it", and it must say so.

The distinction is load-bearing rather than informational. The hub delivers a block to a subscription and advances that subscription's watermark past it in the same step, so handing it a block that did not cover a subscription would tell that subscriber "nothing here for you" — as an scalus.cardano.node.stream.UtxoEvent.Idle, no less — and then make the real events for that height undeliverable, because the watermark has moved on. Silently.

Attributes

Companion
object
Graph
Supertypes
trait Enum
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Members list

Type members

Enum entries

case Complete extends BlockCoverage

The provider holds the whole block and can answer any query from it.

The provider holds the whole block and can answer any query from it.

Attributes

final case class Sources(sources: Set[UtxoSource])

The provider examined only these sources. A subscription is covered when its query can be answered from them — see BlockCoverage.covers.

The provider examined only these sources. A subscription is covered when its query can be answered from them — see BlockCoverage.covers.

Attributes