BCD

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