From b423944649dd707bfc960e1730a0fcce3a4956fa Mon Sep 17 00:00:00 2001 From: scorpioborn <97235353+scorpioborn@users.noreply.github.com> Date: Sun, 7 Apr 2024 15:17:35 +0300 Subject: [PATCH] feat: prevent non main market bets for bet bonus grant --- x/reward/keeper/msg_server_reward_test.go | 3 +++ x/reward/types/reward_bet_bonus.go | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/x/reward/keeper/msg_server_reward_test.go b/x/reward/keeper/msg_server_reward_test.go index 030a915e..7a723053 100644 --- a/x/reward/keeper/msg_server_reward_test.go +++ b/x/reward/keeper/msg_server_reward_test.go @@ -690,6 +690,9 @@ func TestMsgApplyBetBonus(t *testing.T) { Amount: sdkmath.NewInt(301), Result: bettypes.Bet_RESULT_LOST, Status: bettypes.Bet_STATUS_SETTLED, + Meta: bettypes.MetaData{ + IsMainMarket: true, + }, } tApp.BetKeeper.SetBet(ctx, bet, 1) diff --git a/x/reward/types/reward_bet_bonus.go b/x/reward/types/reward_bet_bonus.go index 2e77d694..f387dc51 100644 --- a/x/reward/types/reward_bet_bonus.go +++ b/x/reward/types/reward_bet_bonus.go @@ -79,6 +79,10 @@ func (sur BetBonusReward) Calculate(goCtx context.Context, ctx sdk.Context, keep return RewardFactoryData{}, sdkerrors.Wrapf(sdkerrtypes.ErrInvalidRequest, "bet not found with uid %s", payload.BetUID) } + if !bet.Meta.IsMainMarket { + return RewardFactoryData{}, sdkerrors.Wrapf(sdkerrtypes.ErrInvalidRequest, "bet bonus grant is allowed for main market bets only %s", payload.BetUID) + } + if bet.Result != bettypes.Bet_RESULT_LOST && bet.Result != bettypes.Bet_RESULT_WON { return RewardFactoryData{}, sdkerrors.Wrapf(sdkerrtypes.ErrInvalidRequest, "bet should be winner or loser, requested bet result is %s", bet.Result) @@ -87,11 +91,9 @@ func (sur BetBonusReward) Calculate(goCtx context.Context, ctx sdk.Context, keep effectiveBetAmount := sdk.NewDecFromInt(bet.Amount) if campaign.Constraints != nil { if !campaign.Constraints.MaxBetAmount.IsNil() && campaign.Constraints.MaxBetAmount.GT(sdkmath.ZeroInt()) { - if bet.Meta.IsMainMarket { - effectiveBetAmount = sdk.NewDecFromInt( - sdkmath.MinInt(campaign.Constraints.MaxBetAmount, bet.Amount), - ) - } + effectiveBetAmount = sdk.NewDecFromInt( + sdkmath.MinInt(campaign.Constraints.MaxBetAmount, bet.Amount), + ) } }