1pub mod error;
2pub mod processors;
3pub mod state;
4pub mod utils;
5
6use anchor_lang::prelude::*;
7use processors::*;
8use state::MembershipModel;
9
10declare_id!("hyDQ4Nz1eYyegS6JfenyKwKzYxRsCWCriYSAjtzP4Vg");
11#[program]
12pub mod hydra {
13 use super::*;
14
15 pub fn process_init(
16 ctx: Context<InitializeFanout>,
17 args: InitializeFanoutArgs,
18 model: MembershipModel,
19 ) -> Result<()> {
20 init(ctx, args, model)
21 }
22
23 pub fn process_init_for_mint(
24 ctx: Context<InitializeFanoutForMint>,
25 bump_seed: u8,
26 ) -> Result<()> {
27 init_for_mint(ctx, bump_seed)
28 }
29
30 pub fn process_add_member_wallet(
31 ctx: Context<AddMemberWallet>,
32 args: AddMemberArgs,
33 ) -> Result<()> {
34 add_member_wallet(ctx, args)
35 }
36
37 pub fn process_add_member_nft(
38 ctx: Context<AddMemberWithNFT>,
39 args: AddMemberArgs,
40 ) -> Result<()> {
41 add_member_nft(ctx, args)
42 }
43
44 pub fn process_set_token_member_stake(
45 ctx: Context<SetTokenMemberStake>,
46 shares: u64,
47 ) -> Result<()> {
48 set_token_member_stake(ctx, shares)
49 }
50
51 pub fn process_set_for_token_member_stake(
52 ctx: Context<SetForTokenMemberStake>,
53 shares: u64,
54 ) -> Result<()> {
55 set_for_token_member_stake(ctx, shares)
56 }
57
58 pub fn process_distribute_nft(
59 ctx: Context<DistributeNftMember>,
60 distribute_for_mint: bool,
61 ) -> Result<()> {
62 distribute_for_nft(ctx, distribute_for_mint)
63 }
64
65 pub fn process_distribute_wallet(
66 ctx: Context<DistributeWalletMember>,
67 distribute_for_mint: bool,
68 ) -> Result<()> {
69 distribute_for_wallet(ctx, distribute_for_mint)
70 }
71
72 pub fn process_distribute_token(
73 ctx: Context<DistributeTokenMember>,
74 distribute_for_mint: bool,
75 ) -> Result<()> {
76 distribute_for_token(ctx, distribute_for_mint)
77 }
78
79 pub fn process_sign_metadata(ctx: Context<SignMetadata>) -> Result<()> {
80 sign_metadata(ctx)
81 }
82
83 pub fn process_transfer_shares(ctx: Context<TransferShares>, shares: u64) -> Result<()> {
84 transfer_shares(ctx, shares)
85 }
86
87 pub fn process_unstake(ctx: Context<UnStakeTokenMember>) -> Result<()> {
88 unstake(ctx)
89 }
90}