BCD

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