BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Shadownet
  • /
  • KT1QodR...KKsu
operations (1)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
815
1223
 
1
parameter (or
2
            (or
3
              (or (unit %accept_superadmin)
4
                  (or (nat %activate_pool) (address %add_admin)))
5
              (or (or (nat %buy_five) (nat %buy_one))
6
                  (or (nat %buy_three)
7
                      (pair %create_pool (timestamp %end_time)
8
                                         (pair (nat %max_per_wallet)
9
                                               (pair (mutez %price_per_nft)
10
                                                     (pair (timestamp %start_time)
11
                                                           (list %tokens (pair
12
                                                                          (nat %editions)
13
                                                                          (pair
14
                                                                            (address %fa2_address)
15
                                                                            (nat %token_id)))))))))))
16
            (or
17
              (or (nat %deactivate_pool)
18
                  (or (address %propose_superadmin)
19
                      (list %register_tokens (pair (address %artist_address)
20
                                                  (pair (address %fa2_address)
21
                                                        (nat %token_id))))))
22
              (or
23
                (or (address %remove_admin)
24
                    (pair %remove_token (address %fa2_address) (nat %token_id)))
25
                (or (bool %set_pause)
26
                    (pair %withdraw_tokens (nat %amount)
27
                                           (pair (address %destination)
28
                                                 (pair (address %fa2_address)
29
                                                       (nat %token_id))))))));
30
storage (pair (big_map %admins address unit)
31
              (pair (nat %next_pool_id)
32
                    (pair (bool %paused)
33
                          (pair
34
                            (big_map %pools nat
35
                                            (pair (bool %active)
36
                                                  (pair (timestamp %end_time)
37
                                                        (pair (nat %max_per_wallet)
38
                                                              (pair (nat %num_tokens)
39
                                                                    (pair
40
                                                                      (mutez %price_per_nft)
41
                                                                      (pair
42
                                                                        (timestamp %start_time)
43
                                                                        (pair
44
                                                                          (map %tokens
45
                                                                            nat
46
                                                                            (pair
47
                                                                              (nat %editions)
48
                                                                              (pair
49
                                                                                (address %fa2_address)
50
                                                                                (nat %token_id))))
51
                                                                          (nat %total_editions)))))))))
52
                            (pair (address %project_address)
53
                                  (pair (option %proposed_superadmin address)
54
                                        (pair
55
                                          (big_map %purchases (pair nat address) nat)
56
                                          (pair (address %superadmin)
57
                                                (big_map %token_registry
58
                                                  (pair address nat)
59
                                                  address)))))))));
60
code { LAMBDA
61
         (pair (pair nat nat)
62
               (pair (list operation)
63
                     (pair (big_map address unit)
64
                           (pair nat
65
                                 (pair bool
66
                                       (pair
67
                                         (big_map nat
68
                                                  (pair bool
69
                                                        (pair timestamp
70
                                                              (pair nat
71
                                                                    (pair nat
72
                                                                          (pair mutez
73
                                                                                (pair
74
                                                                                  timestamp
75
                                                                                  (pair
76
                                                                                    (map
77
                                                                                      nat
78
                                                                                      (pair
79
                                                                                        nat
80
                                                                                        (pair
81
                                                                                          address
82
                                                                                          nat)))
83
                                                                                    nat))))))))
84
                                         (pair address
85
                                               (pair (option address)
86
                                                     (pair
87
                                                       (big_map (pair nat address) nat)
88
                                                       (pair address
89
                                                             (big_map (pair address nat)
90
                                                                      address)))))))))))
91
         (pair unit
92
               (pair (list operation)
93
                     (pair (big_map address unit)
94
                           (pair nat
95
                                 (pair bool
96
                                       (pair
97
                                         (big_map nat
98
                                                  (pair bool
99
                                                        (pair timestamp
100
                                                              (pair nat
101
                                                                    (pair nat
102
                                                                          (pair mutez
103
                                                                                (pair
104
                                                                                  timestamp
105
                                                                                  (pair
106
                                                                                    (map
107
                                                                                      nat
108
                                                                                      (pair
109
                                                                                        nat
110
                                                                                        (pair
111
                                                                                          address
112
                                                                                          nat)))
113
                                                                                    nat))))))))
114
                                         (pair address
115
                                               (pair (option address)
116
                                                     (pair
117
                                                       (big_map (pair nat address) nat)
118
                                                       (pair address
119
                                                             (big_map (pair address nat)
120
                                                                      address)))))))))))
121
         { UNPAIR 3 ;
122
           SWAP ;
123
           DUP 2 ;
124
           CAR ;
125
           DUP 3 ;
126
           CDR ;
127
           DUP 5 ;
128
           GET 7 ;
129
           DUP 3 ;
130
           MEM ;
131
           IF {} { PUSH string "POOL_NOT_FOUND" ; FAILWITH } ;
132
           DUP 5 ;
133
           GET 7 ;
134
           DUP 3 ;
135
           GET ;
136
           IF_NONE { PUSH int 129 ; FAILWITH } {} ;
137
           DUP ;
138
           CAR ;
139
           IF {} { PUSH string "POOL_INACTIVE" ; FAILWITH } ;
140
           DUP ;
141
           GET 11 ;
142
           NOW ;
143
           COMPARE ;
144
           GE ;
145
           IF {} { PUSH string "SALE_NOT_STARTED" ; FAILWITH } ;
146
           DUP ;
147
           GET 3 ;
148
           NOW ;
149
           COMPARE ;
150
           LE ;
151
           IF {} { PUSH string "SALE_ENDED" ; FAILWITH } ;
152
           DUP 2 ;
153
           DUP 2 ;
154
           GET 7 ;
155
           COMPARE ;
156
           GE ;
157
           IF {} { PUSH string "NOT_ENOUGH_TOKENS" ; FAILWITH } ;
158
           SENDER ;
159
           DUP 4 ;
160
           PAIR ;
161
           DUP 7 ;
162
           GET 13 ;
163
           DUP 2 ;
164
           GET ;
165
           IF_NONE { PUSH nat 0 } {} ;
166
           DUP 3 ;
167
           GET 5 ;
168
           DUP 5 ;
169
           DUP 3 ;
170
           ADD ;
171
           COMPARE ;
172
           LE ;
173
           IF {} { PUSH string "WALLET_LIMIT_EXCEEDED" ; FAILWITH } ;
174
           DUP 4 ;
175
           DUP 4 ;
176
           GET 9 ;
177
           MUL ;
178
           DUP ;
179
           AMOUNT ;
180
           COMPARE ;
181
           EQ ;
182
           IF {} { PUSH string "WRONG_AMOUNT" ; FAILWITH } ;
183
           DIG 8 ;
184
           DUP ;
185
           GET 13 ;
186
           DUP 7 ;
187
           DUP 5 ;
188
           ADD ;
189
           SOME ;
190
           DUP 6 ;
191
           UPDATE ;
192
           UPDATE 13 ;
193
           DUG 8 ;
194
           LEVEL ;
195
           PUSH timestamp "1970-01-01T00:00:00Z" ;
196
           NOW ;
197
           SUB ;
198
           ISNAT ;
199
           IF_NONE { PUSH int 155 ; FAILWITH } {} ;
200
           ADD ;
201
           EMPTY_MAP address mutez ;
202
           PUSH mutez 0 ;
203
           PUSH nat 5 ;
204
           PUSH nat 4 ;
205
           DUP 9 ;
206
           GET 9 ;
207
           MUL ;
208
           EDIV ;
209
           IF_NONE { PUSH int 162 ; FAILWITH } {} ;
210
           CAR ;
211
           DUP 9 ;
212
           PUSH nat 0 ;
213
           DUP 2 ;
214
           INT ;
215
           GT ;
216
           LOOP { DUP 10 ;
217
                  GET 14 ;
218
                  PUSH nat 7919 ;
219
                  PUSH nat 1 ;
220
                  DUP 4 ;
221
                  ADD ;
222
                  DUP 9 ;
223
                  MUL ;
224
                  MUL ;
225
                  EDIV ;
226
                  IF_NONE { PUSH int 168 ; FAILWITH } { CDR } ;
227
                  PUSH nat 0 ;
228
                  PUSH nat 0 ;
229
                  PUSH bool False ;
230
                  DUP 14 ;
231
                  GET 7 ;
232
                  PUSH nat 0 ;
233
                  DUP 2 ;
234
                  INT ;
235
                  GT ;
236
                  LOOP { DUP 3 ;
237
                         IF
238
                           {}
239
                           { DUP 16 ;
240
                             GET 13 ;
241
                             DUP 2 ;
242
                             GET ;
243
                             IF_NONE { PUSH int 178 ; FAILWITH } {} ;
244
                             CAR ;
245
                             DUP 7 ;
246
                             DUP 2 ;
247
                             DUP 8 ;
248
                             ADD ;
249
                             COMPARE ;
250
                             GT ;
251
                             IF
252
                               { DIG 3 ; DROP ; DIG 3 ; DROP 2 ; DUP ; DUG 2 ; PUSH bool True ; DUG 2 }
253
                               { DIG 5 ; ADD ; DUG 4 } } ;
254
                         PUSH nat 1 ;
255
                         ADD ;
256
                         DUP ;
257
                         DUP 3 ;
258
                         COMPARE ;
259
                         GT } ;
260
                  DROP 3 ;
261
                  DUP 13 ;
262
                  GET 13 ;
263
                  DUP 2 ;
264
                  GET ;
265
                  IF_NONE { PUSH int 185 ; FAILWITH } {} ;
266
                  PUSH nat 1 ;
267
                  DUP 2 ;
268
                  GET 4 ;
269
                  SENDER ;
270
                  PAIR 3 ;
271
                  NIL (pair address (pair nat nat)) ;
272
                  SWAP ;
273
                  CONS ;
274
                  SELF_ADDRESS ;
275
                  PAIR ;
276
                  DUP 2 ;
277
                  GET 3 ;
278
                  CONTRACT %transfer (list (pair (address %from_)
279
                                                (list %txs (pair (address %to_)
280
                                                                (pair (nat %token_id)
281
                                                                      (nat %amount)))))) ;
282
                  IF_NONE { PUSH string "INVALID_FA2" ; FAILWITH } {} ;
283
                  DIG 18 ;
284
                  SWAP ;
285
                  PUSH mutez 0 ;
286
                  NIL (pair address (list (pair address (pair nat nat)))) ;
287
                  DIG 4 ;
288
                  CONS ;
289
                  TRANSFER_TOKENS ;
290
                  CONS ;
291
                  DUG 16 ;
292
                  DUP ;
293
                  GET 4 ;
294
                  DUP 2 ;
295
                  GET 3 ;
296
                  PAIR ;
297
                  DUP 20 ;
298
                  GET 16 ;
299
                  SWAP ;
300
                  GET ;
301
                  IF_NONE { PUSH int 207 ; FAILWITH } {} ;
302
                  DUP 10 ;
303
                  DUP 2 ;
304
                  GET ;
305
                  IF_NONE { PUSH mutez 0 } {} ;
306
                  DIG 10 ;
307
                  DUP 10 ;
308
                  DIG 2 ;
309
                  ADD ;
310
                  SOME ;
311
                  DIG 2 ;
312
                  UPDATE ;
313
                  DUG 8 ;
314
                  DIG 7 ;
315
                  DUP 8 ;
316
                  ADD ;
317
                  DUG 7 ;
318
                  PUSH nat 1 ;
319
                  DUP 15 ;
320
                  GET 7 ;
321
                  SUB ;
322
                  ISNAT ;
323
                  IF_NONE { PUSH int 215 ; FAILWITH } {} ;
324
                  DUP ;
325
                  DUP 4 ;
326
                  COMPARE ;
327
                  NEQ ;
328
                  IF
329
                    { DIG 3 ;
330
                      DROP ;
331
                      DIG 3 ;
332
                      DROP ;
333
                      DUP 13 ;
334
                      DUP ;
335
                      GET 13 ;
336
                      DIG 14 ;
337
                      GET 13 ;
338
                      DUP 4 ;
339
                      GET ;
340
                      IF_NONE { PUSH int 217 ; FAILWITH } {} ;
341
                      SOME ;
342
                      DIG 5 ;
343
                      UPDATE ;
344
                      UPDATE 13 ;
345
                      DUP ;
346
                      GET 13 ;
347
                      DUP 4 ;
348
                      SOME ;
349
                      DUP 4 ;
350
                      UPDATE ;
351
                      UPDATE 13 ;
352
                      DUG 11 }
353
                    { DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } ;
354
                  SWAP ;
355
                  CAR ;
356
                  DUP 12 ;
357
                  GET 14 ;
358
                  SUB ;
359
                  ISNAT ;
360
                  IF_NONE { PUSH int 221 ; FAILWITH } {} ;
361
                  DIG 11 ;
362
                  SWAP ;
363
                  UPDATE 14 ;
364
                  SWAP ;
365
                  UPDATE 7 ;
366
                  DUG 9 ;
367
                  PUSH nat 1 ;
368
                  ADD ;
369
                  DUP ;
370
                  DUP 3 ;
371
                  COMPARE ;
372
                  GT } ;
373
           DROP 2 ;
374
           EMPTY_MAP nat (pair nat (pair address nat)) ;
375
           DUP 10 ;
376
           PUSH nat 0 ;
377
           DUP 2 ;
378
           INT ;
379
           GT ;
380
           LOOP { DUP ;
381
                  DUP 12 ;
382
                  GET 7 ;
383
                  ADD ;
384
                  DIG 3 ;
385
                  DUP 12 ;
386
                  GET 13 ;
387
                  DUP 3 ;
388
                  GET ;
389
                  IF_NONE { PUSH int 232 ; FAILWITH } {} ;
390
                  SOME ;
391
                  DUP 4 ;
392
                  UPDATE ;
393
                  DUG 3 ;
394
                  DIG 11 ;
395
                  DUP ;
396
                  GET 13 ;
397
                  NONE (pair nat (pair address nat)) ;
398
                  DIG 3 ;
399
                  UPDATE ;
400
                  UPDATE 13 ;
401
                  DUG 10 ;
402
                  PUSH nat 1 ;
403
                  ADD ;
404
                  DUP ;
405
                  DUP 3 ;
406
                  COMPARE ;
407
                  GT } ;
408
           DROP 2 ;
409
           DUP 10 ;
410
           PUSH nat 0 ;
411
           DUP 2 ;
412
           INT ;
413
           GT ;
414
           LOOP { DUP 3 ;
415
                  DUP 2 ;
416
                  GET ;
417
                  IF_NONE { PUSH int 236 ; FAILWITH } {} ;
418
                  PUSH nat 1 ;
419
                  DUP 2 ;
420
                  CAR ;
421
                  SUB ;
422
                  ISNAT ;
423
                  IF_NONE { PUSH int 237 ; FAILWITH } {} ;
424
                  DUP ;
425
                  INT ;
426
                  GT ;
427
                  IF
428
                    { DUP 13 ;
429
                      DUP ;
430
                      GET 13 ;
431
                      DUP 4 ;
432
                      GET 4 ;
433
                      DIG 4 ;
434
                      GET 3 ;
435
                      DUP 5 ;
436
                      PAIR 3 ;
437
                      SOME ;
438
                      DIG 14 ;
439
                      GET 7 ;
440
                      UPDATE ;
441
                      UPDATE 13 ;
442
                      DUP ;
443
                      GET 7 ;
444
                      PUSH nat 1 ;
445
                      ADD ;
446
                      UPDATE 7 ;
447
                      DUP ;
448
                      GET 14 ;
449
                      DIG 2 ;
450
                      ADD ;
451
                      UPDATE 14 ;
452
                      DUG 10 }
453
                    { DROP 2 } ;
454
                  PUSH nat 1 ;
455
                  ADD ;
456
                  DUP ;
457
                  DUP 3 ;
458
                  COMPARE ;
459
                  GT } ;
460
           DROP 2 ;
461
           DIG 13 ;
462
           DUP ;
463
           GET 7 ;
464
           DUP 11 ;
465
           SOME ;
466
           DUP 14 ;
467
           UPDATE ;
468
           UPDATE 7 ;
469
           DUG 13 ;
470
           DUP 4 ;
471
           ITER { DIG 12 ;
472
                  DUP 2 ;
473
                  CAR ;
474
                  CONTRACT unit ;
475
                  IF_NONE { PUSH int 252 ; FAILWITH } {} ;
476
                  DIG 2 ;
477
                  CDR ;
478
                  UNIT ;
479
                  TRANSFER_TOKENS ;
480
                  CONS ;
481
                  DUG 11 } ;
482
           DROP 2 ;
483
           SWAP ;
484
           DROP ;
485
           SWAP ;
486
           DROP ;
487
           SWAP ;
488
           DROP ;
489
           SWAP ;
490
           DROP ;
491
           SWAP ;
492
           DROP ;
493
           SWAP ;
494
           DROP ;
495
           SWAP ;
496
           DROP ;
497
           SWAP ;
498
           DROP ;
499
           DIG 2 ;
500
           DROP ;
501
           AMOUNT ;
502
           SUB_MUTEZ ;
503
           IF_NONE { PUSH int 255 ; FAILWITH } {} ;
504
           SWAP ;
505
           DUP 3 ;
506
           GET 9 ;
507
           CONTRACT unit ;
508
           IF_NONE { PUSH int 256 ; FAILWITH } {} ;
509
           DIG 2 ;
510
           UNIT ;
511
           TRANSFER_TOKENS ;
512
           CONS ;
513
           UNIT ;
514
           PAIR 3 } ;
515
       SWAP ;
516
       LAMBDA
517
         (pair unit
518
               (pair (big_map address unit)
519
                     (pair nat
520
                           (pair bool
521
                                 (pair
522
                                   (big_map nat
523
                                            (pair bool
524
                                                  (pair timestamp
525
                                                        (pair nat
526
                                                              (pair nat
527
                                                                    (pair mutez
528
                                                                          (pair
529
                                                                            timestamp
530
                                                                            (pair
531
                                                                              (map nat
532
                                                                                   (pair
533
                                                                                     nat
534
                                                                                     (pair
535
                                                                                       address
536
                                                                                       nat)))
537
                                                                              nat))))))))
538
                                   (pair address
539
                                         (pair (option address)
540
                                               (pair (big_map (pair nat address) nat)
541
                                                     (pair address
542
                                                           (big_map (pair address nat)
543
                                                                    address))))))))))
544
         (pair unit
545
               (pair (big_map address unit)
546
                     (pair nat
547
                           (pair bool
548
                                 (pair
549
                                   (big_map nat
550
                                            (pair bool
551
                                                  (pair timestamp
552
                                                        (pair nat
553
                                                              (pair nat
554
                                                                    (pair mutez
555
                                                                          (pair
556
                                                                            timestamp
557
                                                                            (pair
558
                                                                              (map nat
559
                                                                                   (pair
560
                                                                                     nat
561
                                                                                     (pair
562
                                                                                       address
563
                                                                                       nat)))
564
                                                                              nat))))))))
565
                                   (pair address
566
                                         (pair (option address)
567
                                               (pair (big_map (pair nat address) nat)
568
                                                     (pair address
569
                                                           (big_map (pair address nat)
570
                                                                    address))))))))))
571
         { CDR ;
572
           DUP ;
573
           GET 15 ;
574
           SENDER ;
575
           COMPARE ;
576
           EQ ;
577
           IF { PUSH bool True } { DUP ; CAR ; SENDER ; MEM } ;
578
           IF {} { PUSH string "NOT_ADMIN" ; FAILWITH } ;
579
           UNIT ;
580
           PAIR } ;
581
       SWAP ;
582
       LAMBDA
583
         (pair unit
584
               (pair (big_map address unit)
585
                     (pair nat
586
                           (pair bool
587
                                 (pair
588
                                   (big_map nat
589
                                            (pair bool
590
                                                  (pair timestamp
591
                                                        (pair nat
592
                                                              (pair nat
593
                                                                    (pair mutez
594
                                                                          (pair
595
                                                                            timestamp
596
                                                                            (pair
597
                                                                              (map nat
598
                                                                                   (pair
599
                                                                                     nat
600
                                                                                     (pair
601
                                                                                       address
602
                                                                                       nat)))
603
                                                                              nat))))))))
604
                                   (pair address
605
                                         (pair (option address)
606
                                               (pair (big_map (pair nat address) nat)
607
                                                     (pair address
608
                                                           (big_map (pair address nat)
609
                                                                    address))))))))))
610
         (pair unit
611
               (pair (big_map address unit)
612
                     (pair nat
613
                           (pair bool
614
                                 (pair
615
                                   (big_map nat
616
                                            (pair bool
617
                                                  (pair timestamp
618
                                                        (pair nat
619
                                                              (pair nat
620
                                                                    (pair mutez
621
                                                                          (pair
622
                                                                            timestamp
623
                                                                            (pair
624
                                                                              (map nat
625
                                                                                   (pair
626
                                                                                     nat
627
                                                                                     (pair
628
                                                                                       address
629
                                                                                       nat)))
630
                                                                              nat))))))))
631
                                   (pair address
632
                                         (pair (option address)
633
                                               (pair (big_map (pair nat address) nat)
634
                                                     (pair address
635
                                                           (big_map (pair address nat)
636
                                                                    address))))))))))
637
         { CDR ; DUP ; GET 5 ; IF { PUSH string "PAUSED" ; FAILWITH } {} ; UNIT ; PAIR } ;
638
       SWAP ;
639
       LAMBDA
640
         (pair unit
641
               (pair (big_map address unit)
642
                     (pair nat
643
                           (pair bool
644
                                 (pair
645
                                   (big_map nat
646
                                            (pair bool
647
                                                  (pair timestamp
648
                                                        (pair nat
649
                                                              (pair nat
650
                                                                    (pair mutez
651
                                                                          (pair
652
                                                                            timestamp
653
                                                                            (pair
654
                                                                              (map nat
655
                                                                                   (pair
656
                                                                                     nat
657
                                                                                     (pair
658
                                                                                       address
659
                                                                                       nat)))
660
                                                                              nat))))))))
661
                                   (pair address
662
                                         (pair (option address)
663
                                               (pair (big_map (pair nat address) nat)
664
                                                     (pair address
665
                                                           (big_map (pair address nat)
666
                                                                    address))))))))))
667
         (pair unit
668
               (pair (big_map address unit)
669
                     (pair nat
670
                           (pair bool
671
                                 (pair
672
                                   (big_map nat
673
                                            (pair bool
674
                                                  (pair timestamp
675
                                                        (pair nat
676
                                                              (pair nat
677
                                                                    (pair mutez
678
                                                                          (pair
679
                                                                            timestamp
680
                                                                            (pair
681
                                                                              (map nat
682
                                                                                   (pair
683
                                                                                     nat
684
                                                                                     (pair
685
                                                                                       address
686
                                                                                       nat)))
687
                                                                              nat))))))))
688
                                   (pair address
689
                                         (pair (option address)
690
                                               (pair (big_map (pair nat address) nat)
691
                                                     (pair address
692
                                                           (big_map (pair address nat)
693
                                                                    address))))))))))
694
         { CDR ;
695
           DUP ;
696
           GET 15 ;
697
           SENDER ;
698
           COMPARE ;
699
           EQ ;
700
           IF {} { PUSH string "NOT_SUPERADMIN" ; FAILWITH } ;
701
           UNIT ;
702
           PAIR } ;
703
       SWAP ;
704
       LAMBDA
705
         (pair (pair nat (pair address (pair address (pair address nat))))
706
               (list operation))
707
         (pair unit (list operation))
708
         { UNPAIR ;
709
           SWAP ;
710
           DUP 2 ;
711
           CAR ;
712
           DUP 3 ;
713
           GET 8 ;
714
           DUP 4 ;
715
           GET 7 ;
716
           PAIR 3 ;
717
           NIL (pair address (pair nat nat)) ;
718
           SWAP ;
719
           CONS ;
720
           DUP 3 ;
721
           GET 5 ;
722
           PAIR ;
723
           DIG 2 ;
724
           GET 3 ;
725
           CONTRACT %transfer (list (pair (address %from_)
726
                                         (list %txs (pair (address %to_)
727
                                                         (pair (nat %token_id)
728
                                                               (nat %amount)))))) ;
729
           IF_NONE { PUSH string "INVALID_FA2" ; FAILWITH } {} ;
730
           DIG 2 ;
731
           SWAP ;
732
           PUSH mutez 0 ;
733
           NIL (pair address (list (pair address (pair nat nat)))) ;
734
           DIG 4 ;
735
           CONS ;
736
           TRANSFER_TOKENS ;
737
           CONS ;
738
           UNIT ;
739
           PAIR } ;
740
       SWAP ;
741
       UNPAIR ;
742
       IF_LEFT
743
         { IF_LEFT
744
             { IF_LEFT
745
                 { DROP ;
746
                   SWAP ;
747
                   DROP ;
748
                   SWAP ;
749
                   DROP ;
750
                   SWAP ;
751
                   DROP ;
752
                   SWAP ;
753
                   DROP ;
754
                   SWAP ;
755
                   DROP ;
756
                   DUP ;
757
                   GET 11 ;
758
                   IF_NONE { PUSH string "NO_PROPOSAL" ; FAILWITH } {} ;
759
                   DUP ;
760
                   SENDER ;
761
                   COMPARE ;
762
                   EQ ;
763
                   IF {} { PUSH string "NOT_PROPOSED_SUPERADMIN" ; FAILWITH } ;
764
                   UPDATE 15 ;
765
                   NONE address ;
766
                   UPDATE 11 }
767
                 { IF_LEFT
768
                     { DIG 2 ;
769
                       DROP ;
770
                       DIG 2 ;
771
                       DROP ;
772
                       DIG 2 ;
773
                       DROP ;
774
                       DIG 3 ;
775
                       DROP ;
776
                       DIG 2 ;
777
                       UNIT ;
778
                       SWAP ;
779
                       DIG 3 ;
780
                       DIG 2 ;
781
                       PAIR ;
782
                       EXEC ;
783
                       CDR ;
784
                       SWAP ;
785
                       DUP 2 ;
786
                       GET 7 ;
787
                       DUP 2 ;
788
                       MEM ;
789
                       IF {} { PUSH string "POOL_NOT_FOUND" ; FAILWITH } ;
790
                       DUP 2 ;
791
                       GET 7 ;
792
                       DUP 2 ;
793
                       GET ;
794
                       IF_NONE { PUSH int 387 ; FAILWITH } {} ;
795
                       PUSH bool True ;
796
                       UPDATE 1 ;
797
                       DIG 2 ;
798
                       DUP ;
799
                       GET 7 ;
800
                       DIG 2 ;
801
                       SOME ;
802
                       DIG 3 ;
803
                       UPDATE ;
804
                       UPDATE 7 }
805
                     { DIG 2 ;
806
                       DROP ;
807
                       DIG 3 ;
808
                       DROP ;
809
                       DIG 3 ;
810
                       DROP ;
811
                       DIG 3 ;
812
                       DROP ;
813
                       DIG 2 ;
814
                       UNIT ;
815
                       SWAP ;
816
                       DIG 3 ;
817
                       DIG 2 ;
818
                       PAIR ;
819
                       EXEC ;
820
                       CDR ;
821
                       DUP ;
822
                       CAR ;
823
                       PUSH (option unit) (Some Unit) ;
824
                       DIG 3 ;
825
                       UPDATE ;
826
                       UPDATE 1 } } ;
827
               NIL operation }
828
             { IF_LEFT
829
                 { IF_LEFT
830
                     { DIG 2 ;
831
                       DROP ;
832
                       DIG 2 ;
833
                       DROP ;
834
                       DIG 3 ;
835
                       DROP ;
836
                       DIG 2 ;
837
                       UNIT ;
838
                       SWAP ;
839
                       DIG 3 ;
840
                       DIG 2 ;
841
                       PAIR ;
842
                       EXEC ;
843
                       CDR ;
844
                       DIG 2 ;
845
                       SWAP ;
846
                       DIG 2 ;
847
                       NIL operation ;
848
                       DIG 3 ;
849
                       PUSH nat 5 ;
850
                       DIG 3 ;
851
                       PAIR ;
852
                       SWAP ;
853
                       DUG 3 ;
854
                       PAIR 3 ;
855
                       EXEC ;
856
                       CDR ;
857
                       UNPAIR }
858
                     { DIG 2 ;
859
                       DROP ;
860
                       DIG 2 ;
861
                       DROP ;
862
                       DIG 3 ;
863
                       DROP ;
864
                       DIG 2 ;
865
                       UNIT ;
866
                       SWAP ;
867
                       DIG 3 ;
868
                       DIG 2 ;
869
                       PAIR ;
870
                       EXEC ;
871
                       CDR ;
872
                       DIG 2 ;
873
                       SWAP ;
874
                       DIG 2 ;
875
                       NIL operation ;
876
                       DIG 3 ;
877
                       PUSH nat 1 ;
878
                       DIG 3 ;
879
                       PAIR ;
880
                       SWAP ;
881
                       DUG 3 ;
882
                       PAIR 3 ;
883
                       EXEC ;
884
                       CDR ;
885
                       UNPAIR } }
886
                 { IF_LEFT
887
                     { DIG 2 ;
888
                       DROP ;
889
                       DIG 2 ;
890
                       DROP ;
891
                       DIG 3 ;
892
                       DROP ;
893
                       DIG 2 ;
894
                       UNIT ;
895
                       SWAP ;
896
                       DIG 3 ;
897
                       DIG 2 ;
898
                       PAIR ;
899
                       EXEC ;
900
                       CDR ;
901
                       DIG 2 ;
902
                       SWAP ;
903
                       DIG 2 ;
904
                       NIL operation ;
905
                       DIG 3 ;
906
                       PUSH nat 3 ;
907
                       DIG 3 ;
908
                       PAIR ;
909
                       SWAP ;
910
                       DUG 3 ;
911
                       PAIR 3 ;
912
                       EXEC ;
913
                       CDR ;
914
                       UNPAIR }
915
                     { DUP 6 ;
916
                       UNIT ;
917
                       SWAP ;
918
                       DIG 3 ;
919
                       DIG 2 ;
920
                       PAIR ;
921
                       EXEC ;
922
                       CDR ;
923
                       DUG 6 ;
924
                       DUG 6 ;
925
                       DIG 5 ;
926
                       DIG 6 ;
927
                       EMPTY_MAP nat (pair nat (pair address nat)) ;
928
                       PUSH nat 0 ;
929
                       PUSH nat 0 ;
930
                       DUP 4 ;
931
                       GET 8 ;
932
                       ITER { DUP ;
933
                              GET 4 ;
934
                              DUP 2 ;
935
                              GET 3 ;
936
                              PAIR ;
937
                              DUP 7 ;
938
                              GET 16 ;
939
                              SWAP ;
940
                              MEM ;
941
                              IF {} { PUSH string "TOKEN_NOT_REGISTERED" ; FAILWITH } ;
942
                              PUSH nat 0 ;
943
                              DUP 2 ;
944
                              CAR ;
945
                              COMPARE ;
946
                              GT ;
947
                              IF {} { PUSH string "ZERO_EDITIONS" ; FAILWITH } ;
948
                              DIG 3 ;
949
                              DUP 2 ;
950
                              SOME ;
951
                              DUP 5 ;
952
                              UPDATE ;
953
                              DUG 3 ;
954
                              CAR ;
955
                              ADD ;
956
                              SWAP ;
957
                              PUSH nat 1 ;
958
                              ADD ;
959
                              SWAP } ;
960
                       DUP ;
961
                       DUP 4 ;
962
                       DUP 6 ;
963
                       GET 7 ;
964
                       DUP 7 ;
965
                       GET 5 ;
966
                       DUP 6 ;
967
                       DUP 9 ;
968
                       GET 3 ;
969
                       DUP 10 ;
970
                       CAR ;
971
                       PUSH bool True ;
972
                       PAIR 8 ;
973
                       SWAP ;
974
                       DROP ;
975
                       SWAP ;
976
                       DROP ;
977
                       SWAP ;
978
                       DROP ;
979
                       SWAP ;
980
                       DROP ;
981
                       DIG 2 ;
982
                       DROP ;
983
                       DIG 2 ;
984
                       DROP ;
985
                       DIG 2 ;
986
                       DROP ;
987
                       DIG 2 ;
988
                       DROP ;
989
                       DIG 2 ;
990
                       DROP ;
991
                       DUP 2 ;
992
                       DUP ;
993
                       GET 7 ;
994
                       DIG 2 ;
995
                       SOME ;
996
                       DIG 3 ;
997
                       GET 3 ;
998
                       UPDATE ;
999
                       UPDATE 7 ;
1000
                       DUP ;
1001
                       GET 3 ;
1002
                       PUSH nat 1 ;
1003
                       ADD ;
1004
                       UPDATE 3 ;
1005
                       NIL operation } } } }
1006
         { IF_LEFT
1007
             { IF_LEFT
1008
                 { DIG 2 ;
1009
                   DROP ;
1010
                   DIG 2 ;
1011
                   DROP ;
1012
                   DIG 2 ;
1013
                   DROP ;
1014
                   DIG 3 ;
1015
                   DROP ;
1016
                   DIG 2 ;
1017
                   UNIT ;
1018
                   SWAP ;
1019
                   DIG 3 ;
1020
                   DIG 2 ;
1021
                   PAIR ;
1022
                   EXEC ;
1023
                   CDR ;
1024
                   SWAP ;
1025
                   DUP 2 ;
1026
                   GET 7 ;
1027
                   DUP 2 ;
1028
                   MEM ;
1029
                   IF {} { PUSH string "POOL_NOT_FOUND" ; FAILWITH } ;
1030
                   DUP 2 ;
1031
                   GET 7 ;
1032
                   DUP 2 ;
1033
                   GET ;
1034
                   IF_NONE { PUSH int 378 ; FAILWITH } {} ;
1035
                   PUSH bool False ;
1036
                   UPDATE 1 ;
1037
                   DIG 2 ;
1038
                   DUP ;
1039
                   GET 7 ;
1040
                   DIG 2 ;
1041
                   SOME ;
1042
                   DIG 3 ;
1043
                   UPDATE ;
1044
                   UPDATE 7 }
1045
                 { IF_LEFT
1046
                     { DIG 2 ;
1047
                       DROP ;
1048
                       DIG 3 ;
1049
                       DROP ;
1050
                       DIG 3 ;
1051
                       DROP ;
1052
                       DIG 3 ;
1053
                       DROP ;
1054
                       DIG 2 ;
1055
                       UNIT ;
1056
                       SWAP ;
1057
                       DIG 3 ;
1058
                       DIG 2 ;
1059
                       PAIR ;
1060
                       EXEC ;
1061
                       CDR ;
1062
                       SWAP ;
1063
                       SOME ;
1064
                       UPDATE 11 }
1065
                     { DUP 6 ;
1066
                       UNIT ;
1067
                       SWAP ;
1068
                       DIG 3 ;
1069
                       DIG 2 ;
1070
                       PAIR ;
1071
                       EXEC ;
1072
                       CDR ;
1073
                       DUG 6 ;
1074
                       DUG 6 ;
1075
                       DIG 5 ;
1076
                       DIG 6 ;
1077
                       DUP ;
1078
                       ITER { DUP ;
1079
                              GET 4 ;
1080
                              DUP 2 ;
1081
                              GET 3 ;
1082
                              PAIR ;
1083
                              DIG 3 ;
1084
                              DUP ;
1085
                              GET 16 ;
1086
                              DIG 3 ;
1087
                              CAR ;
1088
                              SOME ;
1089
                              DIG 3 ;
1090
                              UPDATE ;
1091
                              UPDATE 16 ;
1092
                              SWAP } ;
1093
                       DROP ;
1094
                       SWAP ;
1095
                       DROP ;
1096
                       SWAP ;
1097
                       DROP ;
1098
                       SWAP ;
1099
                       DROP ;
1100
                       SWAP ;
1101
                       DROP ;
1102
                       SWAP ;
1103
                       DROP } } ;
1104
               NIL operation }
1105
             { IF_LEFT
1106
                 { IF_LEFT
1107
                     { DIG 2 ;
1108
                       DROP ;
1109
                       DIG 3 ;
1110
                       DROP ;
1111
                       DIG 3 ;
1112
                       DROP ;
1113
                       DIG 3 ;
1114
                       DROP ;
1115
                       DIG 2 ;
1116
                       UNIT ;
1117
                       SWAP ;
1118
                       DIG 3 ;
1119
                       DIG 2 ;
1120
                       PAIR ;
1121
                       EXEC ;
1122
                       CDR ;
1123
                       DUP ;
1124
                       CAR ;
1125
                       NONE unit ;
1126
                       DIG 3 ;
1127
                       UPDATE ;
1128
                       UPDATE 1 }
1129
                     { DIG 2 ;
1130
                       DROP ;
1131
                       DIG 2 ;
1132
                       DROP ;
1133
                       DIG 2 ;
1134
                       DROP ;
1135
                       DIG 3 ;
1136
                       DROP ;
1137
                       DIG 2 ;
1138
                       UNIT ;
1139
                       SWAP ;
1140
                       DIG 3 ;
1141
                       DIG 2 ;
1142
                       PAIR ;
1143
                       EXEC ;
1144
                       CDR ;
1145
                       SWAP ;
1146
                       DUP 2 ;
1147
                       GET 16 ;
1148
                       DUP 2 ;
1149
                       MEM ;
1150
                       IF {} { PUSH string "TOKEN_NOT_REGISTERED" ; FAILWITH } ;
1151
                       SWAP ;
1152
                       DUP ;
1153
                       GET 16 ;
1154
                       NONE address ;
1155
                       DIG 3 ;
1156
                       UPDATE ;
1157
                       UPDATE 16 } ;
1158
                   NIL operation }
1159
                 { IF_LEFT
1160
                     { DIG 2 ;
1161
                       DROP ;
1162
                       DIG 3 ;
1163
                       DROP ;
1164
                       DIG 3 ;
1165
                       DROP ;
1166
                       DIG 3 ;
1167
                       DROP ;
1168
                       DIG 2 ;
1169
                       UNIT ;
1170
                       SWAP ;
1171
                       DIG 3 ;
1172
                       DIG 2 ;
1173
                       PAIR ;
1174
                       EXEC ;
1175
                       CDR ;
1176
                       SWAP ;
1177
                       UPDATE 5 ;
1178
                       NIL operation }
1179
                     { DUP 6 ;
1180
                       UNIT ;
1181
                       SWAP ;
1182
                       DIG 3 ;
1183
                       DIG 2 ;
1184
                       PAIR ;
1185
                       EXEC ;
1186
                       CDR ;
1187
                       DUG 6 ;
1188
                       DUG 6 ;
1189
                       DIG 5 ;
1190
                       DIG 6 ;
1191
                       NIL operation ;
1192
                       DUP 4 ;
1193
                       DUP 3 ;
1194
                       GET 6 ;
1195
                       DUP 4 ;
1196
                       GET 3 ;
1197
                       SELF_ADDRESS ;
1198
                       DUP 6 ;
1199
                       GET 5 ;
1200
                       DUP 7 ;
1201
                       CAR ;
1202
                       PAIR 5 ;
1203
                       DIG 3 ;
1204
                       DROP ;
1205
                       DIG 4 ;
1206
                       DROP ;
1207
                       DIG 4 ;
1208
                       DROP ;
1209
                       DIG 4 ;
1210
                       DROP ;
1211
                       DIG 4 ;
1212
                       DROP ;
1213
                       DIG 4 ;
1214
                       DROP ;
1215
                       SWAP ;
1216
                       DUG 2 ;
1217
                       PAIR ;
1218
                       EXEC ;
1219
                       CDR } } } } ;
1220
       NIL operation ;
1221
       SWAP ;
1222
       ITER { CONS } ;
1223
       PAIR }