module Ouroboros.Cardano.Network.PeerSelection.Churn.ExtraArguments where
import Cardano.Network.ConsensusMode (ConsensusMode)
import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers)
import Control.Concurrent.Class.MonadSTM.Strict
import Ouroboros.Cardano.Network.Types (ChurnMode)
import Ouroboros.Network.BlockFetch.ConsensusInterface (FetchMode)
import Ouroboros.Network.PeerSelection.Governor.Types (PeerSelectionTargets)
data m =
{
forall (m :: * -> *). ExtraArguments m -> StrictTVar m ChurnMode
modeVar :: StrictTVar m ChurnMode
, forall (m :: * -> *). ExtraArguments m -> STM m FetchMode
readFetchMode :: STM m FetchMode
, forall (m :: * -> *). ExtraArguments m -> PeerSelectionTargets
genesisPeerTargets :: PeerSelectionTargets
, forall (m :: * -> *). ExtraArguments m -> STM m UseBootstrapPeers
readUseBootstrap :: STM m UseBootstrapPeers
, forall (m :: * -> *). ExtraArguments m -> ConsensusMode
consensusMode :: ConsensusMode
}