2222
2323import  Cardano.Api.Consensus.Internal.Mode 
2424
25+ import  qualified  Control.Tracer  as  Tracer 
2526import  Ouroboros.Consensus.Block.Forging  (BlockForging )
2627import  Ouroboros.Consensus.Byron.ByronHFC  (ByronBlockHFC )
2728import  Ouroboros.Consensus.Cardano 
@@ -31,6 +32,7 @@ import Ouroboros.Consensus.HardFork.Combinator.Embed.Unary
3132import  Ouroboros.Consensus.Ledger.SupportsProtocol  qualified  as  Consensus  (LedgerSupportsProtocol )
3233import  Ouroboros.Consensus.Node.ProtocolInfo  (ProtocolClientInfo  (.. ), ProtocolInfo  (.. ))
3334import  Ouroboros.Consensus.Node.Run  (RunNode )
35+ import  Ouroboros.Consensus.Protocol.Praos.AgentClient 
3436import  Ouroboros.Consensus.Protocol.TPraos  qualified  as  Consensus 
3537import  Ouroboros.Consensus.Shelley.Eras  qualified  as  Consensus  (ShelleyEra )
3638import  Ouroboros.Consensus.Shelley.Ledger.Block  qualified  as  Consensus  (ShelleyBlock )
@@ -44,7 +46,11 @@ import Type.Reflection ((:~:) (..))
4446
4547class  (RunNode  blk , IOLike  m ) =>  Protocol  m  blk  where 
4648  data  ProtocolInfoArgs  blk 
47-   protocolInfo  ::  ProtocolInfoArgs  blk  ->  (ProtocolInfo  blk , m  [BlockForging  m  blk ])
49+   protocolInfo
50+     ::  ProtocolInfoArgs  blk 
51+     ->  ( ProtocolInfo  blk 
52+        , Tracer. Tracer  m  KESAgentClientTrace  ->  m  [BlockForging  m  blk ]
53+        )
4854
4955--  |  Node client support for each consensus protocol. 
5056-- 
@@ -59,10 +65,10 @@ instance IOLike m => Protocol m ByronBlockHFC where
5965  data  ProtocolInfoArgs  ByronBlockHFC  =  ProtocolInfoArgsByron  ProtocolParamsByron 
6066  protocolInfo  (ProtocolInfoArgsByron  params ) = 
6167    ( inject  $  protocolInfoByron  params 
62-     , pure  .  map  inject  $  blockForgingByron  params 
68+     , \ _   ->   pure  .  map  inject  $  blockForgingByron  params 
6369    )
6470
65- instance  (CardanoHardForkConstraints  StandardCrypto , IOLike  m ) =>  Protocol  m  (CardanoBlock  StandardCrypto ) where 
71+ instance  (CardanoHardForkConstraints  StandardCrypto , IOLike  m ,  MonadKESAgent   m ) =>  Protocol  m  (CardanoBlock  StandardCrypto ) where 
6672  data  ProtocolInfoArgs  (CardanoBlock  StandardCrypto )
6773    =  ProtocolInfoArgsCardano 
6874        (CardanoProtocolParams  StandardCrypto )
@@ -89,6 +95,7 @@ instance
8995          (Consensus. TPraos  StandardCrypto )
9096          ShelleyEra 
9197      )
98+   , MonadKESAgent  m 
9299  )
93100  =>  Protocol  m  (ShelleyBlockHFC  (Consensus. TPraos  StandardCrypto ) ShelleyEra )
94101  where 
@@ -98,7 +105,7 @@ instance
98105        (ProtocolParamsShelleyBased  StandardCrypto )
99106        ProtVer 
100107  protocolInfo  (ProtocolInfoArgsShelley  genesis  paramsShelleyBased_  paramsShelley_ ) = 
101-     bimap  inject  (fmap  $  map  inject ) $ 
108+     bimap  inject  (fmap  $  fmap   $   map  inject ) $ 
102109      protocolInfoShelley  genesis  paramsShelleyBased_  paramsShelley_ 
103110
104111instance 
0 commit comments