package miner

import "time"

// ExplorerStats is a struct that holds the miner's stats. 
// swagger:model ExploreStats
type ExplorerStats struct {
	// The average block finality time in milliseconds.
	BlockFinality      float64                  `json:"block_finality"`

	// Latest finalization round as seen by the miner.
	LastFinalizedRound int64                    `json:"last_finalized_round"`

	// The count of finalized blocks that was generated by the miner.
	BlocksFinalized    int64                    `json:"blocks_finalized"`

	// Number of missing nodes as seen by the miner.
	StateHealth        int64                    `json:"state_health"`

	// Current round the miner is working on.
	CurrentRound       int64                    `json:"current_round"`

	// Number of timeouts happened during the round.
	RoundTimeout       int64                    `json:"round_timeout"`

	// Total timeouts occurred in the blockchain.
	Timeouts           int64                    `json:"timeouts"`

	// Average number of transactions per block for the blocks generated by the miner.
	AverageBlockSize   int                      `json:"average_block_size"`

	// Median network time of the nodes contributing to blockchain progress (miners/sharders) as seen by the miner.
	NetworkTime        map[string]time.Duration `json:"network_times"`
}
