-- | Node client support for the Byron protocol
--
module Cardano.Api.Protocol.Byron
  ( -- * Client support
    mkNodeClientProtocolByron
  , mkSomeNodeClientProtocolByron
  ) where

import           Cardano.Api.Protocol.Types (SomeNodeClientProtocol (..))
import           Cardano.Chain.Slotting (EpochSlots)
import           Ouroboros.Consensus.Cardano (ProtocolByron, ProtocolClient (ProtocolClientByron))
import           Ouroboros.Consensus.Cardano.ByronHFC

mkNodeClientProtocolByron :: EpochSlots
                          -> ProtocolClient ByronBlockHFC ProtocolByron
mkNodeClientProtocolByron :: EpochSlots -> ProtocolClient ByronBlockHFC ProtocolByron
mkNodeClientProtocolByron = EpochSlots -> ProtocolClient ByronBlockHFC ProtocolByron
ProtocolClientByron

mkSomeNodeClientProtocolByron :: EpochSlots
                              -> SomeNodeClientProtocol
mkSomeNodeClientProtocolByron :: EpochSlots -> SomeNodeClientProtocol
mkSomeNodeClientProtocolByron EpochSlots
epochSlots =
    ProtocolClient ByronBlockHFC (BlockProtocol ByronBlockHFC)
-> SomeNodeClientProtocol
forall blk.
RunNode blk =>
ProtocolClient blk (BlockProtocol blk) -> SomeNodeClientProtocol
SomeNodeClientProtocol
      (EpochSlots -> ProtocolClient ByronBlockHFC ProtocolByron
mkNodeClientProtocolByron EpochSlots
epochSlots)