contracts.ft.build.jetton-discovery.fif Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of smartcontract Show documentation
Show all versions of smartcontract Show documentation
Build and manipulate TON smart contracts in easy way.
"Asm.fif" include
// automatically generated from `../stdlib.fc` `params.fc` `op-codes.fc` `discovery-params.fc` `jetton-utils.fc` `jetton-discovery.fc`
PROGRAM{
DECLPROC force_chain
DECLPROC is_resolvable?
DECLPROC pack_jetton_wallet_data
DECLPROC calculate_jetton_wallet_state_init
DECLPROC calculate_jetton_wallet_address
DECLPROC calculate_user_jetton_wallet_address
DECLPROC load_data
DECLPROC recv_internal
force_chain PROC:<{
// addr
REWRITESTDADDR // _8 _9
DROP // wc
0 PUSHINT // wc _5
EQUAL // _6
333 THROWIFNOT
}>
is_resolvable? PROCINLINE:<{
// addr
REWRITESTDADDR // _6 _7
DROP // wc
0 PUSHINT // wc _4
EQUAL // _5
}>
pack_jetton_wallet_data PROCINLINE:<{
// balance owner_address jetton_master_address jetton_wallet_code
NEWC // balance owner_address jetton_master_address jetton_wallet_code _4
s0 s4 XCHG2 // jetton_wallet_code owner_address jetton_master_address _4 balance
STVARUINT16 // jetton_wallet_code owner_address jetton_master_address _5
ROT // jetton_wallet_code jetton_master_address _5 owner_address
STSLICER // jetton_wallet_code jetton_master_address _6
SWAP // jetton_wallet_code _6 jetton_master_address
STSLICER // jetton_wallet_code _7
STREF // _8
ENDC // _9
}>
calculate_jetton_wallet_state_init PROCINLINE:<{
// owner_address jetton_master_address jetton_wallet_code
0 PUSHINT // owner_address jetton_master_address jetton_wallet_code _3=0
s0 s1 s2 XCPUXC
s4 s0 s3 XC2PU // _3=0 jetton_wallet_code _4=0 owner_address jetton_master_address jetton_wallet_code
pack_jetton_wallet_data INLINECALLDICT // _3=0 jetton_wallet_code _5
s2 PUSH // _3=0 jetton_wallet_code _5 _6=0
NEWC // _3=0 jetton_wallet_code _5 _6=0 _7
2 STU // _3=0 jetton_wallet_code _5 _9
s1 s2 XCHG // _3=0 _5 jetton_wallet_code _9
STDICT // _3=0 _5 _10
STDICT // _3=0 _11
1 STU // _13
ENDC // _14
}>
calculate_jetton_wallet_address PROCINLINE:<{
// state_init
HASHCU // _1
0 PUSHINT // _1 _2
4 PUSHINT // _1 _2 _3=4
NEWC // _1 _2 _3=4 _4
3 STU // _1 _2 _6
8 STI // _1 _8
256 STU // _10
ENDC // _11
CTOS // _12
}>
calculate_user_jetton_wallet_address PROCINLINE:<{
// owner_address jetton_master_address jetton_wallet_code
calculate_jetton_wallet_state_init INLINECALLDICT // _3
calculate_jetton_wallet_address INLINECALLDICT // _4
}>
load_data PROCINLINE:<{
//
c4 PUSH // _1
CTOS // ds
LDMSGADDR // _3 ds
LDREF // _3 _10 _9
DROP // _3 _5
}>
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
IFJMP:<{ // msg_value in_msg_full in_msg_body
3 BLKDROP //
}> // 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 _10=1
AND // msg_value in_msg_body cs _11
IFJMP:<{ // msg_value in_msg_body cs
3 BLKDROP //
}> // msg_value in_msg_body cs
LDMSGADDR // msg_value in_msg_body sender_address cs
LDMSGADDR // msg_value in_msg_body sender_address _106 _105
NIP // msg_value in_msg_body sender_address cs
LDVARUINT16 // msg_value in_msg_body sender_address _108 _107
NIP // msg_value in_msg_body sender_address cs
1 PUSHINT // msg_value in_msg_body sender_address cs _20=1
SDSKIPFIRST // msg_value in_msg_body sender_address cs
LDVARUINT16 // msg_value in_msg_body sender_address _110 _109
NIP // msg_value in_msg_body sender_address cs
LDVARUINT16 // msg_value in_msg_body sender_address _112 _111
DROP // msg_value in_msg_body sender_address _25
3 PUSHINT // msg_value in_msg_body sender_address _25 _27=3
1 MULRSHIFT# // msg_value in_msg_body sender_address fwd_fee
s0 s2 XCHG // msg_value fwd_fee sender_address in_msg_body
32 LDU // msg_value fwd_fee sender_address op in_msg_body
64 LDU // msg_value fwd_fee sender_address op query_id in_msg_body
0x2c76b973 PUSHINT // msg_value fwd_fee sender_address op query_id in_msg_body _38
s1 s3 XCHG // msg_value fwd_fee sender_address in_msg_body query_id op _38
EQUAL // msg_value fwd_fee sender_address in_msg_body query_id _39
IFJMP:<{ // msg_value fwd_fee sender_address in_msg_body query_id
10000000 PUSHINT // msg_value fwd_fee sender_address in_msg_body query_id _41
s1 s4 XCHG // msg_value query_id sender_address in_msg_body fwd_fee _41
ADD // msg_value query_id sender_address in_msg_body _42
s1 s4 XCHG // in_msg_body query_id sender_address msg_value _42
GREATER // in_msg_body query_id sender_address _43
75 THROWIFNOT
load_data INLINECALLDICT // in_msg_body query_id sender_address jetton_minter_address jetton_wallet_code
s0 s4 XCHG // jetton_wallet_code query_id sender_address jetton_minter_address in_msg_body
LDMSGADDR // jetton_wallet_code query_id sender_address jetton_minter_address owner_address in_msg_body
1 LDU // jetton_wallet_code query_id sender_address jetton_minter_address owner_address _122 _121
DROP // jetton_wallet_code query_id sender_address jetton_minter_address owner_address include_address?
IF:<{ // jetton_wallet_code query_id sender_address jetton_minter_address owner_address
NEWC // jetton_wallet_code query_id sender_address jetton_minter_address owner_address _57
OVER // jetton_wallet_code query_id sender_address jetton_minter_address owner_address _57 owner_address
STSLICER // jetton_wallet_code query_id sender_address jetton_minter_address owner_address _58
ENDC // jetton_wallet_code query_id sender_address jetton_minter_address owner_address _56
}>ELSE<{ // jetton_wallet_code query_id sender_address jetton_minter_address owner_address
PUSHNULL // jetton_wallet_code query_id sender_address jetton_minter_address owner_address _56
}> // jetton_wallet_code query_id sender_address jetton_minter_address owner_address included_address
0xd1735400 PUSHINT // jetton_wallet_code query_id sender_address jetton_minter_address owner_address included_address _62
0 PUSHINT // jetton_wallet_code query_id sender_address jetton_minter_address owner_address included_address _62 _63=0
24 PUSHINT // jetton_wallet_code query_id sender_address jetton_minter_address owner_address included_address _62 _63=0 _64=24
NEWC // jetton_wallet_code query_id sender_address jetton_minter_address owner_address included_address _62 _63=0 _64=24 _65
6 STU // jetton_wallet_code query_id sender_address jetton_minter_address owner_address included_address _62 _63=0 _67
s0 s6 XCHG2 // jetton_wallet_code query_id _63=0 jetton_minter_address owner_address included_address _62 _67 sender_address
STSLICER // jetton_wallet_code query_id _63=0 jetton_minter_address owner_address included_address _62 _68
s5 PUSH // jetton_wallet_code query_id _63=0 jetton_minter_address owner_address included_address _62 _68 _69=0
STVARUINT16 // jetton_wallet_code query_id _63=0 jetton_minter_address owner_address included_address _62 _70
s1 s5 XCHG // jetton_wallet_code query_id _62 jetton_minter_address owner_address included_address _63=0 _70
107 STU // jetton_wallet_code query_id _62 jetton_minter_address owner_address included_address _84
s1 s4 XCHG // jetton_wallet_code query_id included_address jetton_minter_address owner_address _62 _84
32 STU // jetton_wallet_code query_id included_address jetton_minter_address owner_address _86
s1 s4 XCHG // jetton_wallet_code owner_address included_address jetton_minter_address query_id _86
64 STU // jetton_wallet_code owner_address included_address jetton_minter_address msg
s3 PUSH // jetton_wallet_code owner_address included_address jetton_minter_address msg owner_address
is_resolvable? INLINECALLDICT // jetton_wallet_code owner_address included_address jetton_minter_address msg _89
IF:<{ // jetton_wallet_code owner_address included_address jetton_minter_address msg
s3 s1 s4 XCHG3 // msg included_address owner_address jetton_minter_address jetton_wallet_code
calculate_user_jetton_wallet_address INLINECALLDICT // msg included_address _90
s1 s2 XCHG // included_address msg _90
STSLICER // included_address msg
}>ELSE<{ // jetton_wallet_code owner_address included_address jetton_minter_address msg
NIP
2 2 BLKDROP2 // included_address msg
0 PUSHINT // included_address msg _92=0
SWAP // included_address _92=0 msg
2 STU // included_address msg
}>
STOPTREF // _95
ENDC // _96
64 PUSHINT // _96 _97=64
SENDRAWMSG
}> // msg_value fwd_fee sender_address in_msg_body query_id
5 BLKDROP //
16 PUSHPOW2DEC // _99=65535
THROWANY
}>
}END>c