BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1Lyd3...d7QJ
FA2Ledger
operations (5)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
711
 
1
parameter (or
2
            (or
3
              (or (pair %assign_metadata (map %metadata string bytes) (nat %token_id))
4
                  (or
5
                    (pair %balance_of
6
                      (list %requests (pair (address %owner) (nat %token_id)))
7
                      (contract %callback (list (pair
8
                                                (pair %request (address %owner)
9
                                                               (nat %token_id))
10
                                                (nat %balance)))))
11
                    (pair %mint
12
                      (pair (address %address) (pair (nat %issuer_id) (nat %iteration)))
13
                      (pair (map %metadata string bytes)
14
                            (pair (nat %royalties) (nat %token_id))))))
15
              (or (address %set_administrator)
16
                  (or (address %set_issuer) (pair %set_metadata (string %k) (bytes %v)))))
17
            (or
18
              (or (bool %set_pause)
19
                  (or (address %set_signer) (address %set_treasury_address)))
20
              (or
21
                (list %transfer (pair (address %from_)
22
                                     (list %txs (pair (address %to_)
23
                                                     (pair (nat %token_id) (nat %amount))))))
24
                (or (mutez %transfer_xtz_treasury)
25
                    (list %update_operators (or
26
                                             (pair %add_operator (address %owner)
27
                                                                 (pair
28
                                                                   (address %operator)
29
                                                                   (nat %token_id)))
30
                                             (pair %remove_operator (address %owner)
31
                                                                    (pair
32
                                                                      (address %operator)
33
                                                                      (nat %token_id)))))))));
34
storage (pair
35
          (pair (pair (address %administrator) (nat %all_tokens))
36
                (pair (address %issuer)
37
                      (pair (big_map %ledger (pair address nat) nat)
38
                            (big_map %metadata string bytes))))
39
          (pair
40
            (pair
41
              (big_map %operators
42
                (pair (address %owner) (pair (address %operator) (nat %token_id)))
43
                unit)
44
              (pair (bool %paused) (address %signer)))
45
            (pair
46
              (big_map %token_data nat
47
                                   (pair (pair (bool %assigned) (nat %issuer_id))
48
                                         (pair (nat %iteration) (nat %royalties))))
49
              (pair
50
                (big_map %token_metadata nat
51
                                         (pair (nat %token_id)
52
                                               (map %token_info string bytes)))
53
                (address %treasury_address)))));
54
code { CAST (pair
55
              (or
56
                (or
57
                  (or (pair (map string bytes) nat)
58
                      (or
59
                        (pair (list (pair address nat))
60
                              (contract (list (pair (pair address nat) nat))))
61
                        (pair (pair address (pair nat nat))
62
                              (pair (map string bytes) (pair nat nat)))))
63
                  (or address (or address (pair string bytes))))
64
                (or (or bool (or address address))
65
                    (or (list (pair address (list (pair address (pair nat nat)))))
66
                        (or mutez
67
                            (list (or (pair address (pair address nat))
68
                                     (pair address (pair address nat))))))))
69
              (pair
70
                (pair (pair address nat)
71
                      (pair address
72
                            (pair (big_map (pair address nat) nat)
73
                                  (big_map string bytes))))
74
                (pair
75
                  (pair (big_map (pair address (pair address nat)) unit)
76
                        (pair bool address))
77
                  (pair (big_map nat (pair (pair bool nat) (pair nat nat)))
78
                        (pair (big_map nat (pair nat (map string bytes))) address))))) ;
79
       UNPAIR ;
80
       IF_LEFT
81
         { IF_LEFT
82
             { IF_LEFT
83
                 { SWAP ;
84
                   DUP ;
85
                   DUG 2 ;
86
                   GET 3 ;
87
                   GET 4 ;
88
                   SENDER ;
89
                   COMPARE ;
90
                   EQ ;
91
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
92
                   SWAP ;
93
                   DUP ;
94
                   DUG 2 ;
95
                   GET 5 ;
96
                   SWAP ;
97
                   DUP ;
98
                   DUG 2 ;
99
                   CDR ;
100
                   MEM ;
101
                   IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
102
                   SWAP ;
103
                   DUP ;
104
                   DUG 2 ;
105
                   GET 7 ;
106
                   SWAP ;
107
                   DUP ;
108
                   DUG 2 ;
109
                   CDR ;
110
                   MEM ;
111
                   IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
112
                   PUSH bool False ;
113
                   DUP 3 ;
114
                   GET 5 ;
115
                   DUP 3 ;
116
                   CDR ;
117
                   GET ;
118
                   IF_NONE { PUSH int 580 ; FAILWITH } {} ;
119
                   CAR ;
120
                   CAR ;
121
                   COMPARE ;
122
                   EQ ;
123
                   IF {} { PUSH string "ALREADY_SIGNED" ; FAILWITH } ;
124
                   SWAP ;
125
                   DUP ;
126
                   GET 7 ;
127
                   DUP ;
128
                   DUP 4 ;
129
                   CDR ;
130
                   DUP ;
131
                   DUG 2 ;
132
                   GET ;
133
                   IF_NONE { PUSH int 583 ; FAILWITH } {} ;
134
                   DUP 5 ;
135
                   CAR ;
136
                   UPDATE 2 ;
137
                   SOME ;
138
                   SWAP ;
139
                   UPDATE ;
140
                   UPDATE 7 ;
141
                   DUP ;
142
                   GET 5 ;
143
                   DUP ;
144
                   DIG 3 ;
145
                   CDR ;
146
                   DUP ;
147
                   DUG 2 ;
148
                   GET ;
149
                   IF_NONE { PUSH int 585 ; FAILWITH } {} ;
150
                   UNPAIR ;
151
                   CDR ;
152
                   PUSH bool True ;
153
                   PAIR ;
154
                   PAIR ;
155
                   SOME ;
156
                   SWAP ;
157
                   UPDATE ;
158
                   UPDATE 5 ;
159
                   NIL operation }
160
                 { IF_LEFT
161
                     { SWAP ;
162
                       DUP ;
163
                       DUG 2 ;
164
                       GET 3 ;
165
                       GET 3 ;
166
                       IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ;
167
                       DUP ;
168
                       CAR ;
169
                       MAP { DUP 3 ;
170
                             GET 7 ;
171
                             SWAP ;
172
                             DUP ;
173
                             DUG 2 ;
174
                             CDR ;
175
                             MEM ;
176
                             IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
177
                             DUP 3 ;
178
                             CAR ;
179
                             GET 5 ;
180
                             SWAP ;
181
                             DUP ;
182
                             CDR ;
183
                             SWAP ;
184
                             DUP ;
185
                             DUG 3 ;
186
                             CAR ;
187
                             PAIR ;
188
                             MEM ;
189
                             IF
190
                               { DUP 3 ;
191
                                 CAR ;
192
                                 GET 5 ;
193
                                 SWAP ;
194
                                 DUP ;
195
                                 CDR ;
196
                                 SWAP ;
197
                                 DUP ;
198
                                 DUG 3 ;
199
                                 CAR ;
200
                                 PAIR ;
201
                                 GET ;
202
                                 IF_NONE { PUSH int 421 ; FAILWITH } {} ;
203
                                 SWAP ;
204
                                 PAIR }
205
                               { PUSH nat 0 ; SWAP ; PAIR } } ;
206
                       NIL operation ;
207
                       DIG 2 ;
208
                       CDR ;
209
                       PUSH mutez 0 ;
210
                       DIG 3 ;
211
                       TRANSFER_TOKENS ;
212
                       CONS }
213
                     { SWAP ;
214
                       DUP ;
215
                       DUG 2 ;
216
                       CAR ;
217
                       GET 3 ;
218
                       SENDER ;
219
                       COMPARE ;
220
                       EQ ;
221
                       IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
222
                       SWAP ;
223
                       UNPAIR ;
224
                       UNPAIR ;
225
                       SWAP ;
226
                       UNPAIR ;
227
                       SWAP ;
228
                       UNPAIR ;
229
                       PUSH (option nat) (Some 1) ;
230
                       DIG 6 ;
231
                       DUP ;
232
                       GET 6 ;
233
                       SWAP ;
234
                       DUP ;
235
                       DUG 8 ;
236
                       CAR ;
237
                       CAR ;
238
                       PAIR ;
239
                       UPDATE ;
240
                       PAIR ;
241
                       SWAP ;
242
                       PAIR ;
243
                       SWAP ;
244
                       PAIR ;
245
                       PAIR ;
246
                       DUP ;
247
                       GET 7 ;
248
                       DIG 2 ;
249
                       DUP ;
250
                       GET 3 ;
251
                       SWAP ;
252
                       DUP ;
253
                       DUG 4 ;
254
                       GET 6 ;
255
                       PAIR ;
256
                       SOME ;
257
                       DUP 4 ;
258
                       GET 6 ;
259
                       UPDATE ;
260
                       UPDATE 7 ;
261
                       DUP ;
262
                       GET 5 ;
263
                       DIG 2 ;
264
                       DUP ;
265
                       GET 5 ;
266
                       SWAP ;
267
                       DUP ;
268
                       DUG 4 ;
269
                       CAR ;
270
                       GET 4 ;
271
                       PAIR ;
272
                       DUP 4 ;
273
                       CAR ;
274
                       GET 3 ;
275
                       PUSH bool False ;
276
                       PAIR ;
277
                       PAIR ;
278
                       SOME ;
279
                       DIG 3 ;
280
                       GET 6 ;
281
                       UPDATE ;
282
                       UPDATE 5 ;
283
                       UNPAIR ;
284
                       UNPAIR ;
285
                       UNPAIR ;
286
                       SWAP ;
287
                       PUSH nat 1 ;
288
                       ADD ;
289
                       SWAP ;
290
                       PAIR ;
291
                       PAIR ;
292
                       PAIR ;
293
                       NIL operation } } }
294
             { IF_LEFT
295
                 { SWAP ;
296
                   DUP ;
297
                   DUG 2 ;
298
                   CAR ;
299
                   CAR ;
300
                   CAR ;
301
                   SENDER ;
302
                   COMPARE ;
303
                   EQ ;
304
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
305
                   SWAP ;
306
                   UNPAIR ;
307
                   UNPAIR ;
308
                   CDR ;
309
                   DIG 3 ;
310
                   PAIR ;
311
                   PAIR ;
312
                   PAIR }
313
                 { IF_LEFT
314
                     { SWAP ;
315
                       DUP ;
316
                       DUG 2 ;
317
                       CAR ;
318
                       CAR ;
319
                       CAR ;
320
                       SENDER ;
321
                       COMPARE ;
322
                       EQ ;
323
                       IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
324
                       SWAP ;
325
                       UNPAIR ;
326
                       UNPAIR ;
327
                       SWAP ;
328
                       CDR ;
329
                       DIG 3 ;
330
                       PAIR ;
331
                       SWAP ;
332
                       PAIR ;
333
                       PAIR }
334
                     { SWAP ;
335
                       DUP ;
336
                       DUG 2 ;
337
                       CAR ;
338
                       CAR ;
339
                       CAR ;
340
                       SENDER ;
341
                       COMPARE ;
342
                       EQ ;
343
                       IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
344
                       SWAP ;
345
                       UNPAIR ;
346
                       UNPAIR ;
347
                       SWAP ;
348
                       UNPAIR ;
349
                       SWAP ;
350
                       UNPAIR ;
351
                       SWAP ;
352
                       DUP 6 ;
353
                       CDR ;
354
                       SOME ;
355
                       DIG 6 ;
356
                       CAR ;
357
                       UPDATE ;
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 "FA2_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 "FA2_PAUSED" ; FAILWITH } {} ;
437
                   DUP ;
438
                   ITER { DUP ;
439
                          CDR ;
440
                          ITER { DUP 4 ;
441
                                 CAR ;
442
                                 CAR ;
443
                                 CAR ;
444
                                 SENDER ;
445
                                 COMPARE ;
446
                                 EQ ;
447
                                 IF
448
                                   { PUSH bool True }
449
                                   { SENDER ; DUP 3 ; CAR ; COMPARE ; EQ } ;
450
                                 IF
451
                                   { PUSH bool True }
452
                                   { DUP 4 ;
453
                                     GET 3 ;
454
                                     CAR ;
455
                                     SWAP ;
456
                                     DUP ;
457
                                     DUG 2 ;
458
                                     GET 3 ;
459
                                     SENDER ;
460
                                     DUP 5 ;
461
                                     CAR ;
462
                                     PAIR 3 ;
463
                                     MEM } ;
464
                                 IF
465
                                   { PUSH bool True }
466
                                   { SELF_ADDRESS ; SENDER ; COMPARE ; EQ } ;
467
                                 IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
468
                                 DUP 4 ;
469
                                 GET 7 ;
470
                                 SWAP ;
471
                                 DUP ;
472
                                 DUG 2 ;
473
                                 GET 3 ;
474
                                 MEM ;
475
                                 IF
476
                                   {}
477
                                   { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
478
                                 DUP ;
479
                                 GET 4 ;
480
                                 PUSH nat 0 ;
481
                                 COMPARE ;
482
                                 LT ;
483
                                 IF
484
                                   { DUP ;
485
                                     GET 4 ;
486
                                     DUP 5 ;
487
                                     CAR ;
488
                                     GET 5 ;
489
                                     DUP 3 ;
490
                                     GET 3 ;
491
                                     DUP 5 ;
492
                                     CAR ;
493
                                     PAIR ;
494
                                     GET ;
495
                                     IF_NONE { PUSH int 400 ; FAILWITH } {} ;
496
                                     COMPARE ;
497
                                     GE ;
498
                                     IF
499
                                       {}
500
                                       { PUSH string "FA2_INSUFFICIENT_BALANCE" ;
501
                                         FAILWITH } ;
502
                                     DUP 4 ;
503
                                     UNPAIR ;
504
                                     UNPAIR ;
505
                                     SWAP ;
506
                                     UNPAIR ;
507
                                     SWAP ;
508
                                     UNPAIR ;
509
                                     DUP ;
510
                                     DUP 7 ;
511
                                     GET 3 ;
512
                                     DUP 9 ;
513
                                     CAR ;
514
                                     PAIR ;
515
                                     DUP ;
516
                                     DUG 2 ;
517
                                     GET ;
518
                                     IF_NONE { PUSH int 404 ; FAILWITH } { DROP } ;
519
                                     DUP 7 ;
520
                                     GET 4 ;
521
                                     DIG 10 ;
522
                                     CAR ;
523
                                     GET 5 ;
524
                                     DUP 9 ;
525
                                     GET 3 ;
526
                                     DUP 11 ;
527
                                     CAR ;
528
                                     PAIR ;
529
                                     GET ;
530
                                     IF_NONE { PUSH int 404 ; FAILWITH } {} ;
531
                                     SUB ;
532
                                     ISNAT ;
533
                                     IF_NONE { PUSH int 404 ; FAILWITH } {} ;
534
                                     SOME ;
535
                                     SWAP ;
536
                                     UPDATE ;
537
                                     PAIR ;
538
                                     SWAP ;
539
                                     PAIR ;
540
                                     SWAP ;
541
                                     PAIR ;
542
                                     PAIR ;
543
                                     DUP ;
544
                                     DUG 4 ;
545
                                     CAR ;
546
                                     GET 5 ;
547
                                     SWAP ;
548
                                     DUP ;
549
                                     GET 3 ;
550
                                     SWAP ;
551
                                     DUP ;
552
                                     DUG 3 ;
553
                                     CAR ;
554
                                     PAIR ;
555
                                     MEM ;
556
                                     IF
557
                                       { DIG 3 ;
558
                                         UNPAIR ;
559
                                         UNPAIR ;
560
                                         SWAP ;
561
                                         UNPAIR ;
562
                                         SWAP ;
563
                                         UNPAIR ;
564
                                         DUP ;
565
                                         DIG 6 ;
566
                                         DUP ;
567
                                         GET 3 ;
568
                                         SWAP ;
569
                                         DUP ;
570
                                         DUG 8 ;
571
                                         CAR ;
572
                                         PAIR ;
573
                                         DUP ;
574
                                         DUG 2 ;
575
                                         GET ;
576
                                         IF_NONE { PUSH int 406 ; FAILWITH } {} ;
577
                                         DIG 7 ;
578
                                         GET 4 ;
579
                                         ADD ;
580
                                         SOME ;
581
                                         SWAP ;
582
                                         UPDATE ;
583
                                         PAIR ;
584
                                         SWAP ;
585
                                         PAIR ;
586
                                         SWAP ;
587
                                         PAIR ;
588
                                         PAIR ;
589
                                         DUG 2 }
590
                                       { DIG 3 ;
591
                                         UNPAIR ;
592
                                         UNPAIR ;
593
                                         SWAP ;
594
                                         UNPAIR ;
595
                                         SWAP ;
596
                                         UNPAIR ;
597
                                         DUP 6 ;
598
                                         GET 4 ;
599
                                         SOME ;
600
                                         DIG 6 ;
601
                                         DUP ;
602
                                         GET 3 ;
603
                                         SWAP ;
604
                                         CAR ;
605
                                         PAIR ;
606
                                         UPDATE ;
607
                                         PAIR ;
608
                                         SWAP ;
609
                                         PAIR ;
610
                                         SWAP ;
611
                                         PAIR ;
612
                                         PAIR ;
613
                                         DUG 2 } }
614
                                   { DROP } } ;
615
                          DROP } ;
616
                   DROP ;
617
                   NIL operation }
618
                 { IF_LEFT
619
                     { SWAP ;
620
                       DUP ;
621
                       DUG 2 ;
622
                       CAR ;
623
                       CAR ;
624
                       CAR ;
625
                       SENDER ;
626
                       COMPARE ;
627
                       EQ ;
628
                       IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
629
                       DUP ;
630
                       BALANCE ;
631
                       COMPARE ;
632
                       GE ;
633
                       IF {} { PUSH string "INSUFFISCIENT_BALANCE" ; FAILWITH } ;
634
                       NIL operation ;
635
                       DUP 3 ;
636
                       GET 8 ;
637
                       CONTRACT unit ;
638
                       IF_NONE { PUSH string "XTZ_TRANSFER_FAILED" ; FAILWITH } {} ;
639
                       DIG 2 ;
640
                       UNIT ;
641
                       TRANSFER_TOKENS ;
642
                       CONS }
643
                     { DUP ;
644
                       ITER { IF_LEFT
645
                                { DUP ;
646
                                  CAR ;
647
                                  SENDER ;
648
                                  COMPARE ;
649
                                  EQ ;
650
                                  IF
651
                                    { PUSH bool True }
652
                                    { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
653
                                  IF
654
                                    {}
655
                                    { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ;
656
                                  DIG 2 ;
657
                                  UNPAIR ;
658
                                  SWAP ;
659
                                  UNPAIR ;
660
                                  UNPAIR ;
661
                                  PUSH (option unit) (Some Unit) ;
662
                                  DIG 5 ;
663
                                  DUP ;
664
                                  GET 4 ;
665
                                  SWAP ;
666
                                  DUP ;
667
                                  GET 3 ;
668
                                  SWAP ;
669
                                  CAR ;
670
                                  PAIR 3 ;
671
                                  UPDATE ;
672
                                  PAIR ;
673
                                  PAIR ;
674
                                  SWAP ;
675
                                  PAIR ;
676
                                  SWAP }
677
                                { DUP ;
678
                                  CAR ;
679
                                  SENDER ;
680
                                  COMPARE ;
681
                                  EQ ;
682
                                  IF
683
                                    { PUSH bool True }
684
                                    { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
685
                                  IF
686
                                    {}
687
                                    { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ;
688
                                  DIG 2 ;
689
                                  UNPAIR ;
690
                                  SWAP ;
691
                                  UNPAIR ;
692
                                  UNPAIR ;
693
                                  NONE unit ;
694
                                  DIG 5 ;
695
                                  DUP ;
696
                                  GET 4 ;
697
                                  SWAP ;
698
                                  DUP ;
699
                                  GET 3 ;
700
                                  SWAP ;
701
                                  CAR ;
702
                                  PAIR 3 ;
703
                                  UPDATE ;
704
                                  PAIR ;
705
                                  PAIR ;
706
                                  SWAP ;
707
                                  PAIR ;
708
                                  SWAP } } ;
709
                       DROP ;
710
                       NIL operation } } } } ;
711
       PAIR }