BCD

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