Ton

Форк
0
/
validator-elect-req.fif 
30 строк · 1.6 Кб
1
#!/usr/bin/fift -s
2
"TonUtil.fif" include
3

4
{ ."usage: " @' $0 type ." <wallet-addr> <elect-utime> <max-factor> <adnl-addr> [<savefile>]" cr
5
  ."Creates a request to participate 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
6
  ."The result is saved into <savefile> and output in hexadecimal form, to be signed later by the validator public key" cr 1 halt
7
} : usage
8

9
$# dup 3 < swap 5 > or ' usage if
10
$1 true parse-load-address drop swap 1+ abort"only masterchain smartcontracts may participate in validator elections"
11
constant src_addr
12
$2 (number) 1 <> { 0 } if dup 0<= abort"<elect-utime> must be a positive integer"
13
constant elect_time
14
$3 (number) dup 0= abort"<max-factor> must be a real number 1..100"
15
1 = { 16 << } { 16 <</r } cond
16
dup 65536 < over 6553600 > or abort"<max-factor> must be a real number 1..100"
17
constant max_factor
18
def? $4 { @' $4 dup $len 1 > { parse-adnl-address } { drop 0 } cond } ' 0 cond
19
constant adnl_addr
20
def? $5 { @' $5 } { "validator-to-sign.bin" } cond constant output_fname
21

22
."Creating a request to participate in validator elections at time " elect_time .
23
."from smart contract " -1 src_addr 2dup 1 .Addr ." = " .addr
24
." with maximal stake factor with respect to the minimal stake " max_factor ._
25
."/65536 and validator ADNL address " adnl_addr 64x. cr
26

27
B{654c5074} elect_time 32 u>B B+ max_factor 32 u>B B+ src_addr 256 u>B B+ adnl_addr 256 u>B B+
28
dup Bx. cr
29
dup B>base64url type cr
30
output_fname tuck B>file ."Saved to file " type cr
31

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.