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.

137 lines
4.0 KiB

2 years ago
"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