Module Maskable_merkle_tree.Make

Parameters

Signature

include module type of struct include Inputs.Base end
type index = int
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 merkle_path_at_addr_exn : t -> Addr.t -> path
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 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 merkle_path_at_index_exn : t -> int -> 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 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