Mavryk_raw_protocol_alpha.Lazy_storage_diff
See Lazy_storage_kind
for an introduction on lazy storage.
This module defines operations on lazy storage types and diffs.
type ('id, 'alloc, 'updates) diff =
| Remove
| Update of {
init : ('id, 'alloc) init;
updates : 'updates;
}
type diffs_item = private
| Item : ('i, 'a, 'u) Lazy_storage_kind.t * 'i * ('i, 'a, 'u) diff -> diffs_item
val make :
('i, 'a, 'u) Lazy_storage_kind.t ->
'i ->
('i, 'a, 'u) diff ->
diffs_item
type diffs = diffs_item list
val diffs_in_memory_size : diffs -> Cache_memory_helpers.nodes_and_size
val encoding : diffs Mavryk_protocol_environment_alpha.Data_encoding.t
val apply :
Raw_context.t ->
diffs ->
(Raw_context.t * Mavryk_protocol_environment_alpha.Z.t)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
The returned Z.t
is the size added by the application of the diffs.
val fresh :
('id, _, _) Lazy_storage_kind.t ->
temporary:bool ->
Raw_context.t ->
(Raw_context.t * 'id) Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
val init :
Raw_context.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
Initializes the storage for all lazy storage kind. This is useful for genesis only. Protocol updates need to initialize new lazy storage kinds.
val cleanup_temporaries :
Raw_context.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Lwt.t