BCD

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