plebeia

Functional storage using Merkle Patricia tree
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library plebeia
module Tree : sig ... end
type t = {
tree : Tree.t;(*

Proof tree

*)
paths : Path.t list;(*

The paths proven

*)
}

Proof tree packed with the paths proven in it

val encoding : Context.t -> t Data_encoding.t

Encoding of t. The Disk nodes are loaded from ctxt on demand.

val pp : Stdlib.Format.formatter -> t -> unit
val make : Context.t -> Node_type.t -> Path.t list -> t * (Path.t * Node_type.t option) list

make ctxt n paths returns the packed Merkle proof of paths of node n under context ctxt and the nodes found (or not found) at paths.

The proof may contain Disk nodes which require ctxt to be loaded. Use encoding to load all the nodes

  • n must point to a Bud, otherwise the function fails.
val check : Hash.Hasher.t -> t -> Hash.t * (Path.t * Node_type.t option) list

check hasher t returns the top Merkle hash of the proof tree of t and returns the nodes found at the t.paths.

It may raise Invalid_argument when t contains Disk nodes.