mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
148 lines
4.5 KiB
Plaintext
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
|