2019-11-27 14:45:59 +00:00
|
|
|
package pricefeed
|
|
|
|
|
|
|
|
import (
|
2020-06-17 09:09:44 +00:00
|
|
|
"errors"
|
2023-08-25 22:14:35 +00:00
|
|
|
"time"
|
2019-12-04 16:32:08 +00:00
|
|
|
|
2024-05-01 03:17:24 +00:00
|
|
|
"github.com/0glabs/0g-chain/x/pricefeed/keeper"
|
|
|
|
"github.com/0glabs/0g-chain/x/pricefeed/types"
|
2023-08-25 22:14:35 +00:00
|
|
|
"github.com/cosmos/cosmos-sdk/telemetry"
|
2019-11-27 14:45:59 +00:00
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
|
|
|
)
|
|
|
|
|
|
|
|
// EndBlocker updates the current pricefeed
|
2022-01-08 00:39:27 +00:00
|
|
|
func EndBlocker(ctx sdk.Context, k keeper.Keeper) {
|
2023-08-25 22:14:35 +00:00
|
|
|
defer telemetry.ModuleMeasureSince(types.ModuleName, time.Now(), telemetry.MetricKeyEndBlocker)
|
|
|
|
|
2019-11-27 14:45:59 +00:00
|
|
|
// Update the current price of each asset.
|
2020-05-07 15:11:10 +00:00
|
|
|
for _, market := range k.GetMarkets(ctx) {
|
2020-06-17 09:09:44 +00:00
|
|
|
if !market.Active {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
|
|
|
|
err := k.SetCurrentPrices(ctx, market.MarketID)
|
|
|
|
if err != nil && !errors.Is(err, types.ErrNoValidPrice) {
|
|
|
|
panic(err)
|
2019-11-27 14:45:59 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|