1mod config;
2mod game;
3mod dojo;
4mod shogun;
5mod barracks;
6mod forge;
7mod tasks;
8mod treasury;
9mod referral;
10mod scenes;
11mod prestige;
12
13pub use config::*;
14pub use game::*;
15pub use dojo::*;
16pub use shogun::*;
17pub use barracks::*;
18pub use forge::*;
19pub use tasks::*;
20pub use treasury::*;
21pub use referral::*;
22pub use scenes::*;
23pub use prestige::*;
24
25use crate::consts::*;
26use solana_program::pubkey::Pubkey;
27
28#[repr(u8)]
29#[derive(Clone, Copy, Debug, Eq, PartialEq, num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
30pub enum DojosAccount {
31 Config = 0,
32 Game = 8,
33 Dojo = 1,
34 Barracks = 3,
35 Forge = 4,
36 Treasury = 5,
37 Referral = 6,
38 Scenes = 7,
39 Tasks = 10,
40 Prestige = 11,
41}
42
43pub fn config_pda(program_id: &Pubkey) -> (Pubkey, u8) {
45 Pubkey::find_program_address(&[CONFIG], program_id)
46}
47
48pub fn game_pda(program_id: &Pubkey) -> (Pubkey, u8) {
50 Pubkey::find_program_address(&[GAME], program_id)
51}
52
53pub fn dojo_pda(program_id: &Pubkey, owner: &Pubkey) -> (Pubkey, u8) {
55 Pubkey::find_program_address(&[DOJO, owner.as_ref()], program_id)
56}
57
58pub fn barracks_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
60 Pubkey::find_program_address(&[BARRACKS, dojo.as_ref()], program_id)
61}
62
63pub fn forge_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
65 Pubkey::find_program_address(&[FORGE, dojo.as_ref()], program_id)
66}
67
68pub fn tasks_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
70 Pubkey::find_program_address(&[TASKS, dojo.as_ref()], program_id)
71}
72
73pub fn treasury_pda(program_id: &Pubkey) -> (Pubkey, u8) {
75 Pubkey::find_program_address(&[TREASURY], program_id)
76}
77
78pub fn referral_pda(program_id: &Pubkey, referrer_dojo: &Pubkey) -> (Pubkey, u8) {
80 Pubkey::find_program_address(&[REFERRAL, referrer_dojo.as_ref()], program_id)
81}
82
83pub fn scenes_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
85 Pubkey::find_program_address(&[SCENES, dojo.as_ref()], program_id)
86}
87
88pub fn prestige_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
90 Pubkey::find_program_address(&[PRESTIGE, dojo.as_ref()], program_id)
91}