mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-11-10 18:15:19 +00:00
27 lines
686 B
Markdown
27 lines
686 B
Markdown
|
# Begin Block
|
||
|
|
||
|
At the start of each block, the current price is calculated as the median of all raw prices for each market. The logic is as follows:
|
||
|
|
||
|
```go
|
||
|
// EndBlocker updates the current pricefeed
|
||
|
func EndBlocker(ctx sdk.Context, k Keeper) {
|
||
|
// Update the current price of each asset.
|
||
|
for _, market := range k.GetMarkets(ctx) {
|
||
|
if market.Active {
|
||
|
err := k.SetCurrentPrices(ctx, market.MarketID)
|
||
|
if err != nil {
|
||
|
// In the event of failure, emit an event.
|
||
|
ctx.EventManager().EmitEvent(
|
||
|
sdk.NewEvent(
|
||
|
EventTypeNoValidPrices,
|
||
|
sdk.NewAttribute(AttributeMarketID, fmt.Sprintf("%s", market.MarketID)),
|
||
|
),
|
||
|
)
|
||
|
continue
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
```
|