referral
This commit is contained in:
parent
65fdc4cf44
commit
8243e7c9de
|
|
@ -10,7 +10,6 @@ pub fn close(ctx: Context<CloseBet>, winner:Pubkey, userid:String)->Result<()>{
|
||||||
BettingError::InvalidWinner
|
BettingError::InvalidWinner
|
||||||
);
|
);
|
||||||
|
|
||||||
// Check fee wallet is correct
|
|
||||||
let fee_collector_pubkey = Pubkey::from_str(FEE_COLLECTOR).map_err(|_| BettingError::InvalidFeeCollector)?;
|
let fee_collector_pubkey = Pubkey::from_str(FEE_COLLECTOR).map_err(|_| BettingError::InvalidFeeCollector)?;
|
||||||
require_keys_eq!(
|
require_keys_eq!(
|
||||||
ctx.accounts.fee_wallet.key(),
|
ctx.accounts.fee_wallet.key(),
|
||||||
|
|
@ -20,7 +19,22 @@ pub fn close(ctx: Context<CloseBet>, winner:Pubkey, userid:String)->Result<()>{
|
||||||
|
|
||||||
// Calculate the 5% fee
|
// Calculate the 5% fee
|
||||||
let total_lamports = **bet_vault.to_account_info().lamports.borrow();
|
let total_lamports = **bet_vault.to_account_info().lamports.borrow();
|
||||||
let fee = total_lamports / 20; // 5%
|
let mut fee = total_lamports / 20; // 5%
|
||||||
|
let referrer_fee = fee / 4; //50% for each referrer
|
||||||
|
|
||||||
|
// In the close function:
|
||||||
|
if let Some(owner_ref) = &ctx.accounts.owner_referrer {
|
||||||
|
fee -= referrer_fee;
|
||||||
|
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= referrer_fee;
|
||||||
|
**owner_ref.try_borrow_mut_lamports()? += referrer_fee;
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(joiner_ref) = &ctx.accounts.joiner_referrer {
|
||||||
|
fee -= referrer_fee;
|
||||||
|
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= referrer_fee;
|
||||||
|
**joiner_ref.try_borrow_mut_lamports()? += referrer_fee;
|
||||||
|
}
|
||||||
|
|
||||||
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= fee;
|
**bet_vault.to_account_info().try_borrow_mut_lamports()? -= fee;
|
||||||
**ctx.accounts.fee_wallet.to_account_info().try_borrow_mut_lamports()? += fee;
|
**ctx.accounts.fee_wallet.to_account_info().try_borrow_mut_lamports()? += fee;
|
||||||
|
|
||||||
|
|
@ -52,5 +66,12 @@ pub struct CloseBet<'info>{
|
||||||
|
|
||||||
#[account(mut)]
|
#[account(mut)]
|
||||||
pub payer: Signer<'info>,
|
pub payer: Signer<'info>,
|
||||||
|
|
||||||
|
#[account(mut)]
|
||||||
|
pub owner_referrer: Option<AccountInfo<'info>>,
|
||||||
|
|
||||||
|
#[account(mut)]
|
||||||
|
pub joiner_referrer: Option<AccountInfo<'info>>,
|
||||||
|
|
||||||
pub system_program: Program<'info, System>
|
pub system_program: Program<'info, System>
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user