BCD

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