BCD

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