BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Native Textures
FA2Ledger
operations (1.01K)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
577
 
1
parameter (or
2
            (or
3
              (pair %balance_of (list %requests (pair (address %owner) (nat %token_id)))
4
                                (contract %callback (list (pair
5
                                                          (pair %request
6
                                                            (address %owner)
7
                                                            (nat %token_id))
8
                                                          (nat %balance)))))
9
              (or
10
                (pair %mint (pair (address %address) (nat %amount))
11
                            (pair (map %metadata string bytes) (nat %token_id)))
12
                (address %set_administrator)))
13
            (or (or (pair %set_metadata (string %k) (bytes %v)) (bool %set_pause))
14
                (or
15
                  (list %transfer (pair (address %from_)
16
                                       (list %txs (pair (address %to_)
17
                                                       (pair (nat %token_id)
18
                                                             (nat %amount))))))
19
                  (list %update_operators (or
20
                                           (pair %add_operator (address %owner)
21
                                                               (pair (address %operator)
22
                                                                     (nat %token_id)))
23
                                           (pair %remove_operator (address %owner)
24
                                                                  (pair
25
                                                                    (address %operator)
26
                                                                    (nat %token_id))))))));
27
storage (pair
28
          (pair (pair (address %administrator) (nat %all_tokens))
29
                (pair (big_map %ledger (pair address nat) nat)
30
                      (big_map %metadata string bytes)))
31
          (pair
32
            (pair
33
              (big_map %operators
34
                (pair (address %owner) (pair (address %operator) (nat %token_id)))
35
                unit)
36
              (bool %paused))
37
            (pair
38
              (big_map %token_metadata nat
39
                                       (pair (nat %token_id)
40
                                             (map %token_info string bytes)))
41
              (big_map %total_supply nat nat))));
42
code { CAST (pair
43
              (or
44
                (or
45
                  (pair (list (pair address nat))
46
                        (contract (list (pair (pair address nat) nat))))
47
                  (or (pair (pair address nat) (pair (map string bytes) nat)) address))
48
                (or (or (pair string bytes) bool)
49
                    (or (list (pair address (list (pair address (pair nat nat)))))
50
                        (list (or (pair address (pair address nat))
51
                                 (pair address (pair address nat)))))))
52
              (pair
53
                (pair (pair address nat)
54
                      (pair (big_map (pair address nat) nat) (big_map string bytes)))
55
                (pair (pair (big_map (pair address (pair address nat)) unit) bool)
56
                      (pair (big_map nat (pair nat (map string bytes)))
57
                            (big_map nat nat))))) ;
58
       UNPAIR ;
59
       IF_LEFT
60
         { IF_LEFT
61
             { SWAP ;
62
               DUP ;
63
               DUG 2 ;
64
               GET 3 ;
65
               CDR ;
66
               IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ;
67
               DUP ;
68
               CAR ;
69
               MAP { DUP 3 ;
70
                     GET 5 ;
71
                     SWAP ;
72
                     DUP ;
73
                     DUG 2 ;
74
                     CDR ;
75
                     MEM ;
76
                     IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
77
                     DUP 3 ;
78
                     CAR ;
79
                     GET 3 ;
80
                     SWAP ;
81
                     DUP ;
82
                     CDR ;
83
                     SWAP ;
84
                     DUP ;
85
                     DUG 3 ;
86
                     CAR ;
87
                     PAIR ;
88
                     MEM ;
89
                     IF
90
                       { DUP 3 ;
91
                         CAR ;
92
                         GET 3 ;
93
                         SWAP ;
94
                         DUP ;
95
                         CDR ;
96
                         SWAP ;
97
                         DUP ;
98
                         DUG 3 ;
99
                         CAR ;
100
                         PAIR ;
101
                         GET ;
102
                         IF_NONE { PUSH int 425 ; FAILWITH } {} ;
103
                         SWAP ;
104
                         PAIR }
105
                       { PUSH nat 0 ; SWAP ; PAIR } } ;
106
               NIL operation ;
107
               DIG 2 ;
108
               CDR ;
109
               PUSH mutez 0 ;
110
               DIG 3 ;
111
               TRANSFER_TOKENS ;
112
               CONS }
113
             { IF_LEFT
114
                 { SWAP ;
115
                   DUP ;
116
                   DUG 2 ;
117
                   CAR ;
118
                   CAR ;
119
                   CAR ;
120
                   SENDER ;
121
                   COMPARE ;
122
                   EQ ;
123
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
124
                   SWAP ;
125
                   DUP ;
126
                   DUG 2 ;
127
                   CAR ;
128
                   GET 3 ;
129
                   SWAP ;
130
                   DUP ;
131
                   GET 4 ;
132
                   SWAP ;
133
                   DUP ;
134
                   DUG 3 ;
135
                   CAR ;
136
                   CAR ;
137
                   PAIR ;
138
                   MEM ;
139
                   IF
140
                     { SWAP ;
141
                       UNPAIR ;
142
                       UNPAIR ;
143
                       SWAP ;
144
                       UNPAIR ;
145
                       DUP ;
146
                       DIG 5 ;
147
                       DUP ;
148
                       GET 4 ;
149
                       SWAP ;
150
                       DUP ;
151
                       DUG 7 ;
152
                       CAR ;
153
                       CAR ;
154
                       PAIR ;
155
                       DUP ;
156
                       DUG 2 ;
157
                       GET ;
158
                       IF_NONE { PUSH int 535 ; FAILWITH } {} ;
159
                       DUP 7 ;
160
                       CAR ;
161
                       CDR ;
162
                       ADD ;
163
                       SOME ;
164
                       SWAP ;
165
                       UPDATE ;
166
                       PAIR ;
167
                       SWAP ;
168
                       PAIR ;
169
                       PAIR ;
170
                       SWAP }
171
                     { SWAP ;
172
                       UNPAIR ;
173
                       UNPAIR ;
174
                       SWAP ;
175
                       UNPAIR ;
176
                       DUP 5 ;
177
                       CAR ;
178
                       CDR ;
179
                       SOME ;
180
                       DIG 5 ;
181
                       DUP ;
182
                       GET 4 ;
183
                       SWAP ;
184
                       DUP ;
185
                       DUG 7 ;
186
                       CAR ;
187
                       CAR ;
188
                       PAIR ;
189
                       UPDATE ;
190
                       PAIR ;
191
                       SWAP ;
192
                       PAIR ;
193
                       PAIR ;
194
                       SWAP } ;
195
                   SWAP ;
196
                   DUP ;
197
                   DUG 2 ;
198
                   CAR ;
199
                   CAR ;
200
                   CDR ;
201
                   SWAP ;
202
                   DUP ;
203
                   DUG 2 ;
204
                   GET 4 ;
205
                   COMPARE ;
206
                   LT ;
207
                   IF
208
                     {}
209
                     { DUP ;
210
                       GET 4 ;
211
                       DUP 3 ;
212
                       CAR ;
213
                       CAR ;
214
                       CDR ;
215
                       COMPARE ;
216
                       EQ ;
217
                       IF
218
                         {}
219
                         { PUSH string "Token-IDs should be consecutive" ; FAILWITH } ;
220
                       SWAP ;
221
                       UNPAIR ;
222
                       UNPAIR ;
223
                       CAR ;
224
                       PUSH nat 1 ;
225
                       DUP 5 ;
226
                       GET 4 ;
227
                       ADD ;
228
                       SWAP ;
229
                       PAIR ;
230
                       PAIR ;
231
                       PAIR ;
232
                       DUP ;
233
                       GET 5 ;
234
                       DIG 2 ;
235
                       DUP ;
236
                       GET 3 ;
237
                       SWAP ;
238
                       DUP ;
239
                       DUG 4 ;
240
                       GET 4 ;
241
                       PAIR ;
242
                       SOME ;
243
                       DUP 4 ;
244
                       GET 4 ;
245
                       UPDATE ;
246
                       UPDATE 5 ;
247
                       SWAP } ;
248
                   SWAP ;
249
                   DUP ;
250
                   DUG 2 ;
251
                   DUP ;
252
                   GET 6 ;
253
                   DIG 3 ;
254
                   GET 6 ;
255
                   DUP 4 ;
256
                   GET 4 ;
257
                   GET ;
258
                   IF_NONE { PUSH nat 0 } {} ;
259
                   DUP 4 ;
260
                   CAR ;
261
                   CDR ;
262
                   ADD ;
263
                   SOME ;
264
                   DIG 3 ;
265
                   GET 4 ;
266
                   UPDATE ;
267
                   UPDATE 6 }
268
                 { SWAP ;
269
                   DUP ;
270
                   DUG 2 ;
271
                   CAR ;
272
                   CAR ;
273
                   CAR ;
274
                   SENDER ;
275
                   COMPARE ;
276
                   EQ ;
277
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
278
                   SWAP ;
279
                   UNPAIR ;
280
                   UNPAIR ;
281
                   CDR ;
282
                   DIG 3 ;
283
                   PAIR ;
284
                   PAIR ;
285
                   PAIR } ;
286
               NIL operation } }
287
         { IF_LEFT
288
             { IF_LEFT
289
                 { SWAP ;
290
                   DUP ;
291
                   DUG 2 ;
292
                   CAR ;
293
                   CAR ;
294
                   CAR ;
295
                   SENDER ;
296
                   COMPARE ;
297
                   EQ ;
298
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
299
                   SWAP ;
300
                   UNPAIR ;
301
                   UNPAIR ;
302
                   SWAP ;
303
                   UNPAIR ;
304
                   SWAP ;
305
                   DUP 5 ;
306
                   CDR ;
307
                   SOME ;
308
                   DIG 5 ;
309
                   CAR ;
310
                   UPDATE ;
311
                   SWAP ;
312
                   PAIR ;
313
                   SWAP ;
314
                   PAIR ;
315
                   PAIR }
316
                 { SWAP ;
317
                   DUP ;
318
                   DUG 2 ;
319
                   CAR ;
320
                   CAR ;
321
                   CAR ;
322
                   SENDER ;
323
                   COMPARE ;
324
                   EQ ;
325
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
326
                   SWAP ;
327
                   UNPAIR ;
328
                   SWAP ;
329
                   UNPAIR ;
330
                   CAR ;
331
                   DIG 3 ;
332
                   SWAP ;
333
                   PAIR ;
334
                   PAIR ;
335
                   SWAP ;
336
                   PAIR } }
337
             { IF_LEFT
338
                 { SWAP ;
339
                   DUP ;
340
                   DUG 2 ;
341
                   GET 3 ;
342
                   CDR ;
343
                   IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ;
344
                   DUP ;
345
                   ITER { DUP ;
346
                          CDR ;
347
                          ITER { DUP 4 ;
348
                                 CAR ;
349
                                 CAR ;
350
                                 CAR ;
351
                                 SENDER ;
352
                                 COMPARE ;
353
                                 EQ ;
354
                                 IF
355
                                   { PUSH bool True }
356
                                   { SENDER ; DUP 3 ; CAR ; COMPARE ; EQ } ;
357
                                 IF
358
                                   { PUSH bool True }
359
                                   { DUP 4 ;
360
                                     GET 3 ;
361
                                     CAR ;
362
                                     SWAP ;
363
                                     DUP ;
364
                                     DUG 2 ;
365
                                     GET 3 ;
366
                                     SENDER ;
367
                                     DUP 5 ;
368
                                     CAR ;
369
                                     PAIR 3 ;
370
                                     MEM } ;
371
                                 IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
372
                                 DUP 4 ;
373
                                 GET 5 ;
374
                                 SWAP ;
375
                                 DUP ;
376
                                 DUG 2 ;
377
                                 GET 3 ;
378
                                 MEM ;
379
                                 IF
380
                                   {}
381
                                   { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
382
                                 DUP ;
383
                                 GET 4 ;
384
                                 PUSH nat 0 ;
385
                                 COMPARE ;
386
                                 LT ;
387
                                 IF
388
                                   { DUP ;
389
                                     GET 4 ;
390
                                     DUP 5 ;
391
                                     CAR ;
392
                                     GET 3 ;
393
                                     DUP 3 ;
394
                                     GET 3 ;
395
                                     DUP 5 ;
396
                                     CAR ;
397
                                     PAIR ;
398
                                     GET ;
399
                                     IF_NONE { PUSH int 404 ; FAILWITH } {} ;
400
                                     COMPARE ;
401
                                     GE ;
402
                                     IF
403
                                       {}
404
                                       { PUSH string "FA2_INSUFFICIENT_BALANCE" ;
405
                                         FAILWITH } ;
406
                                     DUP 4 ;
407
                                     UNPAIR ;
408
                                     UNPAIR ;
409
                                     SWAP ;
410
                                     UNPAIR ;
411
                                     DUP ;
412
                                     DUP 6 ;
413
                                     GET 3 ;
414
                                     DUP 8 ;
415
                                     CAR ;
416
                                     PAIR ;
417
                                     DUP ;
418
                                     DUG 2 ;
419
                                     GET ;
420
                                     IF_NONE { PUSH int 407 ; FAILWITH } { DROP } ;
421
                                     DUP 6 ;
422
                                     GET 4 ;
423
                                     DIG 9 ;
424
                                     CAR ;
425
                                     GET 3 ;
426
                                     DUP 8 ;
427
                                     GET 3 ;
428
                                     DUP 10 ;
429
                                     CAR ;
430
                                     PAIR ;
431
                                     GET ;
432
                                     IF_NONE { PUSH int 408 ; FAILWITH } {} ;
433
                                     SUB ;
434
                                     ISNAT ;
435
                                     IF_NONE { PUSH int 407 ; FAILWITH } {} ;
436
                                     SOME ;
437
                                     SWAP ;
438
                                     UPDATE ;
439
                                     PAIR ;
440
                                     SWAP ;
441
                                     PAIR ;
442
                                     PAIR ;
443
                                     DUP ;
444
                                     DUG 4 ;
445
                                     CAR ;
446
                                     GET 3 ;
447
                                     SWAP ;
448
                                     DUP ;
449
                                     GET 3 ;
450
                                     SWAP ;
451
                                     DUP ;
452
                                     DUG 3 ;
453
                                     CAR ;
454
                                     PAIR ;
455
                                     MEM ;
456
                                     IF
457
                                       { DIG 3 ;
458
                                         UNPAIR ;
459
                                         UNPAIR ;
460
                                         SWAP ;
461
                                         UNPAIR ;
462
                                         DUP ;
463
                                         DIG 5 ;
464
                                         DUP ;
465
                                         GET 3 ;
466
                                         SWAP ;
467
                                         DUP ;
468
                                         DUG 7 ;
469
                                         CAR ;
470
                                         PAIR ;
471
                                         DUP ;
472
                                         DUG 2 ;
473
                                         GET ;
474
                                         IF_NONE { PUSH int 410 ; FAILWITH } {} ;
475
                                         DIG 6 ;
476
                                         GET 4 ;
477
                                         ADD ;
478
                                         SOME ;
479
                                         SWAP ;
480
                                         UPDATE ;
481
                                         PAIR ;
482
                                         SWAP ;
483
                                         PAIR ;
484
                                         PAIR ;
485
                                         DUG 2 }
486
                                       { DIG 3 ;
487
                                         UNPAIR ;
488
                                         UNPAIR ;
489
                                         SWAP ;
490
                                         UNPAIR ;
491
                                         DUP 5 ;
492
                                         GET 4 ;
493
                                         SOME ;
494
                                         DIG 5 ;
495
                                         DUP ;
496
                                         GET 3 ;
497
                                         SWAP ;
498
                                         CAR ;
499
                                         PAIR ;
500
                                         UPDATE ;
501
                                         PAIR ;
502
                                         SWAP ;
503
                                         PAIR ;
504
                                         PAIR ;
505
                                         DUG 2 } }
506
                                   { DROP } } ;
507
                          DROP } ;
508
                   DROP }
509
                 { DUP ;
510
                   ITER { IF_LEFT
511
                            { DUP ;
512
                              CAR ;
513
                              SENDER ;
514
                              COMPARE ;
515
                              EQ ;
516
                              IF
517
                                { PUSH bool True }
518
                                { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
519
                              IF
520
                                {}
521
                                { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ;
522
                              DIG 2 ;
523
                              UNPAIR ;
524
                              SWAP ;
525
                              UNPAIR ;
526
                              UNPAIR ;
527
                              PUSH (option unit) (Some Unit) ;
528
                              DIG 5 ;
529
                              DUP ;
530
                              GET 4 ;
531
                              SWAP ;
532
                              DUP ;
533
                              GET 3 ;
534
                              SWAP ;
535
                              CAR ;
536
                              PAIR 3 ;
537
                              UPDATE ;
538
                              PAIR ;
539
                              PAIR ;
540
                              SWAP ;
541
                              PAIR ;
542
                              SWAP }
543
                            { DUP ;
544
                              CAR ;
545
                              SENDER ;
546
                              COMPARE ;
547
                              EQ ;
548
                              IF
549
                                { PUSH bool True }
550
                                { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
551
                              IF
552
                                {}
553
                                { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ;
554
                              DIG 2 ;
555
                              UNPAIR ;
556
                              SWAP ;
557
                              UNPAIR ;
558
                              UNPAIR ;
559
                              NONE unit ;
560
                              DIG 5 ;
561
                              DUP ;
562
                              GET 4 ;
563
                              SWAP ;
564
                              DUP ;
565
                              GET 3 ;
566
                              SWAP ;
567
                              CAR ;
568
                              PAIR 3 ;
569
                              UPDATE ;
570
                              PAIR ;
571
                              PAIR ;
572
                              SWAP ;
573
                              PAIR ;
574
                              SWAP } } ;
575
                   DROP } } ;
576
           NIL operation } ;
577
       PAIR }