Flow
Structs
Stream
Struct representing Flow streams.
The fields are arranged like this to save gas via tight variable packing.
struct Stream {
    uint128 balance;
    UD21x18 ratePerSecond;
    address sender;
    uint40 snapshotTime;
    bool isStream;
    bool isTransferable;
    bool isVoided;
    IERC20 token;
    uint8 tokenDecimals;
    uint256 snapshotDebtScaled;
}
Properties
| Name | Type | Description | 
|---|---|---|
| balance | uint128 | The amount of tokens that are currently available in the stream, denoted in the token's decimals. This is the sum of deposited amounts minus the sum of withdrawn amounts. | 
| ratePerSecond | UD21x18 | The payment rate per second, denoted as a fixed-point number where 1e18 is 1 token per second. For example, to stream 1000 tokens per week, this parameter would have the value . | 
| sender | address | The address streaming the tokens, with the ability to pause the stream. | 
| snapshotTime | uint40 | The Unix timestamp used for the ongoing debt calculation. | 
| isStream | bool | Boolean indicating if the struct entity exists. | 
| isTransferable | bool | Boolean indicating if the stream NFT is transferable. | 
| isVoided | bool | Boolean indicating if the stream is voided. Voiding any stream is non-reversible and it cannot be restarted. Voiding an insolvent stream sets its uncovered debt to zero. | 
| token | IERC20 | The contract address of the ERC-20 token to stream. | 
| tokenDecimals | uint8 | The decimals of the ERC-20 token to stream. | 
| snapshotDebtScaled | uint256 | The amount of tokens that the sender owed to the recipient at snapshot time, denoted as a 18-decimals fixed-point number. This, along with the ongoing debt, can be used to calculate the total debt at any given point in time. | 
Enums
Status
Enum representing the different statuses of a stream.
Notes:
- 
value0: PENDING Stream scheduled to start in the future. 
- 
value1: STREAMING_SOLVENT Streaming stream with no uncovered debt. 
- 
value2: STREAMING_INSOLVENT Streaming stream with uncovered debt. 
- 
value3: PAUSED_SOLVENT Paused stream with no uncovered debt. 
- 
value4: PAUSED_INSOLVENT Paused stream with uncovered debt. 
- 
value5: VOIDED Paused stream with no uncovered debt, which cannot be restarted. 
enum Status {
    PENDING,
    STREAMING_SOLVENT,
    STREAMING_INSOLVENT,
    PAUSED_SOLVENT,
    PAUSED_INSOLVENT,
    VOIDED
}