1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-13 11:42:18 +00:00
ton/crypto/smartcont/update-config-smc.fif

43 lines
1.4 KiB
Text
Raw Normal View History

2019-10-09 16:00:54 +00:00
#!/usr/bin/fift -s
2019-09-07 10:03:22 +00:00
"TonUtil.fif" include
2019-12-05 12:51:51 +00:00
{ ."usage: " $0 type ." <filename-base> <seqno> [<savefile>]" cr
."Creates a request to simple configuration smart contract requesting to change configuration smart contract code to the one currently stored in auto/config-code.fif, "
2019-09-07 10:03:22 +00:00
."with private key loaded from file <filename-base>.pk, "
."and saves it into <savefile>.boc ('config-query.boc' by default)" cr 1 halt
} : usage
$# dup 2 < swap 3 > or ' usage if
2019-09-07 10:03:22 +00:00
"config-master" constant file-base
0 constant qseqno
2019-09-07 10:03:22 +00:00
-1 constant idx
true constant bounce
"auto/config-code.fif" constant config-source
2019-09-07 10:03:22 +00:00
100 constant interval // valid for 100 seconds
2019-12-05 12:51:51 +00:00
3 :$1..n
$1 =: file-base
$2 parse-int =: qseqno
2019-12-05 12:51:51 +00:00
$3 "config-query" replace-if-null constant savefile
2019-09-07 10:03:22 +00:00
file-base +".addr" load-address
2dup 2constant config_addr
."Configuration smart contract address = " 2dup .addr cr 6 .Addr cr
file-base +".pk" load-keypair nip constant config_pk
."Loading new configuration smart contract code from file " config-source type cr
2019-09-07 10:03:22 +00:00
"Asm.fif" include
config-source include
dup <s csr. cr
// create a message
<b x{4e436f64} s, qseqno 32 u, now interval + 32 u, swap ref, b>
2019-09-07 10:03:22 +00:00
dup ."signing message: " <s csr. cr
dup hashu config_pk ed25519_sign_uint
2019-09-07 10:03:22 +00:00
<b b{1000100} s, config_addr addr, 0 Gram, b{00} s,
swap B, swap <s s, b>
dup ."resulting external message: " <s csr. cr
2 boc+>B dup Bx. cr
savefile +".boc" tuck B>file
."(Saved to file " type .")" cr