BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • The Solstice of Dreams
FA2Ledger
operations (115)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
                            (map %metadata string bytes)
12
                            (nat %token_id))
13
                (address %set_administrator)))
14
            (or (or (pair %set_metadata (string %k) (bytes %v)) (bool %set_pause))
15
                (or
16
                  (list %transfer (pair (address %from_)
17
                                       (list %txs (pair (address %to_) (nat %token_id)
18
                                                       (nat %amount)))))
19
                  (list %update_operators (or
20
                                           (pair %add_operator (address %owner)
21
                                                               (address %operator)
22
                                                               (nat %token_id))
23
                                           (pair %remove_operator (address %owner)
24
                                                                  (address %operator)
25
                                                                  (nat %token_id)))))));
26
storage (pair
27
          (pair (pair (address %administrator) (nat %all_tokens))
28
                (big_map %ledger (pair address nat) nat)
29
                (big_map %metadata string bytes))
30
          (pair
31
            (big_map %operators
32
              (pair (address %owner) (address %operator) (nat %token_id))
33
              unit)
34
            (bool %paused))
35
          (big_map %token_metadata nat
36
                                   (pair (nat %token_id) (map %token_info string bytes)))
37
          (big_map %total_supply nat nat));
38
code { CAST (pair
39
              (or
40
                (or
41
                  (pair (list (pair address nat))
42
                        (contract (list (pair (pair address nat) nat))))
43
                  (or (pair (pair address nat) (pair (map string bytes) nat)) address))
44
                (or (or (pair string bytes) bool)
45
                    (or (list (pair address (list (pair address (pair nat nat)))))
46
                        (list (or (pair address (pair address nat))
47
                                 (pair address (pair address nat)))))))
48
              (pair
49
                (pair (pair address nat)
50
                      (pair (big_map (pair address nat) nat) (big_map string bytes)))
51
                (pair (pair (big_map (pair address (pair address nat)) unit) bool)
52
                      (pair (big_map nat (pair nat (map string bytes)))
53
                            (big_map nat nat))))) ;
54
       UNPAIR ;
55
       IF_LEFT
56
         { IF_LEFT
57
             { SWAP ;
58
               DUP ;
59
               DUG 2 ;
60
               GET 3 ;
61
               CDR ;
62
               IF { PUSH string "FA2_PAUSED" ; FAILWITH } {} ;
63
               DUP ;
64
               CAR ;
65
               MAP { DUP 3 ;
66
                     GET 5 ;
67
                     SWAP ;
68
                     DUP ;
69
                     DUG 2 ;
70
                     CDR ;
71
                     MEM ;
72
                     IF {} { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } ;
73
                     DUP 3 ;
74
                     CAR ;
75
                     GET 3 ;
76
                     SWAP ;
77
                     DUP ;
78
                     CDR ;
79
                     SWAP ;
80
                     DUP ;
81
                     DUG 3 ;
82
                     CAR ;
83
                     PAIR ;
84
                     MEM ;
85
                     IF
86
                       { DUP 3 ;
87
                         CAR ;
88
                         GET 3 ;
89
                         SWAP ;
90
                         DUP ;
91
                         CDR ;
92
                         SWAP ;
93
                         DUP ;
94
                         DUG 3 ;
95
                         CAR ;
96
                         PAIR ;
97
                         GET ;
98
                         IF_NONE { PUSH int 425 ; FAILWITH } {} ;
99
                         SWAP ;
100
                         PAIR }
101
                       { PUSH nat 0 ; SWAP ; PAIR } } ;
102
               NIL operation ;
103
               DIG 2 ;
104
               CDR ;
105
               PUSH mutez 0 ;
106
               DIG 3 ;
107
               TRANSFER_TOKENS ;
108
               CONS }
109
             { IF_LEFT
110
                 { SWAP ;
111
                   DUP ;
112
                   DUG 2 ;
113
                   CAR ;
114
                   CAR ;
115
                   CAR ;
116
                   SENDER ;
117
                   COMPARE ;
118
                   EQ ;
119
                   IF {} { PUSH string "FA2_NOT_ADMIN" ; FAILWITH } ;
120
                   SWAP ;
121
                   DUP ;
122
                   DUG 2 ;
123
                   CAR ;
124
                   GET 3 ;
125
                   SWAP ;
126
                   DUP ;
127
                   GET 4 ;
128
                   SWAP ;
129
                   DUP ;
130
                   DUG 3 ;
131
                   CAR ;
132
                   CAR ;
133
                   PAIR ;
134
                   MEM ;
135
                   IF
136
                     { SWAP ;
137
                       UNPAIR ;
138
                       UNPAIR ;
139
                       SWAP ;
140
                       UNPAIR ;
141
                       DUP ;
142
                       DIG 5 ;
143
                       DUP ;
144
                       GET 4 ;
145
                       SWAP ;
146
                       DUP ;
147
                       DUG 7 ;
148
                       CAR ;
149
                       CAR ;
150
                       PAIR ;
151
                       DUP ;
152
                       DUG 2 ;
153
                       GET ;
154
                       IF_NONE { PUSH int 535 ; FAILWITH } {} ;
155
                       DUP 7 ;
156
                       CAR ;
157
                       CDR ;
158
                       ADD ;
159
                       SOME ;
160
                       SWAP ;
161
                       UPDATE ;
162
                       PAIR ;
163
                       SWAP ;
164
                       PAIR ;
165
                       PAIR ;
166
                       SWAP }
167
                     { SWAP ;
168
                       UNPAIR ;
169
                       UNPAIR ;
170
                       SWAP ;
171
                       UNPAIR ;
172
                       DUP 5 ;
173
                       CAR ;
174
                       CDR ;
175
                       SOME ;
176
                       DIG 5 ;
177
                       DUP ;
178
                       GET 4 ;
179
                       SWAP ;
180
                       DUP ;
181
                       DUG 7 ;
182
                       CAR ;
183
                       CAR ;
184
                       PAIR ;
185
                       UPDATE ;
186
                       PAIR ;
187
                       SWAP ;
188
                       PAIR ;
189
                       PAIR ;
190
                       SWAP } ;
191
                   SWAP ;
192
                   DUP ;
193
                   DUG 2 ;
194
                   CAR ;
195
                   CAR ;
196
                   CDR ;
197
                   SWAP ;
198
                   DUP ;
199
                   DUG 2 ;
200
                   GET 4 ;
201
                   COMPARE ;
202
                   LT ;
203
                   IF
204
                     {}
205
                     { DUP ;
206
                       GET 4 ;
207
                       DUP 3 ;
208
                       CAR ;
209
                       CAR ;
210
                       CDR ;
211
                       COMPARE ;
212
                       EQ ;
213
                       IF
214
                         {}
215
                         { PUSH string "Token-IDs should be consecutive" ; FAILWITH } ;
216
                       SWAP ;
217
                       UNPAIR ;
218
                       UNPAIR ;
219
                       CAR ;
220
                       PUSH nat 1 ;
221
                       DUP 5 ;
222
                       GET 4 ;
223
                       ADD ;
224
                       SWAP ;
225
                       PAIR ;
226
                       PAIR ;
227
                       PAIR ;
228
                       DUP ;
229
                       GET 5 ;
230
                       DIG 2 ;
231
                       DUP ;
232
                       GET 3 ;
233
                       SWAP ;
234
                       DUP ;
235
                       DUG 4 ;
236
                       GET 4 ;
237
                       PAIR ;
238
                       SOME ;
239
                       DUP 4 ;
240
                       GET 4 ;
241
                       UPDATE ;
242
                       UPDATE 5 ;
243
                       SWAP } ;
244
                   SWAP ;
245
                   DUP ;
246
                   DUG 2 ;
247
                   DUP ;
248
                   GET 6 ;
249
                   DIG 3 ;
250
                   GET 6 ;
251
                   DUP 4 ;
252
                   GET 4 ;
253
                   GET ;
254
                   IF_NONE { PUSH nat 0 } {} ;
255
                   DUP 4 ;
256
                   CAR ;
257
                   CDR ;
258
                   ADD ;
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 404 ; 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 407 ; 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 408 ; FAILWITH } {} ;
429
                                     SUB ;
430
                                     ISNAT ;
431
                                     IF_NONE { PUSH int 407 ; 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 410 ; 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 }