Maskable_merkle_tree.Make
module Inputs : Inputs_intf
include module type of struct include Inputs.Base end
type t = Inputs.Base.t
module Addr = Inputs.Base.Addr
module Path = Inputs.Base.Path
module Location = Inputs.Base.Location
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
type path = Path.t
val depth : t -> int
val num_accounts : t -> int
val get_inner_hash_at_addr_exn : t -> Addr.t -> Inputs.Hash.t
val set_inner_hash_at_addr_exn : t -> Addr.t -> Inputs.Hash.t -> unit
val get_all_accounts_rooted_at_exn :
t ->
Addr.t ->
(Addr.t * Inputs.Account.t) list
val make_space_for : t -> int -> unit
val to_list : t -> Inputs.Account.t list
val iteri : t -> f:( index -> Inputs.Account.t -> unit ) -> unit
val foldi :
t ->
init:'accum ->
f:( Addr.t -> 'accum -> Inputs.Account.t -> 'accum ) ->
'accum
val foldi_with_ignored_accounts :
t ->
Inputs.Account_id.Set.t ->
init:'accum ->
f:( Addr.t -> 'accum -> Inputs.Account.t -> 'accum ) ->
'accum
val fold_until :
t ->
init:'accum ->
f:( 'accum -> Inputs.Account.t -> ( 'accum, 'stop ) Base.Continue_or_stop.t ) ->
finish:( 'accum -> 'stop ) ->
'stop
val accounts : t -> Inputs.Account_id.Set.t
val token_owner : t -> Inputs.Token_id.t -> Inputs.Account_id.t option
val token_owners : t -> Inputs.Account_id.Set.t
val tokens : t -> Inputs.Key.t -> Inputs.Token_id.Set.t
val location_of_account : t -> Inputs.Account_id.t -> Location.t option
val location_of_account_batch :
t ->
Inputs.Account_id.t list ->
(Inputs.Account_id.t * Location.t option) list
val get_or_create_account :
t ->
Inputs.Account_id.t ->
Inputs.Account.t ->
([ `Added | `Existed ] * Location.t) Core.Or_error.t
val close : t -> unit
val last_filled : t -> Location.t option
val get_uuid : t -> Uuid.t
val get_directory : t -> string option
val get : t -> Location.t -> Inputs.Account.t option
val get_batch :
t ->
Location.t list ->
(Location.t * Inputs.Account.t option) list
val get_at_index_exn : t -> int -> Inputs.Account.t
val set_at_index_exn : t -> int -> Inputs.Account.t -> unit
val index_of_account_exn : t -> Inputs.Account_id.t -> int
val merkle_root : t -> Inputs.Hash.t
val merkle_path : t -> Location.t -> Path.t
val remove_accounts_exn : t -> Inputs.Account_id.t list -> unit
val detached_signal : t -> unit Async_kernel.Deferred.t
val registered_masks : Inputs.Mask.Attached.t list Uuid.Table.t
Maps parent ledger UUIDs to child masks.
module Node : sig ... end
module Graphviz : sig ... end
val to_graph : unit -> Graphviz.t
module Debug : sig ... end
module Visualize : sig ... end
val register_mask : t -> Inputs.Mask.unattached -> Inputs.Mask.Attached.t
val unregister_mask_exn :
?grandchildren:
[< `Check
| `I_promise_I_am_reparenting_this_mask
| `Recursive Check Recursive ] ->
loc:string ->
Inputs.Mask.Attached.t ->
Inputs.Mask.unattached
val set : t -> Inputs.Base.Location.t -> Inputs.Account.t -> unit
a set calls the Base implementation set, notifies registered mask childen
val remove_and_reparent_exn : t -> Inputs.Mask.Attached.t -> unit
val batch_notify_mask_children : t -> Inputs.Account.t list -> unit
val set_batch : t -> (Inputs.Base.Location.t * Inputs.Account.t) list -> unit
val set_batch_accounts :
t ->
(Inputs.Base.Addr.t * Inputs.Account.t) list ->
unit
val set_all_accounts_rooted_at_exn :
t ->
Inputs.Base.Addr.t ->
Inputs.Account.t list ->
unit