Skip to content

Commit

Permalink
chore: remove experimental flag from oracle endblocker (#1662)
Browse files Browse the repository at this point in the history
* chore: remove experimental flag from oracle endblocker

* remove TestEndblockerExperimentalFlag
  • Loading branch information
adamewozniak committed Dec 29, 2022
1 parent 8f2923d commit be0b601
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 58 deletions.
2 changes: 1 addition & 1 deletion app/app.go
Expand Up @@ -596,7 +596,7 @@ func New(
ibcTransferModule,
gravity.NewAppModule(app.GravityKeeper, app.BankKeeper),
leverage.NewAppModule(appCodec, app.LeverageKeeper, app.AccountKeeper, app.BankKeeper),
oracle.NewAppModule(appCodec, app.OracleKeeper, app.AccountKeeper, app.BankKeeper, Experimental),
oracle.NewAppModule(appCodec, app.OracleKeeper, app.AccountKeeper, app.BankKeeper),
bech32ibc.NewAppModule(appCodec, app.bech32IbcKeeper),
}
if Experimental {
Expand Down
20 changes: 9 additions & 11 deletions x/oracle/abci.go
Expand Up @@ -16,7 +16,7 @@ func isPeriodLastBlock(ctx sdk.Context, blocksPerPeriod uint64) bool {
}

// EndBlocker is called at the end of every block
func EndBlocker(ctx sdk.Context, k keeper.Keeper, experimental bool) error {
func EndBlocker(ctx sdk.Context, k keeper.Keeper) error {
defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker)

params := k.GetParams(ctx)
Expand Down Expand Up @@ -57,16 +57,14 @@ func EndBlocker(ctx sdk.Context, k keeper.Keeper, experimental bool) error {
return err
}

if experimental {
if isPeriodLastBlock(ctx, params.HistoricStampPeriod) {
k.AddHistoricPrice(ctx, ballotDenom.Denom, exchangeRate)
}
if isPeriodLastBlock(ctx, params.HistoricStampPeriod) {
k.AddHistoricPrice(ctx, ballotDenom.Denom, exchangeRate)
}

// Calculate and stamp median/median deviation if median stamp period has passed
if isPeriodLastBlock(ctx, params.MedianStampPeriod) {
if err = k.CalcAndSetHistoricMedian(ctx, ballotDenom.Denom); err != nil {
return err
}
// Calculate and stamp median/median deviation if median stamp period has passed
if isPeriodLastBlock(ctx, params.MedianStampPeriod) {
if err = k.CalcAndSetHistoricMedian(ctx, ballotDenom.Denom); err != nil {
return err
}
}
}
Expand Down Expand Up @@ -106,7 +104,7 @@ func EndBlocker(ctx sdk.Context, k keeper.Keeper, experimental bool) error {

// Prune historic prices and medians outside pruning period determined by
// the stamp period multiplied by the max stamps.
if experimental && isPeriodLastBlock(ctx, params.HistoricStampPeriod) {
if isPeriodLastBlock(ctx, params.HistoricStampPeriod) {
pruneHistoricPeriod := params.HistoricStampPeriod*(params.MaximumPriceStamps) - params.VotePeriod
pruneMedianPeriod := params.MedianStampPeriod*(params.MaximumMedianStamps) - params.VotePeriod
for _, v := range params.AcceptList {
Expand Down
56 changes: 14 additions & 42 deletions x/oracle/abci_test.go
Expand Up @@ -127,9 +127,11 @@ var historacleTestCases = []struct {
expectedMaxOfHistoricMedians sdk.Dec
}{
{
[]string{"1.0", "1.2", "1.1", "1.4", "1.1", "1.15",
[]string{
"1.0", "1.2", "1.1", "1.4", "1.1", "1.15",
"1.2", "1.3", "1.2", "1.12", "1.2", "1.15",
"1.17", "1.1", "1.0", "1.16", "1.15", "1.12"},
"1.17", "1.1", "1.0", "1.16", "1.15", "1.12",
},
[]sdk.Dec{
sdk.MustNewDecFromStr("1.155"),
sdk.MustNewDecFromStr("1.16"),
Expand All @@ -144,9 +146,11 @@ var historacleTestCases = []struct {
sdk.MustNewDecFromStr("1.2"),
},
{
[]string{"2.3", "2.12", "2.14", "2.24", "2.18", "2.15",
[]string{
"2.3", "2.12", "2.14", "2.24", "2.18", "2.15",
"2.51", "2.59", "2.67", "2.76", "2.89", "2.85",
"3.17", "3.15", "3.35", "3.56", "3.55", "3.49"},
"3.17", "3.15", "3.35", "3.56", "3.55", "3.49",
},
[]sdk.Dec{
sdk.MustNewDecFromStr("3.02"),
sdk.MustNewDecFromStr("2.715"),
Expand All @@ -161,9 +165,11 @@ var historacleTestCases = []struct {
sdk.MustNewDecFromStr("3.02"),
},
{
[]string{"5.2", "5.25", "5.31", "5.22", "5.14", "5.15",
[]string{
"5.2", "5.25", "5.31", "5.22", "5.14", "5.15",
"4.85", "4.72", "4.52", "4.47", "4.36", "4.22",
"4.11", "4.04", "3.92", "3.82", "3.85", "3.83"},
"4.11", "4.04", "3.92", "3.82", "3.85", "3.83",
},
[]sdk.Dec{
sdk.MustNewDecFromStr("4.165"),
sdk.MustNewDecFromStr("4.495"),
Expand All @@ -179,40 +185,6 @@ var historacleTestCases = []struct {
},
}

func (s *IntegrationTestSuite) TestEndblockerExperimentalFlag() {
app, ctx := s.app, s.ctx

// add historic price and calcSet median stats
app.OracleKeeper.AddHistoricPrice(s.ctx, displayDenom, sdk.MustNewDecFromStr("1.0"))
app.OracleKeeper.CalcAndSetHistoricMedian(s.ctx, displayDenom)
medianPruneBlock := ctx.BlockHeight() + int64(types.DefaultMaximumMedianStamps*types.DefaultMedianStampPeriod)
ctx = ctx.WithBlockHeight(medianPruneBlock)

// with experimental flag off median doesn't get deleted
oracle.EndBlocker(ctx, app.OracleKeeper, false)
medians := []types.Price{}
app.OracleKeeper.IterateAllMedianPrices(
ctx,
func(median types.Price) bool {
medians = append(medians, median)
return false
},
)
s.Require().Equal(1, len(medians))

// with experimental flag on median gets deleted
oracle.EndBlocker(ctx, app.OracleKeeper, true)
experimentalMedians := []types.Price{}
app.OracleKeeper.IterateAllMedianPrices(
ctx,
func(median types.Price) bool {
medians = append(experimentalMedians, median)
return false
},
)
s.Require().Equal(0, len(experimentalMedians))
}

func (s *IntegrationTestSuite) TestEndblockerHistoracle() {
app, ctx := s.app, s.ctx

Expand Down Expand Up @@ -240,15 +212,15 @@ func (s *IntegrationTestSuite) TestEndblockerHistoracle() {
SubmitBlock: uint64(ctx.BlockHeight()),
}
app.OracleKeeper.SetAggregateExchangeRatePrevote(ctx, valAddr, prevote)
oracle.EndBlocker(ctx, app.OracleKeeper, true)
oracle.EndBlocker(ctx, app.OracleKeeper)

ctx = ctx.WithBlockHeight(ctx.BlockHeight() + int64(app.OracleKeeper.VotePeriod(ctx)))
vote := types.AggregateExchangeRateVote{
ExchangeRateTuples: tuples,
Voter: valAddr.String(),
}
app.OracleKeeper.SetAggregateExchangeRateVote(ctx, valAddr, vote)
oracle.EndBlocker(ctx, app.OracleKeeper, true)
oracle.EndBlocker(ctx, app.OracleKeeper)
}

for _, denom := range app.OracleKeeper.AcceptList(ctx) {
Expand Down
5 changes: 1 addition & 4 deletions x/oracle/module.go
Expand Up @@ -105,22 +105,19 @@ type AppModule struct {
keeper keeper.Keeper
accountKeeper types.AccountKeeper
bankKeeper bankkeeper.Keeper
experimental bool
}

func NewAppModule(
cdc codec.Codec,
keeper keeper.Keeper,
accountKeeper types.AccountKeeper,
bankKeeper bankkeeper.Keeper,
experimental bool,
) AppModule {
return AppModule{
AppModuleBasic: NewAppModuleBasic(cdc),
keeper: keeper,
accountKeeper: accountKeeper,
bankKeeper: bankKeeper,
experimental: experimental,
}
}

Expand Down Expand Up @@ -183,7 +180,7 @@ func (am AppModule) BeginBlock(sdk.Context, abci.RequestBeginBlock) {}
// EndBlock executes all ABCI EndBlock logic respective to the x/oracle module.
// It returns no validator updates.
func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate {
if err := EndBlocker(ctx, am.keeper, am.experimental); err != nil {
if err := EndBlocker(ctx, am.keeper); err != nil {
panic(err)
}

Expand Down

0 comments on commit be0b601

Please sign in to comment.