A Lockup stream can have one of five distinct statuses:
|Stream created but not started; assets are in a pending state.
|Active stream where assets are currently being streamed.
|All assets have been streamed; recipient is due to withdraw them.
|Canceled stream; remaining assets await recipient's withdrawal.
|Depleted stream; all assets have been withdrawn and/or refunded.
A stream status can have one out of two "temperatures":
|The passage of time can change the temperature from warm to cold.
|Settled, Canceled, Depleted
|The passage of time alone cannot change the temperature from cold to warm. Only a user action can do this.
The following diagram illustrates the statuses and the allowed transitions between them:
Q: What is a null stream?
A: An id that does not reference a created stream. Trying to interact with a null stream will result in a revert.
Q: What to do with a stream status?
A: Knowing the status of a stream can inform your decision making. For example, if a stream is canceled, you know that you can't cancel it again. Or, if a stream is depleted, you know that you can't withdraw any more assets from it.
Q: How can a stream enter the
SETTLED status directly?
A: This is a peculiarity of the Lockup Dynamic type of stream. Segment amounts can be
zero, and the segment milestones can be set in such a way that all non-zero segments are in the past. This will cause
the stream to enter the
SETTLED status directly.