From 4cc60f650cc8c3f2e9d3a1d1d87849640b8bbdfa Mon Sep 17 00:00:00 2001 From: Elias Van Ootegem Date: Thu, 21 Mar 2024 15:41:48 +0000 Subject: [PATCH] fix: ensure ELS is updated when LP is cancelled Signed-off-by: Elias Van Ootegem --- CHANGELOG.md | 1 + core/execution/common/liquidity_provision.go | 6 ++++++ core/execution/common/liquidity_provision_test.go | 2 ++ 3 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b944709046..1e3f5f0eed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### 🐛 Fixes - [10960](https://github.com/vegaprotocol/vega/issues/10960) - Only the owner of a referral set can update it. +- [10950](https://github.com/vegaprotocol/vega/issues/10950) - Fix bug that caused cancelled liquidity provisions to stick around after opening auction. ## 0.75.1 diff --git a/core/execution/common/liquidity_provision.go b/core/execution/common/liquidity_provision.go index bfd6bf960f..703354a46d 100644 --- a/core/execution/common/liquidity_provision.go +++ b/core/execution/common/liquidity_provision.go @@ -661,6 +661,12 @@ func (m *MarketLiquidity) CancelLiquidityProvision(ctx context.Context, party st return err } } + // remove ELS for the cancelled LP if cancellation was applied immediately (e.g. during opening auction) + if applied { + m.equityShares.SetPartyStake(party, amendment.CommitmentAmount) + // force update for all shares + _ = m.equityShares.AllShares() + } return nil } diff --git a/core/execution/common/liquidity_provision_test.go b/core/execution/common/liquidity_provision_test.go index 78fb4ec2d5..6d1d9d8aa1 100644 --- a/core/execution/common/liquidity_provision_test.go +++ b/core/execution/common/liquidity_provision_test.go @@ -610,6 +610,8 @@ func TestCancelLiquidityProvisionDuringOpeningAuction(t *testing.T) { }). AnyTimes() + testLiquidity.equityShares.EXPECT().SetPartyStake(provider, gomock.Any()).Times(1) + testLiquidity.equityShares.EXPECT().AllShares().Times(1).Return(nil) err = testLiquidity.marketLiquidity.CancelLiquidityProvision(ctx, provider) assert.NoError(t, err)