// automatically generated from `smartcont/stdlib.fc` `smartcont/elector-code.fc` PROGRAM{ DECLPROC load_data DECLPROC store_data DECLPROC unpack_elect DECLPROC pack_elect DECLPROC unpack_past_election DECLPROC pack_past_election DECLPROC unpack_complaint_status DECLPROC pack_complaint_status DECLPROC unpack_complaint DECLPROC pack_complaint DECLPROC parse_complaint_prices DECLPROC get_complaint_prices DECLPROC get_validator_conf DECLPROC get_current_vset DECLPROC get_validator_descr DECLPROC unpack_validator_descr 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 register_complaint DECLPROC punish DECLPROC register_vote DECLPROC proceed_register_vote 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 86698 DECLMETHOD participant_list_extended 130944 DECLMETHOD compute_returned_stake 104565 DECLMETHOD past_election_ids 81558 DECLMETHOD past_elections 74376 DECLMETHOD past_elections_list DECLPROC complete_unpack_complaint DECLPROC get_past_complaints 77853 DECLMETHOD show_complaint 70210 DECLMETHOD list_complaints load_data PROCREF:<{ // 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 PROCREF:<{ // elect credits past_elections grams active_id active_hash s0 s5 XCHG NEWC // active_hash credits past_elections grams active_id elect _6 STDICT // active_hash credits past_elections grams active_id _7 s1 s4 XCHG // active_hash active_id past_elections grams credits _7 STDICT // active_hash active_id past_elections grams _8 s1 s2 XCHG // active_hash active_id grams past_elections _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 PROCREF:<{ // 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 PROCREF:<{ // elect_at elect_close min_stake total_stake members failed finished s0 s6 XCHG NEWC // 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 }> unpack_past_election PROCREF:<{ // fs 32 LDU // _2 fs 32 LDU // _2 _5 fs 256 LDU // _2 _5 _8 fs LDDICT // _2 _5 _8 _11 fs LDGRAMS // _2 _5 _8 _11 _13 fs LDGRAMS // _2 _5 _8 _11 _13 _15 fs LDDICT // res res res res res res res fs ENDS }> pack_past_election PROCREF:<{ // unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses complaints s0 s6 XCHG NEWC // complaints stake_held vset_hash frozen_dict total_stake bonuses unfreeze_at _7 32 STU // complaints stake_held vset_hash frozen_dict total_stake bonuses _9 s1 s5 XCHG // complaints bonuses vset_hash frozen_dict total_stake stake_held _9 32 STU // complaints bonuses vset_hash frozen_dict total_stake _11 s1 s3 XCHG // complaints bonuses total_stake frozen_dict vset_hash _11 256 STU // complaints bonuses total_stake frozen_dict _13 STDICT // complaints bonuses total_stake _14 SWAP // complaints bonuses _14 total_stake STGRAMS // complaints bonuses _15 SWAP // complaints _15 bonuses STGRAMS // complaints _16 STDICT // _17 }> unpack_complaint_status PROCREF:<{ // cs 8 LDU // _2 cs SWAP // cs _2 45 EQINT // cs _6 9 THROWIFNOT LDREF // _9 cs LDDICT // _9 _11 cs 256 LDU // _9 _11 _13 cs 64 LDI // res res res res cs ENDS }> pack_complaint_status PROCREF:<{ // complaint voters vset_id weight_remaining 45 PUSHINT // complaint voters vset_id weight_remaining _4=45 NEWC // complaint voters vset_id weight_remaining _4=45 _5 8 STU // complaint voters vset_id weight_remaining _7 s1 s4 XCHG // weight_remaining voters vset_id complaint _7 STREF // weight_remaining voters vset_id _8 s1 s2 XCHG // weight_remaining vset_id voters _8 STDICT // weight_remaining vset_id _9 256 STU // weight_remaining _11 64 STI // _13 }> unpack_complaint PROCREF:<{ // cs 8 LDI // _2 cs SWAP // cs _2 -68 EQINT // cs _8 9 THROWIFNOT 256 LDU // _11 cs LDREF // _11 _14 cs 32 LDU // _11 _14 _16 cs 8 LDU // _11 _14 _16 _19 cs 256 LDU // _11 _14 _16 _19 _22 cs LDGRAMS // _11 _14 _16 _19 _22 _25 cs LDGRAMS // _11 _14 _16 _19 _22 _25 _27 cs 32 LDU // res res res res res res res res cs ENDS }> pack_complaint PROCREF:<{ // validator_pubkey description created_at severity reward_addr paid suggested_fine suggested_fine_part -68 PUSHINT // validator_pubkey description created_at severity reward_addr paid suggested_fine suggested_fine_part _10 NEWC // validator_pubkey description created_at severity reward_addr paid suggested_fine suggested_fine_part _10 _11 8 STI // validator_pubkey description created_at severity reward_addr paid suggested_fine suggested_fine_part _13 s1 s8 XCHG // suggested_fine_part description created_at severity reward_addr paid suggested_fine validator_pubkey _13 256 STU // suggested_fine_part description created_at severity reward_addr paid suggested_fine _15 s1 s6 XCHG // suggested_fine_part suggested_fine created_at severity reward_addr paid description _15 STREF // suggested_fine_part suggested_fine created_at severity reward_addr paid _16 s1 s4 XCHG // suggested_fine_part suggested_fine paid severity reward_addr created_at _16 32 STU // suggested_fine_part suggested_fine paid severity reward_addr _18 s1 s2 XCHG // suggested_fine_part suggested_fine paid reward_addr severity _18 8 STU // suggested_fine_part suggested_fine paid reward_addr _20 256 STU // suggested_fine_part suggested_fine paid _22 SWAP // suggested_fine_part suggested_fine _22 paid STGRAMS // suggested_fine_part suggested_fine _23 SWAP // suggested_fine_part _23 suggested_fine STGRAMS // suggested_fine_part _24 32 STU // _26 }> parse_complaint_prices PROC:<{ // info CTOS // cs 8 LDU // _4 cs SWAP // cs _4 26 EQINT // cs _8 9 THROWIFNOT LDGRAMS // _11 cs LDGRAMS // _11 _13 cs LDGRAMS // res res res cs ENDS }> get_complaint_prices PROCREF:<{ // 13 PUSHINT // _1=13 CONFIGOPTPARAM // info DUP // info info ISNULL // info _3 IF:<{ // info DROP // 36 PUSHPOW2 // _7 1 PUSHINT // _7 _8=1 9 PUSHPOW2 // _11 _12=1 _13=512 }>ELSE<{ // info parse_complaint_prices INLINECALLDICT // _11 _12 _13 }> }> 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 }> get_current_vset PROCREF:<{ // 34 PUSHINT // _1=34 CONFIGOPTPARAM // vset DUP // vset vset CTOS // vset cs 8 LDU // vset _6 cs SWAP // vset cs _6 18 EQINT // vset cs _10 40 THROWIFNOT 96 PUSHINT // vset cs _19 SDSKIPFIRST // vset cs 64 LDU // vset _23 cs LDDICT // vset total_weight dict cs ENDS }> get_validator_descr PROCREF:<{ // idx get_current_vset INLINECALLDICT // idx _9 _10 _11 s2 POP // idx dict total_weight -ROT 16 PUSHINT // total_weight idx dict _7=16 DICTUGET NULLSWAPIFNOT // total_weight _12 _13 DROP // total_weight value SWAP // value total_weight }> unpack_validator_descr PROC:<{ // cs 8 LDU // _2 cs 32 PUSHINT // _2 cs _5=32 NOT // _2 cs _6 s1 s2 XCHG // cs _2 _6 AND // cs _7 83 EQINT // cs _9 41 THROWIFNOT 32 LDU // _12 cs SWAP 2390828938 PUSHINT // cs _12 _15=2390828938 EQUAL // cs _16 41 THROWIFNOT 256 LDU // _18 cs 64 LDU // _18 _31 _30 DROP // _18 _21 }> send_message_back PROCREF:<{ // 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 PROCREF:<{ // addr query_id reason 4000269644 PUSHINT // addr query_id reason _3=4000269644 -ROT 0 PUSHINT 64 PUSHINT // addr _3=4000269644 query_id reason _4=0 _5=64 send_message_back INLINECALLDICT }> send_confirmation PROCREF:<{ // addr query_id comment 4084484172 PUSHINT // addr query_id comment _3=4084484172 -ROT 1000000000 PUSHINT 2 PUSHINT // addr _3=4084484172 query_id comment _4=1000000000 _5=2 send_message_back INLINECALLDICT }> send_validator_set_to_config PROCREF:<{ // 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 PROCREF:<{ // 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 PROCREF:<{ // 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 INLINECALLDICT }> // 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 INLINECALLDICT }> // 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 INLINECALLDICT }> // 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 INLINECALLDICT // s_addr msg_value adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor _144 _145 _146 _147 _148 _149 _150 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 s13 XCHG 1000000000 PUSHINT // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value _71=1000000000 SUB // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value DUP // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value msg_value 12 LSHIFT# // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value _74 s3 PUSH // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value _74 total_stake LESS // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value _75 IFJMP:<{ // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value s11 s13 XCHG 13 BLKDROP // s_addr query_id 2 PUSHINT // s_addr query_id _76=2 return_stake INLINECALLDICT }> // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake total_stake members msg_value s2 s2 XCPU // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake msg_value members total_stake msg_value ADD // s_addr finished adnl_addr query_id ds src_addr validator_pubkey stake_at max_factor elect_at elect_close min_stake msg_value members total_stake s7 s5 XCPU // s_addr finished adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value members stake_at elect_at NEQ // s_addr finished adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value members _79 IFJMP:<{ // s_addr finished adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value members s10 s12 XCHG 12 BLKDROP // s_addr query_id 3 PUSHINT // s_addr query_id _80=3 return_stake INLINECALLDICT }> // s_addr finished adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value members s0 s12 XCHG // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value finished IFJMP:<{ // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value s9 s11 XCHG 11 BLKDROP // s_addr query_id 0 PUSHINT // s_addr query_id _82=0 return_stake INLINECALLDICT }> // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value s6 s11 PUSH2 8 PUSHPOW2 // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value validator_pubkey members _86=256 DICTUGET NULLSWAPIFNOT // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value mem found DUP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value mem found found IF:<{ // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value mem found DROP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value mem LDGRAMS // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value _88 mem -ROT // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake mem msg_value _88 ADD // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake mem msg_value SWAP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value mem 64 LDU // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value _156 _155 NIP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value mem 256 LDU // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value _158 _157 DROP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value _94 s8 s(-1) PUXC // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value src_addr _94 NEQ // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value found }>ELSE<{ NIP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value found }> IFJMP:<{ // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value s9 s11 XCHG 11 BLKDROP // s_addr query_id 4 PUSHINT // s_addr query_id _98=4 return_stake INLINECALLDICT }> // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value s0 s1 PUSH2 // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value msg_value min_stake LESS // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value _100 IFJMP:<{ // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value s9 s11 XCHG 11 BLKDROP // s_addr query_id 5 PUSHINT // s_addr query_id _101=5 return_stake INLINECALLDICT }> // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value DUP // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value msg_value 44 THROWIFNOT ACCEPT NOW // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake msg_value _107 NEWC ROT // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake _107 _108 msg_value STGRAMS // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake _107 _109 32 STU // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake max_factor elect_at elect_close min_stake _111 s1 s4 XCHG // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake min_stake elect_at elect_close max_factor _111 32 STU // s_addr members adnl_addr query_id ds src_addr validator_pubkey total_stake min_stake elect_at elect_close _113 s1 s6 XCHG // s_addr members adnl_addr query_id ds elect_close validator_pubkey total_stake min_stake elect_at src_addr _113 256 STU // s_addr members adnl_addr query_id ds elect_close validator_pubkey total_stake min_stake elect_at _115 s1 s8 XCHG // s_addr members elect_at query_id ds elect_close validator_pubkey total_stake min_stake adnl_addr _115 256 STU // s_addr members elect_at query_id ds elect_close validator_pubkey total_stake min_stake _117 s0 s3 s8 XCHG3 8 PUSHPOW2 // s_addr total_stake elect_at query_id ds elect_close min_stake _117 validator_pubkey members _118=256 DICTUSETB // s_addr total_stake elect_at query_id ds elect_close min_stake members s4 s5 XCHG s1 s3 s0 XCHG3 s1 s6 XCHG FALSE FALSE // s_addr ds query_id elect_at elect_close min_stake total_stake members _120 _121 pack_elect INLINECALLDICT // s_addr ds query_id elect NEWC // s_addr ds query_id elect _123 STDICT // s_addr ds query_id _124 ROT // s_addr query_id _124 ds STSLICER // s_addr query_id _125 ENDC // s_addr query_id _126 c4 POP DUP // s_addr query_id query_id IFJMP:<{ // s_addr query_id 0 PUSHINT // s_addr query_id _128=0 send_confirmation INLINECALLDICT }> // s_addr query_id 2DROP // }> unfreeze_without_bonuses PROCREF:<{ // 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 NULLSWAPIFNOT2 // 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 INLINECALLDICT // 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 s0 s3 XCHG // credits freeze_dict tot_stakes total recovered f pubkey }>ELSE<{ s2 POP // credits freeze_dict tot_stakes total recovered f pubkey }> SWAP // credits freeze_dict tot_stakes total recovered pubkey f NOT // 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 PROCREF:<{ // 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 NULLSWAPIFNOT2 // 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 INLINECALLDICT // 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 s0 s4 XCHG // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey }>ELSE<{ s2 POP // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered f pubkey }> SWAP // credits freeze_dict tot_stakes tot_bonuses total returned_bonuses recovered pubkey f NOT // 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 PROCREF:<{ // 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 unpack_past_election INLINECALLDICT // credits past_elections _30 _31 _32 _33 _34 _35 _36 DROP 3 3 BLKDROP2 // credits past_elections fdict tot_stakes bonuses DUP // credits past_elections fdict tot_stakes bonuses bonuses 0 GTINT // credits past_elections fdict tot_stakes bonuses _19 IF:<{ // credits past_elections fdict tot_stakes bonuses s3 s4 XCHG // past_elections credits fdict tot_stakes bonuses unfreeze_with_bonuses INLINECALLDICT // past_elections credits _20 }>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 INLINECALLDICT // past_elections credits _20 }> // past_elections credits unused_prizes s1 s2 XCHG // credits past_elections unused_prizes }> config_set_confirmed PROCREF:<{ // 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 INLINECALLDICT // query_id ok ds _63 _64 _65 _66 _67 _68 _69 5 1 BLKDROP2 // 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 INLINECALLDICT // 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 PROCREF:<{ // s_addr msg_value load_data INLINECALLDICT // s_addr msg_value elect credits past_elections grams active_id active_hash s0 s7 XCHG // active_hash msg_value elect credits past_elections grams active_id s_addr REWRITESTDADDR // active_hash msg_value elect credits past_elections grams active_id src_wc src_addr SWAP // active_hash msg_value elect credits past_elections grams active_id src_addr src_wc INC // active_hash msg_value elect credits past_elections grams active_id src_addr _13 OR // active_hash msg_value elect credits past_elections grams active_id _14 OVER // active_hash msg_value elect credits past_elections grams active_id _14 active_id 0 EQINT // active_hash msg_value elect credits past_elections grams active_id _14 _16 OR // active_hash msg_value elect credits past_elections grams active_id _17 IFJMP:<{ // active_hash msg_value elect credits past_elections grams active_id s0 s5 XCHG // active_hash active_id elect credits past_elections grams msg_value ADD // active_hash active_id elect credits past_elections grams s3 s5 XCHG 2 3 BLKSWAP // elect credits past_elections grams active_id active_hash store_data INLINECALLDICT }> // active_hash msg_value elect credits past_elections grams active_id s0 s2 PUSH2 32 PUSHINT // active_hash msg_value elect credits past_elections grams active_id active_id past_elections _22=32 DICTUGET NULLSWAPIFNOT // active_hash msg_value elect credits past_elections grams active_id fs f IF:<{ // active_hash msg_value elect credits past_elections grams active_id fs unpack_past_election INLINECALLDICT // active_hash msg_value elect credits past_elections grams active_id unfreeze_at stake_held hash dict total_stake bonuses complaints s0 s12 XCHG // active_hash complaints elect credits past_elections grams active_id unfreeze_at stake_held hash dict total_stake bonuses msg_value ADD // active_hash complaints elect credits past_elections grams active_id unfreeze_at stake_held hash dict total_stake bonuses 6 ROLL s0 s11 XCHG // active_hash active_id elect credits past_elections grams unfreeze_at stake_held hash dict total_stake bonuses complaints pack_past_election INLINECALLDICT // active_hash active_id elect credits past_elections grams _35 s0 s5 s2 XCPUXC 32 PUSHINT // active_hash active_id elect credits grams _35 active_id past_elections _36=32 DICTUSETB // active_hash active_id elect credits grams past_elections }>ELSE<{ // active_hash msg_value elect credits past_elections grams active_id fs DROP // active_hash msg_value elect credits past_elections grams active_id s0 s5 XCHG // active_hash active_id elect credits past_elections grams msg_value ADD // active_hash active_id elect credits past_elections grams SWAP // active_hash active_id elect credits grams past_elections }> s3 s5 XCHG s1 s4 s3 XCHG3 // elect credits past_elections grams active_id active_hash store_data INLINECALLDICT }> recover_stake PROCREF:<{ // 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 s0 s1 s3 XCHG3 0 PUSHINT 64 PUSHINT // s_addr _9=4294967294 query_id op _10=0 _11=64 send_message_back INLINECALLDICT }> // 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 s0 s1 s3 XCHG3 0 PUSHINT 64 PUSHINT // s_addr _27=4294967294 query_id op _28=0 _29=64 send_message_back INLINECALLDICT }> // 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 SWAP NEWC // 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 -ROT 0 PUSHINT 64 PUSHINT // s_addr _5=3460525924 query_id op=1313042276 _6=0 _7=64 send_message_back INLINECALLDICT }> upgrade_code PROCREF:<{ // 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 CTOS // s_addr query_id cs _26 BLESS // s_addr query_id cs _27 c3 POP SWAP // s_addr cs query_id after_code_upgrade CALLDICT 0 THROW }>ELSE<{ 4 BLKDROP // }> TRUE // _32 }> register_complaint PROC:<{ // s_addr complaint msg_value s0 s2 XCHG // msg_value complaint s_addr REWRITESTDADDR // msg_value complaint src_wc src_addr SWAP // msg_value complaint src_addr src_wc INC // msg_value complaint src_addr _7 IFJMP:<{ // msg_value complaint src_addr 3 BLKDROP // -1 PUSHINT // _8=-1 }> // msg_value complaint src_addr OVER // msg_value complaint src_addr complaint SDEPTH // msg_value complaint src_addr _9 7 PUSHPOW2 // msg_value complaint src_addr _9 _10=128 GEQ // msg_value complaint src_addr _11 IFJMP:<{ // msg_value complaint src_addr 3 BLKDROP // -3 PUSHINT // _12=-3 }> // msg_value complaint src_addr load_data INLINECALLDICT // msg_value complaint src_addr _131 _132 _133 _134 _135 _136 s3 s5 XCHG 5 BLKDROP // msg_value complaint src_addr past_elections s0 s2 XCHG // msg_value past_elections src_addr complaint 32 LDU // msg_value past_elections src_addr election_id complaint s1 s3 PUSH2 32 PUSHINT // msg_value past_elections src_addr election_id complaint election_id past_elections _26=32 DICTUGET NULLSWAPIFNOT // msg_value past_elections src_addr election_id complaint fs f IFNOTJMP:<{ // msg_value past_elections src_addr election_id complaint fs 6 BLKDROP // -2 PUSHINT // _28=-2 }> // msg_value past_elections src_addr election_id complaint fs DUP // msg_value past_elections src_addr election_id complaint fs fs 32 PLDU // msg_value past_elections src_addr election_id complaint fs _31 NOW // msg_value past_elections src_addr election_id complaint fs _31 _32 SUB // msg_value past_elections src_addr election_id complaint fs expire_in DUP // msg_value past_elections src_addr election_id complaint fs expire_in expire_in 1 LESSINT // msg_value past_elections src_addr election_id complaint fs expire_in _35 IFJMP:<{ // msg_value past_elections src_addr election_id complaint fs expire_in 7 BLKDROP // -4 PUSHINT // _36=-4 }> // msg_value past_elections src_addr election_id complaint fs expire_in s2 PUSH // msg_value past_elections src_addr election_id complaint fs expire_in complaint unpack_complaint INLINECALLDICT // msg_value past_elections src_addr election_id complaint fs expire_in _141 _142 _143 _144 _145 _146 _147 _148 2 2 BLKDROP2 s3 POP // msg_value past_elections reward_addr election_id complaint fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine NOW // msg_value past_elections reward_addr election_id complaint fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at get_complaint_prices INLINECALLDICT // msg_value past_elections reward_addr election_id complaint fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit bit_price cell_price s0 s11 XCHG 12 PUSHPOW2 // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit bit_price complaint _54=4096 SDATASIZE // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit bit_price _152 _153 _154 s2 POP // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit bit_price refs bits 10 PUSHPOW2 // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit bit_price refs bits _57=1024 ADD // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit bit_price refs _58 ROT // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit refs _58 bit_price MUL // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit refs _59 SWAP // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit _59 refs 2 ADDCONST // msg_value past_elections reward_addr election_id cell_price fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit _59 _61 s0 s11 XCHG2 // msg_value past_elections reward_addr election_id _59 fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit _61 cell_price MUL // msg_value past_elections reward_addr election_id _59 fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at deposit _62 s1 s10 XCHG // msg_value past_elections reward_addr election_id deposit fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at _59 _62 ADD // msg_value past_elections reward_addr election_id deposit fs expire_in validator_pubkey description suggested_fine_part severity suggested_fine created_at pps s0 s7 XCHG2 // msg_value past_elections reward_addr election_id deposit fs created_at validator_pubkey description suggested_fine_part severity suggested_fine pps expire_in MUL // msg_value past_elections reward_addr election_id deposit fs created_at validator_pubkey description suggested_fine_part severity suggested_fine _64 s0 s8 XCHG2 // msg_value past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity _64 deposit ADD // msg_value past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity paid DUP 30 PUSHPOW2 // msg_value past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity paid paid _68 ADD // msg_value past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity paid _69 s0 s12 XCHG2 // paid past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity _69 msg_value LESS // paid past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity _70 IFJMP:<{ // paid past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity 11 BLKDROP // -5 PUSHINT // _71=-5 }> // paid past_elections reward_addr election_id suggested_fine fs created_at validator_pubkey description suggested_fine_part severity s4 s0 s3 XC2PU s9 s11 s7 XCPU2 s7 PUSH // paid past_elections validator_pubkey election_id suggested_fine fs suggested_fine_part validator_pubkey description created_at severity reward_addr paid suggested_fine suggested_fine_part pack_complaint INLINECALLDICT // paid past_elections validator_pubkey election_id suggested_fine fs suggested_fine_part _73 ENDC // paid past_elections validator_pubkey election_id suggested_fine fs suggested_fine_part complaint s0 s2 XCHG // paid past_elections validator_pubkey election_id suggested_fine complaint suggested_fine_part fs unpack_past_election INLINECALLDICT // paid past_elections validator_pubkey election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses complaints s11 s3 XCPU 8 PUSHPOW2 // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses validator_pubkey frozen_dict _85=256 DICTUGET NULLSWAPIFNOT // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses fs f IFNOTJMP:<{ // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses fs 14 BLKDROP // -6 PUSHINT // _87=-6 }> // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses fs 320 PUSHINT // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses fs _91 SDSKIPFIRST // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses fs LDGRAMS // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses _165 _164 DROP // paid past_elections complaints election_id suggested_fine complaint suggested_fine_part unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses validator_stake s0 s7 PUXC // paid past_elections complaints election_id suggested_fine complaint validator_stake unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses validator_stake suggested_fine_part 32 MULRSHIFT# // paid past_elections complaints election_id suggested_fine complaint validator_stake unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses _100 s1 s9 XCHG // paid past_elections complaints election_id bonuses complaint validator_stake unfreeze_at stake_held vset_hash frozen_dict total_stake suggested_fine _100 ADD // paid past_elections complaints election_id bonuses complaint validator_stake unfreeze_at stake_held vset_hash frozen_dict total_stake fine s0 s6 PUXC // paid past_elections complaints election_id bonuses complaint fine unfreeze_at stake_held vset_hash frozen_dict total_stake fine validator_stake GREATER // paid past_elections complaints election_id bonuses complaint fine unfreeze_at stake_held vset_hash frozen_dict total_stake _102 IFJMP:<{ // paid past_elections complaints election_id bonuses complaint fine unfreeze_at stake_held vset_hash frozen_dict total_stake 12 BLKDROP // -7 PUSHINT // _103=-7 }> // paid past_elections complaints election_id bonuses complaint fine unfreeze_at stake_held vset_hash frozen_dict total_stake s5 s11 XCPU // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict fine paid LEQ // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict _104 IFJMP:<{ // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict 11 BLKDROP // -8 PUSHINT // _105=-8 }> // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict PUSHNULL // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict _107 0 PUSHINT // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict _107 _108=0 s0 s7 PUSH2 3 -ROLL // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict complaint _107 _108=0 _109=0 pack_complaint_status INLINECALLDICT // paid past_elections complaints election_id bonuses complaint total_stake unfreeze_at stake_held vset_hash frozen_dict cstatus s0 s6 XCHG // paid past_elections complaints election_id bonuses cstatus total_stake unfreeze_at stake_held vset_hash frozen_dict complaint HASHCU // paid past_elections complaints election_id bonuses cstatus total_stake unfreeze_at stake_held vset_hash frozen_dict cpl_id s6 s0 s9 XCHG3 8 PUSHPOW2 // paid past_elections frozen_dict election_id bonuses vset_hash total_stake unfreeze_at stake_held cstatus cpl_id complaints _114=256 DICTUADDB // paid past_elections frozen_dict election_id bonuses vset_hash total_stake unfreeze_at stake_held complaints _113 IFNOTJMP:<{ // paid past_elections frozen_dict election_id bonuses vset_hash total_stake unfreeze_at stake_held complaints 10 BLKDROP // -9 PUSHINT // _116=-9 }> // paid past_elections frozen_dict election_id bonuses vset_hash total_stake unfreeze_at stake_held complaints s6 s5 s0 XCHG3 s3 s7 XCHG s2 s7 XCHG // paid past_elections election_id unfreeze_at stake_held vset_hash frozen_dict total_stake bonuses complaints pack_past_election INLINECALLDICT // paid past_elections election_id _118 s0 s2 XCHG 32 PUSHINT // paid _118 election_id past_elections _119=32 DICTUSETB // paid past_elections load_data INLINECALLDICT // paid past_elections _168 _169 _170 _171 _172 _173 s3 POP // paid past_elections elect credits active_hash grams active_id s4 s5 XCHG s3 s4 XCHG ROT // paid elect credits past_elections grams active_id active_hash store_data INLINECALLDICT }> punish PROCREF:<{ // credits frozen complaint CTOS // credits frozen _11 unpack_complaint INLINECALLDICT // credits frozen _62 _63 _64 _65 _66 _67 _68 _69 s4 POP s4 POP s4 POP // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr s4 s5 PUSH2 8 PUSHPOW2 // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr validator_pubkey frozen _15=256 DICTUGET NULLSWAPIFNOT // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr cs f IFNOTJMP:<{ // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr cs 6 BLKDROP // credits frozen 0 PUSHINT // credits frozen _17=0 }> // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr cs 256 LDU // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr _22 cs 64 LDU // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr _22 _25 cs LDGRAMS // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr _22 _25 _28 cs 1 LDI // credits frozen validator_pubkey paid suggested_fine suggested_fine_part reward_addr addr weight stake banned cs ENDS s1 s5 PUXC // credits frozen validator_pubkey paid suggested_fine banned reward_addr addr weight stake stake suggested_fine_part 32 MULRSHIFT# // credits frozen validator_pubkey paid suggested_fine banned reward_addr addr weight stake _38 s1 s6 XCHG // credits frozen validator_pubkey paid stake banned reward_addr addr weight suggested_fine _38 ADD // credits frozen validator_pubkey paid stake banned reward_addr addr weight _39 s5 s(-1) PUXC // credits frozen validator_pubkey paid stake banned reward_addr addr weight stake _39 MIN // credits frozen validator_pubkey paid stake banned reward_addr addr weight fine s5 s5 XCPU // credits frozen validator_pubkey paid fine banned reward_addr addr weight stake fine SUB // credits frozen validator_pubkey paid fine banned reward_addr addr weight stake s0 s2 XCHG NEWC // credits frozen validator_pubkey paid fine banned reward_addr stake weight addr _43 256 STU // credits frozen validator_pubkey paid fine banned reward_addr stake weight _45 64 STU // credits frozen validator_pubkey paid fine banned reward_addr stake _47 SWAP // credits frozen validator_pubkey paid fine banned reward_addr _47 stake STGRAMS // credits frozen validator_pubkey paid fine banned reward_addr _48 s1 s2 XCHG // credits frozen validator_pubkey paid fine reward_addr banned _48 1 STI // credits frozen validator_pubkey paid fine reward_addr _50 s0 s4 s5 XCHG3 8 PUSHPOW2 // credits fine reward_addr paid _50 validator_pubkey frozen _51=256 DICTUSETB // credits fine reward_addr paid frozen s3 PUSH // credits fine reward_addr paid frozen fine 3 RSHIFT# // credits fine reward_addr paid frozen _55 s0 s2 XCHG // credits fine reward_addr _55 frozen paid 3 LSHIFT# // credits fine reward_addr _55 frozen _57 s1 s2 XCHG // credits fine reward_addr frozen _55 _57 MIN // credits fine reward_addr frozen reward s3 s3 XCPU // credits reward reward_addr frozen fine reward SUB // credits reward reward_addr frozen fine s4 s4 s3 XCHG3 // frozen fine credits reward_addr reward ~credit_to INLINECALLDICT // frozen fine credits -ROT // credits frozen fine }> register_vote PROCREF:<{ // complaints chash idx weight s2 s3 PUSH2 8 PUSHPOW2 // complaints chash idx weight chash complaints _6=256 DICTUGET NULLSWAPIFNOT // complaints chash idx weight cstatus found? IFNOTJMP:<{ // complaints chash idx weight cstatus 4 BLKDROP // complaints PUSHNULL // complaints _8 -1 PUSHINT // complaints _8 _9=-1 }> // complaints chash idx weight cstatus get_current_vset INLINECALLDICT // complaints chash idx weight cstatus _53 _54 _55 DROP // complaints chash idx weight cstatus cur_vset total_weight SWAP // complaints chash idx weight cstatus total_weight cur_vset HASHCU // complaints chash idx weight cstatus total_weight cur_vset_id s0 s2 XCHG // complaints chash idx weight cur_vset_id total_weight cstatus unpack_complaint_status INLINECALLDICT // complaints chash idx weight cur_vset_id total_weight complaint voters vset_id weight_remaining s1 s5 PUSH2 // complaints chash idx weight cur_vset_id total_weight complaint voters vset_id weight_remaining vset_id cur_vset_id NEQ // complaints chash idx weight cur_vset_id total_weight complaint voters vset_id weight_remaining _21 IF:<{ // complaints chash idx weight cur_vset_id total_weight complaint voters vset_id weight_remaining 3 BLKDROP // complaints chash idx weight vset_id total_weight complaint PUSHNULL // complaints chash idx weight vset_id total_weight complaint voters s0 s2 XCHG 3 PUSHINT // complaints chash idx weight vset_id voters complaint total_weight _24=3 1 LSHIFT#DIV // complaints chash idx weight vset_id voters complaint weight_remaining s0 s2 XCHG // complaints chash idx weight vset_id weight_remaining complaint voters }>ELSE<{ s4 POP s4 POP // complaints chash idx weight vset_id weight_remaining complaint voters }> s5 s0 PUSH2 16 PUSHINT // complaints chash idx weight vset_id weight_remaining complaint voters idx voters _28=16 DICTUGET NULLSWAPIFNOT // complaints chash idx weight vset_id weight_remaining complaint voters _60 _61 NIP // complaints chash idx weight vset_id weight_remaining complaint voters found? IFJMP:<{ // complaints chash idx weight vset_id weight_remaining complaint voters 7 BLKDROP // complaints PUSHNULL // complaints _30 0 PUSHINT // complaints _30 _31=0 }> // complaints chash idx weight vset_id weight_remaining complaint voters NOW // complaints chash idx weight vset_id weight_remaining complaint voters _33 NEWC // complaints chash idx weight vset_id weight_remaining complaint voters _33 _34 32 STU // complaints chash idx weight vset_id weight_remaining complaint voters _36 s0 s6 s6 XCHG3 16 PUSHINT // complaints chash complaint weight vset_id weight_remaining _36 idx voters _37=16 DICTUSETB // complaints chash complaint weight vset_id weight_remaining voters s0 s0 s3 XCPUXC // complaints chash complaint old_wr vset_id voters weight_remaining weight SUB // complaints chash complaint old_wr vset_id voters weight_remaining s3 s3 XCPU // complaints chash complaint weight_remaining vset_id voters old_wr weight_remaining XOR // complaints chash complaint weight_remaining vset_id voters old_wr s4 PUSH s3 s3 XCHG2 s0 s4 XCHG // complaints chash complaint old_wr complaint voters vset_id weight_remaining pack_complaint_status INLINECALLDICT // complaints chash complaint old_wr _43 s0 s3 s4 XCHG3 8 PUSHPOW2 // complaint old_wr _43 chash complaints _44=256 DICTUSETB // complaint old_wr complaints SWAP // complaint complaints old_wr -1 GTINT // complaint complaints _47 IFJMP:<{ // complaint complaints NIP // complaints PUSHNULL // complaints _48 1 PUSHINT // complaints _48 _49=1 }> // complaint complaints SWAP 2 PUSHINT // complaints complaint _50=2 }> proceed_register_vote PROCREF:<{ // election_id chash idx weight load_data INLINECALLDICT // election_id chash idx weight elect credits past_elections grams active_id active_hash s9 s3 PUSH2 32 PUSHINT // election_id chash idx weight elect credits past_elections grams active_id active_hash election_id past_elections _13=32 DICTUGET NULLSWAPIFNOT // election_id chash idx weight elect credits past_elections grams active_id active_hash _43 _44 s11 POP // f chash idx weight elect credits past_elections grams active_id active_hash fs s0 s10 XCHG // fs chash idx weight elect credits past_elections grams active_id active_hash f IFNOTJMP:<{ // fs chash idx weight elect credits past_elections grams active_id active_hash 10 BLKDROP // -2 PUSHINT // _15=-2 }> // fs chash idx weight elect credits past_elections grams active_id active_hash s0 s9 XCHG // active_hash chash idx weight elect credits past_elections grams active_id fs unpack_past_election INLINECALLDICT // active_hash chash idx weight elect credits past_elections grams active_id _45 _46 _47 _48 _49 _50 _51 s4 POP 2DROP 2 2 BLKDROP2 // active_hash chash idx weight elect credits past_elections grams active_id complaints frozen_dict s9 s3 s7 XCHG3 s1 s8 XCHG // active_hash active_id grams frozen_dict elect credits past_elections complaints chash idx weight register_vote INLINECALLDICT // active_hash active_id grams frozen_dict elect credits past_elections _52 _53 _54 s2 POP // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint OVER // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint status 1 LESSINT // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint _28 IFJMP:<{ // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint s1 s8 XCHG 8 BLKDROP // status }> // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint DUP // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint accepted_complaint ISNULL // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint _29 IFNOT:<{ // active_hash active_id grams frozen_dict elect credits past_elections status accepted_complaint s3 s5 s0 XCHG3 // active_hash active_id grams status elect past_elections credits frozen_dict accepted_complaint punish INLINECALLDICT // active_hash active_id grams status elect past_elections _55 _56 _57 NIP // active_hash active_id grams status elect past_elections credits fine s1 s5 XCHG // active_hash active_id credits status elect past_elections grams fine ADD // active_hash active_id credits status elect past_elections grams s4 s4 XCHG2 // active_hash active_id grams status elect credits past_elections }>ELSE<{ DROP s4 POP // active_hash active_id grams status elect credits past_elections }> s5 s1 s3 XCHG3 s4 s4 s6 XCHG3 // status elect credits past_elections grams active_id active_hash store_data INLINECALLDICT }> 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 _123 _122 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 INLINECALLDICT }> // 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 INLINECALLDICT }> // 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 INLINECALLDICT }> // msg_value s_addr op query_id in_msg s2 PUSH 1197831204 PUSHINT // msg_value s_addr op query_id in_msg op _30=1197831204 EQUAL // msg_value s_addr op query_id in_msg _31 IFJMP:<{ // msg_value s_addr op query_id in_msg s4 POP // in_msg s_addr op query_id s1 s3 XCHG // op s_addr in_msg query_id recover_stake INLINECALLDICT }> // msg_value s_addr op query_id in_msg s2 PUSH 1313042276 PUSHINT // msg_value s_addr op query_id in_msg op _33=1313042276 EQUAL // msg_value s_addr op query_id in_msg _34 IFJMP:<{ // msg_value s_addr op query_id in_msg s4 POP // in_msg s_addr op query_id s2 s3 s3 PUXCPU // query_id s_addr op s_addr in_msg query_id upgrade_code INLINECALLDICT // 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 }> s0 s3 s3 XCHG3 0 PUSHINT 64 PUSHINT // s_addr _37 query_id op _40=0 _41=64 send_message_back INLINECALLDICT }> // msg_value s_addr op query_id in_msg s2 PUSH 4000730955 PUSHINT // msg_value s_addr op query_id in_msg op _44=4000730955 EQUAL // msg_value s_addr op query_id in_msg cfg_ok s3 PUSH 4000730991 PUSHINT // msg_value s_addr op query_id in_msg cfg_ok op _46=4000730991 EQUAL // msg_value s_addr op query_id in_msg cfg_ok _47 s1 s(-1) PUXC // msg_value s_addr op query_id in_msg cfg_ok cfg_ok _47 OR // msg_value s_addr op query_id in_msg cfg_ok _48 IFJMP:<{ // msg_value s_addr op query_id in_msg cfg_ok s3 POP s4 POP // in_msg s_addr cfg_ok query_id s3 s0 s0 XCHG3 // s_addr in_msg query_id cfg_ok config_set_confirmed INLINECALLDICT }> // msg_value s_addr op query_id in_msg cfg_ok DROP // msg_value s_addr op query_id in_msg s2 PUSH 1382499184 PUSHINT // msg_value s_addr op query_id in_msg op _50=1382499184 EQUAL // msg_value s_addr op query_id in_msg _51 IFJMP:<{ // msg_value s_addr op query_id in_msg s3 s0 s4 PUXC2 // query_id s_addr op s_addr in_msg msg_value register_complaint CALLDICT // query_id s_addr op price 64 PUSHINT // query_id s_addr op price mode=64 OVER // query_id s_addr op price mode=64 price NEGATE // query_id s_addr op price mode=64 ans_tag s2 PUSH // query_id s_addr op price mode=64 ans_tag price -1 GTINT // query_id s_addr op price mode=64 ans_tag _59 IF:<{ // query_id s_addr op price mode=64 ans_tag 2DROP // query_id s_addr op price 4 PUSHINT // query_id s_addr op price _60=4 RAWRESERVE 0 PUSHINT // query_id s_addr op ans_tag=0 7 PUSHPOW2 // query_id s_addr op ans_tag=0 mode=128 }>ELSE<{ s2 POP // query_id s_addr op ans_tag mode }> SWAP 4066861904 PUSHINT // query_id s_addr op mode ans_tag _64=4066861904 ADD // query_id s_addr op mode _65 s0 s3 XCHG s4 s4 s4 XCHG3 0 PUSHINT SWAP // s_addr _65 query_id op _66=0 mode send_message_back INLINECALLDICT }> // msg_value s_addr op query_id in_msg s4 POP // in_msg s_addr op query_id OVER 1450460016 PUSHINT // in_msg s_addr op query_id op _68=1450460016 EQUAL // in_msg s_addr op query_id _69 IFJMP:<{ // in_msg s_addr op query_id s0 s3 XCHG 9 PUSHPOW2 // query_id s_addr op in_msg _72=512 LDSLICEX // query_id s_addr op signature in_msg DUP // query_id s_addr op signature msg_body in_msg 32 LDU // query_id s_addr op signature msg_body _79 in_msg 16 LDU // query_id s_addr op signature msg_body _79 _82 in_msg 32 LDU // query_id s_addr op signature msg_body _79 _82 _85 in_msg 256 LDU // query_id s_addr op signature msg_body sign_tag idx elect_id chash in_msg ENDS s0 s3 XCHG 1450459984 PUSHINT // query_id s_addr op signature msg_body chash idx elect_id sign_tag _93=1450459984 EQUAL // query_id s_addr op signature msg_body chash idx elect_id _94 37 THROWIFNOT OVER // query_id s_addr op signature msg_body chash idx elect_id idx get_validator_descr INLINECALLDICT // query_id s_addr op signature msg_body chash idx elect_id _138 _139 DROP // query_id s_addr op signature msg_body chash idx elect_id vdescr unpack_validator_descr INLINECALLDICT // query_id s_addr op signature msg_body chash idx elect_id val_pubkey weight s5 s6 s6 XCHG3 // query_id s_addr op weight elect_id chash idx msg_body signature val_pubkey CHKSIGNS // query_id s_addr op weight elect_id chash idx _103 34 THROWIFNOT 3 ROLL // query_id s_addr op elect_id chash idx weight proceed_register_vote INLINECALLDICT // query_id s_addr op res 3597947456 PUSHINT // query_id s_addr op res _107=3597947456 ADD // query_id s_addr op _108 s0 s3 s3 XCHG3 0 PUSHINT 64 PUSHINT // s_addr _108 query_id op _109=0 _110=64 send_message_back INLINECALLDICT }> // in_msg s_addr op query_id s3 POP // query_id s_addr op DUP 31 PUSHPOW2 // query_id s_addr op op _114 AND // query_id s_addr op _115 IFNOTJMP:<{ // query_id s_addr op 32 PUSHPOW2DEC // query_id s_addr op _116=4294967295 s0 s3 s3 XCHG3 0 PUSHINT 64 PUSHINT // s_addr _116=4294967295 query_id op _117=0 _118=64 send_message_back INLINECALLDICT }> // query_id s_addr op 3 BLKDROP // }> postpone_elections PROC:<{ // FALSE // _0 }> compute_total_stake PROCREF:<{ // 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 _256 _255 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 NULLSWAPIFNOT2 // 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 s0 s4 XCHG NEWC // 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 s3 s1 s3 XCHG3 // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey }>ELSE<{ s2 POP // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict f pubkey }> SWAP // credits members min_stake max_stake min_total_stake max_stake_factor max_validators min_validators n sdict pubkey f NOT // 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 0 PUSHINT // credits _86 _87=0 NEWDICT // credits _86 _87=0 _88 s1 s1 PUSH2 // credits _86 _87=0 _88 _89=0 _90=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 _101 DICTREMMIN NULLSWAPIFNOT2 // 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 _106 key s1 s9 XCPU // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f key _106 max_stake MIN // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f key _109 SWAP // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _109 key 32 LDU // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _109 _282 _281 NIP // credits members min_stake max_stake min_total_stake l min_validators n sdict cs f _109 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 _118 cs 256 LDU // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake _118 _286 _285 NIP // credits members min_stake max_stake min_total_stake l min_validators n sdict pubkey f stake _118 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 _126 s0 s5 XCHG2 // credits members min_stake max_stake min_total_stake f min_validators n sdict _126 l CONS // 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 }>ELSE<{ 2 1 BLKDROP2 // 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 _128 s1 s4 XCHG // credits members min_stake max_stake min_total_stake sdict min_validators n l _128 }> // 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 _136=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 _139 l1 SWAP // credits members min_stake n min_total_stake l i m best_stake l1 _139 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 _145 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 INLINECALLDICT // 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 _148 IF:<{ // credits members min_stake n min_total_stake l i m best_stake l1 tot_stake 2 2 BLKDROP2 // 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 s0 s2 XCHG // credits members min_stake n min_total_stake l i m best_stake l1 }>ELSE<{ DROP // credits members min_stake n min_total_stake l i m best_stake l1 }> }>ELSE<{ s4 POP // credits members min_stake n min_total_stake l i m best_stake l1 }> s3 s6 PUSH2 // credits members min_stake n min_total_stake l i m best_stake l1 i n GEQ // credits members min_stake n min_total_stake l i m best_stake l1 _149 s1 s3 XCHG // credits members min_stake n min_total_stake l i l1 best_stake m _149 }> // credits members min_stake n min_total_stake l i l1 best_stake m s6 POP s6 POP 2DROP // 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 _151 s4 s2 PUXC // credits members best_stake m _151 l best_stake min_total_stake LESS // credits members best_stake m _151 l _152 s1 s2 XCHG // credits members best_stake m l _151 _152 OR // credits members best_stake m l _153 IFJMP:<{ // credits members best_stake m l 4 BLKDROP // credits NEWDICT // credits _154 0 PUSHINT // credits _154 _155=0 NEWDICT // credits _154 _155=0 _156 s1 s1 PUSH2 // credits _154 _155=0 _156 _157=0 _158=0 }> // credits members best_stake m l s0 s1 PUSH2 // 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 s0 s0 PUSH2 // credits members best_stake m l m_stake i=0 tot_stake=0 tot_weight=0 NEWDICT // credits members best_stake m l m_stake i=0 tot_stake=0 tot_weight=0 vset NEWDICT // credits members best_stake m l m_stake i=0 tot_stake=0 tot_weight=0 vset frozen UNTIL:<{ s0 s6 XCHG // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l UNCONS // credits members best_stake m frozen m_stake i tot_stake tot_weight vset _181 l SWAP // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l _181 4 UNTUPLE // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr s1 s13 PUSH2 8 PUSHPOW2 // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr pubkey members _186=256 DICTUGET NULLSWAPIFNOT // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr val f 61 THROWIFNOT LDGRAMS // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr _298 _297 NIP // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr val 64 LDU // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr _300 _299 NIP // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr val 256 PLDU // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr src_addr s9 s12 PUSH2 // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr src_addr i m LESS // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr src_addr _200 IF:<{ // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake max_f pubkey adnl_addr src_addr s3 s10 XCPU // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr pubkey adnl_addr max_f m_stake MUL // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr pubkey adnl_addr _202 16 RSHIFT# // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr pubkey adnl_addr _204 s4 s(-1) PUXC // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr pubkey adnl_addr stake _204 MIN // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr pubkey adnl_addr true_stake s4 s4 XCPU // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l true_stake src_addr pubkey adnl_addr stake true_stake SUB // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l true_stake src_addr pubkey adnl_addr stake s4 PUSH // credits members best_stake m frozen m_stake i tot_stake tot_weight 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 tot_weight vset l true_stake src_addr pubkey adnl_addr stake _209 s14 PUSH // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l true_stake src_addr pubkey adnl_addr stake _209 best_stake DIV // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l true_stake src_addr pubkey adnl_addr stake weight s9 s5 XCPU // credits members best_stake m frozen m_stake i weight tot_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 tot_weight vset l true_stake src_addr pubkey adnl_addr stake tot_stake s8 s9 XCPU // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight weight ADD // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight 2390828938 PUSHINT // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 s3 PUSH // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 adnl_addr IF:<{ // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 115 PUSHINT // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 _215=115 }>ELSE<{ // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 83 PUSHINT // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 _215=83 }> NEWC // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 _215 _218 8 STU // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _214=2390828938 _220 32 STU // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _222 s4 s(-1) PUXC // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight pubkey _222 256 STU // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight _224 s10 s(-1) PUXC // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight weight _224 64 STU // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight vinfo s3 PUSH // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight vinfo adnl_addr IF:<{ // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey adnl_addr stake tot_weight vinfo s1 s3 XCHG // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey tot_weight stake adnl_addr vinfo 256 STU // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey tot_weight stake vinfo s0 s2 XCHG // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey vinfo stake tot_weight }>ELSE<{ s3 POP // credits members best_stake m frozen m_stake i weight tot_stake vset l true_stake src_addr pubkey vinfo stake tot_weight }> s2 s10 s7 XCPUXC 16 PUSHINT // credits members best_stake m frozen m_stake i weight tot_stake tot_weight l true_stake src_addr pubkey stake vinfo i vset _231=16 DICTUSETB // credits members best_stake m frozen m_stake i weight tot_stake tot_weight l true_stake src_addr pubkey stake vset FALSE // credits members best_stake m frozen m_stake i weight tot_stake tot_weight l true_stake src_addr pubkey stake vset _234 s4 PUSH NEWC // credits members best_stake m frozen m_stake i weight tot_stake tot_weight l true_stake src_addr pubkey stake vset _234 src_addr _235 256 STU // credits members best_stake m frozen m_stake i weight tot_stake tot_weight l true_stake src_addr pubkey stake vset _234 _237 s1 s10 XCHG // credits members best_stake m frozen m_stake i _234 tot_stake tot_weight l true_stake src_addr pubkey stake vset weight _237 64 STU // credits members best_stake m frozen m_stake i _234 tot_stake tot_weight l true_stake src_addr pubkey stake vset _239 s0 s5 XCHG2 // credits members best_stake m frozen m_stake i _234 tot_stake tot_weight l vset src_addr pubkey stake _239 true_stake STGRAMS // credits members best_stake m frozen m_stake i _234 tot_stake tot_weight l vset src_addr pubkey stake _240 s1 s8 XCHG // credits members best_stake m frozen m_stake i stake tot_stake tot_weight l vset src_addr pubkey _234 _240 1 STI // credits members best_stake m frozen m_stake i stake tot_stake tot_weight l vset src_addr pubkey _242 s0 s1 s10 XCHG3 8 PUSHPOW2 // credits members best_stake m src_addr m_stake i stake tot_stake tot_weight l vset _242 pubkey frozen _243=256 DICTUSETB // credits members best_stake m src_addr m_stake i stake tot_stake tot_weight l vset frozen s0 s8 XCHG s4 s5 XCHG s1 s3 XCHG s1 s4 XCHG // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr }>ELSE<{ 3 1 BLKDROP2 // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr }> OVER // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr stake IF:<{ // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l stake src_addr s12 s0 s0 XCHG3 // l members best_stake m frozen m_stake i tot_stake tot_weight vset credits src_addr stake ~credit_to INLINECALLDICT // l members best_stake m frozen m_stake i tot_stake tot_weight vset credits s0 s10 XCHG // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l }>ELSE<{ 2DROP // credits members best_stake m frozen m_stake i tot_stake tot_weight vset l }> s0 s4 XCHG // credits members best_stake m frozen m_stake l tot_stake tot_weight vset i INC // credits members best_stake m frozen m_stake l tot_stake tot_weight vset i s4 PUSH // credits members best_stake m frozen m_stake l tot_stake tot_weight vset i l ISNULL // credits members best_stake m frozen m_stake l tot_stake tot_weight vset i _249 s1 s5 XCHG s1 s7 XCHG // credits members best_stake m l m_stake i tot_stake tot_weight vset frozen _249 }> // credits members best_stake m l m_stake i tot_stake tot_weight vset frozen s4 POP s4 POP s4 POP s6 POP // credits tot_stake best_stake m tot_weight vset frozen s5 s4 PUXC // credits tot_stake frozen m tot_weight vset tot_stake best_stake EQUAL // credits tot_stake frozen m tot_weight vset _251 49 THROWIFNOT s4 s4 XCHG2 s3 s1 s3 XCHG3 // credits vset tot_weight frozen tot_stake m }> conduct_elections PROC:<{ // ds elect credits SWAP // ds credits elect unpack_elect INLINECALLDICT // ds credits _121 _122 _123 _124 _125 _126 _127 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 PUSH s4 s9 XCHG 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 total_weight frozen total_stakes cnt DUP // ds members elect_at elect_close min_stake total_stake credits vdict total_weight frozen total_stakes cnt cnt 0 EQINT // ds members elect_at elect_close min_stake total_stake credits vdict total_weight frozen total_stakes cnt failed DUP // ds members elect_at elect_close min_stake total_stake credits vdict total_weight frozen total_stakes cnt failed failed NOT // ds members elect_at elect_close min_stake total_stake credits vdict total_weight frozen total_stakes cnt failed finished s11 PUSH s0 s6 XCHG s5 s11 XCHG s4 s10 XCHG s3 s9 XCHG s13 s13 s13 XCHG3 // ds total_weight elect_at frozen total_stakes cnt credits vdict elect_at elect_close min_stake total_stake members failed finished pack_elect INLINECALLDICT // ds total_weight elect_at frozen total_stakes cnt credits vdict elect s3 PUSH // ds total_weight elect_at frozen total_stakes cnt credits vdict elect cnt IFNOTJMP:<{ // ds total_weight elect_at frozen total_stakes cnt credits vdict elect NIP 5 2 BLKDROP2 NEWC // ds credits elect _49 STDICT // ds credits _50 STDICT // ds _51 SWAP // _51 ds STSLICER // _52 ENDC // _53 c4 POP postpone_elections CALLDICT // _55 }> // ds total_weight elect_at frozen total_stakes cnt credits vdict elect get_validator_conf CALLDICT // ds total_weight elect_at frozen total_stakes cnt credits vdict elect _142 _143 _144 _145 s2 POP // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held elect_end_before NOW // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held elect_end_before _62 SWAP // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held _62 elect_end_before ADD // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held _63 -60 ADDCONST // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held _65 s9 PUSH // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held _65 elect_at MAX // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start 16 PUSHINT // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _68=16 CONFIGOPTPARAM // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _69 CTOS // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _70 16 PUSHINT // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _70 _71=16 SDSKIPFIRST // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _72 16 PLDU // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start main_validators s7 s(-1) PUXC // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start cnt main_validators MIN // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 s1 s3 PUSH2 // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 start elect_for ADD // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _77 18 PUSHINT // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _77 _78=18 NEWC // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _77 _78=18 _79 8 STU // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _77 _81 s3 s(-1) PUXC // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _77 start _81 32 STU // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _77 _83 32 STU // ds total_weight elect_at frozen total_stakes cnt credits vdict elect elect_for stake_held start _76 _85 s1 s8 XCHG // ds total_weight elect_at frozen total_stakes _76 credits vdict elect elect_for stake_held start cnt _85 16 STU // ds total_weight elect_at frozen total_stakes _76 credits vdict elect elect_for stake_held start _87 s1 s7 XCHG // ds total_weight elect_at frozen total_stakes start credits vdict elect elect_for stake_held _76 _87 16 STU // ds total_weight elect_at frozen total_stakes start credits vdict elect elect_for stake_held _89 s1 s10 XCHG // ds stake_held elect_at frozen total_stakes start credits vdict elect elect_for total_weight _89 64 STU // ds stake_held elect_at frozen total_stakes start credits vdict elect elect_for _91 s1 s3 XCHG // ds stake_held elect_at frozen total_stakes start credits elect_for elect vdict _91 STDICT // ds stake_held elect_at frozen total_stakes start credits elect_for elect _92 ENDC // ds stake_held elect_at frozen total_stakes start credits elect_for elect vset 0 PUSHINT // ds stake_held elect_at frozen total_stakes start credits elect_for elect vset _95=0 CONFIGOPTPARAM // ds stake_held elect_at frozen total_stakes start credits elect_for elect vset _96 CTOS // ds stake_held elect_at frozen total_stakes start credits elect_for elect vset _97 256 PLDU // ds stake_held elect_at frozen total_stakes start credits elect_for elect vset config_addr s1 s8 PUSH2 // ds stake_held elect_at frozen total_stakes start credits elect_for elect vset config_addr vset elect_at send_validator_set_to_config INLINECALLDICT s0 s9 XCHG // vset stake_held elect_at frozen total_stakes start credits elect_for elect ds LDDICT // vset stake_held elect_at frozen total_stakes start credits elect_for elect past_elections ds s5 s3 XCHG2 // vset stake_held elect_at frozen total_stakes past_elections credits ds elect start elect_for ADD // vset stake_held elect_at frozen total_stakes past_elections credits ds elect _105 s8 PUSH // vset stake_held elect_at frozen total_stakes past_elections credits ds elect _105 stake_held ADD // vset stake_held elect_at frozen total_stakes past_elections credits ds elect _106 s0 s9 XCHG // _106 stake_held elect_at frozen total_stakes past_elections credits ds elect vset HASHCU // _106 stake_held elect_at frozen total_stakes past_elections credits ds elect _107 s4 s9 XCHG s3 s8 XCHG s0 s6 s5 XCHG3 0 PUSHINT PUSHNULL // past_elections credits elect_at elect ds _106 stake_held _107 frozen total_stakes _108=0 _109 pack_past_election INLINECALLDICT // past_elections credits elect_at elect ds _110 s0 s3 s5 XCHG3 32 PUSHINT // elect credits ds _110 elect_at past_elections _111=32 DICTUSETB // elect credits ds past_elections s0 s3 XCHG NEWC // past_elections credits ds elect _113 STDICT // past_elections credits ds _114 s1 s2 XCHG // past_elections ds credits _114 STDICT // past_elections ds _115 s1 s2 XCHG // ds past_elections _115 STDICT // ds _116 SWAP // _116 ds STSLICER // _117 ENDC // _118 c4 POP TRUE // _120 }> update_active_vset_id PROC:<{ // load_data INLINECALLDICT // elect credits past_elections grams active_id active_hash 34 PUSHINT // elect credits past_elections grams active_id active_hash _8=34 CONFIGOPTPARAM // elect credits past_elections grams active_id active_hash _9 HASHCU // elect credits past_elections grams active_id active_hash cur_hash s0 s1 PUSH2 // elect credits past_elections grams active_id active_hash cur_hash cur_hash active_hash EQUAL // elect credits past_elections grams active_id active_hash cur_hash _11 IFJMP:<{ // elect credits past_elections grams active_id active_hash cur_hash 7 BLKDROP // FALSE // _12 }> // elect credits past_elections grams active_id active_hash cur_hash s2 PUSH // elect credits past_elections grams active_id active_hash cur_hash active_id IF:<{ // elect credits past_elections grams active_id active_hash cur_hash s2 s4 PUSH2 32 PUSHINT // elect credits past_elections grams active_id active_hash cur_hash active_id past_elections _15=32 DICTUGET NULLSWAPIFNOT // elect credits past_elections grams active_id active_hash cur_hash fs f IF:<{ // elect credits past_elections grams active_id active_hash cur_hash fs 32 LDU // elect credits past_elections grams active_id active_hash cur_hash _99 _98 NIP // elect credits past_elections grams active_id active_hash cur_hash fs DUP // elect credits past_elections grams active_id active_hash cur_hash fs0 fs 32 LDU // elect credits past_elections grams active_id active_hash cur_hash fs0 _24 fs 256 LDU // elect credits past_elections grams active_id active_hash cur_hash fs0 _24 _103 _102 DROP // elect credits past_elections grams active_id active_hash cur_hash fs0 stake_held hash s0 s4 XCHG2 // elect credits past_elections grams active_id stake_held cur_hash fs0 hash active_hash EQUAL // elect credits past_elections grams active_id stake_held cur_hash fs0 _31 57 THROWIFNOT NOW // elect credits past_elections grams active_id stake_held cur_hash fs0 _33 s0 s3 XCHG2 // elect credits past_elections grams active_id fs0 cur_hash _33 stake_held ADD // elect credits past_elections grams active_id fs0 cur_hash unfreeze_time NEWC // elect credits past_elections grams active_id fs0 cur_hash unfreeze_time _36 32 STU // elect credits past_elections grams active_id fs0 cur_hash _38 ROT // elect credits past_elections grams active_id cur_hash _38 fs0 STSLICER // elect credits past_elections grams active_id cur_hash _39 s0 s0 s4 XCHG3 32 PUSHINT // elect credits cur_hash grams _39 active_id past_elections _40=32 DICTUSETB // elect credits cur_hash grams past_elections s0 s2 XCHG // elect credits past_elections grams cur_hash }>ELSE<{ s1 s3 XCHG 3 BLKDROP // elect credits past_elections grams cur_hash }> }>ELSE<{ 2 1 BLKDROP2 // elect credits past_elections grams cur_hash }> -1 PUSHINT // elect credits past_elections grams cur_hash id=-1 UNTIL:<{ s3 PUSH 32 PUSHINT // elect credits past_elections grams cur_hash id past_elections _46=32 DICTUGETNEXT NULLSWAPIFNOT2 // elect credits past_elections grams cur_hash fs id f DUP // elect credits past_elections grams cur_hash fs id f f IF:<{ // elect credits past_elections grams cur_hash fs id f s0 s2 XCHG // elect credits past_elections grams cur_hash f id fs 64 LDU // elect credits past_elections grams cur_hash f id _50 fs 256 LDU // elect credits past_elections grams cur_hash f id tm hash fs s1 s5 PUSH2 // elect credits past_elections grams cur_hash f id tm hash fs hash cur_hash EQUAL // elect credits past_elections grams cur_hash f id tm hash fs _56 IF:<{ // elect credits past_elections grams cur_hash f id tm hash fs s4 POP // elect credits past_elections grams cur_hash fs id tm hash s0 s3 XCHG // elect credits past_elections grams cur_hash hash id tm fs LDDICT // elect credits past_elections grams cur_hash hash id tm _60 fs LDGRAMS // elect credits past_elections grams cur_hash hash id tm _60 _62 fs LDGRAMS // elect credits past_elections grams cur_hash hash id tm dict total_stake bonuses fs s8 PUSH // elect credits past_elections grams cur_hash hash id tm dict total_stake bonuses fs grams 3 RSHIFT# // elect credits past_elections grams cur_hash hash id tm dict total_stake bonuses fs amount s9 s9 XCPU // elect credits past_elections amount cur_hash hash id tm dict total_stake bonuses fs grams amount SUB // elect credits past_elections amount cur_hash hash id tm dict total_stake bonuses fs grams s2 s9 XCHG2 // elect credits past_elections grams cur_hash hash id tm dict total_stake fs bonuses amount ADD // elect credits past_elections grams cur_hash hash id tm dict total_stake fs bonuses s0 s4 XCHG NEWC // elect credits past_elections grams cur_hash hash id bonuses dict total_stake fs tm _72 64 STU // elect credits past_elections grams cur_hash hash id bonuses dict total_stake fs _74 s1 s6 XCHG // elect credits past_elections grams cur_hash fs id bonuses dict total_stake hash _74 256 STU // elect credits past_elections grams cur_hash fs id bonuses dict total_stake _76 s1 s2 XCHG // elect credits past_elections grams cur_hash fs id bonuses total_stake dict _76 STDICT // elect credits past_elections grams cur_hash fs id bonuses total_stake _77 SWAP // elect credits past_elections grams cur_hash fs id bonuses _77 total_stake STGRAMS // elect credits past_elections grams cur_hash fs id bonuses _78 SWAP // elect credits past_elections grams cur_hash fs id _78 bonuses STGRAMS // elect credits past_elections grams cur_hash fs id _79 ROT // elect credits past_elections grams cur_hash id _79 fs STSLICER // elect credits past_elections grams cur_hash id _80 s0 s0 s4 XCPUXC 32 PUSHINT // elect credits id grams cur_hash _80 id past_elections _81=32 DICTUSETB // elect credits id grams cur_hash past_elections s0 s3 XCHG FALSE SWAP // elect credits past_elections grams cur_hash f id }>ELSE<{ 3 BLKDROP // elect credits past_elections grams cur_hash f id }> }>ELSE<{ s2 POP // elect credits past_elections grams cur_hash f id }> SWAP // elect credits past_elections grams cur_hash id f NOT // elect credits past_elections grams cur_hash id _84 }> // elect credits past_elections grams cur_hash id DUP // elect credits past_elections grams cur_hash id id ISNULL // elect credits past_elections grams cur_hash id _85 IF:<{ // elect credits past_elections grams cur_hash id DROP // elect credits past_elections grams cur_hash 0 PUSHINT // elect credits past_elections grams cur_hash _86=0 }>ELSE<{ // elect credits past_elections grams cur_hash _86 }> // elect credits past_elections grams active_hash active_id SWAP // elect credits past_elections grams active_id active_hash store_data INLINECALLDICT TRUE // _89 }> cell_hash_eq? PROCREF:<{ // 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 INLINECALLDICT // ds credits _44 _45 _46 _47 _48 _49 _50 5 1 BLKDROP2 // 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? INLINECALLDICT // 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? INLINECALLDICT // 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 INLINECALLDICT // elect credits past_elections grams active_id active_hash -1 PUSHINT // elect credits past_elections grams active_id active_hash id=-1 UNTIL:<{ s4 PUSH 32 PUSHINT // elect credits past_elections grams active_id active_hash id past_elections _11=32 DICTUGETNEXT NULLSWAPIFNOT2 // elect credits past_elections grams active_id active_hash fs id f DUP // elect credits past_elections grams active_id active_hash fs id f f IF:<{ // elect credits past_elections grams active_id active_hash fs id f s0 s2 XCHG // elect credits past_elections grams active_id active_hash f id fs 32 LDU // elect credits past_elections grams active_id active_hash f id _39 _38 DROP // elect credits past_elections grams active_id active_hash f id unfreeze_at NOW // elect credits past_elections grams active_id active_hash f id unfreeze_at _17 LEQ // elect credits past_elections grams active_id active_hash f id _18 s1 s4 PUSH2 // elect credits past_elections grams active_id active_hash f id _18 id active_id NEQ // elect credits past_elections grams active_id active_hash f id _18 _19 AND // elect credits past_elections grams active_id active_hash f id _20 IF:<{ // elect credits past_elections grams active_id active_hash f id NIP // elect credits past_elections grams active_id active_hash id s5 s4 s4 XC2PU // elect active_hash id grams active_id credits past_elections id unfreeze_all INLINECALLDICT // elect active_hash id grams active_id credits past_elections unused_prizes s1 s4 XCHG // elect active_hash id past_elections active_id credits grams unused_prizes ADD // elect active_hash id past_elections active_id credits grams s6 s1 s3 PUSH3 s3 s5 s8 PUSH3 // elect active_hash id past_elections active_id credits grams elect credits past_elections grams active_id active_hash store_data INLINECALLDICT s0 s3 XCHG s5 s4 XCHG2 FALSE SWAP // elect credits past_elections grams active_id active_hash f id }> // elect credits past_elections grams active_id active_hash f id }>ELSE<{ s2 POP // elect credits past_elections grams active_id active_hash f id }> SWAP // elect credits past_elections grams active_id active_hash id f NOT // elect credits past_elections grams active_id active_hash id _26 }> // elect credits past_elections grams active_id active_hash id 6 1 BLKDROP2 // 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 _74 _75 _76 _77 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 _79 _78 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 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 _60=0 NEWDICT // ds credits min_stake elect_at elect_close _60=0 _61 s3 s4 XCHG s2 s3 XCHG FALSE FALSE // ds credits elect_at elect_close min_stake _60=0 _61 _62 _63 pack_elect INLINECALLDICT // ds credits elect NEWC // ds credits elect _65 STDICT // ds credits _66 STDICT // ds _67 SWAP // _67 ds STSLICER // _68 ENDC // _69 c4 POP TRUE // _71 }> 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 INLINECALLDICT // 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 INLINECALLDICT // _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 NULLSWAPIFNOT2 // 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 _31 s1 s(-1) PUXC // members l f id id _31 PAIR // members l f id _30 s0 s3 XCHG2 // members id f _30 l CONS // members id f l s0 s2 XCHG // members l f id }>ELSE<{ s2 POP // members l f id }> SWAP // members l id f NOT // members l id _34 }> // members l id DROP NIP // l }> participant_list_extended PROC:<{ // c4 PUSH // _1 CTOS // _2 PLDDICT // elect DUP // elect elect ISNULL // elect _4 IFJMP:<{ // elect DROP // 0 PUSHINT // _5=0 s0 s0 s0 PUSH3 // _5=0 _6=0 _7=0 _8=0 PUSHNULL // _5=0 _6=0 _7=0 _8=0 _9 s1 s1 PUSH2 // _5=0 _6=0 _7=0 _8=0 _9 _10=0 _11=0 }> // elect unpack_elect INLINECALLDICT // elect_at elect_close min_stake total_stake members failed finished PUSHNULL // elect_at elect_close min_stake total_stake members failed finished l 256 PUSHPOW2DEC // elect_at elect_close min_stake total_stake members failed finished l id UNTIL:<{ s4 PUSH 8 PUSHPOW2 // elect_at elect_close min_stake total_stake members failed finished l id members _34=256 DICTUGETPREV NULLSWAPIFNOT2 // elect_at elect_close min_stake total_stake members failed finished l cs id f DUP // elect_at elect_close min_stake total_stake members failed finished l cs id f f IF:<{ // elect_at elect_close min_stake total_stake members failed finished l cs id f s0 s2 XCHG // elect_at elect_close min_stake total_stake members failed finished l f id cs LDGRAMS // elect_at elect_close min_stake total_stake members failed finished l f id _41 cs 32 LDU // elect_at elect_close min_stake total_stake members failed finished l f id _41 _73 _72 NIP // elect_at elect_close min_stake total_stake members failed finished l f id _41 cs 32 LDU // elect_at elect_close min_stake total_stake members failed finished l f id _41 _46 cs 256 LDU // elect_at elect_close min_stake total_stake members failed finished l f id _41 _46 _49 cs 256 LDU // elect_at elect_close min_stake total_stake members failed finished l f id stake max_factor addr adnl_addr cs ENDS 4 TUPLE // elect_at elect_close min_stake total_stake members failed finished l f id _57 s1 s(-1) PUXC // elect_at elect_close min_stake total_stake members failed finished l f id id _57 PAIR // elect_at elect_close min_stake total_stake members failed finished l f id _56 s0 s3 XCHG2 // elect_at elect_close min_stake total_stake members failed finished id f _56 l CONS // elect_at elect_close min_stake total_stake members failed finished id f l s0 s2 XCHG // elect_at elect_close min_stake total_stake members failed finished l f id }>ELSE<{ s2 POP // elect_at elect_close min_stake total_stake members failed finished l f id }> SWAP // elect_at elect_close min_stake total_stake members failed finished l id f NOT // elect_at elect_close min_stake total_stake members failed finished l id _59 }> // elect_at elect_close min_stake total_stake members failed finished l id DROP s3 POP // elect_at elect_close min_stake total_stake l failed finished }> 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 }> }> past_election_ids PROC:<{ // load_data INLINECALLDICT // _19 _20 _21 _22 _23 _24 s3 s5 XCHG 5 BLKDROP // past_elections 32 PUSHPOW2 // past_elections id PUSHNULL // past_elections id list UNTIL:<{ s1 s2 XCPU 32 PUSHINT // past_elections list id past_elections _15=32 DICTUGETPREV NULLSWAPIFNOT2 // past_elections list _26 _25 _27 s2 POP // past_elections list f id OVER // past_elections list f id f IF:<{ // past_elections list f id s0 s2 PUXC // past_elections id f id list CONS // past_elections id f list s0 s2 XCHG // past_elections list f id }> // past_elections list f id SWAP // past_elections list id f NOT // past_elections list id _18 s1 s2 XCHG // past_elections id list _18 }> // past_elections id list 2 1 BLKDROP2 // list }> past_elections PROC:<{ // load_data INLINECALLDICT // _21 _22 _23 _24 _25 _26 s3 s5 XCHG 5 BLKDROP // past_elections 32 PUSHPOW2 // past_elections id PUSHNULL // past_elections id list UNTIL:<{ s1 s2 XCPU 32 PUSHINT // past_elections list id past_elections _15=32 DICTUGETPREV NULLSWAPIFNOT2 // past_elections list fs id found DUP // past_elections list fs id found found IF:<{ // past_elections list fs id found s0 s2 XCHG // past_elections list found id fs unpack_past_election INLINECALLDICT // past_elections list found id _30 _31 _32 _33 _34 _35 _36 s7 PUSH 7 -ROLL // past_elections list found id id _30 _31 _32 _33 _34 _35 _36 8 TUPLE // past_elections list found id _17 s0 s3 XCHG2 // past_elections id found _17 list CONS // past_elections id found list s0 s2 XCHG // past_elections list found id }>ELSE<{ s2 POP // past_elections list found id }> SWAP // past_elections list id found NOT // past_elections list id _20 s1 s2 XCHG // past_elections id list _20 }> // past_elections id list 2 1 BLKDROP2 // list }> past_elections_list PROC:<{ // load_data INLINECALLDICT // _28 _29 _30 _31 _32 _33 s3 s5 XCHG 5 BLKDROP // past_elections 32 PUSHPOW2 // past_elections id PUSHNULL // past_elections id list UNTIL:<{ s1 s2 XCPU 32 PUSHINT // past_elections list id past_elections _15=32 DICTUGETPREV NULLSWAPIFNOT2 // past_elections list fs id found DUP // past_elections list fs id found found IF:<{ // past_elections list fs id found s0 s2 XCHG // past_elections list found id fs unpack_past_election INLINECALLDICT // past_elections list found id _37 _38 _39 _40 _41 _42 _43 4 BLKDROP // past_elections list found id unfreeze_at stake_held vset_hash s3 PUSH s3 s1 s3 XCHG3 // past_elections list found id id unfreeze_at vset_hash stake_held 4 TUPLE // past_elections list found id _25 s0 s3 XCHG2 // past_elections id found _25 list CONS // past_elections id found list s0 s2 XCHG // past_elections list found id }>ELSE<{ s2 POP // past_elections list found id }> SWAP // past_elections list id found NOT // past_elections list id _27 s1 s2 XCHG // past_elections id list _27 }> // past_elections id list 2 1 BLKDROP2 // list }> complete_unpack_complaint PROCREF:<{ // cs unpack_complaint_status INLINECALLDICT // complaint voters vset_id weight_remaining PUSHNULL // complaint voters vset_id weight_remaining voters_list 32 PUSHPOW2 // complaint voters vset_id weight_remaining voters_list voter_id UNTIL:<{ s4 PUSH 16 PUSHINT // complaint voters vset_id weight_remaining voters_list voter_id voters _14=16 DICTUGETPREV NULLSWAPIFNOT2 // complaint voters vset_id weight_remaining voters_list _27 _26 _28 s2 POP // complaint voters vset_id weight_remaining voters_list f voter_id OVER // complaint voters vset_id weight_remaining voters_list f voter_id f IF:<{ // complaint voters vset_id weight_remaining voters_list f voter_id s0 s2 PUXC // complaint voters vset_id weight_remaining voter_id f voter_id voters_list CONS // complaint voters vset_id weight_remaining voter_id f voters_list s0 s2 XCHG // complaint voters vset_id weight_remaining voters_list f voter_id }> // complaint voters vset_id weight_remaining voters_list f voter_id SWAP // complaint voters vset_id weight_remaining voters_list voter_id f NOT // complaint voters vset_id weight_remaining voters_list voter_id _17 }> // complaint voters vset_id weight_remaining voters_list voter_id DROP s3 POP // complaint voters_list vset_id weight_remaining s0 s3 XCHG // weight_remaining voters_list vset_id complaint CTOS // weight_remaining voters_list vset_id _20 unpack_complaint INLINECALLDICT // weight_remaining voters_list vset_id _29 _30 _31 _32 _33 _34 _35 _36 8 TUPLE // weight_remaining voters_list vset_id _19 s0 s3 XCHG // _19 voters_list vset_id weight_remaining 4 TUPLE // _18 }> get_past_complaints PROCREF:<{ // election_id load_data INLINECALLDICT // election_id _21 _22 _23 _24 _25 _26 s3 s5 XCHG 5 BLKDROP // election_id past_elections 32 PUSHINT // election_id past_elections _10=32 DICTUGET NULLSWAPIFNOT // fs found? IFNOTJMP:<{ // fs DROP // PUSHNULL // _12 }> // fs unpack_past_election INLINECALLDICT // _29 _30 _31 _32 _33 _34 _35 6 1 BLKDROP2 // complaints }> show_complaint PROC:<{ // election_id chash SWAP // chash election_id get_past_complaints INLINECALLDICT // chash complaints 8 PUSHPOW2 // chash complaints _6=256 DICTUGET NULLSWAPIFNOT // cs found IF:<{ // cs complete_unpack_complaint INLINECALLDICT // _8 }>ELSE<{ // cs DROP // PUSHNULL // _8 }> }> list_complaints PROC:<{ // election_id get_past_complaints INLINECALLDICT // complaints 256 PUSHPOW2DEC // complaints id PUSHNULL // complaints id list UNTIL:<{ s1 s2 XCPU 8 PUSHPOW2 // complaints list id complaints _17=256 DICTUGETPREV NULLSWAPIFNOT2 // complaints list cs id found? DUP // complaints list cs id found? found? IF:<{ // complaints list cs id found? s0 s2 XCHG // complaints list found? id cs complete_unpack_complaint INLINECALLDICT // complaints list found? id _19 s1 s(-1) PUXC // complaints list found? id id _19 PAIR // complaints list found? id _20 s0 s3 XCHG2 // complaints id found? _20 list CONS // complaints id found? list s0 s2 XCHG // complaints list found? id }>ELSE<{ s2 POP // complaints list found? id }> SWAP // complaints list id found? NOT // complaints list id _22 s1 s2 XCHG // complaints id list _22 }> // complaints id list 2 1 BLKDROP2 // list }> }END>c