1use anchor_lang::prelude::*;
2pub use constants::*;
3use errors::*;
4use instructions::*;
5pub use sol_cerberus_macros;
6use state::*;
7
8pub mod constants;
9pub mod errors;
10pub mod instructions;
11pub mod state;
12pub mod utils;
13
14declare_id!("SCERbrcgSPwgkrJ7j4TABr17dhYzdgiwPZUSSfFPt8x");
15
16#[program]
17pub mod sol_cerberus {
18
19 use super::*;
20
21 pub fn initialize_app(ctx: Context<InitializeApp>, app_data: AppData) -> Result<()> {
22 instructions::initialize_app::initialize_app(ctx, app_data)
23 }
24
25 pub fn update_app(ctx: Context<UpdateApp>, app_data: UpdateAppData) -> Result<()> {
26 instructions::update_app::update_app(ctx, app_data)
27 }
28
29 pub fn delete_app(ctx: Context<DeleteApp>) -> Result<()> {
30 instructions::delete_app::delete_app(ctx)
31 }
32
33 pub fn add_rule(ctx: Context<AddRule>, rule_data: RuleData) -> Result<()> {
34 instructions::add_rule::add_rule(ctx, rule_data)
35 }
36
37 pub fn delete_rule(ctx: Context<DeleteRule>) -> Result<()> {
38 instructions::delete_rule::delete_rule(ctx)
39 }
40
41 pub fn assign_role(ctx: Context<AssignRole>, assign_role_data: AssignRoleData) -> Result<()> {
42 instructions::assign_role::assign_role(ctx, assign_role_data)
43 }
44
45 pub fn delete_assigned_role(ctx: Context<DeleteAssignedRole>) -> Result<()> {
46 instructions::delete_assigned_role::delete_assigned_role(ctx)
47 }
48
49 pub fn update_cache(ctx: Context<UpdateCache>, cache_updated: u8) -> Result<()> {
54 instructions::update_cache::update_cache(ctx, cache_updated)
55 }
56
57 pub fn allowed(ctx: Context<Allowed>, allowed_rule: AllowedRule) -> Result<()> {
62 instructions::allowed::allowed(
63 &ctx.accounts.signer,
64 &ctx.accounts.sol_cerberus_app,
65 &ctx.accounts.sol_cerberus_role,
66 &ctx.accounts.sol_cerberus_rule,
67 &ctx.accounts.sol_cerberus_token,
68 &ctx.accounts.sol_cerberus_metadata,
69 &mut ctx.accounts.sol_cerberus_seed,
70 &ctx.accounts.system_program,
71 allowed_rule,
72 )
73 }
74}