This commit is contained in:
Hardhat Chad
2024-05-02 15:03:56 +00:00
parent 813006cc99
commit dc84a347e7
8 changed files with 47 additions and 7 deletions

View File

@@ -8,6 +8,14 @@ use crate::{
TREASURY_ADDRESS,
};
/// Stake deposits Ore into a miner's proof account to earn multiplier. Its responsibilies include:
/// 1. Transfer tokens from the miner to the treasury account.
/// 2. Increment the miner's claimable balance.
///
/// Safety requirements:
/// - Stake is a permissionless instruction and can be called by any user.
/// - Can only succeed if the amount is less than or equal to the miner's transferable tokens.
/// - The provided beneficiary, proof, sender, treasury token account, and token program must be valid.
pub fn process_stake<'a, 'info>(
_program_id: &Pubkey,
accounts: &'a [AccountInfo<'info>],