ligo/test/proto_alpha_isolate_helpers/helpers_misc.ml
2018-02-01 18:20:47 +01:00

79 lines
2.2 KiB
OCaml

(**************************************************************************)
(* *)
(* Copyright (c) 2014 - 2016. *)
(* Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)
(* *)
(* All rights reserved. No warranty, explicit or implicit, provided. *)
(* *)
(**************************************************************************)
open Tezos_shell
exception Unknown_protocol
let no_ops_hash =
Operation_list_list_hash.compute
[Operation_list_hash.empty]
let get_protocol hash : (module State.Registred_protocol.T) =
let (module Protocol): (module State.Registred_protocol.T) =
Option.unopt_exn
Unknown_protocol
@@ State.Registred_protocol.get hash
in
(module Protocol)
let get_shell_header head =
let shell_header : Operation.shell_header = {
branch = State.Block.hash head
} in
shell_header
let get_block_header pred operations_hash fitness context timestamp =
let pred_header = State.Block.header pred in
let pred_hash = State.Block.hash pred in
let shell_header : Block_header.shell_header = {
level = Int32.succ pred_header.shell.level ;
proto_level = 0 ;
predecessor = pred_hash ;
timestamp ;
validation_passes = 1 ;
operations_hash ;
context ;
fitness
} in
shell_header
let find_account accounts hpub =
let hpub_pred (x : Helpers_account.t) =
Ed25519.Public_key_hash.equal x.hpub hpub in
List.find hpub_pred accounts
let get_dummy_tezos_context context =
Proto_alpha.Tezos_context.init
context
~level: Int32.one
~timestamp:(Time.now ())
~fitness:([])
let read_file path =
let (//) = Filename.concat in
let executable_path = Sys.getcwd () in
let path =
if Filename.is_relative path
then executable_path // path
else path
in
let ic = open_in path in
let n = in_channel_length ic in
let s = Bytes.create n in
really_input ic s 0 n ;
close_in ic ;
(Bytes.to_string s)