BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Sirius DEX
operations (11.8M)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
951
 
1
parameter (or
2
            (or
3
              (or
4
                (pair %addLiquidity (address %owner)
5
                                    (pair (nat %minLqtMinted)
6
                                          (pair (nat %maxTokensDeposited)
7
                                                (timestamp %deadline))))
8
                (unit %default))
9
              (or
10
                (pair %removeLiquidity (address %to)
11
                                       (pair (nat %lqtBurned)
12
                                             (pair (mutez %minXtzWithdrawn)
13
                                                   (pair (nat %minTokensWithdrawn)
14
                                                         (timestamp %deadline)))))
15
                (pair %tokenToToken (address %outputDexterContract)
16
                                    (pair (nat %minTokensBought)
17
                                          (pair (address %to)
18
                                                (pair (nat %tokensSold)
19
                                                      (timestamp %deadline)))))))
20
            (or
21
              (pair %tokenToXtz (address %to)
22
                                (pair (nat %tokensSold)
23
                                      (pair (mutez %minXtzBought) (timestamp %deadline))))
24
              (pair %xtzToToken (address %to)
25
                                (pair (nat %minTokensBought) (timestamp %deadline)))));
26
storage (pair (nat %tokenPool)
27
              (pair (mutez %xtzPool)
28
                    (pair (nat %lqtTotal)
29
                          (pair (address %tokenAddress) (address %lqtAddress)))));
30
code { DUP ;
31
       CDR ;
32
       SWAP ;
33
       CAR ;
34
       IF_LEFT
35
         { IF_LEFT
36
             { IF_LEFT
37
                 { DUP ;
38
                   CDR ;
39
                   SWAP ;
40
                   CAR ;
41
                   SWAP ;
42
                   DUP ;
43
                   CDR ;
44
                   SWAP ;
45
                   CAR ;
46
                   SWAP ;
47
                   DUP ;
48
                   CDR ;
49
                   SWAP ;
50
                   CAR ;
51
                   SWAP ;
52
                   NOW ;
53
                   COMPARE ;
54
                   GE ;
55
                   IF
56
                     { DROP 4 ; PUSH nat 3 ; FAILWITH }
57
                     { PUSH mutez 1 ;
58
                       DIG 4 ;
59
                       DUP ;
60
                       DUG 5 ;
61
                       CDR ;
62
                       CAR ;
63
                       EDIV ;
64
                       IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
65
                       CAR ;
66
                       AMOUNT ;
67
                       PUSH mutez 1 ;
68
                       SWAP ;
69
                       EDIV ;
70
                       IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
71
                       CAR ;
72
                       SWAP ;
73
                       DUP ;
74
                       DUG 2 ;
75
                       DIG 6 ;
76
                       DUP ;
77
                       DUG 7 ;
78
                       CDR ;
79
                       CDR ;
80
                       CAR ;
81
                       DIG 2 ;
82
                       DUP ;
83
                       DUG 3 ;
84
                       MUL ;
85
                       EDIV ;
86
                       IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
87
                       CAR ;
88
                       DIG 2 ;
89
                       DIG 6 ;
90
                       DUP ;
91
                       DUG 7 ;
92
                       CAR ;
93
                       DIG 3 ;
94
                       MUL ;
95
                       EDIV ;
96
                       IF_NONE
97
                         { PUSH string "DIV by 0" ; FAILWITH }
98
                         { DUP ;
99
                           CDR ;
100
                           SWAP ;
101
                           CAR ;
102
                           PUSH nat 0 ;
103
                           DIG 2 ;
104
                           COMPARE ;
105
                           EQ ;
106
                           IF {} { PUSH nat 1 ; ADD } } ;
107
                       DIG 2 ;
108
                       SWAP ;
109
                       DUP ;
110
                       DUG 2 ;
111
                       COMPARE ;
112
                       GT ;
113
                       IF
114
                         { DROP 5 ; PUSH nat 4 ; FAILWITH }
115
                         { DUG 2 ;
116
                           DUP ;
117
                           DUG 3 ;
118
                           COMPARE ;
119
                           LT ;
120
                           IF
121
                             { DROP 4 ; PUSH nat 5 ; FAILWITH }
122
                             { DIG 3 ;
123
                               DUP ;
124
                               DUG 4 ;
125
                               CDR ;
126
                               CDR ;
127
                               CDR ;
128
                               DIG 2 ;
129
                               DUP ;
130
                               DUG 3 ;
131
                               DIG 5 ;
132
                               DUP ;
133
                               DUG 6 ;
134
                               CDR ;
135
                               CDR ;
136
                               CAR ;
137
                               ADD ;
138
                               PAIR ;
139
                               DIG 4 ;
140
                               DUP ;
141
                               DUG 5 ;
142
                               CDR ;
143
                               CAR ;
144
                               PAIR ;
145
                               DIG 4 ;
146
                               DUP ;
147
                               DUG 5 ;
148
                               CAR ;
149
                               PAIR ;
150
                               CDR ;
151
                               SWAP ;
152
                               DUP ;
153
                               DUG 2 ;
154
                               DIG 5 ;
155
                               DUP ;
156
                               DUG 6 ;
157
                               CAR ;
158
                               ADD ;
159
                               PAIR ;
160
                               DUP ;
161
                               CDR ;
162
                               CDR ;
163
                               AMOUNT ;
164
                               DIG 6 ;
165
                               CDR ;
166
                               CAR ;
167
                               ADD ;
168
                               PAIR ;
169
                               SWAP ;
170
                               CAR ;
171
                               PAIR ;
172
                               SWAP ;
173
                               SELF ;
174
                               ADDRESS ;
175
                               PAIR ;
176
                               SENDER ;
177
                               PAIR ;
178
                               SWAP ;
179
                               DUP ;
180
                               DUG 2 ;
181
                               SWAP ;
182
                               DUP ;
183
                               CDR ;
184
                               SWAP ;
185
                               CAR ;
186
                               SWAP ;
187
                               DUP ;
188
                               CDR ;
189
                               SWAP ;
190
                               CAR ;
191
                               DIG 3 ;
192
                               CDR ;
193
                               CDR ;
194
                               CDR ;
195
                               CAR ;
196
                               CONTRACT %transfer (pair address (pair address nat)) ;
197
                               IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
198
                               PUSH mutez 0 ;
199
                               DIG 3 ;
200
                               DIG 3 ;
201
                               PAIR ;
202
                               DIG 3 ;
203
                               PAIR ;
204
                               TRANSFER_TOKENS ;
205
                               DIG 2 ;
206
                               INT ;
207
                               DIG 3 ;
208
                               PAIR ;
209
                               DIG 2 ;
210
                               DUP ;
211
                               DUG 3 ;
212
                               SWAP ;
213
                               DUP ;
214
                               CDR ;
215
                               SWAP ;
216
                               CAR ;
217
                               DIG 2 ;
218
                               CDR ;
219
                               CDR ;
220
                               CDR ;
221
                               CDR ;
222
                               CONTRACT %mintOrBurn (pair (int %quantity)
223
                                                          (address %target)) ;
224
                               IF_NONE { PUSH nat 12 ; FAILWITH } {} ;
225
                               PUSH mutez 0 ;
226
                               DIG 2 ;
227
                               DIG 3 ;
228
                               PAIR ;
229
                               TRANSFER_TOKENS ;
230
                               DIG 2 ;
231
                               NIL operation ;
232
                               DIG 2 ;
233
                               CONS ;
234
                               DIG 2 ;
235
                               CONS ;
236
                               PAIR } } } }
237
                 { DROP ;
238
                   DUP ;
239
                   CDR ;
240
                   CDR ;
241
                   AMOUNT ;
242
                   DIG 2 ;
243
                   DUP ;
244
                   DUG 3 ;
245
                   CDR ;
246
                   CAR ;
247
                   ADD ;
248
                   PAIR ;
249
                   SWAP ;
250
                   CAR ;
251
                   PAIR ;
252
                   NIL operation ;
253
                   PAIR } }
254
             { IF_LEFT
255
                 { DUP ;
256
                   CDR ;
257
                   SWAP ;
258
                   CAR ;
259
                   SWAP ;
260
                   DUP ;
261
                   CDR ;
262
                   SWAP ;
263
                   CAR ;
264
                   SWAP ;
265
                   DUP ;
266
                   CDR ;
267
                   SWAP ;
268
                   CAR ;
269
                   SWAP ;
270
                   DUP ;
271
                   CDR ;
272
                   SWAP ;
273
                   CAR ;
274
                   SWAP ;
275
                   NOW ;
276
                   COMPARE ;
277
                   GE ;
278
                   IF
279
                     { DROP 5 ; PUSH nat 3 ; FAILWITH }
280
                     { PUSH mutez 0 ;
281
                       AMOUNT ;
282
                       COMPARE ;
283
                       GT ;
284
                       IF
285
                         { DROP 5 ; PUSH nat 10 ; FAILWITH }
286
                         { DIG 4 ;
287
                           DUP ;
288
                           DUG 5 ;
289
                           CDR ;
290
                           CDR ;
291
                           CAR ;
292
                           PUSH mutez 1 ;
293
                           DIG 6 ;
294
                           DUP ;
295
                           DUG 7 ;
296
                           CDR ;
297
                           CAR ;
298
                           EDIV ;
299
                           IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
300
                           CAR ;
301
                           DIG 4 ;
302
                           DUP ;
303
                           DUG 5 ;
304
                           MUL ;
305
                           EDIV ;
306
                           IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
307
                           CAR ;
308
                           PUSH mutez 1 ;
309
                           SWAP ;
310
                           MUL ;
311
                           DIG 5 ;
312
                           DUP ;
313
                           DUG 6 ;
314
                           CDR ;
315
                           CDR ;
316
                           CAR ;
317
                           DIG 6 ;
318
                           DUP ;
319
                           DUG 7 ;
320
                           CAR ;
321
                           DIG 5 ;
322
                           DUP ;
323
                           DUG 6 ;
324
                           MUL ;
325
                           EDIV ;
326
                           IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
327
                           CAR ;
328
                           DIG 3 ;
329
                           DIG 2 ;
330
                           DUP ;
331
                           DUG 3 ;
332
                           COMPARE ;
333
                           LT ;
334
                           IF
335
                             { DROP 6 ; PUSH nat 11 ; FAILWITH }
336
                             { DIG 2 ;
337
                               SWAP ;
338
                               DUP ;
339
                               DUG 2 ;
340
                               COMPARE ;
341
                               LT ;
342
                               IF
343
                                 { DROP 5 ; PUSH nat 13 ; FAILWITH }
344
                                 { DIG 2 ;
345
                                   DUP ;
346
                                   DUG 3 ;
347
                                   DIG 5 ;
348
                                   DUP ;
349
                                   DUG 6 ;
350
                                   CDR ;
351
                                   CDR ;
352
                                   CAR ;
353
                                   SUB ;
354
                                   ISNAT ;
355
                                   IF_NONE { PUSH nat 14 ; FAILWITH } {} ;
356
                                   SWAP ;
357
                                   DUP ;
358
                                   DUG 2 ;
359
                                   DIG 6 ;
360
                                   DUP ;
361
                                   DUG 7 ;
362
                                   CAR ;
363
                                   SUB ;
364
                                   ISNAT ;
365
                                   IF_NONE { PUSH nat 15 ; FAILWITH } {} ;
366
                                   DIG 4 ;
367
                                   PUSH int 0 ;
368
                                   SUB ;
369
                                   SENDER ;
370
                                   PAIR ;
371
                                   DIG 6 ;
372
                                   DUP ;
373
                                   DUG 7 ;
374
                                   SWAP ;
375
                                   DUP ;
376
                                   CDR ;
377
                                   SWAP ;
378
                                   CAR ;
379
                                   DIG 2 ;
380
                                   CDR ;
381
                                   CDR ;
382
                                   CDR ;
383
                                   CDR ;
384
                                   CONTRACT %mintOrBurn (pair (int %quantity)
385
                                                              (address %target)) ;
386
                                   IF_NONE { PUSH nat 12 ; FAILWITH } {} ;
387
                                   PUSH mutez 0 ;
388
                                   DIG 2 ;
389
                                   DIG 3 ;
390
                                   PAIR ;
391
                                   TRANSFER_TOKENS ;
392
                                   DIG 3 ;
393
                                   DIG 5 ;
394
                                   DUP ;
395
                                   DUG 6 ;
396
                                   PAIR ;
397
                                   SELF ;
398
                                   ADDRESS ;
399
                                   PAIR ;
400
                                   DIG 6 ;
401
                                   DUP ;
402
                                   DUG 7 ;
403
                                   SWAP ;
404
                                   DUP ;
405
                                   CDR ;
406
                                   SWAP ;
407
                                   CAR ;
408
                                   SWAP ;
409
                                   DUP ;
410
                                   CDR ;
411
                                   SWAP ;
412
                                   CAR ;
413
                                   DIG 3 ;
414
                                   CDR ;
415
                                   CDR ;
416
                                   CDR ;
417
                                   CAR ;
418
                                   CONTRACT %transfer (pair address (pair address nat)) ;
419
                                   IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
420
                                   PUSH mutez 0 ;
421
                                   DIG 3 ;
422
                                   DIG 3 ;
423
                                   PAIR ;
424
                                   DIG 3 ;
425
                                   PAIR ;
426
                                   TRANSFER_TOKENS ;
427
                                   DIG 4 ;
428
                                   DUP ;
429
                                   DUG 5 ;
430
                                   DIG 6 ;
431
                                   CONTRACT unit ;
432
                                   IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
433
                                   SWAP ;
434
                                   PUSH unit Unit ;
435
                                   TRANSFER_TOKENS ;
436
                                   DIG 6 ;
437
                                   DUP ;
438
                                   DUG 7 ;
439
                                   CDR ;
440
                                   CDR ;
441
                                   DIG 6 ;
442
                                   DIG 7 ;
443
                                   DUP ;
444
                                   DUG 8 ;
445
                                   CDR ;
446
                                   CAR ;
447
                                   SUB ;
448
                                   PAIR ;
449
                                   DIG 6 ;
450
                                   CAR ;
451
                                   PAIR ;
452
                                   DUP ;
453
                                   CDR ;
454
                                   CDR ;
455
                                   CDR ;
456
                                   DIG 6 ;
457
                                   PAIR ;
458
                                   SWAP ;
459
                                   DUP ;
460
                                   DUG 2 ;
461
                                   CDR ;
462
                                   CAR ;
463
                                   PAIR ;
464
                                   SWAP ;
465
                                   CAR ;
466
                                   PAIR ;
467
                                   CDR ;
468
                                   DIG 4 ;
469
                                   PAIR ;
470
                                   NIL operation ;
471
                                   DIG 2 ;
472
                                   CONS ;
473
                                   DIG 2 ;
474
                                   CONS ;
475
                                   DIG 2 ;
476
                                   CONS ;
477
                                   PAIR } } } } }
478
                 { DUP ;
479
                   CDR ;
480
                   SWAP ;
481
                   CAR ;
482
                   SWAP ;
483
                   DUP ;
484
                   CDR ;
485
                   SWAP ;
486
                   CAR ;
487
                   SWAP ;
488
                   DUP ;
489
                   CDR ;
490
                   SWAP ;
491
                   CAR ;
492
                   SWAP ;
493
                   DUP ;
494
                   CDR ;
495
                   SWAP ;
496
                   CAR ;
497
                   DIG 4 ;
498
                   CONTRACT %xtzToToken (pair (address %to)
499
                                              (pair (nat %minTokensBought)
500
                                                    (timestamp %deadline))) ;
501
                   IF_NONE { PUSH nat 31 ; FAILWITH } {} ;
502
                   PUSH mutez 0 ;
503
                   AMOUNT ;
504
                   COMPARE ;
505
                   GT ;
506
                   IF
507
                     { DROP 6 ; PUSH nat 10 ; FAILWITH }
508
                     { DIG 2 ;
509
                       DUP ;
510
                       DUG 3 ;
511
                       NOW ;
512
                       COMPARE ;
513
                       GE ;
514
                       IF
515
                         { DROP 6 ; PUSH nat 3 ; FAILWITH }
516
                         { PUSH nat 999 ;
517
                           DIG 2 ;
518
                           DUP ;
519
                           DUG 3 ;
520
                           MUL ;
521
                           PUSH nat 1000 ;
522
                           DIG 7 ;
523
                           DUP ;
524
                           DUG 8 ;
525
                           CAR ;
526
                           MUL ;
527
                           ADD ;
528
                           DIG 6 ;
529
                           DUP ;
530
                           DUG 7 ;
531
                           CDR ;
532
                           CAR ;
533
                           PUSH nat 999 ;
534
                           DIG 4 ;
535
                           DUP ;
536
                           DUG 5 ;
537
                           MUL ;
538
                           MUL ;
539
                           EDIV ;
540
                           IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
541
                           CAR ;
542
                           PUSH nat 1000 ;
543
                           PUSH nat 999 ;
544
                           DIG 2 ;
545
                           DUP ;
546
                           DUG 3 ;
547
                           MUL ;
548
                           EDIV ;
549
                           IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
550
                           CAR ;
551
                           DIG 7 ;
552
                           DUP ;
553
                           DUG 8 ;
554
                           CDR ;
555
                           DIG 4 ;
556
                           DUP ;
557
                           DUG 5 ;
558
                           DIG 9 ;
559
                           DUP ;
560
                           DUG 10 ;
561
                           CAR ;
562
                           ADD ;
563
                           PAIR ;
564
                           DUP ;
565
                           CDR ;
566
                           CDR ;
567
                           DIG 3 ;
568
                           DUP ;
569
                           DUG 4 ;
570
                           DIG 10 ;
571
                           CDR ;
572
                           CAR ;
573
                           SUB ;
574
                           PAIR ;
575
                           SWAP ;
576
                           CAR ;
577
                           PAIR ;
578
                           DIG 4 ;
579
                           SELF ;
580
                           ADDRESS ;
581
                           PAIR ;
582
                           SENDER ;
583
                           PAIR ;
584
                           SWAP ;
585
                           DUP ;
586
                           DUG 2 ;
587
                           SWAP ;
588
                           DUP ;
589
                           CDR ;
590
                           SWAP ;
591
                           CAR ;
592
                           SWAP ;
593
                           DUP ;
594
                           CDR ;
595
                           SWAP ;
596
                           CAR ;
597
                           DIG 3 ;
598
                           CDR ;
599
                           CDR ;
600
                           CDR ;
601
                           CAR ;
602
                           CONTRACT %transfer (pair address (pair address nat)) ;
603
                           IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
604
                           PUSH mutez 0 ;
605
                           DIG 3 ;
606
                           DIG 3 ;
607
                           PAIR ;
608
                           DIG 3 ;
609
                           PAIR ;
610
                           TRANSFER_TOKENS ;
611
                           DIG 4 ;
612
                           DIG 3 ;
613
                           DUP ;
614
                           DUG 4 ;
615
                           DIG 6 ;
616
                           DIG 8 ;
617
                           PAIR ;
618
                           DIG 7 ;
619
                           PAIR ;
620
                           TRANSFER_TOKENS ;
621
                           DIG 3 ;
622
                           DIG 4 ;
623
                           SUB ;
624
                           PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ;
625
                           CONTRACT unit ;
626
                           IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
627
                           SWAP ;
628
                           PUSH unit Unit ;
629
                           TRANSFER_TOKENS ;
630
                           DIG 3 ;
631
                           NIL operation ;
632
                           DIG 2 ;
633
                           CONS ;
634
                           DIG 2 ;
635
                           CONS ;
636
                           DIG 2 ;
637
                           CONS ;
638
                           PAIR } } } } }
639
         { IF_LEFT
640
             { DUP ;
641
               CDR ;
642
               SWAP ;
643
               CAR ;
644
               SWAP ;
645
               DUP ;
646
               CDR ;
647
               SWAP ;
648
               CAR ;
649
               SWAP ;
650
               DUP ;
651
               CDR ;
652
               SWAP ;
653
               CAR ;
654
               SWAP ;
655
               NOW ;
656
               COMPARE ;
657
               GE ;
658
               IF
659
                 { DROP 4 ; PUSH nat 3 ; FAILWITH }
660
                 { PUSH mutez 0 ;
661
                   AMOUNT ;
662
                   COMPARE ;
663
                   GT ;
664
                   IF
665
                     { DROP 4 ; PUSH nat 10 ; FAILWITH }
666
                     { PUSH nat 999 ;
667
                       DIG 2 ;
668
                       DUP ;
669
                       DUG 3 ;
670
                       MUL ;
671
                       PUSH nat 1000 ;
672
                       DIG 5 ;
673
                       DUP ;
674
                       DUG 6 ;
675
                       CAR ;
676
                       MUL ;
677
                       ADD ;
678
                       PUSH mutez 1 ;
679
                       DIG 5 ;
680
                       DUP ;
681
                       DUG 6 ;
682
                       CDR ;
683
                       CAR ;
684
                       EDIV ;
685
                       IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
686
                       CAR ;
687
                       PUSH nat 999 ;
688
                       DIG 4 ;
689
                       DUP ;
690
                       DUG 5 ;
691
                       MUL ;
692
                       MUL ;
693
                       EDIV ;
694
                       IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
695
                       CAR ;
696
                       PUSH mutez 1 ;
697
                       SWAP ;
698
                       MUL ;
699
                       PUSH nat 1000 ;
700
                       PUSH nat 999 ;
701
                       DIG 2 ;
702
                       DUP ;
703
                       DUG 3 ;
704
                       MUL ;
705
                       EDIV ;
706
                       IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
707
                       CAR ;
708
                       DIG 2 ;
709
                       SWAP ;
710
                       DUP ;
711
                       DUG 2 ;
712
                       COMPARE ;
713
                       LT ;
714
                       IF { DROP ; PUSH nat 8 ; FAILWITH } {} ;
715
                       DIG 2 ;
716
                       DUP ;
717
                       DUG 3 ;
718
                       SELF ;
719
                       ADDRESS ;
720
                       PAIR ;
721
                       SENDER ;
722
                       PAIR ;
723
                       DIG 5 ;
724
                       DUP ;
725
                       DUG 6 ;
726
                       SWAP ;
727
                       DUP ;
728
                       CDR ;
729
                       SWAP ;
730
                       CAR ;
731
                       SWAP ;
732
                       DUP ;
733
                       CDR ;
734
                       SWAP ;
735
                       CAR ;
736
                       DIG 3 ;
737
                       CDR ;
738
                       CDR ;
739
                       CDR ;
740
                       CAR ;
741
                       CONTRACT %transfer (pair address (pair address nat)) ;
742
                       IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
743
                       PUSH mutez 0 ;
744
                       DIG 3 ;
745
                       DIG 3 ;
746
                       PAIR ;
747
                       DIG 3 ;
748
                       PAIR ;
749
                       TRANSFER_TOKENS ;
750
                       SWAP ;
751
                       DUP ;
752
                       DUG 2 ;
753
                       DIG 5 ;
754
                       CONTRACT unit ;
755
                       IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
756
                       SWAP ;
757
                       PUSH unit Unit ;
758
                       TRANSFER_TOKENS ;
759
                       DIG 5 ;
760
                       DUP ;
761
                       DUG 6 ;
762
                       CDR ;
763
                       DIG 5 ;
764
                       DIG 6 ;
765
                       DUP ;
766
                       DUG 7 ;
767
                       CAR ;
768
                       ADD ;
769
                       PAIR ;
770
                       DUP ;
771
                       CDR ;
772
                       CDR ;
773
                       DIG 5 ;
774
                       DUP ;
775
                       DUG 6 ;
776
                       DIG 7 ;
777
                       CDR ;
778
                       CAR ;
779
                       SUB ;
780
                       PAIR ;
781
                       SWAP ;
782
                       CAR ;
783
                       PAIR ;
784
                       DIG 3 ;
785
                       DIG 4 ;
786
                       SUB ;
787
                       PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ;
788
                       CONTRACT unit ;
789
                       IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
790
                       SWAP ;
791
                       PUSH unit Unit ;
792
                       TRANSFER_TOKENS ;
793
                       SWAP ;
794
                       NIL operation ;
795
                       DIG 2 ;
796
                       CONS ;
797
                       DIG 2 ;
798
                       CONS ;
799
                       DIG 2 ;
800
                       CONS ;
801
                       PAIR } } }
802
             { DUP ;
803
               CDR ;
804
               SWAP ;
805
               CAR ;
806
               SWAP ;
807
               DUP ;
808
               CDR ;
809
               SWAP ;
810
               CAR ;
811
               SWAP ;
812
               NOW ;
813
               COMPARE ;
814
               GE ;
815
               IF
816
                 { DROP 3 ; PUSH nat 3 ; FAILWITH }
817
                 { PUSH mutez 1 ;
818
                   DIG 3 ;
819
                   DUP ;
820
                   DUG 4 ;
821
                   CDR ;
822
                   CAR ;
823
                   EDIV ;
824
                   IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
825
                   CAR ;
826
                   AMOUNT ;
827
                   PUSH mutez 1 ;
828
                   SWAP ;
829
                   EDIV ;
830
                   IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
831
                   CAR ;
832
                   PUSH nat 1000 ;
833
                   PUSH nat 999 ;
834
                   DIG 2 ;
835
                   DUP ;
836
                   DUG 3 ;
837
                   MUL ;
838
                   EDIV ;
839
                   IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
840
                   CAR ;
841
                   DUP ;
842
                   DIG 2 ;
843
                   SUB ;
844
                   ABS ;
845
                   PUSH nat 999 ;
846
                   DIG 2 ;
847
                   DUP ;
848
                   DUG 3 ;
849
                   MUL ;
850
                   PUSH nat 1000 ;
851
                   DIG 4 ;
852
                   MUL ;
853
                   ADD ;
854
                   DIG 5 ;
855
                   DUP ;
856
                   DUG 6 ;
857
                   CAR ;
858
                   PUSH nat 999 ;
859
                   DIG 4 ;
860
                   DUP ;
861
                   DUG 5 ;
862
                   MUL ;
863
                   MUL ;
864
                   EDIV ;
865
                   IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
866
                   CAR ;
867
                   DIG 3 ;
868
                   SWAP ;
869
                   DUP ;
870
                   DUG 2 ;
871
                   COMPARE ;
872
                   LT ;
873
                   IF { DROP ; PUSH nat 18 ; FAILWITH } {} ;
874
                   DUP ;
875
                   DIG 5 ;
876
                   DUP ;
877
                   DUG 6 ;
878
                   CAR ;
879
                   SUB ;
880
                   ISNAT ;
881
                   IF_NONE { PUSH nat 19 ; FAILWITH } {} ;
882
                   DIG 5 ;
883
                   DUP ;
884
                   DUG 6 ;
885
                   CDR ;
886
                   CDR ;
887
                   PUSH mutez 1 ;
888
                   DIG 5 ;
889
                   MUL ;
890
                   DIG 6 ;
891
                   DUP ;
892
                   DUG 7 ;
893
                   CDR ;
894
                   CAR ;
895
                   ADD ;
896
                   PAIR ;
897
                   DIG 5 ;
898
                   CAR ;
899
                   PAIR ;
900
                   CDR ;
901
                   SWAP ;
902
                   PAIR ;
903
                   SWAP ;
904
                   DIG 3 ;
905
                   PAIR ;
906
                   SELF ;
907
                   ADDRESS ;
908
                   PAIR ;
909
                   SWAP ;
910
                   DUP ;
911
                   DUG 2 ;
912
                   SWAP ;
913
                   DUP ;
914
                   CDR ;
915
                   SWAP ;
916
                   CAR ;
917
                   SWAP ;
918
                   DUP ;
919
                   CDR ;
920
                   SWAP ;
921
                   CAR ;
922
                   DIG 3 ;
923
                   CDR ;
924
                   CDR ;
925
                   CDR ;
926
                   CAR ;
927
                   CONTRACT %transfer (pair address (pair address nat)) ;
928
                   IF_NONE { PUSH nat 0 ; FAILWITH } {} ;
929
                   PUSH mutez 0 ;
930
                   DIG 3 ;
931
                   DIG 3 ;
932
                   PAIR ;
933
                   DIG 3 ;
934
                   PAIR ;
935
                   TRANSFER_TOKENS ;
936
                   PUSH mutez 1 ;
937
                   DIG 3 ;
938
                   MUL ;
939
                   PUSH address "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" ;
940
                   CONTRACT unit ;
941
                   IF_NONE { PUSH nat 9 ; FAILWITH } {} ;
942
                   SWAP ;
943
                   PUSH unit Unit ;
944
                   TRANSFER_TOKENS ;
945
                   DIG 2 ;
946
                   NIL operation ;
947
                   DIG 2 ;
948
                   CONS ;
949
                   DIG 2 ;
950
                   CONS ;
951
                   PAIR } } } }