Syncable_ledger.Makemodule Inputs : Inputs_intfinclude S
with type merkle_tree := Inputs.MT.t
and type hash := Inputs.Hash.t
and type root_hash := Inputs.Root_hash.t
and type addr := Inputs.Addr.t
and type merkle_path := Inputs.MT.path
and type account := Inputs.Account.t
and type query := Inputs.Addr.t Query.t
and type answer := ( Inputs.Hash.t, Inputs.Account.t ) Answer.tmodule Responder : sig ... endval create :
Inputs.MT.t ->
logger:Logger.t ->
trust_system:Trust_system.t ->
'a tval answer_writer :
'a t ->
(Inputs.Root_hash.t
* Inputs.Addr.t Query.t
* ( Inputs.Hash.t, Inputs.Account.t ) Answer.t
Network_peer.Envelope.Incoming.t)
Pipe_lib.Linear_pipe.Writer.tval query_reader :
'a t ->
(Inputs.Root_hash.t * Inputs.Addr.t Query.t) Pipe_lib.Linear_pipe.Reader.tval destroy : 'a t -> unitval new_goal :
'a t ->
Inputs.Root_hash.t ->
data:'a ->
equal:( 'a -> 'a -> bool ) ->
[ `Repeat | `New | `Update_data ]val peek_valid_tree : 'a t -> Inputs.MT.t optionval valid_tree : 'a t -> (Inputs.MT.t * 'a) Async_kernel.Deferred.tval wait_until_valid :
'a t ->
Inputs.Root_hash.t ->
[ `Ok of Inputs.MT.t
| `Target_changed of Inputs.Root_hash.t option * Inputs.Root_hash.t ]
Async_kernel.Deferred.tval fetch :
'a t ->
Inputs.Root_hash.t ->
data:'a ->
equal:( 'a -> 'a -> bool ) ->
[ `Ok of Inputs.MT.t
| `Target_changed of Inputs.Root_hash.t option * Inputs.Root_hash.t ]
Async_kernel.Deferred.tval merkle_path_at_addr :
'a t ->
Inputs.Addr.t ->
Inputs.MT.path Core_kernel.Or_error.tval get_account_at_addr :
'a t ->
Inputs.Addr.t ->
Inputs.Account.t Core_kernel.Or_error.t