Swiftgram/submodules/ton/tonlib-src/crypto/smartcont/auto/restricted-wallet2-code.fif
2020-03-02 02:52:41 +04:00

148 lines
4.5 KiB
Plaintext

// automatically generated from `smartcont/stdlib.fc` `smartcont/restricted-wallet2-code.fc`
PROGRAM{
DECLPROC recv_internal
DECLPROC days_passed
DECLPROC recv_external
85143 DECLMETHOD seqno
78748 DECLMETHOD get_public_key
104128 DECLMETHOD balance
recv_internal PROC:<{
// in_msg
DROP //
}>
days_passed PROC:<{
//
-13 PUSHINT // _1=-13
CONFIGOPTPARAM // p
DUP // p p
ISNULL // p _3
IF:<{ // p
DROP //
-1 PUSHINT // _4=-1
}>ELSE<{ // p
NOW // p _6
SWAP // _6 p
CTOS // _6 _7
32 PLDU // _6 _9
SUB // _10
86400 PUSHINT // _10 _11=86400
DIV // _4
}>
}>
recv_external PROC:<{
// in_msg
9 PUSHPOW2 // in_msg _3=512
LDSLICEX // signature in_msg
DUP // signature in_msg cs
32 LDU // signature in_msg _8 cs
32 LDU // signature in_msg msg_seqno valid_until cs
NOW // signature in_msg msg_seqno valid_until cs _15
s1 s2 XCHG // signature in_msg msg_seqno cs valid_until _15
LEQ // signature in_msg msg_seqno cs _16
35 THROWIF
c4 PUSH // signature in_msg msg_seqno cs _19
CTOS // signature in_msg msg_seqno cs ds
32 LDU // signature in_msg msg_seqno cs _24 ds
256 LDU // signature in_msg msg_seqno cs _24 _27 ds
LDDICT // signature in_msg msg_seqno cs stored_seqno public_key rdict ds
ENDS
s4 s2 PUSH2 // signature in_msg msg_seqno cs stored_seqno public_key rdict msg_seqno stored_seqno
EQUAL // signature in_msg msg_seqno cs stored_seqno public_key rdict _34
33 THROWIFNOT
s0 s4 XCHG // signature in_msg rdict cs stored_seqno public_key msg_seqno
IFNOTJMP:<{ // signature in_msg rdict cs stored_seqno public_key
s2 POP
s3 POP
s3 POP // public_key stored_seqno rdict
ACCEPT
SWAP // public_key rdict stored_seqno
INC // public_key rdict _38
NEWC // public_key rdict _38 _39
32 STU // public_key rdict _41
s1 s2 XCHG // rdict public_key _41
256 STU // rdict _43
STDICT // _44
ENDC // _45
c4 POP
}> // signature in_msg rdict cs stored_seqno public_key
s0 s4 XCHG // signature public_key rdict cs stored_seqno in_msg
HASHSU // signature public_key rdict cs stored_seqno _48
s0 s5 s4 XC2PU // stored_seqno public_key rdict cs _48 signature public_key
CHKSIGNU // stored_seqno public_key rdict cs _49
34 THROWIFNOT
ACCEPT
days_passed INLINECALLDICT // stored_seqno public_key rdict cs ts
s2 PUSH
16 PUSHINT // stored_seqno public_key rdict cs ts rdict _57=16
DICTIGETPREVEQ
NULLSWAPIFNOT2 // stored_seqno public_key rdict cs _98 _97 _99
NIP // stored_seqno public_key rdict cs value found
IF:<{ // stored_seqno public_key rdict cs value
LDGRAMS // stored_seqno public_key rdict cs _101 _100
DROP // stored_seqno public_key rdict cs _59
2 PUSHINT // stored_seqno public_key rdict cs _59 _61=2
RAWRESERVE
}>ELSE<{
DROP // stored_seqno public_key rdict cs
}> // stored_seqno public_key rdict cs
WHILE:<{
DUP // stored_seqno public_key rdict cs cs
SREFS // stored_seqno public_key rdict cs _65
}>DO<{ // stored_seqno public_key rdict cs
8 LDU // stored_seqno public_key rdict mode cs
LDREF // stored_seqno public_key rdict mode msg cs
s0 s2 XCHG // stored_seqno public_key rdict cs msg mode
SENDRAWMSG
}> // stored_seqno public_key rdict cs
ENDS
s0 s2 XCHG // rdict public_key stored_seqno
INC // rdict public_key _76
NEWC // rdict public_key _76 _77
32 STU // rdict public_key _79
256 STU // rdict _81
STDICT // _82
ENDC // _83
c4 POP
}>
seqno PROC:<{
//
c4 PUSH // _0
CTOS // _1
32 PLDU // _3
}>
get_public_key PROC:<{
//
c4 PUSH // _1
CTOS // cs
32 LDU // _9 _8
NIP // cs
256 PLDU // _7
}>
balance PROC:<{
//
c4 PUSH // _1
CTOS // _2
288 PUSHINT // _2 _5
SDSKIPFIRST // ds
LDDICT // rdict ds
ENDS
days_passed INLINECALLDICT // rdict ts
BALANCE // rdict ts _14
FIRST // rdict ts balance
s0 s2 XCHG
16 PUSHINT // balance ts rdict _19=16
DICTIGETPREVEQ
NULLSWAPIFNOT2 // balance _29 _28 _30
NIP // balance value found
IF:<{ // balance value
LDGRAMS // balance _32 _31
DROP // balance _21
SUB // _23
0 PUSHINT // _23 _24=0
MAX // balance
}>ELSE<{
DROP // balance
}>
}>
}END>c