sync
This commit is contained in:
parent
cc73ac1feb
commit
e169619589
|
|
@ -11,9 +11,7 @@ pub fn clear(ctx: Context<ClearBetsList>) -> Result<()> {
|
|||
#[derive(Accounts)]
|
||||
pub struct ClearBetsList<'info> {
|
||||
#[account(
|
||||
mut,
|
||||
seeds = [b"bets_list"],
|
||||
bump
|
||||
mut
|
||||
)]
|
||||
pub bets_list: Account<'info, BetsList>,
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,10 @@ pub fn deduct(ctx: Context<DeductFees>, winner:Pubkey, userid:String)->Result<()
|
|||
msg!("Fee: {}, Referrer fee: {}", 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
|
||||
let total_transfer = fee.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
|
||||
);
|
||||
|
||||
// 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
|
||||
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= referrer_fee;
|
||||
**ctx.accounts.owner_referrer.try_borrow_mut_lamports()? += referrer_fee;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user