From 1a7dd8867f6b931a07ea7b652c2633222b9baf4f Mon Sep 17 00:00:00 2001 From: Hardhat Chad Date: Tue, 15 Jul 2025 17:18:28 -0700 Subject: [PATCH] pay fee --- program/src/commit.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/program/src/commit.rs b/program/src/commit.rs index e699c0f..ca1843b 100644 --- a/program/src/commit.rs +++ b/program/src/commit.rs @@ -1,4 +1,5 @@ use ore_api::{prelude::*, sdk::program_log}; +use solana_program::rent::Rent; use steel::*; /// Commit to a block. @@ -91,6 +92,15 @@ pub fn process_commit(accounts: &[AccountInfo<'_>], data: &[u8]) -> ProgramResul permit.fee = fee; permit.seed = args.seed; + // Send lamports to permit account to pay for fee. + if permit.fee > 0 { + let rent_exempt_balance = Rent::get()?.minimum_balance(size_of::()); + let surplus_balance = permit_info.lamports().saturating_sub(rent_exempt_balance); + let total_fees = permit.commitment * permit.fee; + let required_fees = total_fees.saturating_sub(surplus_balance); + permit_info.collect(required_fees, signer_info)?; + } + // Transfer hash tokens. transfer( signer_info,