BCD

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