1
0
mirror of https://github.com/danog/toncontest.git synced 2024-12-02 09:27:47 +01:00
toncontest/wallet/wallet-code.fif

373 lines
5.4 KiB
Plaintext
Raw Normal View History

2019-10-03 21:54:25 +02:00
"Asm.fif" include
// automatically generated from `/home/daniil/repos/contest/lib/crypto/smartcont/stdlib.fc` `wallet-code.fc`
PROGRAM{
2019-10-04 19:09:10 +02:00
DECLPROC ~collect_garbage
2019-10-04 16:12:48 +02:00
DECLPROC store_db
2019-10-03 21:54:25 +02:00
DECLPROC recv_internal
DECLPROC recv_external
85143 DECLMETHOD seqno
2019-10-07 17:08:09 +02:00
119659 DECLMETHOD getKey
66593 DECLMETHOD getId
124239 DECLMETHOD getPartials
2019-10-12 17:54:21 +02:00
113609 DECLMETHOD getPartialsByKeyId
2019-10-11 13:31:10 +02:00
125107 DECLMETHOD getPartialByKey
100959 DECLMETHOD getPartialByHash
2019-10-04 19:09:10 +02:00
~collect_garbage PROC:<{
2019-10-04 16:12:48 +02:00
-1 PUSHINT
UNTIL:<{
OVER
8 PUSHPOW2
DICTUGETNEXT
NULLSWAPIFNOT
NULLSWAPIFNOT
2019-10-03 21:54:25 +02:00
DUP
2019-10-04 16:12:48 +02:00
IF:<{
s0 s2 XCHG
2019-10-11 20:27:37 +02:00
4 PUSHINT
SDSKIPFIRST
2019-10-04 19:09:10 +02:00
SKIPDICT
32 PLDU
2019-10-04 16:12:48 +02:00
NOW
LEQ
IF:<{
2019-10-04 18:00:14 +02:00
8 PUSHPOW2
s1 s3 s3 PUXC2
DICTUDEL
DROP
}>ELSE<{
s0 s2 XCHG
2019-10-04 16:12:48 +02:00
}>
}>ELSE<{
2019-10-04 18:00:14 +02:00
2SWAP
DROP
2019-10-04 16:12:48 +02:00
}>
SWAP
NOT
2019-10-04 18:00:14 +02:00
s1 s2 XCHG
2019-10-03 21:54:25 +02:00
}>
2019-10-04 16:12:48 +02:00
DROP
}>
store_db PROC:<{
2019-10-03 21:54:25 +02:00
NEWC
2019-10-04 16:12:48 +02:00
s1 s3 XCHG
2019-10-03 21:54:25 +02:00
32 STU
2019-10-04 16:12:48 +02:00
STDICT
STDICT
2019-10-03 21:54:25 +02:00
ENDC
c4 POP
}>
2019-10-04 16:12:48 +02:00
recv_internal PROC:<{
DROP
}>
2019-10-04 18:00:14 +02:00
recv_external PROC:<{
1 LDU
SWAP
2019-10-09 17:18:04 +02:00
32 THROWIF
2019-10-04 18:00:14 +02:00
DUP
1 PLDU
33 THROWIFNOT
LDDICT
DUP
32 LDU
32 LDU
2019-10-12 17:54:21 +02:00
s2 PUSH
2019-10-04 18:00:14 +02:00
NOW
LEQ
34 THROWIF
2019-10-12 17:54:21 +02:00
s0 s3 XCHG
2019-10-04 18:00:14 +02:00
HASHSU
c4 PUSH
CTOS
32 LDU
4 LDU
2019-10-10 17:37:47 +02:00
LDDICT
2019-10-04 18:00:14 +02:00
LDDICT
ENDS
2019-10-11 13:31:10 +02:00
0 PUSHINT
2019-10-04 18:00:14 +02:00
NEWDICT
2019-10-12 17:54:21 +02:00
s5 s7 PUSH2
2019-10-04 18:00:14 +02:00
EQUAL
IF:<{
2019-10-12 17:54:21 +02:00
s0 s5 XCHG
2019-10-04 18:00:14 +02:00
INC
}>ELSE<{
2019-10-12 17:54:21 +02:00
2DROP
s4 s0 PUSH2
2019-10-04 18:00:14 +02:00
8 PUSHPOW2
DICTUGET
NULLSWAPIFNOT
2019-10-07 21:18:31 +02:00
35 THROWIFNOT
2019-10-11 13:31:10 +02:00
4 LDU
2019-10-12 17:54:21 +02:00
PLDDICT
s0 s5 XCHG
2019-10-04 18:00:14 +02:00
}>
ACCEPT
2019-10-11 13:31:10 +02:00
-1 PUSHINT
2019-10-04 18:00:14 +02:00
UNTIL:<{
2019-10-12 17:54:21 +02:00
s11 PUSH
2019-10-04 18:00:14 +02:00
4 PUSHINT
DICTUGETNEXT
NULLSWAPIFNOT
NULLSWAPIFNOT
DUP
IF:<{
2019-10-10 17:37:47 +02:00
DROP
2019-10-12 17:54:21 +02:00
s0 s5 PUSH2
2019-10-10 17:37:47 +02:00
4 PUSHINT
DICTUGET
NULLSWAPIFNOT
DUP
36 THROWIFNOT
2019-10-11 20:27:37 +02:00
s3 s(-1) s0 PUXC2
2019-10-10 17:37:47 +02:00
256 PLDU
2019-10-12 17:54:21 +02:00
s11 s2 s2 PUXC2
2019-10-04 18:00:14 +02:00
CHKSIGNU
37 THROWIFNOT
2019-10-12 17:54:21 +02:00
s1 s8 PUSH2
2019-10-04 18:00:14 +02:00
4 PUSHINT
2019-10-11 13:31:10 +02:00
DICTUGET
NULLSWAPIFNOT
NIP
NOT
IF:<{
s1 s2 XCHG
4 PUSHINT
2019-10-12 17:54:21 +02:00
s3 s9 s9 PUXC2
2019-10-11 13:31:10 +02:00
DICTUSET
2019-10-12 17:54:21 +02:00
s0 s3 XCHG
2019-10-11 13:31:10 +02:00
INC
}>ELSE<{
2019-10-12 17:54:21 +02:00
s0 s8 XCHG
s1 s4 s4 XCHG3
2019-10-11 13:31:10 +02:00
DROP
}>
2019-10-04 18:00:14 +02:00
}>ELSE<{
2019-10-12 17:54:21 +02:00
s0 s8 XCHG
s1 s4 s4 XCHG3
2019-10-04 18:00:14 +02:00
DROP
}>
2019-10-12 17:54:21 +02:00
s0 s7 XCHG
2019-10-04 18:00:14 +02:00
NOT
2019-10-12 17:54:21 +02:00
s3 s7 XCHG
2019-10-04 18:00:14 +02:00
}>
DROP
2019-10-12 17:54:21 +02:00
s10 POP
s0 s3 PUSH2
2019-10-11 13:31:10 +02:00
GEQ
2019-10-04 18:00:14 +02:00
IF:<{
2019-10-12 17:54:21 +02:00
DROP
2019-10-11 16:54:08 +02:00
s3 POP
2019-10-11 13:31:10 +02:00
s4 POP
2019-10-12 17:54:21 +02:00
s4 POP
s0 s4 XCHG
2019-10-11 16:54:08 +02:00
1 LDU
SWAP
IF:<{
2019-10-12 21:14:02 +02:00
s2 POP
s2 POP
4 LDU
LDDICT
2019-10-11 16:54:08 +02:00
LDREF
SWAP
SETCODE
2019-10-12 21:14:02 +02:00
DUMPSTK
2019-10-11 16:54:08 +02:00
}>ELSE<{
8 LDU
LDREF
s0 s2 XCHG
SENDRAWMSG
2019-10-12 21:14:02 +02:00
s3 s3 s0 XCHG3
2019-10-11 16:54:08 +02:00
}>
ENDS
2019-10-12 21:14:02 +02:00
s2 s3 XCHG2
2019-10-11 13:31:10 +02:00
8 PUSHPOW2
DICTUDEL
DROP
}>ELSE<{
2019-10-04 18:00:14 +02:00
NEWC
2019-10-11 20:27:37 +02:00
4 STU
2019-10-11 13:31:10 +02:00
s1 s4 XCHG
2019-10-04 18:00:14 +02:00
STDICT
2019-10-12 17:54:21 +02:00
s1 s6 XCHG
32 STU
s1 s4 XCHG
32 STU
2019-10-11 13:31:10 +02:00
s0 s5 XCHG2
STSLICER
2019-10-12 17:54:21 +02:00
s0 s1 s4 XCHG3
2019-10-04 18:00:14 +02:00
8 PUSHPOW2
2019-10-11 13:31:10 +02:00
DICTUSETB
2019-10-11 16:54:08 +02:00
s1 s2 XCHG
2019-10-04 18:00:14 +02:00
}>
2019-10-04 19:09:10 +02:00
~collect_garbage CALLDICT
2019-10-04 18:00:14 +02:00
NEWC
2019-10-12 17:54:21 +02:00
s1 s4 XCHG
2019-10-04 18:00:14 +02:00
32 STU
4 STU
2019-10-10 17:37:47 +02:00
STDICT
2019-10-04 18:00:14 +02:00
STDICT
ENDC
c4 POP
}>
2019-10-03 21:54:25 +02:00
seqno PROC:<{
c4 PUSH
CTOS
32 PLDU
}>
2019-10-07 17:08:09 +02:00
getKey PROC:<{
c4 PUSH
CTOS
2019-10-12 17:54:21 +02:00
36 PUSHINT
2019-10-07 17:08:09 +02:00
SDSKIPFIRST
2019-10-10 17:37:47 +02:00
PLDDICT
4 PUSHINT
DICTUGET
NULLSWAPIFNOT
DUP
NOT
IFJMP:<{
NIP
0 PUSHINT
}>
DROP
2019-10-07 17:08:09 +02:00
-1 PUSHINT
SWAP
2019-10-10 17:37:47 +02:00
256 PLDU
2019-10-07 17:08:09 +02:00
}>
getId PROC:<{
c4 PUSH
CTOS
2019-10-12 17:54:21 +02:00
36 PUSHINT
2019-10-07 17:08:09 +02:00
SDSKIPFIRST
2019-10-10 17:37:47 +02:00
PLDDICT
2019-10-12 17:54:21 +02:00
-1 PUSHINT
2019-10-07 17:08:09 +02:00
0 PUSHINT
UNTIL:<{
2019-10-12 17:54:21 +02:00
s1 s2 XCPU
2019-10-10 17:37:47 +02:00
4 PUSHINT
DICTUGETNEXT
NULLSWAPIFNOT
NULLSWAPIFNOT
DUP
2019-10-12 17:54:21 +02:00
IF:<{
s3 POP
SWAP
256 PLDU
s4 PUSH
EQUAL
}>ELSE<{
s1 s3 s3 XCHG3
DROP
}>
s0 s2 XCHG
2019-10-10 17:37:47 +02:00
NOT
2019-10-12 17:54:21 +02:00
s2 PUSH
2019-10-07 21:18:31 +02:00
OR
s1 s2 XCHG
}>
s2 POP
2019-10-10 17:37:47 +02:00
s2 POP
2019-10-07 21:18:31 +02:00
IFJMP:<{
-1 PUSHINT
SWAP
2019-10-07 17:08:09 +02:00
}>
2019-10-07 21:18:31 +02:00
DROP
2019-10-07 17:08:09 +02:00
0 PUSHINT
DUP
}>
getPartials PROC:<{
c4 PUSH
CTOS
2019-10-12 17:54:21 +02:00
36 PUSHINT
2019-10-07 17:08:09 +02:00
SDSKIPFIRST
2019-10-10 17:37:47 +02:00
SKIPDICT
2019-10-07 17:08:09 +02:00
PLDDICT
}>
2019-10-12 17:54:21 +02:00
getPartialsByKeyId PROC:<{
2019-10-07 17:08:09 +02:00
c4 PUSH
CTOS
2019-10-12 17:54:21 +02:00
36 PUSHINT
2019-10-07 17:08:09 +02:00
SDSKIPFIRST
2019-10-10 17:37:47 +02:00
SKIPDICT
2019-10-07 17:08:09 +02:00
PLDDICT
NEWDICT
2019-10-12 17:54:21 +02:00
-1 PUSHINT
2019-10-07 17:08:09 +02:00
0 PUSHINT
UNTIL:<{
2019-10-12 17:54:21 +02:00
s1 s3 XCPU
2019-10-07 17:08:09 +02:00
8 PUSHPOW2
DICTUGETNEXT
NULLSWAPIFNOT
NULLSWAPIFNOT
DUP
IF:<{
2019-10-12 17:54:21 +02:00
s2 PUSH
4 PUSHINT
SDSKIPFIRST
2019-10-07 17:08:09 +02:00
PLDDICT
2019-10-12 17:54:21 +02:00
s7 s(-1) PUXC
2019-10-07 17:08:09 +02:00
4 PUSHINT
DICTUGET
2019-10-11 13:31:10 +02:00
NULLSWAPIFNOT
2019-10-07 17:08:09 +02:00
NIP
IF:<{
2019-10-12 17:54:21 +02:00
s0 s3 XCHG
INC
NEWC
s0 s3 XCHG2
STSLICER
2019-10-07 17:08:09 +02:00
SWAP
8 PUSHPOW2
2019-10-12 17:54:21 +02:00
s1 s5 s5 PUXC2
DICTUSETB
2019-10-07 17:08:09 +02:00
}>ELSE<{
2019-10-12 17:54:21 +02:00
s3 s4 s3 XCHG3
2019-10-07 17:08:09 +02:00
DROP
}>
}>ELSE<{
2019-10-12 17:54:21 +02:00
s3 s4 s3 XCHG3
2019-10-07 17:08:09 +02:00
DROP
}>
2019-10-12 17:54:21 +02:00
s0 s2 XCHG
2019-10-07 17:08:09 +02:00
NOT
2019-10-12 17:54:21 +02:00
s2 s3 XCHG
2019-10-07 17:08:09 +02:00
}>
2019-10-12 17:54:21 +02:00
NIP
s2 POP
s2 POP
SWAP
2019-10-07 17:08:09 +02:00
}>
2019-10-11 13:31:10 +02:00
getPartialByKey PROC:<{
2019-10-07 17:08:09 +02:00
getId CALLDICT
SWAP
IFNOTJMP:<{
DROP
2019-10-12 17:54:21 +02:00
0 PUSHINT
2019-10-07 17:08:09 +02:00
NEWDICT
}>
2019-10-12 17:54:21 +02:00
getPartialsByKeyId CALLDICT
2019-10-07 17:08:09 +02:00
}>
2019-10-11 13:31:10 +02:00
getPartialByHash PROC:<{
2019-10-09 17:18:04 +02:00
c4 PUSH
CTOS
2019-10-12 17:54:21 +02:00
36 PUSHINT
2019-10-09 17:18:04 +02:00
SDSKIPFIRST
2019-10-10 17:37:47 +02:00
SKIPDICT
2019-10-09 17:18:04 +02:00
PLDDICT
8 PUSHPOW2
2019-10-12 17:54:21 +02:00
DICTUGET
NULLSWAPIFNOT
DUP
IFNOTJMP:<{
2DROP
0 PUSHINT
NEWC
ENDC
}>
NEWC
ROT
STSLICER
ENDC
2019-10-09 17:18:04 +02:00
}>
2019-10-03 21:54:25 +02:00
}END>c