BCD

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