{-# LANGUAGE NamedFieldPuns #-}
module Ouroboros.Cardano.Network.ArgumentsExtra where
import Cardano.Network.ConsensusMode (ConsensusMode)
import Cardano.Network.PeerSelection.Bootstrap (UseBootstrapPeers)
import Cardano.Network.Types (NumberOfBigLedgerPeers)
import Control.Concurrent.Class.MonadSTM (MonadSTM (..))
import Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionActions
(ExtraPeerSelectionActions (ExtraPeerSelectionActions))
import Ouroboros.Cardano.Network.PeerSelection.Governor.PeerSelectionActions qualified as Cardano
import Ouroboros.Network.PeerSelection.Governor.Types
(PeerSelectionTargets (..))
data m =
{
forall (m :: * -> *). ExtraArguments m -> PeerSelectionTargets
genesisPeerTargets :: PeerSelectionTargets
, forall (m :: * -> *). ExtraArguments m -> STM m UseBootstrapPeers
readUseBootstrapPeers :: STM m UseBootstrapPeers
, forall (m :: * -> *). ExtraArguments m -> NumberOfBigLedgerPeers
numberOfBigLedgerPeers :: NumberOfBigLedgerPeers
, forall (m :: * -> *). ExtraArguments m -> ConsensusMode
consensusMode :: ConsensusMode
}
cardanoExtraArgsToPeerSelectionActions :: ExtraArguments m
-> ExtraPeerSelectionActions m
ExtraArguments {
PeerSelectionTargets
genesisPeerTargets :: forall (m :: * -> *). ExtraArguments m -> PeerSelectionTargets
genesisPeerTargets :: PeerSelectionTargets
genesisPeerTargets,
STM m UseBootstrapPeers
readUseBootstrapPeers :: forall (m :: * -> *). ExtraArguments m -> STM m UseBootstrapPeers
readUseBootstrapPeers :: STM m UseBootstrapPeers
readUseBootstrapPeers
} =
ExtraPeerSelectionActions {
PeerSelectionTargets
genesisPeerTargets :: PeerSelectionTargets
genesisPeerTargets :: PeerSelectionTargets
Cardano.genesisPeerTargets
, STM m UseBootstrapPeers
readUseBootstrapPeers :: STM m UseBootstrapPeers
readUseBootstrapPeers :: STM m UseBootstrapPeers
Cardano.readUseBootstrapPeers
}