-- | Node client support for the Cole protocol
--
module Bcc.Api.Protocol.Cole
  ( -- * Client support
    mkNodeClientProtocolCole
  , mkSomeNodeClientProtocolCole
  ) where

import           Bcc.Api.Protocol.Types (ProtocolClient(..),
                     ProtocolClientInfoArgs(ProtocolClientInfoArgsCole),
                     SomeNodeClientProtocol(..))
import           Bcc.Chain.Slotting (EpochSlots)
import           Shardagnostic.Consensus.Bcc.ColeHFC

mkNodeClientProtocolCole :: EpochSlots
                          -> ProtocolClientInfoArgs ColeBlockHFC
mkNodeClientProtocolCole :: EpochSlots -> ProtocolClientInfoArgs ColeBlockHFC
mkNodeClientProtocolCole = EpochSlots -> ProtocolClientInfoArgs ColeBlockHFC
ProtocolClientInfoArgsCole

mkSomeNodeClientProtocolCole :: EpochSlots
                              -> SomeNodeClientProtocol
mkSomeNodeClientProtocolCole :: EpochSlots -> SomeNodeClientProtocol
mkSomeNodeClientProtocolCole EpochSlots
epochSlots =
    ProtocolClientInfoArgs ColeBlockHFC -> SomeNodeClientProtocol
forall blk.
(RunNode blk, ProtocolClient blk) =>
ProtocolClientInfoArgs blk -> SomeNodeClientProtocol
SomeNodeClientProtocol
      (EpochSlots -> ProtocolClientInfoArgs ColeBlockHFC
mkNodeClientProtocolCole EpochSlots
epochSlots)