BCD

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