BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Flux Tribe
FA2Ledger
operations (12.6K)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
886
1395
 
1
parameter (or
2
            (or
3
              (or
4
                (or (list %add_flux_points (pair address nat))
5
                    (list %add_flux_power (pair nat nat)))
6
                (or
7
                  (pair %add_token_fraction (address %address)
8
                                            (pair (nat %shares) (nat %token_id)))
9
                  (or
10
                    (pair %balance_of
11
                      (list %requests (pair (address %owner) (nat %token_id)))
12
                      (contract %callback (list (pair
13
                                                (pair %request (address %owner)
14
                                                               (nat %token_id))
15
                                                (nat %balance)))))
16
                    (pair %create_token_fraction (address %address)
17
                                                 (pair (nat %shares) (nat %token_id))))))
18
              (or
19
                (or
20
                  (pair %mint (pair (address %address) (int %amount))
21
                              (pair (map %metadata string bytes) (nat %token_id)))
22
                  (pair %mutez_transfer (mutez %amount) (address %destination)))
23
                (or (list %personalise (pair nat bytes))
24
                    (or (nat %remove_token_fraction) (list %reveal (pair nat bytes))))))
25
            (or
26
              (or (or (address %set_administrator) (address %set_crowdsale_address))
27
                  (or (pair %set_metadata (string %k) (bytes %v))
28
                      (or (bool %set_pause)
29
                          (pair %set_token_fraction (address %address)
30
                                                    (pair (nat %shares) (nat %token_id))))))
31
              (or
32
                (or
33
                  (list %transfer (pair (address %from_)
34
                                       (list %txs (pair (address %to_)
35
                                                       (pair (nat %token_id)
36
                                                             (nat %amount))))))
37
                  (list %update_flux_points (pair address nat)))
38
                (or (list %update_flux_power (pair nat nat))
39
                    (or
40
                      (list %update_operators (or
41
                                               (pair %add_operator (address %owner)
42
                                                                   (pair
43
                                                                     (address %operator)
44
                                                                     (nat %token_id)))
45
                                               (pair %remove_operator (address %owner)
46
                                                                      (pair
47
                                                                        (address %operator)
48
                                                                        (nat %token_id)))))
49
                      (pair %update_token_ticket (nat %token_id) (nat %token_tickets)))))));
50
storage (pair
51
          (pair
52
            (pair (address %administrator)
53
                  (pair (set %all_tokens nat) (address %crowdsale_address)))
54
            (pair (big_map %flux_points address nat)
55
                  (pair (big_map %flux_power nat nat)
56
                        (big_map %ledger (pair address nat) nat))))
57
          (pair
58
            (pair (big_map %metadata string bytes)
59
                  (pair
60
                    (big_map %operators
61
                      (pair (address %owner) (pair (address %operator) (nat %token_id)))
62
                      unit)
63
                    (bool %paused)))
64
            (pair
65
              (pair (big_map %token_fractions nat (map address nat))
66
                    (big_map %token_metadata nat
67
                                             (pair (nat %token_id)
68
                                                   (map %token_info string bytes))))
69
              (pair (big_map %token_tickets nat nat) (big_map %total_supply nat nat)))));
70
code { CAST (pair
71
              (or
72
                (or
73
                  (or (or (list (pair address nat)) (list (pair nat nat)))
74
                      (or (pair address (pair nat nat))
75
                          (or
76
                            (pair (list (pair address nat))
77
                                  (contract (list (pair (pair address nat) nat))))
78
                            (pair address (pair nat nat)))))
79
                  (or
80
                    (or (pair (pair address int) (pair (map string bytes) nat))
81
                        (pair mutez address))
82
                    (or (list (pair nat bytes)) (or nat (list (pair nat bytes))))))
83
                (or
84
                  (or (or address address)
85
                      (or (pair string bytes) (or bool (pair address (pair nat nat)))))
86
                  (or
87
                    (or (list (pair address (list (pair address (pair nat nat)))))
88
                        (list (pair address nat)))
89
                    (or (list (pair nat nat))
90
                        (or
91
                          (list (or (pair address (pair address nat))
92
                                   (pair address (pair address nat))))
93
                          (pair nat nat))))))
94
              (pair
95
                (pair (pair address (pair (set nat) address))
96
                      (pair (big_map address nat)
97
                            (pair (big_map nat nat) (big_map (pair address nat) nat))))
98
                (pair
99
                  (pair (big_map string bytes)
100
                        (pair (big_map (pair address (pair address nat)) unit) bool))
101
                  (pair
102
                    (pair (big_map nat (map address nat))
103
                          (big_map nat (pair nat (map string bytes))))
104
                    (pair (big_map nat nat) (big_map nat nat)))))) ;
105
       UNPAIR ;
106
       IF_LEFT
107
         { IF_LEFT
108
             { IF_LEFT
109
                 { IF_LEFT
110
                     { SWAP ;
111
                       DUP ;
112
                       DUG 2 ;
113
                       CAR ;
114
                       CAR ;
115
                       CAR ;
116
                       SENDER ;
117
                       COMPARE ;
118
                       EQ ;
119
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
120
                       DUP ;
121
                       ITER { DIG 2 ;
122
                              UNPAIR ;
123
                              UNPAIR ;
124
                              SWAP ;
125
                              UNPAIR ;
126
                              DUP ;
127
                              DUP 6 ;
128
                              CAR ;
129
                              DUP ;
130
                              DUG 2 ;
131
                              GET ;
132
                              IF_NONE { PUSH int 950 ; FAILWITH } {} ;
133
                              DIG 6 ;
134
                              CDR ;
135
                              ADD ;
136
                              SOME ;
137
                              SWAP ;
138
                              UPDATE ;
139
                              PAIR ;
140
                              SWAP ;
141
                              PAIR ;
142
                              PAIR ;
143
                              SWAP } ;
144
                       DROP }
145
                     { SWAP ;
146
                       DUP ;
147
                       DUG 2 ;
148
                       CAR ;
149
                       CAR ;
150
                       CAR ;
151
                       SENDER ;
152
                       COMPARE ;
153
                       EQ ;
154
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
155
                       DUP ;
156
                       ITER { DUP 3 ;
157
                              GET 5 ;
158
                              CDR ;
159
                              SWAP ;
160
                              DUP ;
161
                              DUG 2 ;
162
                              CAR ;
163
                              MEM ;
164
                              IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
165
                              DIG 2 ;
166
                              UNPAIR ;
167
                              UNPAIR ;
168
                              SWAP ;
169
                              UNPAIR ;
170
                              SWAP ;
171
                              UNPAIR ;
172
                              DUP ;
173
                              DUP 7 ;
174
                              CAR ;
175
                              DUP ;
176
                              DUG 2 ;
177
                              GET ;
178
                              IF_NONE { PUSH int 920 ; FAILWITH } {} ;
179
                              DIG 7 ;
180
                              CDR ;
181
                              ADD ;
182
                              SOME ;
183
                              SWAP ;
184
                              UPDATE ;
185
                              PAIR ;
186
                              SWAP ;
187
                              PAIR ;
188
                              SWAP ;
189
                              PAIR ;
190
                              PAIR ;
191
                              SWAP } ;
192
                       DROP } ;
193
                   NIL operation }
194
                 { IF_LEFT
195
                     { SWAP ;
196
                       DUP ;
197
                       DUG 2 ;
198
                       CAR ;
199
                       CAR ;
200
                       CAR ;
201
                       SENDER ;
202
                       COMPARE ;
203
                       EQ ;
204
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
205
                       SWAP ;
206
                       DUP ;
207
                       DUG 2 ;
208
                       GET 5 ;
209
                       CDR ;
210
                       SWAP ;
211
                       DUP ;
212
                       DUG 2 ;
213
                       GET 4 ;
214
                       MEM ;
215
                       IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
216
                       SWAP ;
217
                       DUP ;
218
                       DUG 2 ;
219
                       GET 5 ;
220
                       CAR ;
221
                       SWAP ;
222
                       DUP ;
223
                       DUG 2 ;
224
                       GET 4 ;
225
                       MEM ;
226
                       IF
227
                         {}
228
                         { PUSH string "FLUX_TOKEN_FRACTION_UNDEFINED" ; FAILWITH } ;
229
                       SWAP ;
230
                       DUP ;
231
                       DUG 2 ;
232
                       GET 5 ;
233
                       CAR ;
234
                       SWAP ;
235
                       DUP ;
236
                       DUG 2 ;
237
                       GET 4 ;
238
                       GET ;
239
                       IF_NONE { PUSH int 992 ; FAILWITH } {} ;
240
                       SWAP ;
241
                       DUP ;
242
                       DUG 2 ;
243
                       CAR ;
244
                       MEM ;
245
                       IF
246
                         { SWAP ;
247
                           DUP ;
248
                           DUG 2 ;
249
                           UNPAIR ;
250
                           SWAP ;
251
                           UNPAIR ;
252
                           SWAP ;
253
                           UNPAIR ;
254
                           UNPAIR ;
255
                           DUP ;
256
                           DUP 7 ;
257
                           GET 4 ;
258
                           DUP ;
259
                           DUG 2 ;
260
                           GET ;
261
                           IF_NONE { PUSH int 995 ; FAILWITH } {} ;
262
                           DUP 8 ;
263
                           GET 3 ;
264
                           DIG 9 ;
265
                           GET 5 ;
266
                           CAR ;
267
                           DUP 10 ;
268
                           GET 4 ;
269
                           GET ;
270
                           IF_NONE { PUSH int 993 ; FAILWITH } {} ;
271
                           DUP 10 ;
272
                           CAR ;
273
                           GET ;
274
                           IF_NONE { PUSH int 993 ; FAILWITH } {} ;
275
                           ADD ;
276
                           SOME ;
277
                           DIG 8 ;
278
                           CAR ;
279
                           UPDATE ;
280
                           SOME ;
281
                           SWAP ;
282
                           UPDATE ;
283
                           PAIR ;
284
                           PAIR ;
285
                           SWAP ;
286
                           PAIR ;
287
                           SWAP ;
288
                           PAIR }
289
                         { SWAP ;
290
                           UNPAIR ;
291
                           SWAP ;
292
                           UNPAIR ;
293
                           SWAP ;
294
                           UNPAIR ;
295
                           UNPAIR ;
296
                           DUP ;
297
                           DUP 7 ;
298
                           GET 4 ;
299
                           DUP ;
300
                           DUG 2 ;
301
                           GET ;
302
                           IF_NONE { PUSH int 998 ; FAILWITH } {} ;
303
                           DUP 8 ;
304
                           GET 3 ;
305
                           SOME ;
306
                           DIG 8 ;
307
                           CAR ;
308
                           UPDATE ;
309
                           SOME ;
310
                           SWAP ;
311
                           UPDATE ;
312
                           PAIR ;
313
                           PAIR ;
314
                           SWAP ;
315
                           PAIR ;
316
                           SWAP ;
317
                           PAIR } ;
318
                       NIL operation }
319
                     { IF_LEFT
320
                         { SWAP ;
321
                           DUP ;
322
                           DUG 2 ;
323
                           GET 3 ;
324
                           GET 4 ;
325
                           IF { PUSH string "FLUX_PAUSED" ; FAILWITH } {} ;
326
                           DUP ;
327
                           CAR ;
328
                           MAP { DUP 3 ;
329
                                 GET 5 ;
330
                                 CDR ;
331
                                 SWAP ;
332
                                 DUP ;
333
                                 DUG 2 ;
334
                                 CDR ;
335
                                 MEM ;
336
                                 IF
337
                                   {}
338
                                   { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
339
                                 DUP 3 ;
340
                                 CAR ;
341
                                 GET 6 ;
342
                                 SWAP ;
343
                                 DUP ;
344
                                 CDR ;
345
                                 SWAP ;
346
                                 DUP ;
347
                                 DUG 3 ;
348
                                 CAR ;
349
                                 PAIR ;
350
                                 MEM ;
351
                                 IF
352
                                   { DUP 3 ;
353
                                     CAR ;
354
                                     GET 6 ;
355
                                     SWAP ;
356
                                     DUP ;
357
                                     CDR ;
358
                                     SWAP ;
359
                                     DUP ;
360
                                     DUG 3 ;
361
                                     CAR ;
362
                                     PAIR ;
363
                                     GET ;
364
                                     IF_NONE { PUSH int 695 ; FAILWITH } {} ;
365
                                     SWAP ;
366
                                     PAIR }
367
                                   { PUSH nat 0 ; SWAP ; PAIR } } ;
368
                           NIL operation ;
369
                           DIG 2 ;
370
                           CDR ;
371
                           PUSH mutez 0 ;
372
                           DIG 3 ;
373
                           TRANSFER_TOKENS ;
374
                           CONS }
375
                         { SWAP ;
376
                           DUP ;
377
                           DUG 2 ;
378
                           CAR ;
379
                           CAR ;
380
                           CAR ;
381
                           SENDER ;
382
                           COMPARE ;
383
                           EQ ;
384
                           IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
385
                           SWAP ;
386
                           DUP ;
387
                           DUG 2 ;
388
                           GET 5 ;
389
                           CDR ;
390
                           SWAP ;
391
                           DUP ;
392
                           DUG 2 ;
393
                           GET 4 ;
394
                           MEM ;
395
                           IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
396
                           SWAP ;
397
                           DUP ;
398
                           DUG 2 ;
399
                           GET 5 ;
400
                           CAR ;
401
                           SWAP ;
402
                           DUP ;
403
                           DUG 2 ;
404
                           GET 4 ;
405
                           MEM ;
406
                           IF
407
                             { PUSH string "FLUX_TOKEN_FRACTION_ALREADY_CREATED" ;
408
                               FAILWITH }
409
                             {} ;
410
                           SWAP ;
411
                           UNPAIR ;
412
                           SWAP ;
413
                           UNPAIR ;
414
                           SWAP ;
415
                           UNPAIR ;
416
                           UNPAIR ;
417
                           PUSH (option (map address nat)) (Some {}) ;
418
                           DUP 7 ;
419
                           GET 4 ;
420
                           UPDATE ;
421
                           DUP ;
422
                           DUP 7 ;
423
                           GET 4 ;
424
                           DUP ;
425
                           DUG 2 ;
426
                           GET ;
427
                           IF_NONE { PUSH int 976 ; FAILWITH } {} ;
428
                           DUP 8 ;
429
                           GET 3 ;
430
                           SOME ;
431
                           DIG 8 ;
432
                           CAR ;
433
                           UPDATE ;
434
                           SOME ;
435
                           SWAP ;
436
                           UPDATE ;
437
                           PAIR ;
438
                           PAIR ;
439
                           SWAP ;
440
                           PAIR ;
441
                           SWAP ;
442
                           PAIR ;
443
                           NIL operation } } } }
444
             { IF_LEFT
445
                 { IF_LEFT
446
                     { SWAP ;
447
                       DUP ;
448
                       DUG 2 ;
449
                       CAR ;
450
                       CAR ;
451
                       CAR ;
452
                       SENDER ;
453
                       COMPARE ;
454
                       EQ ;
455
                       IF
456
                         { PUSH bool True }
457
                         { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; GET 4 ; SENDER ; COMPARE ; EQ } ;
458
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
459
                       DUP ;
460
                       CAR ;
461
                       CDR ;
462
                       PUSH int 1 ;
463
                       COMPARE ;
464
                       EQ ;
465
                       IF {} { PUSH string "NFT-asset: amount <> 1" ; FAILWITH } ;
466
                       SWAP ;
467
                       DUP ;
468
                       DUG 2 ;
469
                       CAR ;
470
                       CAR ;
471
                       GET 3 ;
472
                       SWAP ;
473
                       DUP ;
474
                       DUG 2 ;
475
                       GET 4 ;
476
                       MEM ;
477
                       IF
478
                         { PUSH string "NFT-asset: cannot mint twice same token" ;
479
                           FAILWITH }
480
                         {} ;
481
                       SWAP ;
482
                       DUP ;
483
                       DUG 2 ;
484
                       CAR ;
485
                       GET 6 ;
486
                       SWAP ;
487
                       DUP ;
488
                       GET 4 ;
489
                       SWAP ;
490
                       DUP ;
491
                       DUG 3 ;
492
                       CAR ;
493
                       CAR ;
494
                       PAIR ;
495
                       MEM ;
496
                       IF
497
                         { SWAP ;
498
                           UNPAIR ;
499
                           UNPAIR ;
500
                           SWAP ;
501
                           UNPAIR ;
502
                           SWAP ;
503
                           UNPAIR ;
504
                           SWAP ;
505
                           DUP ;
506
                           DIG 6 ;
507
                           DUP ;
508
                           GET 4 ;
509
                           SWAP ;
510
                           DUP ;
511
                           DUG 8 ;
512
                           CAR ;
513
                           CAR ;
514
                           PAIR ;
515
                           DUP ;
516
                           DUG 2 ;
517
                           GET ;
518
                           IF_NONE { PUSH int 811 ; FAILWITH } {} ;
519
                           PUSH nat 1 ;
520
                           ADD ;
521
                           SOME ;
522
                           SWAP ;
523
                           UPDATE ;
524
                           SWAP ;
525
                           PAIR ;
526
                           SWAP ;
527
                           PAIR ;
528
                           SWAP ;
529
                           PAIR ;
530
                           PAIR ;
531
                           SWAP }
532
                         { SWAP ;
533
                           UNPAIR ;
534
                           UNPAIR ;
535
                           SWAP ;
536
                           UNPAIR ;
537
                           SWAP ;
538
                           UNPAIR ;
539
                           SWAP ;
540
                           PUSH (option nat) (Some 1) ;
541
                           DIG 6 ;
542
                           DUP ;
543
                           GET 4 ;
544
                           SWAP ;
545
                           DUP ;
546
                           DUG 8 ;
547
                           CAR ;
548
                           CAR ;
549
                           PAIR ;
550
                           UPDATE ;
551
                           SWAP ;
552
                           PAIR ;
553
                           SWAP ;
554
                           PAIR ;
555
                           SWAP ;
556
                           PAIR ;
557
                           PAIR ;
558
                           SWAP } ;
559
                       SWAP ;
560
                       DUP ;
561
                       DUG 2 ;
562
                       CAR ;
563
                       CAR ;
564
                       GET 3 ;
565
                       SWAP ;
566
                       DUP ;
567
                       DUG 2 ;
568
                       GET 4 ;
569
                       MEM ;
570
                       IF
571
                         {}
572
                         { SWAP ;
573
                           UNPAIR ;
574
                           UNPAIR ;
575
                           UNPAIR ;
576
                           SWAP ;
577
                           UNPAIR ;
578
                           PUSH bool True ;
579
                           DUP 7 ;
580
                           GET 4 ;
581
                           UPDATE ;
582
                           PAIR ;
583
                           SWAP ;
584
                           PAIR ;
585
                           PAIR ;
586
                           SWAP ;
587
                           UNPAIR ;
588
                           SWAP ;
589
                           UNPAIR ;
590
                           UNPAIR ;
591
                           SWAP ;
592
                           DIG 5 ;
593
                           DUP ;
594
                           GET 3 ;
595
                           SWAP ;
596
                           DUP ;
597
                           DUG 7 ;
598
                           GET 4 ;
599
                           PAIR ;
600
                           SOME ;
601
                           DUP 7 ;
602
                           GET 4 ;
603
                           UPDATE ;
604
                           SWAP ;
605
                           PAIR ;
606
                           PAIR ;
607
                           SWAP ;
608
                           PAIR ;
609
                           SWAP ;
610
                           PAIR ;
611
                           DUP ;
612
                           GET 7 ;
613
                           PUSH (option nat) (Some 2) ;
614
                           DUP 4 ;
615
                           GET 4 ;
616
                           UPDATE ;
617
                           UPDATE 7 ;
618
                           UNPAIR ;
619
                           UNPAIR ;
620
                           SWAP ;
621
                           UNPAIR ;
622
                           SWAP ;
623
                           UNPAIR ;
624
                           PUSH (option nat) (Some 0) ;
625
                           DUP 7 ;
626
                           GET 4 ;
627
                           UPDATE ;
628
                           PAIR ;
629
                           SWAP ;
630
                           PAIR ;
631
                           SWAP ;
632
                           PAIR ;
633
                           PAIR ;
634
                           SWAP } ;
635
                       SWAP ;
636
                       DUP ;
637
                       DUG 2 ;
638
                       DUP ;
639
                       GET 8 ;
640
                       DIG 3 ;
641
                       GET 8 ;
642
                       DUP 4 ;
643
                       GET 4 ;
644
                       GET ;
645
                       IF_NONE { PUSH nat 0 } {} ;
646
                       PUSH nat 1 ;
647
                       ADD ;
648
                       SOME ;
649
                       DIG 3 ;
650
                       GET 4 ;
651
                       UPDATE ;
652
                       UPDATE 8 ;
653
                       NIL operation }
654
                     { SWAP ;
655
                       DUP ;
656
                       DUG 2 ;
657
                       CAR ;
658
                       CAR ;
659
                       CAR ;
660
                       SENDER ;
661
                       COMPARE ;
662
                       EQ ;
663
                       IF {} { PUSH int 587 ; FAILWITH } ;
664
                       DUP ;
665
                       CDR ;
666
                       CONTRACT unit ;
667
                       IF_NONE { PUSH int 590 ; FAILWITH } {} ;
668
                       NIL operation ;
669
                       SWAP ;
670
                       DIG 2 ;
671
                       CAR ;
672
                       UNIT ;
673
                       TRANSFER_TOKENS ;
674
                       CONS } }
675
                 { IF_LEFT
676
                     { SWAP ;
677
                       DUP ;
678
                       DUG 2 ;
679
                       CAR ;
680
                       CAR ;
681
                       CAR ;
682
                       SENDER ;
683
                       COMPARE ;
684
                       EQ ;
685
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
686
                       DUP ;
687
                       ITER { DUP 3 ;
688
                              GET 5 ;
689
                              CDR ;
690
                              SWAP ;
691
                              DUP ;
692
                              DUG 2 ;
693
                              CAR ;
694
                              MEM ;
695
                              IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
696
                              DUP 3 ;
697
                              GET 7 ;
698
                              SWAP ;
699
                              DUP ;
700
                              DUG 2 ;
701
                              CAR ;
702
                              MEM ;
703
                              IF
704
                                {}
705
                                { PUSH string "FLUX_TOKEN_TICKET_UNDEFINED" ; FAILWITH } ;
706
                              PUSH nat 0 ;
707
                              DUP 4 ;
708
                              GET 7 ;
709
                              DUP 3 ;
710
                              CAR ;
711
                              GET ;
712
                              IF_NONE { PUSH int 879 ; FAILWITH } {} ;
713
                              COMPARE ;
714
                              GT ;
715
                              IF
716
                                {}
717
                                { PUSH string "FLUX_INSUFFICIENT_TICKETS" ; FAILWITH } ;
718
                              DUP 3 ;
719
                              CAR ;
720
                              CAR ;
721
                              GET 3 ;
722
                              SWAP ;
723
                              DUP ;
724
                              DUG 2 ;
725
                              CAR ;
726
                              MEM ;
727
                              IF
728
                                { DIG 2 ;
729
                                  UNPAIR ;
730
                                  SWAP ;
731
                                  UNPAIR ;
732
                                  SWAP ;
733
                                  UNPAIR ;
734
                                  UNPAIR ;
735
                                  SWAP ;
736
                                  EMPTY_MAP string bytes ;
737
                                  DUP 7 ;
738
                                  CDR ;
739
                                  SOME ;
740
                                  PUSH string "" ;
741
                                  UPDATE ;
742
                                  DUP 7 ;
743
                                  CAR ;
744
                                  PAIR ;
745
                                  SOME ;
746
                                  DUP 7 ;
747
                                  CAR ;
748
                                  UPDATE ;
749
                                  SWAP ;
750
                                  PAIR ;
751
                                  PAIR ;
752
                                  SWAP ;
753
                                  PAIR ;
754
                                  SWAP ;
755
                                  PAIR ;
756
                                  DUP ;
757
                                  DUG 3 ;
758
                                  DUP ;
759
                                  GET 7 ;
760
                                  PUSH nat 1 ;
761
                                  DIG 5 ;
762
                                  GET 7 ;
763
                                  DUP 5 ;
764
                                  CAR ;
765
                                  GET ;
766
                                  IF_NONE { PUSH int 886 ; FAILWITH } {} ;
767
                                  SUB ;
768
                                  ABS ;
769
                                  SOME ;
770
                                  DIG 3 ;
771
                                  CAR ;
772
                                  UPDATE ;
773
                                  UPDATE 7 ;
774
                                  SWAP }
775
                                { DROP } } ;
776
                       DROP }
777
                     { IF_LEFT
778
                         { SWAP ;
779
                           DUP ;
780
                           DUG 2 ;
781
                           CAR ;
782
                           CAR ;
783
                           CAR ;
784
                           SENDER ;
785
                           COMPARE ;
786
                           EQ ;
787
                           IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
788
                           SWAP ;
789
                           DUP ;
790
                           DUG 2 ;
791
                           GET 5 ;
792
                           CDR ;
793
                           SWAP ;
794
                           DUP ;
795
                           DUG 2 ;
796
                           MEM ;
797
                           IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
798
                           SWAP ;
799
                           DUP ;
800
                           DUG 2 ;
801
                           GET 5 ;
802
                           CAR ;
803
                           SWAP ;
804
                           DUP ;
805
                           DUG 2 ;
806
                           MEM ;
807
                           IF
808
                             {}
809
                             { PUSH string "FLUX_TOKEN_FRACTION_UNDEFINED" ; FAILWITH } ;
810
                           SWAP ;
811
                           UNPAIR ;
812
                           SWAP ;
813
                           UNPAIR ;
814
                           SWAP ;
815
                           UNPAIR ;
816
                           UNPAIR ;
817
                           NONE (map address nat) ;
818
                           DIG 6 ;
819
                           UPDATE ;
820
                           PAIR ;
821
                           PAIR ;
822
                           SWAP ;
823
                           PAIR ;
824
                           SWAP ;
825
                           PAIR }
826
                         { SWAP ;
827
                           DUP ;
828
                           DUG 2 ;
829
                           CAR ;
830
                           CAR ;
831
                           GET 4 ;
832
                           SENDER ;
833
                           COMPARE ;
834
                           EQ ;
835
                           IF
836
                             { PUSH bool True }
837
                             { SWAP ; DUP ; DUG 2 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
838
                           IF
839
                             {}
840
                             { PUSH string "FLUX_NOT_ADMIN_OR_CROWDSALE" ; FAILWITH } ;
841
                           DUP ;
842
                           ITER { DUP 3 ;
843
                                  CAR ;
844
                                  CAR ;
845
                                  GET 3 ;
846
                                  SWAP ;
847
                                  DUP ;
848
                                  DUG 2 ;
849
                                  CAR ;
850
                                  MEM ;
851
                                  IF
852
                                    { DIG 2 ;
853
                                      UNPAIR ;
854
                                      SWAP ;
855
                                      UNPAIR ;
856
                                      SWAP ;
857
                                      UNPAIR ;
858
                                      UNPAIR ;
859
                                      SWAP ;
860
                                      EMPTY_MAP string bytes ;
861
                                      DUP 7 ;
862
                                      CDR ;
863
                                      SOME ;
864
                                      PUSH string "" ;
865
                                      UPDATE ;
866
                                      DUP 7 ;
867
                                      CAR ;
868
                                      PAIR ;
869
                                      SOME ;
870
                                      DIG 6 ;
871
                                      CAR ;
872
                                      UPDATE ;
873
                                      SWAP ;
874
                                      PAIR ;
875
                                      PAIR ;
876
                                      SWAP ;
877
                                      PAIR ;
878
                                      SWAP ;
879
                                      PAIR ;
880
                                      SWAP }
881
                                    { DROP } } ;
882
                           DROP } } ;
883
                   NIL operation } } }
884
         { IF_LEFT
885
             { IF_LEFT
886
                 { IF_LEFT
887
                     { SWAP ;
888
                       DUP ;
889
                       DUG 2 ;
890
                       CAR ;
891
                       CAR ;
892
                       CAR ;
893
                       SENDER ;
894
                       COMPARE ;
895
                       EQ ;
896
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
897
                       SWAP ;
898
                       UNPAIR ;
899
                       UNPAIR ;
900
                       CDR ;
901
                       DIG 3 ;
902
                       PAIR ;
903
                       PAIR ;
904
                       PAIR }
905
                     { SWAP ;
906
                       DUP ;
907
                       DUG 2 ;
908
                       CAR ;
909
                       CAR ;
910
                       CAR ;
911
                       SENDER ;
912
                       COMPARE ;
913
                       EQ ;
914
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
915
                       SWAP ;
916
                       UNPAIR ;
917
                       UNPAIR ;
918
                       UNPAIR ;
919
                       SWAP ;
920
                       CAR ;
921
                       DIG 4 ;
922
                       SWAP ;
923
                       PAIR ;
924
                       SWAP ;
925
                       PAIR ;
926
                       PAIR ;
927
                       PAIR } }
928
                 { IF_LEFT
929
                     { SWAP ;
930
                       DUP ;
931
                       DUG 2 ;
932
                       CAR ;
933
                       CAR ;
934
                       CAR ;
935
                       SENDER ;
936
                       COMPARE ;
937
                       EQ ;
938
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
939
                       SWAP ;
940
                       UNPAIR ;
941
                       SWAP ;
942
                       UNPAIR ;
943
                       UNPAIR ;
944
                       DUP 5 ;
945
                       CDR ;
946
                       SOME ;
947
                       DIG 5 ;
948
                       CAR ;
949
                       UPDATE ;
950
                       PAIR ;
951
                       PAIR ;
952
                       SWAP ;
953
                       PAIR }
954
                     { IF_LEFT
955
                         { SWAP ;
956
                           DUP ;
957
                           DUG 2 ;
958
                           CAR ;
959
                           CAR ;
960
                           CAR ;
961
                           SENDER ;
962
                           COMPARE ;
963
                           EQ ;
964
                           IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
965
                           SWAP ;
966
                           UNPAIR ;
967
                           SWAP ;
968
                           UNPAIR ;
969
                           UNPAIR ;
970
                           SWAP ;
971
                           CAR ;
972
                           DIG 4 ;
973
                           SWAP ;
974
                           PAIR ;
975
                           SWAP ;
976
                           PAIR ;
977
                           PAIR ;
978
                           SWAP ;
979
                           PAIR }
980
                         { SWAP ;
981
                           DUP ;
982
                           DUG 2 ;
983
                           CAR ;
984
                           CAR ;
985
                           CAR ;
986
                           SENDER ;
987
                           COMPARE ;
988
                           EQ ;
989
                           IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
990
                           SWAP ;
991
                           DUP ;
992
                           DUG 2 ;
993
                           GET 5 ;
994
                           CDR ;
995
                           SWAP ;
996
                           DUP ;
997
                           DUG 2 ;
998
                           GET 4 ;
999
                           MEM ;
1000
                           IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
1001
                           SWAP ;
1002
                           DUP ;
1003
                           DUG 2 ;
1004
                           GET 5 ;
1005
                           CAR ;
1006
                           SWAP ;
1007
                           DUP ;
1008
                           DUG 2 ;
1009
                           GET 4 ;
1010
                           MEM ;
1011
                           IF
1012
                             {}
1013
                             { PUSH string "FLUX_TOKEN_FRACTION_UNDEFINED" ; FAILWITH } ;
1014
                           SWAP ;
1015
                           UNPAIR ;
1016
                           SWAP ;
1017
                           UNPAIR ;
1018
                           SWAP ;
1019
                           UNPAIR ;
1020
                           UNPAIR ;
1021
                           DUP ;
1022
                           DUP 7 ;
1023
                           GET 4 ;
1024
                           DUP ;
1025
                           DUG 2 ;
1026
                           GET ;
1027
                           IF_NONE { PUSH int 1015 ; FAILWITH } {} ;
1028
                           DUP 8 ;
1029
                           GET 3 ;
1030
                           SOME ;
1031
                           DIG 8 ;
1032
                           CAR ;
1033
                           UPDATE ;
1034
                           SOME ;
1035
                           SWAP ;
1036
                           UPDATE ;
1037
                           PAIR ;
1038
                           PAIR ;
1039
                           SWAP ;
1040
                           PAIR ;
1041
                           SWAP ;
1042
                           PAIR } } } }
1043
             { IF_LEFT
1044
                 { IF_LEFT
1045
                     { SWAP ;
1046
                       DUP ;
1047
                       DUG 2 ;
1048
                       GET 3 ;
1049
                       GET 4 ;
1050
                       IF { PUSH string "FLUX_PAUSED" ; FAILWITH } {} ;
1051
                       DUP ;
1052
                       ITER { DUP ;
1053
                              CDR ;
1054
                              ITER { DUP 4 ;
1055
                                     CAR ;
1056
                                     CAR ;
1057
                                     CAR ;
1058
                                     SENDER ;
1059
                                     COMPARE ;
1060
                                     EQ ;
1061
                                     IF
1062
                                       { PUSH bool True }
1063
                                       { SENDER ; DUP 3 ; CAR ; COMPARE ; EQ } ;
1064
                                     IF
1065
                                       { PUSH bool True }
1066
                                       { DUP 4 ;
1067
                                         GET 3 ;
1068
                                         GET 3 ;
1069
                                         SWAP ;
1070
                                         DUP ;
1071
                                         DUG 2 ;
1072
                                         GET 3 ;
1073
                                         SENDER ;
1074
                                         DUP 5 ;
1075
                                         CAR ;
1076
                                         PAIR 3 ;
1077
                                         MEM } ;
1078
                                     IF
1079
                                       {}
1080
                                       { PUSH string "FLUX_NOT_OPERATOR" ; FAILWITH } ;
1081
                                     DUP 4 ;
1082
                                     GET 5 ;
1083
                                     CDR ;
1084
                                     SWAP ;
1085
                                     DUP ;
1086
                                     DUG 2 ;
1087
                                     GET 3 ;
1088
                                     MEM ;
1089
                                     IF
1090
                                       {}
1091
                                       { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
1092
                                     DUP ;
1093
                                     GET 4 ;
1094
                                     PUSH nat 0 ;
1095
                                     COMPARE ;
1096
                                     LT ;
1097
                                     IF
1098
                                       { DUP ;
1099
                                         GET 4 ;
1100
                                         DUP 5 ;
1101
                                         CAR ;
1102
                                         GET 6 ;
1103
                                         DUP 3 ;
1104
                                         GET 3 ;
1105
                                         DUP 5 ;
1106
                                         CAR ;
1107
                                         PAIR ;
1108
                                         GET ;
1109
                                         IF_NONE { PUSH int 673 ; FAILWITH } {} ;
1110
                                         COMPARE ;
1111
                                         GE ;
1112
                                         IF
1113
                                           {}
1114
                                           { PUSH string "FLUX_INSUFFICIENT_BALANCE" ;
1115
                                             FAILWITH } ;
1116
                                         DUP 4 ;
1117
                                         UNPAIR ;
1118
                                         UNPAIR ;
1119
                                         SWAP ;
1120
                                         UNPAIR ;
1121
                                         SWAP ;
1122
                                         UNPAIR ;
1123
                                         SWAP ;
1124
                                         DUP ;
1125
                                         DUP 7 ;
1126
                                         GET 3 ;
1127
                                         DUP 9 ;
1128
                                         CAR ;
1129
                                         PAIR ;
1130
                                         DUP ;
1131
                                         DUG 2 ;
1132
                                         GET ;
1133
                                         IF_NONE { PUSH int 677 ; FAILWITH } { DROP } ;
1134
                                         DUP 7 ;
1135
                                         GET 4 ;
1136
                                         DIG 10 ;
1137
                                         CAR ;
1138
                                         GET 6 ;
1139
                                         DUP 9 ;
1140
                                         GET 3 ;
1141
                                         DUP 11 ;
1142
                                         CAR ;
1143
                                         PAIR ;
1144
                                         GET ;
1145
                                         IF_NONE { PUSH int 677 ; FAILWITH } {} ;
1146
                                         SUB ;
1147
                                         ISNAT ;
1148
                                         IF_NONE { PUSH int 677 ; FAILWITH } {} ;
1149
                                         SOME ;
1150
                                         SWAP ;
1151
                                         UPDATE ;
1152
                                         SWAP ;
1153
                                         PAIR ;
1154
                                         SWAP ;
1155
                                         PAIR ;
1156
                                         SWAP ;
1157
                                         PAIR ;
1158
                                         PAIR ;
1159
                                         DUP ;
1160
                                         DUG 4 ;
1161
                                         CAR ;
1162
                                         GET 6 ;
1163
                                         SWAP ;
1164
                                         DUP ;
1165
                                         GET 3 ;
1166
                                         SWAP ;
1167
                                         DUP ;
1168
                                         DUG 3 ;
1169
                                         CAR ;
1170
                                         PAIR ;
1171
                                         MEM ;
1172
                                         IF
1173
                                           { DIG 3 ;
1174
                                             UNPAIR ;
1175
                                             UNPAIR ;
1176
                                             SWAP ;
1177
                                             UNPAIR ;
1178
                                             SWAP ;
1179
                                             UNPAIR ;
1180
                                             SWAP ;
1181
                                             DUP ;
1182
                                             DIG 6 ;
1183
                                             DUP ;
1184
                                             GET 3 ;
1185
                                             SWAP ;
1186
                                             DUP ;
1187
                                             DUG 8 ;
1188
                                             CAR ;
1189
                                             PAIR ;
1190
                                             DUP ;
1191
                                             DUG 2 ;
1192
                                             GET ;
1193
                                             IF_NONE { PUSH int 680 ; FAILWITH } {} ;
1194
                                             DIG 7 ;
1195
                                             GET 4 ;
1196
                                             ADD ;
1197
                                             SOME ;
1198
                                             SWAP ;
1199
                                             UPDATE ;
1200
                                             SWAP ;
1201
                                             PAIR ;
1202
                                             SWAP ;
1203
                                             PAIR ;
1204
                                             SWAP ;
1205
                                             PAIR ;
1206
                                             PAIR ;
1207
                                             DUG 2 }
1208
                                           { DIG 3 ;
1209
                                             UNPAIR ;
1210
                                             UNPAIR ;
1211
                                             SWAP ;
1212
                                             UNPAIR ;
1213
                                             SWAP ;
1214
                                             UNPAIR ;
1215
                                             SWAP ;
1216
                                             DUP 6 ;
1217
                                             GET 4 ;
1218
                                             SOME ;
1219
                                             DIG 6 ;
1220
                                             DUP ;
1221
                                             GET 3 ;
1222
                                             SWAP ;
1223
                                             CAR ;
1224
                                             PAIR ;
1225
                                             UPDATE ;
1226
                                             SWAP ;
1227
                                             PAIR ;
1228
                                             SWAP ;
1229
                                             PAIR ;
1230
                                             SWAP ;
1231
                                             PAIR ;
1232
                                             PAIR ;
1233
                                             DUG 2 } }
1234
                                       { DROP } } ;
1235
                              DROP } ;
1236
                       DROP }
1237
                     { SWAP ;
1238
                       DUP ;
1239
                       DUG 2 ;
1240
                       CAR ;
1241
                       CAR ;
1242
                       CAR ;
1243
                       SENDER ;
1244
                       COMPARE ;
1245
                       EQ ;
1246
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
1247
                       DUP ;
1248
                       ITER { DIG 2 ;
1249
                              UNPAIR ;
1250
                              UNPAIR ;
1251
                              SWAP ;
1252
                              UNPAIR ;
1253
                              DUP 5 ;
1254
                              CDR ;
1255
                              SOME ;
1256
                              DIG 5 ;
1257
                              CAR ;
1258
                              UPDATE ;
1259
                              PAIR ;
1260
                              SWAP ;
1261
                              PAIR ;
1262
                              PAIR ;
1263
                              SWAP } ;
1264
                       DROP } }
1265
                 { IF_LEFT
1266
                     { SWAP ;
1267
                       DUP ;
1268
                       DUG 2 ;
1269
                       CAR ;
1270
                       CAR ;
1271
                       CAR ;
1272
                       SENDER ;
1273
                       COMPARE ;
1274
                       EQ ;
1275
                       IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } ;
1276
                       DUP ;
1277
                       ITER { DUP 3 ;
1278
                              GET 5 ;
1279
                              CDR ;
1280
                              SWAP ;
1281
                              DUP ;
1282
                              DUG 2 ;
1283
                              CAR ;
1284
                              MEM ;
1285
                              IF {} { PUSH string "FLUX_TOKEN_UNDEFINED" ; FAILWITH } ;
1286
                              DIG 2 ;
1287
                              UNPAIR ;
1288
                              UNPAIR ;
1289
                              SWAP ;
1290
                              UNPAIR ;
1291
                              SWAP ;
1292
                              UNPAIR ;
1293
                              DUP 6 ;
1294
                              CDR ;
1295
                              SOME ;
1296
                              DIG 6 ;
1297
                              CAR ;
1298
                              UPDATE ;
1299
                              PAIR ;
1300
                              SWAP ;
1301
                              PAIR ;
1302
                              SWAP ;
1303
                              PAIR ;
1304
                              PAIR ;
1305
                              SWAP } ;
1306
                       DROP }
1307
                     { IF_LEFT
1308
                         { DUP ;
1309
                           ITER { IF_LEFT
1310
                                    { DUP ;
1311
                                      CAR ;
1312
                                      SENDER ;
1313
                                      COMPARE ;
1314
                                      EQ ;
1315
                                      IF
1316
                                        { PUSH bool True }
1317
                                        { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
1318
                                      IF
1319
                                        {}
1320
                                        { PUSH string "FLUX_NOT_ADMIN_OR_OPERATOR" ;
1321
                                          FAILWITH } ;
1322
                                      DIG 2 ;
1323
                                      UNPAIR ;
1324
                                      SWAP ;
1325
                                      UNPAIR ;
1326
                                      UNPAIR ;
1327
                                      SWAP ;
1328
                                      UNPAIR ;
1329
                                      PUSH (option unit) (Some Unit) ;
1330
                                      DIG 6 ;
1331
                                      DUP ;
1332
                                      GET 4 ;
1333
                                      SWAP ;
1334
                                      DUP ;
1335
                                      GET 3 ;
1336
                                      SWAP ;
1337
                                      CAR ;
1338
                                      PAIR 3 ;
1339
                                      UPDATE ;
1340
                                      PAIR ;
1341
                                      SWAP ;
1342
                                      PAIR ;
1343
                                      PAIR ;
1344
                                      SWAP ;
1345
                                      PAIR ;
1346
                                      SWAP }
1347
                                    { DUP ;
1348
                                      CAR ;
1349
                                      SENDER ;
1350
                                      COMPARE ;
1351
                                      EQ ;
1352
                                      IF
1353
                                        { PUSH bool True }
1354
                                        { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
1355
                                      IF
1356
                                        {}
1357
                                        { PUSH string "FLUX_NOT_ADMIN_OR_OPERATOR" ;
1358
                                          FAILWITH } ;
1359
                                      DIG 2 ;
1360
                                      UNPAIR ;
1361
                                      SWAP ;
1362
                                      UNPAIR ;
1363
                                      UNPAIR ;
1364
                                      SWAP ;
1365
                                      UNPAIR ;
1366
                                      NONE unit ;
1367
                                      DIG 6 ;
1368
                                      DUP ;
1369
                                      GET 4 ;
1370
                                      SWAP ;
1371
                                      DUP ;
1372
                                      GET 3 ;
1373
                                      SWAP ;
1374
                                      CAR ;
1375
                                      PAIR 3 ;
1376
                                      UPDATE ;
1377
                                      PAIR ;
1378
                                      SWAP ;
1379
                                      PAIR ;
1380
                                      PAIR ;
1381
                                      SWAP ;
1382
                                      PAIR ;
1383
                                      SWAP } } ;
1384
                           DROP }
1385
                         { DROP ;
1386
                           DUP ;
1387
                           CAR ;
1388
                           CAR ;
1389
                           CAR ;
1390
                           SENDER ;
1391
                           COMPARE ;
1392
                           EQ ;
1393
                           IF {} { PUSH string "FLUX_NOT_ADMIN" ; FAILWITH } } } } } ;
1394
           NIL operation } ;
1395
       PAIR }