mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
1713 lines
99 KiB
Plaintext
1713 lines
99 KiB
Plaintext
// automatically generated from `smartcont/stdlib.fc` `smartcont/elector-code.fc`
|
|
PROGRAM{
|
|
DECLPROC load_data
|
|
DECLPROC store_data
|
|
DECLPROC unpack_elect
|
|
DECLPROC pack_elect
|
|
DECLPROC get_validator_conf
|
|
DECLPROC send_message_back
|
|
DECLPROC return_stake
|
|
DECLPROC send_confirmation
|
|
DECLPROC send_validator_set_to_config
|
|
DECLPROC ~credit_to
|
|
DECLPROC process_new_stake
|
|
DECLPROC unfreeze_without_bonuses
|
|
DECLPROC unfreeze_with_bonuses
|
|
DECLPROC unfreeze_all
|
|
DECLPROC config_set_confirmed
|
|
DECLPROC process_simple_transfer
|
|
DECLPROC recover_stake
|
|
1666 DECLMETHOD after_code_upgrade
|
|
DECLPROC upgrade_code
|
|
DECLPROC recv_internal
|
|
DECLPROC postpone_elections
|
|
DECLPROC compute_total_stake
|
|
DECLPROC try_elect
|
|
DECLPROC conduct_elections
|
|
DECLPROC update_active_vset_id
|
|
DECLPROC cell_hash_eq?
|
|
DECLPROC validator_set_installed
|
|
DECLPROC check_unfreeze
|
|
DECLPROC announce_new_elections
|
|
DECLPROC run_ticktock
|
|
86535 DECLMETHOD active_election_id
|
|
87852 DECLMETHOD participates_in
|
|
123541 DECLMETHOD participant_list
|
|
130944 DECLMETHOD compute_returned_stake
|
|
load_data PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // cs
|
|
LDDICT // _4 cs
|
|
LDDICT // _4 _6 cs
|
|
LDDICT // _4 _6 _8 cs
|
|
LDGRAMS // _4 _6 _8 _10 cs
|
|
32 LDU // _4 _6 _8 _10 _12 cs
|
|
256 LDU // res res res res res res cs
|
|
ENDS
|
|
}>
|
|
store_data PROC:<{
|
|
// elect credits past_elect grams active_id active_hash
|
|
NEWC // elect credits past_elect grams active_id active_hash _6
|
|
s1 s6 XCHG // active_hash credits past_elect grams active_id elect _6
|
|
STDICT // active_hash credits past_elect grams active_id _7
|
|
s1 s4 XCHG // active_hash active_id past_elect grams credits _7
|
|
STDICT // active_hash active_id past_elect grams _8
|
|
s1 s2 XCHG // active_hash active_id grams past_elect _8
|
|
STDICT // active_hash active_id grams _9
|
|
SWAP // active_hash active_id _9 grams
|
|
STGRAMS // active_hash active_id _10
|
|
32 STU // active_hash _12
|
|
256 STU // _14
|
|
ENDC // _15
|
|
c4 POP
|
|
}>
|
|
unpack_elect PROC:<{
|
|
// elect
|
|
CTOS // es
|
|
32 LDU // _4 es
|
|
32 LDU // _4 _7 es
|
|
LDGRAMS // _4 _7 _10 es
|
|
LDGRAMS // _4 _7 _10 _12 es
|
|
LDDICT // _4 _7 _10 _12 _14 es
|
|
1 LDI // _4 _7 _10 _12 _14 _16 es
|
|
1 LDI // res res res res res res res es
|
|
ENDS
|
|
}>
|
|
pack_elect PROC:<{
|
|
// elect_at elect_close min_stake total_stake members failed finished
|
|
NEWC // elect_at elect_close min_stake total_stake members failed finished _7
|
|
s1 s7 XCHG // finished elect_close min_stake total_stake members failed elect_at _7
|
|
32 STU // finished elect_close min_stake total_stake members failed _9
|
|
s1 s5 XCHG // finished failed min_stake total_stake members elect_close _9
|
|
32 STU // finished failed min_stake total_stake members _11
|
|
s0 s3 XCHG2 // finished failed members total_stake _11 min_stake
|
|
STGRAMS // finished failed members total_stake _12
|
|
SWAP // finished failed members _12 total_stake
|
|
STGRAMS // finished failed members _13
|
|
STDICT // finished failed _14
|
|
1 STI // finished _16
|
|
1 STI // _18
|
|
ENDC // _19
|
|
}>
|
|
get_validator_conf PROC:<{
|
|
//
|
|
15 PUSHINT // _1=15
|
|
CONFIGOPTPARAM // _2
|
|
CTOS // cs
|
|
32 LDI // _4 cs
|
|
32 LDI // _4 _7 cs
|
|
32 LDI // _4 _7 _10 cs
|
|
32 PLDI // _4 _7 _10 _14
|
|
}>
|
|
send_message_back PROC:<{
|
|
// addr ans_tag query_id body grams mode
|
|
0 PUSHINT // addr ans_tag query_id body grams mode _7=0
|
|
24 PUSHINT // addr ans_tag query_id body grams mode _7=0 _8=24
|
|
NEWC // addr ans_tag query_id body grams mode _7=0 _8=24 _9
|
|
6 STU // addr ans_tag query_id body grams mode _7=0 _11
|
|
s0 s7 XCHG2 // _7=0 ans_tag query_id body grams mode _11 addr
|
|
STSLICER // _7=0 ans_tag query_id body grams mode _12
|
|
ROT // _7=0 ans_tag query_id body mode _12 grams
|
|
STGRAMS // _7=0 ans_tag query_id body mode _13
|
|
s1 s5 XCHG // mode ans_tag query_id body _7=0 _13
|
|
107 STU // mode ans_tag query_id body _27
|
|
s1 s3 XCHG // mode body query_id ans_tag _27
|
|
32 STU // mode body query_id _29
|
|
64 STU // mode body msg
|
|
OVER // mode body msg body
|
|
-1 GTINT // mode body msg _33
|
|
IF:<{ // mode body msg
|
|
32 STU // mode msg
|
|
}>ELSE<{
|
|
NIP // mode msg
|
|
}>
|
|
ENDC // mode _37
|
|
SWAP // _37 mode
|
|
SENDRAWMSG
|
|
}>
|
|
return_stake PROC:<{
|
|
// addr query_id reason
|
|
4000269644 PUSHINT // addr query_id reason _3=4000269644
|
|
0 PUSHINT // addr query_id reason _3=4000269644 _4=0
|
|
s3 s3 s0 XCHG3
|
|
64 PUSHINT // addr _3=4000269644 query_id reason _4=0 _5=64
|
|
send_message_back CALLDICT
|
|
}>
|
|
send_confirmation PROC:<{
|
|
// addr query_id comment
|
|
4084484172 PUSHINT // addr query_id comment _3=4084484172
|
|
1000000000 PUSHINT // addr query_id comment _3=4084484172 _4=1000000000
|
|
s3 s3 s0 XCHG3
|
|
2 PUSHINT // addr _3=4084484172 query_id comment _4=1000000000 _5=2
|
|
send_message_back CALLDICT
|
|
}>
|
|
send_validator_set_to_config PROC:<{
|
|
// config_addr vset query_id
|
|
1314280276 PUSHINT // config_addr vset query_id _4=1314280276
|
|
0 PUSHINT // config_addr vset query_id _4=1314280276 _5=0
|
|
50431 PUSHINT // config_addr vset query_id _4=1314280276 _5=0 _6=50431
|
|
NEWC // config_addr vset query_id _4=1314280276 _5=0 _6=50431 _7
|
|
17 STU // config_addr vset query_id _4=1314280276 _5=0 _9
|
|
s1 s5 XCHG // _5=0 vset query_id _4=1314280276 config_addr _9
|
|
256 STU // _5=0 vset query_id _4=1314280276 _11
|
|
30 PUSHPOW2 // _5=0 vset query_id _4=1314280276 _11 _14
|
|
STGRAMS // _5=0 vset query_id _4=1314280276 _15
|
|
s1 s4 XCHG // _4=1314280276 vset query_id _5=0 _15
|
|
107 STU // _4=1314280276 vset query_id _29
|
|
s1 s3 XCHG // query_id vset _4=1314280276 _29
|
|
32 STU // query_id vset _31
|
|
s1 s2 XCHG // vset query_id _31
|
|
64 STU // vset _33
|
|
STREF // msg
|
|
ENDC // _35
|
|
1 PUSHINT // _35 _36=1
|
|
SENDRAWMSG
|
|
}>
|
|
~credit_to PROC:<{
|
|
// credits addr amount
|
|
s1 s2 PUSH2
|
|
8 PUSHPOW2 // credits addr amount addr credits _5=256
|
|
DICTUGET
|
|
NULLSWAPIFNOT // credits addr amount val f
|
|
IF:<{ // credits addr amount val
|
|
LDGRAMS // credits addr amount _18 _17
|
|
DROP // credits addr amount _7
|
|
ADD // credits addr amount
|
|
}>ELSE<{
|
|
DROP // credits addr amount
|
|
}>
|
|
NEWC // credits addr amount _11
|
|
SWAP // credits addr _11 amount
|
|
STGRAMS // credits addr _12
|
|
s0 s2 XCHG
|
|
8 PUSHPOW2 // _12 addr credits _13=256
|
|
DICTUSETB // credits
|
|
}>
|
|
process_new_stake PROC:<{
|
|
// s_addr msg_value cs query_id
|
|
s3 PUSH // s_addr msg_value cs query_id s_addr
|
|
REWRITESTDADDR // s_addr msg_value cs query_id src_wc src_addr
|
|
c4 PUSH // s_addr msg_value cs query_id src_wc src_addr _8
|
|
CTOS // s_addr msg_value cs query_id src_wc src_addr ds
|
|
LDDICT // s_addr msg_value cs query_id src_wc src_addr elect ds
|
|
OVER // s_addr msg_value cs query_id src_wc src_addr elect ds elect
|
|
ISNULL // s_addr msg_value cs query_id src_wc src_addr elect ds _13
|
|
s0 s4 XCHG // s_addr msg_value cs query_id _13 src_addr elect ds src_wc
|
|
INC // s_addr msg_value cs query_id _13 src_addr elect ds _15
|
|
s1 s4 XCHG // s_addr msg_value cs query_id ds src_addr elect _13 _15
|
|
OR // s_addr msg_value cs query_id ds src_addr elect _16
|
|
IFJMP:<{ // s_addr msg_value cs query_id ds src_addr elect
|
|
s3 s5 XCHG
|
|
5 BLKDROP // s_addr query_id
|
|
0 PUSHINT // s_addr query_id _17=0
|
|
return_stake CALLDICT
|
|
}> // s_addr msg_value cs query_id ds src_addr elect
|
|
s0 s4 XCHG // s_addr msg_value elect query_id ds src_addr cs
|
|
256 LDU // s_addr msg_value elect query_id ds src_addr validator_pubkey cs
|
|
32 LDU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at cs
|
|
32 LDU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor cs
|
|
256 LDU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr cs
|
|
LDREF // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr _36 cs
|
|
SWAP // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr cs _36
|
|
CTOS // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr cs _38
|
|
9 PUSHPOW2 // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr cs _38 _39=512
|
|
PLDSLICEX // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr cs signature
|
|
SWAP // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature cs
|
|
ENDS
|
|
1699500148 PUSHINT // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _42=1699500148
|
|
NEWC // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _42=1699500148 _43
|
|
32 STU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _45
|
|
s4 s(-1) PUXC // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature stake_at _45
|
|
32 STU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _47
|
|
s3 s(-1) PUXC // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature max_factor _47
|
|
32 STU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _49
|
|
s6 s(-1) PUXC // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature src_addr _49
|
|
256 STU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _51
|
|
s2 s(-1) PUXC // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature adnl_addr _51
|
|
256 STU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _53
|
|
ENDC // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _54
|
|
CTOS // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr signature _55
|
|
s1 s5 XCPU // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr _55 signature validator_pubkey
|
|
CHKSIGNS // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr _56
|
|
IFNOTJMP:<{ // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr
|
|
s6 s8 XCHG
|
|
8 BLKDROP // s_addr query_id
|
|
1 PUSHINT // s_addr query_id _57=1
|
|
return_stake CALLDICT
|
|
}> // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr
|
|
OVER
|
|
16 PUSHPOW2 // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr max_factor _59=65536
|
|
LESS // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr _60
|
|
IFJMP:<{ // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr
|
|
s6 s8 XCHG
|
|
8 BLKDROP // s_addr query_id
|
|
6 PUSHINT // s_addr query_id _61=6
|
|
return_stake CALLDICT
|
|
}> // s_addr msg_value elect query_id ds src_addr validator_pubkey stake_at max_factor adnl_addr
|
|
s0 s7 XCHG // s_addr msg_value adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect
|
|
unpack_elect CALLDICT // s_addr msg_value adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor _146 _147 _148 _149 _150 _151 _152
|
|
NIP // s_addr msg_value adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members finished
|
|
s0 s5 XCHG // s_addr msg_value adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members elect_at
|
|
s0 DUMP // s_addr msg_value adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members elect_at
|
|
s0 s13 XCHG
|
|
1000000000 PUSHINT // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value _73=1000000000
|
|
SUB // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value
|
|
DUP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value msg_value
|
|
12 LSHIFT# // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value _76
|
|
s3 PUSH // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value _76 total_stake
|
|
LESS // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value _77
|
|
IFJMP:<{ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value
|
|
s11 s12 XCHG
|
|
12 BLKDROP
|
|
NIP // s_addr query_id
|
|
2 PUSHINT // s_addr query_id _78=2
|
|
return_stake CALLDICT
|
|
}> // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake total_stake members msg_value
|
|
s2 s2 XCPU // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake msg_value members total_stake msg_value
|
|
ADD // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor finished elect_close min_stake msg_value members total_stake
|
|
s7 s13 XCPU // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor finished elect_close min_stake msg_value members stake_at elect_at
|
|
NEQ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor finished elect_close min_stake msg_value members _81
|
|
IFJMP:<{ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor finished elect_close min_stake msg_value members
|
|
s10 s12 XCHG
|
|
12 BLKDROP // s_addr query_id
|
|
3 PUSHINT // s_addr query_id _82=3
|
|
return_stake CALLDICT
|
|
}> // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor finished elect_close min_stake msg_value members
|
|
s0 s4 XCHG // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value finished
|
|
IFJMP:<{ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value
|
|
s9 s11 XCHG
|
|
11 BLKDROP // s_addr query_id
|
|
0 PUSHINT // s_addr query_id _84=0
|
|
return_stake CALLDICT
|
|
}> // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value
|
|
s6 s3 PUSH2
|
|
8 PUSHPOW2 // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value validator_pubkey members _88=256
|
|
DICTUGET
|
|
NULLSWAPIFNOT // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value mem found
|
|
DUP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value mem found found
|
|
IF:<{ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value mem found
|
|
DROP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value mem
|
|
LDGRAMS // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _90 mem
|
|
-ROT // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake mem msg_value _90
|
|
ADD // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake mem msg_value
|
|
SWAP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value mem
|
|
64 LDU // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _158 _157
|
|
NIP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value mem
|
|
256 LDU // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _160 _159
|
|
DROP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _96
|
|
s8 s(-1) PUXC // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value src_addr _96
|
|
NEQ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value found
|
|
}>ELSE<{
|
|
NIP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value found
|
|
}>
|
|
IFJMP:<{ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value
|
|
s9 s11 XCHG
|
|
11 BLKDROP // s_addr query_id
|
|
4 PUSHINT // s_addr query_id _100=4
|
|
return_stake CALLDICT
|
|
}> // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value
|
|
s0 s1 PUSH2 // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value msg_value min_stake
|
|
LESS // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _102
|
|
IFJMP:<{ // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value
|
|
s9 s11 XCHG
|
|
11 BLKDROP // s_addr query_id
|
|
5 PUSHINT // s_addr query_id _103=5
|
|
return_stake CALLDICT
|
|
}> // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value
|
|
DUP // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value msg_value
|
|
44 THROWIFNOT
|
|
ACCEPT
|
|
NOW // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _109
|
|
NEWC // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake msg_value _109 _110
|
|
ROT // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake _109 _110 msg_value
|
|
STGRAMS // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake _109 _111
|
|
32 STU // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor members elect_close min_stake _113
|
|
s1 s4 XCHG // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake min_stake members elect_close max_factor _113
|
|
32 STU // s_addr elect_at adnl_addr query_id ds src_addr validator_pubkey total_stake min_stake members elect_close _115
|
|
s1 s6 XCHG // s_addr elect_at adnl_addr query_id ds elect_close validator_pubkey total_stake min_stake members src_addr _115
|
|
256 STU // s_addr elect_at adnl_addr query_id ds elect_close validator_pubkey total_stake min_stake members _117
|
|
s1 s8 XCHG // s_addr elect_at members query_id ds elect_close validator_pubkey total_stake min_stake adnl_addr _117
|
|
256 STU // s_addr elect_at members query_id ds elect_close validator_pubkey total_stake min_stake _119
|
|
s0 s3 s7 XCHG3
|
|
8 PUSHPOW2 // s_addr elect_at total_stake query_id ds elect_close min_stake _119 validator_pubkey members _120=256
|
|
DICTUSETB // s_addr elect_at total_stake query_id ds elect_close min_stake members
|
|
FALSE // s_addr elect_at total_stake query_id ds elect_close min_stake members _122
|
|
s5 s7 XCHG
|
|
s3 s4 XCHG
|
|
s2 s3 XCHG
|
|
s2 s6 XCHG
|
|
FALSE // s_addr query_id ds elect_at elect_close min_stake total_stake members _122 _123
|
|
pack_elect CALLDICT // s_addr query_id ds elect
|
|
NEWC // s_addr query_id ds elect _125
|
|
STDICT // s_addr query_id ds _126
|
|
SWAP // s_addr query_id _126 ds
|
|
STSLICER // s_addr query_id _127
|
|
ENDC // s_addr query_id _128
|
|
c4 POP
|
|
DUP // s_addr query_id query_id
|
|
IFJMP:<{ // s_addr query_id
|
|
0 PUSHINT // s_addr query_id _130=0
|
|
send_confirmation CALLDICT
|
|
}> // s_addr query_id
|
|
2DROP //
|
|
}>
|
|
unfreeze_without_bonuses PROC:<{
|
|
// credits freeze_dict tot_stakes
|
|
0 PUSHINT // credits freeze_dict tot_stakes _5=0
|
|
DUP // credits freeze_dict tot_stakes total=0 recovered=0
|
|
-1 PUSHINT // credits freeze_dict tot_stakes total=0 recovered=0 pubkey=-1
|
|
UNTIL:<{
|
|
s4 PUSH
|
|
8 PUSHPOW2 // credits freeze_dict tot_stakes total recovered pubkey freeze_dict _10=256
|
|
DICTUGETNEXT
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // credits freeze_dict tot_stakes total recovered cs pubkey f
|
|
DUP // credits freeze_dict tot_stakes total recovered cs pubkey f f
|
|
IF:<{ // credits freeze_dict tot_stakes total recovered cs pubkey f
|
|
s0 s2 XCHG // credits freeze_dict tot_stakes total recovered f pubkey cs
|
|
256 LDU // credits freeze_dict tot_stakes total recovered f pubkey _16 cs
|
|
64 LDU // credits freeze_dict tot_stakes total recovered f pubkey _16 _42 _41
|
|
NIP // credits freeze_dict tot_stakes total recovered f pubkey _16 cs
|
|
LDGRAMS // credits freeze_dict tot_stakes total recovered f pubkey _16 _22 cs
|
|
1 LDI // credits freeze_dict tot_stakes total recovered f pubkey addr stake banned cs
|
|
ENDS
|
|
IF:<{ // credits freeze_dict tot_stakes total recovered f pubkey addr stake
|
|
NIP // credits freeze_dict tot_stakes total recovered f pubkey stake
|
|
s3 s3 XCPU // credits freeze_dict tot_stakes total stake f pubkey recovered stake
|
|
ADD // credits freeze_dict tot_stakes total stake f pubkey recovered
|
|
}>ELSE<{ // credits freeze_dict tot_stakes total recovered f pubkey addr stake
|
|
s8 s8 s8 XC2PU // stake freeze_dict tot_stakes total recovered f pubkey credits addr stake
|
|
~credit_to CALLDICT // stake freeze_dict tot_stakes total recovered f pubkey credits
|
|
s0 s7 XCHG
|
|
s0 s3 XCHG // credits freeze_dict tot_stakes total stake f pubkey recovered
|
|
}>
|
|
s4 s3 XCHG2 // credits freeze_dict tot_stakes pubkey recovered f total stake
|
|
ADD // credits freeze_dict tot_stakes pubkey recovered f total
|
|
}>ELSE<{
|
|
s4 s2 XCHG2
|
|
DROP // credits freeze_dict tot_stakes pubkey recovered f total
|
|
}>
|
|
SWAP // credits freeze_dict tot_stakes pubkey recovered total f
|
|
NOT // credits freeze_dict tot_stakes pubkey recovered total _32
|
|
s1 s3 XCHG // credits freeze_dict tot_stakes total recovered pubkey _32
|
|
}> // credits freeze_dict tot_stakes total recovered pubkey
|
|
DROP
|
|
s3 POP // credits recovered tot_stakes total
|
|
SWAP // credits recovered total tot_stakes
|
|
EQUAL // credits recovered _34
|
|
59 THROWIFNOT
|
|
}>
|
|
unfreeze_with_bonuses PROC:<{
|
|
// credits freeze_dict tot_stakes tot_bonuses
|
|
0 PUSHINT // credits freeze_dict tot_stakes tot_bonuses _7=0
|
|
s0 s0 PUSH2 // credits freeze_dict tot_stakes tot_bonuses total=0 returned_bonuses=0 recovered=0
|
|
-1 PUSHINT // credits freeze_dict tot_stakes tot_bonuses total=0 returned_bonuses=0 recovered=0 pubkey=-1
|
|
UNTIL:<{
|
|
s6 PUSH
|
|
8 PUSHPOW2 // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered pubkey freeze_dict _12=256
|
|
DICTUGETNEXT
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered cs pubkey f
|
|
DUP // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered cs pubkey f f
|
|
IF:<{ // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered cs pubkey f
|
|
s0 s2 XCHG // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey cs
|
|
256 LDU // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey _18 cs
|
|
64 LDU // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey _18 _52 _51
|
|
NIP // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey _18 cs
|
|
LDGRAMS // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey _18 _24 cs
|
|
1 LDI // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake banned cs
|
|
ENDS
|
|
IF:<{ // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake
|
|
NIP // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey stake
|
|
s3 s3 XCPU // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses stake f pubkey recovered stake
|
|
ADD // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses stake f pubkey recovered
|
|
}>ELSE<{ // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake
|
|
s7 s0 s8 PUSH3 // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake tot_bonuses stake tot_stakes
|
|
MULDIV // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake bonus
|
|
s6 s6 XCPU // credits freeze_dict tot_stakes tot_bonuses total bonus recovered f pubkey addr stake returned_bonuses bonus
|
|
ADD // credits freeze_dict tot_stakes tot_bonuses total bonus recovered f pubkey addr stake returned_bonuses
|
|
s1 s6 PUXC // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake stake bonus
|
|
ADD // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey addr stake _35
|
|
s11 s11 s0 XCHG3 // stake freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey credits addr _35
|
|
~credit_to CALLDICT // stake freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey credits
|
|
s0 s9 XCHG
|
|
s0 s3 XCHG // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses stake f pubkey recovered
|
|
}>
|
|
s5 s3 XCHG2 // credits freeze_dict tot_stakes tot_bonuses pubkey returned_bonuses recovered f total stake
|
|
ADD // credits freeze_dict tot_stakes tot_bonuses pubkey returned_bonuses recovered f total
|
|
}>ELSE<{
|
|
s5 s2 XCHG2
|
|
DROP // credits freeze_dict tot_stakes tot_bonuses pubkey returned_bonuses recovered f total
|
|
}>
|
|
SWAP // credits freeze_dict tot_stakes tot_bonuses pubkey returned_bonuses recovered total f
|
|
NOT // credits freeze_dict tot_stakes tot_bonuses pubkey returned_bonuses recovered total _38
|
|
s1 s4 XCHG // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered pubkey _38
|
|
}> // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered pubkey
|
|
DROP
|
|
s5 POP // credits recovered tot_stakes tot_bonuses total returned_bonuses
|
|
s0 s3 XCHG // credits recovered returned_bonuses tot_bonuses total tot_stakes
|
|
EQUAL // credits recovered returned_bonuses tot_bonuses _40
|
|
s2 s1 PUSH2 // credits recovered returned_bonuses tot_bonuses _40 returned_bonuses tot_bonuses
|
|
LEQ // credits recovered returned_bonuses tot_bonuses _40 _41
|
|
AND // credits recovered returned_bonuses tot_bonuses _42
|
|
59 THROWIFNOT
|
|
s1 s2 XCHG // credits returned_bonuses recovered tot_bonuses
|
|
ADD // credits returned_bonuses _44
|
|
SWAP // credits _44 returned_bonuses
|
|
SUB // credits _45
|
|
}>
|
|
unfreeze_all PROC:<{
|
|
// credits past_elections elect_id
|
|
SWAP
|
|
32 PUSHINT // credits elect_id past_elections _6=32
|
|
DICTUDELGET
|
|
NULLSWAPIFNOT // credits past_elections fs f
|
|
IFNOTJMP:<{ // credits past_elections fs
|
|
DROP // credits past_elections
|
|
0 PUSHINT // credits past_elections _8=0
|
|
}> // credits past_elections fs
|
|
64 LDU // credits past_elections _44 _43
|
|
NIP // credits past_elections fs
|
|
256 LDU // credits past_elections _46 _45
|
|
NIP // credits past_elections fs
|
|
LDDICT // credits past_elections _21 fs
|
|
LDGRAMS // credits past_elections _21 _23 fs
|
|
LDGRAMS // credits past_elections _21 _23 _25 fs
|
|
LDDICT // credits past_elections _21 _23 _25 _54 _53
|
|
NIP // credits past_elections fdict tot_stakes bonuses fs
|
|
ENDS
|
|
DUP // credits past_elections fdict tot_stakes bonuses bonuses
|
|
0 GTINT // credits past_elections fdict tot_stakes bonuses _32
|
|
IF:<{ // credits past_elections fdict tot_stakes bonuses
|
|
s3 s4 XCHG // past_elections credits fdict tot_stakes bonuses
|
|
unfreeze_with_bonuses CALLDICT // past_elections credits _33
|
|
}>ELSE<{ // credits past_elections fdict tot_stakes bonuses
|
|
DROP // credits past_elections fdict tot_stakes
|
|
s2 s3 XCHG // past_elections credits fdict tot_stakes
|
|
unfreeze_without_bonuses CALLDICT // past_elections credits _33
|
|
}> // past_elections credits unused_prizes
|
|
s1 s2 XCHG // credits past_elections unused_prizes
|
|
}>
|
|
config_set_confirmed PROC:<{
|
|
// s_addr cs query_id ok
|
|
s2 POP // s_addr ok query_id
|
|
s0 s2 XCHG // query_id ok s_addr
|
|
REWRITESTDADDR // query_id ok src_wc src_addr
|
|
0 PUSHINT // query_id ok src_wc src_addr _8=0
|
|
CONFIGOPTPARAM // query_id ok src_wc src_addr _9
|
|
CTOS // query_id ok src_wc src_addr _10
|
|
256 PLDU // query_id ok src_wc src_addr config_addr
|
|
c4 PUSH // query_id ok src_wc src_addr config_addr _14
|
|
CTOS // query_id ok src_wc src_addr config_addr ds
|
|
LDDICT // query_id ok src_wc src_addr config_addr elect ds
|
|
s0 s4 XCHG // query_id ok ds src_addr config_addr elect src_wc
|
|
INC // query_id ok ds src_addr config_addr elect _20
|
|
2SWAP // query_id ok ds elect _20 src_addr config_addr
|
|
NEQ // query_id ok ds elect _20 _21
|
|
OR // query_id ok ds elect _22
|
|
OVER // query_id ok ds elect _22 elect
|
|
ISNULL // query_id ok ds elect _22 _23
|
|
OR // query_id ok ds elect _24
|
|
IFJMP:<{ // query_id ok ds elect
|
|
4 BLKDROP //
|
|
}> // query_id ok ds elect
|
|
unpack_elect CALLDICT // query_id ok ds _63 _64 _65 _66 _67 _68 _69
|
|
s0 s5 XCHG
|
|
5 BLKDROP // query_id ok ds elect_at finished
|
|
s1 s4 PUXC // finished ok ds elect_at elect_at query_id
|
|
NEQ // finished ok ds elect_at _33
|
|
s0 s4 XCHG // _33 ok ds elect_at finished
|
|
NOT // _33 ok ds elect_at _34
|
|
s1 s4 XCHG // elect_at ok ds _33 _34
|
|
OR // elect_at ok ds _35
|
|
IFJMP:<{ // elect_at ok ds
|
|
3 BLKDROP //
|
|
}> // elect_at ok ds
|
|
ACCEPT
|
|
SWAP // elect_at ds ok
|
|
IFNOT:<{ // elect_at ds
|
|
LDDICT // elect_at _40 ds
|
|
LDDICT // elect_at _40 _42 ds
|
|
LDGRAMS // elect_at credits past_elections grams ds
|
|
s3 s3 s4 XCHG3 // ds grams credits past_elections elect_at
|
|
unfreeze_all CALLDICT // ds grams credits past_elections unused_prizes
|
|
FALSE // ds grams credits past_elections unused_prizes _48
|
|
NEWC // ds grams credits past_elections unused_prizes _48 _49
|
|
1 STI // ds grams credits past_elections unused_prizes _51
|
|
s1 s3 XCHG // ds grams unused_prizes past_elections credits _51
|
|
STDICT // ds grams unused_prizes past_elections _52
|
|
STDICT // ds grams unused_prizes _53
|
|
-ROT // ds _53 grams unused_prizes
|
|
ADD // ds _53 _54
|
|
STGRAMS // ds _55
|
|
SWAP // _55 ds
|
|
STSLICER // _56
|
|
ENDC // _57
|
|
c4 POP
|
|
}>ELSE<{
|
|
2DROP //
|
|
}>
|
|
}>
|
|
process_simple_transfer PROC:<{
|
|
// s_addr msg_value
|
|
load_data CALLDICT // s_addr msg_value elect credits past_elect grams active_id active_hash
|
|
s0 s7 XCHG // active_hash msg_value elect credits past_elect grams active_id s_addr
|
|
REWRITESTDADDR // active_hash msg_value elect credits past_elect grams active_id src_wc src_addr
|
|
SWAP // active_hash msg_value elect credits past_elect grams active_id src_addr src_wc
|
|
INC // active_hash msg_value elect credits past_elect grams active_id src_addr _13
|
|
OR // active_hash msg_value elect credits past_elect grams active_id _14
|
|
OVER // active_hash msg_value elect credits past_elect grams active_id _14 active_id
|
|
0 EQINT // active_hash msg_value elect credits past_elect grams active_id _14 _16
|
|
OR // active_hash msg_value elect credits past_elect grams active_id _17
|
|
IFJMP:<{ // active_hash msg_value elect credits past_elect grams active_id
|
|
s0 s5 XCHG // active_hash active_id elect credits past_elect grams msg_value
|
|
ADD // active_hash active_id elect credits past_elect grams
|
|
2 4 BLKSWAP
|
|
SWAP // elect credits past_elect grams active_id active_hash
|
|
store_data CALLDICT
|
|
}> // active_hash msg_value elect credits past_elect grams active_id
|
|
s0 s2 PUSH2
|
|
32 PUSHINT // active_hash msg_value elect credits past_elect grams active_id active_id past_elect _22=32
|
|
DICTUGET
|
|
NULLSWAPIFNOT // active_hash msg_value elect credits past_elect grams active_id fs f
|
|
IF:<{ // active_hash msg_value elect credits past_elect grams active_id fs
|
|
64 LDU // active_hash msg_value elect credits past_elect grams active_id _30 fs
|
|
256 LDU // active_hash msg_value elect credits past_elect grams active_id _30 _33 fs
|
|
LDDICT // active_hash msg_value elect credits past_elect grams active_id _30 _33 _36 fs
|
|
LDGRAMS // active_hash msg_value elect credits past_elect grams active_id _30 _33 _36 _38 fs
|
|
LDGRAMS // active_hash msg_value elect credits past_elect grams active_id data hash dict total_stake bonuses fs
|
|
s0 s11 XCHG // active_hash fs elect credits past_elect grams active_id data hash dict total_stake bonuses msg_value
|
|
ADD // active_hash fs elect credits past_elect grams active_id data hash dict total_stake bonuses
|
|
NEWC // active_hash fs elect credits past_elect grams active_id data hash dict total_stake bonuses _44
|
|
s1 s5 XCHG // active_hash fs elect credits past_elect grams active_id bonuses hash dict total_stake data _44
|
|
64 STU // active_hash fs elect credits past_elect grams active_id bonuses hash dict total_stake _46
|
|
s1 s3 XCHG // active_hash fs elect credits past_elect grams active_id bonuses total_stake dict hash _46
|
|
256 STU // active_hash fs elect credits past_elect grams active_id bonuses total_stake dict _48
|
|
STDICT // active_hash fs elect credits past_elect grams active_id bonuses total_stake _49
|
|
SWAP // active_hash fs elect credits past_elect grams active_id bonuses _49 total_stake
|
|
STGRAMS // active_hash fs elect credits past_elect grams active_id bonuses _50
|
|
SWAP // active_hash fs elect credits past_elect grams active_id _50 bonuses
|
|
STGRAMS // active_hash fs elect credits past_elect grams active_id _51
|
|
s0 s6 XCHG2 // active_hash active_id elect credits past_elect grams _51 fs
|
|
STSLICER // active_hash active_id elect credits past_elect grams _52
|
|
SWAP
|
|
32 PUSHINT
|
|
s6 s3 s3 PUXC2 // active_hash active_id elect credits grams _52 active_id past_elect _53=32
|
|
DICTUSETB // active_hash active_id elect credits grams past_elect
|
|
}>ELSE<{ // active_hash msg_value elect credits past_elect grams active_id fs
|
|
DROP // active_hash msg_value elect credits past_elect grams active_id
|
|
s0 s5 XCHG // active_hash active_id elect credits past_elect grams msg_value
|
|
ADD // active_hash active_id elect credits past_elect grams
|
|
SWAP // active_hash active_id elect credits grams past_elect
|
|
}>
|
|
s3 s5 XCHG
|
|
s1 s4 s3 XCHG3 // elect credits past_elect grams active_id active_hash
|
|
store_data CALLDICT
|
|
}>
|
|
recover_stake PROC:<{
|
|
// op s_addr cs query_id
|
|
NIP // op s_addr query_id
|
|
OVER // op s_addr query_id s_addr
|
|
REWRITESTDADDR // op s_addr query_id src_wc src_addr
|
|
SWAP // op s_addr query_id src_addr src_wc
|
|
INC // op s_addr query_id src_addr _8
|
|
IFJMP:<{ // op s_addr query_id src_addr
|
|
DROP // op s_addr query_id
|
|
4294967294 PUSHINT // op s_addr query_id _9=4294967294
|
|
0 PUSHINT // op s_addr query_id _9=4294967294 _10=0
|
|
s3 s4 XCHG
|
|
s1 s3 XCHG
|
|
64 PUSHINT // s_addr _9=4294967294 query_id op _10=0 _11=64
|
|
send_message_back CALLDICT
|
|
}> // op s_addr query_id src_addr
|
|
c4 PUSH // op s_addr query_id src_addr _14
|
|
CTOS // op s_addr query_id src_addr ds
|
|
LDDICT // op s_addr query_id src_addr _18 ds
|
|
LDDICT // op s_addr query_id src_addr elect credits ds
|
|
s3 s3 XCHG2
|
|
8 PUSHPOW2 // op s_addr query_id ds elect src_addr credits _25=256
|
|
DICTUDELGET
|
|
NULLSWAPIFNOT // op s_addr query_id ds elect credits cs f
|
|
IFNOTJMP:<{ // op s_addr query_id ds elect credits cs
|
|
4 BLKDROP // op s_addr query_id
|
|
4294967294 PUSHINT // op s_addr query_id _27=4294967294
|
|
0 PUSHINT // op s_addr query_id _27=4294967294 _28=0
|
|
s3 s4 XCHG
|
|
s1 s3 XCHG
|
|
64 PUSHINT // s_addr _27=4294967294 query_id op _28=0 _29=64
|
|
send_message_back CALLDICT
|
|
}> // op s_addr query_id ds elect credits cs
|
|
s6 POP // cs s_addr query_id ds elect credits
|
|
s0 s5 XCHG // credits s_addr query_id ds elect cs
|
|
LDGRAMS // credits s_addr query_id ds elect amount cs
|
|
ENDS
|
|
NEWC // credits s_addr query_id ds elect amount _35
|
|
s1 s2 XCHG // credits s_addr query_id ds amount elect _35
|
|
STDICT // credits s_addr query_id ds amount _36
|
|
s1 s5 XCHG // amount s_addr query_id ds credits _36
|
|
STDICT // amount s_addr query_id ds _37
|
|
SWAP // amount s_addr query_id _37 ds
|
|
STSLICER // amount s_addr query_id _38
|
|
ENDC // amount s_addr query_id _39
|
|
c4 POP
|
|
4184830756 PUSHINT // amount s_addr query_id _41=4184830756
|
|
0 PUSHINT // amount s_addr query_id _41=4184830756 _42=0
|
|
24 PUSHINT // amount s_addr query_id _41=4184830756 _42=0 _43=24
|
|
NEWC // amount s_addr query_id _41=4184830756 _42=0 _43=24 _44
|
|
6 STU // amount s_addr query_id _41=4184830756 _42=0 _46
|
|
s0 s4 XCHG2 // amount _42=0 query_id _41=4184830756 _46 s_addr
|
|
STSLICER // amount _42=0 query_id _41=4184830756 _47
|
|
s0 s4 XCHG2 // _41=4184830756 _42=0 query_id _47 amount
|
|
STGRAMS // _41=4184830756 _42=0 query_id _48
|
|
s1 s2 XCHG // _41=4184830756 query_id _42=0 _48
|
|
107 STU // _41=4184830756 query_id _62
|
|
s1 s2 XCHG // query_id _41=4184830756 _62
|
|
32 STU // query_id _64
|
|
64 STU // _66
|
|
ENDC // _67
|
|
64 PUSHINT // _67 _68=64
|
|
SENDRAWMSG
|
|
}>
|
|
after_code_upgrade PROC:<{
|
|
// s_addr cs query_id
|
|
NIP // s_addr query_id
|
|
1313042276 PUSHINT // s_addr query_id op=1313042276
|
|
3460525924 PUSHINT // s_addr query_id op=1313042276 _5=3460525924
|
|
0 PUSHINT // s_addr query_id op=1313042276 _5=3460525924 _6=0
|
|
s3 s3 s0 XCHG3
|
|
64 PUSHINT // s_addr _5=3460525924 query_id op=1313042276 _6=0 _7=64
|
|
send_message_back CALLDICT
|
|
}>
|
|
upgrade_code PROC:<{
|
|
// s_addr cs query_id
|
|
0 PUSHINT // s_addr cs query_id _4=0
|
|
CONFIGOPTPARAM // s_addr cs query_id c_addr
|
|
DUP // s_addr cs query_id c_addr c_addr
|
|
ISNULL // s_addr cs query_id c_addr _6
|
|
IFJMP:<{ // s_addr cs query_id c_addr
|
|
4 BLKDROP //
|
|
FALSE // _7
|
|
}> // s_addr cs query_id c_addr
|
|
CTOS // s_addr cs query_id _9
|
|
256 PLDU // s_addr cs query_id config_addr
|
|
s3 PUSH // s_addr cs query_id config_addr s_addr
|
|
REWRITESTDADDR // s_addr cs query_id config_addr src_wc src_addr
|
|
SWAP // s_addr cs query_id config_addr src_addr src_wc
|
|
INC // s_addr cs query_id config_addr src_addr _16
|
|
s0 s2 XCHG // s_addr cs query_id _16 src_addr config_addr
|
|
NEQ // s_addr cs query_id _16 _17
|
|
OR // s_addr cs query_id _18
|
|
IFJMP:<{ // s_addr cs query_id
|
|
3 BLKDROP //
|
|
FALSE // _19
|
|
}> // s_addr cs query_id
|
|
ACCEPT
|
|
SWAP // s_addr query_id cs
|
|
LDREF // s_addr query_id code cs
|
|
OVER // s_addr query_id code cs code
|
|
SETCODE
|
|
DUP // s_addr query_id code cs cs
|
|
SEMPTY // s_addr query_id code cs _25
|
|
IFNOT:<{ // s_addr query_id code cs
|
|
SWAP // s_addr query_id cs code
|
|
c3 POP
|
|
SWAP // s_addr cs query_id
|
|
after_code_upgrade CALLDICT
|
|
0 THROW
|
|
}>ELSE<{
|
|
4 BLKDROP //
|
|
}>
|
|
TRUE // _30
|
|
}>
|
|
recv_internal PROC:<{
|
|
// msg_value in_msg_cell in_msg
|
|
SWAP // msg_value in_msg in_msg_cell
|
|
CTOS // msg_value in_msg cs
|
|
4 LDU // msg_value in_msg flags cs
|
|
SWAP
|
|
1 PUSHINT // msg_value in_msg cs flags _9=1
|
|
AND // msg_value in_msg cs _10
|
|
IFJMP:<{ // msg_value in_msg cs
|
|
3 BLKDROP //
|
|
}> // msg_value in_msg cs
|
|
LDMSGADDR // msg_value in_msg _61 _60
|
|
DROP // msg_value in_msg s_addr
|
|
OVER // msg_value in_msg s_addr in_msg
|
|
SEMPTY // msg_value in_msg s_addr _14
|
|
IFJMP:<{ // msg_value in_msg s_addr
|
|
NIP // msg_value s_addr
|
|
SWAP // s_addr msg_value
|
|
process_simple_transfer CALLDICT
|
|
}> // msg_value in_msg s_addr
|
|
SWAP // msg_value s_addr in_msg
|
|
32 LDU // msg_value s_addr op in_msg
|
|
OVER // msg_value s_addr op in_msg op
|
|
0 EQINT // msg_value s_addr op in_msg _21
|
|
IFJMP:<{ // msg_value s_addr op in_msg
|
|
2DROP // msg_value s_addr
|
|
SWAP // s_addr msg_value
|
|
process_simple_transfer CALLDICT
|
|
}> // msg_value s_addr op in_msg
|
|
64 LDU // msg_value s_addr op query_id in_msg
|
|
s2 PUSH
|
|
1316189259 PUSHINT // msg_value s_addr op query_id in_msg op _27=1316189259
|
|
EQUAL // msg_value s_addr op query_id in_msg _28
|
|
IFJMP:<{ // msg_value s_addr op query_id in_msg
|
|
s2 POP // msg_value s_addr in_msg query_id
|
|
s2 s3 XCHG // s_addr msg_value in_msg query_id
|
|
process_new_stake CALLDICT
|
|
}> // msg_value s_addr op query_id in_msg
|
|
s4 POP // in_msg s_addr op query_id
|
|
OVER
|
|
1197831204 PUSHINT // in_msg s_addr op query_id op _30=1197831204
|
|
EQUAL // in_msg s_addr op query_id _31
|
|
IFJMP:<{ // in_msg s_addr op query_id
|
|
s1 s3 XCHG // op s_addr in_msg query_id
|
|
recover_stake CALLDICT
|
|
}> // in_msg s_addr op query_id
|
|
OVER
|
|
1313042276 PUSHINT // in_msg s_addr op query_id op _33=1313042276
|
|
EQUAL // in_msg s_addr op query_id _34
|
|
IFJMP:<{ // in_msg s_addr op query_id
|
|
s2 s3 s3 PUXCPU // query_id s_addr op s_addr in_msg query_id
|
|
upgrade_code CALLDICT // query_id s_addr op ok
|
|
IF:<{ // query_id s_addr op
|
|
3460525924 PUSHINT // query_id s_addr op _37=3460525924
|
|
}>ELSE<{ // query_id s_addr op
|
|
32 PUSHPOW2DEC // query_id s_addr op _37=4294967295
|
|
}>
|
|
0 PUSHINT // query_id s_addr op _37 _40=0
|
|
s3 s4 XCHG
|
|
s3 s3 s0 XCHG3
|
|
64 PUSHINT // s_addr _37 query_id op _40=0 _41=64
|
|
send_message_back CALLDICT
|
|
}> // in_msg s_addr op query_id
|
|
OVER
|
|
4000730955 PUSHINT // in_msg s_addr op query_id op _44=4000730955
|
|
EQUAL // in_msg s_addr op query_id cfg_ok
|
|
s2 PUSH
|
|
4000730991 PUSHINT // in_msg s_addr op query_id cfg_ok op _46=4000730991
|
|
EQUAL // in_msg s_addr op query_id cfg_ok _47
|
|
s1 s(-1) PUXC // in_msg s_addr op query_id cfg_ok cfg_ok _47
|
|
OR // in_msg s_addr op query_id cfg_ok _48
|
|
IFJMP:<{ // in_msg s_addr op query_id cfg_ok
|
|
s2 POP // in_msg s_addr cfg_ok query_id
|
|
s2 s3 XCHG
|
|
SWAP // s_addr in_msg query_id cfg_ok
|
|
config_set_confirmed CALLDICT
|
|
}> // in_msg s_addr op query_id cfg_ok
|
|
DROP
|
|
s3 POP // query_id s_addr op
|
|
DUP
|
|
31 PUSHPOW2 // query_id s_addr op op _52
|
|
AND // query_id s_addr op _53
|
|
IFNOTJMP:<{ // query_id s_addr op
|
|
32 PUSHPOW2DEC // query_id s_addr op _54=4294967295
|
|
0 PUSHINT // query_id s_addr op _54=4294967295 _55=0
|
|
s3 s4 XCHG
|
|
s3 s3 s0 XCHG3
|
|
64 PUSHINT // s_addr _54=4294967295 query_id op _55=0 _56=64
|
|
send_message_back CALLDICT
|
|
}> // query_id s_addr op
|
|
3 BLKDROP //
|
|
}>
|
|
postpone_elections PROC:<{
|
|
//
|
|
FALSE // _0
|
|
}>
|
|
compute_total_stake PROC:<{
|
|
// l n m_stake
|
|
0 PUSHINT // l n m_stake tot_stake=0
|
|
s0 s2 XCHG // l tot_stake=0 m_stake n
|
|
REPEAT:<{ // l tot_stake m_stake
|
|
s0 s2 XCHG // m_stake tot_stake l
|
|
UNCONS // m_stake tot_stake h l
|
|
OVER // m_stake tot_stake h l h
|
|
0 INDEX // m_stake tot_stake h l stake
|
|
s0 s2 XCHG // m_stake tot_stake stake l h
|
|
1 INDEX // m_stake tot_stake stake l max_f
|
|
s4 PUSH // m_stake tot_stake stake l max_f m_stake
|
|
MUL // m_stake tot_stake stake l _13
|
|
16 RSHIFT# // m_stake tot_stake stake l _15
|
|
s1 s2 XCHG // m_stake tot_stake l stake _15
|
|
MIN // m_stake tot_stake l stake
|
|
s1 s2 XCHG // m_stake l tot_stake stake
|
|
ADD // m_stake l tot_stake
|
|
ROT // l tot_stake m_stake
|
|
}>
|
|
DROP
|
|
NIP // tot_stake
|
|
}>
|
|
try_elect PROC:<{
|
|
// credits members min_stake max_stake min_total_stake max_stake_factor
|
|
16 PUSHINT // credits members min_stake max_stake min_total_stake max_stake_factor _7=16
|
|
CONFIGOPTPARAM // credits members min_stake max_stake min_total_stake max_stake_factor _8
|
|
CTOS // credits members min_stake max_stake min_total_stake max_stake_factor cs
|
|
16 LDU // credits members min_stake max_stake min_total_stake max_stake_factor _13 cs
|
|
16 LDU // credits members min_stake max_stake min_total_stake max_stake_factor _13 _253 _252
|
|
NIP // credits members min_stake max_stake min_total_stake max_stake_factor _13 cs
|
|
16 LDU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators cs
|
|
ENDS
|
|
1 PUSHINT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators _23=1
|
|
MAX // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators
|
|
0 PUSHINT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n=0
|
|
NEWDICT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n=0 sdict
|
|
-1 PUSHINT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n=0 sdict pubkey=-1
|
|
UNTIL:<{
|
|
s9 PUSH
|
|
8 PUSHPOW2 // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict pubkey members _33=256
|
|
DICTUGETNEXT
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict cs pubkey f
|
|
DUP // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict cs pubkey f f
|
|
IF:<{ // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict cs pubkey f
|
|
s0 s2 XCHG // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey cs
|
|
LDGRAMS // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey _40 cs
|
|
32 LDU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey _40 _42 cs
|
|
32 LDU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey _40 _42 _45 cs
|
|
256 LDU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey _40 _42 _45 _48 cs
|
|
256 LDU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey stake time max_factor addr adnl_addr cs
|
|
ENDS
|
|
s0 s3 XCHG // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey stake adnl_addr max_factor addr time
|
|
NEGATE // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey stake adnl_addr max_factor addr _56
|
|
NEWC // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey stake adnl_addr max_factor addr _56 _57
|
|
s1 s5 XCHG // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey _56 adnl_addr max_factor addr stake _57
|
|
128 STU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey _56 adnl_addr max_factor addr _59
|
|
s1 s4 XCHG // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr max_factor _56 _59
|
|
32 STI // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr max_factor _61
|
|
s4 s(-1) PUXC // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr max_factor pubkey _61
|
|
256 STU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr max_factor _63
|
|
ENDC // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr max_factor _64
|
|
CTOS // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr max_factor key
|
|
s1 s10 XCPU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr key max_factor max_stake_factor
|
|
MIN // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr key _67
|
|
NEWC // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr key _67 _68
|
|
32 STU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey addr adnl_addr key _70
|
|
s1 s3 XCHG // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey key adnl_addr addr _70
|
|
256 STU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey key adnl_addr _72
|
|
256 STU // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey key _74
|
|
s0 s1 s4 XCHG3
|
|
416 PUSHINT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n pubkey f _74 key sdict _79
|
|
DICTSETB // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n pubkey f sdict
|
|
s0 s3 XCHG // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators sdict pubkey f n
|
|
INC // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators sdict pubkey f n
|
|
}>ELSE<{
|
|
s3 s4 XCHG
|
|
2SWAP
|
|
DROP // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators sdict pubkey f n
|
|
}>
|
|
SWAP // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators sdict pubkey n f
|
|
NOT // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators sdict pubkey n _83
|
|
s3 s3 s0 XCHG3 // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict pubkey _83
|
|
}> // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict pubkey
|
|
DROP
|
|
s4 POP // credits members min_stake max_stake min_total_stake sdict max_validators min_validators n
|
|
ROT // credits members min_stake max_stake min_total_stake sdict min_validators n max_validators
|
|
MIN // credits members min_stake max_stake min_total_stake sdict min_validators n
|
|
s0 s1 PUSH2 // credits members min_stake max_stake min_total_stake sdict min_validators n n min_validators
|
|
LESS // credits members min_stake max_stake min_total_stake sdict min_validators n _85
|
|
IFJMP:<{ // credits members min_stake max_stake min_total_stake sdict min_validators n
|
|
7 BLKDROP // credits
|
|
NEWDICT // credits _86
|
|
NEWDICT // credits _86 _87
|
|
0 PUSHINT // credits _86 _87 _88=0
|
|
DUP // credits _86 _87 _88=0 _89=0
|
|
}> // credits members min_stake max_stake min_total_stake sdict min_validators n
|
|
PUSHNULL // credits members min_stake max_stake min_total_stake sdict min_validators n l
|
|
UNTIL:<{
|
|
s0 s3 XCHG
|
|
416 PUSHINT // credits members min_stake max_stake min_total_stake l min_validators n sdict _100
|
|
DICTREMMIN
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // credits members min_stake max_stake min_total_stake l min_validators n sdict cs key f
|
|
DUP // credits members min_stake max_stake min_total_stake l min_validators n sdict cs key f f
|
|
IF:<{ // credits members min_stake max_stake min_total_stake l min_validators n sdict cs key f
|
|
SWAP // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f key
|
|
128 LDU // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _105 key
|
|
s1 s9 XCPU // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f key _105 max_stake
|
|
MIN // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f key _108
|
|
SWAP // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _108 key
|
|
32 LDU // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _108 _279 _278
|
|
NIP // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _108 key
|
|
256 PLDU // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f stake pubkey
|
|
s0 s3 XCHG // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake cs
|
|
32 LDU // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake _117 cs
|
|
256 LDU // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake _117 _283 _282
|
|
NIP // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake _117 cs
|
|
256 PLDU // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake max_f adnl_addr
|
|
s1 s3 s0 XCHG3
|
|
s1 s4 XCHG // credits members min_stake max_stake min_total_stake l min_validators n sdict f stake max_f pubkey adnl_addr
|
|
4 TUPLE // credits members min_stake max_stake min_total_stake l min_validators n sdict f _125
|
|
s0 s5 XCHG2 // credits members min_stake max_stake min_total_stake f min_validators n sdict _125 l
|
|
CONS // credits members min_stake max_stake min_total_stake f min_validators n sdict l
|
|
}>ELSE<{
|
|
s6 s1 s6 XCHG3
|
|
2DROP // credits members min_stake max_stake min_total_stake f min_validators n sdict l
|
|
}>
|
|
s0 s4 XCHG // credits members min_stake max_stake min_total_stake l min_validators n sdict f
|
|
NOT // credits members min_stake max_stake min_total_stake l min_validators n sdict _127
|
|
s1 s4 XCHG // credits members min_stake max_stake min_total_stake sdict min_validators n l _127
|
|
}> // credits members min_stake max_stake min_total_stake sdict min_validators n l
|
|
s3 POP
|
|
s4 POP // credits members min_stake n min_total_stake l min_validators
|
|
DEC // credits members min_stake n min_total_stake l i
|
|
2DUP // credits members min_stake n min_total_stake l i l1 i
|
|
REPEAT:<{ // credits members min_stake n min_total_stake l i l1
|
|
CDR // credits members min_stake n min_total_stake l i l1
|
|
}>
|
|
0 PUSHINT // credits members min_stake n min_total_stake l i l1 _135=0
|
|
DUP // credits members min_stake n min_total_stake l i l1 best_stake=0 m=0
|
|
UNTIL:<{
|
|
s0 s2 XCHG // credits members min_stake n min_total_stake l i m best_stake l1
|
|
UNCONS // credits members min_stake n min_total_stake l i m best_stake _138 l1
|
|
SWAP // credits members min_stake n min_total_stake l i m best_stake l1 _138
|
|
0 INDEX // credits members min_stake n min_total_stake l i m best_stake l1 stake
|
|
s0 s4 XCHG // credits members min_stake n min_total_stake l stake m best_stake l1 i
|
|
INC // credits members min_stake n min_total_stake l stake m best_stake l1 i
|
|
s4 s8 PUSH2 // credits members min_stake n min_total_stake l stake m best_stake l1 i stake min_stake
|
|
GEQ // credits members min_stake n min_total_stake l stake m best_stake l1 i _144
|
|
IF:<{ // credits members min_stake n min_total_stake l stake m best_stake l1 i
|
|
s5 s(-1) s4 PU2XC // credits members min_stake n min_total_stake l i m best_stake l1 l i stake
|
|
compute_total_stake CALLDICT // credits members min_stake n min_total_stake l i m best_stake l1 tot_stake
|
|
s0 s2 PUSH2 // credits members min_stake n min_total_stake l i m best_stake l1 tot_stake tot_stake best_stake
|
|
GREATER // credits members min_stake n min_total_stake l i m best_stake l1 tot_stake _147
|
|
IF:<{ // credits members min_stake n min_total_stake l i m best_stake l1 tot_stake
|
|
s2 POP
|
|
s2 POP // credits members min_stake n min_total_stake l i l1 tot_stake
|
|
s2 PUSH // credits members min_stake n min_total_stake l i l1 best_stake m
|
|
}>ELSE<{
|
|
s1 s3 XCHG
|
|
DROP // credits members min_stake n min_total_stake l i l1 best_stake m
|
|
}>
|
|
}>ELSE<{
|
|
s3 s4 XCHG2
|
|
DROP // credits members min_stake n min_total_stake l i l1 best_stake m
|
|
}>
|
|
s3 s6 PUSH2 // credits members min_stake n min_total_stake l i l1 best_stake m i n
|
|
GEQ // credits members min_stake n min_total_stake l i l1 best_stake m _148
|
|
}> // credits members min_stake n min_total_stake l i l1 best_stake m
|
|
s2 POP
|
|
s2 POP
|
|
s4 POP
|
|
s4 POP // credits members best_stake m min_total_stake l
|
|
s2 PUSH // credits members best_stake m min_total_stake l m
|
|
0 EQINT // credits members best_stake m min_total_stake l _150
|
|
s4 s2 PUXC // credits members best_stake m _150 l best_stake min_total_stake
|
|
LESS // credits members best_stake m _150 l _151
|
|
s1 s2 XCHG // credits members best_stake m l _150 _151
|
|
OR // credits members best_stake m l _152
|
|
IFJMP:<{ // credits members best_stake m l
|
|
4 BLKDROP // credits
|
|
NEWDICT // credits _153
|
|
NEWDICT // credits _153 _154
|
|
0 PUSHINT // credits _153 _154 _155=0
|
|
DUP // credits _153 _154 _155=0 _156=0
|
|
}> // credits members best_stake m l
|
|
DUP // credits members best_stake m l l1
|
|
s0 DUMP // credits members best_stake m l l1
|
|
s2 PUSH // credits members best_stake m l l1 m
|
|
DEC // credits members best_stake m l l1 _161
|
|
REPEAT:<{ // credits members best_stake m l l1
|
|
CDR // credits members best_stake m l l1
|
|
}>
|
|
CAR // credits members best_stake m l _164
|
|
0 INDEX // credits members best_stake m l m_stake
|
|
0 PUSHINT // credits members best_stake m l m_stake i=0
|
|
DUP // credits members best_stake m l m_stake i=0 tot_stake=0
|
|
NEWDICT // credits members best_stake m l m_stake i=0 tot_stake=0 vset
|
|
NEWDICT // credits members best_stake m l m_stake i=0 tot_stake=0 vset frozen
|
|
UNTIL:<{
|
|
s0 s5 XCHG // credits members best_stake m frozen m_stake i tot_stake vset l
|
|
UNCONS // credits members best_stake m frozen m_stake i tot_stake vset _179 l
|
|
SWAP // credits members best_stake m frozen m_stake i tot_stake vset l _179
|
|
4 UNTUPLE // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr
|
|
s1 s12 PUSH2
|
|
8 PUSHPOW2 // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr pubkey members _184=256
|
|
DICTUGET
|
|
NULLSWAPIFNOT // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr val f
|
|
61 THROWIFNOT
|
|
LDGRAMS // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr _295 _294
|
|
NIP // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr val
|
|
64 LDU // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr _297 _296
|
|
NIP // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr val
|
|
256 PLDU // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr src_addr
|
|
s8 s11 PUSH2 // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr src_addr i m
|
|
LESS // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr src_addr _198
|
|
IF:<{ // credits members best_stake m frozen m_stake i tot_stake vset l stake max_f pubkey adnl_addr src_addr
|
|
s3 s9 XCPU // credits members best_stake m frozen m_stake i tot_stake vset l stake src_addr pubkey adnl_addr max_f m_stake
|
|
MUL // credits members best_stake m frozen m_stake i tot_stake vset l stake src_addr pubkey adnl_addr _200
|
|
16 RSHIFT# // credits members best_stake m frozen m_stake i tot_stake vset l stake src_addr pubkey adnl_addr _202
|
|
s4 s(-1) PUXC // credits members best_stake m frozen m_stake i tot_stake vset l stake src_addr pubkey adnl_addr stake _202
|
|
MIN // credits members best_stake m frozen m_stake i tot_stake vset l stake src_addr pubkey adnl_addr true_stake
|
|
s4 s4 XCPU // credits members best_stake m frozen m_stake i tot_stake vset l true_stake src_addr pubkey adnl_addr stake true_stake
|
|
SUB // credits members best_stake m frozen m_stake i tot_stake vset l true_stake src_addr pubkey adnl_addr stake
|
|
s4 PUSH // credits members best_stake m frozen m_stake i tot_stake vset l true_stake src_addr pubkey adnl_addr stake true_stake
|
|
60 LSHIFT# // credits members best_stake m frozen m_stake i tot_stake vset l true_stake src_addr pubkey adnl_addr stake _207
|
|
s13 PUSH // credits members best_stake m frozen m_stake i tot_stake vset l true_stake src_addr pubkey adnl_addr stake _207 best_stake
|
|
DIV // credits members best_stake m frozen m_stake i tot_stake vset l true_stake src_addr pubkey adnl_addr stake weight
|
|
s8 s5 XCPU // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake true_stake
|
|
ADD // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake
|
|
2390828938 PUSHINT // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938
|
|
s3 PUSH // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938 adnl_addr
|
|
IF:<{ // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938
|
|
115 PUSHINT // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938 _212=115
|
|
}>ELSE<{ // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938
|
|
83 PUSHINT // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938 _212=83
|
|
}>
|
|
NEWC // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938 _212 _215
|
|
8 STU // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _211=2390828938 _217
|
|
32 STU // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _219
|
|
s4 s(-1) PUXC // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake pubkey _219
|
|
256 STU // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake _221
|
|
s9 s(-1) PUXC // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake weight _221
|
|
64 STU // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake vinfo
|
|
s3 PUSH // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake vinfo adnl_addr
|
|
IF:<{ // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake vinfo
|
|
s1 s3 XCHG // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey tot_stake stake adnl_addr vinfo
|
|
256 STU // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey tot_stake stake vinfo
|
|
}>ELSE<{
|
|
s0 s3 XCHG2
|
|
DROP // credits members best_stake m frozen m_stake i weight vset l true_stake src_addr pubkey tot_stake stake vinfo
|
|
}>
|
|
SWAP
|
|
16 PUSHINT
|
|
s10 s8 s8 PUXC2 // credits members best_stake m frozen m_stake i weight stake l true_stake src_addr pubkey tot_stake vinfo i vset _228=16
|
|
DICTUSETB // credits members best_stake m frozen m_stake i weight stake l true_stake src_addr pubkey tot_stake vset
|
|
FALSE // credits members best_stake m frozen m_stake i weight stake l true_stake src_addr pubkey tot_stake vset _231
|
|
s4 PUSH
|
|
NEWC // credits members best_stake m frozen m_stake i weight stake l true_stake src_addr pubkey tot_stake vset _231 src_addr _232
|
|
256 STU // credits members best_stake m frozen m_stake i weight stake l true_stake src_addr pubkey tot_stake vset _231 _234
|
|
s1 s9 XCHG // credits members best_stake m frozen m_stake i _231 stake l true_stake src_addr pubkey tot_stake vset weight _234
|
|
64 STU // credits members best_stake m frozen m_stake i _231 stake l true_stake src_addr pubkey tot_stake vset _236
|
|
s0 s5 XCHG2 // credits members best_stake m frozen m_stake i _231 stake l vset src_addr pubkey tot_stake _236 true_stake
|
|
STGRAMS // credits members best_stake m frozen m_stake i _231 stake l vset src_addr pubkey tot_stake _237
|
|
s1 s7 XCHG // credits members best_stake m frozen m_stake i tot_stake stake l vset src_addr pubkey _231 _237
|
|
1 STI // credits members best_stake m frozen m_stake i tot_stake stake l vset src_addr pubkey _239
|
|
s0 s1 s9 XCHG3
|
|
8 PUSHPOW2 // credits members best_stake m src_addr m_stake i tot_stake stake l vset _239 pubkey frozen _240=256
|
|
DICTUSETB // credits members best_stake m src_addr m_stake i tot_stake stake l vset frozen
|
|
}>ELSE<{
|
|
s0 s10 XCHG
|
|
s4 s6 XCHG
|
|
s0 s3 XCHG
|
|
3 BLKDROP // credits members best_stake m src_addr m_stake i tot_stake stake l vset frozen
|
|
}>
|
|
s3 PUSH // credits members best_stake m src_addr m_stake i tot_stake stake l vset frozen stake
|
|
IF:<{ // credits members best_stake m src_addr m_stake i tot_stake stake l vset frozen
|
|
s11 s7 s3 XCHG3 // l members best_stake m vset m_stake i tot_stake frozen credits src_addr stake
|
|
~credit_to CALLDICT // l members best_stake m vset m_stake i tot_stake frozen credits
|
|
}>ELSE<{
|
|
s11 s7 s3 XCHG3
|
|
2DROP // l members best_stake m vset m_stake i tot_stake frozen credits
|
|
}>
|
|
s0 s3 XCHG // l members best_stake m vset m_stake credits tot_stake frozen i
|
|
INC // l members best_stake m vset m_stake credits tot_stake frozen i
|
|
s9 PUSH // l members best_stake m vset m_stake credits tot_stake frozen i l
|
|
ISNULL // l members best_stake m vset m_stake credits tot_stake frozen i _246
|
|
s4 s10 XCHG
|
|
s4 s6 XCHG
|
|
s4 s4 s0 XCHG3 // credits members best_stake m l m_stake i tot_stake vset frozen _246
|
|
}> // credits members best_stake m l m_stake i tot_stake vset frozen
|
|
s3 POP
|
|
s3 POP
|
|
s3 POP
|
|
s5 POP // credits frozen best_stake m tot_stake vset
|
|
s1 s3 PUXC // credits frozen vset m tot_stake tot_stake best_stake
|
|
EQUAL // credits frozen vset m tot_stake _248
|
|
49 THROWIFNOT
|
|
s2 s3 XCHG
|
|
SWAP // credits vset frozen tot_stake m
|
|
}>
|
|
conduct_elections PROC:<{
|
|
// ds elect credits
|
|
SWAP // ds credits elect
|
|
unpack_elect CALLDICT // ds credits _130 _131 _132 _133 _134 _135 _136
|
|
s4 POP // ds credits elect_at elect_close finished total_stake members failed
|
|
NOW // ds credits elect_at elect_close finished total_stake members failed _11
|
|
s5 PUSH // ds credits elect_at elect_close finished total_stake members failed _11 elect_close
|
|
LESS // ds credits elect_at elect_close finished total_stake members failed _12
|
|
IFJMP:<{ // ds credits elect_at elect_close finished total_stake members failed
|
|
8 BLKDROP //
|
|
FALSE // _13
|
|
}> // ds credits elect_at elect_close finished total_stake members failed
|
|
0 PUSHINT // ds credits elect_at elect_close finished total_stake members failed _14=0
|
|
CONFIGOPTPARAM // ds credits elect_at elect_close finished total_stake members failed _15
|
|
ISNULL // ds credits elect_at elect_close finished total_stake members failed _16
|
|
IFJMP:<{ // ds credits elect_at elect_close finished total_stake members failed
|
|
8 BLKDROP //
|
|
postpone_elections CALLDICT // _17
|
|
}> // ds credits elect_at elect_close finished total_stake members failed
|
|
17 PUSHINT // ds credits elect_at elect_close finished total_stake members failed _19=17
|
|
CONFIGOPTPARAM // ds credits elect_at elect_close finished total_stake members failed _20
|
|
CTOS // ds credits elect_at elect_close finished total_stake members failed cs
|
|
LDGRAMS // ds credits elect_at elect_close finished total_stake members failed min_stake cs
|
|
LDGRAMS // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake cs
|
|
LDGRAMS // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake min_total_stake cs
|
|
32 LDU // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake min_total_stake max_stake_factor cs
|
|
ENDS
|
|
s6 s1 PUSH2 // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake min_total_stake max_stake_factor total_stake min_total_stake
|
|
LESS // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake min_total_stake max_stake_factor _35
|
|
IFJMP:<{ // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake min_total_stake max_stake_factor
|
|
12 BLKDROP //
|
|
postpone_elections CALLDICT // _36
|
|
}> // ds credits elect_at elect_close finished total_stake members failed min_stake max_stake min_total_stake max_stake_factor
|
|
s0 s4 XCHG // ds credits elect_at elect_close finished total_stake members max_stake_factor min_stake max_stake min_total_stake failed
|
|
IFJMP:<{ // ds credits elect_at elect_close finished total_stake members max_stake_factor min_stake max_stake min_total_stake
|
|
11 BLKDROP //
|
|
postpone_elections CALLDICT // _37
|
|
}> // ds credits elect_at elect_close finished total_stake members max_stake_factor min_stake max_stake min_total_stake
|
|
s0 s6 XCHG // ds credits elect_at elect_close min_total_stake total_stake members max_stake_factor min_stake max_stake finished
|
|
IFJMP:<{ // ds credits elect_at elect_close min_total_stake total_stake members max_stake_factor min_stake max_stake
|
|
10 BLKDROP //
|
|
FALSE // _38
|
|
}> // ds credits elect_at elect_close min_total_stake total_stake members max_stake_factor min_stake max_stake
|
|
s3 s8 XCHG
|
|
s8 PUSH
|
|
s3 s2 XCPU
|
|
s7 s7 XCHG2 // ds members elect_at elect_close min_stake total_stake credits members min_stake max_stake min_total_stake max_stake_factor
|
|
try_elect CALLDICT // ds members elect_at elect_close min_stake total_stake credits vdict frozen total_stakes cnt
|
|
DUP // ds members elect_at elect_close min_stake total_stake credits vdict frozen total_stakes cnt cnt
|
|
0 EQINT // ds members elect_at elect_close min_stake total_stake credits vdict frozen total_stakes cnt failed
|
|
DUP // ds members elect_at elect_close min_stake total_stake credits vdict frozen total_stakes cnt failed failed
|
|
NOT // ds members elect_at elect_close min_stake total_stake credits vdict frozen total_stakes cnt failed finished
|
|
s10 PUSH
|
|
s0 s6 XCHG
|
|
s5 s10 XCHG
|
|
s4 s9 XCHG
|
|
s3 s8 XCHG
|
|
s12 s12 s12 XCHG3 // ds vdict elect_at frozen total_stakes cnt credits elect_at elect_close min_stake total_stake members failed finished
|
|
pack_elect CALLDICT // ds vdict elect_at frozen total_stakes cnt credits elect
|
|
s2 PUSH // ds vdict elect_at frozen total_stakes cnt credits elect cnt
|
|
IFNOTJMP:<{ // ds vdict elect_at frozen total_stakes cnt credits elect
|
|
s2 POP
|
|
s2 POP
|
|
s2 POP
|
|
s2 POP
|
|
s2 POP // ds elect credits
|
|
NEWC // ds elect credits _48
|
|
s1 s2 XCHG // ds credits elect _48
|
|
STDICT // ds credits _49
|
|
STDICT // ds _50
|
|
SWAP // _50 ds
|
|
STSLICER // _51
|
|
ENDC // _52
|
|
c4 POP
|
|
postpone_elections CALLDICT // _54
|
|
}> // ds vdict elect_at frozen total_stakes cnt credits elect
|
|
get_validator_conf CALLDICT // ds vdict elect_at frozen total_stakes cnt credits elect _150 _151 _152 _153
|
|
s2 POP // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held elect_end_before
|
|
NOW // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held elect_end_before _61
|
|
SWAP // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held _61 elect_end_before
|
|
ADD // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held _62
|
|
-60 ADDCONST // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held _64
|
|
s8 PUSH // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held _64 elect_at
|
|
MAX // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start
|
|
16 PUSHINT // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _67=16
|
|
CONFIGOPTPARAM // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _68
|
|
CTOS // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _69
|
|
16 PUSHINT // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _69 _70=16
|
|
SDSKIPFIRST // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _71
|
|
16 PLDU // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start main_validators
|
|
s6 s(-1) PUXC // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start cnt main_validators
|
|
MIN // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75
|
|
s1 s3 PUSH2 // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 start elect_for
|
|
ADD // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _76
|
|
17 PUSHINT // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _76 _77=17
|
|
NEWC // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _76 _77=17 _78
|
|
8 STU // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _76 _80
|
|
s3 s(-1) PUXC // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _76 start _80
|
|
32 STU // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _76 _82
|
|
32 STU // ds vdict elect_at frozen total_stakes cnt credits elect elect_for stake_held start _75 _84
|
|
s1 s7 XCHG // ds vdict elect_at frozen total_stakes _75 credits elect elect_for stake_held start cnt _84
|
|
16 STU // ds vdict elect_at frozen total_stakes _75 credits elect elect_for stake_held start _86
|
|
s1 s6 XCHG // ds vdict elect_at frozen total_stakes start credits elect elect_for stake_held _75 _86
|
|
16 STU // ds vdict elect_at frozen total_stakes start credits elect elect_for stake_held _88
|
|
s0 s9 XCHG // ds _88 elect_at frozen total_stakes start credits elect elect_for stake_held vdict
|
|
CTOS // ds _88 elect_at frozen total_stakes start credits elect elect_for stake_held _89
|
|
s1 s9 XCHG // ds stake_held elect_at frozen total_stakes start credits elect elect_for _88 _89
|
|
STSLICER // ds stake_held elect_at frozen total_stakes start credits elect elect_for _90
|
|
ENDC // ds stake_held elect_at frozen total_stakes start credits elect elect_for vset
|
|
0 PUSHINT // ds stake_held elect_at frozen total_stakes start credits elect elect_for vset _93=0
|
|
CONFIGOPTPARAM // ds stake_held elect_at frozen total_stakes start credits elect elect_for vset _94
|
|
CTOS // ds stake_held elect_at frozen total_stakes start credits elect elect_for vset _95
|
|
256 PLDU // ds stake_held elect_at frozen total_stakes start credits elect elect_for vset config_addr
|
|
s1 s8 PUSH2 // ds stake_held elect_at frozen total_stakes start credits elect elect_for vset config_addr vset elect_at
|
|
send_validator_set_to_config CALLDICT
|
|
s0 s9 XCHG // vset stake_held elect_at frozen total_stakes start credits elect elect_for ds
|
|
LDDICT // vset stake_held elect_at frozen total_stakes start credits elect elect_for past_elect ds
|
|
FALSE // vset stake_held elect_at frozen total_stakes start credits elect elect_for past_elect ds _103
|
|
s0 s11 XCHG // _103 stake_held elect_at frozen total_stakes start credits elect elect_for past_elect ds vset
|
|
HASHCU // _103 stake_held elect_at frozen total_stakes start credits elect elect_for past_elect ds _104
|
|
s6 s3 XCHG2 // _103 stake_held elect_at frozen total_stakes ds credits elect _104 past_elect start elect_for
|
|
ADD // _103 stake_held elect_at frozen total_stakes ds credits elect _104 past_elect _105
|
|
s9 PUSH // _103 stake_held elect_at frozen total_stakes ds credits elect _104 past_elect _105 stake_held
|
|
ADD // _103 stake_held elect_at frozen total_stakes ds credits elect _104 past_elect _106
|
|
NEWC // _103 stake_held elect_at frozen total_stakes ds credits elect _104 past_elect _106 _107
|
|
32 STU // _103 stake_held elect_at frozen total_stakes ds credits elect _104 past_elect _109
|
|
s1 s9 XCHG // _103 past_elect elect_at frozen total_stakes ds credits elect _104 stake_held _109
|
|
32 STU // _103 past_elect elect_at frozen total_stakes ds credits elect _104 _111
|
|
256 STU // _103 past_elect elect_at frozen total_stakes ds credits elect _113
|
|
s1 s5 XCHG // _103 past_elect elect_at elect total_stakes ds credits frozen _113
|
|
STDICT // _103 past_elect elect_at elect total_stakes ds credits _114
|
|
s0 s3 XCHG2 // _103 past_elect elect_at elect credits ds _114 total_stakes
|
|
STGRAMS // _103 past_elect elect_at elect credits ds _115
|
|
0 PUSHINT // _103 past_elect elect_at elect credits ds _115 _116=0
|
|
STGRAMS // _103 past_elect elect_at elect credits ds _117
|
|
s1 s6 XCHG // ds past_elect elect_at elect credits _103 _117
|
|
1 STI // ds past_elect elect_at elect credits _119
|
|
s0 s3 s4 XCHG3
|
|
32 PUSHINT // ds elect credits _119 elect_at past_elect _120=32
|
|
DICTUSETB // ds elect credits past_elect
|
|
NEWC // ds elect credits past_elect _122
|
|
s1 s3 XCHG // ds past_elect credits elect _122
|
|
STDICT // ds past_elect credits _123
|
|
STDICT // ds past_elect _124
|
|
STDICT // ds _125
|
|
SWAP // _125 ds
|
|
STSLICER // _126
|
|
ENDC // _127
|
|
c4 POP
|
|
TRUE // _129
|
|
}>
|
|
update_active_vset_id PROC:<{
|
|
//
|
|
load_data CALLDICT // elect credits past_elect grams active_id active_hash
|
|
34 PUSHINT // elect credits past_elect grams active_id active_hash _8=34
|
|
CONFIGOPTPARAM // elect credits past_elect grams active_id active_hash _9
|
|
HASHCU // elect credits past_elect grams active_id active_hash cur_hash
|
|
s0 s1 PUSH2 // elect credits past_elect grams active_id active_hash cur_hash cur_hash active_hash
|
|
EQUAL // elect credits past_elect grams active_id active_hash cur_hash _11
|
|
IFJMP:<{ // elect credits past_elect grams active_id active_hash cur_hash
|
|
7 BLKDROP //
|
|
FALSE // _12
|
|
}> // elect credits past_elect grams active_id active_hash cur_hash
|
|
s2 PUSH // elect credits past_elect grams active_id active_hash cur_hash active_id
|
|
IF:<{ // elect credits past_elect grams active_id active_hash cur_hash
|
|
s2 s4 PUSH2
|
|
32 PUSHINT // elect credits past_elect grams active_id active_hash cur_hash active_id past_elect _15=32
|
|
DICTUGET
|
|
NULLSWAPIFNOT // elect credits past_elect grams active_id active_hash cur_hash fs f
|
|
IF:<{ // elect credits past_elect grams active_id active_hash cur_hash fs
|
|
32 LDU // elect credits past_elect grams active_id active_hash cur_hash _99 _98
|
|
NIP // elect credits past_elect grams active_id active_hash cur_hash fs
|
|
DUP // elect credits past_elect grams active_id active_hash cur_hash fs0 fs
|
|
32 LDU // elect credits past_elect grams active_id active_hash cur_hash fs0 _24 fs
|
|
256 LDU // elect credits past_elect grams active_id active_hash cur_hash fs0 _24 _103 _102
|
|
DROP // elect credits past_elect grams active_id active_hash cur_hash fs0 stake_held hash
|
|
s0 s4 XCHG2 // elect credits past_elect grams active_id stake_held cur_hash fs0 hash active_hash
|
|
EQUAL // elect credits past_elect grams active_id stake_held cur_hash fs0 _31
|
|
57 THROWIFNOT
|
|
NOW // elect credits past_elect grams active_id stake_held cur_hash fs0 _33
|
|
s0 s3 XCHG2 // elect credits past_elect grams active_id fs0 cur_hash _33 stake_held
|
|
ADD // elect credits past_elect grams active_id fs0 cur_hash unfreeze_time
|
|
NEWC // elect credits past_elect grams active_id fs0 cur_hash unfreeze_time _36
|
|
32 STU // elect credits past_elect grams active_id fs0 cur_hash _38
|
|
ROT // elect credits past_elect grams active_id cur_hash _38 fs0
|
|
STSLICER // elect credits past_elect grams active_id cur_hash _39
|
|
s0 s0 s4 XCHG3
|
|
32 PUSHINT // elect credits cur_hash grams _39 active_id past_elect _40=32
|
|
DICTUSETB // elect credits cur_hash grams past_elect
|
|
}>ELSE<{
|
|
s1 s5 XCHG
|
|
s1 s3 XCHG
|
|
3 BLKDROP // elect credits cur_hash grams past_elect
|
|
}>
|
|
}>ELSE<{
|
|
s4 s1 s4 XCHG3
|
|
2DROP // elect credits cur_hash grams past_elect
|
|
}>
|
|
-1 PUSHINT // elect credits cur_hash grams past_elect id=-1
|
|
UNTIL:<{
|
|
OVER
|
|
32 PUSHINT // elect credits cur_hash grams past_elect id past_elect _46=32
|
|
DICTUGETNEXT
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // elect credits cur_hash grams past_elect fs id f
|
|
DUP // elect credits cur_hash grams past_elect fs id f f
|
|
IF:<{ // elect credits cur_hash grams past_elect fs id f
|
|
s0 s2 XCHG // elect credits cur_hash grams past_elect f id fs
|
|
64 LDU // elect credits cur_hash grams past_elect f id _50 fs
|
|
256 LDU // elect credits cur_hash grams past_elect f id tm hash fs
|
|
s1 s7 PUSH2 // elect credits cur_hash grams past_elect f id tm hash fs hash cur_hash
|
|
EQUAL // elect credits cur_hash grams past_elect f id tm hash fs _56
|
|
IF:<{ // elect credits cur_hash grams past_elect f id tm hash fs
|
|
s4 POP // elect credits cur_hash grams past_elect fs id tm hash
|
|
s0 s3 XCHG // elect credits cur_hash grams past_elect hash id tm fs
|
|
LDDICT // elect credits cur_hash grams past_elect hash id tm _60 fs
|
|
LDGRAMS // elect credits cur_hash grams past_elect hash id tm _60 _62 fs
|
|
LDGRAMS // elect credits cur_hash grams past_elect hash id tm dict total_stake bonuses fs
|
|
s8 PUSH // elect credits cur_hash grams past_elect hash id tm dict total_stake bonuses fs grams
|
|
3 RSHIFT# // elect credits cur_hash grams past_elect hash id tm dict total_stake bonuses fs amount
|
|
s9 s9 XCPU // elect credits cur_hash amount past_elect hash id tm dict total_stake bonuses fs grams amount
|
|
SUB // elect credits cur_hash amount past_elect hash id tm dict total_stake bonuses fs grams
|
|
s2 s9 XCHG2 // elect credits cur_hash grams past_elect hash id tm dict total_stake fs bonuses amount
|
|
ADD // elect credits cur_hash grams past_elect hash id tm dict total_stake fs bonuses
|
|
NEWC // elect credits cur_hash grams past_elect hash id tm dict total_stake fs bonuses _72
|
|
s1 s5 XCHG // elect credits cur_hash grams past_elect hash id bonuses dict total_stake fs tm _72
|
|
64 STU // elect credits cur_hash grams past_elect hash id bonuses dict total_stake fs _74
|
|
s1 s6 XCHG // elect credits cur_hash grams past_elect fs id bonuses dict total_stake hash _74
|
|
256 STU // elect credits cur_hash grams past_elect fs id bonuses dict total_stake _76
|
|
s1 s2 XCHG // elect credits cur_hash grams past_elect fs id bonuses total_stake dict _76
|
|
STDICT // elect credits cur_hash grams past_elect fs id bonuses total_stake _77
|
|
SWAP // elect credits cur_hash grams past_elect fs id bonuses _77 total_stake
|
|
STGRAMS // elect credits cur_hash grams past_elect fs id bonuses _78
|
|
SWAP // elect credits cur_hash grams past_elect fs id _78 bonuses
|
|
STGRAMS // elect credits cur_hash grams past_elect fs id _79
|
|
ROT // elect credits cur_hash grams past_elect id _79 fs
|
|
STSLICER // elect credits cur_hash grams past_elect id _80
|
|
SWAP
|
|
32 PUSHINT
|
|
s1 s3 s3 PUXC2 // elect credits cur_hash grams id _80 id past_elect _81=32
|
|
DICTUSETB // elect credits cur_hash grams id past_elect
|
|
FALSE // elect credits cur_hash grams id past_elect f
|
|
}>ELSE<{
|
|
s3 s5 XCHG
|
|
s3 s4 XCHG
|
|
3 BLKDROP // elect credits cur_hash grams id past_elect f
|
|
}>
|
|
}>ELSE<{
|
|
s3 s0 s3 XCHG3
|
|
DROP // elect credits cur_hash grams id past_elect f
|
|
}>
|
|
NOT // elect credits cur_hash grams id past_elect _84
|
|
s1 s2 XCHG // elect credits cur_hash grams past_elect id _84
|
|
}> // elect credits cur_hash grams past_elect id
|
|
DUP // elect credits cur_hash grams past_elect id id
|
|
ISNULL // elect credits cur_hash grams past_elect id _85
|
|
IF:<{ // elect credits cur_hash grams past_elect id
|
|
DROP // elect credits cur_hash grams past_elect
|
|
0 PUSHINT // elect credits cur_hash grams past_elect _86=0
|
|
}>ELSE<{ // elect credits cur_hash grams past_elect _86
|
|
}> // elect credits active_hash grams past_elect active_id
|
|
s0 s3 XCHG2 // elect credits past_elect grams active_id active_hash
|
|
store_data CALLDICT
|
|
TRUE // _89
|
|
}>
|
|
cell_hash_eq? PROC:<{
|
|
// vset expected_vset_hash
|
|
OVER // vset expected_vset_hash vset
|
|
ISNULL // vset expected_vset_hash _2
|
|
IF:<{ // vset expected_vset_hash
|
|
2DROP //
|
|
FALSE // _3
|
|
}>ELSE<{ // vset expected_vset_hash
|
|
SWAP // expected_vset_hash vset
|
|
HASHCU // expected_vset_hash _5
|
|
SWAP // _5 expected_vset_hash
|
|
EQUAL // _3
|
|
}>
|
|
}>
|
|
validator_set_installed PROC:<{
|
|
// ds elect credits
|
|
SWAP // ds credits elect
|
|
unpack_elect CALLDICT // ds credits _44 _45 _46 _47 _48 _49 _50
|
|
s0 s5 XCHG
|
|
5 BLKDROP // ds credits elect_at finished
|
|
IFNOTJMP:<{ // ds credits elect_at
|
|
3 BLKDROP //
|
|
FALSE // _11
|
|
}> // ds credits elect_at
|
|
s0 s2 XCHG // elect_at credits ds
|
|
LDDICT // elect_at credits past_elections ds
|
|
s3 s1 XCPU
|
|
32 PUSHINT // ds credits past_elections elect_at past_elections _17=32
|
|
DICTUGET
|
|
NULLSWAPIFNOT // ds credits past_elections fs f
|
|
IFNOTJMP:<{ // ds credits past_elections fs
|
|
4 BLKDROP //
|
|
FALSE // _19
|
|
}> // ds credits past_elections fs
|
|
64 PUSHINT // ds credits past_elections fs _21=64
|
|
SDSKIPFIRST // ds credits past_elections _22
|
|
256 PLDU // ds credits past_elections vset_hash
|
|
34 PUSHINT // ds credits past_elections vset_hash _25=34
|
|
CONFIGOPTPARAM // ds credits past_elections vset_hash _26
|
|
OVER // ds credits past_elections vset_hash _26 vset_hash
|
|
cell_hash_eq? CALLDICT // ds credits past_elections vset_hash _27
|
|
36 PUSHINT // ds credits past_elections vset_hash _27 _28=36
|
|
CONFIGOPTPARAM // ds credits past_elections vset_hash _27 _29
|
|
ROT // ds credits past_elections _27 _29 vset_hash
|
|
cell_hash_eq? CALLDICT // ds credits past_elections _27 _30
|
|
OR // ds credits past_elections _31
|
|
IFJMP:<{ // ds credits past_elections
|
|
FALSE // ds credits past_elections _32
|
|
NEWC // ds credits past_elections _32 _33
|
|
1 STI // ds credits past_elections _35
|
|
s1 s2 XCHG // ds past_elections credits _35
|
|
STDICT // ds past_elections _36
|
|
STDICT // ds _37
|
|
SWAP // _37 ds
|
|
STSLICER // _38
|
|
ENDC // _39
|
|
c4 POP
|
|
update_active_vset_id CALLDICT // _41
|
|
DROP //
|
|
TRUE // _42
|
|
}> // ds credits past_elections
|
|
3 BLKDROP //
|
|
FALSE // _43
|
|
}>
|
|
check_unfreeze PROC:<{
|
|
//
|
|
load_data CALLDICT // elect credits past_elect grams active_id active_hash
|
|
-1 PUSHINT // elect credits past_elect grams active_id active_hash id=-1
|
|
UNTIL:<{
|
|
s4 PUSH
|
|
32 PUSHINT // elect credits past_elect grams active_id active_hash id past_elect _11=32
|
|
DICTUGETNEXT
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // elect credits past_elect grams active_id active_hash fs id f
|
|
DUP // elect credits past_elect grams active_id active_hash fs id f f
|
|
IF:<{ // elect credits past_elect grams active_id active_hash fs id f
|
|
s0 s2 XCHG // elect credits past_elect grams active_id active_hash f id fs
|
|
32 LDU // elect credits past_elect grams active_id active_hash f id _39 _38
|
|
DROP // elect credits past_elect grams active_id active_hash f id unfreeze_at
|
|
NOW // elect credits past_elect grams active_id active_hash f id unfreeze_at _17
|
|
LEQ // elect credits past_elect grams active_id active_hash f id _18
|
|
s1 s4 PUSH2 // elect credits past_elect grams active_id active_hash f id _18 id active_id
|
|
NEQ // elect credits past_elect grams active_id active_hash f id _18 _19
|
|
AND // elect credits past_elect grams active_id active_hash f id _20
|
|
IF:<{ // elect credits past_elect grams active_id active_hash f id
|
|
NIP // elect credits past_elect grams active_id active_hash id
|
|
s5 s4 s4 XC2PU // elect active_hash id grams active_id credits past_elect id
|
|
unfreeze_all CALLDICT // elect active_hash id grams active_id credits past_elect unused_prizes
|
|
s1 s4 XCHG // elect active_hash id past_elect active_id credits grams unused_prizes
|
|
ADD // elect active_hash id past_elect active_id credits grams
|
|
s6 s1 s3 PUSH3
|
|
s3 s5 s8 PUSH3 // elect active_hash id past_elect active_id credits grams elect credits past_elect grams active_id active_hash
|
|
store_data CALLDICT
|
|
FALSE // elect active_hash id past_elect active_id credits grams f
|
|
}>ELSE<{
|
|
s6 s1 s5 XCHG3
|
|
s4 s4 XCHG2 // elect active_hash id past_elect active_id credits grams f
|
|
}>
|
|
}>ELSE<{
|
|
s3 s7 XCHG
|
|
s1 s6 XCHG
|
|
s5 s0 s5 XCHG3
|
|
DROP // elect active_hash id past_elect active_id credits grams f
|
|
}>
|
|
NOT // elect active_hash id past_elect active_id credits grams _26
|
|
s2 s6 XCHG
|
|
s4 s5 XCHG
|
|
s1 s4 XCHG // elect credits past_elect grams active_id active_hash id _26
|
|
}> // elect credits past_elect grams active_id active_hash id
|
|
s0 s6 XCHG
|
|
6 BLKDROP // id
|
|
ISNULL // _27
|
|
NOT // _28
|
|
}>
|
|
announce_new_elections PROC:<{
|
|
// ds elect credits
|
|
NIP // ds credits
|
|
36 PUSHINT // ds credits _4=36
|
|
CONFIGOPTPARAM // ds credits next_vset
|
|
ISNULL // ds credits _6
|
|
IFNOTJMP:<{ // ds credits
|
|
2DROP //
|
|
FALSE // _7
|
|
}> // ds credits
|
|
1 PUSHINT // ds credits _9=1
|
|
CONFIGOPTPARAM // ds credits _10
|
|
CTOS // ds credits _11
|
|
256 PLDU // ds credits elector_addr
|
|
MYADDR // ds credits elector_addr _16
|
|
REWRITESTDADDR // ds credits elector_addr my_wc my_addr
|
|
SWAP // ds credits elector_addr my_addr my_wc
|
|
INC // ds credits elector_addr my_addr _19
|
|
s0 s2 XCHG // ds credits _19 my_addr elector_addr
|
|
NEQ // ds credits _19 _20
|
|
OR // ds credits _21
|
|
IFJMP:<{ // ds credits
|
|
2DROP //
|
|
FALSE // _22
|
|
}> // ds credits
|
|
34 PUSHINT // ds credits _24=34
|
|
CONFIGOPTPARAM // ds credits cur_vset
|
|
DUP // ds credits cur_vset cur_vset
|
|
ISNULL // ds credits cur_vset _26
|
|
IFJMP:<{ // ds credits cur_vset
|
|
3 BLKDROP //
|
|
FALSE // _27
|
|
}> // ds credits cur_vset
|
|
get_validator_conf CALLDICT // ds credits cur_vset _76 _77 _78 _79
|
|
DROP
|
|
s2 POP // ds credits cur_vset elect_end_before elect_begin_before
|
|
s0 s2 XCHG // ds credits elect_begin_before elect_end_before cur_vset
|
|
CTOS // ds credits elect_begin_before elect_end_before _34
|
|
40 PUSHINT // ds credits elect_begin_before elect_end_before _34 _37
|
|
SDSKIPFIRST // ds credits elect_begin_before elect_end_before _38
|
|
32 PLDU // ds credits elect_begin_before elect_end_before cur_valid_until
|
|
NOW // ds credits elect_begin_before elect_end_before cur_valid_until t
|
|
s1 s3 XCPU // ds credits elect_begin_before elect_end_before t cur_valid_until elect_begin_before
|
|
SUB // ds credits elect_begin_before elect_end_before t t0
|
|
2DUP // ds credits elect_begin_before elect_end_before t t0 t t0
|
|
LESS // ds credits elect_begin_before elect_end_before t t0 _45
|
|
IFJMP:<{ // ds credits elect_begin_before elect_end_before t t0
|
|
6 BLKDROP //
|
|
FALSE // _46
|
|
}> // ds credits elect_begin_before elect_end_before t t0
|
|
2DUP // ds credits elect_begin_before elect_end_before t t0 t t0
|
|
SUB // ds credits elect_begin_before elect_end_before t t0 _47
|
|
60 LESSINT // ds credits elect_begin_before elect_end_before t t0 _49
|
|
IF:<{ // ds credits elect_begin_before elect_end_before t t0
|
|
NIP // ds credits elect_begin_before elect_end_before t
|
|
}>ELSE<{
|
|
DROP // ds credits elect_begin_before elect_end_before t
|
|
}>
|
|
17 PUSHINT // ds credits elect_begin_before elect_end_before t _52=17
|
|
CONFIGOPTPARAM // ds credits elect_begin_before elect_end_before t _53
|
|
CTOS // ds credits elect_begin_before elect_end_before t _54
|
|
LDGRAMS // ds credits elect_begin_before elect_end_before t _81 _80
|
|
DROP // ds credits elect_begin_before elect_end_before t min_stake
|
|
s0 s3 XCHG // ds credits min_stake elect_end_before t elect_begin_before
|
|
ADD // ds credits min_stake elect_end_before elect_at
|
|
s0 DUMP // ds credits min_stake elect_end_before elect_at
|
|
s0 s1 PUXC // ds credits min_stake elect_at elect_at elect_end_before
|
|
SUB // ds credits min_stake elect_at elect_close
|
|
0 PUSHINT // ds credits min_stake elect_at elect_close _62=0
|
|
NEWDICT // ds credits min_stake elect_at elect_close _62=0 _63
|
|
FALSE // ds credits min_stake elect_at elect_close _62=0 _63 _64
|
|
s4 s5 XCHG
|
|
s3 s4 XCHG
|
|
FALSE // ds credits elect_at elect_close min_stake _62=0 _63 _64 _65
|
|
pack_elect CALLDICT // ds credits elect
|
|
NEWC // ds credits elect _67
|
|
STDICT // ds credits _68
|
|
STDICT // ds _69
|
|
SWAP // _69 ds
|
|
STSLICER // _70
|
|
ENDC // _71
|
|
c4 POP
|
|
TRUE // _73
|
|
}>
|
|
run_ticktock PROC:<{
|
|
// is_tock
|
|
DROP //
|
|
c4 PUSH // _2
|
|
CTOS // ds
|
|
LDDICT // _6 ds
|
|
LDDICT // elect credits ds
|
|
s2 PUSH // elect credits ds elect
|
|
ISNULL // elect credits ds _10
|
|
IF:<{ // elect credits ds
|
|
-ROT // ds elect credits
|
|
announce_new_elections CALLDICT // _18
|
|
0 THROWIF
|
|
}>ELSE<{ // elect credits ds
|
|
s0 s2 s1 PUSH3 // elect credits ds ds elect credits
|
|
conduct_elections CALLDICT // elect credits ds _12
|
|
0 THROWIF
|
|
-ROT // ds elect credits
|
|
validator_set_installed CALLDICT // _15
|
|
0 THROWIF
|
|
}>
|
|
update_active_vset_id CALLDICT // _21
|
|
0 THROWIF
|
|
check_unfreeze CALLDICT // _23
|
|
DROP //
|
|
}>
|
|
active_election_id PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // _2
|
|
PLDDICT // elect
|
|
DUP // elect elect
|
|
ISNULL // elect _4
|
|
IF:<{ // elect
|
|
DROP //
|
|
0 PUSHINT // _5=0
|
|
}>ELSE<{ // elect
|
|
CTOS // _7
|
|
32 PLDU // _5
|
|
}>
|
|
}>
|
|
participates_in PROC:<{
|
|
// validator_pubkey
|
|
c4 PUSH // validator_pubkey _2
|
|
CTOS // validator_pubkey _3
|
|
PLDDICT // validator_pubkey elect
|
|
DUP // validator_pubkey elect elect
|
|
ISNULL // validator_pubkey elect _5
|
|
IFJMP:<{ // validator_pubkey elect
|
|
2DROP //
|
|
0 PUSHINT // _6=0
|
|
}> // validator_pubkey elect
|
|
unpack_elect CALLDICT // validator_pubkey _23 _24 _25 _26 _27 _28 _29
|
|
s2 s6 XCHG
|
|
6 BLKDROP // validator_pubkey members
|
|
8 PUSHPOW2 // validator_pubkey members _17=256
|
|
DICTUGET
|
|
NULLSWAPIFNOT // mem found
|
|
IF:<{ // mem
|
|
LDGRAMS // _33 _32
|
|
DROP // _19
|
|
}>ELSE<{ // mem
|
|
DROP //
|
|
0 PUSHINT // _19=0
|
|
}>
|
|
}>
|
|
participant_list PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // _2
|
|
PLDDICT // elect
|
|
DUP // elect elect
|
|
ISNULL // elect _4
|
|
IFJMP:<{ // elect
|
|
DROP //
|
|
PUSHNULL // _5
|
|
}> // elect
|
|
unpack_elect CALLDICT // _35 _36 _37 _38 _39 _40 _41
|
|
s2 s6 XCHG
|
|
6 BLKDROP // members
|
|
PUSHNULL // members l
|
|
256 PUSHPOW2DEC // members l id
|
|
UNTIL:<{
|
|
s2 PUSH
|
|
8 PUSHPOW2 // members l id members _28=256
|
|
DICTUGETPREV
|
|
NULLSWAPIFNOT
|
|
NULLSWAPIFNOT // members l fs id f
|
|
DUP // members l fs id f f
|
|
IF:<{ // members l fs id f
|
|
s0 s2 XCHG // members l f id fs
|
|
LDGRAMS // members l f id _46 _45
|
|
DROP // members l f id _30
|
|
s1 s(-1) PUXC // members l f id id _30
|
|
PAIR // members l f id _32
|
|
s0 s3 XCHG2 // members id f _32 l
|
|
CONS // members id f l
|
|
}>ELSE<{
|
|
2SWAP
|
|
DROP // members id f l
|
|
}>
|
|
SWAP // members id l f
|
|
NOT // members id l _34
|
|
s1 s2 XCHG // members l id _34
|
|
}> // members l id
|
|
DROP
|
|
NIP // l
|
|
}>
|
|
compute_returned_stake PROC:<{
|
|
// wallet_addr
|
|
c4 PUSH // wallet_addr _2
|
|
CTOS // wallet_addr cs
|
|
LDDICT // wallet_addr _19 _18
|
|
NIP // wallet_addr cs
|
|
LDDICT // wallet_addr _21 _20
|
|
DROP // wallet_addr credits
|
|
8 PUSHPOW2 // wallet_addr credits _12=256
|
|
DICTUGET
|
|
NULLSWAPIFNOT // val f
|
|
IF:<{ // val
|
|
LDGRAMS // _25 _24
|
|
DROP // _14
|
|
}>ELSE<{ // val
|
|
DROP //
|
|
0 PUSHINT // _14=0
|
|
}>
|
|
}>
|
|
}END>c
|