From 0bced610a59133f83d65243f761644cda9cc820a Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Fri, 26 Apr 2024 09:53:41 -0700 Subject: [PATCH 1/5] Add local cache inside the takerfee --- x/poolmanager/keeper.go | 3 +++ x/poolmanager/taker_fee.go | 12 +++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/x/poolmanager/keeper.go b/x/poolmanager/keeper.go index 15ab0cb892e..4a9de1414c8 100644 --- a/x/poolmanager/keeper.go +++ b/x/poolmanager/keeper.go @@ -34,6 +34,9 @@ type Keeper struct { poolModules []types.PoolModuleI paramSpace paramtypes.Subspace + + defaultTakerFeeBz []byte + defaultTakerFeeVal sdk.Dec } func NewKeeper(storeKey storetypes.StoreKey, paramSpace paramtypes.Subspace, gammKeeper types.PoolModuleI, concentratedKeeper types.PoolModuleI, cosmwasmpoolKeeper types.PoolModuleI, bankKeeper types.BankI, accountKeeper types.AccountI, communityPoolKeeper types.CommunityPoolI, stakingKeeper types.StakingKeeper, protorevKeeper types.ProtorevKeeper) *Keeper { diff --git a/x/poolmanager/taker_fee.go b/x/poolmanager/taker_fee.go index 534ab10a2a2..9d892a239bb 100644 --- a/x/poolmanager/taker_fee.go +++ b/x/poolmanager/taker_fee.go @@ -1,6 +1,8 @@ package poolmanager import ( + "bytes" + "encoding/json" "fmt" sdk "github.com/cosmos/cosmos-sdk/types" @@ -13,9 +15,13 @@ import ( ) func (k Keeper) GetDefaultTakerFee(ctx sdk.Context) sdk.Dec { - var defaultTakerFee sdk.Dec - k.paramSpace.Get(ctx, types.KeyDefaultTakerFee, &defaultTakerFee) - return defaultTakerFee + defaultTakerFeeBz := k.paramSpace.GetRaw(ctx, types.KeyDefaultTakerFee) + if !bytes.Equal(defaultTakerFeeBz, k.defaultTakerFeeBz) { + var defaultTakerFeeValue sdk.Dec + json.Unmarshal(defaultTakerFeeBz, &defaultTakerFeeValue) + k.defaultTakerFeeVal = defaultTakerFeeValue + } + return k.defaultTakerFeeVal } // SetDenomPairTakerFee sets the taker fee for the given trading pair. From 16543ba27736285712fc4567a908e4bda2447e4d Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Fri, 26 Apr 2024 09:56:22 -0700 Subject: [PATCH 2/5] add error handling --- x/poolmanager/taker_fee.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/x/poolmanager/taker_fee.go b/x/poolmanager/taker_fee.go index 9d892a239bb..7a470f4a8aa 100644 --- a/x/poolmanager/taker_fee.go +++ b/x/poolmanager/taker_fee.go @@ -18,7 +18,10 @@ func (k Keeper) GetDefaultTakerFee(ctx sdk.Context) sdk.Dec { defaultTakerFeeBz := k.paramSpace.GetRaw(ctx, types.KeyDefaultTakerFee) if !bytes.Equal(defaultTakerFeeBz, k.defaultTakerFeeBz) { var defaultTakerFeeValue sdk.Dec - json.Unmarshal(defaultTakerFeeBz, &defaultTakerFeeValue) + err := json.Unmarshal(defaultTakerFeeBz, &defaultTakerFeeValue) + if err != nil { + defaultTakerFeeValue = sdk.ZeroDec() + } k.defaultTakerFeeVal = defaultTakerFeeValue } return k.defaultTakerFeeVal From 74b693d8636440797ae471890332e1ace6d6729c Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Fri, 26 Apr 2024 09:58:08 -0700 Subject: [PATCH 3/5] Add Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b4aca84d66..089363343a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### State Compatible * [#8142](https://github.com/osmosis-labs/osmosis/pull/8142) Add query for getting single authenticator and add stargate whitelist for the query. +* [#8148](https://github.com/osmosis-labs/osmosis/pull/8148) Remove the deserialization time for GetDefaultTakerFee() ## v24.0.3 From 3cd99a50c3619867fd1e7dffdfc3376600aae710 Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Thu, 2 May 2024 16:15:13 -0700 Subject: [PATCH 4/5] Fix cache per @adam's comment --- x/poolmanager/taker_fee.go | 1 + 1 file changed, 1 insertion(+) diff --git a/x/poolmanager/taker_fee.go b/x/poolmanager/taker_fee.go index ce213f0db7c..7449edb1eaa 100644 --- a/x/poolmanager/taker_fee.go +++ b/x/poolmanager/taker_fee.go @@ -22,6 +22,7 @@ func (k Keeper) GetDefaultTakerFee(ctx sdk.Context) sdk.Dec { if err != nil { defaultTakerFeeValue = sdk.ZeroDec() } + k.defaultTakerFeeBz = defaultTakerFeeBz k.defaultTakerFeeVal = defaultTakerFeeValue } return k.defaultTakerFeeVal From 5327f967de812923f8b15df10bc467afb42d8a58 Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Mon, 13 May 2024 20:18:40 +0200 Subject: [PATCH 5/5] Update x/poolmanager/taker_fee.go --- x/poolmanager/taker_fee.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/poolmanager/taker_fee.go b/x/poolmanager/taker_fee.go index 7449edb1eaa..c8bda6da48a 100644 --- a/x/poolmanager/taker_fee.go +++ b/x/poolmanager/taker_fee.go @@ -14,7 +14,7 @@ import ( txfeestypes "github.com/osmosis-labs/osmosis/v25/x/txfees/types" ) -func (k Keeper) GetDefaultTakerFee(ctx sdk.Context) sdk.Dec { +func (k *Keeper) GetDefaultTakerFee(ctx sdk.Context) sdk.Dec { defaultTakerFeeBz := k.paramSpace.GetRaw(ctx, types.KeyDefaultTakerFee) if !bytes.Equal(defaultTakerFeeBz, k.defaultTakerFeeBz) { var defaultTakerFeeValue sdk.Dec