| Crates.io | streamflow |
| lib.rs | streamflow |
| version | 0.1.1 |
| created_at | 2021-06-11 11:08:54.783886+00 |
| updated_at | 2021-06-11 11:08:54.783886+00 |
| description | Solana program for streamflow.finance |
| homepage | https://streamflow.finance |
| repository | https://github.com/streamflow-finance/streamflow-program |
| max_upload_size | |
| id | 408957 |
| size | 76,310 |
This repository contains the Solana program source code.
It is laid out as a standard crate, and the program code can be found in src/lib.rs.
On Solana Mainnet, the program is not yet deployed.
On Solana Devnet, the program ID is:
2DvvSEde36Ch3B52g9hKWDYbfmJimLpJwVBV9Cknypi4
See cli/strfi.js to get an understanding.
initialize_streamThis instruction is used to initialize the stream, and save the data and lock the funds for streaming on a given account.
Note that the implementation sends DEFAULT_TARGET_LAMPORTS_PER_SIGNATURE
immetiately to the recipient, so they don't have to have previous funds
in order to issue a withdraw instruction in the future.
Accounts:
Instruction data:
instruction (1 byte, u8) (Should be 0 for initialize_streamstart_time (32 bytes, u32) (Unix timestamp when funds start to be unlocked)end_time (32 bytes, u32) (Unix timestamp when all funds should be unlocked)amount (64 bytes, u64) (Amount of lamports to lock and stream)Data saved in the PDA account:
start_time (64 bytes, u64)
end_time (64 bytes, u64)
amount (64 bytes, u64)
withdrawn (64 bytes, u64) (Amount that has been withdrawn so far)
sender (32 bytes, u8 array) (Alice/Sender's public key)
recipient (32 bytes, u8 array) (Bob/Recipient's public key)
withdraw_unlockedThis instruction is used by the stream recipient, and will transfer a given amount of lamports, if unlocked, from the stream account to the caller.
If the requested amount if lamports is 0 (zero), then all unlocked funds will be withdrawn.
Accounts:
Instruction data:
instruction (1 byte, u8) (Should be 1 for withdraw_unlocked)
amount (64 bytes, u64) (Amount of lamports to potentially withdraw)
cancel_streamThis instruction is used by the stream initializer, and will cancel the given stream, returning all locked funds to the caller and purging the account.
Accounts:
Instruction data:
instruction (1 byte, u8) (Should be 2 for cancel_stream)
StreamFlow Rust code is licensed AGPL-3.