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

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