BCD

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