BCD

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