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