4
{ ."usage: " @' $0 type ." <filename-base> <seqno> [<savefile>]" cr
5
."Creates a request to simple configuration smart contract requesting to change elector smart contract code to the one currently stored in auto/elector-code.fif, "
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 2 < swap 3 > or ' usage if
11
"config-master" constant file-base
15
"auto/elector-code.fif" constant elector-source
16
100 constant interval // valid for 100 seconds
20
def? $3 { @' $3 } { "config-query" } cond constant savefile
22
file-base +".addr" load-address
23
2dup 2constant config_addr
24
."Configuration smart contract address = " 2dup .addr cr 6 .Addr cr
25
file-base +".pk" load-keypair nip constant config_pk
27
."Loading new elector smart contract code from file " elector-source type cr
33
<b x{4e43ef05} s, seqno 32 u, now interval + 32 u, swap ref, b>
34
dup ."signing message: " <s csr. cr
35
dup hashu config_pk ed25519_sign_uint
36
<b b{1000100} s, config_addr addr, 0 Gram, b{00} s,
38
dup ."resulting external message: " <s csr. cr
40
savefile +".boc" tuck B>file
41
."(Saved to file " type .")" cr