4
{ ."usage: " @' $0 type ." <filename-base> <seqno> <index> <new-value-boc> [<savefile>]" cr
5
."Creates a request to simple configuration smart contract created by mc0.fif requesting to change configuration parameter <index> to <new-value-boc>, "
6
."with private key loaded from file <filename-base>.pk, "
7
."and saves it into <savefile>.boc ('config-query.boc' by default)" cr 1 halt
9
$# dup 4 < swap 5 > or ' usage if
11
"config-master" constant file-base
15
"new-value.boc" constant boc-filename
16
100 constant interval // valid for 100 seconds
22
def? $5 { @' $5 } { "config-query" } cond constant savefile
24
file-base +".addr" load-address
25
2dup 2constant config_addr
26
."Configuration smart contract address = " 2dup .addr cr 6 .Addr cr
27
file-base +".pk" load-keypair nip constant config_pk
29
."Loading new value of configuration parameter " idx . ."from file " boc-filename type cr
30
boc-filename file>B B>boc
33
dup idx is-valid-config? not abort"not a valid value for chosen configuration parameter"
36
<b x{43665021} s, seqno 32 u, now interval + 32 u, idx 32 i, swap ref, b>
37
dup ."signing message: " <s csr. cr
38
dup hashu config_pk ed25519_sign_uint
39
<b b{1000100} s, config_addr addr, 0 Gram, b{00} s,
41
dup ."resulting external message: " <s csr. cr
43
savefile +".boc" tuck B>file
44
."(Saved to file " type .")" cr