ore_miner_delegation/
lib.rs1use instruction::Instructions;
2use solana_program::{
3 account_info::AccountInfo, declare_id, entrypoint::ProgramResult, program_error::ProgramError,
4 pubkey::Pubkey,
5};
6
7mod processor;
8
9pub mod consts;
10pub mod error;
11pub mod instruction;
12pub mod loaders;
13pub mod pda;
14pub mod state;
15pub mod utils;
16pub mod global_boost;
17
18declare_id!("J6XAzG8S5KmoBM8GcCFfF8NmtzD7U3QPnbhNiYwsu9we");
19
20#[cfg(not(feature = "no-entrypoint"))]
21solana_program::entrypoint!(process_instruction);
22
23pub fn process_instruction(
24 program_id: &Pubkey,
25 accounts: &[AccountInfo],
26 instruction_data: &[u8],
27) -> ProgramResult {
28 if program_id.ne(&crate::id()) {
29 return Err(ProgramError::IncorrectProgramId);
30 }
31
32 let (instruction, data) = instruction_data
33 .split_first()
34 .ok_or(ProgramError::InvalidInstructionData)?;
35
36 let instruction =
37 Instructions::try_from(*instruction).or(Err(ProgramError::InvalidInstructionData))?;
38
39 match instruction {
40 Instructions::OpenManagedProof => {
41 processor::open_managed_proof::process_open_managed_proof(accounts, data)?;
42 }
43 Instructions::Mine => {
44 processor::mine::process_mine(accounts, data)?;
45 }
46 Instructions::InitDelegateStake => {
47 processor::init_delegate_stake::process_init_delegate_stake(accounts, data)?;
48 }
49 Instructions::DelegateStake => {
50 processor::delegate_stake::process_delegate_stake(accounts, data)?;
51 }
52 Instructions::UndelegateStake => {
53 processor::undelegate_stake::process_undelegate_stake(accounts, data)?;
54 }
55 Instructions::OpenManagedProofBoost => {
56 processor::open_managed_proof_boost::process_open_managed_proof_boost(accounts, data)?;
57 }
58 Instructions::InitDelegateBoost => {
59 processor::init_delegate_boost::process_init_delegate_boost(accounts, data)?;
60 }
61 Instructions::DelegateBoost => {
62 processor::delegate_boost::process_delegate_boost(accounts, data)?;
63 }
64 Instructions::UndelegateBoost => {
65 processor::undelegate_boost::process_undelegate_boost(accounts, data)?;
66 }
67 Instructions::InitDelegateBoostV2 => {
68 processor::init_delegate_boost_v2::process_init_delegate_boost_v2(accounts, data)?;
69 }
70 Instructions::DelegateBoostV2 => {
71 processor::delegate_boost_v2::process_delegate_boost_v2(accounts, data)?;
72 }
73 Instructions::UndelegateBoostV2 => {
74 processor::undelegate_boost_v2::process_undelegate_boost_v2(accounts, data)?;
75 }
76 Instructions::MigrateDelegateBoostToV2 => {
77 processor::migrate_delegate_boost_to_v2::process_migrate_delegate_boost_v2(accounts, data)?;
78 }
79 Instructions::CloseDelegateBoostV2 => {
80 processor::close_delegate_boost_v2::process_close_delegate_boost_v2(accounts, data)?;
81 }
82 Instructions::RegisterGlobalBoost => {
83 processor::register_global_boost::process_register_global_boost(accounts, data)?;
84 }
85 Instructions::RotateGlobalBoost => {
86 processor::rotate_global_boost::process_rotate_global_boost(accounts, data)?;
87 }
88 Instructions::UpdateMiningAuthority => {
89 processor::update_miner_authority::process_update_miner_authority(accounts, data)?;
90 }
91 }
92
93 Ok(())
94}