TON contracts for Agorata
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

944 lines
52 KiB

"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