1 个不稳定版本
| 0.1.1 | 2021 年 6 月 11 日 | 
|---|
#94 in #payment
30KB
501 行
StreamFlow
此仓库包含 Solana 程序源代码。
它布局为一个标准包,程序代码可在 src/lib.rs 中找到。
部署
- 在 Solana 主网上,该程序尚未部署。
- 在 Solana 开发网上,程序 ID 为:2DvvSEde36Ch3B52g9hKWDYbfmJimLpJwVBV9Cknypi4
用法
查看 cli/strfi.js 以获取理解。
initialize_stream
此指令用于初始化流,并在给定账户上保存数据和锁定用于流式传输的资金。
请注意,实现会立即向接收者发送 DEFAULT_TARGET_LAMPORTS_PER_SIGNATURE,因此他们不必拥有之前的资金,以便将来发布提款指令。
- 
账户 - Alice(发送者)(签名者,可写)
- Bob(接收者)(可写)
- PDA(将锁定资金的账户)(签名者,可写)
- Solana 系统程序
 
- 
指令数据 - instruction(1 字节,u8)(对于- initialize_stream应为- 0)
- start_time(32 字节,u32)(资金开始解锁的 Unix 时间戳)
- end_time(32 字节,u32)(所有资金应解锁的 Unix 时间戳)
- amount(64 字节,u64)(要锁定和流式传输的 lamports 数量)
 
- 
在 PDA 账户中保存的数据 - start_time(64 字节,u64)
- end_time(64 字节,u64)
- amount(64 字节,u64)
- withdrawn(64 字节,u64)(迄今为止已提取的金额)
- sender(32 字节,u8 数组)(Alice/发送者的公钥)
- recipient(32 字节,u8 数组)(Bob/接收者的公钥)
 
withdraw_unlocked
此指令由流接收者使用,如果未锁定,则将从流账户向调用者转移指定数量的lamports。
如果请求的lamports数量为0(零),则将提取所有未锁定的资金。
- 
账户 - Bob(接收者)(签名者,可写)
- PDA(资金被锁定的账户)(可写)
- 租金收集器(在成功流之后将剩余租金发送到硬编码地址)(可写)
 
- 
指令数据 - instruction(1字节,u8)(对于- withdraw_unlocked,应为- 1)
- amount(64字节,u64)(可能提取的lamports数量)
 
取消流
此指令由流初始化者使用,将取消指定的流,将所有已锁定的资金返还给调用者并清除账户。
- 
账户 - Alice(发送者)(签名者,可写)
- Bob(接收者)(可写)
- PDA(资金被锁定的账户)(可写)
 
- 
指令数据 - instruction(1字节,u8)(对于- cancel_stream,应为- 2)
 
许可证
StreamFlow Rust代码采用AGPL-3许可证。
依赖项
~16–25MB
~419K SLoC