triad-protocol 0.1.4

Triad protocol, trade solana projects
Documentation
use anchor_lang::prelude::*;

#[account]
pub struct StakeV2 {
    pub bump: u8,
    pub authority: Pubkey,
    pub init_ts: i64,
    pub withdraw_ts: i64,
    pub claimed_ts: i64,
    pub name: String,
    pub mint: Pubkey,
    pub boost: bool,
    pub stake_vault: Pubkey,
    pub claimed: u64,
    pub available: u64,
    pub amount: u64,
}

#[account]
pub struct StakeVault {
    pub bump: u8,
    pub authority: Pubkey,
    pub init_ts: i64,
    pub end_ts: i64,
    pub amount: u64,
    pub amount_paid: u64,
    pub token_decimals: u8,
    pub nft_staked: u64,
    pub slots: u64,
    pub is_locked: bool,
    pub name: String,
    pub collection: String,
    pub token_mint: Pubkey,
    pub week: u8,
    pub token_staked: u64,
    pub sum_all_users: f64,
    pub padding: [u8; 32],
}

#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct StakeNFTArgs {
    pub name: String,
    pub stake_vault: String,
}

#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct StakeTokenArgs {
    pub stake_vault: String,
    pub name: String,
    pub amount: u64,
}

#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct InitializeStakeVaultArgs {
    pub name: String,
    pub slots: u64,
    pub collection: String,
    pub amount: u64,
}

#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct UpdateStakeVaultStatusArgs {
    pub is_locked: bool,
    pub init_ts: i64,
    pub slots: u64,
}

#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
pub struct DepositStakeRewardsArgs {
    pub amount: u64,
    pub stake_vault: String,
}

impl StakeVault {
    pub const PREFIX_SEED: &'static [u8] = b"stake_vault";

    pub const SPACE: usize = 8 + std::mem::size_of::<Self>();
}

impl StakeV2 {
    pub const PREFIX_SEED: &'static [u8] = b"stake";

    pub const SPACE: usize = 8 + std::mem::size_of::<Self>();
}