// automatically generated from `smartcont/stdlib.fc` `smartcont/config-code.fc` PROGRAM{ DECLPROC set_conf_param DECLPROC load_data DECLPROC store_data DECLPROC parse_vote_config DECLPROC get_vote_config_internal DECLPROC get_vote_config DECLPROC check_validator_set DECLPROC send_answer DECLPROC send_confirmation DECLPROC send_error DECLPROC change_elector_code 1666 DECLMETHOD after_code_upgrade DECLPROC perform_action DECLPROC get_current_vset DECLPROC get_validator_descr DECLPROC unpack_validator_descr DECLPROC parse_config_proposal DECLPROC accept_proposal DECLPROC perform_proposed_action DECLPROC unpack_proposal_status DECLPROC update_proposal_status DECLPROC begin_pack_proposal_status DECLPROC register_vote DECLPROC proceed_register_vote DECLPROC scan_proposal DECLPROC scan_random_proposal DECLPROC register_voting_proposal DECLPROC recv_internal DECLPROC recv_external DECLPROC run_ticktock 85143 DECLMETHOD seqno DECLPROC unpack_proposal 94347 DECLMETHOD get_proposal 107394 DECLMETHOD list_proposals 75077 DECLMETHOD proposal_storage_price set_conf_param PROC:<{ // index value c4 PUSH // index value _3 CTOS // index value cs LDREF // index value cfg_dict cs s3 s3 XCHG2 32 PUSHINT // cs value index cfg_dict _9=32 DICTISETREF // cs cfg_dict NEWC // cs cfg_dict _11 STREF // cs _12 SWAP // _12 cs STSLICER // _13 ENDC // _14 c4 POP }> load_data PROC:<{ // c4 PUSH // _1 CTOS // cs LDREF // _4 cs 32 LDU // _4 _6 cs 256 LDU // _4 _6 _9 cs LDDICT // res res res res cs ENDS }> store_data PROC:<{ // cfg_dict stored_seqno public_key vote_dict s0 s3 XCHG NEWC // vote_dict stored_seqno public_key cfg_dict _4 STREF // vote_dict stored_seqno public_key _5 s1 s2 XCHG // vote_dict public_key stored_seqno _5 32 STU // vote_dict public_key _7 256 STU // vote_dict _9 STDICT // _10 ENDC // _11 c4 POP }> parse_vote_config PROC:<{ // c CTOS // cs 8 LDU // _4 cs SWAP // cs _4 54 EQINT // cs _8 44 THROWIFNOT 8 LDU // _11 cs 8 LDU // _11 _14 cs 8 LDU // _11 _14 _17 cs 8 LDU // _11 _14 _17 _20 cs 32 LDU // _11 _14 _17 _20 _23 cs 32 LDU // _11 _14 _17 _20 _23 _26 cs 32 LDU // _11 _14 _17 _20 _23 _26 _29 cs 32 LDU // res res res res res res res res cs ENDS }> get_vote_config_internal PROCREF:<{ // critical? cparam11 CTOS // critical? cs 8 LDU // critical? _5 cs SWAP 145 PUSHINT // critical? cs _5 _8=145 EQUAL // critical? cs _9 44 THROWIFNOT SWAP // cs critical? IF:<{ // cs LDREF // _18 _17 NIP // cs }> // cs PLDREF // _13 parse_vote_config INLINECALLDICT // _19 _20 _21 _22 _23 _24 _25 _26 }> get_vote_config PROC:<{ // critical? 11 PUSHINT // critical? _1=11 CONFIGOPTPARAM // critical? _2 get_vote_config_internal INLINECALLDICT // _4 _5 _6 _7 _8 _9 _10 _11 }> check_validator_set PROC:<{ // vset CTOS // cs 8 LDU // _4 cs SWAP // cs _4 18 EQINT // cs _8 9 THROWIFNOT 32 LDU // utime_since cs 32 LDU // utime_since utime_until cs 16 LDU // utime_since utime_until total cs 16 LDU // utime_since utime_until total _42 _41 DROP // utime_since utime_until total main DUP // utime_since utime_until total main main 0 GTINT // utime_since utime_until total main _28 9 THROWIFNOT GEQ // utime_since utime_until _31 9 THROWIFNOT }> send_answer PROC:<{ // addr query_id ans_tag mode 0 PUSHINT // addr query_id ans_tag mode _4=0 24 PUSHINT // addr query_id ans_tag mode _4=0 _5=24 NEWC // addr query_id ans_tag mode _4=0 _5=24 _6 6 STU // addr query_id ans_tag mode _4=0 _8 s0 s5 XCHG2 // _4=0 query_id ans_tag mode _8 addr STSLICER // _4=0 query_id ans_tag mode _9 s1 s4 XCHG // mode query_id ans_tag _4=0 _9 111 STU // mode query_id ans_tag _23 32 STU // mode query_id _25 64 STU // mode _27 ENDC // mode _28 SWAP // _28 mode SENDRAWMSG }> send_confirmation PROC:<{ // addr query_id ans_tag 64 PUSHINT // addr query_id ans_tag _3=64 send_answer CALLDICT }> send_error PROC:<{ // addr query_id ans_tag 64 PUSHINT // addr query_id ans_tag _3=64 send_answer CALLDICT }> change_elector_code PROC:<{ // cs 1 PUSHINT // cs _2=1 CONFIGOPTPARAM // cs _3 CTOS // cs _4 256 PLDU // cs dest_addr NOW // cs dest_addr query_id 1313042276 PUSHINT // cs dest_addr query_id _9=1313042276 0 PUSHINT // cs dest_addr query_id _9=1313042276 _10=0 50431 PUSHINT // cs dest_addr query_id _9=1313042276 _10=0 _11=50431 NEWC // cs dest_addr query_id _9=1313042276 _10=0 _11=50431 _12 17 STU // cs dest_addr query_id _9=1313042276 _10=0 _14 s1 s4 XCHG // cs _10=0 query_id _9=1313042276 dest_addr _14 256 STU // cs _10=0 query_id _9=1313042276 _16 30 PUSHPOW2 // cs _10=0 query_id _9=1313042276 _16 _19 STGRAMS // cs _10=0 query_id _9=1313042276 _20 s1 s3 XCHG // cs _9=1313042276 query_id _10=0 _20 107 STU // cs _9=1313042276 query_id _34 s1 s2 XCHG // cs query_id _9=1313042276 _34 32 STU // cs query_id _36 64 STU // cs _38 SWAP // _38 cs STSLICER // _39 ENDC // _40 0 PUSHINT // _40 _41=0 SENDRAWMSG }> after_code_upgrade PROC:<{ // param old_code 2DROP // }> perform_action PROCREF:<{ // cfg_dict public_key action cs OVER 1130778657 PUSHINT // cfg_dict public_key action cs action _4=1130778657 EQUAL // cfg_dict public_key action cs _5 IFJMP:<{ // cfg_dict public_key action cs NIP // cfg_dict public_key cs 32 LDI // cfg_dict public_key param_index cs LDREF // cfg_dict public_key param_index param_value cs ENDS s0 s1 s3 XCHG3 32 PUSHINT // public_key param_value param_index cfg_dict _15=32 DICTISETREF // public_key cfg_dict SWAP // cfg_dict public_key }> // cfg_dict public_key action cs OVER 1313042276 PUSHINT // cfg_dict public_key action cs action _17=1313042276 EQUAL // cfg_dict public_key action cs _18 IFJMP:<{ // cfg_dict public_key action cs NIP // cfg_dict public_key cs LDREF // cfg_dict public_key new_code cs OVER // cfg_dict public_key new_code cs new_code SETCODE c3 PUSH // cfg_dict public_key new_code cs old_code s0 s2 XCHG // cfg_dict public_key old_code cs new_code CTOS // cfg_dict public_key old_code cs _25 BLESS // cfg_dict public_key old_code cs _26 c3 POP SWAP // cfg_dict public_key cs old_code after_code_upgrade CALLDICT 0 THROW }> // cfg_dict public_key action cs OVER 1348619041 PUSHINT // cfg_dict public_key action cs action _31=1348619041 EQUAL // cfg_dict public_key action cs _32 IFJMP:<{ // cfg_dict public_key action cs 2 1 BLKDROP2 // cfg_dict cs 256 LDU // cfg_dict public_key cs ENDS }> // cfg_dict public_key action cs OVER 1313074949 PUSHINT // cfg_dict public_key action cs action _37=1313074949 EQUAL // cfg_dict public_key action cs _38 IFJMP:<{ // cfg_dict public_key action cs NIP // cfg_dict public_key cs change_elector_code CALLDICT }> // cfg_dict public_key action cs DROP // cfg_dict public_key action 32 THROWIF }> 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 }> parse_config_proposal PROCREF:<{ // c CTOS // cs 8 LDI // _4 cs SWAP // cs _4 -13 EQINT // cs _10 44 THROWIFNOT 32 LDI // _15 cs LDOPTREF // _15 _18 cs 1 LDI // id val hash cs SWAP // id val cs hash IF:<{ // id val cs 256 LDU // id val hash cs }>ELSE<{ // id val cs -1 PUSHINT // id val cs hash=-1 SWAP // id val hash cs }> ENDS }> accept_proposal PROCREF:<{ // cfg_dict proposal critical? SWAP // cfg_dict critical? proposal parse_config_proposal INLINECALLDICT // cfg_dict critical? param_id param_val req_hash s2 s4 PUSH2 32 PUSHINT // cfg_dict critical? param_id param_val req_hash param_id cfg_dict _8=32 DICTIGETOPTREF // cfg_dict critical? param_id param_val req_hash cur_val DUP // cfg_dict critical? param_id param_val req_hash cur_val cur_val ISNULL // cfg_dict critical? param_id param_val req_hash cur_val _11 IF:<{ // cfg_dict critical? param_id param_val req_hash cur_val DROP // cfg_dict critical? param_id param_val req_hash 0 PUSHINT // cfg_dict critical? param_id param_val req_hash _12=0 }>ELSE<{ // cfg_dict critical? param_id param_val req_hash cur_val HASHCU // cfg_dict critical? param_id param_val req_hash _12 }> // cfg_dict critical? param_id param_val req_hash cur_hash OVER // cfg_dict critical? param_id param_val req_hash cur_hash req_hash NEQ // cfg_dict critical? param_id param_val req_hash _15 SWAP // cfg_dict critical? param_id param_val _15 req_hash -1 GTINT // cfg_dict critical? param_id param_val _15 _17 AND // cfg_dict critical? param_id param_val _18 IFJMP:<{ // cfg_dict critical? param_id param_val 3 BLKDROP // cfg_dict 0 PUSHINT // cfg_dict _19=0 PUSHNULL // cfg_dict _19=0 _20 }> // cfg_dict critical? param_id param_val 9 PUSHINT // cfg_dict critical? param_id param_val _22=9 s4 PUSH 32 PUSHINT // cfg_dict critical? param_id param_val _22=9 cfg_dict _23=32 DICTIGETOPTREF // cfg_dict critical? param_id param_val mparams s2 s(-1) PUXC 32 PUSHINT // cfg_dict critical? param_id param_val param_id mparams _27=32 DICTIGET NULLSWAPIFNOT // cfg_dict critical? param_id param_val _49 _50 NIP // cfg_dict critical? param_id param_val found? OVER // cfg_dict critical? param_id param_val found? param_val ISNULL // cfg_dict critical? param_id param_val found? _29 AND // cfg_dict critical? param_id param_val _30 IFJMP:<{ // cfg_dict critical? param_id param_val 3 BLKDROP // cfg_dict 0 PUSHINT // cfg_dict _31=0 PUSHNULL // cfg_dict _31=0 _32 }> // cfg_dict critical? param_id param_val 10 PUSHINT // cfg_dict critical? param_id param_val _34=10 s4 PUSH 32 PUSHINT // cfg_dict critical? param_id param_val _34=10 cfg_dict _35=32 DICTIGETOPTREF // cfg_dict critical? param_id param_val cparams s2 s(-1) PUXC 32 PUSHINT // cfg_dict critical? param_id param_val param_id cparams _38=32 DICTIGET NULLSWAPIFNOT // cfg_dict critical? param_id param_val _51 _52 NIP // cfg_dict critical? param_id param_val found? s0 s3 XCHG2 // cfg_dict param_val param_id found? critical? LESS // cfg_dict param_val param_id _40 IFJMP:<{ // cfg_dict param_val param_id 2DROP // cfg_dict 0 PUSHINT // cfg_dict _41=0 PUSHNULL // cfg_dict _41=0 _42 }> // cfg_dict param_val param_id s1 s(-1) s2 PU2XC 32 PUSHINT // param_id param_val param_val param_id cfg_dict _44=32 DICTISETREF // param_id param_val cfg_dict -ROT // cfg_dict param_id param_val }> perform_proposed_action PROCREF:<{ // cfg_dict public_key param_id param_val OVER -999 PUSHINT // cfg_dict public_key param_id param_val param_id _4=-999 EQUAL // cfg_dict public_key param_id param_val _5 IFJMP:<{ // cfg_dict public_key param_id param_val 2 1 BLKDROP2 // cfg_dict param_val DUP // cfg_dict param_val param_val ISNULL // cfg_dict param_val _6 IF:<{ // cfg_dict param_val DROP // cfg_dict 0 PUSHINT // cfg_dict _7=0 }>ELSE<{ // cfg_dict param_val CTOS // cfg_dict _9 256 PLDU // cfg_dict _7 }> }> // cfg_dict public_key param_id param_val DUP // cfg_dict public_key param_id param_val param_val ISNULL // cfg_dict public_key param_id param_val _12 IFJMP:<{ // cfg_dict public_key param_id param_val 2DROP // cfg_dict public_key }> // cfg_dict public_key param_id param_val OVER -1000 PUSHINT // cfg_dict public_key param_id param_val param_id _13=-1000 EQUAL // cfg_dict public_key param_id param_val _14 IFJMP:<{ // cfg_dict public_key param_id param_val NIP // cfg_dict public_key param_val CTOS // cfg_dict public_key cs LDREF // cfg_dict public_key new_code cs OVER // cfg_dict public_key new_code cs new_code SETCODE c3 PUSH // cfg_dict public_key new_code cs old_code s0 s2 XCHG // cfg_dict public_key old_code cs new_code CTOS // cfg_dict public_key old_code cs _23 BLESS // cfg_dict public_key old_code cs _24 c3 POP SWAP // cfg_dict public_key cs old_code after_code_upgrade CALLDICT 0 THROW }> // cfg_dict public_key param_id param_val SWAP -1001 PUSHINT // cfg_dict public_key param_val param_id _29=-1001 EQUAL // cfg_dict public_key param_val _30 IF:<{ // cfg_dict public_key param_val CTOS // cfg_dict public_key cs change_elector_code CALLDICT }>ELSE<{ DROP // cfg_dict public_key }> }> unpack_proposal_status PROCREF:<{ // cs 8 LDI // _2 cs SWAP // cs _2 -50 EQINT // cs _8 44 THROWIFNOT 32 LDU // _10 cs LDREF // _10 _13 cs 1 LDI // _10 _13 _15 cs LDDICT // _10 _13 _15 _18 cs 64 LDI // _10 _13 _15 _18 _20 cs 256 LDU // _10 _13 _15 _18 _20 _23 cs }> update_proposal_status PROCREF:<{ // rest weight_remaining critical? get_vote_config INLINECALLDICT // rest weight_remaining _43 _44 _45 _46 _47 _48 _49 _50 s4 s7 XCHG 7 BLKDROP // rest weight_remaining max_losses s0 s2 XCHG // max_losses weight_remaining rest 8 LDU // max_losses weight_remaining _15 rest 8 LDU // max_losses weight_remaining _15 _18 rest 8 LDU // max_losses weight_remaining _15 _18 _56 _55 DROP // max_losses weight_remaining rounds_remaining wins losses s0 s3 XCHG // max_losses losses rounds_remaining wins weight_remaining -1 GTINT // max_losses losses rounds_remaining wins _25 s1 s3 XCHG // max_losses wins rounds_remaining losses _25 SUB // max_losses wins rounds_remaining losses s0 s3 PUXC // losses wins rounds_remaining losses max_losses GREATER // losses wins rounds_remaining _27 IFJMP:<{ // losses wins rounds_remaining 3 BLKDROP // PUSHNULL // _28 }> // losses wins rounds_remaining DEC // losses wins rounds_remaining DUP // losses wins rounds_remaining rounds_remaining 0 LESSINT // losses wins rounds_remaining _32 IFJMP:<{ // losses wins rounds_remaining 3 BLKDROP // PUSHNULL // _33 }> // losses wins rounds_remaining NEWC // losses wins rounds_remaining _34 8 STU // losses wins _36 8 STU // losses _38 8 STU // _40 ENDC // _41 CTOS // _42 }> begin_pack_proposal_status PROC:<{ // expires proposal critical? voters weight_remaining vset_id -50 PUSHINT // expires proposal critical? voters weight_remaining vset_id _8 NEWC // expires proposal critical? voters weight_remaining vset_id _8 _9 8 STI // expires proposal critical? voters weight_remaining vset_id _11 s1 s6 XCHG // vset_id proposal critical? voters weight_remaining expires _11 32 STU // vset_id proposal critical? voters weight_remaining _13 s1 s4 XCHG // vset_id weight_remaining critical? voters proposal _13 STREF // vset_id weight_remaining critical? voters _14 s1 s2 XCHG // vset_id weight_remaining voters critical? _14 1 STI // vset_id weight_remaining voters _16 STDICT // vset_id weight_remaining _17 64 STI // vset_id _19 256 STU // _21 }> register_vote PROCREF:<{ // vote_dict phash idx weight s2 s3 PUSH2 8 PUSHPOW2 // vote_dict phash idx weight phash vote_dict _6=256 DICTUGET NULLSWAPIFNOT // vote_dict phash idx weight pstatus found? IFNOTJMP:<{ // vote_dict phash idx weight pstatus 4 BLKDROP // vote_dict PUSHNULL // vote_dict _8 -1 PUSHINT // vote_dict _8 _9=-1 }> // vote_dict phash idx weight pstatus get_current_vset INLINECALLDICT // vote_dict phash idx weight pstatus _111 _112 _113 DROP // vote_dict phash idx weight pstatus cur_vset total_weight SWAP // vote_dict phash idx weight pstatus total_weight cur_vset HASHCU // vote_dict phash idx weight pstatus total_weight cur_vset_id s0 s2 XCHG // vote_dict phash idx weight cur_vset_id total_weight pstatus unpack_proposal_status INLINECALLDICT // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest s6 PUSH NOW // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest expires _24 LEQ // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest _25 IFJMP:<{ // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest 11 BLKDROP // vote_dict phash SWAP 8 PUSHPOW2 // phash vote_dict _27=256 DICTUDEL // _121 _122 DROP // vote_dict PUSHNULL // vote_dict _29 -1 PUSHINT // vote_dict _29 _30=-1 }> // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest s1 s8 PUSH2 // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest vset_id cur_vset_id NEQ // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest _31 IF:<{ // vote_dict phash idx weight cur_vset_id total_weight expires proposal critical? voters weight_remaining vset_id rest NIP s2 POP // vote_dict phash idx weight vset_id total_weight expires proposal critical? rest weight_remaining s2 PUSH // vote_dict phash idx weight vset_id total_weight expires proposal critical? rest weight_remaining critical? update_proposal_status INLINECALLDICT // vote_dict phash idx weight vset_id total_weight expires proposal critical? rest PUSHNULL // vote_dict phash idx weight vset_id total_weight expires proposal critical? rest voters s0 s5 XCHG 3 PUSHINT // vote_dict phash idx weight vset_id voters expires proposal critical? rest total_weight _34=3 2 MULRSHIFT# // vote_dict phash idx weight vset_id voters expires proposal critical? rest weight_remaining s1 s5 XCHG // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining }>ELSE<{ s7 POP s7 POP // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining }> s5 PUSH // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining rest ISNULL // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining _37 IFJMP:<{ // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining 9 BLKDROP // vote_dict phash SWAP 8 PUSHPOW2 // phash vote_dict _39=256 DICTUDEL // _123 _124 DROP // vote_dict PUSHNULL // vote_dict _41 -1 PUSHINT // vote_dict _41 _42=-1 }> // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining s8 s1 PUSH2 16 PUSHINT // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining idx voters _45=16 DICTUGET NULLSWAPIFNOT // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining _125 _126 NIP // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining found? IFJMP:<{ // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining 10 BLKDROP // vote_dict PUSHNULL // vote_dict _47 -2 PUSHINT // vote_dict _47 _48=-2 }> // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining NOW // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining _50 NEWC // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining _50 _51 32 STU // vote_dict phash idx weight vset_id rest expires proposal critical? voters weight_remaining _53 s9 s2 XCHG2 16 PUSHINT // vote_dict phash weight_remaining weight vset_id rest expires proposal critical? _53 idx voters _54=16 DICTUSETB // vote_dict phash weight_remaining weight vset_id rest expires proposal critical? voters s7 PUSH // vote_dict phash weight_remaining weight vset_id rest expires proposal critical? voters old_wr s8 s7 XCHG2 // vote_dict phash voters old_wr vset_id rest expires proposal critical? weight_remaining weight SUB // vote_dict phash voters old_wr vset_id rest expires proposal critical? weight_remaining s0 s6 PUXC // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? weight_remaining old_wr XOR // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? _58 -1 GTINT // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? _60 IFJMP:<{ // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? 3 4 BLKSWAP // vote_dict phash rest expires proposal critical? voters weight_remaining vset_id begin_pack_proposal_status INLINECALLDICT // vote_dict phash rest _62 SWAP // vote_dict phash _62 rest STSLICER // vote_dict phash _63 s0 s2 XCHG 8 PUSHPOW2 // _63 phash vote_dict _64=256 DICTUSETB // vote_dict PUSHNULL // vote_dict _66 2 PUSHINT // vote_dict _66 _67=2 }> // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? DUP // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? critical? get_vote_config INLINECALLDICT // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? _127 _128 _129 _130 _131 _132 _133 _134 s5 s7 XCHG 7 BLKDROP // vote_dict phash voters weight_remaining vset_id rest expires proposal critical? min_wins s0 s4 XCHG // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? rest 8 LDU // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? _80 rest 8 LDU // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? _80 _83 rest 8 LDU // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? _80 _83 _140 _139 DROP // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? rounds_remaining wins losses SWAP // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? rounds_remaining losses wins INC // vote_dict phash voters weight_remaining vset_id min_wins expires proposal critical? rounds_remaining losses wins s0 s6 PUXC // vote_dict phash voters weight_remaining vset_id wins expires proposal critical? rounds_remaining losses wins min_wins GEQ // vote_dict phash voters weight_remaining vset_id wins expires proposal critical? rounds_remaining losses _91 IFJMP:<{ // vote_dict phash voters weight_remaining vset_id wins expires proposal critical? rounds_remaining losses 2DROP s5 s6 XCHG2 5 BLKDROP // vote_dict phash critical? proposal s2 s3 XCHG2 8 PUSHPOW2 // proposal critical? phash vote_dict _93=256 DICTUDEL // proposal critical? _141 _142 DROP // proposal critical? vote_dict 6 PUSHINT ROT // proposal vote_dict _95=6 critical? SUB // proposal vote_dict _96 s1 s2 XCHG // vote_dict proposal _96 }> // vote_dict phash voters weight_remaining vset_id wins expires proposal critical? rounds_remaining losses s4 s5 XCHG s3 s4 XCHG s2 s3 XCHG s8 s7 s6 XCHG3 // vote_dict phash wins rounds_remaining losses expires proposal critical? voters weight_remaining vset_id begin_pack_proposal_status INLINECALLDICT // vote_dict phash wins rounds_remaining losses _98 s1 s2 XCHG // vote_dict phash wins losses rounds_remaining _98 8 STU // vote_dict phash wins losses _100 s1 s2 XCHG // vote_dict phash losses wins _100 8 STU // vote_dict phash losses _102 8 STU // vote_dict phash _104 s0 s2 XCHG 8 PUSHPOW2 // _104 phash vote_dict _105=256 DICTUSETB // vote_dict PUSHNULL // vote_dict _107 2 PUSHINT // vote_dict _107 _108=2 }> proceed_register_vote PROCREF:<{ // phash idx weight load_data INLINECALLDICT // phash idx weight cfg_dict stored_seqno public_key vote_dict s6 s1 s3 XCHG3 s5 s4 XCHG2 // stored_seqno public_key cfg_dict vote_dict phash idx weight register_vote INLINECALLDICT // stored_seqno public_key cfg_dict vote_dict accepted_proposal status s3 s5 s4 PUSH3 s5 PUSH // stored_seqno public_key cfg_dict vote_dict accepted_proposal status cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT OVER // stored_seqno public_key cfg_dict vote_dict accepted_proposal status accepted_proposal ISNULL // stored_seqno public_key cfg_dict vote_dict accepted_proposal status _12 IFNOT:<{ // stored_seqno public_key cfg_dict vote_dict accepted_proposal status 6 PUSHINT // stored_seqno public_key cfg_dict vote_dict accepted_proposal status _14=6 OVER // stored_seqno public_key cfg_dict vote_dict accepted_proposal status _14=6 status SUB // stored_seqno public_key cfg_dict vote_dict accepted_proposal status critical? s4 s4 s0 XCHG3 // stored_seqno public_key status vote_dict cfg_dict accepted_proposal critical? accept_proposal INLINECALLDICT // stored_seqno public_key status vote_dict cfg_dict param_id param_val s2 s6 s5 PUSH3 s6 PUSH // stored_seqno public_key status vote_dict cfg_dict param_id param_val cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT OVER // stored_seqno public_key status vote_dict cfg_dict param_id param_val param_id IF:<{ // stored_seqno public_key status vote_dict cfg_dict param_id param_val COMMIT s2 s3 XCHG s2 s5 XCHG // stored_seqno vote_dict status cfg_dict public_key param_id param_val perform_proposed_action INLINECALLDICT // stored_seqno vote_dict status cfg_dict public_key s4 s0 s3 XCHG3 // status cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT }>ELSE<{ s4 s6 XCHG 6 BLKDROP // status }> }>ELSE<{ 5 1 BLKDROP2 // status }> }> scan_proposal PROCREF:<{ // phash pstatus NIP // pstatus get_current_vset INLINECALLDICT // pstatus _35 _36 _37 DROP // pstatus cur_vset total_weight SWAP // pstatus total_weight cur_vset HASHCU // pstatus total_weight cur_vset_id s2 PUSH // pstatus total_weight cur_vset_id pstatus unpack_proposal_status INLINECALLDICT // pstatus total_weight cur_vset_id _38 _39 _40 _41 _42 _43 _44 s3 POP // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining vset_id s5 PUSH NOW // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining vset_id expires _16 LEQ // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining vset_id _17 IFJMP:<{ // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining vset_id 9 BLKDROP // PUSHNULL // _18 TRUE // _18 _19 }> // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining vset_id s6 PUSH // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining vset_id cur_vset_id EQUAL // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining _20 IFJMP:<{ // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining 7 BLKDROP // pstatus FALSE // pstatus _21 }> // pstatus total_weight cur_vset_id expires proposal critical? rest weight_remaining s7 POP // weight_remaining total_weight vset_id expires proposal critical? rest s0 s6 s6 XC2PU // critical? total_weight vset_id expires proposal rest weight_remaining critical? update_proposal_status INLINECALLDICT // critical? total_weight vset_id expires proposal rest PUSHNULL // critical? total_weight vset_id expires proposal rest voters s0 s5 XCHG 3 PUSHINT // critical? voters vset_id expires proposal rest total_weight _24=3 2 MULRSHIFT# // critical? voters vset_id expires proposal rest weight_remaining OVER // critical? voters vset_id expires proposal rest weight_remaining rest ISNULL // critical? voters vset_id expires proposal rest weight_remaining _27 IFJMP:<{ // critical? voters vset_id expires proposal rest weight_remaining 7 BLKDROP // PUSHNULL // _28 TRUE // _28 _29 }> // critical? voters vset_id expires proposal rest weight_remaining s3 s5 XCHG s2 s4 XCHG s3 s6 XCHG s6 s0 s6 XCHG3 // rest expires proposal critical? voters weight_remaining vset_id begin_pack_proposal_status INLINECALLDICT // rest _30 SWAP // _30 rest STSLICER // _31 ENDC // _32 CTOS // _33 TRUE // _33 _34 }> scan_random_proposal PROCREF:<{ // vote_dict RANDU256 // vote_dict _4 OVER 8 PUSHPOW2 // vote_dict _4 vote_dict _5=256 DICTUGETNEXTEQ NULLSWAPIFNOT2 // vote_dict pstatus phash found? IFNOTJMP:<{ // vote_dict pstatus phash 2DROP // vote_dict }> // vote_dict pstatus phash s0 s1 PUXC // vote_dict phash phash pstatus scan_proposal INLINECALLDICT // vote_dict phash pstatus changed? IF:<{ // vote_dict phash pstatus DUP // vote_dict phash pstatus pstatus ISNULL // vote_dict phash pstatus _9 IF:<{ // vote_dict phash pstatus DROP // vote_dict phash SWAP 8 PUSHPOW2 // phash vote_dict _11=256 DICTUDEL // _21 _22 DROP // vote_dict }>ELSE<{ // vote_dict phash pstatus s0 s2 XCHG 8 PUSHPOW2 // pstatus phash vote_dict _14=256 DICTUSET // vote_dict }> }>ELSE<{ 2DROP // vote_dict }> }> register_voting_proposal PROCREF:<{ // cs msg_value SWAP // msg_value cs 32 LDU // msg_value _5 cs LDREF // msg_value _5 _8 cs 1 LDI // msg_value _5 _8 _156 _155 DROP // msg_value expire_at proposal critical? s2 PUSH // msg_value expire_at proposal critical? expire_at 30 RSHIFT# // msg_value expire_at proposal critical? _14 IF:<{ // msg_value expire_at proposal critical? s0 s2 XCHG NOW // msg_value critical? proposal expire_at _15 SUB // msg_value critical? proposal expire_at s0 s2 XCHG // msg_value expire_at proposal critical? }> // msg_value expire_at proposal critical? OVER // msg_value expire_at proposal critical? proposal parse_config_proposal INLINECALLDICT // msg_value expire_at proposal critical? param_id param_val hash DUP // msg_value expire_at proposal critical? param_id param_val hash hash -1 GTINT // msg_value expire_at proposal critical? param_id param_val hash _22 IF:<{ // msg_value expire_at proposal critical? param_id param_val hash s2 PUSH // msg_value expire_at proposal critical? param_id param_val hash param_id CONFIGOPTPARAM // msg_value expire_at proposal critical? param_id param_val hash cur_val DUP // msg_value expire_at proposal critical? param_id param_val hash cur_val cur_val ISNULL // msg_value expire_at proposal critical? param_id param_val hash cur_val _26 IF:<{ // msg_value expire_at proposal critical? param_id param_val hash cur_val DROP // msg_value expire_at proposal critical? param_id param_val hash 0 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash _27=0 }>ELSE<{ // msg_value expire_at proposal critical? param_id param_val hash cur_val HASHCU // msg_value expire_at proposal critical? param_id param_val hash _27 }> // msg_value expire_at proposal critical? param_id param_val hash cur_hash OVER // msg_value expire_at proposal critical? param_id param_val hash cur_hash hash NEQ // msg_value expire_at proposal critical? param_id param_val hash _30 IF:<{ // msg_value expire_at proposal critical? param_id param_val hash DROP // msg_value expire_at proposal critical? param_id param_val -3798229846 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash=-3798229846 }> // msg_value expire_at proposal critical? param_id param_val hash }>ELSE<{ // msg_value expire_at proposal critical? param_id param_val hash 9 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash _33=9 CONFIGOPTPARAM // msg_value expire_at proposal critical? param_id param_val hash m_params s3 s(-1) PUXC 32 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash param_id m_params _37=32 DICTIGET NULLSWAPIFNOT // msg_value expire_at proposal critical? param_id param_val hash _160 _161 NIP // msg_value expire_at proposal critical? param_id param_val hash found? IF:<{ // msg_value expire_at proposal critical? param_id param_val hash DROP // msg_value expire_at proposal critical? param_id param_val -3444600428 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash=-3444600428 }> // msg_value expire_at proposal critical? param_id param_val hash }> OVER // msg_value expire_at proposal critical? param_id param_val hash param_val CDEPTH // msg_value expire_at proposal critical? param_id param_val hash _40 7 PUSHPOW2 // msg_value expire_at proposal critical? param_id param_val hash _40 _41=128 GEQ // msg_value expire_at proposal critical? param_id param_val hash _42 IF:<{ // msg_value expire_at proposal critical? param_id param_val hash DROP // msg_value expire_at proposal critical? param_id param_val -3261162582 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash=-3261162582 }> // msg_value expire_at proposal critical? param_id param_val hash DUP // msg_value expire_at proposal critical? param_id param_val hash hash -1 LESSINT // msg_value expire_at proposal critical? param_id param_val hash _45 IFJMP:<{ // msg_value expire_at proposal critical? param_id param_val hash 6 1 BLKDROP2 // hash }> // msg_value expire_at proposal critical? param_id param_val hash s3 PUSH // msg_value expire_at proposal critical? param_id param_val hash critical? IFNOT:<{ // msg_value expire_at proposal critical? param_id param_val hash 10 PUSHINT // msg_value expire_at proposal critical? param_id param_val hash _47=10 CONFIGOPTPARAM // msg_value expire_at proposal critical? param_id param_val hash crit_params s1 s3 XCHG 32 PUSHINT // msg_value expire_at proposal critical? hash param_val param_id crit_params _51=32 DICTIGET NULLSWAPIFNOT // msg_value expire_at proposal critical? hash param_val _162 _163 NIP // msg_value expire_at proposal critical? hash param_val found? IF:<{ // msg_value expire_at proposal critical? hash param_val -3279055188 PUSHINT s2 POP // msg_value expire_at proposal critical? hash=-3279055188 param_val }> // msg_value expire_at proposal critical? hash param_val }>ELSE<{ s2 POP // msg_value expire_at proposal critical? hash param_val }> OVER // msg_value expire_at proposal critical? hash param_val hash -1 LESSINT // msg_value expire_at proposal critical? hash param_val _55 IFJMP:<{ // msg_value expire_at proposal critical? hash param_val s1 s5 XCHG 5 BLKDROP // hash }> // msg_value expire_at proposal critical? hash param_val NIP // msg_value expire_at proposal critical? param_val OVER // msg_value expire_at proposal critical? param_val critical? get_vote_config INLINECALLDICT // msg_value expire_at proposal critical? param_val _172 _173 _174 _175 _176 _177 _178 _179 s4 POP s4 POP s5 POP // msg_value expire_at proposal critical? param_val max_store_sec max_tot_rounds bit_price cell_price min_store_sec s8 s(-1) PUXC // msg_value expire_at proposal critical? param_val max_store_sec max_tot_rounds bit_price cell_price expire_at min_store_sec LESS // msg_value expire_at proposal critical? param_val max_store_sec max_tot_rounds bit_price cell_price _66 IFJMP:<{ // msg_value expire_at proposal critical? param_val max_store_sec max_tot_rounds bit_price cell_price 9 BLKDROP // -3313004649 PUSHINT // _67=-3313004649 }> // msg_value expire_at proposal critical? param_val max_store_sec max_tot_rounds bit_price cell_price s7 s3 XCHG2 // msg_value bit_price proposal critical? param_val cell_price max_tot_rounds expire_at max_store_sec MIN // msg_value bit_price proposal critical? param_val cell_price max_tot_rounds expire_at s0 s3 XCHG 10 PUSHPOW2 // msg_value bit_price proposal critical? expire_at cell_price max_tot_rounds param_val _72=1024 CDATASIZE // msg_value bit_price proposal critical? expire_at cell_price max_tot_rounds _180 _181 _182 s2 POP // msg_value bit_price proposal critical? expire_at cell_price max_tot_rounds refs bits 10 PUSHPOW2 // msg_value bit_price proposal critical? expire_at cell_price max_tot_rounds refs bits _75=1024 ADD // msg_value bit_price proposal critical? expire_at cell_price max_tot_rounds refs _76 s1 s7 XCHG // msg_value refs proposal critical? expire_at cell_price max_tot_rounds bit_price _76 MUL // msg_value refs proposal critical? expire_at cell_price max_tot_rounds _77 s0 s6 XCHG // msg_value _77 proposal critical? expire_at cell_price max_tot_rounds refs 2 ADDCONST // msg_value _77 proposal critical? expire_at cell_price max_tot_rounds _79 s1 s2 XCHG // msg_value _77 proposal critical? expire_at max_tot_rounds cell_price _79 MUL // msg_value _77 proposal critical? expire_at max_tot_rounds _80 s1 s5 XCHG // msg_value max_tot_rounds proposal critical? expire_at _77 _80 ADD // msg_value max_tot_rounds proposal critical? expire_at pps s0 s1 PUSH2 // msg_value max_tot_rounds proposal critical? expire_at pps pps expire_at MUL // msg_value max_tot_rounds proposal critical? expire_at pps price s0 s2 XCHG NOW // msg_value max_tot_rounds proposal critical? price pps expire_at _84 ADD // msg_value max_tot_rounds proposal critical? price pps expire_at load_data INLINECALLDICT // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict s8 PUSH // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict proposal HASHCU // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict phash s0 s1 PUSH2 8 PUSHPOW2 // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict phash phash vote_dict _95=256 DICTUGET NULLSWAPIFNOT // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict phash pstatus found? IFJMP:<{ // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict phash pstatus s8 POP s9 POP s9 POP // msg_value vote_dict phash critical? pstatus pps expire_at cfg_dict stored_seqno public_key s0 s5 XCHG // msg_value vote_dict phash critical? public_key pps expire_at cfg_dict stored_seqno pstatus unpack_proposal_status INLINECALLDICT // msg_value vote_dict phash critical? public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id rest s4 s12 PUXC // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id r_critical? critical? NEQ // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id _105 IFJMP:<{ // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id 15 BLKDROP // -3279055189 PUSHINT // _106=-3279055189 }> // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id s5 s8 PUSH2 // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id expires expire_at GEQ // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id _107 IFJMP:<{ // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id 15 BLKDROP // -3245109829 PUSHINT // _108=-3245109829 }> // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno expires r_proposal r_critical? voters weight_remaining vset_id s8 s5 PUXC // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters weight_remaining expire_at expires SUB // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters weight_remaining _109 14 PUSHPOW2 // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters weight_remaining _109 _110=16384 ADD // msg_value vote_dict phash rest public_key pps expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters weight_remaining _111 s1 s9 XCHG // msg_value vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters pps _111 MUL // msg_value vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters price s13 s13 XCPU // price vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters msg_value price SUB // price vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters _113 30 PUSHPOW2 // price vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters _113 _116 LESS // price vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters _117 IFJMP:<{ // price vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters 13 BLKDROP // -4032919844 PUSHINT // _118=-4032919844 }> // price vote_dict phash rest public_key weight_remaining expire_at cfg_dict stored_seqno vset_id r_proposal r_critical? voters s5 s6 XCHG s0 s1 s4 XCHG3 s7 s7 XCHG2 s0 s3 XCHG // price vote_dict phash rest public_key stored_seqno cfg_dict expire_at r_proposal r_critical? voters weight_remaining vset_id begin_pack_proposal_status INLINECALLDICT // price vote_dict phash rest public_key stored_seqno cfg_dict _120 s0 s4 XCHG2 // price vote_dict phash cfg_dict public_key stored_seqno _120 rest STSLICER // price vote_dict phash cfg_dict public_key stored_seqno _121 s0 s4 s5 XCHG3 8 PUSHPOW2 // price public_key stored_seqno cfg_dict _121 phash vote_dict _122=256 DICTUSETB // price public_key stored_seqno cfg_dict vote_dict s1 s3 XCHG // price cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT }> // msg_value max_tot_rounds proposal critical? price pps expire_at cfg_dict stored_seqno public_key vote_dict phash pstatus DROP s6 POP // msg_value max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key vote_dict s10 s6 XCPU // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key msg_value price SUB // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key _125 30 PUSHPOW2 // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key _125 _128 LESS // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key _129 IFJMP:<{ // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key 10 BLKDROP // -4032919844 PUSHINT // _130=-4032919844 }> // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key get_current_vset INLINECALLDICT // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key _196 _197 _198 DROP // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key vset total_weight 3 PUSHINT // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key vset total_weight _136=3 2 MULRSHIFT# // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key vset weight_remaining 0 PUSHINT // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key vset weight_remaining _140=0 PUSHNULL // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key vset weight_remaining _140=0 _141 s0 s3 XCHG // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key _141 weight_remaining _140=0 vset HASHCU // vote_dict max_tot_rounds proposal critical? price phash expire_at cfg_dict stored_seqno public_key _141 weight_remaining _140=0 _142 s5 s7 XCHG s4 s11 XCHG s1 s10 XCHG s3 s3 s0 XCHG3 // vote_dict max_tot_rounds public_key _140=0 price phash stored_seqno cfg_dict expire_at proposal critical? _141 weight_remaining _142 begin_pack_proposal_status INLINECALLDICT // vote_dict max_tot_rounds public_key _140=0 price phash stored_seqno cfg_dict _143 s1 s7 XCHG // vote_dict cfg_dict public_key _140=0 price phash stored_seqno max_tot_rounds _143 8 STU // vote_dict cfg_dict public_key _140=0 price phash stored_seqno _145 s1 s4 XCHG // vote_dict cfg_dict public_key stored_seqno price phash _140=0 _145 16 STU // vote_dict cfg_dict public_key stored_seqno price phash _147 s0 s1 s6 XCHG3 8 PUSHPOW2 // price cfg_dict public_key stored_seqno _147 phash vote_dict _148=256 DICTUSETB // price cfg_dict public_key stored_seqno vote_dict s1 s2 XCHG // price cfg_dict stored_seqno public_key vote_dict 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 LDMSGADDR // msg_value in_msg flags _128 _127 DROP // msg_value in_msg flags s_addr DUP // msg_value in_msg flags s_addr s_addr REWRITESTDADDR // msg_value in_msg flags s_addr src_wc src_addr SWAP // msg_value in_msg flags s_addr src_addr src_wc INC // msg_value in_msg flags s_addr src_addr _16 s0 s3 XCHG 1 PUSHINT // msg_value in_msg _16 s_addr src_addr flags _17=1 AND // msg_value in_msg _16 s_addr src_addr _18 s1 s3 XCHG // msg_value in_msg src_addr s_addr _16 _18 OR // msg_value in_msg src_addr s_addr _19 s3 PUSH // msg_value in_msg src_addr s_addr _19 in_msg SEMPTY // msg_value in_msg src_addr s_addr _19 _20 OR // msg_value in_msg src_addr s_addr _21 IFJMP:<{ // msg_value in_msg src_addr s_addr 4 BLKDROP // }> // msg_value in_msg src_addr s_addr s0 s2 XCHG // msg_value s_addr src_addr in_msg 32 LDU // msg_value s_addr src_addr tag in_msg 64 LDU // msg_value s_addr src_addr tag query_id in_msg s2 PUSH 1314280276 PUSHINT // msg_value s_addr src_addr tag query_id in_msg tag _30=1314280276 EQUAL // msg_value s_addr src_addr tag query_id in_msg _31 IFJMP:<{ // msg_value s_addr src_addr tag query_id in_msg s2 POP s4 POP // query_id s_addr src_addr in_msg LDREF // query_id s_addr src_addr vset in_msg ENDS 1 PUSHINT // query_id s_addr src_addr vset _37=1 CONFIGOPTPARAM // query_id s_addr src_addr vset elector_param DUP // query_id s_addr src_addr vset elector_param elector_param ISNULL // query_id s_addr src_addr vset elector_param _40 IF:<{ // query_id s_addr src_addr vset elector_param DROP // query_id s_addr src_addr vset -1 PUSHINT // query_id s_addr src_addr vset _41=-1 }>ELSE<{ // query_id s_addr src_addr vset elector_param CTOS // query_id s_addr src_addr vset _43 256 PLDU // query_id s_addr src_addr vset _41 }> // query_id s_addr src_addr vset elector_addr s0 s2 XCHG FALSE s0 s3 XCHG // query_id s_addr ok vset src_addr elector_addr EQUAL // query_id s_addr ok vset _48 IF:<{ // query_id s_addr ok vset NIP // query_id s_addr vset DUP // query_id s_addr vset vset check_validator_set CALLDICT // query_id s_addr vset t_since t_until OVER NOW // query_id s_addr vset t_since t_until t_since t GREATER // query_id s_addr vset t_since t_until _54 s0 s2 XCHG // query_id s_addr vset _54 t_until t_since GREATER // query_id s_addr vset _54 _55 AND // query_id s_addr vset ok SWAP // query_id s_addr ok vset }> // query_id s_addr ok vset SWAP // query_id s_addr vset ok IFJMP:<{ // query_id s_addr vset 36 PUSHINT // query_id s_addr vset _57=36 SWAP // query_id s_addr _57=36 vset set_conf_param CALLDICT SWAP 4000730955 PUSHINT // s_addr query_id _59=4000730955 send_confirmation INLINECALLDICT }> // query_id s_addr vset DROP // query_id s_addr SWAP 4000730991 PUSHINT // s_addr query_id _61=4000730991 send_error INLINECALLDICT }> // msg_value s_addr src_addr tag query_id in_msg s3 POP // msg_value s_addr in_msg tag query_id OVER 1851150418 PUSHINT // msg_value s_addr in_msg tag query_id tag _63=1851150418 EQUAL // msg_value s_addr in_msg tag query_id _64 IFJMP:<{ // msg_value s_addr in_msg tag query_id NIP // msg_value s_addr in_msg query_id s0 s3 XCHG // query_id s_addr in_msg msg_value register_voting_proposal INLINECALLDICT // query_id s_addr price 64 PUSHINT // query_id s_addr price mode=64 OVER // query_id s_addr price mode=64 price NEGATE // query_id s_addr price mode=64 ans_tag s2 PUSH // query_id s_addr price mode=64 ans_tag price -1 GTINT // query_id s_addr price mode=64 ans_tag _72 IF:<{ // query_id s_addr price mode=64 ans_tag 2DROP // query_id s_addr price 4 PUSHINT // query_id s_addr price _73=4 RAWRESERVE 3998634066 PUSHINT // query_id s_addr ans_tag=3998634066 7 PUSHPOW2 // query_id s_addr ans_tag=3998634066 mode=128 }>ELSE<{ s2 POP // query_id s_addr ans_tag mode }> s2 s3 XCHG // s_addr query_id ans_tag mode send_answer CALLDICT }> // msg_value s_addr in_msg tag query_id s4 POP // query_id s_addr in_msg tag DUP 1450144869 PUSHINT // query_id s_addr in_msg tag tag _78=1450144869 EQUAL // query_id s_addr in_msg tag _79 IFJMP:<{ // query_id s_addr in_msg tag DROP // query_id s_addr in_msg 9 PUSHPOW2 // query_id s_addr in_msg _82=512 LDSLICEX // query_id s_addr signature in_msg DUP // query_id s_addr signature msg_body in_msg 32 LDU // query_id s_addr signature msg_body _88 in_msg 16 LDU // query_id s_addr signature msg_body _88 _91 in_msg 256 LDU // query_id s_addr signature msg_body sign_tag idx phash in_msg ENDS s0 s2 XCHG 1450144837 PUSHINT // query_id s_addr signature msg_body phash idx sign_tag _99=1450144837 EQUAL // query_id s_addr signature msg_body phash idx _100 37 THROWIFNOT DUP // query_id s_addr signature msg_body phash idx idx get_validator_descr INLINECALLDICT // query_id s_addr signature msg_body phash idx _147 _148 DROP // query_id s_addr signature msg_body phash idx vdescr unpack_validator_descr INLINECALLDICT // query_id s_addr signature msg_body phash idx val_pubkey weight s4 s5 s5 XCHG3 // query_id s_addr weight idx phash msg_body signature val_pubkey CHKSIGNS // query_id s_addr weight idx phash _109 34 THROWIFNOT s0 s2 XCHG // query_id s_addr phash idx weight proceed_register_vote INLINECALLDICT // query_id s_addr res 3597947456 PUSHINT // query_id s_addr res _113=3597947456 ADD // query_id s_addr _114 s1 s2 XCHG // s_addr query_id _114 send_confirmation INLINECALLDICT }> // query_id s_addr in_msg tag 3 1 BLKDROP2 // tag DUP // tag tag 0 EQINT // tag _118 SWAP 31 PUSHPOW2 // _118 tag _121 AND // _118 _122 OR // _123 37 THROWIFNOT }> recv_external PROC:<{ // in_msg 9 PUSHPOW2 // in_msg _3=512 LDSLICEX // signature in_msg DUP // signature in_msg cs 32 LDU // signature in_msg action cs 32 LDU // signature in_msg action msg_seqno cs 32 LDU // signature in_msg action msg_seqno valid_until cs SWAP NOW // signature in_msg action msg_seqno cs valid_until _19 LESS // signature in_msg action msg_seqno cs _20 35 THROWIF DUP // signature in_msg action msg_seqno cs cs SDEPTH // signature in_msg action msg_seqno cs _23 7 PUSHPOW2 // signature in_msg action msg_seqno cs _23 _24=128 GREATER // signature in_msg action msg_seqno cs _25 39 THROWIF load_data INLINECALLDICT // signature in_msg action msg_seqno cs cfg_dict stored_seqno public_key vote_dict s5 s2 XCPU // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key msg_seqno stored_seqno EQUAL // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key _33 33 THROWIFNOT s5 PUSH 1450144869 PUSHINT // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key action _35=1450144869 EQUAL // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key _36 IFJMP:<{ // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key s5 POP // signature in_msg public_key vote_dict cs cfg_dict stored_seqno s0 s2 XCHG // signature in_msg public_key vote_dict stored_seqno cfg_dict cs 16 LDU // signature in_msg public_key vote_dict stored_seqno cfg_dict _39 cs 256 LDU // signature in_msg public_key vote_dict stored_seqno cfg_dict idx phash cs ENDS OVER // signature in_msg public_key vote_dict stored_seqno cfg_dict idx phash idx get_validator_descr INLINECALLDICT // signature in_msg public_key vote_dict stored_seqno cfg_dict idx phash _96 _97 DROP // signature in_msg public_key vote_dict stored_seqno cfg_dict idx phash vdescr unpack_validator_descr INLINECALLDICT // signature in_msg public_key vote_dict stored_seqno cfg_dict idx phash val_pubkey weight s8 s9 s9 XCHG3 // weight phash public_key vote_dict stored_seqno cfg_dict idx in_msg signature val_pubkey CHKSIGNS // weight phash public_key vote_dict stored_seqno cfg_dict idx _53 34 THROWIFNOT ACCEPT s0 s2 XCHG // weight phash public_key vote_dict idx cfg_dict stored_seqno INC // weight phash public_key vote_dict idx cfg_dict _57 32 MODPOW2# // weight phash public_key vote_dict idx cfg_dict stored_seqno 2 3 BLKSWAP // weight phash idx cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT COMMIT ROT // phash idx weight proceed_register_vote INLINECALLDICT // _64 DROP // }> // signature in_msg action vote_dict cs cfg_dict stored_seqno public_key s0 s6 XCHG // signature public_key action vote_dict cs cfg_dict stored_seqno in_msg HASHSU // signature public_key action vote_dict cs cfg_dict stored_seqno _66 s0 s7 s6 XC2PU // stored_seqno public_key action vote_dict cs cfg_dict _66 signature public_key CHKSIGNU // stored_seqno public_key action vote_dict cs cfg_dict _67 34 THROWIFNOT ACCEPT s0 s5 XCHG // cfg_dict public_key action vote_dict cs stored_seqno INC // cfg_dict public_key action vote_dict cs _71 32 MODPOW2# // cfg_dict public_key action vote_dict cs stored_seqno s5 s0 s4 PUSH3 s5 PUSH // cfg_dict public_key action vote_dict cs stored_seqno cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT COMMIT s3 s5 XCHG s4 s5 s5 XCHG3 // stored_seqno vote_dict cfg_dict public_key action cs perform_action INLINECALLDICT // stored_seqno vote_dict cfg_dict public_key s3 s0 s3 XCHG3 // cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT }> run_ticktock PROC:<{ // is_tock DROP // load_data INLINECALLDICT // cfg_dict stored_seqno public_key vote_dict 32 PUSHINT // cfg_dict stored_seqno public_key vote_dict kl=32 36 PUSHINT // cfg_dict stored_seqno public_key vote_dict kl=32 _9=36 s5 s1 PUSH2 // cfg_dict stored_seqno public_key vote_dict kl=32 _9=36 cfg_dict kl=32 DICTIGETOPTREF // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset FALSE // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? OVER // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? next_vset ISNULL // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? _13 IFNOT:<{ // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? OVER // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? next_vset CTOS // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? ds DUP // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? ds ds SBITS // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? ds _16 39 GTINT // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? ds _18 IF:<{ // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? ds 8 LDU // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? tag ds 32 PLDU // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? tag since NOW // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? tag since _26 LEQ // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? tag _27 SWAP // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? _27 tag 18 EQINT // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? _27 _29 AND // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? _30 IF:<{ // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset updated? DROP // cfg_dict stored_seqno public_key vote_dict kl=32 next_vset 34 PUSHINT ROT s6 s6 XCPU // kl=32 stored_seqno public_key vote_dict next_vset _33=34 cfg_dict kl=32 DICTISETGETOPTREF // kl=32 stored_seqno public_key vote_dict cfg_dict cur_vset s5 s1 s0 PUXCPU // kl=32 stored_seqno public_key vote_dict cur_vset _36=32 cfg_dict kl=32 DICTISETGETOPTREF // kl=32 stored_seqno public_key vote_dict _52 _53 DROP // kl=32 stored_seqno public_key vote_dict cfg_dict 36 PUSHINT // kl=32 stored_seqno public_key vote_dict cfg_dict _39=36 s0 s1 s5 XCHG3 // vote_dict stored_seqno public_key _39=36 cfg_dict kl=32 DICTIDEL // vote_dict stored_seqno public_key _54 _55 DROP // vote_dict stored_seqno public_key cfg_dict s0 s3 XCHG TRUE // cfg_dict stored_seqno public_key vote_dict updated? }>ELSE<{ 2 1 BLKDROP2 // cfg_dict stored_seqno public_key vote_dict updated? }> }>ELSE<{ s1 s3 XCHG 3 BLKDROP // cfg_dict stored_seqno public_key vote_dict updated? }> }>ELSE<{ 2 1 BLKDROP2 // cfg_dict stored_seqno public_key vote_dict updated? }> IFNOT:<{ // cfg_dict stored_seqno public_key vote_dict scan_random_proposal INLINECALLDICT // cfg_dict stored_seqno public_key vote_dict }> // cfg_dict stored_seqno public_key vote_dict store_data INLINECALLDICT }> seqno PROC:<{ // c4 PUSH // _0 CTOS // _1 32 PLDU // _3 }> unpack_proposal PROCREF:<{ // pstatus unpack_proposal_status INLINECALLDICT // expires proposal critical? voters weight_remaining vset_id rest PUSHNULL // expires proposal critical? voters weight_remaining vset_id rest voters_list 32 PUSHPOW2 // expires proposal critical? voters weight_remaining vset_id rest voters_list voter_id UNTIL:<{ s5 PUSH 16 PUSHINT // expires proposal critical? voters weight_remaining vset_id rest voters_list voter_id voters _17=16 DICTUGETPREV NULLSWAPIFNOT2 // expires proposal critical? voters weight_remaining vset_id rest voters_list _48 _47 _49 s2 POP // expires proposal critical? voters weight_remaining vset_id rest voters_list f voter_id OVER // expires proposal critical? voters weight_remaining vset_id rest voters_list f voter_id f IF:<{ // expires proposal critical? voters weight_remaining vset_id rest voters_list f voter_id s0 s2 PUXC // expires proposal critical? voters weight_remaining vset_id rest voter_id f voter_id voters_list CONS // expires proposal critical? voters weight_remaining vset_id rest voter_id f voters_list s0 s2 XCHG // expires proposal critical? voters weight_remaining vset_id rest voters_list f voter_id }> // expires proposal critical? voters weight_remaining vset_id rest voters_list f voter_id SWAP // expires proposal critical? voters weight_remaining vset_id rest voters_list voter_id f NOT // expires proposal critical? voters weight_remaining vset_id rest voters_list voter_id _20 }> // expires proposal critical? voters weight_remaining vset_id rest voters_list voter_id DROP s4 POP // expires proposal critical? voters_list weight_remaining vset_id rest 8 LDU // expires proposal critical? voters_list weight_remaining vset_id _24 rest 8 LDU // expires proposal critical? voters_list weight_remaining vset_id _24 _27 rest 8 LDU // expires proposal critical? voters_list weight_remaining vset_id rounds_remaining losses wins rest ENDS s0 s7 XCHG // expires wins critical? voters_list weight_remaining vset_id rounds_remaining losses proposal parse_config_proposal INLINECALLDICT // expires wins critical? voters_list weight_remaining vset_id rounds_remaining losses param_id param_val param_hash TRIPLE // expires wins critical? voters_list weight_remaining vset_id rounds_remaining losses _39 s0 s6 XCHG s0 s7 XCHG s3 s5 XCHG s3 s4 XCHG // expires critical? _39 vset_id voters_list weight_remaining rounds_remaining losses wins 9 TUPLE // _38 }> get_proposal PROC:<{ // phash load_data INLINECALLDICT // phash _12 _13 _14 _15 3 1 BLKDROP2 // phash vote_dict 8 PUSHPOW2 // phash vote_dict _8=256 DICTUGET NULLSWAPIFNOT // pstatus found? IFNOTJMP:<{ // pstatus DROP // PUSHNULL // _10 }> // pstatus unpack_proposal INLINECALLDICT // _11 }> list_proposals PROC:<{ // load_data INLINECALLDICT // _25 _26 _27 _28 3 1 BLKDROP2 // vote_dict 256 PUSHPOW2DEC // vote_dict phash PUSHNULL // vote_dict phash list UNTIL:<{ s1 s2 XCPU 8 PUSHPOW2 // vote_dict list phash vote_dict _19=256 DICTUGETPREV NULLSWAPIFNOT2 // vote_dict list pstatus phash f DUP // vote_dict list pstatus phash f f IF:<{ // vote_dict list pstatus phash f s0 s2 XCHG // vote_dict list f phash pstatus unpack_proposal INLINECALLDICT // vote_dict list f phash _22 s1 s(-1) PUXC // vote_dict list f phash phash _22 PAIR // vote_dict list f phash _21 s0 s3 XCHG2 // vote_dict phash f _21 list CONS // vote_dict phash f list s0 s2 XCHG // vote_dict list f phash }>ELSE<{ s2 POP // vote_dict list f phash }> SWAP // vote_dict list phash f NOT // vote_dict list phash _24 s1 s2 XCHG // vote_dict phash list _24 }> // vote_dict phash list 2 1 BLKDROP2 // list }> proposal_storage_price PROC:<{ // critical? seconds bits refs c4 PUSH // critical? seconds bits refs _5 CTOS // critical? seconds bits refs _6 PLDREF // critical? seconds bits refs cfg_dict 11 PUSHINT // critical? seconds bits refs cfg_dict _9=11 SWAP 32 PUSHINT // critical? seconds bits refs _9=11 cfg_dict _10=32 DICTIGETOPTREF // critical? seconds bits refs cparam11 s1 s4 XCHG // refs seconds bits critical? cparam11 get_vote_config_internal INLINECALLDICT // refs seconds bits _32 _33 _34 _35 _36 _37 _38 _39 4 4 BLKDROP2 // refs seconds bits min_store_sec max_store_sec bit_price cell_price s5 s3 PUXC // refs seconds bits cell_price max_store_sec bit_price seconds min_store_sec LESS // refs seconds bits cell_price max_store_sec bit_price _21 IFJMP:<{ // refs seconds bits cell_price max_store_sec bit_price 6 BLKDROP // -1 PUSHINT // _22=-1 }> // refs seconds bits cell_price max_store_sec bit_price s4 s4 XCHG2 // refs bit_price bits cell_price seconds max_store_sec MIN // refs bit_price bits cell_price seconds s0 s2 XCHG 10 PUSHPOW2 // refs bit_price seconds cell_price bits _24=1024 ADD // refs bit_price seconds cell_price _25 s1 s3 XCHG // refs cell_price seconds bit_price _25 MUL // refs cell_price seconds _26 s0 s3 XCHG // _26 cell_price seconds refs 2 ADDCONST // _26 cell_price seconds _28 s1 s2 XCHG // _26 seconds cell_price _28 MUL // _26 seconds _29 s1 s2 XCHG // seconds _26 _29 ADD // seconds _30 SWAP // _30 seconds MUL // _31 }> }END>c