From 7f98f16512517a48e4e2b64faa3fc73b914b9a7f Mon Sep 17 00:00:00 2001 From: Hardhat Chad Date: Thu, 9 Oct 2025 08:51:13 -0700 Subject: [PATCH] release --- api/src/state/round.rs | 2 +- cli/src/main.rs | 2 +- program/src/checkpoint.rs | 3 +++ program/src/deploy.rs | 3 +-- program/src/deposit.rs | 7 ------- program/src/lib.rs | 16 +++++++--------- program/src/migrate_treasury.rs | 1 + program/src/whitelist.rs | 1 + program/src/withdraw.rs | 7 ------- 9 files changed, 15 insertions(+), 27 deletions(-) diff --git a/api/src/state/round.rs b/api/src/state/round.rs index 62789cb..23992be 100644 --- a/api/src/state/round.rs +++ b/api/src/state/round.rs @@ -90,7 +90,7 @@ impl Round { let r3 = u16::from_le_bytes(rng[4..6].try_into().unwrap()); let r4 = u16::from_le_bytes(rng[6..8].try_into().unwrap()); let r = r1 ^ r2 ^ r3 ^ r4; - r % 4 == 0 + r % 3 == 0 } pub fn did_hit_motherlode(&self, rng: u64) -> bool { diff --git a/cli/src/main.rs b/cli/src/main.rs index 8f57988..5d0114c 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -737,7 +737,7 @@ async fn get_miners_participating( rpc: &RpcClient, round_id: u64, ) -> Result, anyhow::Error> { - let filter = RpcFilterType::Memcmp(Memcmp::new_base58_encoded(472, &round_id.to_le_bytes())); + let filter = RpcFilterType::Memcmp(Memcmp::new_base58_encoded(512, &round_id.to_le_bytes())); let miners = get_program_accounts::(rpc, ore_api::ID, vec![filter]).await?; Ok(miners) } diff --git a/program/src/checkpoint.rs b/program/src/checkpoint.rs index 2371cef..d52ec2d 100644 --- a/program/src/checkpoint.rs +++ b/program/src/checkpoint.rs @@ -111,6 +111,9 @@ pub fn process_checkpoint(accounts: &[AccountInfo<'_>], _data: &[u8]) -> Program rewards_sol = miner.deployed.iter().sum::(); } + // Checkpoint rewards. + miner.update_rewards(treasury); + // Checkpoint miner. miner.checkpoint_id = round.id; miner.rewards_ore += rewards_ore; diff --git a/program/src/deploy.rs b/program/src/deploy.rs index 08ff1bb..d813b3b 100644 --- a/program/src/deploy.rs +++ b/program/src/deploy.rs @@ -23,8 +23,7 @@ pub fn process_deploy(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResul .has_seeds(&[AUTOMATION, &authority_info.key.to_bytes()], &ore_api::ID)?; let board = board_info .as_account_mut::(&ore_api::ID)? - .assert_mut(|b| clock.slot >= b.start_slot && clock.slot < b.end_slot)? - .assert_mut(|b| b.round_id < 15115)?; + .assert_mut(|b| clock.slot >= b.start_slot && clock.slot < b.end_slot)?; let round = round_info .as_account_mut::(&ore_api::ID)? .assert_mut(|r| r.id == board.round_id)?; diff --git a/program/src/deposit.rs b/program/src/deposit.rs index b80fbb3..9835ef8 100644 --- a/program/src/deposit.rs +++ b/program/src/deposit.rs @@ -3,8 +3,6 @@ use solana_program::log::sol_log; use spl_token::amount_to_ui_amount; use steel::*; -use crate::AUTHORIZED_ACCOUNTS; - /// Deposits ORE into the staking contract. pub fn process_deposit(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult { // Parse data. @@ -30,11 +28,6 @@ pub fn process_deposit(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResu system_program.is_program(&system_program::ID)?; token_program.is_program(&spl_token::ID)?; - // Check whitelist - if !AUTHORIZED_ACCOUNTS.contains(&signer_info.key) { - return Err(trace("Not authorized", OreError::NotAuthorized.into())); - } - // Open stake account. let stake = if stake_info.data_is_empty() { create_program_account::( diff --git a/program/src/lib.rs b/program/src/lib.rs index b0f7872..b6ee26e 100644 --- a/program/src/lib.rs +++ b/program/src/lib.rs @@ -10,8 +10,8 @@ mod close; mod deploy; mod deposit; mod log; -mod migrate_miner; -mod migrate_treasury; +// mod migrate_miner; +// mod migrate_treasury; mod reset; mod set_admin; mod set_fee_collector; @@ -31,8 +31,8 @@ use close::*; use deploy::*; use deposit::*; use log::*; -use migrate_miner::*; -use migrate_treasury::*; +// use migrate_miner::*; +// use migrate_treasury::*; use reset::*; use set_admin::*; use set_fee_collector::*; @@ -63,9 +63,9 @@ pub fn process_instruction( OreInstruction::Reset => process_reset(accounts, data)?, // Staker - // OreInstruction::Deposit => process_deposit(accounts, data)?, - // OreInstruction::Withdraw => process_withdraw(accounts, data)?, - // OreInstruction::ClaimYield => process_claim_yield(accounts, data)?, + OreInstruction::Deposit => process_deposit(accounts, data)?, + OreInstruction::Withdraw => process_withdraw(accounts, data)?, + OreInstruction::ClaimYield => process_claim_yield(accounts, data)?, // Admin OreInstruction::Bury => process_bury(accounts, data)?, @@ -75,8 +75,6 @@ pub fn process_instruction( // Seeker OreInstruction::ClaimSeeker => process_claim_seeker(accounts, data)?, - OreInstruction::MigrateTreasury => process_migrate_treasury(accounts, data)?, - OreInstruction::MigrateMiner => process_migrate_miner(accounts, data)?, _ => return Err(ProgramError::InvalidInstructionData), } diff --git a/program/src/migrate_treasury.rs b/program/src/migrate_treasury.rs index ef9a2ee..1c193de 100644 --- a/program/src/migrate_treasury.rs +++ b/program/src/migrate_treasury.rs @@ -43,6 +43,7 @@ pub fn process_migrate_treasury(accounts: &[AccountInfo<'_>], data: &[u8]) -> Pr treasury.total_staked = total_staked; treasury.total_unclaimed = total_unclaimed; treasury.miner_rewards_factor = miner_rewards_factor; + treasury.total_refined = 0; Ok(()) } diff --git a/program/src/whitelist.rs b/program/src/whitelist.rs index 7dfc216..c7da78d 100644 --- a/program/src/whitelist.rs +++ b/program/src/whitelist.rs @@ -1,6 +1,7 @@ use solana_program::pubkey; use steel::*; +#[allow(unused)] pub const AUTHORIZED_ACCOUNTS: [Pubkey; 1] = [ pubkey!("pqspJ298ryBjazPAr95J9sULCVpZe3HbZTWkbC1zrkS"), // pubkey!("By5JFFueXCqeqLk5MzR8ZSwFxASz3SKWX2TVfT1LTFbX"), diff --git a/program/src/withdraw.rs b/program/src/withdraw.rs index 2accd48..99b7f0d 100644 --- a/program/src/withdraw.rs +++ b/program/src/withdraw.rs @@ -3,8 +3,6 @@ use solana_program::log::sol_log; use spl_token::amount_to_ui_amount; use steel::*; -use crate::AUTHORIZED_ACCOUNTS; - /// Withdraws ORE from the staking contract. pub fn process_withdraw(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResult { // Parse data. @@ -34,11 +32,6 @@ pub fn process_withdraw(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramRes token_program.is_program(&spl_token::ID)?; associated_token_program.is_program(&spl_associated_token_account::ID)?; - // Check whitelist - if !AUTHORIZED_ACCOUNTS.contains(&signer_info.key) { - return Err(trace("Not authorized", OreError::NotAuthorized.into())); - } - // Open recipient token account. if recipient_info.data_is_empty() { create_associated_token_account(