From 6912c264b72d6f6e090ee5ed9bce3bd854a86cba Mon Sep 17 00:00:00 2001 From: Hardhat Chad Date: Thu, 25 Sep 2025 15:16:11 -0700 Subject: [PATCH] fee --- cli/src/main.rs | 1 + program/src/reset.rs | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/cli/src/main.rs b/cli/src/main.rs index 505d568..83b9eb2 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -244,6 +244,7 @@ async fn reset( miners = square.miners[id as usize].to_vec(); }; let reset_ix = ore_api::sdk::reset(payer.pubkey(), config.fee_collector, miners); + // simulate_transaction(rpc, payer, &[reset_ix]).await; submit_transaction(rpc, payer, &[reset_ix]).await?; Ok(()) } diff --git a/program/src/reset.rs b/program/src/reset.rs index 6431008..05987ec 100644 --- a/program/src/reset.rs +++ b/program/src/reset.rs @@ -52,7 +52,7 @@ pub fn process_reset(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul if square_deployed == 0 { // Update board. board.total_vaulted = board.total_deployed; - treasury.balance += board.total_deployed; + treasury.balance += board.total_deployed - fee; // Emit event. program_log( @@ -84,7 +84,8 @@ pub fn process_reset(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul let mut winnings = 0; for (i, deployed) in board.deployed.iter().enumerate() { if i != winning_square { - winnings += deployed - (deployed / 100); + let fee = deployed / 100; + winnings += deployed - fee; } } @@ -106,7 +107,9 @@ pub fn process_reset(accounts: &[AccountInfo<'_>], _data: &[u8]) -> ProgramResul .as_account_mut::(&ore_api::ID)? .assert_mut(|m| m.round_id == board.id)?; let miner_deployed = miner.deployed[winning_square]; - let rewards = miner_deployed + (winnings * miner_deployed / square_deployed); // Winners get their own prospect back plus their share of the winnings. + let fee = miner_deployed / 100; + let miner_winnings = winnings * miner_deployed / square_deployed; + let rewards = (miner_deployed - fee) + miner_winnings; // Winners get their own deployment back, minus fee, plus their share of the winnings. checksum += miner_deployed; miner.rewards_sol += rewards; miner.lifetime_rewards_sol += rewards;