package octez-libs

  1. Overview
  2. Docs
A package that contains multiple base libraries used by the Octez suite

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65

doc/src/octez-libs.base/genesis.ml.html

Source file genesis.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(** The chain starts from a genesis block associated to a seed protocol *)
type t = {
  time : Time.Protocol.t;
  block : Tezos_crypto.Hashed.Block_hash.t;
  protocol : Tezos_crypto.Hashed.Protocol_hash.t;
}

let encoding =
  let open Data_encoding in
  conv
    (fun {time; block; protocol} -> (time, block, protocol))
    (fun (time, block, protocol) -> {time; block; protocol})
    (obj3
       (req "timestamp" Time.Protocol.encoding)
       (req "block" Tezos_crypto.Hashed.Block_hash.encoding)
       (req "protocol" Tezos_crypto.Hashed.Protocol_hash.encoding))

let equal g1 g2 =
  let {time = t1; block = b1; protocol = p1} = g1 in
  let {time = t2; block = b2; protocol = p2} = g2 in
  Time.Protocol.equal t1 t2
  && Tezos_crypto.Hashed.Block_hash.equal b1 b2
  && Tezos_crypto.Hashed.Protocol_hash.equal p1 p2

let pp ppf genesis =
  Data_encoding.Json.pp ppf (Data_encoding.Json.construct encoding genesis)

module Parameters = struct
  type t = {context_key : string; values : Data_encoding.json}

  let encoding =
    let open Data_encoding in
    conv
      (fun {context_key; values} -> (context_key, values))
      (fun (context_key, values) -> {context_key; values})
      (obj2 (dft "context_key" string "sandbox_parameter") (req "values" json))
end
OCaml

Innovation. Community. Security.