diff --git a/src/proto_alpha/lib_protocol/src/storage_functors.ml b/src/proto_alpha/lib_protocol/src/storage_functors.ml index f6024aa2d..f503c6836 100644 --- a/src/proto_alpha/lib_protocol/src/storage_functors.ml +++ b/src/proto_alpha/lib_protocol/src/storage_functors.ml @@ -130,115 +130,6 @@ module Make_single_data_storage (C : Raw_context.T) (N : NAME) (V : VALUE) end -module Make_single_carbonated_data_storage - (C : Raw_context.T) (N : NAME) (V : CARBONATED_VALUE) - : Single_carbonated_data_storage with type t = C.t - and type value = V.t = struct - type t = C.t - type context = t - type value = V.t - let consume_mem_gas c = - Lwt.return (C.consume_gas c (Gas_limit_repr.read_bytes_cost Z.zero)) - include Make_encoder(V) - let existing_size c = - match V.size with - | Fixed len -> - C.mem c N.name >>= fun exists -> - if exists then return len else return 0 - | Variable -> - C.get_option c (len_name N.name) >>= function - | None -> return 0 - | Some len -> decode_len_value N.name len - let consume_read_gas get c = - match V.size with - | Fixed len -> - Lwt.return (C.consume_gas c (Gas_limit_repr.read_bytes_cost (Z.of_int len))) - | Variable -> - get c (len_name N.name) >>=? fun len -> - decode_len_value N.name len >>=? fun len -> - Lwt.return (C.consume_gas c (Gas_limit_repr.read_bytes_cost (Z.of_int len))) - let consume_write_gas set c v = - match V.size with - | Fixed s -> - Lwt.return (C.consume_gas c (Gas_limit_repr.write_bytes_cost (Z.of_int s))) >>=? fun c -> - return (c, to_bytes v) - | Variable -> - let bytes = to_bytes v in - let len = MBytes.length bytes in - Lwt.return (C.consume_gas c (Gas_limit_repr.write_bytes_cost (Z.of_int len))) >>=? fun c -> - set c (len_name N.name) (encode_len_value bytes) >>=? fun c -> - return (c, bytes) - let consume_remove_gas del c = - match V.size with - | Fixed _ | Variable -> - Lwt.return (C.consume_gas c (Gas_limit_repr.write_bytes_cost Z.zero)) >>=? fun c -> - del c (len_name N.name) - let mem c = - consume_mem_gas c >>=? fun c -> - C.mem c N.name >>= fun res -> - return (C.project c, res) - let get c = - consume_read_gas C.get c >>=? fun c -> - C.get c N.name >>=? fun bytes -> - let key = C.absolute_key c N.name in - Lwt.return (of_bytes ~key bytes) >>=? fun res -> - return (C.project c, res) - let get_option c = - consume_mem_gas c >>=? fun c -> - C.mem c N.name >>= fun exists -> - if exists then - get c >>=? fun (c, r) -> - return (c, Some r) - else - return (C.project c, None) - let init c v = - consume_write_gas C.set c v >>=? fun (c, bytes) -> - C.init c N.name bytes >>=? fun c -> - let size = MBytes.length bytes in - Lwt.return (C.record_bytes_stored c (Int64.of_int size)) >>=? fun c -> - return (C.project c, size) - let set c v = - consume_write_gas C.init c v >>=? fun (c, bytes) -> - existing_size c >>=? fun prev_size -> - C.set c N.name bytes >>=? fun c -> - let size_diff = MBytes.length bytes - prev_size in - Lwt.return (C.record_bytes_stored c (Int64.of_int size_diff)) >>=? fun c -> - return (C.project c, size_diff) - let init_set c v = - let init_set c k v = C.init_set c k v >>= return in - consume_write_gas init_set c v >>=? fun (c, bytes) -> - existing_size c >>=? fun prev_size -> - init_set c N.name bytes >>=? fun c -> - let size_diff = MBytes.length bytes - prev_size in - Lwt.return (C.record_bytes_stored c (Int64.of_int size_diff)) >>=? fun c -> - return (C.project c, size_diff) - let remove c = - let remove c k = C.remove c k >>= return in - consume_remove_gas remove c >>=? fun c -> - existing_size c >>=? fun prev_size -> - remove c N.name >>=? fun c -> - Lwt.return (C.record_bytes_stored c (Int64.of_int ~-prev_size)) >>=? fun c -> - return (C.project c, prev_size) - let delete c = - consume_remove_gas C.delete c >>=? fun c -> - existing_size c >>=? fun prev_size -> - C.delete c N.name >>=? fun c -> - Lwt.return (C.record_bytes_stored c (Int64.of_int ~-prev_size)) >>=? fun c -> - return (C.project c, prev_size) - let set_option c v = - match v with - | None -> remove c - | Some v -> init_set c v - - let () = - let open Storage_description in - register_value - ~get:(fun c -> get_option c >>=? fun (_, v) -> return v) - (register_named_subcontext C.description N.name) - V.encoding - -end - module type INDEX = sig type t val path_length: int diff --git a/src/proto_alpha/lib_protocol/src/storage_functors.mli b/src/proto_alpha/lib_protocol/src/storage_functors.mli index 63335e845..529d1832c 100644 --- a/src/proto_alpha/lib_protocol/src/storage_functors.mli +++ b/src/proto_alpha/lib_protocol/src/storage_functors.mli @@ -21,11 +21,6 @@ module Make_single_data_storage module Make_carbonated_value (V : VALUE) : CARBONATED_VALUE with type t = V.t -module Make_single_carbonated_data_storage - (C : Raw_context.T) (N : NAME) (V : CARBONATED_VALUE) - : Single_carbonated_data_storage with type t = C.t - and type value = V.t - module type INDEX = sig type t val path_length: int