Module Transaction_pool.Make

Parameters

module Staged_ledger : sig ... end

Signature

module Resource_pool : sig ... end
include Intf.Network_pool_base_intf with type resource_pool := Resource_pool.t and type transition_frontier := Transition_frontier.t and type resource_pool_diff := Diff_versioned.t and type resource_pool_diff_verified := Diff_versioned.verified and type config := Resource_pool.Config.t and type transition_frontier_diff := Resource_pool.transition_frontier_diff and type rejected_diff := Diff_versioned.rejected
type t
module Local_sink : Mina_net2.Sink.S_with_void with type msg := Diff_versioned.t * ( ([ `Broadcasted | `Not_broadcasted ] * Diff_versioned.t * Diff_versioned.rejected) Core_kernel.Or_error.t -> unit )
val create : config:Resource_pool.Config.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> consensus_constants:Consensus.Constants.t -> time_controller:Block_time.Controller.t -> frontier_broadcast_pipe: Transition_frontier.t Core_kernel.Option.t Pipe_lib.Broadcast_pipe.Reader.t -> logger:Logger.t -> log_gossip_heard:bool -> on_remote_push:( unit -> unit Async_kernel.Deferred.t ) -> t * Remote_sink.t * Local_sink.t
val of_resource_pool_and_diffs : Resource_pool.t -> logger:Logger.t -> constraint_constants:Genesis_constants.Constraint_constants.t -> tf_diffs:Resource_pool.transition_frontier_diff Pipe_lib.Strict_pipe.Reader.t -> log_gossip_heard:bool -> on_remote_push:( unit -> unit Async_kernel.Deferred.t ) -> t * Remote_sink.t * Local_sink.t
val resource_pool : t -> Resource_pool.t
val create_rate_limiter : unit -> Rate_limiter.t
val apply_and_broadcast : t -> Diff_versioned.verified Network_peer.Envelope.Incoming.t -> Broadcast_callback.t -> unit Async_kernel.Deferred.t