Alpha_context.Big_map
Big maps are a data structure storing key-value associations, just like regular maps, but here the whole content of the structure is not loaded in memory when interacting with it. They are thus suitable for a Michelson contract, for instance, when there are a lot of bindings, but only a few items are accessed at each contract call.
module Id : sig ... end
A big map is referenced in the storage by its identifier.
val fresh :
temporary:bool ->
context ->
(context * Id.t) Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
Create a fresh big map in the context.
val mem :
context ->
Id.t ->
Script_expr_hash.t ->
(context * bool) Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
Carbonated membership of a key (from its hash) in a big map.
val get_opt :
context ->
Id.t ->
Script_expr_hash.t ->
(context * Script.expr option)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
Carbonated retrieval of the value associated to a key (from its hash) in a big map, if any.
val exists :
context ->
Id.t ->
(context * (Script.expr * Script.expr) option)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
Carbonated retrieval of the key and value types of the bindings in a big map referenced by its identifier, if this identifier is actually bound to a big map in the context.
val list_key_values :
?offset:int ->
?length:int ->
context ->
Id.t ->
(context * (Script_expr_hash.t * Script.expr) list)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
list_key_values ?offset ?length ctxt id
lists the key hash and value for each entry in big map id
. The first offset
values are ignored (if passed). Negative offsets are treated as 0
. There will be no more than length
values in the result list (if passed). Negative values are treated as 0
.
The returned context
takes into account gas consumption of traversing the keys and loading values.
type update = {
key : Script_repr.expr;
The key is ignored by an update but is shown in the receipt.
*)key_hash : Script_expr_hash.t;
value : Script_repr.expr option;
}
The type of big map updates. When value = None
, the potential binding associated to the key
will be removed.
type updates = update list
The types of keys and values in a big map.