Module 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.

Create a fresh big map in the context.

Carbonated membership of a key (from its hash) in a big map.

Carbonated retrieval of the value associated to a key (from its hash) in a big map, if any.

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.

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 = {
  1. key : Script_repr.expr;
    (*

    The key is ignored by an update but is shown in the receipt.

    *)
  2. key_hash : Script_expr_hash.t;
  3. 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
type alloc = {
  1. key_type : Script_repr.expr;
  2. value_type : Script_repr.expr;
}

The types of keys and values in a big map.