Swiftgram/submodules/ton/tonlib-src/crypto/smartcont/auto/restricted-wallet2-code.fif
2020-04-23 23:29:22 +04:00

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