package octez-smart-rollup-node-lib
Published slot headers per block hash, stored as a list of bindings from Dal_slot_index.t
to Dal.Slot.t
. The encoding function converts this list into a Dal.Slot_index.t
-indexed map.
val path : Tezos_layer2_store.Store_sigs.path
Path in the irmin tree.
val mem :
[> `Read ] Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
secondary_key:Octez_smart_rollup.Dal.Slot_index.t ->
bool Tezos_base.TzPervasives.tzresult Lwt.t
mem store ~primary_key ~secondary_key
returns whether there is a value for the nested map persisted on store
for the nested map, indexed by primary_key
and then by secondary_key
.
val get :
[> `Read ] Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
secondary_key:Octez_smart_rollup.Dal.Slot_index.t ->
Octez_smart_rollup.Dal.Slot_header.t Tezos_base.TzPervasives.tzresult Lwt.t
get store ~primary_key ~secondary_key
retrieves from store
the value of the nested map associated with primary_key
and secondary_key
, if any. If such a value does not exist, it fails with error Store_errors.Cannot_read_key_from_store k
, where k
is the string representation of the primary key.
val find :
[> `Read ] Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
secondary_key:Octez_smart_rollup.Dal.Slot_index.t ->
Octez_smart_rollup.Dal.Slot_header.t option Tezos_base.TzPervasives.tzresult
Lwt.t
find store ~primary_key ~secondary_key
is the same as get store ~primary_key ~secondary_key
, except that no error is thrown and an optional value is returned instead. The returned value is None
if there is not a value bound to primary_key
and seconary_key
in the store
for the Nested_map
.
val list_secondary_keys_with_values :
[> `Read ] Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
(Octez_smart_rollup.Dal.Slot_index.t * Octez_smart_rollup.Dal.Slot_header.t)
list
Tezos_base.TzPervasives.tzresult
Lwt.t
list secondary_keys store ~primary_key
retrieves from store
the list of bindings of the nested map that share the same ~primary_key
. For each of these bindings, both the secondary_key and value are returned.
val list_secondary_keys :
[> `Read ] Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
Octez_smart_rollup.Dal.Slot_index.t list Tezos_base.TzPervasives.tzresult
Lwt.t
list_secondary_keys store ~primary_key
retrieves from store
the list of secondary_keys for which a value indexed by both primary_key
and secondary key is persisted on disk.
val list_values :
[> `Read ] Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
Octez_smart_rollup.Dal.Slot_header.t list Tezos_base.TzPervasives.tzresult
Lwt.t
list_values store ~primary_key
retrieves from store
the list of values for which a binding with primary key primary_key
and arbitrary secondary key exists.
val add :
Tezos_layer2_store.Store_sigs.rw Irmin_store.t ->
primary_key:Tezos_base.TzPervasives.Block_hash.t ->
secondary_key:Octez_smart_rollup.Dal.Slot_index.t ->
Octez_smart_rollup.Dal.Slot_header.t ->
unit Tezos_base.TzPervasives.tzresult Lwt.t
add store ~primary_key ~secondary_key value
persists value
to disk. The value is bound to the primary_key
and secondary_key
.