BCD

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