-- | Node client support for the Bcc protocol
--
module Bcc.Api.Protocol.Bcc
  ( -- * Client support
    mkNodeClientProtocolBcc
  , mkSomeNodeClientProtocolBcc
  ) where

import           Bcc.Api.Protocol.Types (ProtocolClient(..),
                     ProtocolClientInfoArgs(ProtocolClientInfoArgsBcc),
                     SomeNodeClientProtocol (..))
import           Bcc.Chain.Slotting (EpochSlots)
import           Shardagnostic.Consensus.Bcc.Block (BccBlock)
import           Bcc.Ledger.Crypto (StandardCrypto)

mkNodeClientProtocolBcc :: EpochSlots
                            -> ProtocolClientInfoArgs (BccBlock StandardCrypto)
mkNodeClientProtocolBcc :: EpochSlots -> ProtocolClientInfoArgs (BccBlock StandardCrypto)
mkNodeClientProtocolBcc = EpochSlots -> ProtocolClientInfoArgs (BccBlock StandardCrypto)
ProtocolClientInfoArgsBcc

mkSomeNodeClientProtocolBcc :: EpochSlots
                                -> SomeNodeClientProtocol
mkSomeNodeClientProtocolBcc :: EpochSlots -> SomeNodeClientProtocol
mkSomeNodeClientProtocolBcc EpochSlots
epochSlots =
    ProtocolClientInfoArgs (BccBlock StandardCrypto)
-> SomeNodeClientProtocol
forall blk.
(RunNode blk, ProtocolClient blk) =>
ProtocolClientInfoArgs blk -> SomeNodeClientProtocol
SomeNodeClientProtocol
      (EpochSlots -> ProtocolClientInfoArgs (BccBlock StandardCrypto)
mkNodeClientProtocolBcc EpochSlots
epochSlots)