BCD

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