Entities
Entity Architecture
GraphQL entities defined by the Sablier subgraphs are meant to mirror the functionality exposed by our core flow contracts. To achieve this, events are stored as historical entries (e.g. Action) while also being used to mutate attributes for live entities (e.g. Stream).
Inside the flow subgraph, the
schema.graphql
file is responsible of
defining the following Sablier entities:
Primary
Entity | Description |
---|---|
Contract | Instances of SablierFlow |
Action | Emitted events transformed into historical entries (e.g. Create, Withdraw, Adjust, Deposit) |
Stream | Primary entity tracking the up to date state of a stream |
Asset | The ERC20 asset that is being streamed |
Secondary
Entity | Description |
---|---|
Batch | An entity grouping a set of stream created all at once (action done through the batch interface of SablierFlow contracts) |
Batcher | An entity resolving 1:1 to a stream sender, in charge of managing the count of "batches" of streams one creates |
Watcher | A singleton data store for subgraph-level unique indexes such as the stream or action index |