BCD

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