From 5f5fdb3800d16690141433d4359f46e9bea625bc Mon Sep 17 00:00:00 2001 From: Jonathan Gimeno Date: Wed, 13 Sep 2023 15:15:22 +0200 Subject: [PATCH] add convenience method for saving market --- x/epochs/types/identifier.go | 2 +- x/perp/v2/integration/action/market.go | 2 +- x/perp/v2/keeper/admin.go | 2 +- x/perp/v2/keeper/amm.go | 4 ++++ x/perp/v2/keeper/clearing_house_test.go | 2 +- x/perp/v2/keeper/hooks.go | 2 +- x/perp/v2/keeper/keeper.go | 2 +- x/perp/v2/keeper/twap_test.go | 4 ++-- x/perp/v2/keeper/withdraw.go | 7 +++---- x/perp/v2/module/genesis.go | 2 +- x/perp/v2/module/genesis_test.go | 2 +- 11 files changed, 17 insertions(+), 14 deletions(-) diff --git a/x/epochs/types/identifier.go b/x/epochs/types/identifier.go index 7760be60a..3dd3012cb 100644 --- a/x/epochs/types/identifier.go +++ b/x/epochs/types/identifier.go @@ -29,7 +29,7 @@ func ValidateEpochIdentifierInterface(i interface{}) error { return ValidateEpochIdentifierString(v) } -// ValidateEpochIdentifierInterface performs a stateless +// ValidateEpochIdentifierString performs a stateless // validation of the epoch ID. func ValidateEpochIdentifierString(s string) error { s = strings.TrimSpace(s) diff --git a/x/perp/v2/integration/action/market.go b/x/perp/v2/integration/action/market.go index a1e0a94fe..b00ffdb33 100644 --- a/x/perp/v2/integration/action/market.go +++ b/x/perp/v2/integration/action/market.go @@ -39,8 +39,8 @@ type createMarketAction struct { } func (c createMarketAction) Do(app *app.NibiruApp, ctx sdk.Context) (sdk.Context, error, bool) { - app.PerpKeeperV2.Markets.Insert(ctx, collections.Join(c.Market.Pair, uint64(1)), c.Market) app.PerpKeeperV2.MarketLastVersion.Insert(ctx, c.Market.Pair, types.MarketLastVersion{Version: 1}) + app.PerpKeeperV2.SaveMarket(ctx, c.Market) app.PerpKeeperV2.AMMs.Insert(ctx, collections.Join(c.AMM.Pair, uint64(1)), c.AMM) app.PerpKeeperV2.ReserveSnapshots.Insert(ctx, collections.Join(c.AMM.Pair, ctx.BlockTime()), types.ReserveSnapshot{ diff --git a/x/perp/v2/keeper/admin.go b/x/perp/v2/keeper/admin.go index 44308d1ac..7d3221a52 100644 --- a/x/perp/v2/keeper/admin.go +++ b/x/perp/v2/keeper/admin.go @@ -110,7 +110,7 @@ func (k admin) CreateMarket( return err } - k.Markets.Insert(ctx, collections.Join(pair, lastVersion.Version), market) + k.SaveMarket(ctx, market) k.AMMs.Insert(ctx, collections.Join(pair, lastVersion.Version), amm) k.MarketLastVersion.Insert(ctx, pair, lastVersion) diff --git a/x/perp/v2/keeper/amm.go b/x/perp/v2/keeper/amm.go index 7de68acf9..90115be7f 100644 --- a/x/perp/v2/keeper/amm.go +++ b/x/perp/v2/keeper/amm.go @@ -132,6 +132,10 @@ func (k Keeper) GetMarket(ctx sdk.Context, pair asset.Pair) (types.Market, error return market, nil } +func (k Keeper) SaveMarket(ctx sdk.Context, market types.Market) { + k.Markets.Insert(ctx, collections.Join(market.Pair, market.Version), market) +} + // GetAMM returns the amm with last version. func (k Keeper) GetAMM(ctx sdk.Context, pair asset.Pair) (types.AMM, error) { lastVersion, err := k.MarketLastVersion.Get(ctx, pair) diff --git a/x/perp/v2/keeper/clearing_house_test.go b/x/perp/v2/keeper/clearing_house_test.go index 4d4639bd3..e0424bf7d 100644 --- a/x/perp/v2/keeper/clearing_house_test.go +++ b/x/perp/v2/keeper/clearing_house_test.go @@ -1172,7 +1172,7 @@ func TestMarketOrderError(t *testing.T) { traderAddr := testutil.AccAddress() market := mock.TestMarket() - app.PerpKeeperV2.Markets.Insert(ctx, collections.Join(asset.Registry.Pair(denoms.BTC, denoms.NUSD), market.Version), *market) + app.PerpKeeperV2.SaveMarket(ctx, *market) app.PerpKeeperV2.MarketLastVersion.Insert(ctx, asset.Registry.Pair(denoms.BTC, denoms.NUSD), types.MarketLastVersion{Version: market.Version}) amm := mock.TestAMMDefault() app.PerpKeeperV2.AMMs.Insert(ctx, collections.Join(asset.Registry.Pair(denoms.BTC, denoms.NUSD), market.Version), *amm) diff --git a/x/perp/v2/keeper/hooks.go b/x/perp/v2/keeper/hooks.go index e5e44b669..23b46faca 100644 --- a/x/perp/v2/keeper/hooks.go +++ b/x/perp/v2/keeper/hooks.go @@ -54,7 +54,7 @@ func (k Keeper) AfterEpochEnd(ctx sdk.Context, epochIdentifier string, _ uint64) premiumFraction := clampedDivergence.Mul(indexTwap).QuoInt64(int64(intervalsPerDay)) market.LatestCumulativePremiumFraction = market.LatestCumulativePremiumFraction.Add(premiumFraction) - k.Markets.Insert(ctx, collections.Join(market.Pair, market.Version), market) + k.SaveMarket(ctx, market) _ = ctx.EventManager().EmitTypedEvent(&types.FundingRateChangedEvent{ Pair: market.Pair, diff --git a/x/perp/v2/keeper/keeper.go b/x/perp/v2/keeper/keeper.go index 8f7e5885e..e6f0a2d87 100644 --- a/x/perp/v2/keeper/keeper.go +++ b/x/perp/v2/keeper/keeper.go @@ -101,6 +101,6 @@ func (k Keeper) ChangeMarketEnabledParameter(ctx sdk.Context, pair asset.Pair, e return } market.Enabled = enabled - k.Markets.Insert(ctx, collections.Join(pair, market.Version), market) + k.SaveMarket(ctx, market) return } diff --git a/x/perp/v2/keeper/twap_test.go b/x/perp/v2/keeper/twap_test.go index 7942f08d7..e6ec59a37 100644 --- a/x/perp/v2/keeper/twap_test.go +++ b/x/perp/v2/keeper/twap_test.go @@ -113,7 +113,7 @@ func TestInvalidTwap(t *testing.T) { }) startTime := time.UnixMilli(0) - app.PerpKeeperV2.Markets.Insert(ctx, collections.Join(pair, uint64(1)), *mock.TestMarket()) + app.PerpKeeperV2.SaveMarket(ctx, *mock.TestMarket()) app.PerpKeeperV2.AMMs.Insert(ctx, collections.Join(pair, uint64(1)), *mock.TestAMMDefault()) app.PerpKeeperV2.ReserveSnapshots.Insert( ctx, collections.Join(pair, startTime), types.ReserveSnapshot{ @@ -375,7 +375,7 @@ func TestCalcTwapExtended(t *testing.T) { }) startTime := time.UnixMilli(0) - app.PerpKeeperV2.Markets.Insert(ctx, collections.Join(pair, uint64(1)), *mock.TestMarket()) + app.PerpKeeperV2.SaveMarket(ctx, *mock.TestMarket()) app.PerpKeeperV2.AMMs.Insert(ctx, collections.Join(pair, uint64(1)), *mock.TestAMMDefault()) app.PerpKeeperV2.ReserveSnapshots.Insert( ctx, collections.Join(pair, startTime), types.ReserveSnapshot{ diff --git a/x/perp/v2/keeper/withdraw.go b/x/perp/v2/keeper/withdraw.go index 18795e1db..7d12a4465 100644 --- a/x/perp/v2/keeper/withdraw.go +++ b/x/perp/v2/keeper/withdraw.go @@ -2,7 +2,6 @@ package keeper import ( sdkmath "cosmossdk.io/math" - "github.com/NibiruChain/collections" sdk "github.com/cosmos/cosmos-sdk/types" types "github.com/NibiruChain/nibiru/x/perp/v2/types" @@ -82,19 +81,19 @@ func (k Keeper) WithdrawFromVault( // IncrementPrepaidBadDebt increases the bad debt for the provided denom. func (k Keeper) IncrementPrepaidBadDebt(ctx sdk.Context, market types.Market, amount sdkmath.Int) { market.PrepaidBadDebt.Amount = market.PrepaidBadDebt.Amount.Add(amount) - k.Markets.Insert(ctx, collections.Join(market.Pair, market.Version), market) + k.SaveMarket(ctx, market) } // ZeroPrepaidBadDebt out the prepaid bad debt func (k Keeper) ZeroPrepaidBadDebt(ctx sdk.Context, market types.Market) { market.PrepaidBadDebt.Amount = sdk.ZeroInt() - k.Markets.Insert(ctx, collections.Join(market.Pair, market.Version), market) + k.SaveMarket(ctx, market) } // DecrementPrepaidBadDebt decrements the amount of bad debt prepaid by denom. func (k Keeper) DecrementPrepaidBadDebt(ctx sdk.Context, market types.Market, amount sdkmath.Int) { market.PrepaidBadDebt.Amount = market.PrepaidBadDebt.Amount.Sub(amount) - k.Markets.Insert(ctx, collections.Join(market.Pair, market.Version), market) + k.SaveMarket(ctx, market) } /* diff --git a/x/perp/v2/module/genesis.go b/x/perp/v2/module/genesis.go index 35de73549..2223d3599 100644 --- a/x/perp/v2/module/genesis.go +++ b/x/perp/v2/module/genesis.go @@ -20,7 +20,7 @@ func InitGenesis(ctx sdk.Context, k keeper.Keeper, genState types.GenesisState) } for _, m := range genState.Markets { - k.Markets.Insert(ctx, collections.Join(m.Pair, m.Version), m) + k.SaveMarket(ctx, m) } for _, g := range genState.MarketLastVersions { diff --git a/x/perp/v2/module/genesis_test.go b/x/perp/v2/module/genesis_test.go index acd92ff44..d3c45fc86 100644 --- a/x/perp/v2/module/genesis_test.go +++ b/x/perp/v2/module/genesis_test.go @@ -68,7 +68,7 @@ func RunTestGenesis(t *testing.T, tc TestCase) { pair := asset.Registry.Pair(denoms.BTC, denoms.NUSD) // create some params - app.PerpKeeperV2.Markets.Insert(ctx, collections.Join(pair, uint64(1)), *mock.TestMarket()) + app.PerpKeeperV2.SaveMarket(ctx, *mock.TestMarket()) app.PerpKeeperV2.MarketLastVersion.Insert(ctx, pair, types.MarketLastVersion{Version: 1}) app.PerpKeeperV2.AMMs.Insert(ctx, collections.Join(pair, uint64(1)), *mock.TestAMMDefault())