ore_miner_delegation/
lib.rs

1use 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}