mirror of
https://github.com/d0zingcat/ore.git
synced 2026-06-06 15:11:30 +00:00
update sdk
This commit is contained in:
@@ -117,21 +117,31 @@ pub fn program_log(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn mine(signer: Pubkey, id: u64, amount: u64) -> Instruction {
|
// let [signer_info, authority_info, block_info, commitment_info, market_info, miner_info, mint_hash_info, mint_ore_info, permit_info, recipient_info, treasury_info, system_program, token_program, slot_hashes_sysvar, ore_program] =
|
||||||
|
|
||||||
|
pub fn mine(signer: Pubkey, authority: Pubkey, id: u64, amount: u64) -> Instruction {
|
||||||
let block_adddress = block_pda(id).0;
|
let block_adddress = block_pda(id).0;
|
||||||
|
let commitment_address = commitment_pda(id).0;
|
||||||
let market_address = market_pda(id).0;
|
let market_address = market_pda(id).0;
|
||||||
let base_mint_address = mint_pda(id).0;
|
let base_mint_address = mint_pda(id).0;
|
||||||
let miner_address = miner_pda(signer).0;
|
let miner_address = miner_pda(signer).0;
|
||||||
|
let permit_address = permit_pda(signer, id).0;
|
||||||
let sender = get_associated_token_address(&signer, &base_mint_address);
|
let sender = get_associated_token_address(&signer, &base_mint_address);
|
||||||
|
let recipient = get_associated_token_address(&authority, &MINT_ADDRESS);
|
||||||
Instruction {
|
Instruction {
|
||||||
program_id: crate::ID,
|
program_id: crate::ID,
|
||||||
accounts: vec![
|
accounts: vec![
|
||||||
AccountMeta::new(signer, true),
|
AccountMeta::new(signer, true),
|
||||||
|
AccountMeta::new(authority, false),
|
||||||
AccountMeta::new(block_adddress, false),
|
AccountMeta::new(block_adddress, false),
|
||||||
|
AccountMeta::new(commitment_address, false),
|
||||||
AccountMeta::new(market_address, false),
|
AccountMeta::new(market_address, false),
|
||||||
AccountMeta::new(miner_address, false),
|
AccountMeta::new(miner_address, false),
|
||||||
|
AccountMeta::new(base_mint_address, false),
|
||||||
AccountMeta::new(MINT_ADDRESS, false),
|
AccountMeta::new(MINT_ADDRESS, false),
|
||||||
AccountMeta::new(sender, false),
|
AccountMeta::new(permit_address, false),
|
||||||
|
AccountMeta::new(recipient, false),
|
||||||
|
AccountMeta::new(TREASURY_ADDRESS, false),
|
||||||
AccountMeta::new_readonly(system_program::ID, false),
|
AccountMeta::new_readonly(system_program::ID, false),
|
||||||
AccountMeta::new_readonly(spl_token::ID, false),
|
AccountMeta::new_readonly(spl_token::ID, false),
|
||||||
AccountMeta::new_readonly(crate::ID, false),
|
AccountMeta::new_readonly(crate::ID, false),
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
use ore_api::prelude::*;
|
use ore_api::prelude::*;
|
||||||
use solana_program::log::sol_log;
|
|
||||||
use steel::*;
|
use steel::*;
|
||||||
|
|
||||||
/// No-op, use instruction data for logging w/o truncation.
|
/// No-op, use instruction data for logging w/o truncation.
|
||||||
@@ -7,7 +6,6 @@ pub fn process_log(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult {
|
|||||||
// Load data
|
// Load data
|
||||||
let block_id_bytes = data[..8].try_into().unwrap();
|
let block_id_bytes = data[..8].try_into().unwrap();
|
||||||
let block_id = u64::from_le_bytes(block_id_bytes);
|
let block_id = u64::from_le_bytes(block_id_bytes);
|
||||||
sol_log(format!("Block ID: {}", block_id).as_str());
|
|
||||||
|
|
||||||
// Load accounts.
|
// Load accounts.
|
||||||
let [signer_info] = accounts else {
|
let [signer_info] = accounts else {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ pub fn process_mine(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult
|
|||||||
|
|
||||||
// Load accounts.
|
// Load accounts.
|
||||||
let clock = Clock::get()?;
|
let clock = Clock::get()?;
|
||||||
let [signer_info, authority_info, block_info, commitment_info, market_info, miner_info, mint_hash_info, mint_ore_info, permit_info, recipient_info, treasury_info, system_program, token_program, slot_hashes_sysvar, ore_program] =
|
let [signer_info, authority_info, block_info, commitment_info, market_info, miner_info, mint_hash_info, mint_ore_info, permit_info, recipient_info, treasury_info, system_program, token_program, ore_program, slot_hashes_sysvar] =
|
||||||
accounts
|
accounts
|
||||||
else {
|
else {
|
||||||
return Err(ProgramError::NotEnoughAccountKeys);
|
return Err(ProgramError::NotEnoughAccountKeys);
|
||||||
@@ -45,8 +45,8 @@ pub fn process_mine(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult
|
|||||||
treasury_info.has_address(&TREASURY_ADDRESS)?;
|
treasury_info.has_address(&TREASURY_ADDRESS)?;
|
||||||
system_program.is_program(&system_program::ID)?;
|
system_program.is_program(&system_program::ID)?;
|
||||||
token_program.is_program(&spl_token::ID)?;
|
token_program.is_program(&spl_token::ID)?;
|
||||||
slot_hashes_sysvar.is_sysvar(&sysvar::slot_hashes::ID)?;
|
|
||||||
ore_program.is_program(&ore_api::ID)?;
|
ore_program.is_program(&ore_api::ID)?;
|
||||||
|
slot_hashes_sysvar.is_sysvar(&sysvar::slot_hashes::ID)?;
|
||||||
|
|
||||||
// Reduce permit amount.
|
// Reduce permit amount.
|
||||||
let amount = permit.commitment.min(amount);
|
let amount = permit.commitment.min(amount);
|
||||||
|
|||||||
Reference in New Issue
Block a user