deduct fees native fixed
This commit is contained in:
parent
d3b618fe5a
commit
a39517f801
|
|
@ -30,6 +30,10 @@ pub fn deduct(ctx: Context<DeductFees>, winner:Pubkey, userid:String)->Result<()
|
||||||
msg!("Fee: {}, Referrer fee: {}", fee, referrer_fee);
|
msg!("Fee: {}, Referrer fee: {}", fee, referrer_fee);
|
||||||
msg!("Total to be sent: {}", fee + referrer_fee + referrer_fee);
|
msg!("Total to be sent: {}", fee + referrer_fee + referrer_fee);
|
||||||
|
|
||||||
|
// Calculate rent-exempt minimum for referrer accounts
|
||||||
|
let referrer_rent_exempt = Rent::get()?.minimum_balance(0); // 0 bytes for basic account
|
||||||
|
msg!("Referrer rent exempt minimum: {}", referrer_rent_exempt);
|
||||||
|
|
||||||
// Verify we have enough funds for all transfers
|
// Verify we have enough funds for all transfers
|
||||||
let total_transfer = fee.checked_add(referrer_fee)
|
let total_transfer = fee.checked_add(referrer_fee)
|
||||||
.and_then(|sum| sum.checked_add(referrer_fee))
|
.and_then(|sum| sum.checked_add(referrer_fee))
|
||||||
|
|
@ -40,6 +44,20 @@ pub fn deduct(ctx: Context<DeductFees>, winner:Pubkey, userid:String)->Result<()
|
||||||
BettingError::InsufficientFunds
|
BettingError::InsufficientFunds
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Check if referrer accounts have enough SOL for rent
|
||||||
|
let owner_referrer_balance = **ctx.accounts.owner_referrer.lamports.borrow();
|
||||||
|
let joiner_referrer_balance = **ctx.accounts.joiner_referrer.lamports.borrow();
|
||||||
|
|
||||||
|
require!(
|
||||||
|
owner_referrer_balance + referrer_fee >= referrer_rent_exempt,
|
||||||
|
BettingError::InsufficientFunds
|
||||||
|
);
|
||||||
|
|
||||||
|
require!(
|
||||||
|
joiner_referrer_balance + referrer_fee >= referrer_rent_exempt,
|
||||||
|
BettingError::InsufficientFunds
|
||||||
|
);
|
||||||
|
|
||||||
// Transfer referrer fees
|
// Transfer referrer fees
|
||||||
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= referrer_fee;
|
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= referrer_fee;
|
||||||
**ctx.accounts.owner_referrer.try_borrow_mut_lamports()? += referrer_fee;
|
**ctx.accounts.owner_referrer.try_borrow_mut_lamports()? += referrer_fee;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user