BCD

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