BCD

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