Transition_handler.Block_sinktype Structured_log_events.t += | | Block_received of {
 } | 
val block_received_structured_events_id : Structured_log_events.idval block_received_structured_events_repr : Structured_log_events.reprinclude Mina_net2.Sink.S_with_void
  with type msg :=
         [ `Transition of Mina_block.t Network_peer.Envelope.Incoming.t ]
         * [ `Time_received of Block_time.t ]
         * [ `Valid_cb of Mina_net2.Validation_callback.t ]include Mina_net2.Sink.S
  with type msg :=
         [ `Transition of Mina_block.t Network_peer.Envelope.Incoming.t ]
         * [ `Time_received of Block_time.t ]
         * [ `Valid_cb of Mina_net2.Validation_callback.t ]val push : 
  t ->
  ([ `Transition of Mina_block.t Network_peer.Envelope.Incoming.t ]
   * [ `Time_received of Block_time.t ]
   * [ `Valid_cb of Mina_net2.Validation_callback.t ]) ->
  unit Async_kernel.Deferred.tval void : ttype block_sink_config = {| logger : Logger.t; | 
| slot_duration_ms : Block_time.Span.t; | 
| on_push : unit -> unit Async_kernel.Deferred.t; | 
| time_controller : Block_time.Controller.t; | 
| log_gossip_heard : bool; | 
| consensus_constants : Consensus.Constants.t; | 
| genesis_constants : Genesis_constants.t; | 
}val create : 
  block_sink_config ->
  ([ `Transition of Mina_block.t Network_peer.Envelope.Incoming.t ]
   * [ `Time_received of Block_time.t ]
   * [ `Valid_cb of Mina_net2.Validation_callback.t ])
    Pipe_lib.Strict_pipe.Reader.t
  * t