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
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
|