diff --git a/x/wasm/internal/keeper/keeper.go b/x/wasm/internal/keeper/keeper.go index e52a148b..51e9da1f 100644 --- a/x/wasm/internal/keeper/keeper.go +++ b/x/wasm/internal/keeper/keeper.go @@ -566,6 +566,10 @@ func (k Keeper) dispatchMessages(ctx sdk.Context, contractAddr sdk.AccAddress, m func gasForContract(ctx sdk.Context) uint64 { meter := ctx.GasMeter() + // avoid integer overflow + if meter.IsOutOfGas() { + return 0 + } remaining := (meter.Limit() - meter.GasConsumed()) * GasMultiplier if remaining > MaxGas { return MaxGas