Skip to content

Commit e88b923

Browse files
fix: update DefaultBaseFee and cap CurBaseFee when loaded (backport #9476) (#9483)
* fix: update DefaultBaseFee and cap CurBaseFee when loaded (#9476) * increase default base fee according to updated min base fee * add test for tryLoad cap * update changelog * Trigger CI (cherry picked from commit 8036802) # Conflicts: # CHANGELOG.md * fix merge conflict --------- Co-authored-by: Supanat <supanat.ptk@gmail.com>
1 parent 697b89f commit e88b923

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
4242

4343
## Unreleased
4444

45+
### State Compatible
46+
* [#9467](https://github.com/osmosis-labs/osmosis/pull/9467) fix: protorev returns incorrect values in posthandler
47+
* [#9476](https://github.com/osmosis-labs/osmosis/pull/9476) fix: update DefaultBaseFee and cap CurBaseFee when loaded
48+
4549
## v30.0.1
4650

4751
### State Compatible

x/txfees/keeper/mempool-1559/code.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import (
4646
var (
4747
// We expect wallet multiplier * DefaultBaseFee < MinBaseFee * RecheckFeeConstant
4848
// conservatively assume a wallet multiplier of at least 7%.
49-
DefaultBaseFee = osmomath.MustNewDecFromStr("0.0060")
49+
DefaultBaseFee = osmomath.MustNewDecFromStr("0.0250")
5050
MinBaseFee = types.ConsensusMinFee
5151
MaxBaseFee = osmomath.MustNewDecFromStr("5")
5252
ResetInterval = int64(6000)
@@ -242,5 +242,13 @@ func (e *EipState) tryLoad(logger log.Logger) osmomath.Dec {
242242
}
243243

244244
logger.Info("Loaded eip1559 state", "CurBaseFee", loaded.CurBaseFee)
245+
if loaded.CurBaseFee.LT(MinBaseFee) {
246+
logger.Debug("CurBaseFee is less than MinBaseFee, setting to MinBaseFee", "CurBaseFee", loaded.CurBaseFee, "MinBaseFee", MinBaseFee)
247+
return MinBaseFee.Clone()
248+
}
249+
if loaded.CurBaseFee.GT(MaxBaseFee) {
250+
logger.Debug("CurBaseFee is greater than MaxBaseFee, setting to MaxBaseFee", "CurBaseFee", loaded.CurBaseFee, "MaxBaseFee", MaxBaseFee)
251+
return MaxBaseFee.Clone()
252+
}
245253
return loaded.CurBaseFee.Clone()
246254
}

x/txfees/keeper/mempool-1559/code_test.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mempool1559
22

33
import (
4+
"os"
45
"testing"
56

67
"cosmossdk.io/log"
@@ -25,6 +26,7 @@ func TestUpdateBaseFee(t *testing.T) {
2526
eip := &EipState{
2627
currentBlockHeight: 0,
2728
totalGasWantedThisBlock: 0,
29+
BackupFilePath: os.TempDir() + "/eip1559_update_test.json",
2830
CurBaseFee: DefaultBaseFee.Clone(),
2931
}
3032

@@ -56,6 +58,34 @@ func TestUpdateBaseFee(t *testing.T) {
5658
}
5759
}
5860

61+
func TestPersistAndLoad(t *testing.T) {
62+
baseEipState := CurEipState.Clone()
63+
baseEipState.BackupFilePath = os.TempDir() + "/eip1559_test.json"
64+
65+
// CurBaseFee lower than MinBaseFee should be set to MinBaseFee
66+
eip := baseEipState.Clone()
67+
eip.CurBaseFee = MinBaseFee.Clone().Sub(osmomath.NewDec(1))
68+
69+
// Persist the state to the backup file
70+
eip.tryPersist()
71+
72+
// Simulate node reset, load the eipState on startBlock
73+
eip = baseEipState.Clone()
74+
eip.startBlock(1, log.NewTestLogger(t))
75+
assert.DeepEqual(t, eip.CurBaseFee, MinBaseFee.Clone())
76+
77+
// CurBaseFee greater than MaxBaseFee should be set to MaxBaseFee
78+
eip = baseEipState.Clone()
79+
eip.CurBaseFee = MaxBaseFee.Clone().Add(osmomath.NewDec(1))
80+
81+
eip.tryPersist()
82+
83+
// Simulate node reset, load the eipState on startBlock
84+
eip = baseEipState.Clone()
85+
eip.startBlock(1, log.NewTestLogger(t))
86+
assert.DeepEqual(t, eip.CurBaseFee, MaxBaseFee.Clone())
87+
}
88+
5989
// calculateBaseFee is the same as in is defined on the eip1559 code
6090
func calculateBaseFee(totalGasWantedThisBlock int64, eipStateCurBaseFee osmomath.Dec) (expectedBaseFee osmomath.Dec) {
6191
gasUsed := totalGasWantedThisBlock

0 commit comments

Comments
 (0)