BCD

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