BCD

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