1mod config;
2mod dojo;
3mod shogun;
4mod barracks;
5mod battle;
6mod forge;
7mod tasks;
8mod treasury;
9mod referral;
10mod scenes;
11mod seeker;
12mod stake;
13pub use config::*;
14pub use dojo::*;
15pub use shogun::*;
16pub use barracks::*;
17pub use battle::*;
18pub use forge::*;
19pub use tasks::*;
20pub use treasury::*;
21pub use referral::*;
22pub use scenes::*;
23pub use seeker::*;
24pub use stake::*;
25
26use crate::consts::*;
27use solana_program::pubkey::Pubkey;
28
29#[repr(u8)]
30#[derive(Clone, Copy, Debug, Eq, PartialEq, num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
31pub enum DojosAccount {
32 Config = 0,
33 Dojo = 1,
34 Barracks = 3,
35 Battle = 13,
36 Forge = 4,
37 Treasury = 5,
38 Referral = 6,
39 Scenes = 7,
40 Stake = 9,
41 Tasks = 10,
42 Seeker = 12,
43}
44
45pub fn config_pda(program_id: &Pubkey) -> (Pubkey, u8) {
47 Pubkey::find_program_address(&[CONFIG], 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 battle_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
62 Pubkey::find_program_address(&[BATTLE, dojo.as_ref()], program_id)
63}
64
65pub fn forge_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
67 Pubkey::find_program_address(&[FORGE, dojo.as_ref()], program_id)
68}
69
70pub fn tasks_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
72 Pubkey::find_program_address(&[TASKS, dojo.as_ref()], program_id)
73}
74
75pub fn treasury_pda(program_id: &Pubkey) -> (Pubkey, u8) {
77 Pubkey::find_program_address(&[TREASURY], program_id)
78}
79
80pub fn referral_pda(program_id: &Pubkey, referrer_dojo: &Pubkey) -> (Pubkey, u8) {
82 Pubkey::find_program_address(&[REFERRAL, referrer_dojo.as_ref()], program_id)
83}
84
85pub fn scenes_pda(program_id: &Pubkey, dojo: &Pubkey) -> (Pubkey, u8) {
87 Pubkey::find_program_address(&[SCENES, dojo.as_ref()], program_id)
88}
89
90pub fn seeker_pda(program_id: &Pubkey, sgt_mint: &Pubkey) -> (Pubkey, u8) {
92 Pubkey::find_program_address(&[SEEKER, sgt_mint.as_ref()], program_id)
93}
94
95pub fn stake_pda(program_id: &Pubkey, authority: &Pubkey) -> (Pubkey, u8) {
97 Pubkey::find_program_address(&[STAKE, authority.as_ref()], program_id)
98}
99