22 个版本

0.6.5 2024年5月26日
0.6.4 2023年8月28日
0.6.2 2023年7月12日
0.6.0-alpha.92023年3月18日
0.5.2 2022年2月11日

#5 in #partner

Download history 148/week @ 2024-05-24 13/week @ 2024-05-31 2/week @ 2024-06-07 1/week @ 2024-06-28 29/week @ 2024-07-05 187/week @ 2024-07-26 14/week @ 2024-08-02

201 每月下载量

MIT 许可证

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 一个锁仓合约的接收者。

高级概述

Overview

费用

Streamflow 协议将合约总金额的 0.25%(净存款金额)转移到 streamflow 财务库,以覆盖构建和维护协议的费用。

在 Streamflow 协议上注册为合作伙伴

Streamflow 协议支持将合作伙伴费用集成到在 Streamflow 之上构建的其他协议。更多信息,请在 discord 上联系我们。链接

依赖项

~18–27MB
~466K SLoC