mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
111 lines
2.9 KiB
Plaintext
111 lines
2.9 KiB
Plaintext
// automatically generated from `smartcont/stdlib.fc` `smartcont/simple-wallet-ext-code.fc`
|
|
PROGRAM{
|
|
DECLPROC create_state
|
|
DECLPROC load_state
|
|
DECLPROC save_state
|
|
DECLPROC recv_internal
|
|
DECLPROC do_verify_message
|
|
DECLPROC recv_external
|
|
85143 DECLMETHOD seqno
|
|
78748 DECLMETHOD get_public_key
|
|
81625 DECLMETHOD create_init_state
|
|
116960 DECLMETHOD prepare_send_message_with_seqno
|
|
101633 DECLMETHOD prepare_send_message
|
|
95420 DECLMETHOD verify_message
|
|
create_state PROC:<{
|
|
// seqno public_key
|
|
SWAP
|
|
NEWC // public_key seqno _2
|
|
32 STU // public_key _4
|
|
256 STU // _6
|
|
ENDC // _7
|
|
}>
|
|
load_state PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // cs2
|
|
32 LDU // _3 cs2
|
|
256 LDU // _3 _12 _11
|
|
DROP // _3 _6
|
|
}>
|
|
save_state PROC:<{
|
|
// seqno public_key
|
|
create_state CALLDICT // _2
|
|
c4 POP
|
|
}>
|
|
recv_internal PROC:<{
|
|
// in_msg
|
|
DROP //
|
|
}>
|
|
do_verify_message PROC:<{
|
|
// in_msg seqno public_key
|
|
s0 s2 XCHG
|
|
9 PUSHPOW2 // public_key seqno in_msg _5=512
|
|
LDSLICEX // public_key seqno signature in_msg
|
|
DUP // public_key seqno signature in_msg cs
|
|
32 LDU // public_key seqno signature in_msg msg_seqno cs
|
|
s0 s4 XCHG // public_key cs signature in_msg msg_seqno seqno
|
|
EQUAL // public_key cs signature in_msg _13
|
|
33 THROWIFNOT
|
|
HASHSU // public_key cs signature _16
|
|
s0 s1 s3 XCHG3 // cs _16 signature public_key
|
|
CHKSIGNU // cs _17
|
|
34 THROWIFNOT
|
|
}>
|
|
recv_external PROC:<{
|
|
// in_msg
|
|
load_state CALLDICT // in_msg stored_seqno public_key
|
|
s2 s1 s2 XCPU2 // public_key stored_seqno in_msg stored_seqno public_key
|
|
do_verify_message CALLDICT // public_key stored_seqno cs
|
|
ACCEPT // public_key stored_seqno cs
|
|
DUP // public_key stored_seqno cs cs
|
|
SREFS // public_key stored_seqno cs _9
|
|
IF:<{ // public_key stored_seqno cs
|
|
8 LDU // public_key stored_seqno mode cs
|
|
LDREF // public_key stored_seqno mode _14 cs
|
|
s0 s2 XCHG // public_key stored_seqno cs _14 mode
|
|
SENDRAWMSG
|
|
}> // public_key stored_seqno cs
|
|
ENDS
|
|
INC // public_key _19
|
|
SWAP // _19 public_key
|
|
save_state CALLDICT
|
|
}>
|
|
seqno PROC:<{
|
|
//
|
|
c4 PUSH // _0
|
|
CTOS // _1
|
|
32 PLDU // _3
|
|
}>
|
|
get_public_key PROC:<{
|
|
//
|
|
load_state CALLDICT // _3 _4
|
|
NIP // public_key
|
|
}>
|
|
create_init_state PROC:<{
|
|
// public_key
|
|
0 PUSHINT // public_key _1=0
|
|
SWAP // _1=0 public_key
|
|
create_state CALLDICT // _2
|
|
}>
|
|
prepare_send_message_with_seqno PROC:<{
|
|
// mode msg seqno
|
|
NEWC // mode msg seqno _3
|
|
32 STU // mode msg _5
|
|
s1 s2 XCHG // msg mode _5
|
|
8 STU // msg _7
|
|
STREF // _8
|
|
ENDC // _9
|
|
}>
|
|
prepare_send_message PROC:<{
|
|
// mode msg
|
|
seqno CALLDICT // mode msg _2
|
|
prepare_send_message_with_seqno CALLDICT // _3
|
|
}>
|
|
verify_message PROC:<{
|
|
// msg
|
|
load_state CALLDICT // msg stored_seqno public_key
|
|
do_verify_message CALLDICT // _4
|
|
}>
|
|
}END>c
|