BCD

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