BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Control DAO Token
FA2
operations (14.9K)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
884
 
1
parameter (or
2
            (or
3
              (or
4
                (or (address %add_trusted_freezer)
5
                    (pair %balance_of
6
                      (list %requests (pair (address %owner) (nat %token_id)))
7
                      (contract %callback (list (pair
8
                                                (pair %request (address %owner)
9
                                                               (nat %token_id))
10
                                                (nat %balance))))))
11
                (or (address %change_admin)
12
                    (pair %freeze (pair (nat %amt) (address %freezer))
13
                                  (pair (nat %token_id) (address %user)))))
14
              (or (or (bool %operatorsAllowed) (address %rem_trusted_freezer))
15
                  (or
16
                    (list %transfer (pair (address %from_)
17
                                         (list %txs (pair (address %to_)
18
                                                         (pair (nat %token_id)
19
                                                               (nat %amount))))))
20
                    (pair %unfreeze (pair (option %amt nat) (address %freezer))
21
                                    (pair (nat %token_id) (address %user))))))
22
            (or
23
              (list %update_operators (or
24
                                       (pair %add_operator (address %owner)
25
                                                           (pair (address %operator)
26
                                                                 (nat %token_id)))
27
                                       (pair %remove_operator (address %owner)
28
                                                              (pair (address %operator)
29
                                                                    (nat %token_id)))))
30
              (bytes %update_token_icon)));
31
storage (pair
32
          (pair
33
            (pair (address %admin)
34
                  (big_map %ledger address
35
                                   (pair (pair (set %allowances address) (nat %balance))
36
                                         (pair (map %freezed address nat)
37
                                               (nat %max_freezed)))))
38
            (pair (big_map %metadata string bytes) (bool %operators_allowed)))
39
          (pair
40
            (pair
41
              (big_map %token_metadata nat
42
                                       (pair (nat %token_id)
43
                                             (map %token_info string bytes)))
44
              (nat %total_supply))
45
            (set %trusted_freezers address)));
46
code { LAMBDA
47
         (pair address
48
               (pair
49
                 (pair
50
                   (pair address
51
                         (big_map address
52
                                  (pair (pair (set address) nat)
53
                                        (pair (map address nat) nat))))
54
                   (pair (big_map string bytes) bool))
55
                 (pair (pair (big_map nat (pair nat (map string bytes))) nat)
56
                       (set address))))
57
         (pair (pair (set address) nat) (pair (map address nat) nat))
58
         { UNPAIR ;
59
           SWAP ;
60
           CAR ;
61
           CAR ;
62
           CDR ;
63
           SWAP ;
64
           GET ;
65
           IF_NONE
66
             { PUSH nat 0 ; EMPTY_MAP address nat ; PAIR ; PUSH nat 0 ; EMPTY_SET address ; PAIR ; PAIR }
67
             {} } ;
68
       SWAP ;
69
       UNPAIR ;
70
       IF_LEFT
71
         { IF_LEFT
72
             { IF_LEFT
73
                 { IF_LEFT
74
                     { DIG 2 ;
75
                       DROP ;
76
                       SWAP ;
77
                       DUP ;
78
                       DUG 2 ;
79
                       CAR ;
80
                       CAR ;
81
                       CAR ;
82
                       SENDER ;
83
                       COMPARE ;
84
                       NEQ ;
85
                       IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ;
86
                       SWAP ;
87
                       DUP ;
88
                       DUG 2 ;
89
                       CDR ;
90
                       CDR ;
91
                       SWAP ;
92
                       PUSH bool True ;
93
                       SWAP ;
94
                       UPDATE ;
95
                       SWAP ;
96
                       DUP ;
97
                       DUG 2 ;
98
                       CDR ;
99
                       CAR ;
100
                       PAIR ;
101
                       SWAP ;
102
                       CAR ;
103
                       PAIR ;
104
                       NIL operation ;
105
                       PAIR }
106
                     { SWAP ;
107
                       DUP ;
108
                       DIG 2 ;
109
                       NIL (pair (pair address nat) nat) ;
110
                       SWAP ;
111
                       DUP ;
112
                       DUG 2 ;
113
                       CAR ;
114
                       ITER { DUP ;
115
                              DUG 2 ;
116
                              CDR ;
117
                              PUSH nat 0 ;
118
                              COMPARE ;
119
                              NEQ ;
120
                              IF { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } {} ;
121
                              DUP 4 ;
122
                              DUP 3 ;
123
                              CAR ;
124
                              PAIR ;
125
                              DUP 7 ;
126
                              SWAP ;
127
                              EXEC ;
128
                              DIG 2 ;
129
                              SWAP ;
130
                              DUP ;
131
                              DUG 2 ;
132
                              CDR ;
133
                              CDR ;
134
                              DIG 2 ;
135
                              CAR ;
136
                              CDR ;
137
                              SUB ;
138
                              ISNAT ;
139
                              IF_NONE { PUSH string "NAT EXPECTED" ; FAILWITH } {} ;
140
                              SWAP ;
141
                              PAIR ;
142
                              CONS } ;
143
                       DIG 2 ;
144
                       DIG 4 ;
145
                       DROP 2 ;
146
                       NIL operation ;
147
                       DIG 2 ;
148
                       CDR ;
149
                       PUSH mutez 0 ;
150
                       DIG 3 ;
151
                       TRANSFER_TOKENS ;
152
                       CONS ;
153
                       PAIR } }
154
                 { IF_LEFT
155
                     { DIG 2 ;
156
                       DROP ;
157
                       SWAP ;
158
                       DUP ;
159
                       DUG 2 ;
160
                       CAR ;
161
                       CAR ;
162
                       CAR ;
163
                       SENDER ;
164
                       COMPARE ;
165
                       NEQ ;
166
                       IF
167
                         { DROP ; PUSH string "FA2_NOT_ADMIN" ; FAILWITH }
168
                         { SWAP ; DUP ; DUG 2 ; CDR ; DUP 3 ; CAR ; CDR ; DIG 3 ; CAR ; CAR ; CDR ; DIG 3 ; PAIR ; PAIR ; PAIR } ;
169
                       NIL operation ;
170
                       PAIR }
171
                     { DUP ;
172
                       DUG 2 ;
173
                       CAR ;
174
                       CAR ;
175
                       PAIR ;
176
                       SWAP ;
177
                       DUP ;
178
                       DUG 2 ;
179
                       CDR ;
180
                       CDR ;
181
                       DIG 2 ;
182
                       CAR ;
183
                       CDR ;
184
                       DIG 2 ;
185
                       UNPAIR ;
186
                       SWAP ;
187
                       DUP ;
188
                       DUG 2 ;
189
                       DUP 5 ;
190
                       PAIR ;
191
                       DIG 5 ;
192
                       SWAP ;
193
                       EXEC ;
194
                       DUP ;
195
                       DUG 2 ;
196
                       CDR ;
197
                       CAR ;
198
                       DUP 5 ;
199
                       GET ;
200
                       IF_NONE { PUSH nat 0 } {} ;
201
                       ADD ;
202
                       SWAP ;
203
                       DUP ;
204
                       DUG 2 ;
205
                       CAR ;
206
                       CDR ;
207
                       SWAP ;
208
                       DUP ;
209
                       DUG 2 ;
210
                       COMPARE ;
211
                       GT ;
212
                       IF { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH } {} ;
213
                       DUP 3 ;
214
                       CDR ;
215
                       CDR ;
216
                       DUP 5 ;
217
                       MEM ;
218
                       NOT ;
219
                       IF
220
                         { PUSH string "FA2_UNTRUSTED_FREEZER" ; FAILWITH }
221
                         { DUP 4 ;
222
                           SENDER ;
223
                           COMPARE ;
224
                           NEQ ;
225
                           IF
226
                             { PUSH string "FA2_ONLY_FREEZER_CAN_FREEZE" ; FAILWITH }
227
                             { SWAP ;
228
                               DUP ;
229
                               DUG 2 ;
230
                               CAR ;
231
                               CAR ;
232
                               DUP 5 ;
233
                               MEM ;
234
                               NOT ;
235
                               IF { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } {} } } ;
236
                       SWAP ;
237
                       DUP ;
238
                       DUG 2 ;
239
                       CDR ;
240
                       CDR ;
241
                       DUP 3 ;
242
                       CDR ;
243
                       CAR ;
244
                       DUP 3 ;
245
                       DIG 6 ;
246
                       SWAP ;
247
                       SOME ;
248
                       SWAP ;
249
                       UPDATE ;
250
                       PAIR ;
251
                       DIG 2 ;
252
                       CAR ;
253
                       PAIR ;
254
                       DUP 3 ;
255
                       CDR ;
256
                       DUP 4 ;
257
                       CAR ;
258
                       CDR ;
259
                       DUP 5 ;
260
                       CAR ;
261
                       CAR ;
262
                       CDR ;
263
                       DUP 4 ;
264
                       CDR ;
265
                       CDR ;
266
                       DUP 6 ;
267
                       COMPARE ;
268
                       GT ;
269
                       IF
270
                         { DIG 4 ; DUP 5 ; CDR ; CAR ; PAIR ; DIG 4 ; CAR ; PAIR }
271
                         { DIG 4 ; DROP ; DIG 3 } ;
272
                       DIG 5 ;
273
                       SWAP ;
274
                       SOME ;
275
                       SWAP ;
276
                       UPDATE ;
277
                       DIG 3 ;
278
                       CAR ;
279
                       CAR ;
280
                       CAR ;
281
                       PAIR ;
282
                       PAIR ;
283
                       PAIR ;
284
                       NIL operation ;
285
                       PAIR } } }
286
             { IF_LEFT
287
                 { DIG 2 ;
288
                   DROP ;
289
                   IF_LEFT
290
                     { SWAP ;
291
                       DUP ;
292
                       DUG 2 ;
293
                       CAR ;
294
                       CAR ;
295
                       CAR ;
296
                       SENDER ;
297
                       COMPARE ;
298
                       NEQ ;
299
                       IF
300
                         { DROP ; PUSH string "FA2_NOT_ADMIN" ; FAILWITH }
301
                         { SWAP ; DUP ; DUG 2 ; CDR ; SWAP ; DUP 3 ; CAR ; CDR ; CAR ; PAIR ; DIG 2 ; CAR ; CAR ; PAIR ; PAIR } ;
302
                       NIL operation ;
303
                       PAIR }
304
                     { SWAP ;
305
                       DUP ;
306
                       DUG 2 ;
307
                       CAR ;
308
                       CAR ;
309
                       CAR ;
310
                       SENDER ;
311
                       COMPARE ;
312
                       NEQ ;
313
                       IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ;
314
                       SWAP ;
315
                       DUP ;
316
                       DUG 2 ;
317
                       CDR ;
318
                       CDR ;
319
                       SWAP ;
320
                       PUSH bool False ;
321
                       SWAP ;
322
                       UPDATE ;
323
                       SWAP ;
324
                       DUP ;
325
                       DUG 2 ;
326
                       CDR ;
327
                       CAR ;
328
                       PAIR ;
329
                       SWAP ;
330
                       CAR ;
331
                       PAIR ;
332
                       NIL operation ;
333
                       PAIR } }
334
                 { IF_LEFT
335
                     { ITER { SWAP ;
336
                              DUP ;
337
                              DUP 3 ;
338
                              CAR ;
339
                              PAIR ;
340
                              DUP 4 ;
341
                              SWAP ;
342
                              EXEC ;
343
                              SENDER ;
344
                              DUP 4 ;
345
                              CAR ;
346
                              COMPARE ;
347
                              EQ ;
348
                              IF
349
                                { DROP ; UNIT }
350
                                { SWAP ;
351
                                  DUP ;
352
                                  DUG 2 ;
353
                                  CAR ;
354
                                  CDR ;
355
                                  CDR ;
356
                                  NOT ;
357
                                  IF { PUSH string "FA2_TX_DENIED" ; FAILWITH } {} ;
358
                                  CAR ;
359
                                  CAR ;
360
                                  SENDER ;
361
                                  MEM ;
362
                                  IF
363
                                    { UNIT }
364
                                    { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } } ;
365
                              DROP ;
366
                              SWAP ;
367
                              DUP ;
368
                              DUG 2 ;
369
                              CDR ;
370
                              ITER { SWAP ;
371
                                     DUP 3 ;
372
                                     SWAP ;
373
                                     DUP ;
374
                                     DUG 2 ;
375
                                     SWAP ;
376
                                     DUP ;
377
                                     DUG 2 ;
378
                                     CAR ;
379
                                     PAIR ;
380
                                     DUP 6 ;
381
                                     SWAP ;
382
                                     EXEC ;
383
                                     DUP 4 ;
384
                                     GET 3 ;
385
                                     PUSH nat 0 ;
386
                                     COMPARE ;
387
                                     NEQ ;
388
                                     IF
389
                                       { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH }
390
                                       {} ;
391
                                     DUP 4 ;
392
                                     GET 4 ;
393
                                     SWAP ;
394
                                     DUP ;
395
                                     DUG 2 ;
396
                                     CDR ;
397
                                     CDR ;
398
                                     DUP 3 ;
399
                                     CAR ;
400
                                     CDR ;
401
                                     SUB ;
402
                                     ISNAT ;
403
                                     IF_NONE
404
                                       { PUSH string "NAT EXPECTED" ; FAILWITH }
405
                                       {} ;
406
                                     COMPARE ;
407
                                     LT ;
408
                                     IF
409
                                       { PUSH string "FA2_INSUFFICIENT_BALANCE" ;
410
                                         FAILWITH }
411
                                       {} ;
412
                                     DUP ;
413
                                     CDR ;
414
                                     DUP 5 ;
415
                                     GET 4 ;
416
                                     DUP 3 ;
417
                                     CAR ;
418
                                     CDR ;
419
                                     SUB ;
420
                                     ABS ;
421
                                     DIG 2 ;
422
                                     CAR ;
423
                                     CAR ;
424
                                     PAIR ;
425
                                     PAIR ;
426
                                     DUP 3 ;
427
                                     CDR ;
428
                                     DUP 4 ;
429
                                     CAR ;
430
                                     CDR ;
431
                                     DUP 5 ;
432
                                     CAR ;
433
                                     CAR ;
434
                                     CDR ;
435
                                     DIG 3 ;
436
                                     DIG 4 ;
437
                                     CAR ;
438
                                     SWAP ;
439
                                     SOME ;
440
                                     SWAP ;
441
                                     UPDATE ;
442
                                     DIG 3 ;
443
                                     CAR ;
444
                                     CAR ;
445
                                     CAR ;
446
                                     PAIR ;
447
                                     PAIR ;
448
                                     PAIR ;
449
                                     DUP ;
450
                                     DUP 3 ;
451
                                     CAR ;
452
                                     PAIR ;
453
                                     DUP 5 ;
454
                                     SWAP ;
455
                                     EXEC ;
456
                                     DUP ;
457
                                     CDR ;
458
                                     DUP 4 ;
459
                                     GET 4 ;
460
                                     DUP 3 ;
461
                                     CAR ;
462
                                     CDR ;
463
                                     ADD ;
464
                                     DIG 2 ;
465
                                     CAR ;
466
                                     CAR ;
467
                                     PAIR ;
468
                                     PAIR ;
469
                                     SWAP ;
470
                                     DUP ;
471
                                     DUG 2 ;
472
                                     CDR ;
473
                                     DUP 3 ;
474
                                     CAR ;
475
                                     CDR ;
476
                                     DUP 4 ;
477
                                     CAR ;
478
                                     CAR ;
479
                                     CDR ;
480
                                     DIG 3 ;
481
                                     DIG 5 ;
482
                                     CAR ;
483
                                     SWAP ;
484
                                     SOME ;
485
                                     SWAP ;
486
                                     UPDATE ;
487
                                     DIG 3 ;
488
                                     CAR ;
489
                                     CAR ;
490
                                     CAR ;
491
                                     PAIR ;
492
                                     PAIR ;
493
                                     PAIR } ;
494
                              SWAP ;
495
                              DROP } ;
496
                       SWAP ;
497
                       DROP ;
498
                       NIL operation ;
499
                       PAIR }
500
                     { DUP ;
501
                       DUG 2 ;
502
                       CAR ;
503
                       CAR ;
504
                       PAIR ;
505
                       SWAP ;
506
                       DUP ;
507
                       DUG 2 ;
508
                       CDR ;
509
                       CDR ;
510
                       DIG 2 ;
511
                       CAR ;
512
                       CDR ;
513
                       DIG 2 ;
514
                       UNPAIR ;
515
                       SWAP ;
516
                       DUP ;
517
                       DUG 2 ;
518
                       DUP 5 ;
519
                       PAIR ;
520
                       DIG 5 ;
521
                       SWAP ;
522
                       EXEC ;
523
                       DUP 3 ;
524
                       CDR ;
525
                       CDR ;
526
                       DUP 5 ;
527
                       MEM ;
528
                       NOT ;
529
                       IF
530
                         { SENDER ;
531
                           DUP 6 ;
532
                           COMPARE ;
533
                           NEQ ;
534
                           IF
535
                             { PUSH string "FA2_ONLY_USER_CAN_UNFREEZE_UNTRUSTED_FREEZER" ;
536
                               FAILWITH }
537
                             { UNIT } }
538
                         { DUP 4 ;
539
                           SENDER ;
540
                           COMPARE ;
541
                           NEQ ;
542
                           IF
543
                             { PUSH string "FA2_ONLY_FREEZER_CAN_UNFREEZE" ; FAILWITH }
544
                             { DUP ;
545
                               CAR ;
546
                               CAR ;
547
                               DUP 5 ;
548
                               MEM ;
549
                               NOT ;
550
                               IF
551
                                 { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH }
552
                                 { UNIT } } } ;
553
                       DROP ;
554
                       DUP ;
555
                       CDR ;
556
                       CAR ;
557
                       DUP 5 ;
558
                       GET ;
559
                       IF_NONE { PUSH nat 0 } {} ;
560
                       DIG 2 ;
561
                       IF_NONE
562
                         { PUSH nat 0 ;
563
                           SWAP ;
564
                           DUP ;
565
                           DUG 2 ;
566
                           COMPARE ;
567
                           NEQ ;
568
                           IF
569
                             { SWAP ;
570
                               DUP ;
571
                               DUG 2 ;
572
                               CDR ;
573
                               CDR ;
574
                               DUP 3 ;
575
                               CDR ;
576
                               CAR ;
577
                               DIG 5 ;
578
                               NONE nat ;
579
                               SWAP ;
580
                               UPDATE ;
581
                               PAIR ;
582
                               DIG 2 ;
583
                               CAR ;
584
                               PAIR }
585
                             { DIG 3 ; DROP ; SWAP } }
586
                         { PUSH nat 0 ;
587
                           DUP 3 ;
588
                           COMPARE ;
589
                           EQ ;
590
                           IF
591
                             { DIG 4 ; DROP 2 ; PUSH string "NOTHING_FREEZED" ; FAILWITH }
592
                             { PUSH int 0 ;
593
                               SWAP ;
594
                               DUP ;
595
                               DUG 2 ;
596
                               DUP 4 ;
597
                               SUB ;
598
                               COMPARE ;
599
                               GT ;
600
                               IF
601
                                 { DUP 3 ;
602
                                   CDR ;
603
                                   CDR ;
604
                                   DUP 4 ;
605
                                   CDR ;
606
                                   CAR ;
607
                                   DIG 2 ;
608
                                   DUP 4 ;
609
                                   SUB ;
610
                                   ISNAT ;
611
                                   IF_NONE { PUSH nat 0 } {} ;
612
                                   DIG 6 ;
613
                                   SWAP ;
614
                                   SOME ;
615
                                   SWAP ;
616
                                   UPDATE ;
617
                                   PAIR ;
618
                                   DIG 2 ;
619
                                   CAR ;
620
                                   PAIR }
621
                                 { PUSH int 0 ;
622
                                   SWAP ;
623
                                   DUP 3 ;
624
                                   SUB ;
625
                                   COMPARE ;
626
                                   EQ ;
627
                                   IF
628
                                     { SWAP ;
629
                                       DUP ;
630
                                       DUG 2 ;
631
                                       CDR ;
632
                                       CDR ;
633
                                       DUP 3 ;
634
                                       CDR ;
635
                                       CAR ;
636
                                       DIG 5 ;
637
                                       NONE nat ;
638
                                       SWAP ;
639
                                       UPDATE ;
640
                                       PAIR ;
641
                                       DIG 2 ;
642
                                       CAR ;
643
                                       PAIR }
644
                                     { DIG 3 ;
645
                                       DROP ;
646
                                       PUSH string "CANT_UNFREEZE_MORE_THAN_FREEZED" ;
647
                                       FAILWITH } } } } ;
648
                       DUP ;
649
                       CDR ;
650
                       CDR ;
651
                       DIG 2 ;
652
                       COMPARE ;
653
                       EQ ;
654
                       IF
655
                         { PUSH nat 0 ;
656
                           SWAP ;
657
                           DUP ;
658
                           DUG 2 ;
659
                           CDR ;
660
                           CAR ;
661
                           ITER { CDR ;
662
                                  SWAP ;
663
                                  DUP ;
664
                                  DUG 2 ;
665
                                  SWAP ;
666
                                  DUP ;
667
                                  DUG 2 ;
668
                                  COMPARE ;
669
                                  GT ;
670
                                  IF { SWAP ; DROP } { DROP } } ;
671
                           SWAP ;
672
                           DUP ;
673
                           DUG 2 ;
674
                           CDR ;
675
                           CAR ;
676
                           PAIR ;
677
                           SWAP ;
678
                           CAR ;
679
                           PAIR }
680
                         {} ;
681
                       SWAP ;
682
                       DUP ;
683
                       DUG 2 ;
684
                       CDR ;
685
                       DUP 3 ;
686
                       CAR ;
687
                       CDR ;
688
                       DUP 4 ;
689
                       CAR ;
690
                       CAR ;
691
                       CDR ;
692
                       DIG 3 ;
693
                       DIG 5 ;
694
                       SWAP ;
695
                       SOME ;
696
                       SWAP ;
697
                       UPDATE ;
698
                       DIG 3 ;
699
                       CAR ;
700
                       CAR ;
701
                       CAR ;
702
                       PAIR ;
703
                       PAIR ;
704
                       PAIR ;
705
                       NIL operation ;
706
                       PAIR } } } }
707
         { IF_LEFT
708
             { ITER { IF_LEFT
709
                        { DUP ;
710
                          GET 4 ;
711
                          PUSH nat 0 ;
712
                          COMPARE ;
713
                          NEQ ;
714
                          IF { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } {} ;
715
                          DUP ;
716
                          CAR ;
717
                          SENDER ;
718
                          COMPARE ;
719
                          NEQ ;
720
                          IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } {} ;
721
                          SWAP ;
722
                          DUP ;
723
                          DUG 2 ;
724
                          SWAP ;
725
                          DUP ;
726
                          DUG 2 ;
727
                          CAR ;
728
                          PAIR ;
729
                          DUP 4 ;
730
                          SWAP ;
731
                          EXEC ;
732
                          DUP 3 ;
733
                          CDR ;
734
                          DUP 4 ;
735
                          CAR ;
736
                          CDR ;
737
                          DUP 5 ;
738
                          CAR ;
739
                          CAR ;
740
                          CDR ;
741
                          DUP 4 ;
742
                          CDR ;
743
                          DUP 5 ;
744
                          CAR ;
745
                          CDR ;
746
                          DIG 5 ;
747
                          CAR ;
748
                          CAR ;
749
                          DUP 7 ;
750
                          GET 3 ;
751
                          PUSH bool True ;
752
                          SWAP ;
753
                          UPDATE ;
754
                          PAIR ;
755
                          PAIR ;
756
                          DIG 4 ;
757
                          CAR ;
758
                          SWAP ;
759
                          SOME ;
760
                          SWAP ;
761
                          UPDATE ;
762
                          DIG 3 ;
763
                          CAR ;
764
                          CAR ;
765
                          CAR ;
766
                          PAIR ;
767
                          PAIR ;
768
                          PAIR }
769
                        { DUP ;
770
                          GET 4 ;
771
                          PUSH nat 0 ;
772
                          COMPARE ;
773
                          NEQ ;
774
                          IF { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } {} ;
775
                          DUP ;
776
                          CAR ;
777
                          SENDER ;
778
                          COMPARE ;
779
                          NEQ ;
780
                          IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } {} ;
781
                          SWAP ;
782
                          DUP ;
783
                          DUG 2 ;
784
                          SWAP ;
785
                          DUP ;
786
                          DUG 2 ;
787
                          CAR ;
788
                          PAIR ;
789
                          DUP 4 ;
790
                          SWAP ;
791
                          EXEC ;
792
                          DUP 3 ;
793
                          CDR ;
794
                          DUP 4 ;
795
                          CAR ;
796
                          CDR ;
797
                          DUP 5 ;
798
                          CAR ;
799
                          CAR ;
800
                          CDR ;
801
                          DUP 4 ;
802
                          CDR ;
803
                          DUP 5 ;
804
                          CAR ;
805
                          CDR ;
806
                          DIG 5 ;
807
                          CAR ;
808
                          CAR ;
809
                          DUP 7 ;
810
                          GET 3 ;
811
                          PUSH bool False ;
812
                          SWAP ;
813
                          UPDATE ;
814
                          PAIR ;
815
                          PAIR ;
816
                          DIG 4 ;
817
                          CAR ;
818
                          SWAP ;
819
                          SOME ;
820
                          SWAP ;
821
                          UPDATE ;
822
                          DIG 3 ;
823
                          CAR ;
824
                          CAR ;
825
                          CAR ;
826
                          PAIR ;
827
                          PAIR ;
828
                          PAIR } } ;
829
               SWAP ;
830
               DROP ;
831
               NIL operation ;
832
               PAIR }
833
             { DIG 2 ;
834
               DROP ;
835
               SWAP ;
836
               DUP ;
837
               DUG 2 ;
838
               CAR ;
839
               CAR ;
840
               CAR ;
841
               SENDER ;
842
               COMPARE ;
843
               NEQ ;
844
               IF { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } {} ;
845
               SWAP ;
846
               DUP ;
847
               DUG 2 ;
848
               CDR ;
849
               CAR ;
850
               CAR ;
851
               PUSH nat 0 ;
852
               GET ;
853
               IF_NONE
854
                 { DROP }
855
                 { DUP 3 ;
856
                   CDR ;
857
                   CDR ;
858
                   DUP 4 ;
859
                   CDR ;
860
                   CAR ;
861
                   CDR ;
862
                   DUP 5 ;
863
                   CDR ;
864
                   CAR ;
865
                   CAR ;
866
                   DUP 4 ;
867
                   CDR ;
868
                   DIG 5 ;
869
                   SOME ;
870
                   PUSH string "thumbnailUri" ;
871
                   UPDATE ;
872
                   DIG 4 ;
873
                   CAR ;
874
                   PAIR ;
875
                   SOME ;
876
                   PUSH nat 0 ;
877
                   UPDATE ;
878
                   PAIR ;
879
                   PAIR ;
880
                   SWAP ;
881
                   CAR ;
882
                   PAIR } ;
883
               NIL operation ;
884
               PAIR } } }