#![allow(unexpected_cfgs)]
pub mod state;
use anchor_lang::prelude::*;
use anchor_spl::{
associated_token::AssociatedToken,
token::{Mint, Token, TokenAccount},
};
#[cfg(feature = "devnet")]
declare_id!("HqDGZjaVRXJ9MGRQEw7qDc2rAr6iH1n1kAQdCZaCMfMZ");
#[cfg(not(feature = "devnet"))]
declare_id!("strmRqUCoQUgGUan5YhzUZa6KqdzwX5L6FpUxfmKg5m");
#[program]
pub mod streamflow_sdk {
use super::*;
#[allow(unused_variables)]
pub fn create(
ctx: Context<Create>,
start_time: u64,
net_amount_deposited: u64,
period: u64,
amount_per_period: u64,
cliff: u64,
cliff_amount: u64,
cancelable_by_sender: bool,
cancelable_by_recipient: bool,
automatic_withdrawal: bool,
transferable_by_sender: bool,
transferable_by_recipient: bool,
can_topup: bool,
stream_name: [u8; 64],
withdraw_frequency: u64,
pausable: Option<bool>,
can_update_rate: Option<bool>,
) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn create_v2(
ctx: Context<Create>,
start_time: u64,
net_amount_deposited: u64,
period: u64,
amount_per_period: u64,
cliff: u64,
cliff_amount: u64,
cancelable_by_sender: bool,
cancelable_by_recipient: bool,
automatic_withdrawal: bool,
transferable_by_sender: bool,
transferable_by_recipient: bool,
can_topup: bool,
stream_name: [u8; 64],
withdraw_frequency: u64,
pausable: bool,
can_update_rate: bool,
nonce: u32,
) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn create_unchecked(
ctx: Context<CreateUnchecked>,
start_time: u64,
net_amount_deposited: u64,
period: u64,
amount_per_period: u64,
cliff: u64,
cliff_amount: u64,
cancelable_by_sender: bool,
cancelable_by_recipient: bool,
automatic_withdrawal: bool,
transferable_by_sender: bool,
transferable_by_recipient: bool,
can_topup: bool,
stream_name: [u8; 64],
withdraw_frequency: u64,
recipient: Pubkey,
partner: Pubkey,
pausable: bool,
can_update_rate: bool,
) -> Result<()> { Ok(()) }
#[allow(unused_variables)]
pub fn create_unchecked_v2(
ctx: Context<CreateUnchecked>,
start_time: u64,
net_amount_deposited: u64,
period: u64,
amount_per_period: u64,
cliff: u64,
cliff_amount: u64,
cancelable_by_sender: bool,
cancelable_by_recipient: bool,
automatic_withdrawal: bool,
transferable_by_sender: bool,
transferable_by_recipient: bool,
can_topup: bool,
stream_name: [u8; 64],
withdraw_frequency: u64,
recipient: Pubkey,
partner: Pubkey,
pausable: bool,
can_update_rate: bool,
nonce: u32,
) -> Result<()> { Ok(()) }
#[allow(unused_variables)]
pub fn create_unchecked_with_payer(
ctx: Context<CreateUncheckedWithPayer>,
start_time: u64,
net_amount_deposited: u64,
period: u64,
amount_per_period: u64,
cliff: u64,
cliff_amount: u64,
cancelable_by_sender: bool,
cancelable_by_recipient: bool,
automatic_withdrawal: bool,
transferable_by_sender: bool,
transferable_by_recipient: bool,
can_topup: bool,
stream_name: [u8; 64],
withdraw_frequency: u64,
recipient: Pubkey,
partner: Pubkey,
pausable: bool,
can_update_rate: bool,
) -> Result<()> { Ok(()) }
#[allow(unused_variables)]
pub fn create_unchecked_with_payer_v2(
ctx: Context<CreateUncheckedWithPayer>,
start_time: u64,
net_amount_deposited: u64,
period: u64,
amount_per_period: u64,
cliff: u64,
cliff_amount: u64,
cancelable_by_sender: bool,
cancelable_by_recipient: bool,
automatic_withdrawal: bool,
transferable_by_sender: bool,
transferable_by_recipient: bool,
can_topup: bool,
stream_name: [u8; 64],
withdraw_frequency: u64,
recipient: Pubkey,
partner: Pubkey,
pausable: bool,
can_update_rate: bool,
nonce: u32,
) -> Result<()> { Ok(()) }
#[allow(unused_variables)]
pub fn update(
ctx: Context<Update>,
enable_automatic_withdrawal: Option<bool>,
withdraw_frequency: Option<u64>,
amount_per_period: Option<u64>,
transferable_by_sender: Option<bool>,
transferable_by_recipient: Option<bool>,
cancelable_by_sender: Option<bool>,
) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn withdraw(ctx: Context<Withdraw>, amount: u64) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn cancel(ctx: Context<Cancel>) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn pause(ctx: Context<Pause>) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn unpause(ctx: Context<UnPause>) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn transfer_recipient(ctx: Context<Transfer>) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn transfer_sender(ctx: Context<TransferSender>) -> Result<()> {
Ok(())
}
#[allow(unused_variables)]
pub fn topup(ctx: Context<Topup>, amount: u64) -> Result<()> {
Ok(())
}
}
#[derive(Accounts)]
pub struct Create<'info> {
#[account(mut)]
pub sender: Signer<'info>,
#[account(mut)]
pub sender_tokens: AccountInfo<'info>,
#[account(mut)]
pub recipient: AccountInfo<'info>,
#[account(mut, signer)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub escrow_tokens: AccountInfo<'info>,
#[account(mut)]
pub recipient_tokens: AccountInfo<'info>,
#[account(mut)]
pub streamflow_treasury: AccountInfo<'info>,
#[account(mut)]
pub streamflow_treasury_tokens: AccountInfo<'info>,
#[account(mut)]
pub withdrawor: AccountInfo<'info>,
#[account(mut)]
pub partner: AccountInfo<'info>,
#[account(mut)]
pub partner_tokens: AccountInfo<'info>,
pub mint: Account<'info, Mint>,
pub fee_oracle: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub timelock_program: AccountInfo<'info>,
pub token_program: Program<'info, Token>,
pub associated_token_program: Program<'info, AssociatedToken>,
pub system_program: Program<'info, System>,
}
#[derive(Accounts)]
pub struct CreateUnchecked<'info> {
#[account(mut)]
pub sender: Signer<'info>,
#[account(mut)]
pub sender_tokens: AccountInfo<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub escrow_tokens: AccountInfo<'info>,
#[account(mut)]
pub withdrawor: AccountInfo<'info>,
pub mint: Account<'info, Mint>,
pub fee_oracle: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub timelock_program: AccountInfo<'info>,
pub token_program: Program<'info, Token>,
pub system_program: Program<'info, System>,
}
#[derive(Accounts)]
pub struct CreateUncheckedWithPayer<'info> {
#[account(mut)]
pub payer: Signer<'info>,
#[account(mut)]
pub sender: Signer<'info>,
#[account(mut)]
pub sender_tokens: AccountInfo<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub escrow_tokens: AccountInfo<'info>,
#[account(mut)]
pub withdrawor: AccountInfo<'info>,
pub mint: Account<'info, Mint>,
pub fee_oracle: AccountInfo<'info>,
pub rent: Sysvar<'info, Rent>,
pub timelock_program: AccountInfo<'info>,
pub token_program: Program<'info, Token>,
pub system_program: Program<'info, System>,
}
#[derive(Accounts)]
pub struct Update<'info> {
#[account(mut)]
pub sender: Signer<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub withdrawor: AccountInfo<'info>,
pub system_program: Program<'info, System>,
}
#[derive(Accounts)]
pub struct Pause<'info> {
#[account()]
pub sender: Signer<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
}
#[derive(Accounts)]
pub struct UnPause<'info> {
#[account()]
pub sender: Signer<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
}
#[derive(Accounts)]
pub struct Withdraw<'info> {
#[account()]
pub authority: Signer<'info>,
#[account(mut)]
pub recipient: AccountInfo<'info>,
#[account(mut)]
pub recipient_tokens: Account<'info, TokenAccount>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub escrow_tokens: Account<'info, TokenAccount>,
#[account(mut)]
pub streamflow_treasury: AccountInfo<'info>,
#[account(mut)]
pub streamflow_treasury_tokens: AccountInfo<'info>,
#[account(mut)]
pub partner: AccountInfo<'info>,
#[account(mut)]
pub partner_tokens: AccountInfo<'info>,
#[account(mut)]
pub mint: Account<'info, Mint>,
pub token_program: Program<'info, Token>,
}
#[derive(Accounts)]
pub struct Cancel<'info> {
#[account()]
pub authority: Signer<'info>,
#[account(mut)]
pub sender: AccountInfo<'info>,
#[account(mut)]
pub sender_tokens: Account<'info, TokenAccount>,
#[account(mut)]
pub recipient: AccountInfo<'info>,
#[account(mut)]
pub recipient_tokens: Account<'info, TokenAccount>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub escrow_tokens: Account<'info, TokenAccount>,
#[account(mut)]
pub streamflow_treasury: AccountInfo<'info>,
#[account(mut)]
pub streamflow_treasury_tokens: AccountInfo<'info>,
#[account(mut)]
pub partner: AccountInfo<'info>,
#[account(mut)]
pub partner_tokens: AccountInfo<'info>,
#[account(mut)]
pub mint: Account<'info, Mint>,
pub token_program: Program<'info, Token>,
}
#[derive(Accounts)]
pub struct Transfer<'info> {
#[account(mut)]
pub authority: Signer<'info>,
#[account(mut)]
pub new_recipient: AccountInfo<'info>,
#[account(mut)]
pub new_recipient_tokens: AccountInfo<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
pub mint: Account<'info, Mint>,
pub rent: Sysvar<'info, Rent>,
pub token_program: Program<'info, Token>,
pub associated_token_program: Program<'info, AssociatedToken>,
pub system_program: Program<'info, System>,
}
#[derive(Accounts)]
pub struct TransferSender<'info> {
pub sender: Signer<'info>,
pub new_sender: Signer<'info>,
pub new_sender_tokens: AccountInfo<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
pub mint: Account<'info, Mint>,
pub token_program: Program<'info, Token>,
}
#[derive(Accounts)]
pub struct Topup<'info> {
#[account(mut)]
pub sender: Signer<'info>,
#[account(mut)]
pub sender_tokens: AccountInfo<'info>,
#[account(mut)]
pub metadata: AccountInfo<'info>,
#[account(mut)]
pub escrow_tokens: Account<'info, TokenAccount>,
#[account(mut)]
pub streamflow_treasury: AccountInfo<'info>,
#[account(mut)]
pub streamflow_treasury_tokens: AccountInfo<'info>,
#[account(mut)]
pub withdrawor: AccountInfo<'info>,
#[account(mut)]
pub partner: AccountInfo<'info>,
#[account(mut)]
pub partner_tokens: AccountInfo<'info>,
pub mint: Account<'info, Mint>,
pub token_program: Program<'info, Token>,
pub system_program: Program<'info, System>,
}