From 67c24df69d22170c4837e0718f24c489177266d3 Mon Sep 17 00:00:00 2001 From: Yaroms <103432884+Yaroms@users.noreply.github.com> Date: Wed, 3 Apr 2024 11:44:15 +0300 Subject: [PATCH] fix delegation gas cost (#1346) Co-authored-by: Yarom Swisa --- x/dualstaking/keeper/hooks.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/x/dualstaking/keeper/hooks.go b/x/dualstaking/keeper/hooks.go index f15fd6504d..7113ca4679 100644 --- a/x/dualstaking/keeper/hooks.go +++ b/x/dualstaking/keeper/hooks.go @@ -50,12 +50,14 @@ func (h Hooks) BeforeDelegationSharesModified(ctx sdk.Context, delAddr sdk.AccAd // create new delegation period record // add description func (h Hooks) AfterDelegationModified(ctx sdk.Context, delAddr sdk.AccAddress, valAddr sdk.ValAddress) error { - originalGas := ctx.GasMeter().GasConsumed() + originalGasMeter := ctx.GasMeter() + ctx = ctx.WithGasMeter(sdk.NewInfiniteGasMeter()) providers := 0 defer func() { - endGas := ctx.GasMeter().GasConsumed() - if endGas > originalGas && providers < PROVIDERS_NUM_GAS_REFUND { - ctx.GasMeter().RefundGas(endGas-originalGas, "refund hooks gas") + consumedGas := ctx.GasMeter().GasConsumed() + ctx = ctx.WithGasMeter(originalGasMeter) + if providers >= PROVIDERS_NUM_GAS_REFUND { + ctx.GasMeter().ConsumeGas(consumedGas, "consume hooks gas") } }()