mirror of
https://github.com/d0zingcat/ore.git
synced 2026-06-05 07:36:50 +00:00
re-enabled mining
This commit is contained in:
44
program/src/claim_seeker.rs
Normal file
44
program/src/claim_seeker.rs
Normal file
@@ -0,0 +1,44 @@
|
||||
use solana_program::pubkey;
|
||||
use steel::*;
|
||||
|
||||
use spl_token_2022::{
|
||||
extension::{
|
||||
metadata_pointer::MetadataPointer, BaseStateWithExtensions, PodStateWithExtensions,
|
||||
},
|
||||
pod::{PodCOption, PodMint},
|
||||
};
|
||||
|
||||
/// Claims ore for seeker device.
|
||||
pub fn process_claim_seeker(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResult {
|
||||
// Load accounts.
|
||||
let [signer_info, mint_info, _token_info] = accounts else {
|
||||
return Err(ProgramError::NotEnoughAccountKeys);
|
||||
};
|
||||
signer_info.is_signer()?;
|
||||
mint_info.has_owner(&spl_token_2022::ID)?;
|
||||
// token_info.as_associated_token_account(&signer_info.key, &mint_info.key)?;
|
||||
|
||||
// Load mint.
|
||||
let mint_data = mint_info.try_borrow_data()?;
|
||||
let mint = PodStateWithExtensions::<PodMint>::unpack(&mint_data)?;
|
||||
|
||||
// Check mint authority.
|
||||
assert!(
|
||||
mint.base.mint_authority
|
||||
== PodCOption::some(pubkey!("GT2zuHVaZQYZSyQMgJPLzvkmyztfyXg2NJunqFp4p3A4")),
|
||||
"mint authority mismatch"
|
||||
);
|
||||
|
||||
// Check metadata pointer.
|
||||
let ext = mint.get_extension::<MetadataPointer>()?;
|
||||
assert!(
|
||||
ext.authority.0 == pubkey!("GT2zuHVaZQYZSyQMgJPLzvkmyztfyXg2NJunqFp4p3A4"),
|
||||
"metadata authority mismatch"
|
||||
);
|
||||
assert!(
|
||||
ext.metadata_address.0 == pubkey!("GT22s89nU4iWFkNXj1Bw6uYhJJWDRPpShHt4Bk8f99Te"),
|
||||
"metadata address mismatch"
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user