Skip to content

Commit ad7942d

Browse files
authored
Add zero fee check before emitting swap fee event (#1275)
add checks for zero fees before emmitting events
1 parent 5f1d174 commit ad7942d

File tree

3 files changed

+53
-16
lines changed

3 files changed

+53
-16
lines changed

x/amm/keeper/apply_exit_pool_state_change.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,24 @@ func (k Keeper) ApplyExitPoolStateChange(
8585
}
8686

8787
// convert the fees into USD
88-
swapFeeValueInUSD := k.CalculateCoinsUSDValue(ctx, swapFeeInCoins).String()
89-
slippageAmountInUSD := k.CalculateCoinsUSDValue(ctx, slippageCoins).String()
88+
swapFeeValueInUSD := k.CalculateCoinsUSDValue(ctx, swapFeeInCoins)
89+
slippageAmountInUSD := k.CalculateCoinsUSDValue(ctx, slippageCoins)
9090

91-
takerFeesAmountInUSD := k.CalculateCoinsUSDValue(ctx, takerFeesInCoins).String()
91+
takerFeesAmountInUSD := k.CalculateCoinsUSDValue(ctx, takerFeesInCoins)
9292

9393
// emit swap fees event
94-
types.EmitSwapFeesCollectedEvent(ctx, swapFeeValueInUSD, slippageAmountInUSD, "0", "0", takerFeesAmountInUSD)
94+
if !(swapFeeValueInUSD.IsZero() &&
95+
slippageAmountInUSD.IsZero() &&
96+
takerFeesAmountInUSD.IsZero()) {
97+
types.EmitSwapFeesCollectedEvent(
98+
ctx,
99+
swapFeeValueInUSD.String(),
100+
slippageAmountInUSD.String(),
101+
"0",
102+
"0",
103+
takerFeesAmountInUSD.String(),
104+
)
105+
}
95106

96107
types.EmitRemoveLiquidityEvent(ctx, exiter, pool.GetPoolId(), exitCoins)
97108
if k.hooks != nil {

x/amm/keeper/apply_join_pool_state_change.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,14 +150,27 @@ func (k Keeper) ApplyJoinPoolStateChange(
150150
}
151151

152152
// convert the fees into USD
153-
swapFeeValueInUSD := k.CalculateCoinsUSDValue(ctx, swapFeeInCoins).String()
154-
slippageAmountInUSD := k.CalculateCoinsUSDValue(ctx, slippageCoins).String()
155-
weightRecoveryFeeAmountInUSD := k.CalculateCoinsUSDValue(ctx, weightRecoveryFeeCoins).String()
156-
bonusTokenAmountInUSD := k.CalculateCoinsUSDValue(ctx, weightBalanceBonusCoins).String()
157-
takerFeesAmountInUSD := k.CalculateCoinsUSDValue(ctx, takerFeesInCoins).String()
153+
swapFeeValueInUSD := k.CalculateCoinsUSDValue(ctx, swapFeeInCoins)
154+
slippageAmountInUSD := k.CalculateCoinsUSDValue(ctx, slippageCoins)
155+
weightRecoveryFeeAmountInUSD := k.CalculateCoinsUSDValue(ctx, weightRecoveryFeeCoins)
156+
bonusTokenAmountInUSD := k.CalculateCoinsUSDValue(ctx, weightBalanceBonusCoins)
157+
takerFeesAmountInUSD := k.CalculateCoinsUSDValue(ctx, takerFeesInCoins)
158158

159159
// emit swap fees event
160-
types.EmitSwapFeesCollectedEvent(ctx, swapFeeValueInUSD, slippageAmountInUSD, weightRecoveryFeeAmountInUSD, bonusTokenAmountInUSD, takerFeesAmountInUSD)
160+
if !(swapFeeValueInUSD.IsZero() &&
161+
slippageAmountInUSD.IsZero() &&
162+
weightRecoveryFeeAmountInUSD.IsZero() &&
163+
bonusTokenAmountInUSD.IsZero() &&
164+
takerFeesAmountInUSD.IsZero()) {
165+
types.EmitSwapFeesCollectedEvent(
166+
ctx,
167+
swapFeeValueInUSD.String(),
168+
slippageAmountInUSD.String(),
169+
weightRecoveryFeeAmountInUSD.String(),
170+
bonusTokenAmountInUSD.String(),
171+
takerFeesAmountInUSD.String(),
172+
)
173+
}
161174

162175
types.EmitAddLiquidityEvent(ctx, joiner, pool.GetPoolId(), joinCoins)
163176
if k.hooks != nil {

x/amm/keeper/update_pool_for_swap.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,14 +194,27 @@ func (k Keeper) UpdatePoolForSwap(
194194
k.SetPool(ctx, pool)
195195

196196
// convert the fees into USD
197-
swapFeeValueInUSD := k.CalculateCoinsUSDValue(ctx, swapFeeInCoins).String()
198-
slippageAmountInUSD := k.CalculateUSDValue(ctx, tokenIn.Denom, slippageAmount.Dec().TruncateInt()).String()
199-
weightRecoveryFeeAmountInUSD := k.CalculateUSDValue(ctx, tokenIn.Denom, weightRecoveryFeeAmount).String()
200-
bonusTokenAmountInUSD := k.CalculateUSDValue(ctx, tokenOut.Denom, bonusTokenAmount).String()
201-
takerFeesAmountInUSD := k.CalculateCoinsUSDValue(ctx, takerFeesInCoins).String()
197+
swapFeeValueInUSD := k.CalculateCoinsUSDValue(ctx, swapFeeInCoins)
198+
slippageAmountInUSD := k.CalculateUSDValue(ctx, tokenIn.Denom, slippageAmount.Dec().TruncateInt())
199+
weightRecoveryFeeAmountInUSD := k.CalculateUSDValue(ctx, tokenIn.Denom, weightRecoveryFeeAmount)
200+
bonusTokenAmountInUSD := k.CalculateUSDValue(ctx, tokenOut.Denom, bonusTokenAmount)
201+
takerFeesAmountInUSD := k.CalculateCoinsUSDValue(ctx, takerFeesInCoins)
202202

203203
// emit swap fees event
204-
types.EmitSwapFeesCollectedEvent(ctx, swapFeeValueInUSD, slippageAmountInUSD, weightRecoveryFeeAmountInUSD, bonusTokenAmountInUSD, takerFeesAmountInUSD)
204+
if !(swapFeeValueInUSD.IsZero() &&
205+
slippageAmountInUSD.IsZero() &&
206+
weightRecoveryFeeAmountInUSD.IsZero() &&
207+
bonusTokenAmountInUSD.IsZero() &&
208+
takerFeesAmountInUSD.IsZero()) {
209+
types.EmitSwapFeesCollectedEvent(
210+
ctx,
211+
swapFeeValueInUSD.String(),
212+
slippageAmountInUSD.String(),
213+
weightRecoveryFeeAmountInUSD.String(),
214+
bonusTokenAmountInUSD.String(),
215+
takerFeesAmountInUSD.String(),
216+
)
217+
}
205218

206219
// emit swap event
207220
types.EmitSwapEvent(ctx, sender, recipient, pool.GetPoolId(), tokensIn, tokensOut)

0 commit comments

Comments
 (0)