{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
module Ouroboros.Consensus.Peras.Voting.Trace
( TracePerasVoteForgingEvent (..)
) where
import Data.Word (Word64)
import GHC.Generics (Generic)
import NoThunks.Class (NoThunks)
import Ouroboros.Consensus.Block
( PerasCert
, PerasRoundNo
, PerasVote
, StandardHash
, ValidatedPerasVote
)
import Ouroboros.Consensus.BlockchainTime (WithArrivalTime)
import Ouroboros.Consensus.Peras.Voting.Rules (PerasVotingRulesDecision)
import Ouroboros.Consensus.Storage.ChainDB
( AddPerasCertChainSelOutcome
, AddPerasVoteResult
)
data TracePerasVoteForgingEvent blk
=
TracePerasVotingNoVoteAfterFirstSlotInRound
PerasRoundNo
Word64
|
TracePerasVotingNotAVoterInRound
PerasRoundNo
|
TracePerasVotingRulesDecision
PerasRoundNo
(PerasVotingRulesDecision blk)
|
TracePerasVotingForgedVote
PerasRoundNo
(WithArrivalTime (ValidatedPerasVote blk))
|
TracePerasVotingAddVoteResult
PerasRoundNo
(AddPerasVoteResult blk)
|
TracePerasVotingAddCertChainSelOutcome
PerasRoundNo
AddPerasCertChainSelOutcome
|
TracePerasVotingCantReadEnv String
deriving instance
( StandardHash blk
, Show (PerasVote blk)
, Show (PerasCert blk)
) =>
Show (TracePerasVoteForgingEvent blk)
deriving instance
( StandardHash blk
, Eq (PerasVote blk)
, Eq (PerasCert blk)
) =>
Eq (TracePerasVoteForgingEvent blk)
deriving instance
( StandardHash blk
, NoThunks (PerasVote blk)
, NoThunks (PerasCert blk)
) =>
NoThunks (TracePerasVoteForgingEvent blk)
deriving instance
Generic (TracePerasVoteForgingEvent blk)