Lev
2 years ago
12 changed files with 5480 additions and 0 deletions
@ -0,0 +1,975 @@ |
|||||||
|
"Asm.fif" include |
||||||
|
"Asm.fif" include |
||||||
|
// automatically generated from `contracts/dns-auto-code.fc` incl:`contracts/imports/stdlib.fc` |
||||||
|
PROGRAM{ |
||||||
|
DECLPROC load_data |
||||||
|
DECLPROC load_prices |
||||||
|
DECLPROC store_data |
||||||
|
DECLPROC send_message |
||||||
|
DECLPROC send_error |
||||||
|
DECLPROC send_ok |
||||||
|
DECLPROC housekeeping |
||||||
|
DECLPROC calcprice_internal |
||||||
|
DECLPROC check_owner |
||||||
|
DECLPROC perform_ctl_op |
||||||
|
DECLPROC recv_internal |
||||||
|
DECLPROC recv_external |
||||||
|
DECLPROC dnsdictlookup |
||||||
|
123660 DECLMETHOD dnsresolve |
||||||
|
87450 DECLMETHOD getexpirationx |
||||||
|
110574 DECLMETHOD getexpiration |
||||||
|
67418 DECLMETHOD getstdperiod |
||||||
|
109522 DECLMETHOD getppr |
||||||
|
108994 DECLMETHOD getppc |
||||||
|
113123 DECLMETHOD getppb |
||||||
|
113304 DECLMETHOD calcprice |
||||||
|
85700 DECLMETHOD calcregprice |
||||||
|
DECLGLOBVAR query_info |
||||||
|
load_data PROCREF:<{ |
||||||
|
// |
||||||
|
c4 PUSH // _1 |
||||||
|
CTOS // cs |
||||||
|
LDREF // _3 cs |
||||||
|
LDDICT // _3 _5 cs |
||||||
|
LDDICT // _3 _5 _7 cs |
||||||
|
30 LDU // _3 _5 _7 _10 cs |
||||||
|
LDGRAMS // _3 _5 _7 _10 _13 cs |
||||||
|
LDGRAMS // _3 _5 _7 _10 _13 _15 cs |
||||||
|
LDGRAMS // _3 _5 _7 _10 _13 _15 _17 cs |
||||||
|
4 -ROLL // _3 _5 _7 cs _10 _13 _15 _17 |
||||||
|
4 TUPLE // _3 _5 _7 cs _9 |
||||||
|
SWAP // _3 _5 _7 _9 cs |
||||||
|
32 LDU // _3 _5 _7 _9 _19 cs |
||||||
|
32 LDU // _3 _5 _7 _9 _19 _42 _41 |
||||||
|
DROP // _3 _5 _7 _9 _19 _22 |
||||||
|
}> |
||||||
|
load_prices PROCREF:<{ |
||||||
|
// |
||||||
|
c4 PUSH // _1 |
||||||
|
CTOS // cs |
||||||
|
LDREF // _19 _18 |
||||||
|
NIP // cs |
||||||
|
LDDICT // _21 _20 |
||||||
|
NIP // cs |
||||||
|
LDDICT // _23 _22 |
||||||
|
NIP // cs |
||||||
|
30 LDU // _9 cs |
||||||
|
LDGRAMS // _9 _12 cs |
||||||
|
LDGRAMS // _9 _12 _14 cs |
||||||
|
LDGRAMS // _9 _12 _14 _31 _30 |
||||||
|
DROP // _9 _12 _14 _16 |
||||||
|
}> |
||||||
|
store_data PROC:<{ |
||||||
|
// ctl dd gc prices nhk lhk |
||||||
|
s0 s2 XCHG // ctl dd gc lhk nhk prices |
||||||
|
4 UNTUPLE // ctl dd gc lhk nhk sp ppr ppc ppb |
||||||
|
s0 s8 XCHG |
||||||
|
NEWC // ppb dd gc lhk nhk sp ppr ppc ctl _11 |
||||||
|
STREF // ppb dd gc lhk nhk sp ppr ppc _12 |
||||||
|
s1 s7 XCHG // ppb ppc gc lhk nhk sp ppr dd _12 |
||||||
|
STDICT // ppb ppc gc lhk nhk sp ppr _13 |
||||||
|
s1 s5 XCHG // ppb ppc ppr lhk nhk sp gc _13 |
||||||
|
STDICT // ppb ppc ppr lhk nhk sp _14 |
||||||
|
30 STU // ppb ppc ppr lhk nhk _16 |
||||||
|
s0 s3 XCHG2 // ppb ppc nhk lhk _16 ppr |
||||||
|
STGRAMS // ppb ppc nhk lhk _17 |
||||||
|
s0 s3 XCHG2 // ppb lhk nhk _17 ppc |
||||||
|
STGRAMS // ppb lhk nhk _18 |
||||||
|
s0 s3 XCHG2 // nhk lhk _18 ppb |
||||||
|
STGRAMS // nhk lhk _19 |
||||||
|
s1 s2 XCHG // lhk nhk _19 |
||||||
|
32 STU // lhk _21 |
||||||
|
32 STU // _23 |
||||||
|
ENDC // _24 |
||||||
|
c4 POP |
||||||
|
}> |
||||||
|
send_message PROC:<{ |
||||||
|
// addr tag query_id body grams mode |
||||||
|
0 PUSHINT // addr tag query_id body grams mode _7=0 |
||||||
|
24 PUSHINT // addr tag query_id body grams mode _7=0 _8=24 |
||||||
|
NEWC // addr tag query_id body grams mode _7=0 _8=24 _9 |
||||||
|
6 STU // addr tag query_id body grams mode _7=0 _11 |
||||||
|
s0 s7 XCHG2 // _7=0 tag query_id body grams mode _11 addr |
||||||
|
STSLICER // _7=0 tag query_id body grams mode _12 |
||||||
|
ROT // _7=0 tag query_id body mode _12 grams |
||||||
|
STGRAMS // _7=0 tag query_id body mode _13 |
||||||
|
s1 s5 XCHG // mode tag query_id body _7=0 _13 |
||||||
|
107 STU // mode tag query_id body _27 |
||||||
|
s1 s3 XCHG // mode body query_id tag _27 |
||||||
|
32 STU // mode body query_id _29 |
||||||
|
64 STU // mode body msg |
||||||
|
OVER // mode body msg body |
||||||
|
-1 GTINT // mode body msg _33 |
||||||
|
IF:<{ // mode body msg |
||||||
|
32 STU // mode msg |
||||||
|
}>ELSE<{ |
||||||
|
NIP // mode msg |
||||||
|
}> |
||||||
|
ENDC // mode _37 |
||||||
|
SWAP // _37 mode |
||||||
|
SENDRAWMSG |
||||||
|
}> |
||||||
|
send_error PROC:<{ |
||||||
|
// error_code |
||||||
|
query_info GETGLOB |
||||||
|
UNTRIPLE // error_code addr query_id op |
||||||
|
s2 s3 XCHG |
||||||
|
0 PUSHINT |
||||||
|
64 PUSHINT // addr error_code query_id op _5=0 _6=64 |
||||||
|
send_message CALLDICT |
||||||
|
}> |
||||||
|
send_ok PROC:<{ |
||||||
|
// price |
||||||
|
4 PUSHINT // price _1=4 |
||||||
|
RAWRESERVE |
||||||
|
query_info GETGLOB |
||||||
|
UNTRIPLE // addr query_id op |
||||||
|
4016791929 PUSHINT // addr query_id op _7=4016791929 |
||||||
|
-ROT |
||||||
|
0 PUSHINT |
||||||
|
7 PUSHPOW2 // addr _7=4016791929 query_id op _8=0 _9=128 |
||||||
|
send_message CALLDICT |
||||||
|
}> |
||||||
|
housekeeping PROC:<{ |
||||||
|
// ctl dd gc prices nhk lhk max_steps |
||||||
|
NOW // ctl dd gc prices nhk lhk max_steps n |
||||||
|
s2 PUSH // ctl dd gc prices nhk lhk max_steps n lhk |
||||||
|
60 ADDCONST // ctl dd gc prices nhk lhk max_steps n _10 |
||||||
|
s4 s(-1) PUXC // ctl dd gc prices nhk lhk max_steps n nhk _10 |
||||||
|
MAX // ctl dd gc prices nhk lhk max_steps n _11 |
||||||
|
s1 s(-1) PUXC // ctl dd gc prices nhk lhk max_steps n n _11 |
||||||
|
LESS // ctl dd gc prices nhk lhk max_steps n _12 |
||||||
|
IFJMP:<{ // ctl dd gc prices nhk lhk max_steps n |
||||||
|
2DROP // ctl dd gc prices nhk lhk |
||||||
|
store_data CALLDICT |
||||||
|
}> // ctl dd gc prices nhk lhk max_steps n |
||||||
|
s2 POP // ctl dd gc prices nhk n max_steps |
||||||
|
s4 PUSH |
||||||
|
8 PUSHPOW2 // ctl dd gc prices nhk n max_steps gc _17=256 |
||||||
|
DICTUMIN |
||||||
|
NULLSWAPIFNOT2 // ctl dd gc prices nhk n max_steps _63 _62 _64 |
||||||
|
s2 POP // ctl dd gc prices nhk n max_steps found? mkey |
||||||
|
WHILE:<{ |
||||||
|
s1 s2 XCPU // ctl dd gc prices nhk n max_steps mkey found? max_steps |
||||||
|
AND // ctl dd gc prices nhk n max_steps mkey _19 |
||||||
|
}>DO<{ // ctl dd gc prices nhk n max_steps mkey |
||||||
|
s3 POP // ctl dd gc prices mkey n max_steps |
||||||
|
s2 PUSH // ctl dd gc prices mkey n max_steps mkey |
||||||
|
224 RSHIFT# // ctl dd gc prices mkey n max_steps nhk |
||||||
|
s0 s2 PUSH2 // ctl dd gc prices mkey n max_steps nhk nhk n |
||||||
|
LESS // ctl dd gc prices mkey n max_steps nhk _24 |
||||||
|
IF:<{ // ctl dd gc prices mkey n max_steps nhk |
||||||
|
DROP // ctl dd gc prices mkey n max_steps |
||||||
|
s2 PUSH // ctl dd gc prices mkey n max_steps mkey |
||||||
|
224 MODPOW2# // ctl dd gc prices mkey n max_steps key |
||||||
|
s0 s6 PUSH2 |
||||||
|
224 PUSHINT // ctl dd gc prices mkey n max_steps key key dd _35 |
||||||
|
DICTUGET |
||||||
|
NULLSWAPIFNOT // ctl dd gc prices mkey n max_steps key val found? |
||||||
|
IF:<{ // ctl dd gc prices mkey n max_steps key val |
||||||
|
32 PLDU // ctl dd gc prices mkey n max_steps key exp |
||||||
|
s3 PUSH // ctl dd gc prices mkey n max_steps key exp n |
||||||
|
LEQ // ctl dd gc prices mkey n max_steps key _40 |
||||||
|
IF:<{ // ctl dd gc prices mkey n max_steps key |
||||||
|
s0 s6 XCHG2 |
||||||
|
224 PUSHINT // ctl max_steps gc prices mkey n key dd _44 |
||||||
|
DICTUDEL // ctl max_steps gc prices mkey n _67 _68 |
||||||
|
DROP // ctl max_steps gc prices mkey n dd |
||||||
|
s0 s5 XCHG // ctl dd gc prices mkey n max_steps |
||||||
|
}>ELSE<{ |
||||||
|
DROP // ctl dd gc prices mkey n max_steps |
||||||
|
}> |
||||||
|
}>ELSE<{ |
||||||
|
2DROP // ctl dd gc prices mkey n max_steps |
||||||
|
}> |
||||||
|
s2 s4 XCHG2 |
||||||
|
8 PUSHPOW2 // ctl dd max_steps prices n mkey gc _47=256 |
||||||
|
DICTUDEL // ctl dd max_steps prices n _69 _70 |
||||||
|
DROP // ctl dd max_steps prices n gc |
||||||
|
DUP |
||||||
|
8 PUSHPOW2 // ctl dd max_steps prices n gc gc _50=256 |
||||||
|
DICTUMIN |
||||||
|
NULLSWAPIFNOT2 // ctl dd max_steps prices n gc _72 _71 _73 |
||||||
|
s2 POP // ctl dd max_steps prices n gc found? mkey |
||||||
|
OVER // ctl dd max_steps prices n gc found? mkey found? |
||||||
|
IF:<{ // ctl dd max_steps prices n gc found? mkey |
||||||
|
DUP // ctl dd max_steps prices n gc found? mkey mkey |
||||||
|
224 RSHIFT# // ctl dd max_steps prices n gc found? mkey _52 |
||||||
|
}>ELSE<{ // ctl dd max_steps prices n gc found? mkey |
||||||
|
32 PUSHPOW2DEC // ctl dd max_steps prices n gc found? mkey _52=4294967295 |
||||||
|
}> // ctl dd max_steps prices n gc found? mkey nhk |
||||||
|
s0 s6 XCHG // ctl dd nhk prices n gc found? mkey max_steps |
||||||
|
DEC // ctl dd nhk prices n gc found? mkey max_steps |
||||||
|
}>ELSE<{ // ctl dd gc prices mkey n max_steps nhk |
||||||
|
s5 s1 s5 XCHG3 |
||||||
|
s0 s3 XCHG |
||||||
|
FALSE |
||||||
|
s0 s2 XCHG // ctl dd nhk prices n gc found? mkey max_steps |
||||||
|
}> |
||||||
|
s3 s6 XCHG |
||||||
|
s3 s4 XCHG |
||||||
|
-ROT // ctl dd gc prices nhk n max_steps found? mkey |
||||||
|
}> // ctl dd gc prices nhk n max_steps mkey |
||||||
|
2DROP // ctl dd gc prices nhk n |
||||||
|
store_data CALLDICT |
||||||
|
}> |
||||||
|
calcprice_internal PROCREF:<{ |
||||||
|
// domain data ppc ppb |
||||||
|
s0 s2 XCHG |
||||||
|
100 PUSHINT // domain ppb ppc data _7=100 |
||||||
|
CDATASIZE // domain ppb ppc _24 _25 _26 |
||||||
|
s2 POP // domain ppb ppc refs bits |
||||||
|
s0 s4 XCHG // bits ppb ppc refs domain |
||||||
|
SBITS // bits ppb ppc refs _9 |
||||||
|
1 LSHIFT# // bits ppb ppc refs _11 |
||||||
|
192 PUSHINT // bits ppb ppc refs _11 _16 |
||||||
|
ADD // bits ppb ppc refs _17 |
||||||
|
s1 s4 XCHG // refs ppb ppc bits _17 |
||||||
|
ADD // refs ppb ppc bits |
||||||
|
s0 s3 XCHG // bits ppb ppc refs |
||||||
|
2 ADDCONST // bits ppb ppc _20 |
||||||
|
MUL // bits ppb _21 |
||||||
|
s0 s2 XCHG // _21 ppb bits |
||||||
|
MUL // _21 _22 |
||||||
|
ADD // _23 |
||||||
|
}> |
||||||
|
check_owner PROCREF:<{ |
||||||
|
// cat_table owner_info src_wc src_addr strict |
||||||
|
s0 s4 XCHG // strict owner_info src_wc src_addr cat_table |
||||||
|
ISNULL // strict owner_info src_wc src_addr _5 |
||||||
|
s4 s(-1) PUXC // strict owner_info src_wc src_addr strict _5 |
||||||
|
AND // strict owner_info src_wc src_addr _6 |
||||||
|
IFJMP:<{ // strict owner_info src_wc src_addr |
||||||
|
4 BLKDROP // |
||||||
|
4000281702 PUSHINT // _7=4000281702 |
||||||
|
}> // strict owner_info src_wc src_addr |
||||||
|
s2 PUSH // strict owner_info src_wc src_addr owner_info |
||||||
|
ISNULL // strict owner_info src_wc src_addr _8 |
||||||
|
IFJMP:<{ // strict owner_info src_wc src_addr |
||||||
|
3 BLKDROP // strict |
||||||
|
4000263474 PUSHINT // strict _9=4000263474 |
||||||
|
AND // _10 |
||||||
|
}> // strict owner_info src_wc src_addr |
||||||
|
s3 POP // src_addr owner_info src_wc |
||||||
|
3798033458 PUSHINT // src_addr owner_info src_wc ERR_BAD2=3798033458 |
||||||
|
s0 s2 XCHG // src_addr ERR_BAD2=3798033458 src_wc owner_info |
||||||
|
CTOS // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
DUP // src_addr ERR_BAD2=3798033458 src_wc sown sown |
||||||
|
SBITS // src_addr ERR_BAD2=3798033458 src_wc sown _15 |
||||||
|
283 PUSHINT // src_addr ERR_BAD2=3798033458 src_wc sown _15 _22 |
||||||
|
LESS // src_addr ERR_BAD2=3798033458 src_wc sown _23 |
||||||
|
IFJMP:<{ // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
s2 s3 XCHG |
||||||
|
3 BLKDROP // ERR_BAD2=3798033458 |
||||||
|
}> // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
19 LDU // src_addr ERR_BAD2=3798033458 src_wc _24 sown |
||||||
|
SWAP |
||||||
|
327324 PUSHINT // src_addr ERR_BAD2=3798033458 src_wc sown _24 _33 |
||||||
|
NEQ // src_addr ERR_BAD2=3798033458 src_wc sown _34 |
||||||
|
IFJMP:<{ // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
s2 s3 XCHG |
||||||
|
3 BLKDROP // ERR_BAD2=3798033458 |
||||||
|
}> // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
1 2 BLKDROP2 // src_addr src_wc sown |
||||||
|
8 LDI // src_addr src_wc _37 sown |
||||||
|
256 PLDU // src_addr src_wc owner_wc owner_addr |
||||||
|
s0 s2 XCHG // src_addr owner_addr owner_wc src_wc |
||||||
|
NEQ // src_addr owner_addr _42 |
||||||
|
s0 s2 XCHG // _42 owner_addr src_addr |
||||||
|
NEQ // _42 _43 |
||||||
|
OR // _44 |
||||||
|
IFJMP:<{ // |
||||||
|
4000282478 PUSHINT // _45=4000282478 |
||||||
|
}> // |
||||||
|
0 PUSHINT // _46=0 |
||||||
|
}> |
||||||
|
perform_ctl_op PROCREF:<{ |
||||||
|
// op src_wc src_addr in_msg |
||||||
|
load_data INLINECALLDICT // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk |
||||||
|
s5 PUSH // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk ctl |
||||||
|
CTOS // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk cs |
||||||
|
8 LDI // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk _13 cs |
||||||
|
s0 s10 XCHG // op cs src_addr in_msg ctl domdata gc prices nhk lhk _13 src_wc |
||||||
|
NEQ // op cs src_addr in_msg ctl domdata gc prices nhk lhk _16 |
||||||
|
s0 s9 XCHG // op _16 src_addr in_msg ctl domdata gc prices nhk lhk cs |
||||||
|
256 LDU // op _16 src_addr in_msg ctl domdata gc prices nhk lhk _83 _82 |
||||||
|
DROP // op _16 src_addr in_msg ctl domdata gc prices nhk lhk _17 |
||||||
|
s0 s8 XCHG2 // op _16 lhk in_msg ctl domdata gc prices nhk _17 src_addr |
||||||
|
NEQ // op _16 lhk in_msg ctl domdata gc prices nhk _20 |
||||||
|
s1 s8 XCHG // op nhk lhk in_msg ctl domdata gc prices _16 _20 |
||||||
|
OR // op nhk lhk in_msg ctl domdata gc prices _21 |
||||||
|
IFJMP:<{ // op nhk lhk in_msg ctl domdata gc prices |
||||||
|
8 BLKDROP // |
||||||
|
4000282478 PUSHINT // _22=4000282478 |
||||||
|
send_error CALLDICT |
||||||
|
}> // op nhk lhk in_msg ctl domdata gc prices |
||||||
|
s0 s7 XCHG |
||||||
|
1130909810 PUSHINT // prices nhk lhk in_msg ctl domdata gc op _24=1130909810 |
||||||
|
EQUAL // prices nhk lhk in_msg ctl domdata gc _25 |
||||||
|
IFJMP:<{ // prices nhk lhk in_msg ctl domdata gc |
||||||
|
s6 POP // gc nhk lhk in_msg ctl domdata |
||||||
|
s0 s2 XCHG // gc nhk lhk domdata ctl in_msg |
||||||
|
32 LDU // gc nhk lhk domdata ctl _30 in_msg |
||||||
|
LDGRAMS // gc nhk lhk domdata ctl _30 _33 in_msg |
||||||
|
LDGRAMS // gc nhk lhk domdata ctl _30 _33 _35 in_msg |
||||||
|
LDGRAMS // gc nhk lhk domdata ctl stdper ppr ppc ppb in_msg |
||||||
|
ENDS |
||||||
|
4 TUPLE // gc nhk lhk domdata ctl _40 |
||||||
|
s0 s4 s4 XCHG3 |
||||||
|
s0 s5 XCHG |
||||||
|
s0 s3 XCHG // ctl domdata gc _40 nhk lhk |
||||||
|
store_data CALLDICT |
||||||
|
0 PUSHINT // _42=0 |
||||||
|
send_ok CALLDICT |
||||||
|
}> // prices nhk lhk in_msg ctl domdata gc |
||||||
|
s4 POP // prices nhk gc in_msg ctl domdata |
||||||
|
query_info GETGLOB |
||||||
|
UNTRIPLE // prices nhk gc in_msg ctl domdata addr query_id op |
||||||
|
DUP |
||||||
|
1128555884 PUSHINT // prices nhk gc in_msg ctl domdata addr query_id op op _48=1128555884 |
||||||
|
EQUAL // prices nhk gc in_msg ctl domdata addr query_id op _49 |
||||||
|
IFJMP:<{ // prices nhk gc in_msg ctl domdata addr query_id op |
||||||
|
s5 POP // prices nhk gc op ctl domdata addr query_id |
||||||
|
s2 PUSH // prices nhk gc op ctl domdata addr query_id domdata |
||||||
|
ISNULL // prices nhk gc op ctl domdata addr query_id _50 |
||||||
|
IFNOT:<{ // prices nhk gc op ctl domdata addr query_id |
||||||
|
s3 s4 XCHG |
||||||
|
s2 s3 XCHG |
||||||
|
s5 s7 s6 XCHG3 |
||||||
|
1 PUSHINT |
||||||
|
-1 PUSHINT // addr query_id op ctl domdata gc prices nhk _51=1 _52=-1 |
||||||
|
housekeeping CALLDICT |
||||||
|
-ROT // op addr query_id |
||||||
|
}>ELSE<{ |
||||||
|
s4 s7 XCHG |
||||||
|
5 2 BLKDROP2 // op addr query_id |
||||||
|
}> |
||||||
|
load_data INLINECALLDICT // op addr query_id _95 _96 _97 _98 _99 _100 |
||||||
|
s4 s5 XCHG |
||||||
|
5 BLKDROP // op addr query_id domdata |
||||||
|
ISNULL // op addr query_id _55 |
||||||
|
IFNOTJMP:<{ // op addr query_id |
||||||
|
3 BLKDROP // |
||||||
|
4000605549 PUSHINT // _56=4000605549 |
||||||
|
send_error CALLDICT |
||||||
|
}> // op addr query_id |
||||||
|
4016791929 PUSHINT // op addr query_id _58=4016791929 |
||||||
|
s0 s1 s3 XCHG3 |
||||||
|
0 PUSHINT |
||||||
|
160 PUSHINT // addr _58=4016791929 query_id op _59=0 _62 |
||||||
|
send_message CALLDICT |
||||||
|
}> // prices nhk gc in_msg ctl domdata addr query_id op |
||||||
|
s3 POP |
||||||
|
s3 POP |
||||||
|
s4 POP |
||||||
|
s4 POP |
||||||
|
s4 POP // query_id op addr in_msg |
||||||
|
s2 PUSH |
||||||
|
1415670629 PUSHINT // query_id op addr in_msg op _64=1415670629 |
||||||
|
EQUAL // query_id op addr in_msg _65 |
||||||
|
IFJMP:<{ // query_id op addr in_msg |
||||||
|
LDGRAMS // query_id op addr _102 _101 |
||||||
|
DROP // query_id op addr amount |
||||||
|
s1 s3 XCHG |
||||||
|
4016791929 PUSHINT |
||||||
|
s3 s3 XCHG2 |
||||||
|
64 PUSHINT // addr _69=4016791929 query_id op amount _70=64 |
||||||
|
send_message CALLDICT |
||||||
|
}> // query_id op addr in_msg |
||||||
|
4 BLKDROP // |
||||||
|
32 PUSHPOW2DEC // _72=4294967295 |
||||||
|
send_error CALLDICT |
||||||
|
}> |
||||||
|
recv_internal PROC:<{ |
||||||
|
// msg_value in_msg_cell in_msg |
||||||
|
DUP // msg_value in_msg_cell in_msg in_msg |
||||||
|
SBITS // msg_value in_msg_cell in_msg _3 |
||||||
|
32 LESSINT // msg_value in_msg_cell in_msg _5 |
||||||
|
IFJMP:<{ // msg_value in_msg_cell in_msg |
||||||
|
3 BLKDROP // |
||||||
|
}> // msg_value in_msg_cell in_msg |
||||||
|
SWAP // msg_value in_msg in_msg_cell |
||||||
|
CTOS // msg_value in_msg cs |
||||||
|
4 LDU // msg_value in_msg flags cs |
||||||
|
SWAP |
||||||
|
1 PUSHINT // msg_value in_msg cs flags _12=1 |
||||||
|
AND // msg_value in_msg cs _13 |
||||||
|
IFJMP:<{ // msg_value in_msg cs |
||||||
|
3 BLKDROP // |
||||||
|
}> // msg_value in_msg cs |
||||||
|
LDMSGADDR // msg_value in_msg _327 _326 |
||||||
|
DROP // msg_value in_msg s_addr |
||||||
|
DUP // msg_value in_msg s_addr s_addr |
||||||
|
REWRITESTDADDR // msg_value in_msg s_addr src_wc src_addr |
||||||
|
s0 s3 XCHG // msg_value src_addr s_addr src_wc in_msg |
||||||
|
32 LDU // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
OVER // msg_value src_addr s_addr src_wc op in_msg op |
||||||
|
IFNOTJMP:<{ // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
6 BLKDROP // |
||||||
|
}> // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
0 PUSHINT // msg_value src_addr s_addr src_wc op in_msg query_id=0 |
||||||
|
OVER // msg_value src_addr s_addr src_wc op in_msg query_id=0 in_msg |
||||||
|
SBITS // msg_value src_addr s_addr src_wc op in_msg query_id=0 _26 |
||||||
|
63 GTINT // msg_value src_addr s_addr src_wc op in_msg query_id=0 _28 |
||||||
|
IF:<{ // msg_value src_addr s_addr src_wc op in_msg query_id=0 |
||||||
|
DROP // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
64 LDU // msg_value src_addr s_addr src_wc op query_id in_msg |
||||||
|
SWAP // msg_value src_addr s_addr src_wc op in_msg query_id |
||||||
|
}> // msg_value src_addr s_addr src_wc op in_msg query_id |
||||||
|
s4 s0 s2 XC2PU // msg_value src_addr in_msg src_wc op s_addr query_id op |
||||||
|
TRIPLE |
||||||
|
query_info SETGLOB |
||||||
|
DUP |
||||||
|
31 PUSHPOW2 // msg_value src_addr in_msg src_wc op op _34 |
||||||
|
AND // msg_value src_addr in_msg src_wc op _35 |
||||||
|
IFJMP:<{ // msg_value src_addr in_msg src_wc op |
||||||
|
5 BLKDROP // |
||||||
|
}> // msg_value src_addr in_msg src_wc op |
||||||
|
DUP // msg_value src_addr in_msg src_wc op op |
||||||
|
24 RSHIFT# // msg_value src_addr in_msg src_wc op _37 |
||||||
|
67 EQINT // msg_value src_addr in_msg src_wc op _39 |
||||||
|
IFJMP:<{ // msg_value src_addr in_msg src_wc op |
||||||
|
s4 POP // op src_addr in_msg src_wc |
||||||
|
-ROT // op src_wc src_addr in_msg |
||||||
|
perform_ctl_op INLINECALLDICT |
||||||
|
}> // msg_value src_addr in_msg src_wc op |
||||||
|
DUP |
||||||
|
1919248228 PUSHINT // msg_value src_addr in_msg src_wc op op _42=1919248228 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc op _45 |
||||||
|
OVER |
||||||
|
1886547820 PUSHINT // msg_value src_addr in_msg src_wc op _45 op _46=1886547820 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc op _45 _47 |
||||||
|
1 LSHIFT# // msg_value src_addr in_msg src_wc op _45 _49 |
||||||
|
ADD // msg_value src_addr in_msg src_wc op _50 |
||||||
|
OVER |
||||||
|
1970300004 PUSHINT // msg_value src_addr in_msg src_wc op _50 op _51=1970300004 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc op _50 _52 |
||||||
|
2 LSHIFT# // msg_value src_addr in_msg src_wc op _50 _54 |
||||||
|
ADD // msg_value src_addr in_msg src_wc op _55 |
||||||
|
SWAP |
||||||
|
1735354211 PUSHINT // msg_value src_addr in_msg src_wc _55 op _56=1735354211 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc _55 _57 |
||||||
|
3 LSHIFT# // msg_value src_addr in_msg src_wc _55 _59 |
||||||
|
ADD // msg_value src_addr in_msg src_wc qt |
||||||
|
DUP // msg_value src_addr in_msg src_wc qt qt |
||||||
|
IFNOTJMP:<{ // msg_value src_addr in_msg src_wc qt |
||||||
|
5 BLKDROP // |
||||||
|
32 PUSHPOW2DEC // _61=4294967295 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr in_msg src_wc qt |
||||||
|
NEGATE // msg_value src_addr in_msg src_wc qt |
||||||
|
load_data INLINECALLDICT // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk |
||||||
|
s6 PUSH // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk qt |
||||||
|
8 EQINT // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk _72 |
||||||
|
IFJMP:<{ // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk |
||||||
|
DROP |
||||||
|
s5 POP |
||||||
|
s5 POP |
||||||
|
s6 POP |
||||||
|
s6 POP // domdata gc in_msg prices nhk ctl |
||||||
|
s0 s3 XCHG // domdata gc ctl prices nhk in_msg |
||||||
|
32 LDI // domdata gc ctl prices nhk _341 _340 |
||||||
|
DROP // domdata gc ctl prices nhk max_steps |
||||||
|
s3 s5 XCHG |
||||||
|
s3 s4 XCHG |
||||||
|
1 PUSHINT |
||||||
|
SWAP // ctl domdata gc prices nhk _77=1 max_steps |
||||||
|
housekeeping CALLDICT |
||||||
|
4016791929 PUSHINT // _79=4016791929 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk |
||||||
|
s0 s8 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg |
||||||
|
LDOPTREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg |
||||||
|
OVER // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg domain_cell |
||||||
|
ISNULL // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg _88 |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg |
||||||
|
NIP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg |
||||||
|
6 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg |
||||||
|
OVER // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg bytes |
||||||
|
0 EQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg fail |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail in_msg bytes |
||||||
|
3 LSHIFT# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail in_msg _97 |
||||||
|
LDSLICEX // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
}>ELSE<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain_cell |
||||||
|
CTOS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain domain |
||||||
|
SBITREFS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain bits refs |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs bits |
||||||
|
-8 ADDCONST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _104 |
||||||
|
-121 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _104 _107 |
||||||
|
AND // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _108 |
||||||
|
OR // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
}> |
||||||
|
s2 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg fail |
||||||
|
IFNOT:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
s2 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
DUP |
||||||
|
8 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain domain _110=8 |
||||||
|
SDCUTLAST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain _111 |
||||||
|
8 PLDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail |
||||||
|
IFJMP:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
12 BLKDROP // |
||||||
|
4000275504 PUSHINT // _114=4000275504 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
NOW // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n |
||||||
|
PUSHNULL // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n _120 |
||||||
|
DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info |
||||||
|
0 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info _124=0 |
||||||
|
s0 s0 s4 PUSH3 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail |
||||||
|
DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail tail |
||||||
|
SBITS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail _126 |
||||||
|
3 RSHIFTC# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail _128 |
||||||
|
REPEAT:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
PUSHNULL |
||||||
|
s6 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
8 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp _131 tail |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail _131 |
||||||
|
0 EQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail z |
||||||
|
s3 s3 XCPU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key z exp tail zeros z |
||||||
|
SUB // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key z exp tail zeros |
||||||
|
s0 s3 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail z |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
s3 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp |
||||||
|
s2 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp tail |
||||||
|
SBITS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _137 |
||||||
|
s7 s(-1) PUXC // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp domain _137 |
||||||
|
SDSKIPLAST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _138 |
||||||
|
SHA256U // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _139 |
||||||
|
32 RSHIFT# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key |
||||||
|
s0 s12 PUSH2 |
||||||
|
224 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key key domdata _146 |
||||||
|
DICTUGET |
||||||
|
NULLSWAPIFNOT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key val found? |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key val |
||||||
|
1 2 BLKDROP2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key val |
||||||
|
32 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val |
||||||
|
s1 s7 PUSH2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val exp n |
||||||
|
GEQ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val _151 |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val |
||||||
|
LDREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cat_table val |
||||||
|
ENDS |
||||||
|
0 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cat_table _158=0 |
||||||
|
SWAP |
||||||
|
8 PUSHPOW2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp _158=0 cat_table _159=256 |
||||||
|
DICTUGETREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cown ok |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cown |
||||||
|
s5 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp |
||||||
|
}> |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp |
||||||
|
}> |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key |
||||||
|
}> |
||||||
|
s0 s3 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
}> |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp zeros |
||||||
|
4 GTINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp _162 |
||||||
|
IFJMP:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp |
||||||
|
15 BLKDROP |
||||||
|
2DROP // |
||||||
|
4017511472 PUSHINT // _163=4017511472 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp |
||||||
|
s12 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp qt |
||||||
|
1 NEQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp _167 |
||||||
|
s4 PUSH |
||||||
|
s0 s4 XCHG |
||||||
|
s15 s1 s3 XCHG3 |
||||||
|
s0 17 s() XCHG |
||||||
|
SWAP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table cat_table owner_info src_wc src_addr _167 |
||||||
|
check_owner INLINECALLDICT // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err |
||||||
|
DUP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err err |
||||||
|
IFJMP:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err |
||||||
|
14 1 BLKDROP2 // err |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err |
||||||
|
DROP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table |
||||||
|
s9 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table qt |
||||||
|
2 NEQINT // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table _173 |
||||||
|
IF:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table |
||||||
|
s0 s3 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n in_msg |
||||||
|
LDREF // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n _361 _360 |
||||||
|
DROP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
DUP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data data |
||||||
|
DICTEMPTY // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _176 |
||||||
|
IFNOT:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
0 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _179=0 |
||||||
|
OVER |
||||||
|
8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _179=0 data _180=256 |
||||||
|
DICTUGETREF // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data oinfo ok |
||||||
|
IF:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data oinfo |
||||||
|
CTOS // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs |
||||||
|
DUP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs cs |
||||||
|
SBITS // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _185 |
||||||
|
283 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _185 _192 |
||||||
|
GEQ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _193 |
||||||
|
31 THROWIFNOT |
||||||
|
19 PLDU // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _197 |
||||||
|
327324 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _197 _202 |
||||||
|
EQUAL // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _203 |
||||||
|
31 THROWIFNOT |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
}> |
||||||
|
DUP |
||||||
|
8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data data _208=256 |
||||||
|
DICTUMIN |
||||||
|
NULLSWAPIFNOT2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _365 _364 _366 |
||||||
|
2 1 BLKDROP2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok |
||||||
|
OVER |
||||||
|
8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok data _213=256 |
||||||
|
DICTUMAX |
||||||
|
NULLSWAPIFNOT2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok _368 _367 _369 |
||||||
|
2 1 BLKDROP2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok maxok |
||||||
|
AND // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _216 |
||||||
|
31 THROWIFNOT |
||||||
|
}> // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
}>ELSE<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table |
||||||
|
s3 POP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n |
||||||
|
s2 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
}> |
||||||
|
s5 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data prices |
||||||
|
4 UNTUPLE // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb |
||||||
|
s3 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb stdper |
||||||
|
IFNOTJMP:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb |
||||||
|
15 BLKDROP |
||||||
|
3 BLKDROP // |
||||||
|
3545187910 PUSHINT // _223=3545187910 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb |
||||||
|
s4 PUSH |
||||||
|
s3 s7 XCHG |
||||||
|
-ROT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper domain data ppc ppb |
||||||
|
calcprice_internal INLINECALLDICT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 |
||||||
|
s11 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 qt |
||||||
|
4 NEQINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 _228 |
||||||
|
s1 s5 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table _226 n data stdper ppr _228 |
||||||
|
AND // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table _226 n data stdper _229 |
||||||
|
s1 s4 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _226 _229 |
||||||
|
ADD // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data price |
||||||
|
s0 s14 XCHG |
||||||
|
30 PUSHPOW2 // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data msg_value _233 |
||||||
|
SUB // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _234 |
||||||
|
s14 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _234 price |
||||||
|
LESS // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _235 |
||||||
|
IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
14 BLKDROP // |
||||||
|
3883023472 PUSHINT // _236=3883023472 |
||||||
|
send_error CALLDICT |
||||||
|
}> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s9 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data qt |
||||||
|
2 EQINT // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _243 |
||||||
|
IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s3 POP |
||||||
|
s8 POP // price key lhk exp n ctl domdata gc prices nhk data stdper |
||||||
|
s7 s7 XCPU // price key lhk exp stdper ctl domdata gc prices nhk data n stdper |
||||||
|
ADD // price key lhk exp stdper ctl domdata gc prices nhk data _244 |
||||||
|
s8 s(-1) PUXC // price key lhk exp stdper ctl domdata gc prices nhk data exp _244 |
||||||
|
GREATER // price key lhk exp stdper ctl domdata gc prices nhk data _245 |
||||||
|
IFJMP:<{ // price key lhk exp stdper ctl domdata gc prices nhk data |
||||||
|
11 BLKDROP // |
||||||
|
4083511919 PUSHINT // _246=4083511919 |
||||||
|
send_error CALLDICT |
||||||
|
}> // price key lhk exp stdper ctl domdata gc prices nhk data |
||||||
|
s7 s6 PUSH2 // price key lhk exp stdper ctl domdata gc prices nhk data exp stdper |
||||||
|
ADD // price key lhk exp stdper ctl domdata gc prices nhk data _249 |
||||||
|
NEWC // price key lhk exp stdper ctl domdata gc prices nhk data _249 _250 |
||||||
|
32 STU // price key lhk exp stdper ctl domdata gc prices nhk data _252 |
||||||
|
STREF // price key lhk exp stdper ctl domdata gc prices nhk _253 |
||||||
|
s0 s9 s4 XCPUXC |
||||||
|
224 PUSHINT // price key lhk exp stdper ctl nhk gc prices _253 key domdata _256 |
||||||
|
DICTUSETB // price key lhk exp stdper ctl nhk gc prices domdata |
||||||
|
s0 s6 XCHG // price key lhk domdata stdper ctl nhk gc prices exp |
||||||
|
224 LSHIFT# // price key lhk domdata stdper ctl nhk gc prices _262 |
||||||
|
s0 s8 XCHG2 // price prices lhk domdata stdper ctl nhk gc _262 key |
||||||
|
ADD // price prices lhk domdata stdper ctl nhk gc gckeyO |
||||||
|
s0 s4 XCHG // price prices lhk domdata gckeyO ctl nhk gc stdper |
||||||
|
224 LSHIFT# // price prices lhk domdata gckeyO ctl nhk gc _268 |
||||||
|
s4 s(-1) PUXC // price prices lhk domdata gckeyO ctl nhk gc gckeyO _268 |
||||||
|
ADD // price prices lhk domdata gckeyO ctl nhk gc gckeyN |
||||||
|
s4 s4 XCHG2 |
||||||
|
8 PUSHPOW2 // price prices lhk domdata gckeyN ctl nhk gckeyO gc _271=256 |
||||||
|
DICTUDEL // price prices lhk domdata gckeyN ctl nhk _376 _377 |
||||||
|
DROP // price prices lhk domdata gckeyN ctl nhk gc |
||||||
|
NEWC // price prices lhk domdata gckeyN ctl nhk gc _274 |
||||||
|
s0 s4 s4 XCHG3 |
||||||
|
8 PUSHPOW2 // price prices lhk domdata nhk ctl _274 gckeyN gc _275=256 |
||||||
|
DICTUSETB // price prices lhk domdata nhk ctl gc |
||||||
|
s0 s3 XCHG |
||||||
|
s5 s5 s4 XCHG3 |
||||||
|
1 PUSHINT // price ctl domdata gc prices nhk lhk _277=1 |
||||||
|
housekeeping CALLDICT |
||||||
|
send_ok CALLDICT |
||||||
|
}> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s9 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data qt |
||||||
|
1 EQINT // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _281 |
||||||
|
IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s9 POP |
||||||
|
s9 POP // price key lhk n data ctl domdata gc prices nhk cat_table stdper |
||||||
|
SWAP // price key lhk n data ctl domdata gc prices nhk stdper cat_table |
||||||
|
ISNULL // price key lhk n data ctl domdata gc prices nhk stdper _282 |
||||||
|
IFNOTJMP:<{ // price key lhk n data ctl domdata gc prices nhk stdper |
||||||
|
11 BLKDROP // |
||||||
|
3781980773 PUSHINT // _283=3781980773 |
||||||
|
send_error CALLDICT |
||||||
|
}> // price key lhk n data ctl domdata gc prices nhk stdper |
||||||
|
s1 s7 XCHG // price key lhk nhk data ctl domdata gc prices n stdper |
||||||
|
ADD // price key lhk nhk data ctl domdata gc prices expires_at |
||||||
|
DUP |
||||||
|
NEWC // price key lhk nhk data ctl domdata gc prices expires_at expires_at _288 |
||||||
|
32 STU // price key lhk nhk data ctl domdata gc prices expires_at _290 |
||||||
|
s1 s6 XCHG // price key lhk nhk expires_at ctl domdata gc prices data _290 |
||||||
|
STREF // price key lhk nhk expires_at ctl domdata gc prices _291 |
||||||
|
s0 s8 s3 XCPUXC |
||||||
|
224 PUSHINT // price key lhk nhk expires_at ctl prices gc _291 key domdata _294 |
||||||
|
DICTUSETB // price key lhk nhk expires_at ctl prices gc domdata |
||||||
|
s4 PUSH // price key lhk nhk expires_at ctl prices gc domdata expires_at |
||||||
|
224 LSHIFT# // price key lhk nhk expires_at ctl prices gc domdata _300 |
||||||
|
s0 s8 XCHG2 // price domdata lhk nhk expires_at ctl prices gc _300 key |
||||||
|
OR // price domdata lhk nhk expires_at ctl prices gc gckey |
||||||
|
NEWC // price domdata lhk nhk expires_at ctl prices gc gckey _303 |
||||||
|
s0 s2 XCHG |
||||||
|
8 PUSHPOW2 // price domdata lhk nhk expires_at ctl prices _303 gckey gc _304=256 |
||||||
|
DICTUSETB // price domdata lhk nhk expires_at ctl prices gc |
||||||
|
s4 s3 XCHG2 // price domdata lhk prices gc ctl nhk expires_at |
||||||
|
MIN // price domdata lhk prices gc ctl _306 |
||||||
|
s1 s5 XCHG |
||||||
|
s3 s0 s4 XCHG3 |
||||||
|
1 PUSHINT // price ctl domdata gc prices _306 lhk _307=1 |
||||||
|
housekeeping CALLDICT |
||||||
|
send_ok CALLDICT |
||||||
|
}> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
3 1 BLKDROP2 // price key lhk exp qt ctl domdata gc prices nhk data |
||||||
|
s0 s6 XCHG // price key lhk exp data ctl domdata gc prices nhk qt |
||||||
|
4 EQINT // price key lhk exp data ctl domdata gc prices nhk _311 |
||||||
|
IFJMP:<{ // price key lhk exp data ctl domdata gc prices nhk |
||||||
|
s0 s6 XCHG |
||||||
|
NEWC // price key lhk nhk data ctl domdata gc prices exp _313 |
||||||
|
32 STU // price key lhk nhk data ctl domdata gc prices _315 |
||||||
|
s1 s5 XCHG // price key lhk nhk prices ctl domdata gc data _315 |
||||||
|
STREF // price key lhk nhk prices ctl domdata gc _316 |
||||||
|
s7 s2 XCHG2 |
||||||
|
224 PUSHINT // price gc lhk nhk prices ctl _316 key domdata _319 |
||||||
|
DICTUSETB // price gc lhk nhk prices ctl domdata |
||||||
|
s5 s4 XCHG2 |
||||||
|
s1 s3 XCHG |
||||||
|
1 PUSHINT // price ctl domdata gc prices nhk lhk _321=1 |
||||||
|
housekeeping CALLDICT |
||||||
|
send_ok CALLDICT |
||||||
|
}> // price key lhk exp data ctl domdata gc prices nhk |
||||||
|
10 BLKDROP // |
||||||
|
}> |
||||||
|
recv_external PROC:<{ |
||||||
|
// in_msg |
||||||
|
DROP // |
||||||
|
load_data INLINECALLDICT // _12 _13 _14 _15 _16 _17 |
||||||
|
NIP // ctl dd gc prices lhk |
||||||
|
IFNOTJMP:<{ // ctl dd gc prices |
||||||
|
ACCEPT |
||||||
|
32 PUSHPOW2DEC // ctl dd gc prices _9=4294967295 |
||||||
|
NOW // ctl dd gc prices _9=4294967295 _10 |
||||||
|
store_data CALLDICT |
||||||
|
}> // ctl dd gc prices |
||||||
|
4 BLKDROP // |
||||||
|
}> |
||||||
|
dnsdictlookup PROCREF:<{ |
||||||
|
// domain nowtime |
||||||
|
OVER // domain nowtime domain |
||||||
|
SBITREFS // domain nowtime bits refs |
||||||
|
OVER |
||||||
|
7 PUSHINT // domain nowtime bits refs bits _6=7 |
||||||
|
AND // domain nowtime bits refs _7 |
||||||
|
OR // domain nowtime bits _8 |
||||||
|
30 THROWIF |
||||||
|
DUP // domain nowtime bits bits |
||||||
|
IFNOT:<{ // domain nowtime bits |
||||||
|
30 THROW |
||||||
|
}> // domain nowtime bits |
||||||
|
s2 PUSH |
||||||
|
8 PUSHINT // domain nowtime bits domain _13=8 |
||||||
|
SDCUTLAST // domain nowtime bits _14 |
||||||
|
8 PLDU // domain nowtime bits domain_last_byte |
||||||
|
IF:<{ // domain nowtime bits |
||||||
|
0 PUSHINT // domain nowtime bits _17=0 |
||||||
|
NEWC // domain nowtime bits _17=0 _18 |
||||||
|
s0 s4 XCHG2 // _17=0 nowtime bits _18 domain |
||||||
|
STSLICER // _17=0 nowtime bits _19 |
||||||
|
s1 s3 XCHG // bits nowtime _17=0 _19 |
||||||
|
8 STU // bits nowtime _21 |
||||||
|
ENDC // bits nowtime _22 |
||||||
|
CTOS // bits nowtime domain |
||||||
|
s0 s2 XCHG // domain nowtime bits |
||||||
|
8 ADDCONST // domain nowtime bits |
||||||
|
}> // domain nowtime bits |
||||||
|
DUP // domain nowtime bits bits |
||||||
|
8 EQINT // domain nowtime bits _27 |
||||||
|
IFJMP:<{ // domain nowtime bits |
||||||
|
3 BLKDROP // |
||||||
|
0 PUSHINT // _28=0 |
||||||
|
PUSHNULL // _28=0 _29 |
||||||
|
8 PUSHINT // _28=0 _29 _30=8 |
||||||
|
PUSHNULL // _28=0 _29 _30=8 _31 |
||||||
|
}> // domain nowtime bits |
||||||
|
s2 PUSH // domain nowtime bits domain |
||||||
|
8 PLDU // domain nowtime bits domain_first_byte |
||||||
|
0 EQINT // domain nowtime bits _36 |
||||||
|
IF:<{ // domain nowtime bits |
||||||
|
s0 s2 XCHG // bits nowtime domain |
||||||
|
8 LDU // bits nowtime _95 _94 |
||||||
|
NIP // bits nowtime domain |
||||||
|
s0 s2 XCHG // domain nowtime bits |
||||||
|
-8 ADDCONST // domain nowtime bits |
||||||
|
}> // domain nowtime bits |
||||||
|
c4 PUSH // domain nowtime bits _43 |
||||||
|
CTOS // domain nowtime bits ds |
||||||
|
LDREF // domain nowtime bits _97 _96 |
||||||
|
NIP // domain nowtime bits ds |
||||||
|
LDDICT // domain nowtime bits _99 _98 |
||||||
|
DROP // domain nowtime bits root |
||||||
|
PUSHNULL // domain nowtime bits root val |
||||||
|
-1 PUSHINT // domain nowtime bits root val tail_bits=-1 |
||||||
|
s5 PUSH // domain nowtime bits root val tail_bits=-1 tail |
||||||
|
s0 s4 XCHG // domain nowtime tail root val tail_bits=-1 bits |
||||||
|
3 RSHIFT# // domain nowtime tail root val tail_bits=-1 _57 |
||||||
|
REPEAT:<{ // domain nowtime tail root val tail_bits |
||||||
|
s0 s3 XCHG // domain nowtime tail_bits root val tail |
||||||
|
8 LDU // domain nowtime tail_bits root val _58 tail |
||||||
|
SWAP // domain nowtime tail_bits root val tail _58 |
||||||
|
0 EQINT // domain nowtime tail_bits root val tail _62 |
||||||
|
IF:<{ // domain nowtime tail_bits root val tail |
||||||
|
DUP // domain nowtime tail_bits root val tail tail |
||||||
|
SBITS // domain nowtime tail_bits root val tail _64 |
||||||
|
s6 s(-1) PUXC // domain nowtime tail_bits root val tail domain _64 |
||||||
|
SDSKIPLAST // domain nowtime tail_bits root val tail _65 |
||||||
|
SHA256U // domain nowtime tail_bits root val tail _66 |
||||||
|
32 RSHIFT# // domain nowtime tail_bits root val tail key |
||||||
|
s3 PUSH |
||||||
|
224 PUSHINT // domain nowtime tail_bits root val tail key root _73 |
||||||
|
DICTUGET |
||||||
|
NULLSWAPIFNOT // domain nowtime tail_bits root val tail v found? |
||||||
|
IF:<{ // domain nowtime tail_bits root val tail v |
||||||
|
DUP // domain nowtime tail_bits root val tail v v |
||||||
|
32 PLDU // domain nowtime tail_bits root val tail v _76 |
||||||
|
s6 PUSH // domain nowtime tail_bits root val tail v _76 nowtime |
||||||
|
GEQ // domain nowtime tail_bits root val tail v _77 |
||||||
|
IF:<{ // domain nowtime tail_bits root val tail v |
||||||
|
s2 POP |
||||||
|
s3 POP // domain nowtime tail root val |
||||||
|
s2 PUSH // domain nowtime tail root val tail |
||||||
|
SBITS // domain nowtime tail root val tail_bits |
||||||
|
s0 s3 XCHG // domain nowtime tail_bits root val tail |
||||||
|
}>ELSE<{ |
||||||
|
DROP // domain nowtime tail_bits root val tail |
||||||
|
}> |
||||||
|
}>ELSE<{ |
||||||
|
DROP // domain nowtime tail_bits root val tail |
||||||
|
}> |
||||||
|
}> // domain nowtime tail_bits root val tail |
||||||
|
s0 s3 XCHG // domain nowtime tail root val tail_bits |
||||||
|
}> |
||||||
|
2 2 BLKDROP2 |
||||||
|
s2 POP // domain tail_bits val |
||||||
|
DUP // domain tail_bits val val |
||||||
|
ISNULL // domain tail_bits val _79 |
||||||
|
IFJMP:<{ // domain tail_bits val |
||||||
|
3 BLKDROP // |
||||||
|
0 PUSHINT // _80=0 |
||||||
|
PUSHNULL // _80=0 _81 |
||||||
|
OVER // _80=0 _81 _82=0 |
||||||
|
PUSHNULL // _80=0 _81 _82=0 _83 |
||||||
|
}> // domain tail_bits val |
||||||
|
32 LDU // domain tail_bits _84 val |
||||||
|
LDREF // domain tail_bits _84 _107 _106 |
||||||
|
DROP // domain tail_bits _84 _87 |
||||||
|
s2 PUSH // domain tail_bits _84 _87 tail_bits |
||||||
|
0 EQINT // domain tail_bits _84 _87 _90 |
||||||
|
s4 s3 XCHG2 // _87 _90 _84 domain tail_bits |
||||||
|
SDSKIPLAST // _87 _90 _84 _91 |
||||||
|
s3 s3 s0 XCHG3 // _84 _87 _90 _91 |
||||||
|
}> |
||||||
|
dnsresolve PROC:<{ |
||||||
|
// domain category |
||||||
|
SWAP |
||||||
|
NOW // category domain _6 |
||||||
|
dnsdictlookup INLINECALLDICT // category exp cat_table exact? pfx |
||||||
|
s0 s3 XCHG // category pfx cat_table exact? exp |
||||||
|
IFNOTJMP:<{ // category pfx cat_table exact? |
||||||
|
3 1 BLKDROP2 // exact? |
||||||
|
PUSHNULL // exact? _8 |
||||||
|
}> // category pfx cat_table exact? |
||||||
|
IFNOT:<{ // category pfx cat_table |
||||||
|
11732114750494247458678882651681748623800183221773167493832867265755123357695 PUSHINT |
||||||
|
s3 POP // category=11732114750494247458678882651681748623800183221773167493832867265755123357695 pfx cat_table |
||||||
|
}> // category pfx cat_table |
||||||
|
SWAP // category cat_table pfx |
||||||
|
SBITS // category cat_table pfx_bits |
||||||
|
s2 PUSH // category cat_table pfx_bits category |
||||||
|
IFJMP:<{ // category cat_table pfx_bits |
||||||
|
-ROT |
||||||
|
8 PUSHPOW2 // pfx_bits category cat_table _13=256 |
||||||
|
DICTUGETOPTREF // pfx_bits cat_found |
||||||
|
}> // category cat_table pfx_bits |
||||||
|
s2 POP // pfx_bits cat_table |
||||||
|
}> |
||||||
|
getexpirationx PROCINLINE:<{ |
||||||
|
// domain nowtime |
||||||
|
dnsdictlookup INLINECALLDICT // _7 _8 _9 _10 |
||||||
|
3 BLKDROP // exp |
||||||
|
}> |
||||||
|
getexpiration PROC:<{ |
||||||
|
// domain |
||||||
|
NOW // domain _1 |
||||||
|
getexpirationx INLINECALLDICT // _2 |
||||||
|
}> |
||||||
|
getstdperiod PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
3 BLKDROP // stdper |
||||||
|
}> |
||||||
|
getppr PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
s2 s3 XCHG |
||||||
|
3 BLKDROP // ppr |
||||||
|
}> |
||||||
|
getppc PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
s1 s3 XCHG |
||||||
|
3 BLKDROP // ppc |
||||||
|
}> |
||||||
|
getppb PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
3 1 BLKDROP2 // ppb |
||||||
|
}> |
||||||
|
calcprice PROC:<{ |
||||||
|
// domain val |
||||||
|
load_prices INLINECALLDICT // domain val _8 _9 _10 _11 |
||||||
|
2 2 BLKDROP2 // domain val ppc ppb |
||||||
|
calcprice_internal INLINECALLDICT // _7 |
||||||
|
}> |
||||||
|
calcregprice PROC:<{ |
||||||
|
// domain val |
||||||
|
load_prices INLINECALLDICT // domain val _9 _10 _11 _12 |
||||||
|
s3 POP // domain val ppb ppr ppc |
||||||
|
s3 s4 XCHG |
||||||
|
s4 s0 s4 XCHG3 // ppr domain val ppc ppb |
||||||
|
calcprice_internal INLINECALLDICT // ppr _7 |
||||||
|
ADD // _8 |
||||||
|
}> |
||||||
|
}END>c |
||||||
|
|
||||||
|
boc>B "build/dns-auto-code.cell" B>file |
@ -0,0 +1,972 @@ |
|||||||
|
"Asm.fif" include |
||||||
|
// automatically generated from `contracts/dns-auto-code.fc` incl:`contracts/imports/stdlib.fc` |
||||||
|
PROGRAM{ |
||||||
|
DECLPROC load_data |
||||||
|
DECLPROC load_prices |
||||||
|
DECLPROC store_data |
||||||
|
DECLPROC send_message |
||||||
|
DECLPROC send_error |
||||||
|
DECLPROC send_ok |
||||||
|
DECLPROC housekeeping |
||||||
|
DECLPROC calcprice_internal |
||||||
|
DECLPROC check_owner |
||||||
|
DECLPROC perform_ctl_op |
||||||
|
DECLPROC recv_internal |
||||||
|
DECLPROC recv_external |
||||||
|
DECLPROC dnsdictlookup |
||||||
|
123660 DECLMETHOD dnsresolve |
||||||
|
87450 DECLMETHOD getexpirationx |
||||||
|
110574 DECLMETHOD getexpiration |
||||||
|
67418 DECLMETHOD getstdperiod |
||||||
|
109522 DECLMETHOD getppr |
||||||
|
108994 DECLMETHOD getppc |
||||||
|
113123 DECLMETHOD getppb |
||||||
|
113304 DECLMETHOD calcprice |
||||||
|
85700 DECLMETHOD calcregprice |
||||||
|
DECLGLOBVAR query_info |
||||||
|
load_data PROCREF:<{ |
||||||
|
// |
||||||
|
c4 PUSH // _1 |
||||||
|
CTOS // cs |
||||||
|
LDREF // _3 cs |
||||||
|
LDDICT // _3 _5 cs |
||||||
|
LDDICT // _3 _5 _7 cs |
||||||
|
30 LDU // _3 _5 _7 _10 cs |
||||||
|
LDGRAMS // _3 _5 _7 _10 _13 cs |
||||||
|
LDGRAMS // _3 _5 _7 _10 _13 _15 cs |
||||||
|
LDGRAMS // _3 _5 _7 _10 _13 _15 _17 cs |
||||||
|
4 -ROLL // _3 _5 _7 cs _10 _13 _15 _17 |
||||||
|
4 TUPLE // _3 _5 _7 cs _9 |
||||||
|
SWAP // _3 _5 _7 _9 cs |
||||||
|
32 LDU // _3 _5 _7 _9 _19 cs |
||||||
|
32 LDU // _3 _5 _7 _9 _19 _42 _41 |
||||||
|
DROP // _3 _5 _7 _9 _19 _22 |
||||||
|
}> |
||||||
|
load_prices PROCREF:<{ |
||||||
|
// |
||||||
|
c4 PUSH // _1 |
||||||
|
CTOS // cs |
||||||
|
LDREF // _19 _18 |
||||||
|
NIP // cs |
||||||
|
LDDICT // _21 _20 |
||||||
|
NIP // cs |
||||||
|
LDDICT // _23 _22 |
||||||
|
NIP // cs |
||||||
|
30 LDU // _9 cs |
||||||
|
LDGRAMS // _9 _12 cs |
||||||
|
LDGRAMS // _9 _12 _14 cs |
||||||
|
LDGRAMS // _9 _12 _14 _31 _30 |
||||||
|
DROP // _9 _12 _14 _16 |
||||||
|
}> |
||||||
|
store_data PROC:<{ |
||||||
|
// ctl dd gc prices nhk lhk |
||||||
|
s0 s2 XCHG // ctl dd gc lhk nhk prices |
||||||
|
4 UNTUPLE // ctl dd gc lhk nhk sp ppr ppc ppb |
||||||
|
s0 s8 XCHG |
||||||
|
NEWC // ppb dd gc lhk nhk sp ppr ppc ctl _11 |
||||||
|
STREF // ppb dd gc lhk nhk sp ppr ppc _12 |
||||||
|
s1 s7 XCHG // ppb ppc gc lhk nhk sp ppr dd _12 |
||||||
|
STDICT // ppb ppc gc lhk nhk sp ppr _13 |
||||||
|
s1 s5 XCHG // ppb ppc ppr lhk nhk sp gc _13 |
||||||
|
STDICT // ppb ppc ppr lhk nhk sp _14 |
||||||
|
30 STU // ppb ppc ppr lhk nhk _16 |
||||||
|
s0 s3 XCHG2 // ppb ppc nhk lhk _16 ppr |
||||||
|
STGRAMS // ppb ppc nhk lhk _17 |
||||||
|
s0 s3 XCHG2 // ppb lhk nhk _17 ppc |
||||||
|
STGRAMS // ppb lhk nhk _18 |
||||||
|
s0 s3 XCHG2 // nhk lhk _18 ppb |
||||||
|
STGRAMS // nhk lhk _19 |
||||||
|
s1 s2 XCHG // lhk nhk _19 |
||||||
|
32 STU // lhk _21 |
||||||
|
32 STU // _23 |
||||||
|
ENDC // _24 |
||||||
|
c4 POP |
||||||
|
}> |
||||||
|
send_message PROC:<{ |
||||||
|
// addr tag query_id body grams mode |
||||||
|
0 PUSHINT // addr tag query_id body grams mode _7=0 |
||||||
|
24 PUSHINT // addr tag query_id body grams mode _7=0 _8=24 |
||||||
|
NEWC // addr tag query_id body grams mode _7=0 _8=24 _9 |
||||||
|
6 STU // addr tag query_id body grams mode _7=0 _11 |
||||||
|
s0 s7 XCHG2 // _7=0 tag query_id body grams mode _11 addr |
||||||
|
STSLICER // _7=0 tag query_id body grams mode _12 |
||||||
|
ROT // _7=0 tag query_id body mode _12 grams |
||||||
|
STGRAMS // _7=0 tag query_id body mode _13 |
||||||
|
s1 s5 XCHG // mode tag query_id body _7=0 _13 |
||||||
|
107 STU // mode tag query_id body _27 |
||||||
|
s1 s3 XCHG // mode body query_id tag _27 |
||||||
|
32 STU // mode body query_id _29 |
||||||
|
64 STU // mode body msg |
||||||
|
OVER // mode body msg body |
||||||
|
-1 GTINT // mode body msg _33 |
||||||
|
IF:<{ // mode body msg |
||||||
|
32 STU // mode msg |
||||||
|
}>ELSE<{ |
||||||
|
NIP // mode msg |
||||||
|
}> |
||||||
|
ENDC // mode _37 |
||||||
|
SWAP // _37 mode |
||||||
|
SENDRAWMSG |
||||||
|
}> |
||||||
|
send_error PROC:<{ |
||||||
|
// error_code |
||||||
|
query_info GETGLOB |
||||||
|
UNTRIPLE // error_code addr query_id op |
||||||
|
s2 s3 XCHG |
||||||
|
0 PUSHINT |
||||||
|
64 PUSHINT // addr error_code query_id op _5=0 _6=64 |
||||||
|
send_message CALLDICT |
||||||
|
}> |
||||||
|
send_ok PROC:<{ |
||||||
|
// price |
||||||
|
4 PUSHINT // price _1=4 |
||||||
|
RAWRESERVE |
||||||
|
query_info GETGLOB |
||||||
|
UNTRIPLE // addr query_id op |
||||||
|
4016791929 PUSHINT // addr query_id op _7=4016791929 |
||||||
|
-ROT |
||||||
|
0 PUSHINT |
||||||
|
7 PUSHPOW2 // addr _7=4016791929 query_id op _8=0 _9=128 |
||||||
|
send_message CALLDICT |
||||||
|
}> |
||||||
|
housekeeping PROC:<{ |
||||||
|
// ctl dd gc prices nhk lhk max_steps |
||||||
|
NOW // ctl dd gc prices nhk lhk max_steps n |
||||||
|
s2 PUSH // ctl dd gc prices nhk lhk max_steps n lhk |
||||||
|
60 ADDCONST // ctl dd gc prices nhk lhk max_steps n _10 |
||||||
|
s4 s(-1) PUXC // ctl dd gc prices nhk lhk max_steps n nhk _10 |
||||||
|
MAX // ctl dd gc prices nhk lhk max_steps n _11 |
||||||
|
s1 s(-1) PUXC // ctl dd gc prices nhk lhk max_steps n n _11 |
||||||
|
LESS // ctl dd gc prices nhk lhk max_steps n _12 |
||||||
|
IFJMP:<{ // ctl dd gc prices nhk lhk max_steps n |
||||||
|
2DROP // ctl dd gc prices nhk lhk |
||||||
|
store_data CALLDICT |
||||||
|
}> // ctl dd gc prices nhk lhk max_steps n |
||||||
|
s2 POP // ctl dd gc prices nhk n max_steps |
||||||
|
s4 PUSH |
||||||
|
8 PUSHPOW2 // ctl dd gc prices nhk n max_steps gc _17=256 |
||||||
|
DICTUMIN |
||||||
|
NULLSWAPIFNOT2 // ctl dd gc prices nhk n max_steps _63 _62 _64 |
||||||
|
s2 POP // ctl dd gc prices nhk n max_steps found? mkey |
||||||
|
WHILE:<{ |
||||||
|
s1 s2 XCPU // ctl dd gc prices nhk n max_steps mkey found? max_steps |
||||||
|
AND // ctl dd gc prices nhk n max_steps mkey _19 |
||||||
|
}>DO<{ // ctl dd gc prices nhk n max_steps mkey |
||||||
|
s3 POP // ctl dd gc prices mkey n max_steps |
||||||
|
s2 PUSH // ctl dd gc prices mkey n max_steps mkey |
||||||
|
224 RSHIFT# // ctl dd gc prices mkey n max_steps nhk |
||||||
|
s0 s2 PUSH2 // ctl dd gc prices mkey n max_steps nhk nhk n |
||||||
|
LESS // ctl dd gc prices mkey n max_steps nhk _24 |
||||||
|
IF:<{ // ctl dd gc prices mkey n max_steps nhk |
||||||
|
DROP // ctl dd gc prices mkey n max_steps |
||||||
|
s2 PUSH // ctl dd gc prices mkey n max_steps mkey |
||||||
|
224 MODPOW2# // ctl dd gc prices mkey n max_steps key |
||||||
|
s0 s6 PUSH2 |
||||||
|
224 PUSHINT // ctl dd gc prices mkey n max_steps key key dd _35 |
||||||
|
DICTUGET |
||||||
|
NULLSWAPIFNOT // ctl dd gc prices mkey n max_steps key val found? |
||||||
|
IF:<{ // ctl dd gc prices mkey n max_steps key val |
||||||
|
32 PLDU // ctl dd gc prices mkey n max_steps key exp |
||||||
|
s3 PUSH // ctl dd gc prices mkey n max_steps key exp n |
||||||
|
LEQ // ctl dd gc prices mkey n max_steps key _40 |
||||||
|
IF:<{ // ctl dd gc prices mkey n max_steps key |
||||||
|
s0 s6 XCHG2 |
||||||
|
224 PUSHINT // ctl max_steps gc prices mkey n key dd _44 |
||||||
|
DICTUDEL // ctl max_steps gc prices mkey n _67 _68 |
||||||
|
DROP // ctl max_steps gc prices mkey n dd |
||||||
|
s0 s5 XCHG // ctl dd gc prices mkey n max_steps |
||||||
|
}>ELSE<{ |
||||||
|
DROP // ctl dd gc prices mkey n max_steps |
||||||
|
}> |
||||||
|
}>ELSE<{ |
||||||
|
2DROP // ctl dd gc prices mkey n max_steps |
||||||
|
}> |
||||||
|
s2 s4 XCHG2 |
||||||
|
8 PUSHPOW2 // ctl dd max_steps prices n mkey gc _47=256 |
||||||
|
DICTUDEL // ctl dd max_steps prices n _69 _70 |
||||||
|
DROP // ctl dd max_steps prices n gc |
||||||
|
DUP |
||||||
|
8 PUSHPOW2 // ctl dd max_steps prices n gc gc _50=256 |
||||||
|
DICTUMIN |
||||||
|
NULLSWAPIFNOT2 // ctl dd max_steps prices n gc _72 _71 _73 |
||||||
|
s2 POP // ctl dd max_steps prices n gc found? mkey |
||||||
|
OVER // ctl dd max_steps prices n gc found? mkey found? |
||||||
|
IF:<{ // ctl dd max_steps prices n gc found? mkey |
||||||
|
DUP // ctl dd max_steps prices n gc found? mkey mkey |
||||||
|
224 RSHIFT# // ctl dd max_steps prices n gc found? mkey _52 |
||||||
|
}>ELSE<{ // ctl dd max_steps prices n gc found? mkey |
||||||
|
32 PUSHPOW2DEC // ctl dd max_steps prices n gc found? mkey _52=4294967295 |
||||||
|
}> // ctl dd max_steps prices n gc found? mkey nhk |
||||||
|
s0 s6 XCHG // ctl dd nhk prices n gc found? mkey max_steps |
||||||
|
DEC // ctl dd nhk prices n gc found? mkey max_steps |
||||||
|
}>ELSE<{ // ctl dd gc prices mkey n max_steps nhk |
||||||
|
s5 s1 s5 XCHG3 |
||||||
|
s0 s3 XCHG |
||||||
|
FALSE |
||||||
|
s0 s2 XCHG // ctl dd nhk prices n gc found? mkey max_steps |
||||||
|
}> |
||||||
|
s3 s6 XCHG |
||||||
|
s3 s4 XCHG |
||||||
|
-ROT // ctl dd gc prices nhk n max_steps found? mkey |
||||||
|
}> // ctl dd gc prices nhk n max_steps mkey |
||||||
|
2DROP // ctl dd gc prices nhk n |
||||||
|
store_data CALLDICT |
||||||
|
}> |
||||||
|
calcprice_internal PROCREF:<{ |
||||||
|
// domain data ppc ppb |
||||||
|
s0 s2 XCHG |
||||||
|
100 PUSHINT // domain ppb ppc data _7=100 |
||||||
|
CDATASIZE // domain ppb ppc _24 _25 _26 |
||||||
|
s2 POP // domain ppb ppc refs bits |
||||||
|
s0 s4 XCHG // bits ppb ppc refs domain |
||||||
|
SBITS // bits ppb ppc refs _9 |
||||||
|
1 LSHIFT# // bits ppb ppc refs _11 |
||||||
|
192 PUSHINT // bits ppb ppc refs _11 _16 |
||||||
|
ADD // bits ppb ppc refs _17 |
||||||
|
s1 s4 XCHG // refs ppb ppc bits _17 |
||||||
|
ADD // refs ppb ppc bits |
||||||
|
s0 s3 XCHG // bits ppb ppc refs |
||||||
|
2 ADDCONST // bits ppb ppc _20 |
||||||
|
MUL // bits ppb _21 |
||||||
|
s0 s2 XCHG // _21 ppb bits |
||||||
|
MUL // _21 _22 |
||||||
|
ADD // _23 |
||||||
|
}> |
||||||
|
check_owner PROCREF:<{ |
||||||
|
// cat_table owner_info src_wc src_addr strict |
||||||
|
s0 s4 XCHG // strict owner_info src_wc src_addr cat_table |
||||||
|
ISNULL // strict owner_info src_wc src_addr _5 |
||||||
|
s4 s(-1) PUXC // strict owner_info src_wc src_addr strict _5 |
||||||
|
AND // strict owner_info src_wc src_addr _6 |
||||||
|
IFJMP:<{ // strict owner_info src_wc src_addr |
||||||
|
4 BLKDROP // |
||||||
|
4000281702 PUSHINT // _7=4000281702 |
||||||
|
}> // strict owner_info src_wc src_addr |
||||||
|
s2 PUSH // strict owner_info src_wc src_addr owner_info |
||||||
|
ISNULL // strict owner_info src_wc src_addr _8 |
||||||
|
IFJMP:<{ // strict owner_info src_wc src_addr |
||||||
|
3 BLKDROP // strict |
||||||
|
4000263474 PUSHINT // strict _9=4000263474 |
||||||
|
AND // _10 |
||||||
|
}> // strict owner_info src_wc src_addr |
||||||
|
s3 POP // src_addr owner_info src_wc |
||||||
|
3798033458 PUSHINT // src_addr owner_info src_wc ERR_BAD2=3798033458 |
||||||
|
s0 s2 XCHG // src_addr ERR_BAD2=3798033458 src_wc owner_info |
||||||
|
CTOS // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
DUP // src_addr ERR_BAD2=3798033458 src_wc sown sown |
||||||
|
SBITS // src_addr ERR_BAD2=3798033458 src_wc sown _15 |
||||||
|
283 PUSHINT // src_addr ERR_BAD2=3798033458 src_wc sown _15 _22 |
||||||
|
LESS // src_addr ERR_BAD2=3798033458 src_wc sown _23 |
||||||
|
IFJMP:<{ // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
s2 s3 XCHG |
||||||
|
3 BLKDROP // ERR_BAD2=3798033458 |
||||||
|
}> // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
19 LDU // src_addr ERR_BAD2=3798033458 src_wc _24 sown |
||||||
|
SWAP |
||||||
|
327324 PUSHINT // src_addr ERR_BAD2=3798033458 src_wc sown _24 _33 |
||||||
|
NEQ // src_addr ERR_BAD2=3798033458 src_wc sown _34 |
||||||
|
IFJMP:<{ // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
s2 s3 XCHG |
||||||
|
3 BLKDROP // ERR_BAD2=3798033458 |
||||||
|
}> // src_addr ERR_BAD2=3798033458 src_wc sown |
||||||
|
1 2 BLKDROP2 // src_addr src_wc sown |
||||||
|
8 LDI // src_addr src_wc _37 sown |
||||||
|
256 PLDU // src_addr src_wc owner_wc owner_addr |
||||||
|
s0 s2 XCHG // src_addr owner_addr owner_wc src_wc |
||||||
|
NEQ // src_addr owner_addr _42 |
||||||
|
s0 s2 XCHG // _42 owner_addr src_addr |
||||||
|
NEQ // _42 _43 |
||||||
|
OR // _44 |
||||||
|
IFJMP:<{ // |
||||||
|
4000282478 PUSHINT // _45=4000282478 |
||||||
|
}> // |
||||||
|
0 PUSHINT // _46=0 |
||||||
|
}> |
||||||
|
perform_ctl_op PROCREF:<{ |
||||||
|
// op src_wc src_addr in_msg |
||||||
|
load_data INLINECALLDICT // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk |
||||||
|
s5 PUSH // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk ctl |
||||||
|
CTOS // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk cs |
||||||
|
8 LDI // op src_wc src_addr in_msg ctl domdata gc prices nhk lhk _13 cs |
||||||
|
s0 s10 XCHG // op cs src_addr in_msg ctl domdata gc prices nhk lhk _13 src_wc |
||||||
|
NEQ // op cs src_addr in_msg ctl domdata gc prices nhk lhk _16 |
||||||
|
s0 s9 XCHG // op _16 src_addr in_msg ctl domdata gc prices nhk lhk cs |
||||||
|
256 LDU // op _16 src_addr in_msg ctl domdata gc prices nhk lhk _83 _82 |
||||||
|
DROP // op _16 src_addr in_msg ctl domdata gc prices nhk lhk _17 |
||||||
|
s0 s8 XCHG2 // op _16 lhk in_msg ctl domdata gc prices nhk _17 src_addr |
||||||
|
NEQ // op _16 lhk in_msg ctl domdata gc prices nhk _20 |
||||||
|
s1 s8 XCHG // op nhk lhk in_msg ctl domdata gc prices _16 _20 |
||||||
|
OR // op nhk lhk in_msg ctl domdata gc prices _21 |
||||||
|
IFJMP:<{ // op nhk lhk in_msg ctl domdata gc prices |
||||||
|
8 BLKDROP // |
||||||
|
4000282478 PUSHINT // _22=4000282478 |
||||||
|
send_error CALLDICT |
||||||
|
}> // op nhk lhk in_msg ctl domdata gc prices |
||||||
|
s0 s7 XCHG |
||||||
|
1130909810 PUSHINT // prices nhk lhk in_msg ctl domdata gc op _24=1130909810 |
||||||
|
EQUAL // prices nhk lhk in_msg ctl domdata gc _25 |
||||||
|
IFJMP:<{ // prices nhk lhk in_msg ctl domdata gc |
||||||
|
s6 POP // gc nhk lhk in_msg ctl domdata |
||||||
|
s0 s2 XCHG // gc nhk lhk domdata ctl in_msg |
||||||
|
32 LDU // gc nhk lhk domdata ctl _30 in_msg |
||||||
|
LDGRAMS // gc nhk lhk domdata ctl _30 _33 in_msg |
||||||
|
LDGRAMS // gc nhk lhk domdata ctl _30 _33 _35 in_msg |
||||||
|
LDGRAMS // gc nhk lhk domdata ctl stdper ppr ppc ppb in_msg |
||||||
|
ENDS |
||||||
|
4 TUPLE // gc nhk lhk domdata ctl _40 |
||||||
|
s0 s4 s4 XCHG3 |
||||||
|
s0 s5 XCHG |
||||||
|
s0 s3 XCHG // ctl domdata gc _40 nhk lhk |
||||||
|
store_data CALLDICT |
||||||
|
0 PUSHINT // _42=0 |
||||||
|
send_ok CALLDICT |
||||||
|
}> // prices nhk lhk in_msg ctl domdata gc |
||||||
|
s4 POP // prices nhk gc in_msg ctl domdata |
||||||
|
query_info GETGLOB |
||||||
|
UNTRIPLE // prices nhk gc in_msg ctl domdata addr query_id op |
||||||
|
DUP |
||||||
|
1128555884 PUSHINT // prices nhk gc in_msg ctl domdata addr query_id op op _48=1128555884 |
||||||
|
EQUAL // prices nhk gc in_msg ctl domdata addr query_id op _49 |
||||||
|
IFJMP:<{ // prices nhk gc in_msg ctl domdata addr query_id op |
||||||
|
s5 POP // prices nhk gc op ctl domdata addr query_id |
||||||
|
s2 PUSH // prices nhk gc op ctl domdata addr query_id domdata |
||||||
|
ISNULL // prices nhk gc op ctl domdata addr query_id _50 |
||||||
|
IFNOT:<{ // prices nhk gc op ctl domdata addr query_id |
||||||
|
s3 s4 XCHG |
||||||
|
s2 s3 XCHG |
||||||
|
s5 s7 s6 XCHG3 |
||||||
|
1 PUSHINT |
||||||
|
-1 PUSHINT // addr query_id op ctl domdata gc prices nhk _51=1 _52=-1 |
||||||
|
housekeeping CALLDICT |
||||||
|
-ROT // op addr query_id |
||||||
|
}>ELSE<{ |
||||||
|
s4 s7 XCHG |
||||||
|
5 2 BLKDROP2 // op addr query_id |
||||||
|
}> |
||||||
|
load_data INLINECALLDICT // op addr query_id _95 _96 _97 _98 _99 _100 |
||||||
|
s4 s5 XCHG |
||||||
|
5 BLKDROP // op addr query_id domdata |
||||||
|
ISNULL // op addr query_id _55 |
||||||
|
IFNOTJMP:<{ // op addr query_id |
||||||
|
3 BLKDROP // |
||||||
|
4000605549 PUSHINT // _56=4000605549 |
||||||
|
send_error CALLDICT |
||||||
|
}> // op addr query_id |
||||||
|
4016791929 PUSHINT // op addr query_id _58=4016791929 |
||||||
|
s0 s1 s3 XCHG3 |
||||||
|
0 PUSHINT |
||||||
|
160 PUSHINT // addr _58=4016791929 query_id op _59=0 _62 |
||||||
|
send_message CALLDICT |
||||||
|
}> // prices nhk gc in_msg ctl domdata addr query_id op |
||||||
|
s3 POP |
||||||
|
s3 POP |
||||||
|
s4 POP |
||||||
|
s4 POP |
||||||
|
s4 POP // query_id op addr in_msg |
||||||
|
s2 PUSH |
||||||
|
1415670629 PUSHINT // query_id op addr in_msg op _64=1415670629 |
||||||
|
EQUAL // query_id op addr in_msg _65 |
||||||
|
IFJMP:<{ // query_id op addr in_msg |
||||||
|
LDGRAMS // query_id op addr _102 _101 |
||||||
|
DROP // query_id op addr amount |
||||||
|
s1 s3 XCHG |
||||||
|
4016791929 PUSHINT |
||||||
|
s3 s3 XCHG2 |
||||||
|
64 PUSHINT // addr _69=4016791929 query_id op amount _70=64 |
||||||
|
send_message CALLDICT |
||||||
|
}> // query_id op addr in_msg |
||||||
|
4 BLKDROP // |
||||||
|
32 PUSHPOW2DEC // _72=4294967295 |
||||||
|
send_error CALLDICT |
||||||
|
}> |
||||||
|
recv_internal PROC:<{ |
||||||
|
// msg_value in_msg_cell in_msg |
||||||
|
DUP // msg_value in_msg_cell in_msg in_msg |
||||||
|
SBITS // msg_value in_msg_cell in_msg _3 |
||||||
|
32 LESSINT // msg_value in_msg_cell in_msg _5 |
||||||
|
IFJMP:<{ // msg_value in_msg_cell in_msg |
||||||
|
3 BLKDROP // |
||||||
|
}> // msg_value in_msg_cell in_msg |
||||||
|
SWAP // msg_value in_msg in_msg_cell |
||||||
|
CTOS // msg_value in_msg cs |
||||||
|
4 LDU // msg_value in_msg flags cs |
||||||
|
SWAP |
||||||
|
1 PUSHINT // msg_value in_msg cs flags _12=1 |
||||||
|
AND // msg_value in_msg cs _13 |
||||||
|
IFJMP:<{ // msg_value in_msg cs |
||||||
|
3 BLKDROP // |
||||||
|
}> // msg_value in_msg cs |
||||||
|
LDMSGADDR // msg_value in_msg _327 _326 |
||||||
|
DROP // msg_value in_msg s_addr |
||||||
|
DUP // msg_value in_msg s_addr s_addr |
||||||
|
REWRITESTDADDR // msg_value in_msg s_addr src_wc src_addr |
||||||
|
s0 s3 XCHG // msg_value src_addr s_addr src_wc in_msg |
||||||
|
32 LDU // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
OVER // msg_value src_addr s_addr src_wc op in_msg op |
||||||
|
IFNOTJMP:<{ // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
6 BLKDROP // |
||||||
|
}> // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
0 PUSHINT // msg_value src_addr s_addr src_wc op in_msg query_id=0 |
||||||
|
OVER // msg_value src_addr s_addr src_wc op in_msg query_id=0 in_msg |
||||||
|
SBITS // msg_value src_addr s_addr src_wc op in_msg query_id=0 _26 |
||||||
|
63 GTINT // msg_value src_addr s_addr src_wc op in_msg query_id=0 _28 |
||||||
|
IF:<{ // msg_value src_addr s_addr src_wc op in_msg query_id=0 |
||||||
|
DROP // msg_value src_addr s_addr src_wc op in_msg |
||||||
|
64 LDU // msg_value src_addr s_addr src_wc op query_id in_msg |
||||||
|
SWAP // msg_value src_addr s_addr src_wc op in_msg query_id |
||||||
|
}> // msg_value src_addr s_addr src_wc op in_msg query_id |
||||||
|
s4 s0 s2 XC2PU // msg_value src_addr in_msg src_wc op s_addr query_id op |
||||||
|
TRIPLE |
||||||
|
query_info SETGLOB |
||||||
|
DUP |
||||||
|
31 PUSHPOW2 // msg_value src_addr in_msg src_wc op op _34 |
||||||
|
AND // msg_value src_addr in_msg src_wc op _35 |
||||||
|
IFJMP:<{ // msg_value src_addr in_msg src_wc op |
||||||
|
5 BLKDROP // |
||||||
|
}> // msg_value src_addr in_msg src_wc op |
||||||
|
DUP // msg_value src_addr in_msg src_wc op op |
||||||
|
24 RSHIFT# // msg_value src_addr in_msg src_wc op _37 |
||||||
|
67 EQINT // msg_value src_addr in_msg src_wc op _39 |
||||||
|
IFJMP:<{ // msg_value src_addr in_msg src_wc op |
||||||
|
s4 POP // op src_addr in_msg src_wc |
||||||
|
-ROT // op src_wc src_addr in_msg |
||||||
|
perform_ctl_op INLINECALLDICT |
||||||
|
}> // msg_value src_addr in_msg src_wc op |
||||||
|
DUP |
||||||
|
1919248228 PUSHINT // msg_value src_addr in_msg src_wc op op _42=1919248228 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc op _45 |
||||||
|
OVER |
||||||
|
1886547820 PUSHINT // msg_value src_addr in_msg src_wc op _45 op _46=1886547820 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc op _45 _47 |
||||||
|
1 LSHIFT# // msg_value src_addr in_msg src_wc op _45 _49 |
||||||
|
ADD // msg_value src_addr in_msg src_wc op _50 |
||||||
|
OVER |
||||||
|
1970300004 PUSHINT // msg_value src_addr in_msg src_wc op _50 op _51=1970300004 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc op _50 _52 |
||||||
|
2 LSHIFT# // msg_value src_addr in_msg src_wc op _50 _54 |
||||||
|
ADD // msg_value src_addr in_msg src_wc op _55 |
||||||
|
SWAP |
||||||
|
1735354211 PUSHINT // msg_value src_addr in_msg src_wc _55 op _56=1735354211 |
||||||
|
EQUAL // msg_value src_addr in_msg src_wc _55 _57 |
||||||
|
3 LSHIFT# // msg_value src_addr in_msg src_wc _55 _59 |
||||||
|
ADD // msg_value src_addr in_msg src_wc qt |
||||||
|
DUP // msg_value src_addr in_msg src_wc qt qt |
||||||
|
IFNOTJMP:<{ // msg_value src_addr in_msg src_wc qt |
||||||
|
5 BLKDROP // |
||||||
|
32 PUSHPOW2DEC // _61=4294967295 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr in_msg src_wc qt |
||||||
|
NEGATE // msg_value src_addr in_msg src_wc qt |
||||||
|
load_data INLINECALLDICT // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk |
||||||
|
s6 PUSH // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk qt |
||||||
|
8 EQINT // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk _72 |
||||||
|
IFJMP:<{ // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk |
||||||
|
DROP |
||||||
|
s5 POP |
||||||
|
s5 POP |
||||||
|
s6 POP |
||||||
|
s6 POP // domdata gc in_msg prices nhk ctl |
||||||
|
s0 s3 XCHG // domdata gc ctl prices nhk in_msg |
||||||
|
32 LDI // domdata gc ctl prices nhk _341 _340 |
||||||
|
DROP // domdata gc ctl prices nhk max_steps |
||||||
|
s3 s5 XCHG |
||||||
|
s3 s4 XCHG |
||||||
|
1 PUSHINT |
||||||
|
SWAP // ctl domdata gc prices nhk _77=1 max_steps |
||||||
|
housekeeping CALLDICT |
||||||
|
4016791929 PUSHINT // _79=4016791929 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr in_msg src_wc qt ctl domdata gc prices nhk lhk |
||||||
|
s0 s8 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg |
||||||
|
LDOPTREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg |
||||||
|
OVER // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg domain_cell |
||||||
|
ISNULL // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg _88 |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg |
||||||
|
NIP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg |
||||||
|
6 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg |
||||||
|
OVER // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg bytes |
||||||
|
0 EQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk bytes in_msg fail |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail in_msg bytes |
||||||
|
3 LSHIFT# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail in_msg _97 |
||||||
|
LDSLICEX // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
}>ELSE<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk domain_cell in_msg |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain_cell |
||||||
|
CTOS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain domain |
||||||
|
SBITREFS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain bits refs |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs bits |
||||||
|
-8 ADDCONST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _104 |
||||||
|
-121 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _104 _107 |
||||||
|
AND // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain refs _108 |
||||||
|
OR // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
}> |
||||||
|
s2 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg fail |
||||||
|
IFNOT:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
s2 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
DUP |
||||||
|
8 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain domain _110=8 |
||||||
|
SDCUTLAST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain _111 |
||||||
|
8 PLDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk fail domain in_msg |
||||||
|
s0 s2 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain fail |
||||||
|
IFJMP:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
12 BLKDROP // |
||||||
|
4000275504 PUSHINT // _114=4000275504 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain |
||||||
|
NOW // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n |
||||||
|
PUSHNULL // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n _120 |
||||||
|
DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info |
||||||
|
0 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info _124=0 |
||||||
|
s0 s0 s4 PUSH3 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail |
||||||
|
DUP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail tail |
||||||
|
SBITS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail _126 |
||||||
|
3 RSHIFTC# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key=0 zeros=0 exp=0 tail _128 |
||||||
|
REPEAT:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
PUSHNULL |
||||||
|
s6 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
8 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp _131 tail |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail _131 |
||||||
|
0 EQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail z |
||||||
|
s3 s3 XCPU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key z exp tail zeros z |
||||||
|
SUB // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key z exp tail zeros |
||||||
|
s0 s3 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail z |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
s3 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp |
||||||
|
s2 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp tail |
||||||
|
SBITS // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _137 |
||||||
|
s7 s(-1) PUXC // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp domain _137 |
||||||
|
SDSKIPLAST // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _138 |
||||||
|
SHA256U // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp _139 |
||||||
|
32 RSHIFT# // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key |
||||||
|
s0 s12 PUSH2 |
||||||
|
224 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key key domdata _146 |
||||||
|
DICTUGET |
||||||
|
NULLSWAPIFNOT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key val found? |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key val |
||||||
|
1 2 BLKDROP2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key val |
||||||
|
32 LDU // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val |
||||||
|
s1 s7 PUSH2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val exp n |
||||||
|
GEQ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val _151 |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp val |
||||||
|
LDREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cat_table val |
||||||
|
ENDS |
||||||
|
0 PUSHINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cat_table _158=0 |
||||||
|
SWAP |
||||||
|
8 PUSHPOW2 // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp _158=0 cat_table _159=256 |
||||||
|
DICTUGETREF // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cown ok |
||||||
|
IF:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp cown |
||||||
|
s5 POP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp |
||||||
|
}> |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros key exp |
||||||
|
}> |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info tail zeros exp key |
||||||
|
}> |
||||||
|
s0 s3 XCHG // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp tail |
||||||
|
}> |
||||||
|
DROP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key zeros exp |
||||||
|
SWAP // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp zeros |
||||||
|
4 GTINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp _162 |
||||||
|
IFJMP:<{ // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp |
||||||
|
15 BLKDROP |
||||||
|
2DROP // |
||||||
|
4017511472 PUSHINT // _163=4017511472 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp |
||||||
|
s12 PUSH // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp qt |
||||||
|
1 NEQINT // msg_value src_addr lhk src_wc qt ctl domdata gc prices nhk in_msg domain n cat_table owner_info key exp _167 |
||||||
|
s4 PUSH |
||||||
|
s0 s4 XCHG |
||||||
|
s15 s1 s3 XCHG3 |
||||||
|
s0 17 s() XCHG |
||||||
|
SWAP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table cat_table owner_info src_wc src_addr _167 |
||||||
|
check_owner INLINECALLDICT // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err |
||||||
|
DUP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err err |
||||||
|
IFJMP:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err |
||||||
|
14 1 BLKDROP2 // err |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table err |
||||||
|
DROP // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table |
||||||
|
s9 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table qt |
||||||
|
2 NEQINT // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table _173 |
||||||
|
IF:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table |
||||||
|
s0 s3 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n in_msg |
||||||
|
LDREF // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n _361 _360 |
||||||
|
DROP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
DUP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data data |
||||||
|
DICTEMPTY // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _176 |
||||||
|
IFNOT:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
0 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _179=0 |
||||||
|
OVER |
||||||
|
8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _179=0 data _180=256 |
||||||
|
DICTUGETREF // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data oinfo ok |
||||||
|
IF:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data oinfo |
||||||
|
CTOS // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs |
||||||
|
DUP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs cs |
||||||
|
SBITS // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _185 |
||||||
|
283 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _185 _192 |
||||||
|
GEQ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data cs _193 |
||||||
|
31 THROWIFNOT |
||||||
|
19 PLDU // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _197 |
||||||
|
327324 PUSHINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _197 _202 |
||||||
|
EQUAL // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _203 |
||||||
|
31 THROWIFNOT |
||||||
|
}>ELSE<{ |
||||||
|
DROP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
}> |
||||||
|
DUP |
||||||
|
8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data data _208=256 |
||||||
|
DICTUMIN |
||||||
|
NULLSWAPIFNOT2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _365 _364 _366 |
||||||
|
2 1 BLKDROP2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok |
||||||
|
OVER |
||||||
|
8 PUSHPOW2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok data _213=256 |
||||||
|
DICTUMAX |
||||||
|
NULLSWAPIFNOT2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok _368 _367 _369 |
||||||
|
2 1 BLKDROP2 // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data minok maxok |
||||||
|
AND // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data _216 |
||||||
|
31 THROWIFNOT |
||||||
|
}> // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
}>ELSE<{ // msg_value key lhk exp qt ctl domdata gc prices nhk in_msg domain n cat_table |
||||||
|
s3 POP // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n |
||||||
|
s2 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data |
||||||
|
}> |
||||||
|
s5 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data prices |
||||||
|
4 UNTUPLE // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb |
||||||
|
s3 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb stdper |
||||||
|
IFNOTJMP:<{ // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb |
||||||
|
15 BLKDROP |
||||||
|
3 BLKDROP // |
||||||
|
3545187910 PUSHINT // _223=3545187910 |
||||||
|
send_error CALLDICT |
||||||
|
}> // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table domain n data stdper ppr ppc ppb |
||||||
|
s4 PUSH |
||||||
|
s3 s7 XCHG |
||||||
|
-ROT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper domain data ppc ppb |
||||||
|
calcprice_internal INLINECALLDICT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 |
||||||
|
s11 PUSH // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 qt |
||||||
|
4 NEQINT // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table ppr n data stdper _226 _228 |
||||||
|
s1 s5 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table _226 n data stdper ppr _228 |
||||||
|
AND // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table _226 n data stdper _229 |
||||||
|
s1 s4 XCHG // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _226 _229 |
||||||
|
ADD // msg_value key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data price |
||||||
|
s0 s14 XCHG |
||||||
|
30 PUSHPOW2 // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data msg_value _233 |
||||||
|
SUB // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _234 |
||||||
|
s14 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _234 price |
||||||
|
LESS // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _235 |
||||||
|
IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
14 BLKDROP // |
||||||
|
3883023472 PUSHINT // _236=3883023472 |
||||||
|
send_error CALLDICT |
||||||
|
}> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s9 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data qt |
||||||
|
2 EQINT // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _243 |
||||||
|
IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s3 POP |
||||||
|
s8 POP // price key lhk exp n ctl domdata gc prices nhk data stdper |
||||||
|
s7 s7 XCPU // price key lhk exp stdper ctl domdata gc prices nhk data n stdper |
||||||
|
ADD // price key lhk exp stdper ctl domdata gc prices nhk data _244 |
||||||
|
s8 s(-1) PUXC // price key lhk exp stdper ctl domdata gc prices nhk data exp _244 |
||||||
|
GREATER // price key lhk exp stdper ctl domdata gc prices nhk data _245 |
||||||
|
IFJMP:<{ // price key lhk exp stdper ctl domdata gc prices nhk data |
||||||
|
11 BLKDROP // |
||||||
|
4083511919 PUSHINT // _246=4083511919 |
||||||
|
send_error CALLDICT |
||||||
|
}> // price key lhk exp stdper ctl domdata gc prices nhk data |
||||||
|
s7 s6 PUSH2 // price key lhk exp stdper ctl domdata gc prices nhk data exp stdper |
||||||
|
ADD // price key lhk exp stdper ctl domdata gc prices nhk data _249 |
||||||
|
NEWC // price key lhk exp stdper ctl domdata gc prices nhk data _249 _250 |
||||||
|
32 STU // price key lhk exp stdper ctl domdata gc prices nhk data _252 |
||||||
|
STREF // price key lhk exp stdper ctl domdata gc prices nhk _253 |
||||||
|
s0 s9 s4 XCPUXC |
||||||
|
224 PUSHINT // price key lhk exp stdper ctl nhk gc prices _253 key domdata _256 |
||||||
|
DICTUSETB // price key lhk exp stdper ctl nhk gc prices domdata |
||||||
|
s0 s6 XCHG // price key lhk domdata stdper ctl nhk gc prices exp |
||||||
|
224 LSHIFT# // price key lhk domdata stdper ctl nhk gc prices _262 |
||||||
|
s0 s8 XCHG2 // price prices lhk domdata stdper ctl nhk gc _262 key |
||||||
|
ADD // price prices lhk domdata stdper ctl nhk gc gckeyO |
||||||
|
s0 s4 XCHG // price prices lhk domdata gckeyO ctl nhk gc stdper |
||||||
|
224 LSHIFT# // price prices lhk domdata gckeyO ctl nhk gc _268 |
||||||
|
s4 s(-1) PUXC // price prices lhk domdata gckeyO ctl nhk gc gckeyO _268 |
||||||
|
ADD // price prices lhk domdata gckeyO ctl nhk gc gckeyN |
||||||
|
s4 s4 XCHG2 |
||||||
|
8 PUSHPOW2 // price prices lhk domdata gckeyN ctl nhk gckeyO gc _271=256 |
||||||
|
DICTUDEL // price prices lhk domdata gckeyN ctl nhk _376 _377 |
||||||
|
DROP // price prices lhk domdata gckeyN ctl nhk gc |
||||||
|
NEWC // price prices lhk domdata gckeyN ctl nhk gc _274 |
||||||
|
s0 s4 s4 XCHG3 |
||||||
|
8 PUSHPOW2 // price prices lhk domdata nhk ctl _274 gckeyN gc _275=256 |
||||||
|
DICTUSETB // price prices lhk domdata nhk ctl gc |
||||||
|
s0 s3 XCHG |
||||||
|
s5 s5 s4 XCHG3 |
||||||
|
1 PUSHINT // price ctl domdata gc prices nhk lhk _277=1 |
||||||
|
housekeeping CALLDICT |
||||||
|
send_ok CALLDICT |
||||||
|
}> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s9 PUSH // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data qt |
||||||
|
1 EQINT // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data _281 |
||||||
|
IFJMP:<{ // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
s9 POP |
||||||
|
s9 POP // price key lhk n data ctl domdata gc prices nhk cat_table stdper |
||||||
|
SWAP // price key lhk n data ctl domdata gc prices nhk stdper cat_table |
||||||
|
ISNULL // price key lhk n data ctl domdata gc prices nhk stdper _282 |
||||||
|
IFNOTJMP:<{ // price key lhk n data ctl domdata gc prices nhk stdper |
||||||
|
11 BLKDROP // |
||||||
|
3781980773 PUSHINT // _283=3781980773 |
||||||
|
send_error CALLDICT |
||||||
|
}> // price key lhk n data ctl domdata gc prices nhk stdper |
||||||
|
s1 s7 XCHG // price key lhk nhk data ctl domdata gc prices n stdper |
||||||
|
ADD // price key lhk nhk data ctl domdata gc prices expires_at |
||||||
|
DUP |
||||||
|
NEWC // price key lhk nhk data ctl domdata gc prices expires_at expires_at _288 |
||||||
|
32 STU // price key lhk nhk data ctl domdata gc prices expires_at _290 |
||||||
|
s1 s6 XCHG // price key lhk nhk expires_at ctl domdata gc prices data _290 |
||||||
|
STREF // price key lhk nhk expires_at ctl domdata gc prices _291 |
||||||
|
s0 s8 s3 XCPUXC |
||||||
|
224 PUSHINT // price key lhk nhk expires_at ctl prices gc _291 key domdata _294 |
||||||
|
DICTUSETB // price key lhk nhk expires_at ctl prices gc domdata |
||||||
|
s4 PUSH // price key lhk nhk expires_at ctl prices gc domdata expires_at |
||||||
|
224 LSHIFT# // price key lhk nhk expires_at ctl prices gc domdata _300 |
||||||
|
s0 s8 XCHG2 // price domdata lhk nhk expires_at ctl prices gc _300 key |
||||||
|
OR // price domdata lhk nhk expires_at ctl prices gc gckey |
||||||
|
NEWC // price domdata lhk nhk expires_at ctl prices gc gckey _303 |
||||||
|
s0 s2 XCHG |
||||||
|
8 PUSHPOW2 // price domdata lhk nhk expires_at ctl prices _303 gckey gc _304=256 |
||||||
|
DICTUSETB // price domdata lhk nhk expires_at ctl prices gc |
||||||
|
s4 s3 XCHG2 // price domdata lhk prices gc ctl nhk expires_at |
||||||
|
MIN // price domdata lhk prices gc ctl _306 |
||||||
|
s1 s5 XCHG |
||||||
|
s3 s0 s4 XCHG3 |
||||||
|
1 PUSHINT // price ctl domdata gc prices _306 lhk _307=1 |
||||||
|
housekeeping CALLDICT |
||||||
|
send_ok CALLDICT |
||||||
|
}> // price key lhk exp qt ctl domdata gc prices nhk cat_table stdper n data |
||||||
|
3 1 BLKDROP2 // price key lhk exp qt ctl domdata gc prices nhk data |
||||||
|
s0 s6 XCHG // price key lhk exp data ctl domdata gc prices nhk qt |
||||||
|
4 EQINT // price key lhk exp data ctl domdata gc prices nhk _311 |
||||||
|
IFJMP:<{ // price key lhk exp data ctl domdata gc prices nhk |
||||||
|
s0 s6 XCHG |
||||||
|
NEWC // price key lhk nhk data ctl domdata gc prices exp _313 |
||||||
|
32 STU // price key lhk nhk data ctl domdata gc prices _315 |
||||||
|
s1 s5 XCHG // price key lhk nhk prices ctl domdata gc data _315 |
||||||
|
STREF // price key lhk nhk prices ctl domdata gc _316 |
||||||
|
s7 s2 XCHG2 |
||||||
|
224 PUSHINT // price gc lhk nhk prices ctl _316 key domdata _319 |
||||||
|
DICTUSETB // price gc lhk nhk prices ctl domdata |
||||||
|
s5 s4 XCHG2 |
||||||
|
s1 s3 XCHG |
||||||
|
1 PUSHINT // price ctl domdata gc prices nhk lhk _321=1 |
||||||
|
housekeeping CALLDICT |
||||||
|
send_ok CALLDICT |
||||||
|
}> // price key lhk exp data ctl domdata gc prices nhk |
||||||
|
10 BLKDROP // |
||||||
|
}> |
||||||
|
recv_external PROC:<{ |
||||||
|
// in_msg |
||||||
|
DROP // |
||||||
|
load_data INLINECALLDICT // _12 _13 _14 _15 _16 _17 |
||||||
|
NIP // ctl dd gc prices lhk |
||||||
|
IFNOTJMP:<{ // ctl dd gc prices |
||||||
|
ACCEPT |
||||||
|
32 PUSHPOW2DEC // ctl dd gc prices _9=4294967295 |
||||||
|
NOW // ctl dd gc prices _9=4294967295 _10 |
||||||
|
store_data CALLDICT |
||||||
|
}> // ctl dd gc prices |
||||||
|
4 BLKDROP // |
||||||
|
}> |
||||||
|
dnsdictlookup PROCREF:<{ |
||||||
|
// domain nowtime |
||||||
|
OVER // domain nowtime domain |
||||||
|
SBITREFS // domain nowtime bits refs |
||||||
|
OVER |
||||||
|
7 PUSHINT // domain nowtime bits refs bits _6=7 |
||||||
|
AND // domain nowtime bits refs _7 |
||||||
|
OR // domain nowtime bits _8 |
||||||
|
30 THROWIF |
||||||
|
DUP // domain nowtime bits bits |
||||||
|
IFNOT:<{ // domain nowtime bits |
||||||
|
30 THROW |
||||||
|
}> // domain nowtime bits |
||||||
|
s2 PUSH |
||||||
|
8 PUSHINT // domain nowtime bits domain _13=8 |
||||||
|
SDCUTLAST // domain nowtime bits _14 |
||||||
|
8 PLDU // domain nowtime bits domain_last_byte |
||||||
|
IF:<{ // domain nowtime bits |
||||||
|
0 PUSHINT // domain nowtime bits _17=0 |
||||||
|
NEWC // domain nowtime bits _17=0 _18 |
||||||
|
s0 s4 XCHG2 // _17=0 nowtime bits _18 domain |
||||||
|
STSLICER // _17=0 nowtime bits _19 |
||||||
|
s1 s3 XCHG // bits nowtime _17=0 _19 |
||||||
|
8 STU // bits nowtime _21 |
||||||
|
ENDC // bits nowtime _22 |
||||||
|
CTOS // bits nowtime domain |
||||||
|
s0 s2 XCHG // domain nowtime bits |
||||||
|
8 ADDCONST // domain nowtime bits |
||||||
|
}> // domain nowtime bits |
||||||
|
DUP // domain nowtime bits bits |
||||||
|
8 EQINT // domain nowtime bits _27 |
||||||
|
IFJMP:<{ // domain nowtime bits |
||||||
|
3 BLKDROP // |
||||||
|
0 PUSHINT // _28=0 |
||||||
|
PUSHNULL // _28=0 _29 |
||||||
|
8 PUSHINT // _28=0 _29 _30=8 |
||||||
|
PUSHNULL // _28=0 _29 _30=8 _31 |
||||||
|
}> // domain nowtime bits |
||||||
|
s2 PUSH // domain nowtime bits domain |
||||||
|
8 PLDU // domain nowtime bits domain_first_byte |
||||||
|
0 EQINT // domain nowtime bits _36 |
||||||
|
IF:<{ // domain nowtime bits |
||||||
|
s0 s2 XCHG // bits nowtime domain |
||||||
|
8 LDU // bits nowtime _95 _94 |
||||||
|
NIP // bits nowtime domain |
||||||
|
s0 s2 XCHG // domain nowtime bits |
||||||
|
-8 ADDCONST // domain nowtime bits |
||||||
|
}> // domain nowtime bits |
||||||
|
c4 PUSH // domain nowtime bits _43 |
||||||
|
CTOS // domain nowtime bits ds |
||||||
|
LDREF // domain nowtime bits _97 _96 |
||||||
|
NIP // domain nowtime bits ds |
||||||
|
LDDICT // domain nowtime bits _99 _98 |
||||||
|
DROP // domain nowtime bits root |
||||||
|
PUSHNULL // domain nowtime bits root val |
||||||
|
-1 PUSHINT // domain nowtime bits root val tail_bits=-1 |
||||||
|
s5 PUSH // domain nowtime bits root val tail_bits=-1 tail |
||||||
|
s0 s4 XCHG // domain nowtime tail root val tail_bits=-1 bits |
||||||
|
3 RSHIFT# // domain nowtime tail root val tail_bits=-1 _57 |
||||||
|
REPEAT:<{ // domain nowtime tail root val tail_bits |
||||||
|
s0 s3 XCHG // domain nowtime tail_bits root val tail |
||||||
|
8 LDU // domain nowtime tail_bits root val _58 tail |
||||||
|
SWAP // domain nowtime tail_bits root val tail _58 |
||||||
|
0 EQINT // domain nowtime tail_bits root val tail _62 |
||||||
|
IF:<{ // domain nowtime tail_bits root val tail |
||||||
|
DUP // domain nowtime tail_bits root val tail tail |
||||||
|
SBITS // domain nowtime tail_bits root val tail _64 |
||||||
|
s6 s(-1) PUXC // domain nowtime tail_bits root val tail domain _64 |
||||||
|
SDSKIPLAST // domain nowtime tail_bits root val tail _65 |
||||||
|
SHA256U // domain nowtime tail_bits root val tail _66 |
||||||
|
32 RSHIFT# // domain nowtime tail_bits root val tail key |
||||||
|
s3 PUSH |
||||||
|
224 PUSHINT // domain nowtime tail_bits root val tail key root _73 |
||||||
|
DICTUGET |
||||||
|
NULLSWAPIFNOT // domain nowtime tail_bits root val tail v found? |
||||||
|
IF:<{ // domain nowtime tail_bits root val tail v |
||||||
|
DUP // domain nowtime tail_bits root val tail v v |
||||||
|
32 PLDU // domain nowtime tail_bits root val tail v _76 |
||||||
|
s6 PUSH // domain nowtime tail_bits root val tail v _76 nowtime |
||||||
|
GEQ // domain nowtime tail_bits root val tail v _77 |
||||||
|
IF:<{ // domain nowtime tail_bits root val tail v |
||||||
|
s2 POP |
||||||
|
s3 POP // domain nowtime tail root val |
||||||
|
s2 PUSH // domain nowtime tail root val tail |
||||||
|
SBITS // domain nowtime tail root val tail_bits |
||||||
|
s0 s3 XCHG // domain nowtime tail_bits root val tail |
||||||
|
}>ELSE<{ |
||||||
|
DROP // domain nowtime tail_bits root val tail |
||||||
|
}> |
||||||
|
}>ELSE<{ |
||||||
|
DROP // domain nowtime tail_bits root val tail |
||||||
|
}> |
||||||
|
}> // domain nowtime tail_bits root val tail |
||||||
|
s0 s3 XCHG // domain nowtime tail root val tail_bits |
||||||
|
}> |
||||||
|
2 2 BLKDROP2 |
||||||
|
s2 POP // domain tail_bits val |
||||||
|
DUP // domain tail_bits val val |
||||||
|
ISNULL // domain tail_bits val _79 |
||||||
|
IFJMP:<{ // domain tail_bits val |
||||||
|
3 BLKDROP // |
||||||
|
0 PUSHINT // _80=0 |
||||||
|
PUSHNULL // _80=0 _81 |
||||||
|
OVER // _80=0 _81 _82=0 |
||||||
|
PUSHNULL // _80=0 _81 _82=0 _83 |
||||||
|
}> // domain tail_bits val |
||||||
|
32 LDU // domain tail_bits _84 val |
||||||
|
LDREF // domain tail_bits _84 _107 _106 |
||||||
|
DROP // domain tail_bits _84 _87 |
||||||
|
s2 PUSH // domain tail_bits _84 _87 tail_bits |
||||||
|
0 EQINT // domain tail_bits _84 _87 _90 |
||||||
|
s4 s3 XCHG2 // _87 _90 _84 domain tail_bits |
||||||
|
SDSKIPLAST // _87 _90 _84 _91 |
||||||
|
s3 s3 s0 XCHG3 // _84 _87 _90 _91 |
||||||
|
}> |
||||||
|
dnsresolve PROC:<{ |
||||||
|
// domain category |
||||||
|
SWAP |
||||||
|
NOW // category domain _6 |
||||||
|
dnsdictlookup INLINECALLDICT // category exp cat_table exact? pfx |
||||||
|
s0 s3 XCHG // category pfx cat_table exact? exp |
||||||
|
IFNOTJMP:<{ // category pfx cat_table exact? |
||||||
|
3 1 BLKDROP2 // exact? |
||||||
|
PUSHNULL // exact? _8 |
||||||
|
}> // category pfx cat_table exact? |
||||||
|
IFNOT:<{ // category pfx cat_table |
||||||
|
11732114750494247458678882651681748623800183221773167493832867265755123357695 PUSHINT |
||||||
|
s3 POP // category=11732114750494247458678882651681748623800183221773167493832867265755123357695 pfx cat_table |
||||||
|
}> // category pfx cat_table |
||||||
|
SWAP // category cat_table pfx |
||||||
|
SBITS // category cat_table pfx_bits |
||||||
|
s2 PUSH // category cat_table pfx_bits category |
||||||
|
IFJMP:<{ // category cat_table pfx_bits |
||||||
|
-ROT |
||||||
|
8 PUSHPOW2 // pfx_bits category cat_table _13=256 |
||||||
|
DICTUGETOPTREF // pfx_bits cat_found |
||||||
|
}> // category cat_table pfx_bits |
||||||
|
s2 POP // pfx_bits cat_table |
||||||
|
}> |
||||||
|
getexpirationx PROCINLINE:<{ |
||||||
|
// domain nowtime |
||||||
|
dnsdictlookup INLINECALLDICT // _7 _8 _9 _10 |
||||||
|
3 BLKDROP // exp |
||||||
|
}> |
||||||
|
getexpiration PROC:<{ |
||||||
|
// domain |
||||||
|
NOW // domain _1 |
||||||
|
getexpirationx INLINECALLDICT // _2 |
||||||
|
}> |
||||||
|
getstdperiod PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
3 BLKDROP // stdper |
||||||
|
}> |
||||||
|
getppr PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
s2 s3 XCHG |
||||||
|
3 BLKDROP // ppr |
||||||
|
}> |
||||||
|
getppc PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
s1 s3 XCHG |
||||||
|
3 BLKDROP // ppc |
||||||
|
}> |
||||||
|
getppb PROC:<{ |
||||||
|
// |
||||||
|
load_prices INLINECALLDICT // _5 _6 _7 _8 |
||||||
|
3 1 BLKDROP2 // ppb |
||||||
|
}> |
||||||
|
calcprice PROC:<{ |
||||||
|
// domain val |
||||||
|
load_prices INLINECALLDICT // domain val _8 _9 _10 _11 |
||||||
|
2 2 BLKDROP2 // domain val ppc ppb |
||||||
|
calcprice_internal INLINECALLDICT // _7 |
||||||
|
}> |
||||||
|
calcregprice PROC:<{ |
||||||
|
// domain val |
||||||
|
load_prices INLINECALLDICT // domain val _9 _10 _11 _12 |
||||||
|
s3 POP // domain val ppb ppr ppc |
||||||
|
s3 s4 XCHG |
||||||
|
s4 s0 s4 XCHG3 // ppr domain val ppc ppb |
||||||
|
calcprice_internal INLINECALLDICT // ppr _7 |
||||||
|
ADD // _8 |
||||||
|
}> |
||||||
|
}END>c |
@ -0,0 +1,208 @@ |
|||||||
|
"Asm.fif" include |
||||||
|
"Asm.fif" include |
||||||
|
// automatically generated from `contracts/dns-utils.fc` incl:`contracts/stdlib.fc` |
||||||
|
PROGRAM{ |
||||||
|
DECLPROC zero_address |
||||||
|
DECLPROC get_top_domain_bits |
||||||
|
DECLPROC read_domain_from_comment |
||||||
|
DECLPROC check_domain_string |
||||||
|
DECLPROC get_min_price_config |
||||||
|
DECLPROC get_min_price |
||||||
|
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_domain_from_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 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
}> |
||||||
|
}END>c |
||||||
|
|
||||||
|
boc>B "build/dns-utils.cell" B>file |
@ -0,0 +1,205 @@ |
|||||||
|
"Asm.fif" include |
||||||
|
// automatically generated from `contracts/dns-utils.fc` incl:`contracts/stdlib.fc` |
||||||
|
PROGRAM{ |
||||||
|
DECLPROC zero_address |
||||||
|
DECLPROC get_top_domain_bits |
||||||
|
DECLPROC read_domain_from_comment |
||||||
|
DECLPROC check_domain_string |
||||||
|
DECLPROC get_min_price_config |
||||||
|
DECLPROC get_min_price |
||||||
|
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_domain_from_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 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
}> |
||||||
|
}END>c |
@ -0,0 +1 @@ |
|||||||
|
{"hex":"b5ee9c72c102370100062800000d00120017001c00210093009f00a400b100bd00c200c700cc00de00e600f000f501020108010d0112015b016001700175017a018e01a801ad01bd01d801dd01e201e701ec02220230023502480253029f02a402ce02d302d802f402fd037c03fe048104f2050b058605d006280114ff00f4a413f4bcf2c80b0102016213020201200a030201200704020120060500dfb461843ae92f152118001e5c08de01ebe11a1a60e038001e5c339e8086045ae140f800047ae938010a421611c2460644180012660f003c003060fe81e60f003c0d842412a03a60e6203bc43e006a245ae3061f2030401752791961e030402cf47da87b19e2d920322f122e1c425400300013b64a5e01e2050be11a1002014809080015b016fc03d7c21ffc0084a00013b3f3fc03d7c0cd100d20020120100b0202740f0c0201200e0d001fa74661e01e20acbe0c65e020e003e023000ba6b3e01ed9030010a874f00f10385f0802012012110015b6739da89a1a863ae17ff00007b56ba6300202cb1f140201201615008ddb836b692e4660be5fffc14678b2802678b0afa00667a0009659fe4f80bb810f808c10821bee20464658fe4b8bbc00c646582a802678b387d0109e5b589e665806664c0207d8040201201817001bf381064658089fa007a00658064c0201201c190201201b1a00233c04a0804ce73b50f600723332fff27b5520002f01b2330572ffd400f3c58073c5853304f304bd0032cff2600201201e1d001b3e401d3232c084b281f2fff27420003108323304b2fffe0a33c5b25c083232c044fd003d0032c03260020120292002012028210201202522020120242300673b5134350c343534fffe900835d270802384fe90351fc0753d0134cfcc04120411d788c40d380c1b5c1b5b5b48c4160415c411a00017321400f3c5807e80b2cff26002012027260021081ba50c1b5c0838343e903e8034cfcc2000113e910c1c2ebcb8536000936483001258c2040fa201938083001658c20407d200cb8083001a58c204064200a38083001e58c20404b2007b8083002258c204032200538083002650c20191eb83002a4e00c9d781e9c60201202b2a004fd64471010eba4896b8c2ce78b10eba51060001059cd80e000f97065016a1868014898f17318e4e840201202f2c0201202e2d00331c27c074c1c07000082ce500a98200b784b98c4830003cb43260000d1c3232c072742002f5420c70094840ff2f0def8276f1021c70091709401d31f59e203d0d3030171b0925f05e0fa40fa4031fa003171d721fa0031fa0030f00f26b3e302534ac70517b08e3410bd5f0dfa40307020f8256d8040708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00e020f00d8363001fef82301bc0ed33f246eb301111001b08e6a333453bea182103b9aca005210a15250bc993482103b9aca0014a1923003e220c2008e378210370fec516d72275134544643708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb001ba10a9130e25477645476546d520df0130592385be23102fe8210437dc40852d0ba925f0ee0821016c7d43552d0ba8e4410685f083233018308d718d3fff82801d4308201339ced43d8c827cf165003cf165230cbff5210ccc9f900fe005042f910f2e19d5340be313403f2e19e22f9005023f018e03d82101a039a5152c0ba9a175f076c42c705f2e191e082105fcc3d1452c0bae30236333200de363782101a0b9d515290ba8e1331375132c705f2e19a04d430415614f823f013e050795f0582102fcb26a214ba8e397082108b77173505c8cbff58cf161344408040708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00e05f04840ff2f0012c3b5370c705f2e191108b105a1049487615103402db3c3401f03502fa4021f00cfa40d20031fa0082103b9aca001ea121945314a0a1de22d70b01c300209205a19135e220c2fff2e192218e3e821005138d91c8500acf16500ecf1671244a145448b0708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00105a94102d385be2013500908e3529f00c8210d53276db103a450a6d71708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb0093393330e21056104510341023f823f01300ac5f0432333334355202c705f2e19502fa40d4306d70c8cb07f400c9f823821062e4f310a18208278d00a90420c20c9330800cde8208093a808208092c7058a8800ca904a1f82301a0f0024488f00e5e321034f823f0131160775b"} |
@ -0,0 +1 @@ |
|||||||
|
{"hex":"b5ee9c72c1022b010004b600000d00120017001c006d0072008a00a100a600c100c600da00e000e500ea010401090128012d013d01820187018c01a501aa0200024c02510256025b02d902df031e03600365036a039403b003b503be043b048804b60114ff00f4a413f4bcf2c80b010201620d0202012008030201200504009dba30c3020d74978a908c000f2e04620d70a07c00021d749c0085210b0935b786de0209501d3073101de21f0025122d71830f9018200ba93c8cb0f01820167a3ed43d8cf16c90191789170e212a001802012007060129b5347da89a1a9a9a9a7fff481a860206abe0bb67902a0029b60b7da89a1a9a9a9a7fff481a860be0affe0022500201200a090031ba7a3ed44d0d4d4d4d3fffa40d43010455f05f00f7001f01180201200c0b0023b4c7b91f0519e2c039e2c039e2d93a1f20300007b56ba6300202cb150e020148100f002fd38647c14678b2801e78b2801e78b6580e4e87c80acfc88402012012110039559f00f7021f011778018c8cb0558cf1670fa02cb6bccccc98040fb0080201201413001b3e401d3232c084b281f2fff274200085343500740075007435007400750c341c7232c1c933c58973c59633c5b272140133c58933c58073c5b24075007432140173c5940133c5b240f50c00b2333304b33332600201201b160201201817002df00e465fffc14678b64b81064658089fa007a00658064c0201481a1900a7200648f000e4cc20193788f00124cc200cb788f00164cc20067788f001a4cc20053788f001e4cc2003f788f002248c1eb780f082249d4cf79480ea1e9400e869c644a81eaa4120840ee6b2802a006a200caa41200093083001258c2040fa201938083001658c20407d200cb8083001a58c204064200a38083001e58c20404b2007b8083002258c204032200538083002650c20191eb83002a4e00c9d781e9c60020120221c020120211d020120201e01f50835d25c32086480ace39b88b000082ce3994134c1dc08b09008f056ec250c0069afe38d48b09808f05eec250c0069ae638988b08bc8f04eac250c0069812385c8b00b650c0c600fa740b017e4cc600fe53cb0410078b8b8b8b88129be083080251410b2c1669e14d02a4228514c33c07880a9819000c13780ba201f00086c31c9d000791c0875d272238b14c86e882ce3890c00f4c1c8700ec12982092ce5940972c1d411244cb888ecd4c8efac24fcb040f7941100f7b9b27400a844b5c60c20007f57021d7498e355cba20b38e2e3002d30721c02d23c200b024a6f85240b9b022c22f23c13ab0b122c26003c17b13b012b1b320b39402a60802de13dee66c12ba802012026230201202524004f3223880875d244b5c61673c58875d2883000082ce6c070007cb83280b50c3400a44c78b98c72742000331c27c074c1c07000082ce500a98200b784b98c4830003cb432600201202827000d1c3232c072742002f10831c0252103fcbc37807434c0c05c6c2497c0f80074c7fb513435353534fffe90350c0d49b00023b00c0d40fc00fc01948576cf05efbcb833097e40417e900c0930c02700fc01d518dcc1bc053cb833648cccf894903c0432140173c5b2721633c5b304f33244bc04f81b144860840dc3fb146ea497c138202a29009682102a0c8a2012ba8e3a01fa403021c705f2e19382102a0c8a2012706d71708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00e05f03840ff2f0005821d74920c218f2e0c8208103f0bbf2e0c92078a908c000f2e0ca02f005f2e0cbd0d307d3033002ab0202f0091e3c893b"} |
@ -0,0 +1,845 @@ |
|||||||
|
"Asm.fif" include |
||||||
|
// automatically generated from `contracts/nft-collection.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 save_data |
||||||
|
DECLPROC calcprice |
||||||
|
DECLPROC calculate_nft_item_state_init |
||||||
|
DECLPROC get_attachment |
||||||
|
DECLPROC calculate_nft_item_address |
||||||
|
DECLPROC send_msg |
||||||
|
DECLPROC deploy_nft_item |
||||||
|
DECLPROC verify_signature |
||||||
|
DECLPROC recv_internal |
||||||
|
102491 DECLMETHOD get_collection_data |
||||||
|
92067 DECLMETHOD get_nft_address_by_index |
||||||
|
68445 DECLMETHOD get_nft_content |
||||||
|
108963 DECLMETHOD get_price |
||||||
|
75325 DECLMETHOD signature_data |
||||||
|
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 PROCINLINE:<{ |
||||||
|
// |
||||||
|
c4 PUSH // _1 |
||||||
|
CTOS // ds |
||||||
|
LDREF // _3 ds |
||||||
|
LDREF // _3 _5 ds |
||||||
|
LDREF // _3 _5 _7 ds |
||||||
|
256 LDU // _3 _5 _7 _9 ds |
||||||
|
LDMSGADDR // _3 _5 _7 _9 _12 ds |
||||||
|
LDREF // _3 _5 _7 _9 _12 _27 _26 |
||||||
|
DROP // _3 _5 _7 _9 _12 _14 |
||||||
|
}> |
||||||
|
save_data PROCINLINE:<{ |
||||||
|
// content nft_item_code pricing owner_key owner_addr data_scheme |
||||||
|
s0 s5 XCHG |
||||||
|
NEWC // data_scheme nft_item_code pricing owner_key owner_addr content _6 |
||||||
|
STREF // data_scheme nft_item_code pricing owner_key owner_addr _7 |
||||||
|
s1 s4 XCHG // data_scheme owner_addr pricing owner_key nft_item_code _7 |
||||||
|
STREF // data_scheme owner_addr pricing owner_key _8 |
||||||
|
s1 s2 XCHG // data_scheme owner_addr owner_key pricing _8 |
||||||
|
STREF // data_scheme owner_addr owner_key _9 |
||||||
|
256 STU // data_scheme owner_addr _11 |
||||||
|
SWAP // data_scheme _11 owner_addr |
||||||
|
STSLICER // data_scheme _12 |
||||||
|
STREF // _13 |
||||||
|
ENDC // _14 |
||||||
|
c4 POP |
||||||
|
}> |
||||||
|
calcprice PROCREF:<{ |
||||||
|
// domain pricing |
||||||
|
OVER // domain pricing domain |
||||||
|
SBITS // domain pricing len |
||||||
|
DUP // domain pricing len len |
||||||
|
24 GTINT // domain pricing len _8 |
||||||
|
200 THROWIFNOT |
||||||
|
DUP |
||||||
|
1008 PUSHINT // domain pricing len len _13 |
||||||
|
LEQ // domain pricing len _14 |
||||||
|
201 THROWIFNOT |
||||||
|
DUP |
||||||
|
8 PUSHINT // domain pricing len len _17=8 |
||||||
|
MOD // domain pricing len _18 |
||||||
|
0 EQINT // domain pricing len _20 |
||||||
|
202 THROWIFNOT |
||||||
|
s0 s2 XCHG // len pricing domain |
||||||
|
check_domain_string CALLDICT // len pricing _23 |
||||||
|
203 THROWIFNOT |
||||||
|
CTOS // len pr |
||||||
|
8 LDU // len multiplier pr |
||||||
|
4 LDU // len multiplier _41 _40 |
||||||
|
DROP // len multiplier steepness |
||||||
|
s0 s2 XCHG // steepness multiplier len |
||||||
|
3 RSHIFT# // steepness multiplier _36 |
||||||
|
s0 s2 XCHG // _36 multiplier steepness |
||||||
|
price_function CALLDICT // _37 |
||||||
|
}> |
||||||
|
calculate_nft_item_state_init PROC:<{ |
||||||
|
// item_index nft_item_code |
||||||
|
SWAP |
||||||
|
NEWC // nft_item_code item_index _3 |
||||||
|
256 STU // nft_item_code _5 |
||||||
|
MYADDR // nft_item_code _5 _6 |
||||||
|
STSLICER // nft_item_code _7 |
||||||
|
ENDC // nft_item_code data |
||||||
|
0 PUSHINT // nft_item_code data _9=0 |
||||||
|
DUP // nft_item_code data _9=0 _10=0 |
||||||
|
NEWC // nft_item_code data _9=0 _10=0 _11 |
||||||
|
2 STU // nft_item_code data _9=0 _13 |
||||||
|
s1 s3 XCHG // _9=0 data nft_item_code _13 |
||||||
|
STDICT // _9=0 data _14 |
||||||
|
STDICT // _9=0 _15 |
||||||
|
1 STU // _17 |
||||||
|
ENDC // _18 |
||||||
|
}> |
||||||
|
get_attachment PROC:<{ |
||||||
|
// domain data_scheme |
||||||
|
CTOS // domain cs |
||||||
|
LDREF // domain _5 cs |
||||||
|
SWAP // domain cs _5 |
||||||
|
CTOS // domain cs prefix |
||||||
|
SWAP // domain prefix cs |
||||||
|
LDREF // domain prefix _9 cs |
||||||
|
SWAP // domain prefix cs _9 |
||||||
|
CTOS // domain prefix cs postfixes |
||||||
|
LDREF // domain prefix cs _13 postfixes |
||||||
|
SWAP // domain prefix cs postfixes _13 |
||||||
|
CTOS // domain prefix cs postfixes postfix |
||||||
|
SWAP // domain prefix cs postfix postfixes |
||||||
|
LDREF // domain prefix cs postfix _61 _60 |
||||||
|
DROP // domain prefix cs postfix _17 |
||||||
|
CTOS // domain prefix cs postfix image_postfix |
||||||
|
1 PUSHINT // domain prefix cs postfix image_postfix _21=1 |
||||||
|
NEWC // domain prefix cs postfix image_postfix _21=1 _22 |
||||||
|
8 STU // domain prefix cs postfix image_postfix _24 |
||||||
|
s4 PUSH // domain prefix cs postfix image_postfix _24 prefix |
||||||
|
STSLICER // domain prefix cs postfix image_postfix _25 |
||||||
|
s5 PUSH // domain prefix cs postfix image_postfix _25 domain |
||||||
|
STSLICER // domain prefix cs postfix image_postfix _26 |
||||||
|
ROT // domain prefix cs image_postfix _26 postfix |
||||||
|
STSLICER // domain prefix cs image_postfix _27 |
||||||
|
ENDC // domain prefix cs image_postfix uri_cell |
||||||
|
NEWC // domain prefix cs image_postfix uri_cell _30 |
||||||
|
s0 s4 XCHG2 // domain uri_cell cs image_postfix _30 prefix |
||||||
|
STSLICER // domain uri_cell cs image_postfix _31 |
||||||
|
s4 PUSH // domain uri_cell cs image_postfix _31 domain |
||||||
|
STSLICER // domain uri_cell cs image_postfix _32 |
||||||
|
SWAP // domain uri_cell cs _32 image_postfix |
||||||
|
STSLICER // domain uri_cell cs _33 |
||||||
|
ENDC // domain uri_cell cs image_uri_cell |
||||||
|
SWAP // domain uri_cell image_uri_cell cs |
||||||
|
LDREF // domain uri_cell image_uri_cell _36 cs |
||||||
|
SWAP // domain uri_cell image_uri_cell cs _36 |
||||||
|
CTOS // domain uri_cell image_uri_cell cs zone |
||||||
|
NEWC // domain uri_cell image_uri_cell cs zone _40 |
||||||
|
s0 s5 XCHG2 // zone uri_cell image_uri_cell cs _40 domain |
||||||
|
STSLICER // zone uri_cell image_uri_cell cs _41 |
||||||
|
s0 s4 XCHG2 // cs uri_cell image_uri_cell _41 zone |
||||||
|
STSLICER // cs uri_cell image_uri_cell _42 |
||||||
|
ENDC // cs uri_cell image_uri_cell name_cell |
||||||
|
s0 s3 XCHG // name_cell uri_cell image_uri_cell cs |
||||||
|
LDREF // name_cell uri_cell image_uri_cell _65 _64 |
||||||
|
DROP // name_cell uri_cell image_uri_cell desc_cell |
||||||
|
s0 s2 XCHG |
||||||
|
NEWC // name_cell desc_cell image_uri_cell uri_cell _48 |
||||||
|
STREF // name_cell desc_cell image_uri_cell _49 |
||||||
|
STREF // name_cell desc_cell _50 |
||||||
|
s1 s2 XCHG // desc_cell name_cell _50 |
||||||
|
STREF // desc_cell _51 |
||||||
|
STREF // _52 |
||||||
|
ENDC // full_cell |
||||||
|
}> |
||||||
|
calculate_nft_item_address PROC:<{ |
||||||
|
// wc state_init |
||||||
|
HASHCU // wc _2 |
||||||
|
4 PUSHINT // wc _2 _3=4 |
||||||
|
NEWC // wc _2 _3=4 _4 |
||||||
|
3 STU // wc _2 _6 |
||||||
|
s1 s2 XCHG // _2 wc _6 |
||||||
|
8 STI // _2 _8 |
||||||
|
256 STU // _10 |
||||||
|
ENDC // _11 |
||||||
|
CTOS // _12 |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
deploy_nft_item PROC:<{ |
||||||
|
// item_index nft_item_code nft_payload |
||||||
|
-ROT // nft_payload item_index nft_item_code |
||||||
|
calculate_nft_item_state_init CALLDICT // nft_payload state_init |
||||||
|
0 PUSHINT // nft_payload state_init _6 |
||||||
|
OVER // nft_payload state_init _6 state_init |
||||||
|
calculate_nft_item_address CALLDICT // nft_payload state_init nft_address |
||||||
|
7 PUSHINT // nft_payload state_init nft_address _13 |
||||||
|
24 PUSHINT // nft_payload state_init nft_address _13 _14=24 |
||||||
|
NEWC // nft_payload state_init nft_address _13 _14=24 _15 |
||||||
|
6 STU // nft_payload state_init nft_address _13 _17 |
||||||
|
ROT // nft_payload state_init _13 _17 nft_address |
||||||
|
STSLICER // nft_payload state_init _13 _18 |
||||||
|
0 PUSHINT // nft_payload state_init _13 _18 _19=0 |
||||||
|
STVARUINT16 // nft_payload state_init _13 _20 |
||||||
|
108 STU // nft_payload state_init _36 |
||||||
|
STREF // nft_payload _37 |
||||||
|
STREF // msg |
||||||
|
ENDC // _39 |
||||||
|
64 PUSHINT // _39 _40=64 |
||||||
|
SENDRAWMSG |
||||||
|
}> |
||||||
|
verify_signature PROC:<{ |
||||||
|
// signature sender_address domain owner_key |
||||||
|
0 PUSHINT // signature sender_address domain owner_key _5=0 |
||||||
|
NEWC // signature sender_address domain owner_key _5=0 _6 |
||||||
|
MYADDR // signature sender_address domain owner_key _5=0 _6 _7 |
||||||
|
STSLICER // signature sender_address domain owner_key _5=0 _8 |
||||||
|
s0 s3 XCHG2 // signature sender_address _5=0 owner_key _8 domain |
||||||
|
STSLICER // signature sender_address _5=0 owner_key _9 |
||||||
|
s0 s3 XCHG2 // signature owner_key _5=0 _9 sender_address |
||||||
|
STSLICER // signature owner_key _5=0 _10 |
||||||
|
2 STU // signature owner_key _12 |
||||||
|
ENDC // signature owner_key option_data |
||||||
|
CTOS // signature owner_key _14 |
||||||
|
HASHSU // signature owner_key _15 |
||||||
|
-ROT // _15 signature owner_key |
||||||
|
CHKSIGNU // _16 |
||||||
|
}> |
||||||
|
recv_internal PROC:<{ |
||||||
|
// msg_value in_msg_full in_msg_body |
||||||
|
DUP // msg_value in_msg_full in_msg_body in_msg_body |
||||||
|
SEMPTY // msg_value in_msg_full in_msg_body _3 |
||||||
|
IF:<{ // msg_value in_msg_full in_msg_body |
||||||
|
16 PUSHPOW2DEC // msg_value in_msg_full in_msg_body _4=65535 |
||||||
|
THROWANY |
||||||
|
}> // msg_value in_msg_full in_msg_body |
||||||
|
SWAP // msg_value in_msg_body in_msg_full |
||||||
|
CTOS // msg_value in_msg_body cs |
||||||
|
4 LDU // msg_value in_msg_body flags cs |
||||||
|
SWAP |
||||||
|
1 PUSHINT // msg_value in_msg_body cs flags _12=1 |
||||||
|
AND // msg_value in_msg_body cs _13 |
||||||
|
IFJMP:<{ // msg_value in_msg_body cs |
||||||
|
3 BLKDROP // |
||||||
|
}> // msg_value in_msg_body cs |
||||||
|
SWAP // msg_value cs in_msg_body |
||||||
|
32 LDU // msg_value cs op in_msg_body |
||||||
|
load_data INLINECALLDICT // msg_value cs op in_msg_body _85 _86 _87 _88 _89 _90 |
||||||
|
s5 POP // msg_value cs op in_msg_body data_scheme nft_item_code pricing key addr |
||||||
|
s6 PUSH // msg_value cs op in_msg_body data_scheme nft_item_code pricing key addr op |
||||||
|
0 EQINT // msg_value cs op in_msg_body data_scheme nft_item_code pricing key addr _26 |
||||||
|
IFJMP:<{ // msg_value cs op in_msg_body data_scheme nft_item_code pricing key addr |
||||||
|
DROP |
||||||
|
s5 POP // msg_value cs key in_msg_body data_scheme nft_item_code pricing |
||||||
|
s0 s3 XCHG // msg_value cs key pricing data_scheme nft_item_code in_msg_body |
||||||
|
read_comment CALLDICT // msg_value cs key pricing data_scheme nft_item_code body |
||||||
|
split_by_semicolon CALLDICT // msg_value cs key pricing data_scheme nft_item_code domain signature_encoded |
||||||
|
s1 s4 PUXC // msg_value cs key signature_encoded data_scheme nft_item_code domain domain pricing |
||||||
|
calcprice INLINECALLDICT // msg_value cs key signature_encoded data_scheme nft_item_code domain price |
||||||
|
s1 s7 XCHG // domain cs key signature_encoded data_scheme nft_item_code msg_value price |
||||||
|
GEQ // domain cs key signature_encoded data_scheme nft_item_code _39 |
||||||
|
204 THROWIFNOT |
||||||
|
s5 PUSH // domain cs key signature_encoded data_scheme nft_item_code domain |
||||||
|
HASHSU // domain cs key signature_encoded data_scheme nft_item_code item_index |
||||||
|
s0 s5 XCHG // domain item_index key signature_encoded data_scheme nft_item_code cs |
||||||
|
LDMSGADDR // domain item_index key signature_encoded data_scheme nft_item_code _94 _93 |
||||||
|
DROP // domain item_index key signature_encoded data_scheme nft_item_code sender_address |
||||||
|
s4 PUSH // domain item_index key signature_encoded data_scheme nft_item_code sender_address key |
||||||
|
0 NEQINT // domain item_index key signature_encoded data_scheme nft_item_code sender_address _47 |
||||||
|
IF:<{ // domain item_index key signature_encoded data_scheme nft_item_code sender_address |
||||||
|
s0 s3 XCHG // domain item_index key sender_address data_scheme nft_item_code signature_encoded |
||||||
|
decode_asciicode CALLDICT // domain item_index key sender_address data_scheme nft_item_code signature |
||||||
|
s3 s6 s1 PU2XC |
||||||
|
s0 s6 XCHG // domain item_index nft_item_code sender_address data_scheme signature sender_address domain key |
||||||
|
verify_signature CALLDICT // domain item_index nft_item_code sender_address data_scheme _51 |
||||||
|
205 THROWIFNOT |
||||||
|
}>ELSE<{ |
||||||
|
s3 POP |
||||||
|
s3 POP // domain item_index nft_item_code sender_address data_scheme |
||||||
|
}> |
||||||
|
s4 s(-1) PUXC // domain item_index nft_item_code sender_address domain data_scheme |
||||||
|
get_attachment CALLDICT // domain item_index nft_item_code sender_address _54 |
||||||
|
NEWC // domain item_index nft_item_code sender_address _54 _55 |
||||||
|
s0 s5 XCHG2 // _54 item_index nft_item_code sender_address _55 domain |
||||||
|
STSLICER // _54 item_index nft_item_code sender_address _56 |
||||||
|
ENDC // _54 item_index nft_item_code sender_address _57 |
||||||
|
NEWC |
||||||
|
ROT // _54 item_index nft_item_code _57 _58 sender_address |
||||||
|
STSLICER // _54 item_index nft_item_code _57 _59 |
||||||
|
STREF // _54 item_index nft_item_code _60 |
||||||
|
s1 s3 XCHG // nft_item_code item_index _54 _60 |
||||||
|
STREF // nft_item_code item_index _61 |
||||||
|
ENDC // nft_item_code item_index nft_content |
||||||
|
s1 s2 XCHG // item_index nft_item_code nft_content |
||||||
|
deploy_nft_item CALLDICT |
||||||
|
}> // msg_value cs op in_msg_body data_scheme nft_item_code pricing key addr |
||||||
|
5 1 BLKDROP2 // msg_value cs op addr |
||||||
|
OVER |
||||||
|
923790417 PUSHINT // msg_value cs op addr op _64=923790417 |
||||||
|
EQUAL // msg_value cs op addr _65 |
||||||
|
IFJMP:<{ // msg_value cs op addr |
||||||
|
4 BLKDROP // |
||||||
|
}> // msg_value cs op addr |
||||||
|
0x2a0c8a20 PUSHINT // msg_value cs op addr _66 |
||||||
|
s1 s2 XCHG // msg_value cs addr op _66 |
||||||
|
EQUAL // msg_value cs addr _67 |
||||||
|
IFJMP:<{ // msg_value cs addr |
||||||
|
SWAP // msg_value addr cs |
||||||
|
LDMSGADDR // msg_value addr _96 _95 |
||||||
|
DROP // msg_value addr sender_address |
||||||
|
OVER // msg_value addr sender_address addr |
||||||
|
SDEQ // msg_value addr _72 |
||||||
|
403 THROWIFNOT |
||||||
|
0x2a0c8a20 PUSHINT // msg_value addr _74 |
||||||
|
s1 s2 XCHG |
||||||
|
0 PUSHINT |
||||||
|
PUSHNULL |
||||||
|
1 PUSHINT // addr msg_value _74 _75=0 _76 _77=1 |
||||||
|
send_msg INLINECALLDICT |
||||||
|
}> // msg_value cs addr |
||||||
|
3 BLKDROP // |
||||||
|
16 PUSHPOW2DEC // _79=65535 |
||||||
|
THROWANY |
||||||
|
}> |
||||||
|
get_collection_data PROC:<{ |
||||||
|
// |
||||||
|
load_data INLINECALLDICT // _9 _10 _11 _12 _13 _14 |
||||||
|
5 BLKDROP // content |
||||||
|
-1 PUSHINT // content _7=-1 |
||||||
|
zero_address CALLDICT // content _7=-1 _8 |
||||||
|
s1 s2 XCHG // _7=-1 content _8 |
||||||
|
}> |
||||||
|
get_nft_address_by_index PROC:<{ |
||||||
|
// index |
||||||
|
load_data INLINECALLDICT // index _12 _13 _14 _15 _16 _17 |
||||||
|
s4 s5 XCHG |
||||||
|
5 BLKDROP // index nft_item_code |
||||||
|
calculate_nft_item_state_init CALLDICT // state_init |
||||||
|
0 PUSHINT // state_init _10 |
||||||
|
SWAP // _10 state_init |
||||||
|
calculate_nft_item_address CALLDICT // _11 |
||||||
|
}> |
||||||
|
get_nft_content PROC:<{ |
||||||
|
// index individual_nft_content |
||||||
|
NIP // individual_nft_content |
||||||
|
}> |
||||||
|
get_price PROC:<{ |
||||||
|
// domain |
||||||
|
load_data INLINECALLDICT // domain _9 _10 _11 _12 _13 _14 |
||||||
|
s3 s5 XCHG |
||||||
|
5 BLKDROP // domain pricing |
||||||
|
calcprice INLINECALLDICT // _8 |
||||||
|
}> |
||||||
|
signature_data PROC:<{ |
||||||
|
// sender_address domain |
||||||
|
NEWC // sender_address domain _3 |
||||||
|
MYADDR // sender_address domain _3 _4 |
||||||
|
STSLICER // sender_address domain _5 |
||||||
|
SWAP // sender_address _5 domain |
||||||
|
STSLICER // sender_address _6 |
||||||
|
SWAP // _6 sender_address |
||||||
|
STSLICER // _7 |
||||||
|
ENDC // option_data |
||||||
|
CTOS // _9 |
||||||
|
HASHSU // _10 |
||||||
|
}> |
||||||
|
dnsresolve PROC:<{ |
||||||
|
// subdomain category |
||||||
|
DROP // subdomain |
||||||
|
DUP // subdomain subdomain |
||||||
|
SBITS // subdomain _3 |
||||||
|
8 PUSHINT // subdomain _3 _4=8 |
||||||
|
MOD // subdomain _5 |
||||||
|
0 EQINT // subdomain _7 |
||||||
|
70 THROWIFNOT |
||||||
|
DUP // subdomain subdomain |
||||||
|
8 PLDI // subdomain _11 |
||||||
|
0 EQINT // subdomain starts_with_zero_byte |
||||||
|
OVER // subdomain starts_with_zero_byte subdomain |
||||||
|
SBITS // subdomain starts_with_zero_byte _14 |
||||||
|
8 EQINT // subdomain starts_with_zero_byte _16 |
||||||
|
s1 s(-1) PUXC // subdomain starts_with_zero_byte starts_with_zero_byte _16 |
||||||
|
AND // subdomain starts_with_zero_byte _17 |
||||||
|
IFJMP:<{ // subdomain starts_with_zero_byte |
||||||
|
2DROP // |
||||||
|
8 PUSHINT // _18=8 |
||||||
|
PUSHNULL // _18=8 _19 |
||||||
|
}> // subdomain starts_with_zero_byte |
||||||
|
DUP // subdomain starts_with_zero_byte starts_with_zero_byte |
||||||
|
IF:<{ // subdomain starts_with_zero_byte |
||||||
|
SWAP // starts_with_zero_byte subdomain |
||||||
|
8 LDU // starts_with_zero_byte _43 _42 |
||||||
|
NIP // starts_with_zero_byte subdomain |
||||||
|
SWAP // subdomain starts_with_zero_byte |
||||||
|
}> // subdomain starts_with_zero_byte |
||||||
|
OVER // subdomain starts_with_zero_byte subdomain |
||||||
|
get_top_domain_bits CALLDICT // subdomain starts_with_zero_byte top_subdomain_bits |
||||||
|
s2 s2 XCPU // top_subdomain_bits starts_with_zero_byte subdomain top_subdomain_bits |
||||||
|
LDSLICEX // top_subdomain_bits starts_with_zero_byte _45 _44 |
||||||
|
DROP // top_subdomain_bits starts_with_zero_byte top_subdomain |
||||||
|
HASHSU // top_subdomain_bits starts_with_zero_byte item_index |
||||||
|
47763 PUSHINT // top_subdomain_bits starts_with_zero_byte item_index _31=47763 |
||||||
|
NEWC // top_subdomain_bits starts_with_zero_byte item_index _31=47763 _32 |
||||||
|
16 STU // top_subdomain_bits starts_with_zero_byte item_index _34 |
||||||
|
SWAP // top_subdomain_bits starts_with_zero_byte _34 item_index |
||||||
|
get_nft_address_by_index CALLDICT // top_subdomain_bits starts_with_zero_byte _34 _35 |
||||||
|
STSLICER // top_subdomain_bits starts_with_zero_byte _36 |
||||||
|
ENDC // top_subdomain_bits starts_with_zero_byte result |
||||||
|
SWAP // top_subdomain_bits result starts_with_zero_byte |
||||||
|
IF:<{ // top_subdomain_bits result |
||||||
|
8 PUSHINT // top_subdomain_bits result _38=8 |
||||||
|
}>ELSE<{ // top_subdomain_bits result |
||||||
|
0 PUSHINT // top_subdomain_bits result _38=0 |
||||||
|
}> |
||||||
|
s1 s2 XCHG // result top_subdomain_bits _38 |
||||||
|
ADD // result _41 |
||||||
|
SWAP // _41 result |
||||||
|
}> |
||||||
|
}END>c |
@ -0,0 +1 @@ |
|||||||
|
{"hex":"b5ee9c72c1021f0100053000000d00120017001c002100850090009b00a100a900b300b800bd00c200d9010301080113015f0164018e020d027802bc0339037f03fa043f044c04b605300114ff00f4a413f4bcf2c80b010201620b0202012008030201200704020120060500c3b461843ae9240f152118001e5c08de018206ebe0fa1a60e038001e5c339e8086007ae140f8001e5c33b84111c466105e033e04883dcb11fb64ddc4964ad1ba06b879240dc23572f37cc5caaab143a2fffbc4180012660f003c003060fe81e60f00300011b64a5e0182ebe0fa100011b8fcff00c10235f03802037b200a09000ca959f00c6c710010a874f00c10475f070202cc130c020120100d0201480f0e002901b232ffd40173c59400f3c5b3333332cff27b5520004f3b513434fffe900835d27080279fc07e9035353534cfcc0415c415b80c1c1b5b5b5b490415c415a0020120121100115fa443070baf2e14d80093420c00496308103e88064e020c00596308101f48032e020c00696308101908028e020c007963081012c801ee020c00896308100c88014e020c009943080647ae0c00a93803275e07a7180201481514004f5c88e2021d74912d71859cf1621d74a20c00020b39b01c001f2e0ca02d430d0029131e2e631c9d0803f34f8276f1002d0d3030171b0925f04e0fa40fa4031fa003171d721fa0031fa0030f00c3026b3e3023b5337c70516b08e3410795f09fa40307020f8256d8040708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00e027c70091709507d31f5088e220c000e30208d33f81d1c1604ca82105fcc3d1452a0ba8e95395372c705f2e191109a104910384760441302db3ce082101a0b9d5152a0ba8e16365b3435355121c705f2e19a01d4d4305504f823f00de02982104eb1f0f9bae3023028821044beae41bae302355b33353582102fcb26a213ba1a19181700848e397082108b77173504c8cbff5003cf165e218040708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00e05f04840ff2f001f4388050f833d0f4043052408307f40e6fa1f2e19fd30721c00022c001b1f2e1a021c0008e9324109b10680710461035514a104c030ddb3c129630103a395f07e201c0018e32708210370fec51586d8100a0708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00915be21a0088313637375146c705f2e19b02d3ff20d74ac20006d0d30701c000f2e19cf404300698d43040158307f417983050048307f45b30e270c8cb07f400c94014503305f823f00d01f03401fa4021f00bfa40d20031fa0082101dcd65001da121945314a0a1de22d70b01c300209205a19135e220c2fff2e192218e3e821005138d91c8500bcf16500dcf1671244b145447c0708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00106994102c395be2011b00868e3528f00b8210d53276db103946066d71708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00941028355be25504f823f00d001630353535355504f823f00d01ce5f0432355203c705f2e19502fa40d4d430d0d4d4d4d4306d1382f06105d6cc76af400325e94d588ce511be5bfdbb73b437dc51eca43917d7a43e3d018307f41782f082a3537ff0dbce7eec35d69edc3a189ee6f17d82f353a553f9aa96cb0be3ce89018307f4171e00f082f0c9046f7a37ad0ea7cee73355984fa5428982f8b37c8f7bcec91f7ac71a7cd104018307f41770c8cb07f400c9241057045023f823f00d12a182101dcd6500a120c2008e2f8210d53276db706d71708010c8cb055007cf165005fa0215cb6a12cb1fcb3f226eb39458cf17019132e201c901fb00915be2185ba0cd"} |
@ -0,0 +1,944 @@ |
|||||||
|
"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 |
@ -0,0 +1 @@ |
|||||||
|
{"hex":"b5ee9c72c10107010086000d12161b207a860114ff00f4a413f4bcf2c80b0102012003020004f23002014805040005a0734b01aed0edfb6c2220c70094840ff2f0ded31f3001d0d3030171b0915be0fa4030db3c3031c7058e2e82105fcc3d145210ba82101c04412a5220bab19330db31e08210140aec515210ba9330db31e082104eb110a9ba309130e2060014ed44d0fa40fa40fa403007143f6e"} |
@ -0,0 +1,136 @@ |
|||||||
|
"Asm.fif" include |
||||||
|
// automatically generated from `contracts/wrapper.fc` incl:`contracts/imports/stdlib.fc` incl:`contracts/imports/constants.fc` incl:`contracts/imports/utils.fc` incl:`contracts/imports/op-codes.fc` |
||||||
|
PROGRAM{ |
||||||
|
DECLPROC send_grams |
||||||
|
DECLPROC load_data |
||||||
|
DECLPROC store_data |
||||||
|
DECLPROC recv_internal |
||||||
|
DECLPROC send_msg |
||||||
|
DECLPROC recv_external |
||||||
|
80293 DECLMETHOD get_owner |
||||||
|
send_grams PROC:<{ |
||||||
|
// address amount |
||||||
|
0 PUSHINT // address amount _3=0 |
||||||
|
24 PUSHINT // address amount _3=0 _4=24 |
||||||
|
NEWC // address amount _3=0 _4=24 _5 |
||||||
|
6 STU // address amount _3=0 _7 |
||||||
|
s0 s3 XCHG2 // _3=0 amount _7 address |
||||||
|
STSLICER // _3=0 amount _8 |
||||||
|
SWAP // _3=0 _8 amount |
||||||
|
STGRAMS // _3=0 _9 |
||||||
|
107 STU // _11 |
||||||
|
ENDC // msg |
||||||
|
3 PUSHINT // msg _13=3 |
||||||
|
SENDRAWMSG |
||||||
|
}> |
||||||
|
load_data PROCREF:<{ |
||||||
|
// |
||||||
|
c4 PUSH // _1 |
||||||
|
CTOS // ds |
||||||
|
LDMSGADDR // target ds |
||||||
|
LDMSGADDR // target owner ds |
||||||
|
LDMSGADDR // target owner _17 _16 |
||||||
|
DROP // target owner agorata |
||||||
|
}> |
||||||
|
store_data PROCREF:<{ |
||||||
|
// target owner agorata |
||||||
|
NEWC // target owner agorata _3 |
||||||
|
s0 s3 XCHG2 // agorata owner _3 target |
||||||
|
STSLICER // agorata owner _4 |
||||||
|
SWAP // agorata _4 owner |
||||||
|
STSLICER // agorata _5 |
||||||
|
SWAP // _5 agorata |
||||||
|
STSLICER // _6 |
||||||
|
ENDC // _7 |
||||||
|
c4 POP |
||||||
|
}> |
||||||
|
recv_internal PROC:<{ |
||||||
|
SAMEALTSAVE // my_balance msg_value in_msg_full in_msg_body |
||||||
|
2 2 BLKDROP2 // in_msg_full in_msg_body |
||||||
|
DUP // in_msg_full in_msg_body in_msg_body |
||||||
|
SEMPTY // in_msg_full in_msg_body _4 |
||||||
|
IF:<{ // in_msg_full in_msg_body |
||||||
|
16 PUSHPOW2DEC // in_msg_full in_msg_body _5=65535 |
||||||
|
THROWANY |
||||||
|
}> // in_msg_full in_msg_body |
||||||
|
32 LDU // in_msg_full _37 _36 |
||||||
|
DROP // in_msg_full op |
||||||
|
SWAP // op in_msg_full |
||||||
|
CTOS // op cs |
||||||
|
4 LDU // op flags cs |
||||||
|
SWAP |
||||||
|
1 PUSHINT // op cs flags _17=1 |
||||||
|
AND // op cs _18 |
||||||
|
IFJMP:<{ // op cs |
||||||
|
2DROP // |
||||||
|
}> // op cs |
||||||
|
LDMSGADDR // op _41 _40 |
||||||
|
DROP // op sender_address |
||||||
|
load_data INLINECALLDICT // op sender_address _42 _43 _44 |
||||||
|
DROP |
||||||
|
NIP // op sender_address owner |
||||||
|
SDEQ // op _26 |
||||||
|
IF:<{ // op |
||||||
|
0x5fcc3d14 PUSHINT // op _27 |
||||||
|
s1 s(-1) PUXC // op op _27 |
||||||
|
EQUAL // op _28 |
||||||
|
0x1c04412a PUSHINT // op _28 _29 |
||||||
|
s2 s(-1) PUXC // op _28 op _29 |
||||||
|
EQUAL // op _28 _30 |
||||||
|
OR // op _31 |
||||||
|
IFJMP:<{ // op |
||||||
|
DROP // |
||||||
|
RETALT |
||||||
|
}> // op |
||||||
|
0x140aec51 PUSHINT // op _32 |
||||||
|
s1 s(-1) PUXC // op op _32 |
||||||
|
EQUAL // op _33 |
||||||
|
IFJMP:<{ // op |
||||||
|
DROP // |
||||||
|
RETALT |
||||||
|
}> // op |
||||||
|
0x4eb110a9 PUSHINT // op _34 |
||||||
|
EQUAL // _35 |
||||||
|
DROP // |
||||||
|
}>ELSE<{ |
||||||
|
DROP // |
||||||
|
}> |
||||||
|
}> |
||||||
|
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 |
||||||
|
}> |
||||||
|
recv_external PROC:<{ |
||||||
|
// in_msg_body |
||||||
|
DROP // |
||||||
|
}> |
||||||
|
get_owner PROC:<{ |
||||||
|
// |
||||||
|
}> |
||||||
|
}END>c |
Loading…
Reference in new issue