e88e4b0848
Intead of providing a `fitness` function, an economic protocol should now call `Context.set_fitness`. This simplify the shell's code and avoid complexity on protocol change. Previously the fitness of a context produced by the old protocol had to be read by the new protocol. Now, the shell read the context without requesting the help of the economic protocol.
35 lines
1.2 KiB
OCaml
35 lines
1.2 KiB
OCaml
(**************************************************************************)
|
|
(* *)
|
|
(* Copyright (c) 2014 - 2016. *)
|
|
(* Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)
|
|
(* *)
|
|
(* All rights reserved. No warranty, explicit or implicit, provided. *)
|
|
(* *)
|
|
(**************************************************************************)
|
|
|
|
type error += Invalid_fitness
|
|
|
|
let int64_to_bytes i =
|
|
let b = MBytes.create 8 in
|
|
MBytes.set_int64 b 0 i;
|
|
b
|
|
|
|
let int64_of_bytes b =
|
|
if Compare.Int.(MBytes.length b <> 8) then
|
|
fail Invalid_fitness
|
|
else
|
|
return (MBytes.get_int64 b 0)
|
|
|
|
let from_int64 fitness =
|
|
[ MBytes.of_string Constants_repr.version_number ;
|
|
int64_to_bytes fitness ]
|
|
|
|
let to_int64 = function
|
|
| [ version ;
|
|
fitness ]
|
|
when Compare.String.
|
|
(MBytes.to_string version = Constants_repr.version_number) ->
|
|
int64_of_bytes fitness
|
|
| [] -> return 0L
|
|
| _ -> fail Invalid_fitness
|