ligo/src/client/embedded/alpha/baker/client_mining_revelation.ml

45 lines
1.8 KiB
OCaml
Raw Normal View History

2016-09-08 21:13:10 +04:00
(**************************************************************************)
(* *)
(* Copyright (c) 2014 - 2016. *)
(* Dynamic Ledger Solutions, Inc. <contact@tezos.com> *)
(* *)
(* All rights reserved. No warranty, explicit or implicit, provided. *)
(* *)
(**************************************************************************)
open Cli_entries
open Tezos_context
open Logging.Client.Revelation
2017-03-30 15:08:33 +04:00
let inject_seed_nonce_revelation cctxt block ?force ?async nonces =
2016-09-08 21:13:10 +04:00
let operations =
List.map
(fun (level, nonce) ->
Seed_nonce_revelation { level ; nonce }) nonces in
2017-04-20 10:26:43 +04:00
Client_node_rpcs.Blocks.net_id cctxt block >>=? fun net_id ->
Client_proto_rpcs.Helpers.Forge.Anonymous.operations cctxt
2017-04-20 10:26:43 +04:00
block ~net_id operations >>=? fun bytes ->
2017-03-30 15:08:33 +04:00
Client_node_rpcs.inject_operation cctxt ?force ?async bytes >>=? fun oph ->
2016-09-08 21:13:10 +04:00
return oph
type Error_monad.error += Bad_revelation
let forge_seed_nonce_revelation
(cctxt: Client_commands.context)
block ?(force = false) nonces =
Client_node_rpcs.Blocks.hash cctxt.rpc_config block >>=? fun hash ->
2016-09-08 21:13:10 +04:00
match nonces with
| [] ->
2017-02-14 15:24:56 +04:00
cctxt.message "No nonce to reveal for block %a"
Block_hash.pp_short hash >>= fun () ->
2016-09-08 21:13:10 +04:00
return ()
| _ ->
inject_seed_nonce_revelation cctxt.rpc_config block ~force nonces >>=? fun oph ->
2017-02-14 15:24:56 +04:00
cctxt.answer
"Operation successfully injected %d revelation(s) for %a."
(List.length nonces)
Block_hash.pp_short hash >>= fun () ->
cctxt.answer "Operation hash is '%a'."
Operation_hash.pp_short oph >>= fun () ->
2016-09-08 21:13:10 +04:00
return ()