22 个版本
0.6.5 | 2024年5月26日 |
---|---|
0.6.4 | 2023年8月28日 |
0.6.2 | 2023年7月12日 |
0.6.0-alpha.9 | 2023年3月18日 |
0.5.2 | 2022年2月11日 |
#5 in #partner
201 每月下载量
40KB
309 行
streamflow-sdk
用于与 Streamflow 协议交互的 Rust on-chain solana 程序的 SDK
用法
在程序 Cargo.toml 中声明依赖
streamflow_sdk = {version = "0.6", features = ["cpi"]}
要在主网中使用协议,请使用具有 mainnet
功能的 SDK
streamflow_sdk = {version = "0.6", features = ["cpi", "mainnet"]}
示例 anchor 程序调用 streamflow 创建指令
use anchor_lang::{prelude::*};
use anchor_spl::{
associated_token::AssociatedToken,
token::{Mint, Token, TokenAccount},
};
use streamflow_sdk;
use streamflow_sdk::cpi::accounts::Create;
let accs = Create {
sender: ctx.accounts.sender.to_account_info(),
sender_tokens: ctx.accounts.sender_tokens.to_account_info(),
recipient: ctx.accounts.recipient.to_account_info(),
recipient_tokens: ctx.accounts.recipient_tokens.to_account_info(),
metadata: ctx.accounts.metadata.to_account_info(),
escrow_tokens: ctx.accounts.escrow_tokens.to_account_info(),
streamflow_treasury: ctx.accounts.streamflow_treasury.to_account_info(),
streamflow_treasury_tokens: ctx.accounts.streamflow_treasury_tokens.to_account_info(),
withdrawor: ctx.accounts.withdrawor.to_account_info(),
partner: ctx.accounts.partner.to_account_info(),
partner_tokens: ctx.accounts.partner_tokens.to_account_info(),
mint: ctx.accounts.mint.to_account_info(),
fee_oracle: ctx.accounts.fee_oracle.to_account_info(),
rent: ctx.accounts.rent.to_account_info(),
timelock_program: ctx.accounts.streamflow_program.to_account_info(),
token_program: ctx.accounts.token_program.to_account_info(),
associated_token_program: ctx.accounts.associated_token_program.to_account_info(),
system_program: ctx.accounts.system_program.to_account_info(),
};
let cpi_ctx = CpiContext::new(ctx.accounts.streamflow_program.to_account_info(), accs);
streamflow_sdk::cpi::create(
cpi_ctx,
start_time,
net_amount_deposited,
period,
amount_per_period,
cliff,
cliff_amount,
cancelable_by_sender,
cancelable_by_recipient,
automatic_withdrawal,
transferable_by_sender,
transferable_by_recipient,
can_topup,
stream_name,
withdraw_frequency,
pausable,
can_update_rate
)
使用 SDK 的示例程序
对于更详细的示例,请查看 ./programs/example/lib.rs
地址
参数 | 地址 |
---|---|
程序 ID | strmRqUCoQUgGUan5YhzUZa6KqdzwX5L6FpUxfmKg5m |
费用预言机 | addr |
streamflow_treasury | 5SEpbdjFK5FxwTvfsGMXVQTD2v4M2c5tyRTxhdsPkgDw |
提款人 | wdrwhnCv4pzW8beKsbPa4S2UDZrXenjg16KJdKSpb5u |
Streamflow 协议
Rust 程序,提供 SPL timelock 功能
功能包括
create
创建一个锁仓合约。update
更新一个锁仓合约withdraw
从一个锁仓合约中提款。cancel
取消一个锁仓合约。transfer_recipient
一个锁仓合约的接收者。
高级概述
费用
Streamflow 协议将合约总金额的 0.25%(净存款金额)转移到 streamflow 财务库,以覆盖构建和维护协议的费用。
在 Streamflow 协议上注册为合作伙伴
Streamflow 协议支持将合作伙伴费用集成到在 Streamflow 之上构建的其他协议。更多信息,请在 discord 上联系我们。链接
依赖项
~18–27MB
~466K SLoC