WIP: voting commands improvements
This patch-set:
- Adds
--dry-run
to both voting commands, and--force
tosubmit proposals
. - Improves the display of errors and "checks".
- And adds some more checks/information.
Examples of Output
This is how the checks of submit proposals
look like:
There are issues with the submission:
* Public-key-hash `tz1aYQcaXmowUu59gAgMGdiX6ARR7gdmikZk` from account
`dictator-default` does not appear to have voting rights.
* Protocol PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc is not a known
proposal.
* Protocol PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc is not a known
proposal.
* There are duplicate proposals:
PsqMEmUVGEhcFK1B6wG57hoTFn1ckePAH2Y2FQqFDnjmnowLDTe,
PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc.
This is how show voting period
shows whether a protocol has been fetched by the node:
$ tezos-client rpc get /protocols
[ "PshuejubNkeGc5nU2xwF7uGzCdujcZY7ZV3duFfffmG4z5SoMAM",
"PstfKwPVH63iHAfGRVjKCAwruuWMtvmQWJtonFS1doouAWpkjH3",
"ProtoDemoDemoDemoDemoDemoDemoDemoDemoDemoDemoD3c8k9",
"ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK",
"ProtoGenesisGenesisGenesisGenesisGenesisGenesk612im" ]
$ tezos-client show voting period
Current period: "proposal"
Blocks remaining until end of period: 3
Current proposals:
* PsEUJ6X78R6jEV19hRg5wdypf5chfnMGQqQVG3JXNd5a9ijV8Qu 399 (not known by the node)
* PshuejubNkeGc5nU2xwF7uGzCdujcZY7ZV3duFfffmG4z5SoMAM 399 (known by the node)
* PtEryq5jmynGZfAfQb7Evw4ZBH4Ucn1Jh3hN24J5aP3Gi1KRSWZ 399 (not known by the node)
* ProDLfkDbPg7gf4zGt2znra9FWFe9uuHmpvYkkCZzM2aWGD3udZ 200 (not known by the node)
* Prqg8m9F3MriiJyKuCmQzJEsnTCcYbuiP8TVbAZsFCwLcg8Xavw 200 (not known by the node)
* Prxb97zADA79weKsvjmsqd6ztYjtNdXYHiJkYPbxJj6r5NM4HBd 200 (not known by the node)
* Ps6LVbHPaeVfJe7DELfYncv9mZTRUQmy12wcqu2GWcgbdZBxtZC 200 (not known by the node)
* Ps7H4VK9gRMU9kdw8RteNDZWT51e4U74Aivjs6LcyQ34tgmQ5JF 200 (not known by the node)
* PsBFwj3391bt7u24r44vWz9cbfXZqhQhKuEbCDM4K8BYk1UShVc 200 (not known by the node)
* PsPV5ZRZsTdT6WSS8ehwHARoFZyThpGipfxU8hTKsNbo3rBGM56 200 (not known by the node)
* PsaKxtyuCS7xfNE9cRn7um74n6vG3PCJgkwBZyTNBRXe47PAevy 200 (not known by the node)
* PsfGxJqE8eUpupbKHCPrKM5UxAyeaw2vmxkjg3xxCM4TJEBXeZR 200 (not known by the node)
* PsqMEmUVGEhcFK1B6wG57hoTFn1ckePAH2Y2FQqFDnjmnowLDTe 200 (not known by the node)
* Pt9voHR8FzZUgopzjiKrfEgUHwtUXwa4BTjt8CMKn61BxDVdtV1 200 (not known by the node)
* PtJc8UYi3ha9yG4c1v2GFfwcW7DcA2UpJhT8faSACJ1PzKD4LCv 200 (not known by the node)
* PtWRULfDkFagFRjKEh5kKCUJ5nSFQdmSmE82ooiiTX1oDKuZ7fj 200 (not known by the node)
* PtcXCrhgUC64nn6H9Rzw1yM3xRk14na27piVhx2y6njtGzaYVJm 200 (not known by the node)
* PsPEyDxwmZJoDazbs9V4SmerCZbiCLTCgYVNLG39Qdj8RX2oqVz 199 (not known by the node)
* PstfKwPVH63iHAfGRVjKCAwruuWMtvmQWJtonFS1doouAWpkjH3 199 (known by the node)
Build Unique Protocol Hashes
In case it's useful, how to make protocol hashes
with dune utop src/proto_alpha/lib_client_commands
:
ocaml# let p s = Tezos_crypto.Protocol_hash.(hash_string [s] |> to_b58check);;
val p : string -> string = <fun>
ocaml# Printf.printf "tezos-client submit proposals for baker-0 %s --force\n%!" (String.concat " \\\n " @@ List.init 22 (fun i -> p (Printf.sprintf "%d" i))) ;;
tezos-client submit proposals for baker-0 Prqg8m9F3MriiJyKuCmQzJEsnTCcYbuiP8TVbAZsFCwLcg8Xavw \
PsqMEmUVGEhcFK1B6wG57hoTFn1ckePAH2Y2FQqFDnjmnowLDTe \
Ps6LVbHPaeVfJe7DELfYncv9mZTRUQmy12wcqu2GWcgbdZBxtZC \
PsPV5ZRZsTdT6WSS8ehwHARoFZyThpGipfxU8hTKsNbo3rBGM56 \
PtWRULfDkFagFRjKEh5kKCUJ5nSFQdmSmE82ooiiTX1oDKuZ7fj \
PsaKxtyuCS7xfNE9cRn7um74n6vG3PCJgkwBZyTNBRXe47PAevy \
PsfGxJqE8eUpupbKHCPrKM5UxAyeaw2vmxkjg3xxCM4TJEBXeZR \
ProDLfkDbPg7gf4zGt2znra9FWFe9uuHmpvYkkCZzM2aWGD3udZ \
PtcXCrhgUC64nn6H9Rzw1yM3xRk14na27piVhx2y6njtGzaYVJm \
Pt9voHR8FzZUgopzjiKrfEgUHwtUXwa4BTjt8CMKn61BxDVdtV1 \
PtJc8UYi3ha9yG4c1v2GFfwcW7DcA2UpJhT8faSACJ1PzKD4LCv \
Prxb97zADA79weKsvjmsqd6ztYjtNdXYHiJkYPbxJj6r5NM4HBd \
PtEryq5jmynGZfAfQb7Evw4ZBH4Ucn1Jh3hN24J5aP3Gi1KRSWZ \
PsBFwj3391bt7u24r44vWz9cbfXZqhQhKuEbCDM4K8BYk1UShVc \
Ps7H4VK9gRMU9kdw8RteNDZWT51e4U74Aivjs6LcyQ34tgmQ5JF \
PsEUJ6X78R6jEV19hRg5wdypf5chfnMGQqQVG3JXNd5a9ijV8Qu \
PtcTP3DmWzZePrfDyuLaKGKmjx2zPJRiyETv3bDSBN4NV1Ekbdc \
PtUnrfPg86aDpqY2g9eTSG7zXG1wPDzDc8MV68f6yDKsb5Va4QN \
PtNBgBbHL31AsyLmuezRxNJTRobcMxncz5WCBL4SfqtPoecyzs4 \
Prw1Kp9r68Pjoiyi9PEjwY6mwUP1vZiNzXYbqBdp5XTX8b6ou6p \
PtNnPJZFr1q44xQ1dTVvSviqoH1Dh182r9HFqjNoxS6ThfETsc1 \
PtMomAE1hncfVA5nhmtMAkQQ6XRwhts3LUpve5n86b2RLyJaWzN --force
- : unit = ()
Edited by Seb Mondet