BCD

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