mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-23 11:41:13 +00:00
176 lines
5.7 KiB
Plaintext
176 lines
5.7 KiB
Plaintext
// automatically generated from `smartcont/stdlib.fc` `smartcont/restricted-wallet2-code.fc`
|
|
PROGRAM{
|
|
DECLPROC recv_internal
|
|
DECLPROC seconds_passed
|
|
DECLPROC recv_external
|
|
85143 DECLMETHOD seqno
|
|
78748 DECLMETHOD get_public_key
|
|
DECLPROC compute_balance_at
|
|
108602 DECLMETHOD balance_at
|
|
104128 DECLMETHOD balance
|
|
recv_internal PROC:<{
|
|
// in_msg
|
|
DROP //
|
|
}>
|
|
seconds_passed PROCREF:<{
|
|
// start_at utime
|
|
OVER // start_at utime start_at
|
|
IFNOT:<{ // start_at utime
|
|
NIP // utime
|
|
-13 PUSHINT // utime _3=-13
|
|
CONFIGOPTPARAM // utime p
|
|
DUP // utime p p
|
|
ISNULL // utime p _5
|
|
IF:<{ // utime p
|
|
DROP // utime
|
|
0 PUSHINT // utime _6=0
|
|
}>ELSE<{ // utime p
|
|
CTOS // utime _8
|
|
32 PLDU // utime _6
|
|
}> // utime start_at
|
|
SWAP // start_at utime
|
|
}> // start_at utime
|
|
OVER // start_at utime start_at
|
|
IF:<{ // start_at utime
|
|
SWAP // utime start_at
|
|
SUB // _11
|
|
}>ELSE<{ // start_at utime
|
|
2DROP //
|
|
-1 PUSHINT // _11=-1
|
|
}>
|
|
}>
|
|
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
|
|
SWAP
|
|
NOW // 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 _25 ds
|
|
256 LDU // signature in_msg msg_seqno cs _25 _28 ds
|
|
32 LDU // signature in_msg msg_seqno cs _25 _28 _31 ds
|
|
LDDICT // signature in_msg msg_seqno cs stored_seqno public_key start_at rdict ds
|
|
ENDS
|
|
s5 s3 PUSH2 // signature in_msg msg_seqno cs stored_seqno public_key start_at rdict msg_seqno stored_seqno
|
|
EQUAL // signature in_msg msg_seqno cs stored_seqno public_key start_at rdict _38
|
|
33 THROWIFNOT
|
|
s0 s5 XCHG // signature in_msg rdict cs stored_seqno public_key start_at msg_seqno
|
|
IFNOTJMP:<{ // signature in_msg rdict cs stored_seqno public_key start_at
|
|
s3 POP
|
|
s4 POP
|
|
s4 POP // stored_seqno public_key rdict start_at
|
|
ACCEPT
|
|
s0 s3 XCHG // start_at public_key rdict stored_seqno
|
|
INC // start_at public_key rdict _42
|
|
NEWC // start_at public_key rdict _42 _43
|
|
32 STU // start_at public_key rdict _45
|
|
s1 s2 XCHG // start_at rdict public_key _45
|
|
256 STU // start_at rdict _47
|
|
s1 s2 XCHG // rdict start_at _47
|
|
32 STU // rdict _49
|
|
STDICT // _50
|
|
ENDC // _51
|
|
c4 POP
|
|
}> // signature in_msg rdict cs stored_seqno public_key start_at
|
|
s0 s5 XCHG // signature start_at rdict cs stored_seqno public_key in_msg
|
|
HASHSU // signature start_at rdict cs stored_seqno public_key _54
|
|
s0 s6 s6 XC2PU // public_key start_at rdict cs stored_seqno _54 signature public_key
|
|
CHKSIGNU // public_key start_at rdict cs stored_seqno _55
|
|
34 THROWIFNOT
|
|
ACCEPT
|
|
s3 PUSH
|
|
NOW // public_key start_at rdict cs stored_seqno start_at _59
|
|
seconds_passed INLINECALLDICT // public_key start_at rdict cs stored_seqno ts
|
|
s3 PUSH
|
|
32 PUSHINT // public_key start_at rdict cs stored_seqno ts rdict _64=32
|
|
DICTIGETPREVEQ
|
|
NULLSWAPIFNOT2 // public_key start_at rdict cs stored_seqno _109 _108 _110
|
|
NIP // public_key start_at rdict cs stored_seqno value found
|
|
IF:<{ // public_key start_at rdict cs stored_seqno value
|
|
LDGRAMS // public_key start_at rdict cs stored_seqno _112 _111
|
|
DROP // public_key start_at rdict cs stored_seqno _66
|
|
2 PUSHINT // public_key start_at rdict cs stored_seqno _66 _68=2
|
|
RAWRESERVE
|
|
}>ELSE<{
|
|
DROP // public_key start_at rdict cs stored_seqno
|
|
}>
|
|
SWAP // public_key start_at rdict stored_seqno cs
|
|
WHILE:<{
|
|
DUP // public_key start_at rdict stored_seqno cs cs
|
|
SREFS // public_key start_at rdict stored_seqno cs _72
|
|
}>DO<{ // public_key start_at rdict stored_seqno cs
|
|
8 LDU // public_key start_at rdict stored_seqno mode cs
|
|
LDREF // public_key start_at rdict stored_seqno mode msg cs
|
|
s0 s2 XCHG // public_key start_at rdict stored_seqno cs msg mode
|
|
SENDRAWMSG
|
|
}> // public_key start_at rdict stored_seqno cs
|
|
ENDS
|
|
INC // public_key start_at rdict _83
|
|
NEWC // public_key start_at rdict _83 _84
|
|
32 STU // public_key start_at rdict _86
|
|
s1 s3 XCHG // rdict start_at public_key _86
|
|
256 STU // rdict start_at _88
|
|
32 STU // rdict _90
|
|
STDICT // _91
|
|
ENDC // _92
|
|
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
|
|
}>
|
|
compute_balance_at PROCREF:<{
|
|
// utime
|
|
c4 PUSH // utime _2
|
|
CTOS // utime _3
|
|
288 PUSHINT // utime _3 _6
|
|
SDSKIPFIRST // utime ds
|
|
32 LDU // utime _10 ds
|
|
LDDICT // utime start_at rdict ds
|
|
ENDS
|
|
s0 s2 XCHG // rdict start_at utime
|
|
seconds_passed INLINECALLDICT // rdict ts
|
|
BALANCE // rdict ts _19
|
|
FIRST // rdict ts balance
|
|
s0 s2 XCHG
|
|
32 PUSHINT // balance ts rdict _24=32
|
|
DICTIGETPREVEQ
|
|
NULLSWAPIFNOT2 // balance _36 _35 _37
|
|
NIP // balance value found
|
|
IF:<{ // balance value
|
|
LDGRAMS // balance _39 _38
|
|
DROP // balance _26
|
|
SUB // _28
|
|
0 PUSHINT // _28 _29=0
|
|
MAX // balance
|
|
}>ELSE<{
|
|
DROP // balance
|
|
}>
|
|
}>
|
|
balance_at PROC:<{
|
|
// utime
|
|
compute_balance_at INLINECALLDICT // _1
|
|
}>
|
|
balance PROC:<{
|
|
//
|
|
NOW // _0
|
|
compute_balance_at INLINECALLDICT // _1
|
|
}>
|
|
}END>c
|