."Creates a message body for participating in validator elections starting at <elect-utime> on behalf of smart-contract with address <wallet-addr> (prefix with '@' to load address from file) and hexadecimal adnl address <adnl-addr> (empty string or '0' for none)." cr
."<validator-pubkey> is the main public key of the future validator (as a Base64 string), and <validator-signature> is the signature of the previously created validator request by that key (also Base64)" cr
."The result is saved into <savefile> (`validator-query.boc` by default) and output in hexadecimal form, to be sent later as the body of a message from <wallet-addr> to elections smart contract, along with the desired stake" cr 1 halt
} : usage
$# dup 6 < swap 7 > or ' usage if
$1 true parse-load-address drop swap 1+ abort"only masterchain smartcontracts may participate in validator elections"
constant src_addr
$2 (number) 1 <> { 0 } if dup 0<= abort"<elect-utime> must be a positive integer"
constant elect_time
$3 (number) dup 0= abort"<max-factor> must be a real number 1..100"
1 = { 16 << } { 16 <</r } cond
dup 65536 < over 6553600 > or abort"<max-factor> must be a real number 1..100"