BCD

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