Skip to main content

greedy_solana/
lib.rs

1#![allow(unexpected_cfgs)]
2
3use anchor_lang::prelude::*;
4use context::*;
5
6mod context;
7mod errors;
8mod state;
9
10pub use state::sale::Sale;
11
12declare_id!("Be1tUaMkbDZEX65BgXHNwh7wrNRWUwNH92ggsB8UuLJd");
13
14#[program]
15pub mod greedy_solana {
16    use super::*;
17
18    pub fn initialize_contract_state(
19        ctx: Context<InitializeContractState>,
20        authority: Pubkey,
21        multiplier: u64,
22        fee: u64,
23    ) -> Result<()> {
24        ctx.accounts
25            .initialize_contract_state(authority, multiplier, fee)
26    }
27
28    pub fn set_contract_authority(
29        ctx: Context<UpdateContractState>,
30        authority: Pubkey,
31    ) -> Result<()> {
32        ctx.accounts.set_authority(authority)
33    }
34
35    pub fn set_contract_multiplier(
36        ctx: Context<UpdateContractState>,
37        multiplier: u64,
38    ) -> Result<()> {
39        ctx.accounts.set_multiplier(multiplier)
40    }
41
42    pub fn set_contract_fee(ctx: Context<UpdateContractState>, fee: u64) -> Result<()> {
43        ctx.accounts.set_fee(fee)
44    }
45
46    pub fn update_sale(
47        ctx: Context<UpdateSale>,
48        sale_id: u128,
49        target_deposit: u64,
50        description: [u8; 256],
51        name: [u8; 32],
52        end_date: i64,
53        unlock_range: [u16; 2],
54    ) -> Result<()> {
55        ctx.accounts.update_sale(
56            sale_id,
57            target_deposit,
58            description,
59            name,
60            end_date,
61            unlock_range,
62        )
63    }
64
65    pub fn create_sale(
66        ctx: Context<CreateSale>,
67        sale_id: u128,
68        args: CreateSaleArgs,
69    ) -> Result<()> {
70        ctx.accounts.create_sale(sale_id, args, ctx.bumps.mint)
71    }
72
73    pub fn update_sale_name(ctx: Context<UpdateSale>, sale_id: u128, name: [u8; 32]) -> Result<()> {
74        ctx.accounts.update_sale_name(sale_id, name)
75    }
76
77    pub fn update_sale_description(
78        ctx: Context<UpdateSale>,
79        sale_id: u128,
80        description: [u8; 256],
81    ) -> Result<()> {
82        ctx.accounts.update_sale_description(sale_id, description)
83    }
84
85    pub fn update_sale_end_date(
86        ctx: Context<UpdateSale>,
87        sale_id: u128,
88        end_date: i64,
89    ) -> Result<()> {
90        ctx.accounts.update_sale_end_date(sale_id, end_date)
91    }
92
93    pub fn update_mint_metadata_date(
94        ctx: Context<UpdateMintMetadata>,
95        sale_id: u128,
96        args: MetadataArgs,
97    ) -> Result<()> {
98        ctx.accounts.update_metadata(sale_id, args, ctx.bumps.mint)
99    }
100
101    pub fn update_sale_unlock_range(
102        ctx: Context<UpdateSale>,
103        sale_id: u128,
104        unlock_range: [u16; 2],
105    ) -> Result<()> {
106        ctx.accounts.update_sale_unlock_range(sale_id, unlock_range)
107    }
108
109    pub fn update_sale_target_deposit(
110        ctx: Context<UpdateSale>,
111        sale_id: u128,
112        target_deposit: u64,
113    ) -> Result<()> {
114        ctx.accounts
115            .update_sale_target_deposit(sale_id, target_deposit)
116    }
117
118    pub fn complete_sale(ctx: Context<CompleteSale>, sale_id: u128) -> Result<()> {
119        ctx.accounts.complete_sale(sale_id, ctx.bumps.sale)
120    }
121
122    pub fn create_amm(ctx: Context<CreateAmm>, sale_id: u128) -> Result<()> {
123        ctx.accounts.create_amm(sale_id)
124    }
125
126    pub fn participate_in_sale(
127        ctx: Context<ParticipateInSale>,
128        sale_id: u128,
129        amount: u64,
130        claim_hour: u16,
131    ) -> Result<()> {
132        ctx.accounts
133            .participate_in_sale(sale_id, amount, claim_hour)
134    }
135
136    pub fn claim_sale_reward(ctx: Context<ClaimSaleReward>, sale_id: u128) -> Result<()> {
137        ctx.accounts.claim_sale_reward(sale_id, ctx.bumps.sale)
138    }
139
140    pub fn recharge(ctx: Context<Recharge>, sale_id: u128) -> Result<()> {
141        ctx.accounts.racharge(sale_id)
142    }
143}