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