package octez-l2-libs

  1. Overview
  2. Docs
type t

t allows a wrapped_tree to be manipulated as a tree of chunked_byte_vector

exception Invalid_key of string

key was too long, or contained invalid steps.

exception Index_too_large of int

Invalid index for a subkey

exception Value_not_found

A value was not found in the durable store.

exception Tree_not_found

A tree does not exists under key in the durable store.

exception Out_of_bounds of int64 * int64

Attempted to write/read to/from a value at offset, beyond the limit.

exception Durable_empty

Durable_storage.t was empty.

exception Readonly_value

Cannot modify a readonly value.

exception IO_too_large

Cannot read from or write to more than 2,048 bytes

val encoding : t Tezos_tree_encoding.t

encoding is a Tezos_tree_encoding for t.

val of_storage : default:t -> Tezos_webassembly_interpreter.Durable_storage.t -> t
type key

key is the type that indexes t. It enforces several constraints:

  • a key's length is bounded.
  • a key is a series of non-empty steps, where
  • a step is preceded by '/'
  • a step only contains alphanumeric ascii, or dots ('.')
val max_key_length : int

max_key_length is the maximum length of a key in bytes.

val key_of_string_exn : string -> key
val key_of_string_opt : string -> key option

find_value durable key optionally looks for the value encoded at key in durable.

val copy_tree_exn : t -> ?edit_readonly:bool -> key -> key -> t Lwt.t

copy_tree_exn tree ?edit_readonly from_key to_key produces a new tree in which a copy of the entire subtree at from_key is copied to to_key.

~edit_readonly:true allows a tree to be copied into a readonly location.

val move_tree_exn : t -> key -> key -> t Lwt.t

move_tree_exn tree from_key to_key produces a new tree in which the entire subtree at from_key is moved to to_key.

val list : t -> key -> string list Lwt.t

list durable key returns the subkeys under key.

val count_subtrees : t -> key -> int Lwt.t

count_subtrees durable key returns the number of subtrees under key.

val subtree_name_at : t -> key -> int -> string Lwt.t

subtree_name_at durable key n returns the name of the n_th subtree under key.

val delete : ?edit_readonly:bool -> t -> key -> t Lwt.t

delete ?edit_readonly durable key deletes the value at and/or subtrees of key.

  • raises Readonly_value

    when edit_readonly is not set while trying to edit the readonly section.

hash durable key retrieves the tree hash of the value at the given key. This is not the same as the hash of the value.

hash_exn durable key retrieves the tree hash of the value at the given key. This is not the same as the hash of the value.

val set_value_exn : t -> ?edit_readonly:bool -> key -> string -> t Lwt.t

set_value_exn durable key str installs the value str in durable under key, replacing any previous contents under this key without fetching it.

val write_value_exn : t -> ?edit_readonly:bool -> key -> int64 -> string -> t Lwt.t

write_value_exn durable ?edit_readonly key offset bytes writes bytes to key, starting at the given offset.

If no value at key exists, it is created.

~edit_readonly:true allows a value to be written into a readonly location.

  • raises Readonly_value

    iff edit_readonly is not set to true when attempting to write in the readonly section.

val read_value_exn : t -> key -> int64 -> int64 -> string Lwt.t

read_value_exn durable key offset max_bytes reads up to max_bytes bytes from the value at key, starting at the given offset.

module Internal_for_tests : sig ... end
OCaml

Innovation. Community. Security.