BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Plenty AMM Admin
operations (132)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
990
1871
 
1
parameter (or
2
            (or
3
              (or (address %AddAccount)
4
                  (or (address %ChangeAdmin)
5
                      (pair %ChangeExchangeFee (address %exchangeAddress)
6
                                               (pair (nat %lpFee) (nat %systemFee)))))
7
              (or (address %RemoveAccount)
8
                  (or (unit %ResetVoting) (address %WithdrawExchangeFee))))
9
            (or
10
              (or
11
                (pair %changeExchangeAdmin (address %exchangeAddress)
12
                                           (address %newExchangeAdmin))
13
                (or
14
                  (pair %changeExchangeMaxSwap (nat %SwapLimit)
15
                                               (address %exchangeAddress))
16
                  (address %changeExchangeState)))
17
              (or (address %changeVaultAddress)
18
                  (or (unit %executeChangeAdmin) (unit %executeChangeExchangeAdmin)))));
19
storage (pair
20
          (pair (pair (set %Accounts address) (nat %Operation))
21
                (pair (nat %SwapLimit)
22
                      (pair (map %Votes address bool) (address %adminAddress))))
23
          (pair (pair (option %exchangeAddress address) (nat %lpFee))
24
                (pair (nat %systemFee)
25
                      (pair (option %tempAddress address) (address %vaultContract)))));
26
code { LAMBDA
27
         (pair unit
28
               (pair
29
                 (pair (pair (set address) nat)
30
                       (pair nat (pair (map address bool) address)))
31
                 (pair (pair (option address) nat)
32
                       (pair nat (pair (option address) address)))))
33
         (pair (list operation)
34
               (pair bool
35
                     (pair
36
                       (pair (pair (set address) nat)
37
                             (pair nat (pair (map address bool) address)))
38
                       (pair (pair (option address) nat)
39
                             (pair nat (pair (option address) address))))))
40
         { NIL operation ;
41
           SWAP ;
42
           CDR ;
43
           DUP ;
44
           CAR ;
45
           CAR ;
46
           CAR ;
47
           NIL address ;
48
           SWAP ;
49
           ITER { CONS } ;
50
           NIL address ;
51
           SWAP ;
52
           ITER { CONS } ;
53
           SIZE ;
54
           NIL address ;
55
           DUP 3 ;
56
           CAR ;
57
           GET 5 ;
58
           ITER { CAR ; CONS } ;
59
           NIL address ;
60
           SWAP ;
61
           ITER { CONS } ;
62
           SIZE ;
63
           COMPARE ;
64
           EQ ;
65
           IF { PUSH bool True } { PUSH bool False } ;
66
           DIG 2 ;
67
           PAIR 3 } ;
68
       SWAP ;
69
       UNPAIR ;
70
       IF_LEFT
71
         { IF_LEFT
72
             { IF_LEFT
73
                 { SWAP ;
74
                   DUP ;
75
                   DUG 2 ;
76
                   CAR ;
77
                   CAR ;
78
                   CAR ;
79
                   SENDER ;
80
                   MEM ;
81
                   IF {} { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
82
                   PUSH nat 0 ;
83
                   DUP 3 ;
84
                   CAR ;
85
                   CAR ;
86
                   CDR ;
87
                   COMPARE ;
88
                   EQ ;
89
                   IF
90
                     { SWAP ;
91
                       UNPAIR ;
92
                       UNPAIR ;
93
                       CAR ;
94
                       PUSH nat 7 ;
95
                       SWAP ;
96
                       PAIR ;
97
                       PAIR ;
98
                       PAIR ;
99
                       SWAP ;
100
                       SOME ;
101
                       UPDATE 7 ;
102
                       UNPAIR ;
103
                       UNPAIR ;
104
                       SWAP ;
105
                       UNPAIR ;
106
                       SWAP ;
107
                       UNPAIR ;
108
                       PUSH (option bool) (Some True) ;
109
                       SENDER ;
110
                       UPDATE ;
111
                       PAIR ;
112
                       SWAP ;
113
                       PAIR ;
114
                       SWAP ;
115
                       PAIR ;
116
                       PAIR }
117
                     { PUSH nat 7 ;
118
                       DUP 3 ;
119
                       CAR ;
120
                       CAR ;
121
                       CDR ;
122
                       COMPARE ;
123
                       EQ ;
124
                       IF
125
                         {}
126
                         { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
127
                       SWAP ;
128
                       DUP ;
129
                       DUG 2 ;
130
                       CAR ;
131
                       GET 5 ;
132
                       SENDER ;
133
                       MEM ;
134
                       IF
135
                         { DROP }
136
                         { SWAP ;
137
                           DUP ;
138
                           DUG 2 ;
139
                           GET 7 ;
140
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
141
                           COMPARE ;
142
                           EQ ;
143
                           IF
144
                             { UNPAIR ;
145
                               UNPAIR ;
146
                               SWAP ;
147
                               UNPAIR ;
148
                               SWAP ;
149
                               UNPAIR ;
150
                               PUSH (option bool) (Some True) ;
151
                               SENDER ;
152
                               UPDATE ;
153
                               PAIR ;
154
                               SWAP ;
155
                               PAIR ;
156
                               SWAP ;
157
                               PAIR ;
158
                               PAIR }
159
                             { UNPAIR ;
160
                               SWAP ;
161
                               UNPAIR ;
162
                               CDR ;
163
                               NONE address ;
164
                               PAIR ;
165
                               PAIR ;
166
                               SWAP ;
167
                               PAIR ;
168
                               NONE address ;
169
                               UPDATE 7 ;
170
                               UNPAIR ;
171
                               UNPAIR ;
172
                               CAR ;
173
                               PUSH nat 0 ;
174
                               SWAP ;
175
                               PAIR ;
176
                               PAIR ;
177
                               PAIR ;
178
                               PUSH nat 0 ;
179
                               UPDATE 5 ;
180
                               UNPAIR ;
181
                               SWAP ;
182
                               UNPAIR ;
183
                               CAR ;
184
                               PUSH nat 0 ;
185
                               SWAP ;
186
                               PAIR ;
187
                               PAIR ;
188
                               SWAP ;
189
                               UNPAIR ;
190
                               SWAP ;
191
                               CDR ;
192
                               PUSH nat 0 ;
193
                               SWAP ;
194
                               CDR ;
195
                               EMPTY_MAP address bool ;
196
                               PAIR ;
197
                               SWAP ;
198
                               PAIR ;
199
                               SWAP ;
200
                               PAIR ;
201
                               PAIR } } } ;
202
                   UNIT ;
203
                   PAIR ;
204
                   EXEC ;
205
                   DUP ;
206
                   GET 4 ;
207
                   SWAP ;
208
                   DUP ;
209
                   CAR ;
210
                   SWAP ;
211
                   GET 3 ;
212
                   IF
213
                     { SWAP ;
214
                       DUP ;
215
                       DUG 2 ;
216
                       UNPAIR ;
217
                       UNPAIR ;
218
                       UNPAIR ;
219
                       PUSH bool True ;
220
                       DIG 6 ;
221
                       GET 7 ;
222
                       IF_NONE { PUSH int 421 ; FAILWITH } {} ;
223
                       UPDATE ;
224
                       PAIR ;
225
                       PAIR ;
226
                       SWAP ;
227
                       UNPAIR ;
228
                       CDR ;
229
                       NONE address ;
230
                       PAIR ;
231
                       PAIR ;
232
                       SWAP ;
233
                       PAIR ;
234
                       NONE address ;
235
                       UPDATE 7 ;
236
                       UNPAIR ;
237
                       UNPAIR ;
238
                       CAR ;
239
                       PUSH nat 0 ;
240
                       SWAP ;
241
                       PAIR ;
242
                       PAIR ;
243
                       PAIR ;
244
                       PUSH nat 0 ;
245
                       UPDATE 5 ;
246
                       UNPAIR ;
247
                       SWAP ;
248
                       UNPAIR ;
249
                       CAR ;
250
                       PUSH nat 0 ;
251
                       SWAP ;
252
                       PAIR ;
253
                       PAIR ;
254
                       SWAP ;
255
                       UNPAIR ;
256
                       SWAP ;
257
                       CDR ;
258
                       PUSH nat 0 ;
259
                       SWAP ;
260
                       CDR ;
261
                       EMPTY_MAP address bool ;
262
                       PAIR ;
263
                       SWAP ;
264
                       PAIR ;
265
                       SWAP ;
266
                       PAIR ;
267
                       PAIR ;
268
                       SWAP }
269
                     {} }
270
                 { IF_LEFT
271
                     { DIG 2 ;
272
                       DROP ;
273
                       SWAP ;
274
                       DUP ;
275
                       DUG 2 ;
276
                       CAR ;
277
                       CAR ;
278
                       CAR ;
279
                       SENDER ;
280
                       MEM ;
281
                       IF
282
                         {}
283
                         { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
284
                       PUSH nat 0 ;
285
                       DUP 3 ;
286
                       CAR ;
287
                       CAR ;
288
                       CDR ;
289
                       COMPARE ;
290
                       EQ ;
291
                       IF
292
                         { SWAP ;
293
                           UNPAIR ;
294
                           UNPAIR ;
295
                           CAR ;
296
                           PUSH nat 6 ;
297
                           SWAP ;
298
                           PAIR ;
299
                           PAIR ;
300
                           PAIR ;
301
                           SWAP ;
302
                           SOME ;
303
                           UPDATE 7 ;
304
                           UNPAIR ;
305
                           UNPAIR ;
306
                           SWAP ;
307
                           UNPAIR ;
308
                           SWAP ;
309
                           UNPAIR ;
310
                           PUSH (option bool) (Some True) ;
311
                           SENDER ;
312
                           UPDATE ;
313
                           PAIR ;
314
                           SWAP ;
315
                           PAIR ;
316
                           SWAP ;
317
                           PAIR ;
318
                           PAIR }
319
                         { PUSH nat 6 ;
320
                           DUP 3 ;
321
                           CAR ;
322
                           CAR ;
323
                           CDR ;
324
                           COMPARE ;
325
                           EQ ;
326
                           IF
327
                             {}
328
                             { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
329
                           SWAP ;
330
                           DUP ;
331
                           DUG 2 ;
332
                           CAR ;
333
                           GET 5 ;
334
                           SENDER ;
335
                           MEM ;
336
                           IF
337
                             { DROP }
338
                             { SWAP ;
339
                               DUP ;
340
                               DUG 2 ;
341
                               GET 7 ;
342
                               IF_NONE { PUSH int 421 ; FAILWITH } {} ;
343
                               COMPARE ;
344
                               EQ ;
345
                               IF
346
                                 { UNPAIR ;
347
                                   UNPAIR ;
348
                                   SWAP ;
349
                                   UNPAIR ;
350
                                   SWAP ;
351
                                   UNPAIR ;
352
                                   PUSH (option bool) (Some True) ;
353
                                   SENDER ;
354
                                   UPDATE ;
355
                                   PAIR ;
356
                                   SWAP ;
357
                                   PAIR ;
358
                                   SWAP ;
359
                                   PAIR ;
360
                                   PAIR }
361
                                 {} } } ;
362
                       NIL operation }
363
                     { SWAP ;
364
                       DUP ;
365
                       DUG 2 ;
366
                       CAR ;
367
                       CAR ;
368
                       CAR ;
369
                       SENDER ;
370
                       MEM ;
371
                       IF
372
                         {}
373
                         { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
374
                       PUSH nat 0 ;
375
                       DUP 3 ;
376
                       CAR ;
377
                       CAR ;
378
                       CDR ;
379
                       COMPARE ;
380
                       EQ ;
381
                       IF
382
                         { SWAP ;
383
                           UNPAIR ;
384
                           UNPAIR ;
385
                           CAR ;
386
                           PUSH nat 2 ;
387
                           SWAP ;
388
                           PAIR ;
389
                           PAIR ;
390
                           SWAP ;
391
                           CDR ;
392
                           DUP 3 ;
393
                           CAR ;
394
                           SOME ;
395
                           DUP 4 ;
396
                           GET 3 ;
397
                           SWAP ;
398
                           PAIR ;
399
                           PAIR ;
400
                           SWAP ;
401
                           PAIR ;
402
                           SWAP ;
403
                           GET 4 ;
404
                           UPDATE 5 ;
405
                           UNPAIR ;
406
                           UNPAIR ;
407
                           SWAP ;
408
                           UNPAIR ;
409
                           SWAP ;
410
                           UNPAIR ;
411
                           PUSH (option bool) (Some True) ;
412
                           SENDER ;
413
                           UPDATE ;
414
                           PAIR ;
415
                           SWAP ;
416
                           PAIR ;
417
                           SWAP ;
418
                           PAIR ;
419
                           PAIR }
420
                         { PUSH nat 2 ;
421
                           DUP 3 ;
422
                           CAR ;
423
                           CAR ;
424
                           CDR ;
425
                           COMPARE ;
426
                           EQ ;
427
                           IF
428
                             {}
429
                             { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
430
                           SWAP ;
431
                           DUP ;
432
                           DUG 2 ;
433
                           CAR ;
434
                           GET 5 ;
435
                           SENDER ;
436
                           MEM ;
437
                           IF
438
                             { DROP }
439
                             { DUP ;
440
                               GET 3 ;
441
                               DUP 3 ;
442
                               GET 3 ;
443
                               CDR ;
444
                               COMPARE ;
445
                               EQ ;
446
                               IF
447
                                 { DUP ; GET 4 ; DUP 3 ; GET 5 ; COMPARE ; EQ }
448
                                 { PUSH bool False } ;
449
                               IF
450
                                 { SWAP ;
451
                                   DUP ;
452
                                   DUG 2 ;
453
                                   GET 3 ;
454
                                   CAR ;
455
                                   IF_NONE { PUSH int 169 ; FAILWITH } {} ;
456
                                   SWAP ;
457
                                   CAR ;
458
                                   COMPARE ;
459
                                   EQ }
460
                                 { DROP ; PUSH bool False } ;
461
                               IF
462
                                 { UNPAIR ;
463
                                   UNPAIR ;
464
                                   SWAP ;
465
                                   UNPAIR ;
466
                                   SWAP ;
467
                                   UNPAIR ;
468
                                   PUSH (option bool) (Some True) ;
469
                                   SENDER ;
470
                                   UPDATE ;
471
                                   PAIR ;
472
                                   SWAP ;
473
                                   PAIR ;
474
                                   SWAP ;
475
                                   PAIR ;
476
                                   PAIR }
477
                                 { UNPAIR ;
478
                                   SWAP ;
479
                                   UNPAIR ;
480
                                   CDR ;
481
                                   NONE address ;
482
                                   PAIR ;
483
                                   PAIR ;
484
                                   SWAP ;
485
                                   PAIR ;
486
                                   NONE address ;
487
                                   UPDATE 7 ;
488
                                   UNPAIR ;
489
                                   UNPAIR ;
490
                                   CAR ;
491
                                   PUSH nat 0 ;
492
                                   SWAP ;
493
                                   PAIR ;
494
                                   PAIR ;
495
                                   PAIR ;
496
                                   PUSH nat 0 ;
497
                                   UPDATE 5 ;
498
                                   UNPAIR ;
499
                                   SWAP ;
500
                                   UNPAIR ;
501
                                   CAR ;
502
                                   PUSH nat 0 ;
503
                                   SWAP ;
504
                                   PAIR ;
505
                                   PAIR ;
506
                                   SWAP ;
507
                                   UNPAIR ;
508
                                   SWAP ;
509
                                   CDR ;
510
                                   PUSH nat 0 ;
511
                                   SWAP ;
512
                                   CDR ;
513
                                   EMPTY_MAP address bool ;
514
                                   PAIR ;
515
                                   SWAP ;
516
                                   PAIR ;
517
                                   SWAP ;
518
                                   PAIR ;
519
                                   PAIR } } } ;
520
                       UNIT ;
521
                       PAIR ;
522
                       EXEC ;
523
                       DUP ;
524
                       GET 4 ;
525
                       SWAP ;
526
                       DUP ;
527
                       CAR ;
528
                       SWAP ;
529
                       GET 3 ;
530
                       IF
531
                         { SWAP ;
532
                           DUP ;
533
                           DUG 2 ;
534
                           GET 3 ;
535
                           CAR ;
536
                           IF_NONE { PUSH int 169 ; FAILWITH } {} ;
537
                           CONTRACT %ModifyFee (pair nat nat) ;
538
                           IF_NONE { PUSH int 181 ; FAILWITH } {} ;
539
                           PUSH mutez 0 ;
540
                           DIG 3 ;
541
                           DUP ;
542
                           GET 5 ;
543
                           SWAP ;
544
                           DUP ;
545
                           DUG 5 ;
546
                           GET 3 ;
547
                           CDR ;
548
                           PAIR ;
549
                           TRANSFER_TOKENS ;
550
                           CONS ;
551
                           SWAP ;
552
                           UNPAIR ;
553
                           SWAP ;
554
                           UNPAIR ;
555
                           CDR ;
556
                           NONE address ;
557
                           PAIR ;
558
                           PAIR ;
559
                           SWAP ;
560
                           PAIR ;
561
                           NONE address ;
562
                           UPDATE 7 ;
563
                           UNPAIR ;
564
                           UNPAIR ;
565
                           CAR ;
566
                           PUSH nat 0 ;
567
                           SWAP ;
568
                           PAIR ;
569
                           PAIR ;
570
                           PAIR ;
571
                           PUSH nat 0 ;
572
                           UPDATE 5 ;
573
                           UNPAIR ;
574
                           SWAP ;
575
                           UNPAIR ;
576
                           CAR ;
577
                           PUSH nat 0 ;
578
                           SWAP ;
579
                           PAIR ;
580
                           PAIR ;
581
                           SWAP ;
582
                           UNPAIR ;
583
                           SWAP ;
584
                           CDR ;
585
                           PUSH nat 0 ;
586
                           SWAP ;
587
                           CDR ;
588
                           EMPTY_MAP address bool ;
589
                           PAIR ;
590
                           SWAP ;
591
                           PAIR ;
592
                           SWAP ;
593
                           PAIR ;
594
                           PAIR ;
595
                           SWAP }
596
                         {} } } }
597
             { IF_LEFT
598
                 { DIG 2 ;
599
                   DROP ;
600
                   SWAP ;
601
                   DUP ;
602
                   DUG 2 ;
603
                   CAR ;
604
                   CAR ;
605
                   CAR ;
606
                   SENDER ;
607
                   MEM ;
608
                   IF {} { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
609
                   PUSH nat 0 ;
610
                   DUP 3 ;
611
                   CAR ;
612
                   CAR ;
613
                   CDR ;
614
                   COMPARE ;
615
                   EQ ;
616
                   IF
617
                     { SWAP ;
618
                       UNPAIR ;
619
                       UNPAIR ;
620
                       CAR ;
621
                       PUSH nat 8 ;
622
                       SWAP ;
623
                       PAIR ;
624
                       PAIR ;
625
                       PAIR ;
626
                       SWAP ;
627
                       SOME ;
628
                       UPDATE 7 ;
629
                       UNPAIR ;
630
                       UNPAIR ;
631
                       SWAP ;
632
                       UNPAIR ;
633
                       SWAP ;
634
                       UNPAIR ;
635
                       PUSH (option bool) (Some True) ;
636
                       SENDER ;
637
                       UPDATE ;
638
                       PAIR ;
639
                       SWAP ;
640
                       PAIR ;
641
                       SWAP ;
642
                       PAIR ;
643
                       PAIR }
644
                     { PUSH nat 8 ;
645
                       DUP 3 ;
646
                       CAR ;
647
                       CAR ;
648
                       CDR ;
649
                       COMPARE ;
650
                       EQ ;
651
                       IF
652
                         {}
653
                         { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
654
                       SWAP ;
655
                       DUP ;
656
                       DUG 2 ;
657
                       CAR ;
658
                       GET 5 ;
659
                       SENDER ;
660
                       MEM ;
661
                       IF
662
                         { DROP }
663
                         { SWAP ;
664
                           DUP ;
665
                           DUG 2 ;
666
                           GET 7 ;
667
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
668
                           COMPARE ;
669
                           EQ ;
670
                           IF
671
                             { UNPAIR ;
672
                               UNPAIR ;
673
                               SWAP ;
674
                               UNPAIR ;
675
                               SWAP ;
676
                               UNPAIR ;
677
                               PUSH (option bool) (Some True) ;
678
                               SENDER ;
679
                               UPDATE ;
680
                               PAIR ;
681
                               SWAP ;
682
                               PAIR ;
683
                               SWAP ;
684
                               PAIR ;
685
                               PAIR }
686
                             {} } } ;
687
                   PUSH nat 2 ;
688
                   NIL address ;
689
                   DUP 3 ;
690
                   CAR ;
691
                   CAR ;
692
                   CAR ;
693
                   ITER { CONS } ;
694
                   NIL address ;
695
                   SWAP ;
696
                   ITER { CONS } ;
697
                   SIZE ;
698
                   MUL ;
699
                   PUSH nat 3 ;
700
                   NIL address ;
701
                   DUP 4 ;
702
                   CAR ;
703
                   GET 5 ;
704
                   ITER { CAR ; CONS } ;
705
                   NIL address ;
706
                   SWAP ;
707
                   ITER { CONS } ;
708
                   SIZE ;
709
                   MUL ;
710
                   COMPARE ;
711
                   GE ;
712
                   IF
713
                     { DUP ;
714
                       UNPAIR ;
715
                       UNPAIR ;
716
                       UNPAIR ;
717
                       PUSH bool False ;
718
                       DIG 5 ;
719
                       GET 7 ;
720
                       IF_NONE { PUSH int 421 ; FAILWITH } {} ;
721
                       UPDATE ;
722
                       PAIR ;
723
                       PAIR ;
724
                       SWAP ;
725
                       UNPAIR ;
726
                       CDR ;
727
                       NONE address ;
728
                       PAIR ;
729
                       PAIR ;
730
                       SWAP ;
731
                       PAIR ;
732
                       NONE address ;
733
                       UPDATE 7 ;
734
                       UNPAIR ;
735
                       UNPAIR ;
736
                       CAR ;
737
                       PUSH nat 0 ;
738
                       SWAP ;
739
                       PAIR ;
740
                       PAIR ;
741
                       PAIR ;
742
                       PUSH nat 0 ;
743
                       UPDATE 5 ;
744
                       UNPAIR ;
745
                       SWAP ;
746
                       UNPAIR ;
747
                       CAR ;
748
                       PUSH nat 0 ;
749
                       SWAP ;
750
                       PAIR ;
751
                       PAIR ;
752
                       SWAP ;
753
                       UNPAIR ;
754
                       SWAP ;
755
                       CDR ;
756
                       PUSH nat 0 ;
757
                       SWAP ;
758
                       CDR ;
759
                       EMPTY_MAP address bool ;
760
                       PAIR ;
761
                       SWAP ;
762
                       PAIR ;
763
                       SWAP ;
764
                       PAIR ;
765
                       PAIR }
766
                     {} ;
767
                   NIL operation }
768
                 { IF_LEFT
769
                     { DROP ;
770
                       SWAP ;
771
                       DROP ;
772
                       DUP ;
773
                       CAR ;
774
                       CAR ;
775
                       CAR ;
776
                       SENDER ;
777
                       MEM ;
778
                       IF
779
                         {}
780
                         { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
781
                       DUP ;
782
                       CAR ;
783
                       CAR ;
784
                       CDR ;
785
                       PUSH nat 8 ;
786
                       COMPARE ;
787
                       EQ ;
788
                       IF
789
                         { DUP ;
790
                           GET 7 ;
791
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
792
                           SENDER ;
793
                           COMPARE ;
794
                           NEQ ;
795
                           IF {} { PUSH string "Invalid_Vote" ; FAILWITH } }
796
                         {} ;
797
                       DUP ;
798
                       CAR ;
799
                       CAR ;
800
                       CDR ;
801
                       PUSH nat 6 ;
802
                       COMPARE ;
803
                       EQ ;
804
                       IF
805
                         { DUP ;
806
                           CAR ;
807
                           GET 6 ;
808
                           SENDER ;
809
                           COMPARE ;
810
                           NEQ ;
811
                           IF
812
                             {}
813
                             { PUSH string "Admin cannot Reset changeAdmin Operation" ;
814
                               FAILWITH } }
815
                         {} ;
816
                       UNPAIR ;
817
                       SWAP ;
818
                       UNPAIR ;
819
                       CDR ;
820
                       NONE address ;
821
                       PAIR ;
822
                       PAIR ;
823
                       SWAP ;
824
                       PAIR ;
825
                       NONE address ;
826
                       UPDATE 7 ;
827
                       UNPAIR ;
828
                       UNPAIR ;
829
                       CAR ;
830
                       PUSH nat 0 ;
831
                       SWAP ;
832
                       PAIR ;
833
                       PAIR ;
834
                       PAIR ;
835
                       PUSH nat 0 ;
836
                       UPDATE 5 ;
837
                       UNPAIR ;
838
                       SWAP ;
839
                       UNPAIR ;
840
                       CAR ;
841
                       PUSH nat 0 ;
842
                       SWAP ;
843
                       PAIR ;
844
                       PAIR ;
845
                       SWAP ;
846
                       UNPAIR ;
847
                       SWAP ;
848
                       CDR ;
849
                       PUSH nat 0 ;
850
                       SWAP ;
851
                       CDR ;
852
                       EMPTY_MAP address bool ;
853
                       PAIR ;
854
                       SWAP ;
855
                       PAIR ;
856
                       SWAP ;
857
                       PAIR ;
858
                       PAIR ;
859
                       NIL operation }
860
                     { DIG 2 ;
861
                       DROP ;
862
                       CONTRACT %WithdrawSystemFee address ;
863
                       IF_NONE { PUSH int 488 ; FAILWITH } {} ;
864
                       NIL operation ;
865
                       SWAP ;
866
                       PUSH mutez 0 ;
867
                       DUP 4 ;
868
                       GET 8 ;
869
                       TRANSFER_TOKENS ;
870
                       CONS } } } }
871
         { IF_LEFT
872
             { IF_LEFT
873
                 { DIG 2 ;
874
                   DROP ;
875
                   SWAP ;
876
                   DUP ;
877
                   DUG 2 ;
878
                   CAR ;
879
                   CAR ;
880
                   CAR ;
881
                   SENDER ;
882
                   MEM ;
883
                   IF {} { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
884
                   PUSH nat 0 ;
885
                   DUP 3 ;
886
                   CAR ;
887
                   CAR ;
888
                   CDR ;
889
                   COMPARE ;
890
                   EQ ;
891
                   IF
892
                     { SWAP ;
893
                       UNPAIR ;
894
                       UNPAIR ;
895
                       CAR ;
896
                       PUSH nat 4 ;
897
                       SWAP ;
898
                       PAIR ;
899
                       PAIR ;
900
                       SWAP ;
901
                       UNPAIR ;
902
                       CDR ;
903
                       DUP 4 ;
904
                       CAR ;
905
                       SOME ;
906
                       PAIR ;
907
                       PAIR ;
908
                       SWAP ;
909
                       PAIR ;
910
                       SWAP ;
911
                       CDR ;
912
                       SOME ;
913
                       UPDATE 7 ;
914
                       UNPAIR ;
915
                       UNPAIR ;
916
                       SWAP ;
917
                       UNPAIR ;
918
                       SWAP ;
919
                       UNPAIR ;
920
                       PUSH (option bool) (Some True) ;
921
                       SENDER ;
922
                       UPDATE ;
923
                       PAIR ;
924
                       SWAP ;
925
                       PAIR ;
926
                       SWAP ;
927
                       PAIR ;
928
                       PAIR }
929
                     { PUSH nat 4 ;
930
                       DUP 3 ;
931
                       CAR ;
932
                       CAR ;
933
                       CDR ;
934
                       COMPARE ;
935
                       EQ ;
936
                       IF
937
                         {}
938
                         { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
939
                       SWAP ;
940
                       DUP ;
941
                       DUG 2 ;
942
                       CAR ;
943
                       GET 5 ;
944
                       SENDER ;
945
                       MEM ;
946
                       IF
947
                         { DROP }
948
                         { SWAP ;
949
                           DUP ;
950
                           DUG 2 ;
951
                           GET 7 ;
952
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
953
                           SWAP ;
954
                           CDR ;
955
                           COMPARE ;
956
                           EQ ;
957
                           IF
958
                             { UNPAIR ;
959
                               UNPAIR ;
960
                               SWAP ;
961
                               UNPAIR ;
962
                               SWAP ;
963
                               UNPAIR ;
964
                               PUSH (option bool) (Some True) ;
965
                               SENDER ;
966
                               UPDATE ;
967
                               PAIR ;
968
                               SWAP ;
969
                               PAIR ;
970
                               SWAP ;
971
                               PAIR ;
972
                               PAIR }
973
                             { UNPAIR ;
974
                               SWAP ;
975
                               UNPAIR ;
976
                               CDR ;
977
                               NONE address ;
978
                               PAIR ;
979
                               PAIR ;
980
                               SWAP ;
981
                               PAIR ;
982
                               NONE address ;
983
                               UPDATE 7 ;
984
                               UNPAIR ;
985
                               UNPAIR ;
986
                               CAR ;
987
                               PUSH nat 0 ;
988
                               SWAP ;
989
                               PAIR ;
990
                               PAIR ;
991
                               PAIR ;
992
                               PUSH nat 0 ;
993
                               UPDATE 5 ;
994
                               UNPAIR ;
995
                               SWAP ;
996
                               UNPAIR ;
997
                               CAR ;
998
                               PUSH nat 0 ;
999
                               SWAP ;
1000
                               PAIR ;
1001
                               PAIR ;
1002
                               SWAP ;
1003
                               UNPAIR ;
1004
                               SWAP ;
1005
                               CDR ;
1006
                               PUSH nat 0 ;
1007
                               SWAP ;
1008
                               CDR ;
1009
                               EMPTY_MAP address bool ;
1010
                               PAIR ;
1011
                               SWAP ;
1012
                               PAIR ;
1013
                               SWAP ;
1014
                               PAIR ;
1015
                               PAIR } } } ;
1016
                   NIL operation }
1017
                 { IF_LEFT
1018
                     { SWAP ;
1019
                       DUP ;
1020
                       DUG 2 ;
1021
                       CAR ;
1022
                       CAR ;
1023
                       CAR ;
1024
                       SENDER ;
1025
                       MEM ;
1026
                       IF
1027
                         {}
1028
                         { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
1029
                       PUSH nat 0 ;
1030
                       DUP 3 ;
1031
                       CAR ;
1032
                       CAR ;
1033
                       CDR ;
1034
                       COMPARE ;
1035
                       EQ ;
1036
                       IF
1037
                         { SWAP ;
1038
                           UNPAIR ;
1039
                           UNPAIR ;
1040
                           CAR ;
1041
                           PUSH nat 3 ;
1042
                           SWAP ;
1043
                           PAIR ;
1044
                           PAIR ;
1045
                           SWAP ;
1046
                           UNPAIR ;
1047
                           CDR ;
1048
                           DUP 4 ;
1049
                           CDR ;
1050
                           SOME ;
1051
                           PAIR ;
1052
                           PAIR ;
1053
                           SWAP ;
1054
                           UNPAIR ;
1055
                           SWAP ;
1056
                           CDR ;
1057
                           DIG 3 ;
1058
                           CAR ;
1059
                           SWAP ;
1060
                           UNPAIR ;
1061
                           PUSH (option bool) (Some True) ;
1062
                           SENDER ;
1063
                           UPDATE ;
1064
                           PAIR ;
1065
                           SWAP ;
1066
                           PAIR ;
1067
                           SWAP ;
1068
                           PAIR ;
1069
                           PAIR }
1070
                         { PUSH nat 3 ;
1071
                           DUP 3 ;
1072
                           CAR ;
1073
                           CAR ;
1074
                           CDR ;
1075
                           COMPARE ;
1076
                           EQ ;
1077
                           IF
1078
                             {}
1079
                             { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
1080
                           SWAP ;
1081
                           DUP ;
1082
                           DUG 2 ;
1083
                           CAR ;
1084
                           GET 5 ;
1085
                           SENDER ;
1086
                           MEM ;
1087
                           IF
1088
                             { DROP }
1089
                             { DUP ;
1090
                               CAR ;
1091
                               DUP 3 ;
1092
                               CAR ;
1093
                               GET 3 ;
1094
                               COMPARE ;
1095
                               EQ ;
1096
                               IF
1097
                                 { SWAP ;
1098
                                   DUP ;
1099
                                   DUG 2 ;
1100
                                   GET 3 ;
1101
                                   CAR ;
1102
                                   IF_NONE { PUSH int 169 ; FAILWITH } {} ;
1103
                                   SWAP ;
1104
                                   CDR ;
1105
                                   COMPARE ;
1106
                                   EQ }
1107
                                 { DROP ; PUSH bool False } ;
1108
                               IF
1109
                                 { UNPAIR ;
1110
                                   UNPAIR ;
1111
                                   SWAP ;
1112
                                   UNPAIR ;
1113
                                   SWAP ;
1114
                                   UNPAIR ;
1115
                                   PUSH (option bool) (Some True) ;
1116
                                   SENDER ;
1117
                                   UPDATE ;
1118
                                   PAIR ;
1119
                                   SWAP ;
1120
                                   PAIR ;
1121
                                   SWAP ;
1122
                                   PAIR ;
1123
                                   PAIR }
1124
                                 { UNPAIR ;
1125
                                   SWAP ;
1126
                                   UNPAIR ;
1127
                                   CDR ;
1128
                                   NONE address ;
1129
                                   PAIR ;
1130
                                   PAIR ;
1131
                                   SWAP ;
1132
                                   PAIR ;
1133
                                   NONE address ;
1134
                                   UPDATE 7 ;
1135
                                   UNPAIR ;
1136
                                   UNPAIR ;
1137
                                   CAR ;
1138
                                   PUSH nat 0 ;
1139
                                   SWAP ;
1140
                                   PAIR ;
1141
                                   PAIR ;
1142
                                   PAIR ;
1143
                                   PUSH nat 0 ;
1144
                                   UPDATE 5 ;
1145
                                   UNPAIR ;
1146
                                   SWAP ;
1147
                                   UNPAIR ;
1148
                                   CAR ;
1149
                                   PUSH nat 0 ;
1150
                                   SWAP ;
1151
                                   PAIR ;
1152
                                   PAIR ;
1153
                                   SWAP ;
1154
                                   UNPAIR ;
1155
                                   SWAP ;
1156
                                   CDR ;
1157
                                   PUSH nat 0 ;
1158
                                   SWAP ;
1159
                                   CDR ;
1160
                                   EMPTY_MAP address bool ;
1161
                                   PAIR ;
1162
                                   SWAP ;
1163
                                   PAIR ;
1164
                                   SWAP ;
1165
                                   PAIR ;
1166
                                   PAIR } } } ;
1167
                       UNIT ;
1168
                       PAIR ;
1169
                       EXEC ;
1170
                       DUP ;
1171
                       GET 4 ;
1172
                       SWAP ;
1173
                       DUP ;
1174
                       CAR ;
1175
                       SWAP ;
1176
                       GET 3 ;
1177
                       IF
1178
                         { SWAP ;
1179
                           DUP ;
1180
                           DUG 2 ;
1181
                           GET 3 ;
1182
                           CAR ;
1183
                           IF_NONE { PUSH int 169 ; FAILWITH } {} ;
1184
                           CONTRACT %ModifyMaxSwapAmount nat ;
1185
                           IF_NONE { PUSH int 231 ; FAILWITH } {} ;
1186
                           PUSH mutez 0 ;
1187
                           DUP 4 ;
1188
                           CAR ;
1189
                           GET 3 ;
1190
                           TRANSFER_TOKENS ;
1191
                           CONS ;
1192
                           SWAP ;
1193
                           UNPAIR ;
1194
                           SWAP ;
1195
                           UNPAIR ;
1196
                           CDR ;
1197
                           NONE address ;
1198
                           PAIR ;
1199
                           PAIR ;
1200
                           SWAP ;
1201
                           PAIR ;
1202
                           NONE address ;
1203
                           UPDATE 7 ;
1204
                           UNPAIR ;
1205
                           UNPAIR ;
1206
                           CAR ;
1207
                           PUSH nat 0 ;
1208
                           SWAP ;
1209
                           PAIR ;
1210
                           PAIR ;
1211
                           PAIR ;
1212
                           PUSH nat 0 ;
1213
                           UPDATE 5 ;
1214
                           UNPAIR ;
1215
                           SWAP ;
1216
                           UNPAIR ;
1217
                           CAR ;
1218
                           PUSH nat 0 ;
1219
                           SWAP ;
1220
                           PAIR ;
1221
                           PAIR ;
1222
                           SWAP ;
1223
                           UNPAIR ;
1224
                           SWAP ;
1225
                           CDR ;
1226
                           PUSH nat 0 ;
1227
                           SWAP ;
1228
                           CDR ;
1229
                           EMPTY_MAP address bool ;
1230
                           PAIR ;
1231
                           SWAP ;
1232
                           PAIR ;
1233
                           SWAP ;
1234
                           PAIR ;
1235
                           PAIR ;
1236
                           SWAP }
1237
                         {} }
1238
                     { SWAP ;
1239
                       DUP ;
1240
                       DUG 2 ;
1241
                       CAR ;
1242
                       CAR ;
1243
                       CAR ;
1244
                       SENDER ;
1245
                       MEM ;
1246
                       IF
1247
                         {}
1248
                         { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
1249
                       PUSH nat 0 ;
1250
                       DUP 3 ;
1251
                       CAR ;
1252
                       CAR ;
1253
                       CDR ;
1254
                       COMPARE ;
1255
                       EQ ;
1256
                       IF
1257
                         { SWAP ;
1258
                           UNPAIR ;
1259
                           UNPAIR ;
1260
                           CAR ;
1261
                           PUSH nat 1 ;
1262
                           SWAP ;
1263
                           PAIR ;
1264
                           PAIR ;
1265
                           SWAP ;
1266
                           UNPAIR ;
1267
                           CDR ;
1268
                           DIG 3 ;
1269
                           SOME ;
1270
                           PAIR ;
1271
                           PAIR ;
1272
                           SWAP ;
1273
                           UNPAIR ;
1274
                           SWAP ;
1275
                           UNPAIR ;
1276
                           SWAP ;
1277
                           UNPAIR ;
1278
                           PUSH (option bool) (Some True) ;
1279
                           SENDER ;
1280
                           UPDATE ;
1281
                           PAIR ;
1282
                           SWAP ;
1283
                           PAIR ;
1284
                           SWAP ;
1285
                           PAIR ;
1286
                           PAIR }
1287
                         { PUSH nat 1 ;
1288
                           DUP 3 ;
1289
                           CAR ;
1290
                           CAR ;
1291
                           CDR ;
1292
                           COMPARE ;
1293
                           EQ ;
1294
                           IF
1295
                             {}
1296
                             { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
1297
                           SWAP ;
1298
                           DUP ;
1299
                           DUG 2 ;
1300
                           CAR ;
1301
                           GET 5 ;
1302
                           SENDER ;
1303
                           MEM ;
1304
                           IF
1305
                             { DROP }
1306
                             { SWAP ;
1307
                               DUP ;
1308
                               DUG 2 ;
1309
                               GET 3 ;
1310
                               CAR ;
1311
                               IF_NONE { PUSH int 169 ; FAILWITH } {} ;
1312
                               COMPARE ;
1313
                               EQ ;
1314
                               IF
1315
                                 { UNPAIR ;
1316
                                   UNPAIR ;
1317
                                   SWAP ;
1318
                                   UNPAIR ;
1319
                                   SWAP ;
1320
                                   UNPAIR ;
1321
                                   PUSH (option bool) (Some True) ;
1322
                                   SENDER ;
1323
                                   UPDATE ;
1324
                                   PAIR ;
1325
                                   SWAP ;
1326
                                   PAIR ;
1327
                                   SWAP ;
1328
                                   PAIR ;
1329
                                   PAIR }
1330
                                 { UNPAIR ;
1331
                                   SWAP ;
1332
                                   UNPAIR ;
1333
                                   CDR ;
1334
                                   NONE address ;
1335
                                   PAIR ;
1336
                                   PAIR ;
1337
                                   SWAP ;
1338
                                   PAIR ;
1339
                                   NONE address ;
1340
                                   UPDATE 7 ;
1341
                                   UNPAIR ;
1342
                                   UNPAIR ;
1343
                                   CAR ;
1344
                                   PUSH nat 0 ;
1345
                                   SWAP ;
1346
                                   PAIR ;
1347
                                   PAIR ;
1348
                                   PAIR ;
1349
                                   PUSH nat 0 ;
1350
                                   UPDATE 5 ;
1351
                                   UNPAIR ;
1352
                                   SWAP ;
1353
                                   UNPAIR ;
1354
                                   CAR ;
1355
                                   PUSH nat 0 ;
1356
                                   SWAP ;
1357
                                   PAIR ;
1358
                                   PAIR ;
1359
                                   SWAP ;
1360
                                   UNPAIR ;
1361
                                   SWAP ;
1362
                                   CDR ;
1363
                                   PUSH nat 0 ;
1364
                                   SWAP ;
1365
                                   CDR ;
1366
                                   EMPTY_MAP address bool ;
1367
                                   PAIR ;
1368
                                   SWAP ;
1369
                                   PAIR ;
1370
                                   SWAP ;
1371
                                   PAIR ;
1372
                                   PAIR } } } ;
1373
                       UNIT ;
1374
                       PAIR ;
1375
                       EXEC ;
1376
                       DUP ;
1377
                       GET 4 ;
1378
                       SWAP ;
1379
                       DUP ;
1380
                       CAR ;
1381
                       SWAP ;
1382
                       GET 3 ;
1383
                       IF
1384
                         { SWAP ;
1385
                           DUP ;
1386
                           DUG 2 ;
1387
                           GET 3 ;
1388
                           CAR ;
1389
                           IF_NONE { PUSH int 169 ; FAILWITH } {} ;
1390
                           CONTRACT %ChangeState unit ;
1391
                           IF_NONE { PUSH int 125 ; FAILWITH } {} ;
1392
                           PUSH mutez 0 ;
1393
                           UNIT ;
1394
                           TRANSFER_TOKENS ;
1395
                           CONS ;
1396
                           SWAP ;
1397
                           UNPAIR ;
1398
                           SWAP ;
1399
                           UNPAIR ;
1400
                           CDR ;
1401
                           NONE address ;
1402
                           PAIR ;
1403
                           PAIR ;
1404
                           SWAP ;
1405
                           PAIR ;
1406
                           NONE address ;
1407
                           UPDATE 7 ;
1408
                           UNPAIR ;
1409
                           UNPAIR ;
1410
                           CAR ;
1411
                           PUSH nat 0 ;
1412
                           SWAP ;
1413
                           PAIR ;
1414
                           PAIR ;
1415
                           PAIR ;
1416
                           PUSH nat 0 ;
1417
                           UPDATE 5 ;
1418
                           UNPAIR ;
1419
                           SWAP ;
1420
                           UNPAIR ;
1421
                           CAR ;
1422
                           PUSH nat 0 ;
1423
                           SWAP ;
1424
                           PAIR ;
1425
                           PAIR ;
1426
                           SWAP ;
1427
                           UNPAIR ;
1428
                           SWAP ;
1429
                           CDR ;
1430
                           PUSH nat 0 ;
1431
                           SWAP ;
1432
                           CDR ;
1433
                           EMPTY_MAP address bool ;
1434
                           PAIR ;
1435
                           SWAP ;
1436
                           PAIR ;
1437
                           SWAP ;
1438
                           PAIR ;
1439
                           PAIR ;
1440
                           SWAP }
1441
                         {} } } }
1442
             { IF_LEFT
1443
                 { SWAP ;
1444
                   DUP ;
1445
                   DUG 2 ;
1446
                   CAR ;
1447
                   CAR ;
1448
                   CAR ;
1449
                   SENDER ;
1450
                   MEM ;
1451
                   IF {} { PUSH string "PLentySwapAdmin_Invalid_Account" ; FAILWITH } ;
1452
                   PUSH nat 0 ;
1453
                   DUP 3 ;
1454
                   CAR ;
1455
                   CAR ;
1456
                   CDR ;
1457
                   COMPARE ;
1458
                   EQ ;
1459
                   IF
1460
                     { SWAP ;
1461
                       UNPAIR ;
1462
                       UNPAIR ;
1463
                       CAR ;
1464
                       PUSH nat 5 ;
1465
                       SWAP ;
1466
                       PAIR ;
1467
                       PAIR ;
1468
                       PAIR ;
1469
                       SWAP ;
1470
                       SOME ;
1471
                       UPDATE 7 ;
1472
                       UNPAIR ;
1473
                       UNPAIR ;
1474
                       SWAP ;
1475
                       UNPAIR ;
1476
                       SWAP ;
1477
                       UNPAIR ;
1478
                       PUSH (option bool) (Some True) ;
1479
                       SENDER ;
1480
                       UPDATE ;
1481
                       PAIR ;
1482
                       SWAP ;
1483
                       PAIR ;
1484
                       SWAP ;
1485
                       PAIR ;
1486
                       PAIR }
1487
                     { PUSH nat 5 ;
1488
                       DUP 3 ;
1489
                       CAR ;
1490
                       CAR ;
1491
                       CDR ;
1492
                       COMPARE ;
1493
                       EQ ;
1494
                       IF
1495
                         {}
1496
                         { PUSH string "PLentySwapAdmin_Invalid_Voting" ; FAILWITH } ;
1497
                       SWAP ;
1498
                       DUP ;
1499
                       DUG 2 ;
1500
                       CAR ;
1501
                       GET 5 ;
1502
                       SENDER ;
1503
                       MEM ;
1504
                       IF
1505
                         { DROP }
1506
                         { SWAP ;
1507
                           DUP ;
1508
                           DUG 2 ;
1509
                           GET 7 ;
1510
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1511
                           COMPARE ;
1512
                           EQ ;
1513
                           IF
1514
                             { UNPAIR ;
1515
                               UNPAIR ;
1516
                               SWAP ;
1517
                               UNPAIR ;
1518
                               SWAP ;
1519
                               UNPAIR ;
1520
                               PUSH (option bool) (Some True) ;
1521
                               SENDER ;
1522
                               UPDATE ;
1523
                               PAIR ;
1524
                               SWAP ;
1525
                               PAIR ;
1526
                               SWAP ;
1527
                               PAIR ;
1528
                               PAIR }
1529
                             { UNPAIR ;
1530
                               SWAP ;
1531
                               UNPAIR ;
1532
                               CDR ;
1533
                               NONE address ;
1534
                               PAIR ;
1535
                               PAIR ;
1536
                               SWAP ;
1537
                               PAIR ;
1538
                               NONE address ;
1539
                               UPDATE 7 ;
1540
                               UNPAIR ;
1541
                               UNPAIR ;
1542
                               CAR ;
1543
                               PUSH nat 0 ;
1544
                               SWAP ;
1545
                               PAIR ;
1546
                               PAIR ;
1547
                               PAIR ;
1548
                               PUSH nat 0 ;
1549
                               UPDATE 5 ;
1550
                               UNPAIR ;
1551
                               SWAP ;
1552
                               UNPAIR ;
1553
                               CAR ;
1554
                               PUSH nat 0 ;
1555
                               SWAP ;
1556
                               PAIR ;
1557
                               PAIR ;
1558
                               SWAP ;
1559
                               UNPAIR ;
1560
                               SWAP ;
1561
                               CDR ;
1562
                               PUSH nat 0 ;
1563
                               SWAP ;
1564
                               CDR ;
1565
                               EMPTY_MAP address bool ;
1566
                               PAIR ;
1567
                               SWAP ;
1568
                               PAIR ;
1569
                               SWAP ;
1570
                               PAIR ;
1571
                               PAIR } } } ;
1572
                   UNIT ;
1573
                   PAIR ;
1574
                   EXEC ;
1575
                   DUP ;
1576
                   GET 4 ;
1577
                   SWAP ;
1578
                   DUP ;
1579
                   CAR ;
1580
                   SWAP ;
1581
                   GET 3 ;
1582
                   IF
1583
                     { SWAP ;
1584
                       DUP ;
1585
                       GET 7 ;
1586
                       IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1587
                       UPDATE 8 ;
1588
                       UNPAIR ;
1589
                       SWAP ;
1590
                       UNPAIR ;
1591
                       CDR ;
1592
                       NONE address ;
1593
                       PAIR ;
1594
                       PAIR ;
1595
                       SWAP ;
1596
                       PAIR ;
1597
                       NONE address ;
1598
                       UPDATE 7 ;
1599
                       UNPAIR ;
1600
                       UNPAIR ;
1601
                       CAR ;
1602
                       PUSH nat 0 ;
1603
                       SWAP ;
1604
                       PAIR ;
1605
                       PAIR ;
1606
                       PAIR ;
1607
                       PUSH nat 0 ;
1608
                       UPDATE 5 ;
1609
                       UNPAIR ;
1610
                       SWAP ;
1611
                       UNPAIR ;
1612
                       CAR ;
1613
                       PUSH nat 0 ;
1614
                       SWAP ;
1615
                       PAIR ;
1616
                       PAIR ;
1617
                       SWAP ;
1618
                       UNPAIR ;
1619
                       SWAP ;
1620
                       CDR ;
1621
                       PUSH nat 0 ;
1622
                       SWAP ;
1623
                       CDR ;
1624
                       EMPTY_MAP address bool ;
1625
                       PAIR ;
1626
                       SWAP ;
1627
                       PAIR ;
1628
                       SWAP ;
1629
                       PAIR ;
1630
                       PAIR ;
1631
                       SWAP }
1632
                     {} }
1633
                 { IF_LEFT
1634
                     { DROP ;
1635
                       SWAP ;
1636
                       DROP ;
1637
                       DUP ;
1638
                       CAR ;
1639
                       CAR ;
1640
                       CDR ;
1641
                       PUSH nat 6 ;
1642
                       COMPARE ;
1643
                       EQ ;
1644
                       IF
1645
                         {}
1646
                         { PUSH string "WrongCondition: self.data.Operation == 6" ;
1647
                           FAILWITH } ;
1648
                       DUP ;
1649
                       GET 7 ;
1650
                       IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1651
                       SENDER ;
1652
                       COMPARE ;
1653
                       EQ ;
1654
                       IF {} { PUSH string "Sender is not new Admin" ; FAILWITH } ;
1655
                       PUSH nat 2 ;
1656
                       NIL address ;
1657
                       DUP 3 ;
1658
                       CAR ;
1659
                       CAR ;
1660
                       CAR ;
1661
                       ITER { CONS } ;
1662
                       NIL address ;
1663
                       SWAP ;
1664
                       ITER { CONS } ;
1665
                       SIZE ;
1666
                       MUL ;
1667
                       PUSH nat 3 ;
1668
                       NIL address ;
1669
                       DUP 4 ;
1670
                       CAR ;
1671
                       GET 5 ;
1672
                       ITER { CAR ; CONS } ;
1673
                       NIL address ;
1674
                       SWAP ;
1675
                       ITER { CONS } ;
1676
                       SIZE ;
1677
                       MUL ;
1678
                       COMPARE ;
1679
                       GE ;
1680
                       IF
1681
                         { DUP ;
1682
                           UNPAIR ;
1683
                           UNPAIR ;
1684
                           UNPAIR ;
1685
                           PUSH bool False ;
1686
                           DIG 5 ;
1687
                           CAR ;
1688
                           GET 6 ;
1689
                           UPDATE ;
1690
                           PAIR ;
1691
                           PAIR ;
1692
                           PAIR ;
1693
                           DUP ;
1694
                           UNPAIR ;
1695
                           UNPAIR ;
1696
                           SWAP ;
1697
                           UNPAIR ;
1698
                           SWAP ;
1699
                           CAR ;
1700
                           DIG 4 ;
1701
                           GET 7 ;
1702
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1703
                           SWAP ;
1704
                           PAIR ;
1705
                           SWAP ;
1706
                           PAIR ;
1707
                           SWAP ;
1708
                           PAIR ;
1709
                           PAIR ;
1710
                           DUP ;
1711
                           CAR ;
1712
                           CAR ;
1713
                           CAR ;
1714
                           SWAP ;
1715
                           DUP ;
1716
                           DUG 2 ;
1717
                           CAR ;
1718
                           GET 6 ;
1719
                           MEM ;
1720
                           IF
1721
                             {}
1722
                             { DUP ;
1723
                               UNPAIR ;
1724
                               UNPAIR ;
1725
                               UNPAIR ;
1726
                               PUSH bool True ;
1727
                               DIG 5 ;
1728
                               CAR ;
1729
                               GET 6 ;
1730
                               UPDATE ;
1731
                               PAIR ;
1732
                               PAIR ;
1733
                               PAIR } ;
1734
                           UNPAIR ;
1735
                           SWAP ;
1736
                           UNPAIR ;
1737
                           CDR ;
1738
                           NONE address ;
1739
                           PAIR ;
1740
                           PAIR ;
1741
                           SWAP ;
1742
                           PAIR ;
1743
                           NONE address ;
1744
                           UPDATE 7 ;
1745
                           UNPAIR ;
1746
                           UNPAIR ;
1747
                           CAR ;
1748
                           PUSH nat 0 ;
1749
                           SWAP ;
1750
                           PAIR ;
1751
                           PAIR ;
1752
                           PAIR ;
1753
                           PUSH nat 0 ;
1754
                           UPDATE 5 ;
1755
                           UNPAIR ;
1756
                           SWAP ;
1757
                           UNPAIR ;
1758
                           CAR ;
1759
                           PUSH nat 0 ;
1760
                           SWAP ;
1761
                           PAIR ;
1762
                           PAIR ;
1763
                           SWAP ;
1764
                           UNPAIR ;
1765
                           SWAP ;
1766
                           CDR ;
1767
                           PUSH nat 0 ;
1768
                           SWAP ;
1769
                           CDR ;
1770
                           EMPTY_MAP address bool ;
1771
                           PAIR ;
1772
                           SWAP ;
1773
                           PAIR ;
1774
                           SWAP ;
1775
                           PAIR ;
1776
                           PAIR }
1777
                         {} ;
1778
                       NIL operation }
1779
                     { DROP ;
1780
                       DUP ;
1781
                       CAR ;
1782
                       CAR ;
1783
                       CDR ;
1784
                       PUSH nat 4 ;
1785
                       COMPARE ;
1786
                       EQ ;
1787
                       IF {} { PUSH string "Invalid Operation Call" ; FAILWITH } ;
1788
                       DUP ;
1789
                       GET 7 ;
1790
                       IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1791
                       SENDER ;
1792
                       COMPARE ;
1793
                       EQ ;
1794
                       IF
1795
                         {}
1796
                         { PUSH string "Sender is not New Exchange Admin" ; FAILWITH } ;
1797
                       UNIT ;
1798
                       PAIR ;
1799
                       EXEC ;
1800
                       DUP ;
1801
                       GET 4 ;
1802
                       SWAP ;
1803
                       DUP ;
1804
                       CAR ;
1805
                       SWAP ;
1806
                       GET 3 ;
1807
                       IF
1808
                         { SWAP ;
1809
                           DUP ;
1810
                           DUG 2 ;
1811
                           GET 3 ;
1812
                           CAR ;
1813
                           IF_NONE { PUSH int 169 ; FAILWITH } {} ;
1814
                           CONTRACT %ChangeAdmin address ;
1815
                           IF_NONE { PUSH int 289 ; FAILWITH } {} ;
1816
                           PUSH mutez 0 ;
1817
                           DUP 4 ;
1818
                           GET 7 ;
1819
                           IF_NONE { PUSH int 421 ; FAILWITH } {} ;
1820
                           TRANSFER_TOKENS ;
1821
                           CONS ;
1822
                           SWAP ;
1823
                           UNPAIR ;
1824
                           SWAP ;
1825
                           UNPAIR ;
1826
                           CDR ;
1827
                           NONE address ;
1828
                           PAIR ;
1829
                           PAIR ;
1830
                           SWAP ;
1831
                           PAIR ;
1832
                           NONE address ;
1833
                           UPDATE 7 ;
1834
                           UNPAIR ;
1835
                           UNPAIR ;
1836
                           CAR ;
1837
                           PUSH nat 0 ;
1838
                           SWAP ;
1839
                           PAIR ;
1840
                           PAIR ;
1841
                           PAIR ;
1842
                           PUSH nat 0 ;
1843
                           UPDATE 5 ;
1844
                           UNPAIR ;
1845
                           SWAP ;
1846
                           UNPAIR ;
1847
                           CAR ;
1848
                           PUSH nat 0 ;
1849
                           SWAP ;
1850
                           PAIR ;
1851
                           PAIR ;
1852
                           SWAP ;
1853
                           UNPAIR ;
1854
                           SWAP ;
1855
                           CDR ;
1856
                           PUSH nat 0 ;
1857
                           SWAP ;
1858
                           CDR ;
1859
                           EMPTY_MAP address bool ;
1860
                           PAIR ;
1861
                           SWAP ;
1862
                           PAIR ;
1863
                           SWAP ;
1864
                           PAIR ;
1865
                           PAIR ;
1866
                           SWAP }
1867
                         {} } } } } ;
1868
       NIL operation ;
1869
       SWAP ;
1870
       ITER { CONS } ;
1871
       PAIR }