BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1Ka7j...3CXH
FA2Ledger
operations (30)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
573
 
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 444 ; 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
                   DUP ;
125
                   GET 4 ;
126
                   DUP 3 ;
127
                   CAR ;
128
                   CAR ;
129
                   CDR ;
130
                   COMPARE ;
131
                   EQ ;
132
                   IF {} { PUSH string "Token-IDs should be consecutive" ; FAILWITH } ;
133
                   SWAP ;
134
                   DUP ;
135
                   DUG 2 ;
136
                   UNPAIR ;
137
                   UNPAIR ;
138
                   CAR ;
139
                   DIG 4 ;
140
                   CAR ;
141
                   CAR ;
142
                   CDR ;
143
                   DUP ;
144
                   PUSH nat 1 ;
145
                   DUP 7 ;
146
                   GET 4 ;
147
                   ADD ;
148
                   DUP ;
149
                   DUG 2 ;
150
                   COMPARE ;
151
                   LE ;
152
                   IF { DROP } { SWAP ; DROP } ;
153
                   SWAP ;
154
                   PAIR ;
155
                   PAIR ;
156
                   PAIR ;
157
                   DUP ;
158
                   DUG 2 ;
159
                   CAR ;
160
                   GET 3 ;
161
                   SWAP ;
162
                   DUP ;
163
                   GET 4 ;
164
                   SWAP ;
165
                   DUP ;
166
                   DUG 3 ;
167
                   CAR ;
168
                   CAR ;
169
                   PAIR ;
170
                   MEM ;
171
                   IF
172
                     { SWAP ;
173
                       UNPAIR ;
174
                       UNPAIR ;
175
                       SWAP ;
176
                       UNPAIR ;
177
                       DUP ;
178
                       DIG 5 ;
179
                       DUP ;
180
                       GET 4 ;
181
                       SWAP ;
182
                       DUP ;
183
                       DUG 7 ;
184
                       CAR ;
185
                       CAR ;
186
                       PAIR ;
187
                       DUP ;
188
                       DUG 2 ;
189
                       GET ;
190
                       IF_NONE { PUSH int 555 ; FAILWITH } {} ;
191
                       DUP 7 ;
192
                       CAR ;
193
                       CDR ;
194
                       ADD ;
195
                       SOME ;
196
                       SWAP ;
197
                       UPDATE ;
198
                       PAIR ;
199
                       SWAP ;
200
                       PAIR ;
201
                       PAIR ;
202
                       SWAP }
203
                     { SWAP ;
204
                       UNPAIR ;
205
                       UNPAIR ;
206
                       SWAP ;
207
                       UNPAIR ;
208
                       DUP 5 ;
209
                       CAR ;
210
                       CDR ;
211
                       SOME ;
212
                       DIG 5 ;
213
                       DUP ;
214
                       GET 4 ;
215
                       SWAP ;
216
                       DUP ;
217
                       DUG 7 ;
218
                       CAR ;
219
                       CAR ;
220
                       PAIR ;
221
                       UPDATE ;
222
                       PAIR ;
223
                       SWAP ;
224
                       PAIR ;
225
                       PAIR ;
226
                       SWAP } ;
227
                   SWAP ;
228
                   DUP ;
229
                   DUG 2 ;
230
                   GET 5 ;
231
                   SWAP ;
232
                   DUP ;
233
                   DUG 2 ;
234
                   GET 4 ;
235
                   MEM ;
236
                   IF
237
                     { DROP }
238
                     { SWAP ;
239
                       DUP ;
240
                       GET 5 ;
241
                       DIG 2 ;
242
                       DUP ;
243
                       GET 3 ;
244
                       SWAP ;
245
                       DUP ;
246
                       DUG 4 ;
247
                       GET 4 ;
248
                       PAIR ;
249
                       SOME ;
250
                       DUP 4 ;
251
                       GET 4 ;
252
                       UPDATE ;
253
                       UPDATE 5 ;
254
                       DUP ;
255
                       GET 6 ;
256
                       DUP 3 ;
257
                       CAR ;
258
                       CDR ;
259
                       SOME ;
260
                       DIG 3 ;
261
                       GET 4 ;
262
                       UPDATE ;
263
                       UPDATE 6 } }
264
                 { SWAP ;
265
                   DUP ;
266
                   DUG 2 ;
267
                   CAR ;
268
                   CAR ;
269
                   CAR ;
270
                   SENDER ;
271
                   COMPARE ;
272
                   EQ ;
273
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
274
                   SWAP ;
275
                   UNPAIR ;
276
                   UNPAIR ;
277
                   CDR ;
278
                   DIG 3 ;
279
                   PAIR ;
280
                   PAIR ;
281
                   PAIR } ;
282
               NIL operation } }
283
         { IF_LEFT
284
             { IF_LEFT
285
                 { SWAP ;
286
                   DUP ;
287
                   DUG 2 ;
288
                   CAR ;
289
                   CAR ;
290
                   CAR ;
291
                   SENDER ;
292
                   COMPARE ;
293
                   EQ ;
294
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
295
                   SWAP ;
296
                   UNPAIR ;
297
                   UNPAIR ;
298
                   SWAP ;
299
                   UNPAIR ;
300
                   SWAP ;
301
                   DUP 5 ;
302
                   CDR ;
303
                   SOME ;
304
                   DIG 5 ;
305
                   CAR ;
306
                   UPDATE ;
307
                   SWAP ;
308
                   PAIR ;
309
                   SWAP ;
310
                   PAIR ;
311
                   PAIR }
312
                 { SWAP ;
313
                   DUP ;
314
                   DUG 2 ;
315
                   CAR ;
316
                   CAR ;
317
                   CAR ;
318
                   SENDER ;
319
                   COMPARE ;
320
                   EQ ;
321
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
322
                   SWAP ;
323
                   UNPAIR ;
324
                   SWAP ;
325
                   UNPAIR ;
326
                   CAR ;
327
                   DIG 3 ;
328
                   SWAP ;
329
                   PAIR ;
330
                   PAIR ;
331
                   SWAP ;
332
                   PAIR } }
333
             { IF_LEFT
334
                 { SWAP ;
335
                   DUP ;
336
                   DUG 2 ;
337
                   GET 3 ;
338
                   CDR ;
339
                   IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ;
340
                   DUP ;
341
                   ITER { DUP ;
342
                          CDR ;
343
                          ITER { DUP 4 ;
344
                                 CAR ;
345
                                 CAR ;
346
                                 CAR ;
347
                                 SENDER ;
348
                                 COMPARE ;
349
                                 EQ ;
350
                                 IF
351
                                   { PUSH bool True }
352
                                   { SENDER ; DUP 3 ; CAR ; COMPARE ; EQ } ;
353
                                 IF
354
                                   { PUSH bool True }
355
                                   { DUP 4 ;
356
                                     GET 3 ;
357
                                     CAR ;
358
                                     SWAP ;
359
                                     DUP ;
360
                                     DUG 2 ;
361
                                     GET 3 ;
362
                                     SENDER ;
363
                                     DUP 5 ;
364
                                     CAR ;
365
                                     PAIR 3 ;
366
                                     MEM } ;
367
                                 IF {} { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } ;
368
                                 DUP 4 ;
369
                                 GET 5 ;
370
                                 SWAP ;
371
                                 DUP ;
372
                                 DUG 2 ;
373
                                 GET 3 ;
374
                                 MEM ;
375
                                 IF
376
                                   {}
377
                                   { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
378
                                 DUP ;
379
                                 GET 4 ;
380
                                 PUSH nat 0 ;
381
                                 COMPARE ;
382
                                 LT ;
383
                                 IF
384
                                   { DUP ;
385
                                     GET 4 ;
386
                                     DUP 5 ;
387
                                     CAR ;
388
                                     GET 3 ;
389
                                     DUP 3 ;
390
                                     GET 3 ;
391
                                     DUP 5 ;
392
                                     CAR ;
393
                                     PAIR ;
394
                                     GET ;
395
                                     IF_NONE { PUSH int 422 ; FAILWITH } {} ;
396
                                     COMPARE ;
397
                                     GE ;
398
                                     IF
399
                                       {}
400
                                       { PUSH string "FA2_INSUFFICIENT_BALANCE" ;
401
                                         FAILWITH } ;
402
                                     DUP 4 ;
403
                                     UNPAIR ;
404
                                     UNPAIR ;
405
                                     SWAP ;
406
                                     UNPAIR ;
407
                                     DUP ;
408
                                     DUP 6 ;
409
                                     GET 3 ;
410
                                     DUP 8 ;
411
                                     CAR ;
412
                                     PAIR ;
413
                                     DUP ;
414
                                     DUG 2 ;
415
                                     GET ;
416
                                     IF_NONE { PUSH int 426 ; FAILWITH } { DROP } ;
417
                                     DUP 6 ;
418
                                     GET 4 ;
419
                                     DIG 9 ;
420
                                     CAR ;
421
                                     GET 3 ;
422
                                     DUP 8 ;
423
                                     GET 3 ;
424
                                     DUP 10 ;
425
                                     CAR ;
426
                                     PAIR ;
427
                                     GET ;
428
                                     IF_NONE { PUSH int 426 ; FAILWITH } {} ;
429
                                     SUB ;
430
                                     ISNAT ;
431
                                     IF_NONE { PUSH int 426 ; FAILWITH } {} ;
432
                                     SOME ;
433
                                     SWAP ;
434
                                     UPDATE ;
435
                                     PAIR ;
436
                                     SWAP ;
437
                                     PAIR ;
438
                                     PAIR ;
439
                                     DUP ;
440
                                     DUG 4 ;
441
                                     CAR ;
442
                                     GET 3 ;
443
                                     SWAP ;
444
                                     DUP ;
445
                                     GET 3 ;
446
                                     SWAP ;
447
                                     DUP ;
448
                                     DUG 3 ;
449
                                     CAR ;
450
                                     PAIR ;
451
                                     MEM ;
452
                                     IF
453
                                       { DIG 3 ;
454
                                         UNPAIR ;
455
                                         UNPAIR ;
456
                                         SWAP ;
457
                                         UNPAIR ;
458
                                         DUP ;
459
                                         DIG 5 ;
460
                                         DUP ;
461
                                         GET 3 ;
462
                                         SWAP ;
463
                                         DUP ;
464
                                         DUG 7 ;
465
                                         CAR ;
466
                                         PAIR ;
467
                                         DUP ;
468
                                         DUG 2 ;
469
                                         GET ;
470
                                         IF_NONE { PUSH int 429 ; FAILWITH } {} ;
471
                                         DIG 6 ;
472
                                         GET 4 ;
473
                                         ADD ;
474
                                         SOME ;
475
                                         SWAP ;
476
                                         UPDATE ;
477
                                         PAIR ;
478
                                         SWAP ;
479
                                         PAIR ;
480
                                         PAIR ;
481
                                         DUG 2 }
482
                                       { DIG 3 ;
483
                                         UNPAIR ;
484
                                         UNPAIR ;
485
                                         SWAP ;
486
                                         UNPAIR ;
487
                                         DUP 5 ;
488
                                         GET 4 ;
489
                                         SOME ;
490
                                         DIG 5 ;
491
                                         DUP ;
492
                                         GET 3 ;
493
                                         SWAP ;
494
                                         CAR ;
495
                                         PAIR ;
496
                                         UPDATE ;
497
                                         PAIR ;
498
                                         SWAP ;
499
                                         PAIR ;
500
                                         PAIR ;
501
                                         DUG 2 } }
502
                                   { DROP } } ;
503
                          DROP } ;
504
                   DROP }
505
                 { DUP ;
506
                   ITER { IF_LEFT
507
                            { DUP ;
508
                              CAR ;
509
                              SENDER ;
510
                              COMPARE ;
511
                              EQ ;
512
                              IF
513
                                { PUSH bool True }
514
                                { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
515
                              IF
516
                                {}
517
                                { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ;
518
                              DIG 2 ;
519
                              UNPAIR ;
520
                              SWAP ;
521
                              UNPAIR ;
522
                              UNPAIR ;
523
                              PUSH (option unit) (Some Unit) ;
524
                              DIG 5 ;
525
                              DUP ;
526
                              GET 4 ;
527
                              SWAP ;
528
                              DUP ;
529
                              GET 3 ;
530
                              SWAP ;
531
                              CAR ;
532
                              PAIR 3 ;
533
                              UPDATE ;
534
                              PAIR ;
535
                              PAIR ;
536
                              SWAP ;
537
                              PAIR ;
538
                              SWAP }
539
                            { DUP ;
540
                              CAR ;
541
                              SENDER ;
542
                              COMPARE ;
543
                              EQ ;
544
                              IF
545
                                { PUSH bool True }
546
                                { DUP 3 ; CAR ; CAR ; CAR ; SENDER ; COMPARE ; EQ } ;
547
                              IF
548
                                {}
549
                                { PUSH string "FA2_NOT_ADMIN_OR_OPERATOR" ; FAILWITH } ;
550
                              DIG 2 ;
551
                              UNPAIR ;
552
                              SWAP ;
553
                              UNPAIR ;
554
                              UNPAIR ;
555
                              NONE unit ;
556
                              DIG 5 ;
557
                              DUP ;
558
                              GET 4 ;
559
                              SWAP ;
560
                              DUP ;
561
                              GET 3 ;
562
                              SWAP ;
563
                              CAR ;
564
                              PAIR 3 ;
565
                              UPDATE ;
566
                              PAIR ;
567
                              PAIR ;
568
                              SWAP ;
569
                              PAIR ;
570
                              SWAP } } ;
571
                   DROP } } ;
572
           NIL operation } ;
573
       PAIR }