mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-27 00:35:18 +00:00
31 lines
701 B
Markdown
31 lines
701 B
Markdown
|
<!--
|
||
|
order: 6
|
||
|
-->
|
||
|
|
||
|
# End Block
|
||
|
|
||
|
At the end 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
|
||
|
}
|
||
|
```
|