"Asm.fif" include // automatically generated from `contracts/nft-item.fc` incl:`contracts/imports/dns-utils.fc` incl:`contracts/imports/stdlib.fc` incl:`contracts/imports/op-codes.fc` incl:`contracts/imports/params.fc` PROGRAM{ DECLPROC zero_address DECLPROC get_top_domain_bits DECLPROC read_comment DECLPROC read_domain_from_comment DECLPROC check_domain_string DECLPROC split_by_semicolon DECLPROC decode_asciicode DECLPROC get_min_price_config DECLPROC price_function DECLPROC get_min_price DECLPROC force_chain DECLPROC load_data DECLPROC store_data DECLPROC send_msg DECLPROC transfer_ownership DECLPROC recv_internal 102351 DECLMETHOD get_nft_data 90228 DECLMETHOD get_editor 119378 DECLMETHOD get_domain 91481 DECLMETHOD get_last_fill_up_time 123660 DECLMETHOD dnsresolve zero_address PROC:<{ // 0 PUSHINT // _0=0 NEWC // _0=0 _1 2 STU // _3 ENDC // _4 CTOS // _5 }> get_top_domain_bits PROC:<{ // domain 0 PUSHINT // domain i=0 UNTIL:<{ SWAP // i domain 8 LDU // i char domain SWAP // i domain char 0 EQINT // i domain need_break DUP // i domain need_break need_break NOT // i domain need_break _11 IF:<{ // i domain need_break s0 s2 XCHG // need_break domain i 8 ADDCONST // need_break domain i s0 s2 XCHG // i domain need_break }> // i domain need_break s1 s2 XCHG // domain i need_break }> // domain i NIP // i DUP // i i 0 EQINT // i _16 201 THROWIF }> read_comment PROC:<{ // in_msg_body NEWC // in_msg_body result UNTIL:<{ OVER // in_msg_body result in_msg_body SBITS // in_msg_body result _6 s1 s2 XCHG // result in_msg_body _6 LDSLICEX // result _5 in_msg_body -ROT // in_msg_body result _5 STSLICER // in_msg_body result OVER // in_msg_body result in_msg_body SREFS // in_msg_body result refs_len DUP // in_msg_body result refs_len refs_len 0 EQINT // in_msg_body result refs_len need_break DUP // in_msg_body result refs_len need_break need_break NOT // in_msg_body result refs_len need_break _13 IF:<{ // in_msg_body result refs_len need_break SWAP // in_msg_body result need_break refs_len 1 EQINT // in_msg_body result need_break _16 202 THROWIFNOT s0 s2 XCHG // need_break result in_msg_body LDREF // need_break result _26 _25 DROP // need_break result _18 CTOS // need_break result in_msg_body s0 s2 XCHG // in_msg_body result need_break }>ELSE<{ NIP // in_msg_body result need_break }> }> // in_msg_body result NIP // result ENDC // _21 CTOS // _22 }> read_domain_from_comment PROC:<{ // in_msg_body read_comment CALLDICT // _1 }> check_domain_string PROC:<{ // domain 0 PUSHINT // domain i=0 OVER // domain i=0 domain SBITS // domain i=0 len UNTIL:<{ 2DUP // domain i len i len EQUAL // domain i len need_break DUP // domain i len need_break need_break NOT // domain i len need_break _8 IF:<{ // domain i len need_break DROP // domain i len s0 s2 XCHG // len i domain 8 LDU // len i char domain OVER // len i char domain char 45 EQINT // len i char domain is_hyphen s3 PUSH // len i char domain is_hyphen i 0 GTINT // len i char domain is_hyphen _18 AND // len i char domain _19 s4 PUSH // len i char domain _19 len -8 ADDCONST // len i char domain _19 _21 s4 s(-1) PUXC // len i char domain _19 i _21 LESS // len i char domain _19 _22 AND // len i char domain _23 s2 PUSH // len i char domain _23 char 47 GTINT // len i char domain _23 _25 s3 PUSH // len i char domain _23 _25 char 58 LESSINT // len i char domain _23 _25 _27 AND // len i char domain _23 _28 OR // len i char domain _29 s2 PUSH // len i char domain _29 char 96 GTINT // len i char domain _29 _31 s0 s3 XCHG // len i _31 domain _29 char 123 LESSINT // len i _31 domain _29 _33 s1 s3 XCHG // len i _29 domain _31 _33 AND // len i _29 domain _34 s1 s2 XCHG // len i domain _29 _34 OR // len i domain valid_char NOT // len i domain need_break DUP // len i domain need_break need_break NOT // len i domain need_break _37 IF:<{ // len i domain need_break s0 s2 XCHG // len need_break domain i 8 ADDCONST // len need_break domain i s0 s2 XCHG // len i domain need_break }> // len i domain need_break s1 s3 XCHG // domain i len need_break }> // domain i len need_break }> // domain i len 1 2 BLKDROP2 // i len EQUAL // _40 }> split_by_semicolon PROC:<{ // str 0 PUSHINT // str i=0 OVER // str i=0 str SBITS // str i=0 len NEWC // str i=0 len result1 UNTIL:<{ s2 s1 PUSH2 // str i len result1 i len EQUAL // str i len result1 need_break DUP // str i len result1 need_break need_break NOT // str i len result1 need_break _10 IF:<{ // str i len result1 need_break DROP // str i len result1 s0 s3 XCHG // result1 i len str 8 LDU // result1 i len char str OVER // result1 i len char str char 59 EQINT // result1 i len char str need_break s0 s4 XCHG // result1 need_break len char str i 8 ADDCONST // result1 need_break len char str i s4 PUSH // result1 need_break len char str i need_break NOT // result1 need_break len char str i _19 IF:<{ // result1 need_break len char str i s2 s5 XCHG2 // i need_break len str char result1 8 STU // i need_break len str result1 s4 s4 XCHG2 // result1 need_break len i str }>ELSE<{ s2 POP // result1 need_break len i str }> s3 PUSH // result1 need_break len i str need_break NOT // result1 need_break len i str _23 s2 s3 PUSH2 // result1 need_break len i str _23 i len GEQ // result1 need_break len i str _23 _24 AND // result1 need_break len i str _25 IF:<{ // result1 need_break len i str 259 THROW }> // result1 need_break len i str s4 s4 XCHG2 s0 s3 XCHG // str i len result1 need_break }> // str i len result1 need_break }> // str i len result1 ENDC // str i len _28 CTOS // str i len _29 s0 s2 XCHG // str _29 len i SUB // str _29 _31 s1 s2 XCHG // _29 str _31 LDSLICEX // _29 _36 _35 DROP // _29 _30 }> decode_asciicode PROC:<{ // str DUP // str str SBITS // str len 0 PUSHINT // str len need_break=0 NEWC // str len need_break=0 result OVER // str len need_break=0 result res_len=0 WHILE:<{ s0 s2 XCHG // str len res_len result need_break NOT // str len res_len result _9 }>DO<{ // str len res_len result s2 PUSH // str len res_len result len 0 EQINT // str len res_len result need_break DUP // str len res_len result need_break need_break NOT // str len res_len result need_break _12 IF:<{ // str len res_len result need_break s0 s4 XCHG // need_break len res_len result str 8 LDU // need_break len res_len result char str 0 PUSHINT // need_break len res_len result char str byte=0 s2 PUSH // need_break len res_len result char str byte=0 char 64 GTINT // need_break len res_len result char str byte=0 _20 s3 PUSH // need_break len res_len result char str byte=0 _20 char 91 LESSINT // need_break len res_len result char str byte=0 _20 _22 AND // need_break len res_len result char str byte=0 _23 IF:<{ // need_break len res_len result char str byte=0 DROP // need_break len res_len result char str SWAP // need_break len res_len result str char -65 ADDCONST // need_break len res_len result str byte }>ELSE<{ // need_break len res_len result char str byte=0 s2 PUSH // need_break len res_len result char str byte=0 char 96 GTINT // need_break len res_len result char str byte=0 _27 s3 PUSH // need_break len res_len result char str byte=0 _27 char 123 LESSINT // need_break len res_len result char str byte=0 _27 _29 AND // need_break len res_len result char str byte=0 _30 IF:<{ // need_break len res_len result char str byte=0 DROP // need_break len res_len result char str SWAP // need_break len res_len result str char -71 ADDCONST // need_break len res_len result str byte }>ELSE<{ // need_break len res_len result char str byte=0 s2 PUSH // need_break len res_len result char str byte=0 char 47 GTINT // need_break len res_len result char str byte=0 _34 s3 PUSH // need_break len res_len result char str byte=0 _34 char 58 LESSINT // need_break len res_len result char str byte=0 _34 _36 AND // need_break len res_len result char str byte=0 _37 IF:<{ // need_break len res_len result char str byte=0 DROP // need_break len res_len result char str SWAP // need_break len res_len result str char 4 ADDCONST // need_break len res_len result str byte }>ELSE<{ // need_break len res_len result char str byte=0 s2 PUSH // need_break len res_len result char str byte=0 char 45 EQINT // need_break len res_len result char str byte=0 _41 IF:<{ // need_break len res_len result char str byte=0 DROP NIP // need_break len res_len result str 62 PUSHINT // need_break len res_len result str byte=62 }>ELSE<{ // need_break len res_len result char str byte=0 s0 s2 XCHG // need_break len res_len result byte=0 str char 95 EQINT // need_break len res_len result byte=0 str _44 IF:<{ // need_break len res_len result byte=0 str NIP // need_break len res_len result str 63 PUSHINT // need_break len res_len result str byte=63 }>ELSE<{ // need_break len res_len result byte=0 str 260 THROW SWAP // need_break len res_len result str byte }> }> }> }> }> s0 s4 XCHG // need_break byte res_len result str len -8 ADDCONST // need_break byte res_len result str len DUP // need_break byte res_len result str len len 0 GTINT // need_break byte res_len result str len _51 IF:<{ // need_break byte res_len result str len s4 s2 XCHG2 // need_break str res_len len byte result 6 STU // need_break str res_len len result }>ELSE<{ // need_break byte res_len result str len 8 PUSHINT // need_break byte res_len result str len _56=8 s4 s0 PUSH2 // need_break byte res_len result str len _56=8 res_len _57=8 MOD // need_break byte res_len result str len _56=8 _58 SUB // need_break byte res_len result str len _59 s5 s3 s0 XCHG3 // need_break str res_len len byte result _59 STUX // need_break str res_len len result }> s0 s2 XCHG // need_break str result len res_len 6 ADDCONST // need_break str result len res_len s0 s0 s3 XCHG3 s0 s4 XCHG // str len res_len result need_break }> // str len res_len result need_break s0 s2 XCHG // str len need_break result res_len }> // str len res_len result 3 1 BLKDROP2 // result ENDC // _63 CTOS // _64 }> get_min_price_config PROC:<{ // domain_char_count DUP // domain_char_count domain_char_count 4 EQINT // domain_char_count _2 IFJMP:<{ // domain_char_count DROP // 1000 PUSHINT // _3=1000 100 PUSHINT // _3=1000 _4=100 }> // domain_char_count DUP // domain_char_count domain_char_count 5 EQINT // domain_char_count _6 IFJMP:<{ // domain_char_count DROP // 500 PUSHINT // _7=500 50 PUSHINT // _7=500 _8=50 }> // domain_char_count DUP // domain_char_count domain_char_count 6 EQINT // domain_char_count _10 IFJMP:<{ // domain_char_count DROP // 400 PUSHINT // _11=400 40 PUSHINT // _11=400 _12=40 }> // domain_char_count DUP // domain_char_count domain_char_count 7 EQINT // domain_char_count _14 IFJMP:<{ // domain_char_count DROP // 300 PUSHINT // _15=300 30 PUSHINT // _15=300 _16=30 }> // domain_char_count DUP // domain_char_count domain_char_count 8 EQINT // domain_char_count _18 IFJMP:<{ // domain_char_count DROP // 200 PUSHINT // _19=200 20 PUSHINT // _19=200 _20=20 }> // domain_char_count DUP // domain_char_count domain_char_count 9 EQINT // domain_char_count _22 IFJMP:<{ // domain_char_count DROP // 100 PUSHINT // _23=100 10 PUSHINT // _23=100 _24=10 }> // domain_char_count 10 EQINT // _26 IFJMP:<{ // 50 PUSHINT // _27=50 5 PUSHINT // _27=50 _28=5 }> // 10 PUSHINT // _29=10 1 PUSHINT // _29=10 _30=1 }> price_function PROC:<{ // length multiplierx50 steepness 25 PUSHINT // length multiplierx50 steepness price=25 s3 PUSH // length multiplierx50 steepness price=25 length 3 EQINT // length multiplierx50 steepness price=25 _6 IF:<{ // length multiplierx50 steepness price=25 DROP // length multiplierx50 steepness 100 PUSHINT // length multiplierx50 steepness price=100 }> // length multiplierx50 steepness price s3 PUSH // length multiplierx50 steepness price length 4 EQINT // length multiplierx50 steepness price _9 IF:<{ // length multiplierx50 steepness price DROP // length multiplierx50 steepness 50 PUSHINT // length multiplierx50 steepness price=50 }> // length multiplierx50 steepness price s3 PUSH // length multiplierx50 steepness price length 5 EQINT // length multiplierx50 steepness price _12 IF:<{ // length multiplierx50 steepness price DROP // length multiplierx50 steepness 25 PUSHINT // length multiplierx50 steepness price=25 }> // length multiplierx50 steepness price s3 PUSH // length multiplierx50 steepness price length 6 EQINT // length multiplierx50 steepness price _15 IF:<{ // length multiplierx50 steepness price DROP // length multiplierx50 steepness 20 PUSHINT // length multiplierx50 steepness price=20 }> // length multiplierx50 steepness price s3 PUSH // length multiplierx50 steepness price length 7 EQINT // length multiplierx50 steepness price _18 IF:<{ // length multiplierx50 steepness price DROP // length multiplierx50 steepness 15 PUSHINT // length multiplierx50 steepness price=15 }> // length multiplierx50 steepness price s3 PUSH // length multiplierx50 steepness price length 8 EQINT // length multiplierx50 steepness price _21 IF:<{ // length multiplierx50 steepness price DROP // length multiplierx50 steepness 10 PUSHINT // length multiplierx50 steepness price=10 }> // length multiplierx50 steepness price s0 s3 XCHG // price multiplierx50 steepness length 8 GTINT // price multiplierx50 steepness _24 IF:<{ // price multiplierx50 steepness 5 PUSHINT s3 POP // price=5 multiplierx50 steepness }> // price multiplierx50 steepness s0 s2 PUXC // steepness multiplierx50 steepness price MUL // steepness multiplierx50 _26 10 PUSHINT // steepness multiplierx50 _26 _27=10 s0 s3 XCHG2 // _26 multiplierx50 _27=10 steepness SUB // _26 multiplierx50 _28 25 MULCONST // _26 multiplierx50 _30 s1 s2 XCHG // multiplierx50 _26 _30 ADD // multiplierx50 _31 10 PUSHINT // multiplierx50 _31 _32=10 DIV // multiplierx50 price 1000000000 PUSHINT // multiplierx50 price _34=1000000000 MUL // multiplierx50 _35 SWAP // _35 multiplierx50 MUL // _36 50 PUSHINT // _36 _37=50 DIV // _38 }> get_min_price PROC:<{ // domain_bits_length now_time SWAP // now_time domain_bits_length 3 RSHIFT# // now_time _5 get_min_price_config CALLDICT // now_time start_min_price end_min_price SWAP 1000000000 PUSHINT // now_time end_min_price start_min_price _7=1000000000 MUL // now_time end_min_price start_min_price SWAP 1000000000 PUSHINT // now_time start_min_price end_min_price _9=1000000000 MUL // now_time start_min_price end_min_price s0 s2 XCHG 1659171600 PUSHINT // end_min_price start_min_price now_time _12=1659171600 SUB // end_min_price start_min_price seconds 2592000 PUSHINT // end_min_price start_min_price seconds _15=2592000 DIV // end_min_price start_min_price months DUP // end_min_price start_min_price months months 21 GTINT // end_min_price start_min_price months _18 IFJMP:<{ // end_min_price start_min_price months 2DROP // end_min_price }> // end_min_price start_min_price months 1 2 BLKDROP2 // start_min_price months REPEAT:<{ // start_min_price 90 MULCONST // _20 100 PUSHINT // _20 _21=100 DIV // start_min_price }> }> force_chain PROC:<{ // addr REWRITESTDADDR // _8 _9 DROP // wc 0 PUSHINT // wc _5 EQUAL // _6 333 THROWIFNOT }> load_data PROC:<{ // c4 PUSH // _1 CTOS // ds 256 LDU // _5 ds LDMSGADDR // index collection_address ds DUP // index collection_address ds ds SBITS // index collection_address ds _10 0 GTINT // index collection_address ds _12 IFJMP:<{ // index collection_address ds -1 PUSHINT // index collection_address ds _13=-1 SWAP // index collection_address _13=-1 ds LDMSGADDR // index collection_address _13=-1 _14 ds LDREF // index collection_address _13=-1 _14 _16 ds LDREF // index collection_address _13=-1 _14 _16 _18 ds LDREF // index collection_address _13=-1 _14 _16 _18 _20 ds 64 LDU // index collection_address _13=-1 _14 _16 _18 _20 _44 _43 DROP // index collection_address _13=-1 _14 _16 _18 _20 _22 s5 s7 XCHG s5 s6 XCHG // _13=-1 index collection_address _14 _16 _18 _20 _22 }> // index collection_address ds DROP // index collection_address 0 PUSHINT // index collection_address _25=0 PUSHNULL // index collection_address _25=0 _26 PUSHNULL // index collection_address _25=0 _26 _27 PUSHNULL // index collection_address _25=0 _26 _27 _28 PUSHNULL // index collection_address _25=0 _26 _27 _28 _29 s4 PUSH // index collection_address _25=0 _26 _27 _28 _29 _30=0 s5 s7 XCHG s5 s6 XCHG // _25=0 index collection_address _26 _27 _28 _29 _30=0 }> store_data PROC:<{ // index collection_address owner_address content uri domain last_fill_up_time s0 s6 XCHG NEWC // last_fill_up_time collection_address owner_address content uri domain index _7 256 STU // last_fill_up_time collection_address owner_address content uri domain _9 s0 s5 XCHG2 // last_fill_up_time domain owner_address content uri _9 collection_address STSLICER // last_fill_up_time domain owner_address content uri _10 s0 s3 XCHG2 // last_fill_up_time domain uri content _10 owner_address STSLICER // last_fill_up_time domain uri content _11 STREF // last_fill_up_time domain uri _12 STREF // last_fill_up_time domain _13 STREF // last_fill_up_time _14 64 STU // _16 ENDC // _17 c4 POP }> send_msg PROCINLINE:<{ // to_address amount op query_id payload send_mode 0 PUSHINT // to_address amount op query_id payload send_mode _7=0 16 PUSHINT // to_address amount op query_id payload send_mode _7=0 _8=16 NEWC // to_address amount op query_id payload send_mode _7=0 _8=16 _9 6 STU // to_address amount op query_id payload send_mode _7=0 _11 s0 s7 XCHG2 // _7=0 amount op query_id payload send_mode _11 to_address STSLICER // _7=0 amount op query_id payload send_mode _12 s0 s5 XCHG2 // _7=0 send_mode op query_id payload _12 amount STVARUINT16 // _7=0 send_mode op query_id payload _13 s1 s5 XCHG // payload send_mode op query_id _7=0 _13 107 STU // payload send_mode op query_id _27 s1 s2 XCHG // payload send_mode query_id op _27 32 STU // payload send_mode query_id _29 64 STU // payload send_mode msg s2 PUSH // payload send_mode msg payload ISNULL // payload send_mode msg _32 NOT // payload send_mode msg _33 IF:<{ // payload send_mode msg ROT // send_mode msg payload STBR // send_mode msg SWAP // msg send_mode }>ELSE<{ s2 POP // msg send_mode }> SWAP // send_mode msg ENDC // send_mode _35 SWAP // _35 send_mode SENDRAWMSG }> transfer_ownership PROCINLINE:<{ // my_balance index collection_address owner_address content uri sender_address query_id in_msg_body fwd_fees domain s4 POP // my_balance index collection_address owner_address content uri domain query_id in_msg_body fwd_fees SWAP // my_balance index collection_address owner_address content uri domain query_id fwd_fees in_msg_body LDMSGADDR // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address in_msg_body OVER // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address in_msg_body new_owner_address force_chain CALLDICT LDMSGADDR // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination in_msg_body 1 LDI // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination _57 _56 NIP // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination in_msg_body LDVARUINT16 // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount in_msg_body 500000000 PUSHINT // my_balance index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount in_msg_body _25 s1 s13 XCHG // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount my_balance _25 SUB // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount OVER // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount forward_amount IF:<{ // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount s1 s4 PUSH2 // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount forward_amount fwd_fees ADD // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount _27 SUB // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount }> // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount s2 PUSH // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount response_destination 2 PLDU // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount _31 0 NEQINT // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount need_response DUP // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount need_response need_response IF:<{ // in_msg_body index collection_address owner_address content uri domain query_id fwd_fees new_owner_address response_destination forward_amount rest_amount need_response s0 s5 XCHG // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount fwd_fees SUB // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount }>ELSE<{ s5 POP // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount }> DUP // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount rest_amount -1 GTINT // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount _37 402 THROWIFNOT OVER // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount forward_amount IF:<{ // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount 0x05138d91 PUSHINT // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount _39 NEWC // in_msg_body index collection_address owner_address content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount _39 _40 s0 s11 XCHG2 // in_msg_body index collection_address _39 content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount _40 owner_address STSLICER // in_msg_body index collection_address _39 content uri domain query_id need_response new_owner_address response_destination forward_amount rest_amount _41 s0 s13 XCHG2 // rest_amount index collection_address _39 content uri domain query_id need_response new_owner_address response_destination forward_amount _41 in_msg_body STSLICER // rest_amount index collection_address _39 content uri domain query_id need_response new_owner_address response_destination forward_amount _42 1 PUSHINT // rest_amount index collection_address _39 content uri domain query_id need_response new_owner_address response_destination forward_amount _42 _43=1 s4 PUSH s11 s1 s4 XCHG3 s7 s11 s(-1) PUXC2 // rest_amount index collection_address response_destination content uri domain query_id need_response new_owner_address new_owner_address forward_amount _39 query_id _42 _43=1 send_msg INLINECALLDICT s6 s9 XCHG // response_destination index collection_address rest_amount content uri domain query_id need_response new_owner_address }>ELSE<{ s2 s12 XCHG s9 POP 2DROP // response_destination index collection_address rest_amount content uri domain query_id need_response new_owner_address }> SWAP // response_destination index collection_address rest_amount content uri domain query_id new_owner_address need_response IF:<{ // response_destination index collection_address rest_amount content uri domain query_id new_owner_address s8 PUSH // response_destination index collection_address rest_amount content uri domain query_id new_owner_address response_destination force_chain CALLDICT 0xd53276db PUSHINT // response_destination index collection_address rest_amount content uri domain query_id new_owner_address _46 s3 s9 XCHG s6 s0 s6 XCHG3 PUSHNULL 1 PUSHINT // domain index collection_address new_owner_address content uri response_destination rest_amount _46 query_id _47 _48=1 send_msg INLINECALLDICT }>ELSE<{ s2 s8 XCHG s5 POP 2DROP // domain index collection_address new_owner_address content uri }> 5 ROLL NOW // index collection_address new_owner_address content uri domain _50 store_data CALLDICT }> recv_internal PROC:<{ // msg_value in_msg_full in_msg_body BALANCE // msg_value in_msg_full in_msg_body _4 FIRST // msg_value in_msg_full in_msg_body my_balance s0 s2 XCHG // msg_value my_balance in_msg_body in_msg_full CTOS // msg_value my_balance in_msg_body cs 4 LDU // msg_value my_balance in_msg_body flags cs SWAP 1 PUSHINT // msg_value my_balance in_msg_body cs flags _12=1 AND // msg_value my_balance in_msg_body cs _13 IFJMP:<{ // msg_value my_balance in_msg_body cs 4 BLKDROP // }> // msg_value my_balance in_msg_body cs LDMSGADDR // msg_value my_balance in_msg_body sender_address cs LDMSGADDR // msg_value my_balance in_msg_body sender_address _238 _237 NIP // msg_value my_balance in_msg_body sender_address cs LDVARUINT16 // msg_value my_balance in_msg_body sender_address _240 _239 NIP // msg_value my_balance in_msg_body sender_address cs 1 PUSHINT // msg_value my_balance in_msg_body sender_address cs _22=1 SDSKIPFIRST // msg_value my_balance in_msg_body sender_address cs LDVARUINT16 // msg_value my_balance in_msg_body sender_address _242 _241 NIP // msg_value my_balance in_msg_body sender_address cs LDVARUINT16 // msg_value my_balance in_msg_body sender_address _244 _243 DROP // msg_value my_balance in_msg_body sender_address fwd_fee load_data CALLDICT // msg_value my_balance in_msg_body sender_address fwd_fee _245 _246 _247 _248 _249 _250 _251 _252 DROP // msg_value my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri domain s6 PUSH // msg_value my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri domain init? NOT // msg_value my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri domain _38 IFJMP:<{ // msg_value my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri domain 4 BLKDROP s2 POP s5 POP // msg_value index in_msg_body sender_address fwd_fee collection_address s0 s2 PUXC // msg_value index in_msg_body collection_address fwd_fee collection_address sender_address SDEQ // msg_value index in_msg_body collection_address fwd_fee _40 405 THROWIFNOT s0 s2 XCHG // msg_value index fwd_fee collection_address in_msg_body LDMSGADDR // msg_value index fwd_fee collection_address from_address in_msg_body LDREF // msg_value index fwd_fee collection_address from_address domain in_msg_body LDREF // msg_value index fwd_fee collection_address from_address domain _258 _257 DROP // msg_value index fwd_fee collection_address from_address domain _49 CTOS // msg_value index fwd_fee collection_address from_address domain attachment LDREF // msg_value index fwd_fee collection_address from_address domain uri attachment LDREF // msg_value index fwd_fee collection_address from_address domain uri img_uri attachment LDREF // msg_value index fwd_fee collection_address from_address domain uri img_uri name attachment LDREF // msg_value index fwd_fee collection_address from_address domain uri img_uri name _266 _265 DROP // msg_value index fwd_fee collection_address from_address domain uri img_uri name description NEWDICT // msg_value index fwd_fee collection_address from_address domain uri img_uri name description content_dict s1 s3 XCHG 43884663033947008978309661017057008345326326811558777475113826163084742639165 PUSHINT SWAP 8 PUSHPOW2 // msg_value index fwd_fee collection_address from_address domain uri description name img_uri _67=43884663033947008978309661017057008345326326811558777475113826163084742639165 content_dict _68=256 DICTUSETREF // msg_value index fwd_fee collection_address from_address domain uri description name content_dict 59089242681608890680090686026688704441792375738894456860693970539822503415433 PUSHINT // msg_value index fwd_fee collection_address from_address domain uri description name content_dict _71=59089242681608890680090686026688704441792375738894456860693970539822503415433 SWAP 8 PUSHPOW2 // msg_value index fwd_fee collection_address from_address domain uri description name _71=59089242681608890680090686026688704441792375738894456860693970539822503415433 content_dict _72=256 DICTUSETREF // msg_value index fwd_fee collection_address from_address domain uri description content_dict 90922719342317012409671596374183159143637506542604000676488204638996496437508 PUSHINT // msg_value index fwd_fee collection_address from_address domain uri description content_dict _75=90922719342317012409671596374183159143637506542604000676488204638996496437508 SWAP 8 PUSHPOW2 // msg_value index fwd_fee collection_address from_address domain uri description _75=90922719342317012409671596374183159143637506542604000676488204638996496437508 content_dict _76=256 DICTUSETREF // msg_value index fwd_fee collection_address from_address domain uri content_dict 0 PUSHINT // msg_value index fwd_fee collection_address from_address domain uri content_dict _79=0 NEWC // msg_value index fwd_fee collection_address from_address domain uri content_dict _79=0 _80 8 STU // msg_value index fwd_fee collection_address from_address domain uri content_dict _82 STDICT // msg_value index fwd_fee collection_address from_address domain uri _83 ENDC // msg_value index fwd_fee collection_address from_address domain uri content s4 PUSH s5 s7 XCHG s0 s4 XCHG s2 s3 XCHG2 NOW // msg_value collection_address fwd_fee index collection_address from_address content uri domain _85 store_data CALLDICT s1 s2 XCHG // collection_address msg_value fwd_fee SUB // collection_address _88 500000000 PUSHINT // collection_address _88 _89 SUB // collection_address rest_amount DUP // collection_address rest_amount rest_amount 0 GTINT // collection_address rest_amount _92 IF:<{ // collection_address rest_amount 0xd53276db PUSHINT // collection_address rest_amount _93 0 PUSHINT // collection_address rest_amount _93 _94=0 PUSHNULL // collection_address rest_amount _93 _94=0 _95 1 PUSHINT // collection_address rest_amount _93 _94=0 _95 _96=1 send_msg INLINECALLDICT }>ELSE<{ 2DROP // }> }> // msg_value my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri domain s11 POP // domain my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri s3 s7 PUSH2 // domain my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri collection_address sender_address SDEQ // domain my_balance in_msg_body sender_address fwd_fee init? index collection_address owner_address content uri _98 s1 s6 XCHG // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content init? _98 AND // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content _99 IFJMP:<{ // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content s7 s9 XCHG 9 BLKDROP // in_msg_body LDMSGADDR // _268 _267 DROP // from_address 0 PUSHINT // from_address _103=0 DUP // from_address _103=0 _104=0 LTIME // from_address _103=0 _104=0 _105 PUSHNULL // from_address _103=0 _104=0 _105 _106 64 PUSHINT // from_address _103=0 _104=0 _105 _106 _107=64 send_msg INLINECALLDICT }> // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content s7 PUSH // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content in_msg_body SEMPTY // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content _110 IF:<{ // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content 0 PUSHINT // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content _111=0 }>ELSE<{ // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content s0 s7 XCHG // domain my_balance content sender_address fwd_fee uri index collection_address owner_address in_msg_body 32 LDU // domain my_balance content sender_address fwd_fee uri index collection_address owner_address _111 in_msg_body s8 s8 XCHG2 // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content _111 }> // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content op DUP // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content op op 0 EQINT // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content op _117 IFJMP:<{ // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content op DROP s5 POP s5 POP s5 POP s5 POP // domain index collection_address owner_address content uri 5 ROLL NOW // index collection_address owner_address content uri domain _118 store_data CALLDICT }> // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content op s0 s8 XCHG // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content in_msg_body 64 LDU // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body 0x5fcc3d14 PUSHINT // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body _124 s10 s(-1) PUXC // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body op _124 EQUAL // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body _125 IFJMP:<{ // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body s9 POP // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content query_id s7 s2 PUSH2 // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content query_id sender_address owner_address SDEQ // domain my_balance in_msg_body sender_address fwd_fee uri index collection_address owner_address content query_id _127 401 THROWIFNOT s9 s10 XCHG s4 s9 XCHG s3 s8 XCHG s7 s6 s0 XCHG3 s4 s1 s3 XCHG3 s0 s2 XCHG // my_balance index collection_address owner_address content uri sender_address query_id in_msg_body fwd_fee domain transfer_ownership INLINECALLDICT }> // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body 0x1a0b9d51 PUSHINT // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body _130 s10 s(-1) PUXC // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body op _130 EQUAL // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body _131 IFJMP:<{ // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body s6 POP 2DROP s4 POP s5 POP s5 POP // domain index collection_address sender_address owner_address in_msg_body s2 s1 XCPU // domain index collection_address in_msg_body owner_address sender_address owner_address SDEQ // domain index collection_address in_msg_body owner_address _133 410 THROWIFNOT SWAP // domain index collection_address owner_address in_msg_body LDREF // domain index collection_address owner_address _135 in_msg_body LDREF // domain index collection_address owner_address _135 _276 _275 DROP // domain index collection_address owner_address _135 _137 5 ROLL NOW // index collection_address owner_address _135 _137 domain _139 store_data CALLDICT }> // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body s9 PUSH 1320284409 PUSHINT // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body op _141=1320284409 EQUAL // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body _142 IFJMP:<{ // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body NIP s6 POP s7 POP s7 POP // domain owner_address content sender_address in_msg_body uri index collection_address s4 s6 XCPU // domain owner_address content collection_address in_msg_body uri index sender_address owner_address SDEQ // domain owner_address content collection_address in_msg_body uri index _144 411 THROWIFNOT s0 s2 XCHG // domain owner_address content collection_address index uri in_msg_body 256 LDU // domain owner_address content collection_address index uri key in_msg_body DUP // domain owner_address content collection_address index uri key in_msg_body in_msg_body SREFS // domain owner_address content collection_address index uri key in_msg_body _151 0 GTINT // domain owner_address content collection_address index uri key in_msg_body has_value s0 s6 XCHG // domain owner_address has_value collection_address index uri key in_msg_body content CTOS // domain owner_address has_value collection_address index uri key in_msg_body cs 8 LDU // domain owner_address has_value collection_address index uri key in_msg_body _157 cs SWAP // domain owner_address has_value collection_address index uri key in_msg_body cs _157 0 EQINT // domain owner_address has_value collection_address index uri key in_msg_body cs _161 412 THROWIFNOT LDDICT // domain owner_address has_value collection_address index uri key in_msg_body _282 _281 DROP // domain owner_address has_value collection_address index uri key in_msg_body keyvalue_map s0 s6 XCHG // domain owner_address keyvalue_map collection_address index uri key in_msg_body has_value IF:<{ // domain owner_address keyvalue_map collection_address index uri key in_msg_body LDREF // domain owner_address keyvalue_map collection_address index uri key _284 _283 DROP // domain owner_address keyvalue_map collection_address index uri key value s0 s1 s5 XCHG3 8 PUSHPOW2 // domain owner_address uri collection_address index value key keyvalue_map _170=256 DICTUSETREF // domain owner_address uri collection_address index keyvalue_map }>ELSE<{ // domain owner_address keyvalue_map collection_address index uri key in_msg_body DROP // domain owner_address keyvalue_map collection_address index uri key s0 s4 XCHG2 8 PUSHPOW2 // domain owner_address uri collection_address index key keyvalue_map _173=256 DICTUDEL // domain owner_address uri collection_address index _285 _286 DROP // domain owner_address uri collection_address index keyvalue_map }> 0 PUSHINT // domain owner_address uri collection_address index keyvalue_map _175=0 NEWC // domain owner_address uri collection_address index keyvalue_map _175=0 _176 8 STU // domain owner_address uri collection_address index keyvalue_map _178 STDICT // domain owner_address uri collection_address index _179 ENDC // domain owner_address uri collection_address index content s0 s1 s4 XCHG3 s3 s3 XCHG2 s0 s5 XCHG NOW // index collection_address owner_address content uri domain _181 store_data CALLDICT }> // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id in_msg_body DROP // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id s8 PUSH 1153347137 PUSHINT // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id op _183=1153347137 EQUAL // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id _184 IFJMP:<{ // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id s8 POP // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content 80 PUSHINT // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content _186=80 CONFIGOPTPARAM // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content _187 CTOS // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content cs LDDICT // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content _288 _287 DROP // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config s4 s(-1) PUXC 8 PUSHPOW2 // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content index config _194=256 DICTUGET NULLSWAPIFNOT // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_value found 415 THROWIFNOT 8 LDU // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value OVER // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value config_op 0 EQINT // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value _204 s2 PUSH // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value _204 config_op 1 EQINT // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value _204 _206 OR // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value _207 416 THROWIFNOT OVER // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value config_op 0 EQINT // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value _210 IF:<{ // domain my_balance query_id sender_address fwd_fee uri index collection_address owner_address content config_op config_value s4 PUSH s9 s11 XCHG s6 s8 XCHG s0 s7 XCHG s4 s6 XCHG s3 s5 XCHG s4 s10 XCPU s4 s12 XCHG s0 s3 XCHG s0 s13 XCHG // config_op collection_address query_id my_balance index collection_address owner_address content uri sender_address query_id config_value fwd_fee domain transfer_ownership INLINECALLDICT s1 s2 XCHG // collection_address config_op query_id }>ELSE<{ DROP s3 s10 XCHG s9 POP 7 BLKDROP // collection_address config_op query_id }> SWAP // collection_address query_id config_op 1 EQINT // collection_address query_id _213 IF:<{ // collection_address query_id 0 PUSHINT // collection_address query_id _214=0 923790417 PUSHINT ROT PUSHNULL 160 PUSHINT // collection_address _214=0 _215=923790417 query_id _216 _219 send_msg INLINECALLDICT }>ELSE<{ 2DROP // }> }> // domain my_balance op sender_address fwd_fee uri index collection_address owner_address content query_id s5 POP 2DROP s3 POP s5 POP s5 POP // query_id index op sender_address collection_address 0x2fcb26a2 PUSHINT // query_id index op sender_address collection_address _221 s1 s3 XCHG // query_id index collection_address sender_address op _221 EQUAL // query_id index collection_address sender_address _222 IFJMP:<{ // query_id index collection_address sender_address 0 PUSHINT // query_id index collection_address sender_address _223=0 0x8b771735 PUSHINT // query_id index collection_address sender_address _223=0 _224 s0 s4 XCHG NEWC // query_id _224 collection_address sender_address _223=0 index _225 256 STU // query_id _224 collection_address sender_address _223=0 _227 s0 s3 XCHG2 // query_id _224 _223=0 sender_address _227 collection_address STSLICER // query_id _224 _223=0 sender_address _228 4 1 REVERSE 64 PUSHINT // sender_address _223=0 _224 query_id _228 _229=64 send_msg INLINECALLDICT }> // query_id index collection_address sender_address 4 BLKDROP // 16 PUSHPOW2DEC // _231=65535 THROWANY }> get_nft_data PROC:<{ // load_data CALLDICT // _9 _10 _11 _12 _13 _14 _15 _16 s2 s3 XCHG 3 BLKDROP // init? index collection_address owner_address uri }> get_editor PROC:<{ // load_data CALLDICT // _9 _10 _11 _12 _13 _14 _15 _16 s4 s7 XCHG 7 BLKDROP // owner_address }> get_domain PROC:<{ // load_data CALLDICT // _10 _11 _12 _13 _14 _15 _16 _17 s1 s7 XCHG 7 BLKDROP // domain CTOS // _9 }> get_last_fill_up_time PROC:<{ // load_data CALLDICT // _9 _10 _11 _12 _13 _14 _15 _16 7 1 BLKDROP2 // last_fill_up_time }> dnsresolve PROC:<{ // subdomain category OVER // subdomain category subdomain SBITS // subdomain category subdomain_bits DUP 8 PUSHINT // subdomain category subdomain_bits subdomain_bits _5=8 MOD // subdomain category subdomain_bits _6 0 EQINT // subdomain category subdomain_bits _8 70 THROWIFNOT load_data CALLDICT // subdomain category subdomain_bits _49 _50 _51 _52 _53 _54 _55 _56 s3 s7 XCHG 7 BLKDROP // subdomain category subdomain_bits content CTOS // subdomain category subdomain_bits cs 8 LDU // subdomain category subdomain_bits _22 cs SWAP // subdomain category subdomain_bits cs _22 0 EQINT // subdomain category subdomain_bits cs _26 412 THROWIFNOT LDDICT // subdomain category subdomain_bits _60 _59 DROP // subdomain category subdomain_bits keyvalue_map s0 s3 XCHG // keyvalue_map category subdomain_bits subdomain 8 PLDI // keyvalue_map category subdomain_bits _33 0 EQINT // keyvalue_map category subdomain_bits starts_with_zero_byte 413 THROWIFNOT 8 GTINT // keyvalue_map category _39 IF:<{ // keyvalue_map category DROP // keyvalue_map 11732114750494247458678882651681748623800183221773167493832867265755123357695 PUSHINT // keyvalue_map category=11732114750494247458678882651681748623800183221773167493832867265755123357695 }> // keyvalue_map category DUP // keyvalue_map category category 0 EQINT // keyvalue_map category _42 IFJMP:<{ // keyvalue_map category DROP // keyvalue_map 8 PUSHINT // keyvalue_map _43=8 SWAP // _43=8 keyvalue_map }> // keyvalue_map category SWAP 8 PUSHPOW2 // category keyvalue_map _46=256 DICTUGETREF // _61 _62 DROP // value 8 PUSHINT // value _48=8 SWAP // _48=8 value }> }END>c