triad_protocol/state/
stake.rs1use anchor_lang::prelude::*;
2
3#[account]
4pub struct StakeV2 {
5 pub bump: u8,
6 pub authority: Pubkey,
7 pub init_ts: i64,
8 pub withdraw_ts: i64,
9 pub claimed_ts: i64,
10 pub name: String,
11 pub mint: Pubkey,
12 pub boost: bool,
13 pub stake_vault: Pubkey,
14 pub claimed: u64,
15 pub available: u64,
16 pub amount: u64,
17}
18
19#[account]
20pub struct StakeVault {
21 pub bump: u8,
22 pub authority: Pubkey,
23 pub init_ts: i64,
24 pub end_ts: i64,
25 pub amount: u64,
26 pub amount_paid: u64,
27 pub token_decimals: u8,
28 pub nft_staked: u64,
29 pub slots: u64,
30 pub is_locked: bool,
31 pub name: String,
32 pub collection: String,
33 pub token_mint: Pubkey,
34 pub week: u8,
35 pub token_staked: u64,
36 pub sum_all_users: f64,
37 pub padding: [u8; 32],
38}
39
40#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
41pub struct StakeNFTArgs {
42 pub name: String,
43 pub stake_vault: String,
44}
45
46#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
47pub struct StakeTokenArgs {
48 pub stake_vault: String,
49 pub name: String,
50 pub amount: u64,
51}
52
53#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
54pub struct InitializeStakeVaultArgs {
55 pub name: String,
56 pub slots: u64,
57 pub collection: String,
58 pub amount: u64,
59}
60
61#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
62pub struct UpdateStakeVaultStatusArgs {
63 pub is_locked: bool,
64 pub init_ts: i64,
65 pub slots: u64,
66}
67
68#[derive(AnchorSerialize, AnchorDeserialize, Clone)]
69pub struct DepositStakeRewardsArgs {
70 pub amount: u64,
71 pub stake_vault: String,
72}
73
74impl StakeVault {
75 pub const PREFIX_SEED: &'static [u8] = b"stake_vault";
76
77 pub const SPACE: usize = 8 + std::mem::size_of::<Self>();
78}
79
80impl StakeV2 {
81 pub const PREFIX_SEED: &'static [u8] = b"stake";
82
83 pub const SPACE: usize = 8 + std::mem::size_of::<Self>();
84}