Ton
1#!/usr/bin/fift -s
2"TonUtil.fif" include
3"GetOpt.fif" include
4
5"validator-to-sign.req" =: savefile
6
7{ ."usage: " @' $0 type ." <validator-idx> <elect-id> <complaint-hash> [<savefile>]" cr
8."Creates an unsigned request to vote for complaint <complaint-hash> (decimal; prefix with '0x' if needed) of past validator set <elect-id> on behalf of validator with zero-based index <validator-idx> in current validator set (as stored in configuration parameter 34)." cr
9."The result is saved into <savefile> (" savefile type ." by default) and output in hexadecimal form, to be signed later by the validator public key" cr 1 halt
10} : usage
11
12$# dup 3 < swap 4 > or ' usage if
134 :$1..n
14
15$1 parse-int dup =: val-idx
1616 ufits not abort"validator index out of range"
17$2 parse-int dup =: elect-id
1832 ufits not abort"invalid election id"
19$3 parse-int dup =: compl-hash
20256 ufits not abort"invalid complaint hash"
21$4 savefile replace-if-null =: savefile
22
23."Creating a request to vote for complaint 0x" compl-hash 64x. ."of past validator set " elect-id .
24."on behalf of current validator with index " val-idx . cr
25
26B{56744350} val-idx 16 u>B B+ elect-id 32 u>B B+ compl-hash 256 u>B B+
27dup Bx. cr
28dup B>base64url type cr
29savefile tuck B>file ."Saved to file " type cr
30