BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • hic et nunc Minter
operations (6.63M)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
1006
 
1
parameter (or
2
            (or (nat %cancel_swap)
3
                (or (pair %collect (nat %objkt_amount) (nat %swap_id))
4
                    (pair %curate (nat %hDAO_amount) (nat %objkt_id))))
5
            (or
6
              (or (unit %genesis)
7
                  (pair %mint_OBJKT (pair (address %address) (nat %amount))
8
                                    (pair (bytes %metadata) (nat %royalties))))
9
              (or
10
                (pair %swap (nat %objkt_amount)
11
                            (pair (nat %objkt_id) (mutez %xtz_per_objkt)))
12
                (address %update_manager))));
13
storage (pair
14
          (pair (pair (address %curate) (pair (timestamp %genesis) (address %hdao)))
15
                (pair (bool %locked)
16
                      (pair (address %manager) (big_map %metadata string bytes))))
17
          (pair
18
            (pair (address %objkt)
19
                  (pair (nat %objkt_id)
20
                        (big_map %royalties nat
21
                                            (pair (address %issuer) (nat %royalties)))))
22
            (pair (int %size)
23
                  (pair (nat %swap_id)
24
                        (big_map %swaps nat
25
                                        (pair
26
                                          (pair (address %issuer) (nat %objkt_amount))
27
                                          (pair (nat %objkt_id) (mutez %xtz_per_objkt))))))));
28
code { DUP ;
29
       CDR ;
30
       SWAP ;
31
       CAR ;
32
       IF_LEFT
33
         { IF_LEFT
34
             { SENDER ;
35
               DIG 2 ;
36
               DUP ;
37
               DUG 3 ;
38
               CDR ;
39
               CDR ;
40
               CDR ;
41
               CDR ;
42
               DIG 2 ;
43
               DUP ;
44
               DUG 3 ;
45
               GET ;
46
               IF_NONE { PUSH int 148 ; FAILWITH } {} ;
47
               CAR ;
48
               CAR ;
49
               COMPARE ;
50
               EQ ;
51
               IF
52
                 {}
53
                 { PUSH string "WrongCondition: self.data.swaps[params].issuer == sp.sender" ;
54
                   FAILWITH } ;
55
               NIL operation ;
56
               DIG 2 ;
57
               DUP ;
58
               DUG 3 ;
59
               CDR ;
60
               CAR ;
61
               CAR ;
62
               CONTRACT %transfer (list (pair (address %from_)
63
                                             (list %txs (pair (address %to_)
64
                                                             (pair (nat %token_id)
65
                                                                   (nat %amount)))))) ;
66
               IF_NONE { PUSH int 256 ; FAILWITH } {} ;
67
               PUSH mutez 0 ;
68
               NIL (pair (address %from_)
69
                         (list %txs (pair (address %to_)
70
                                         (pair (nat %token_id) (nat %amount))))) ;
71
               NIL (pair (address %to_) (pair (nat %token_id) (nat %amount))) ;
72
               DIG 6 ;
73
               DUP ;
74
               DUG 7 ;
75
               CDR ;
76
               CDR ;
77
               CDR ;
78
               CDR ;
79
               DIG 6 ;
80
               DUP ;
81
               DUG 7 ;
82
               GET ;
83
               IF_NONE { PUSH int 149 ; FAILWITH } {} ;
84
               CAR ;
85
               CDR ;
86
               DIG 7 ;
87
               DUP ;
88
               DUG 8 ;
89
               CDR ;
90
               CDR ;
91
               CDR ;
92
               CDR ;
93
               DIG 7 ;
94
               DUP ;
95
               DUG 8 ;
96
               GET ;
97
               IF_NONE { PUSH int 149 ; FAILWITH } {} ;
98
               CDR ;
99
               CAR ;
100
               PAIR %token_id %amount ;
101
               SENDER ;
102
               PAIR %to_ ;
103
               CONS ;
104
               SELF ;
105
               ADDRESS ;
106
               PAIR %from_ %txs ;
107
               CONS ;
108
               TRANSFER_TOKENS ;
109
               CONS ;
110
               DIG 2 ;
111
               DUP ;
112
               CAR ;
113
               SWAP ;
114
               CDR ;
115
               DUP ;
116
               CAR ;
117
               SWAP ;
118
               CDR ;
119
               DUP ;
120
               CAR ;
121
               SWAP ;
122
               CDR ;
123
               DUP ;
124
               CAR ;
125
               SWAP ;
126
               CDR ;
127
               NONE (pair (pair (address %issuer) (nat %objkt_amount))
128
                          (pair (nat %objkt_id) (mutez %xtz_per_objkt))) ;
129
               DIG 7 ;
130
               UPDATE ;
131
               SWAP ;
132
               PAIR ;
133
               SWAP ;
134
               PAIR ;
135
               SWAP ;
136
               PAIR ;
137
               SWAP ;
138
               PAIR ;
139
               SWAP }
140
             { IF_LEFT
141
                 { DUP ;
142
                   CAR ;
143
                   PUSH nat 0 ;
144
                   COMPARE ;
145
                   LT ;
146
                   IF
147
                     { SWAP ;
148
                       DUP ;
149
                       DUG 2 ;
150
                       CDR ;
151
                       CDR ;
152
                       CDR ;
153
                       CDR ;
154
                       SWAP ;
155
                       DUP ;
156
                       DUG 2 ;
157
                       CDR ;
158
                       GET ;
159
                       IF_NONE { PUSH int 155 ; FAILWITH } {} ;
160
                       CAR ;
161
                       CAR ;
162
                       SENDER ;
163
                       COMPARE ;
164
                       NEQ }
165
                     { PUSH bool False } ;
166
                   IF
167
                     {}
168
                     { PUSH string "WrongCondition: (params.objkt_amount > 0) & (sp.sender != self.data.swaps[params.swap_id].issuer)" ;
169
                       FAILWITH } ;
170
                   PUSH mutez 0 ;
171
                   DIG 2 ;
172
                   DUP ;
173
                   DUG 3 ;
174
                   CDR ;
175
                   CDR ;
176
                   CDR ;
177
                   CDR ;
178
                   DIG 2 ;
179
                   DUP ;
180
                   DUG 3 ;
181
                   CDR ;
182
                   GET ;
183
                   IF_NONE { PUSH int 157 ; FAILWITH } {} ;
184
                   CDR ;
185
                   CDR ;
186
                   COMPARE ;
187
                   NEQ ;
188
                   IF
189
                     { SWAP ;
190
                       DUP ;
191
                       DUG 2 ;
192
                       CDR ;
193
                       CDR ;
194
                       CDR ;
195
                       CDR ;
196
                       SWAP ;
197
                       DUP ;
198
                       DUG 2 ;
199
                       CDR ;
200
                       GET ;
201
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
202
                       CDR ;
203
                       CDR ;
204
                       AMOUNT ;
205
                       EDIV ;
206
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
207
                       CAR ;
208
                       SWAP ;
209
                       DUP ;
210
                       DUG 2 ;
211
                       CAR ;
212
                       COMPARE ;
213
                       EQ ;
214
                       IF
215
                         { PUSH mutez 1 ;
216
                           DUP ;
217
                           DIG 3 ;
218
                           DUP ;
219
                           DUG 4 ;
220
                           CDR ;
221
                           CDR ;
222
                           CDR ;
223
                           CDR ;
224
                           DIG 3 ;
225
                           DUP ;
226
                           DUG 4 ;
227
                           CDR ;
228
                           GET ;
229
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
230
                           CDR ;
231
                           CDR ;
232
                           EDIV ;
233
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
234
                           CAR ;
235
                           DIG 3 ;
236
                           DUP ;
237
                           DUG 4 ;
238
                           CDR ;
239
                           CDR ;
240
                           CDR ;
241
                           CDR ;
242
                           DIG 3 ;
243
                           DUP ;
244
                           DUG 4 ;
245
                           CDR ;
246
                           GET ;
247
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
248
                           CDR ;
249
                           CDR ;
250
                           AMOUNT ;
251
                           EDIV ;
252
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
253
                           CAR ;
254
                           MUL ;
255
                           MUL ;
256
                           AMOUNT ;
257
                           COMPARE ;
258
                           EQ }
259
                         { PUSH bool False } ;
260
                       IF { PUSH mutez 0 ; AMOUNT ; COMPARE ; GT } { PUSH bool False } ;
261
                       IF
262
                         {}
263
                         { PUSH string "WrongCondition: ((params.objkt_amount == sp.fst(sp.ediv(sp.amount, self.data.swaps[params.swap_id].xtz_per_objkt).open_some())) & (sp.amount == sp.mutez(sp.fst(sp.ediv(sp.amount, self.data.swaps[params.swap_id].xtz_per_objkt).open_some()) * sp.fst(sp.ediv(self.data.swaps[params.swap_id].xtz_per_objkt, sp.mutez(1)).open_some())))) & (sp.amount > sp.tez(0))" ;
264
                           FAILWITH } ;
265
                       NIL operation ;
266
                       DIG 2 ;
267
                       DUP ;
268
                       CDR ;
269
                       CAR ;
270
                       CDR ;
271
                       CDR ;
272
                       SWAP ;
273
                       DUP ;
274
                       DUG 4 ;
275
                       CDR ;
276
                       CDR ;
277
                       CDR ;
278
                       CDR ;
279
                       DIG 3 ;
280
                       DUP ;
281
                       DUG 4 ;
282
                       CDR ;
283
                       GET ;
284
                       IF_NONE { PUSH int 169 ; FAILWITH } {} ;
285
                       CDR ;
286
                       CAR ;
287
                       GET ;
288
                       IF_NONE { PUSH int 169 ; FAILWITH } {} ;
289
                       CAR ;
290
                       CONTRACT unit ;
291
                       IF_NONE { PUSH int 169 ; FAILWITH } {} ;
292
                       PUSH mutez 1 ;
293
                       PUSH nat 25 ;
294
                       DIG 5 ;
295
                       DUP ;
296
                       CDR ;
297
                       CAR ;
298
                       CDR ;
299
                       CDR ;
300
                       SWAP ;
301
                       DUP ;
302
                       DUG 7 ;
303
                       CDR ;
304
                       CDR ;
305
                       CDR ;
306
                       CDR ;
307
                       DIG 6 ;
308
                       DUP ;
309
                       DUG 7 ;
310
                       CDR ;
311
                       GET ;
312
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
313
                       CDR ;
314
                       CAR ;
315
                       GET ;
316
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
317
                       CDR ;
318
                       ADD ;
319
                       PUSH nat 1000 ;
320
                       PUSH nat 25 ;
321
                       DIG 7 ;
322
                       DUP ;
323
                       CDR ;
324
                       CAR ;
325
                       CDR ;
326
                       CDR ;
327
                       SWAP ;
328
                       DUP ;
329
                       DUG 9 ;
330
                       CDR ;
331
                       CDR ;
332
                       CDR ;
333
                       CDR ;
334
                       DIG 8 ;
335
                       DUP ;
336
                       DUG 9 ;
337
                       CDR ;
338
                       GET ;
339
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
340
                       CDR ;
341
                       CAR ;
342
                       GET ;
343
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
344
                       CDR ;
345
                       ADD ;
346
                       PUSH mutez 1 ;
347
                       DUP ;
348
                       DUP ;
349
                       DIG 10 ;
350
                       DUP ;
351
                       DUG 11 ;
352
                       CDR ;
353
                       CDR ;
354
                       CDR ;
355
                       CDR ;
356
                       DIG 10 ;
357
                       DUP ;
358
                       DUG 11 ;
359
                       CDR ;
360
                       GET ;
361
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
362
                       CDR ;
363
                       CDR ;
364
                       EDIV ;
365
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
366
                       CAR ;
367
                       DIG 10 ;
368
                       DUP ;
369
                       DUG 11 ;
370
                       CDR ;
371
                       CDR ;
372
                       CDR ;
373
                       CDR ;
374
                       DIG 10 ;
375
                       DUP ;
376
                       DUG 11 ;
377
                       CDR ;
378
                       GET ;
379
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
380
                       CDR ;
381
                       CDR ;
382
                       AMOUNT ;
383
                       EDIV ;
384
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
385
                       CAR ;
386
                       MUL ;
387
                       MUL ;
388
                       EDIV ;
389
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
390
                       CAR ;
391
                       MUL ;
392
                       EDIV ;
393
                       IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
394
                       DIG 6 ;
395
                       DUP ;
396
                       CDR ;
397
                       CAR ;
398
                       CDR ;
399
                       CDR ;
400
                       SWAP ;
401
                       DUP ;
402
                       DUG 8 ;
403
                       CDR ;
404
                       CDR ;
405
                       CDR ;
406
                       CDR ;
407
                       DIG 7 ;
408
                       DUP ;
409
                       DUG 8 ;
410
                       CDR ;
411
                       GET ;
412
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
413
                       CDR ;
414
                       CAR ;
415
                       GET ;
416
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
417
                       CDR ;
418
                       MUL ;
419
                       EDIV ;
420
                       IF_NONE { PUSH int 166 ; FAILWITH } { CAR } ;
421
                       MUL ;
422
                       UNIT ;
423
                       TRANSFER_TOKENS ;
424
                       CONS ;
425
                       DIG 2 ;
426
                       DUP ;
427
                       DUG 3 ;
428
                       CAR ;
429
                       CDR ;
430
                       CDR ;
431
                       CAR ;
432
                       CONTRACT unit ;
433
                       IF_NONE { PUSH int 172 ; FAILWITH } {} ;
434
                       PUSH mutez 1 ;
435
                       PUSH nat 25 ;
436
                       DIG 5 ;
437
                       DUP ;
438
                       CDR ;
439
                       CAR ;
440
                       CDR ;
441
                       CDR ;
442
                       SWAP ;
443
                       DUP ;
444
                       DUG 7 ;
445
                       CDR ;
446
                       CDR ;
447
                       CDR ;
448
                       CDR ;
449
                       DIG 6 ;
450
                       DUP ;
451
                       DUG 7 ;
452
                       CDR ;
453
                       GET ;
454
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
455
                       CDR ;
456
                       CAR ;
457
                       GET ;
458
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
459
                       CDR ;
460
                       ADD ;
461
                       PUSH nat 1000 ;
462
                       PUSH nat 25 ;
463
                       DIG 7 ;
464
                       DUP ;
465
                       CDR ;
466
                       CAR ;
467
                       CDR ;
468
                       CDR ;
469
                       SWAP ;
470
                       DUP ;
471
                       DUG 9 ;
472
                       CDR ;
473
                       CDR ;
474
                       CDR ;
475
                       CDR ;
476
                       DIG 8 ;
477
                       DUP ;
478
                       DUG 9 ;
479
                       CDR ;
480
                       GET ;
481
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
482
                       CDR ;
483
                       CAR ;
484
                       GET ;
485
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
486
                       CDR ;
487
                       ADD ;
488
                       PUSH mutez 1 ;
489
                       DUP ;
490
                       DUP ;
491
                       DIG 10 ;
492
                       DUP ;
493
                       DUG 11 ;
494
                       CDR ;
495
                       CDR ;
496
                       CDR ;
497
                       CDR ;
498
                       DIG 10 ;
499
                       DUP ;
500
                       DUG 11 ;
501
                       CDR ;
502
                       GET ;
503
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
504
                       CDR ;
505
                       CDR ;
506
                       EDIV ;
507
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
508
                       CAR ;
509
                       DIG 10 ;
510
                       DUP ;
511
                       DUG 11 ;
512
                       CDR ;
513
                       CDR ;
514
                       CDR ;
515
                       CDR ;
516
                       DIG 10 ;
517
                       DUP ;
518
                       DUG 11 ;
519
                       CDR ;
520
                       GET ;
521
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
522
                       CDR ;
523
                       CDR ;
524
                       AMOUNT ;
525
                       EDIV ;
526
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
527
                       CAR ;
528
                       MUL ;
529
                       MUL ;
530
                       EDIV ;
531
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
532
                       CAR ;
533
                       MUL ;
534
                       EDIV ;
535
                       IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
536
                       DIG 6 ;
537
                       DUP ;
538
                       CDR ;
539
                       CAR ;
540
                       CDR ;
541
                       CDR ;
542
                       SWAP ;
543
                       DUP ;
544
                       DUG 8 ;
545
                       CDR ;
546
                       CDR ;
547
                       CDR ;
548
                       CDR ;
549
                       DIG 7 ;
550
                       DUP ;
551
                       DUG 8 ;
552
                       CDR ;
553
                       GET ;
554
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
555
                       CDR ;
556
                       CAR ;
557
                       GET ;
558
                       IF_NONE { PUSH int 166 ; FAILWITH } {} ;
559
                       CDR ;
560
                       MUL ;
561
                       EDIV ;
562
                       IF_NONE { PUSH int 166 ; FAILWITH } { CAR } ;
563
                       PUSH nat 1000 ;
564
                       PUSH nat 25 ;
565
                       DIG 7 ;
566
                       DUP ;
567
                       CDR ;
568
                       CAR ;
569
                       CDR ;
570
                       CDR ;
571
                       SWAP ;
572
                       DUP ;
573
                       DUG 9 ;
574
                       CDR ;
575
                       CDR ;
576
                       CDR ;
577
                       CDR ;
578
                       DIG 8 ;
579
                       DUP ;
580
                       DUG 9 ;
581
                       CDR ;
582
                       GET ;
583
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
584
                       CDR ;
585
                       CAR ;
586
                       GET ;
587
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
588
                       CDR ;
589
                       ADD ;
590
                       PUSH mutez 1 ;
591
                       DUP ;
592
                       DUP ;
593
                       DIG 10 ;
594
                       DUP ;
595
                       DUG 11 ;
596
                       CDR ;
597
                       CDR ;
598
                       CDR ;
599
                       CDR ;
600
                       DIG 10 ;
601
                       DUP ;
602
                       DUG 11 ;
603
                       CDR ;
604
                       GET ;
605
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
606
                       CDR ;
607
                       CDR ;
608
                       EDIV ;
609
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
610
                       CAR ;
611
                       DIG 10 ;
612
                       DUP ;
613
                       DUG 11 ;
614
                       CDR ;
615
                       CDR ;
616
                       CDR ;
617
                       CDR ;
618
                       DIG 10 ;
619
                       DUP ;
620
                       DUG 11 ;
621
                       CDR ;
622
                       GET ;
623
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
624
                       CDR ;
625
                       CDR ;
626
                       AMOUNT ;
627
                       EDIV ;
628
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
629
                       CAR ;
630
                       MUL ;
631
                       MUL ;
632
                       EDIV ;
633
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
634
                       CAR ;
635
                       MUL ;
636
                       EDIV ;
637
                       IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
638
                       SUB ;
639
                       ABS ;
640
                       MUL ;
641
                       UNIT ;
642
                       TRANSFER_TOKENS ;
643
                       CONS ;
644
                       DIG 2 ;
645
                       DUP ;
646
                       DUG 3 ;
647
                       CDR ;
648
                       CDR ;
649
                       CDR ;
650
                       CDR ;
651
                       DIG 2 ;
652
                       DUP ;
653
                       DUG 3 ;
654
                       CDR ;
655
                       GET ;
656
                       IF_NONE { PUSH int 175 ; FAILWITH } {} ;
657
                       CAR ;
658
                       CAR ;
659
                       CONTRACT unit ;
660
                       IF_NONE { PUSH int 175 ; FAILWITH } {} ;
661
                       PUSH mutez 1 ;
662
                       PUSH nat 1000 ;
663
                       PUSH nat 25 ;
664
                       DIG 6 ;
665
                       DUP ;
666
                       CDR ;
667
                       CAR ;
668
                       CDR ;
669
                       CDR ;
670
                       SWAP ;
671
                       DUP ;
672
                       DUG 8 ;
673
                       CDR ;
674
                       CDR ;
675
                       CDR ;
676
                       CDR ;
677
                       DIG 7 ;
678
                       DUP ;
679
                       DUG 8 ;
680
                       CDR ;
681
                       GET ;
682
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
683
                       CDR ;
684
                       CAR ;
685
                       GET ;
686
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
687
                       CDR ;
688
                       ADD ;
689
                       PUSH mutez 1 ;
690
                       DUP ;
691
                       DUP ;
692
                       DIG 9 ;
693
                       DUP ;
694
                       DUG 10 ;
695
                       CDR ;
696
                       CDR ;
697
                       CDR ;
698
                       CDR ;
699
                       DIG 9 ;
700
                       DUP ;
701
                       DUG 10 ;
702
                       CDR ;
703
                       GET ;
704
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
705
                       CDR ;
706
                       CDR ;
707
                       EDIV ;
708
                       IF_NONE { PUSH int 161 ; FAILWITH } {} ;
709
                       CAR ;
710
                       DIG 9 ;
711
                       DUP ;
712
                       DUG 10 ;
713
                       CDR ;
714
                       CDR ;
715
                       CDR ;
716
                       CDR ;
717
                       DIG 9 ;
718
                       DUP ;
719
                       DUG 10 ;
720
                       CDR ;
721
                       GET ;
722
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
723
                       CDR ;
724
                       CDR ;
725
                       AMOUNT ;
726
                       EDIV ;
727
                       IF_NONE { PUSH int 159 ; FAILWITH } {} ;
728
                       CAR ;
729
                       MUL ;
730
                       MUL ;
731
                       EDIV ;
732
                       IF_NONE { PUSH int 165 ; FAILWITH } {} ;
733
                       CAR ;
734
                       MUL ;
735
                       EDIV ;
736
                       IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
737
                       MUL ;
738
                       AMOUNT ;
739
                       SUB ;
740
                       UNIT ;
741
                       TRANSFER_TOKENS ;
742
                       CONS ;
743
                       DIG 2 ;
744
                       DUP ;
745
                       DUG 3 ;
746
                       CAR ;
747
                       CAR ;
748
                       CDR ;
749
                       CAR ;
750
                       NOW ;
751
                       COMPARE ;
752
                       LT ;
753
                       IF
754
                         { DIG 2 ;
755
                           DUP ;
756
                           DUG 3 ;
757
                           CAR ;
758
                           CAR ;
759
                           CDR ;
760
                           CDR ;
761
                           CONTRACT %hDAO_batch (list (pair (nat %amount) (address %to_))) ;
762
                           IF_NONE { PUSH int 241 ; FAILWITH } {} ;
763
                           PUSH mutez 0 ;
764
                           NIL (pair (nat %amount) (address %to_)) ;
765
                           DIG 5 ;
766
                           DUP ;
767
                           DUG 6 ;
768
                           CAR ;
769
                           CDR ;
770
                           CDR ;
771
                           CAR ;
772
                           PUSH nat 25 ;
773
                           DIG 7 ;
774
                           DUP ;
775
                           CDR ;
776
                           CAR ;
777
                           CDR ;
778
                           CDR ;
779
                           SWAP ;
780
                           DUP ;
781
                           DUG 9 ;
782
                           CDR ;
783
                           CDR ;
784
                           CDR ;
785
                           CDR ;
786
                           DIG 8 ;
787
                           DUP ;
788
                           DUG 9 ;
789
                           CDR ;
790
                           GET ;
791
                           IF_NONE { PUSH int 166 ; FAILWITH } {} ;
792
                           CDR ;
793
                           CAR ;
794
                           GET ;
795
                           IF_NONE { PUSH int 166 ; FAILWITH } {} ;
796
                           CDR ;
797
                           ADD ;
798
                           PUSH nat 1000 ;
799
                           PUSH nat 25 ;
800
                           DIG 9 ;
801
                           DUP ;
802
                           CDR ;
803
                           CAR ;
804
                           CDR ;
805
                           CDR ;
806
                           SWAP ;
807
                           DUP ;
808
                           DUG 11 ;
809
                           CDR ;
810
                           CDR ;
811
                           CDR ;
812
                           CDR ;
813
                           DIG 10 ;
814
                           DUP ;
815
                           DUG 11 ;
816
                           CDR ;
817
                           GET ;
818
                           IF_NONE { PUSH int 165 ; FAILWITH } {} ;
819
                           CDR ;
820
                           CAR ;
821
                           GET ;
822
                           IF_NONE { PUSH int 165 ; FAILWITH } {} ;
823
                           CDR ;
824
                           ADD ;
825
                           PUSH mutez 1 ;
826
                           DUP ;
827
                           DUP ;
828
                           DIG 12 ;
829
                           DUP ;
830
                           DUG 13 ;
831
                           CDR ;
832
                           CDR ;
833
                           CDR ;
834
                           CDR ;
835
                           DIG 12 ;
836
                           DUP ;
837
                           DUG 13 ;
838
                           CDR ;
839
                           GET ;
840
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
841
                           CDR ;
842
                           CDR ;
843
                           EDIV ;
844
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
845
                           CAR ;
846
                           DIG 12 ;
847
                           DUP ;
848
                           DUG 13 ;
849
                           CDR ;
850
                           CDR ;
851
                           CDR ;
852
                           CDR ;
853
                           DIG 12 ;
854
                           DUP ;
855
                           DUG 13 ;
856
                           CDR ;
857
                           GET ;
858
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
859
                           CDR ;
860
                           CDR ;
861
                           AMOUNT ;
862
                           EDIV ;
863
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
864
                           CAR ;
865
                           MUL ;
866
                           MUL ;
867
                           EDIV ;
868
                           IF_NONE { PUSH int 165 ; FAILWITH } {} ;
869
                           CAR ;
870
                           MUL ;
871
                           EDIV ;
872
                           IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
873
                           DIG 8 ;
874
                           DUP ;
875
                           CDR ;
876
                           CAR ;
877
                           CDR ;
878
                           CDR ;
879
                           SWAP ;
880
                           DUP ;
881
                           DUG 10 ;
882
                           CDR ;
883
                           CDR ;
884
                           CDR ;
885
                           CDR ;
886
                           DIG 9 ;
887
                           DUP ;
888
                           DUG 10 ;
889
                           CDR ;
890
                           GET ;
891
                           IF_NONE { PUSH int 166 ; FAILWITH } {} ;
892
                           CDR ;
893
                           CAR ;
894
                           GET ;
895
                           IF_NONE { PUSH int 166 ; FAILWITH } {} ;
896
                           CDR ;
897
                           MUL ;
898
                           EDIV ;
899
                           IF_NONE { PUSH int 166 ; FAILWITH } { CAR } ;
900
                           PUSH nat 1000 ;
901
                           PUSH nat 25 ;
902
                           DIG 9 ;
903
                           DUP ;
904
                           CDR ;
905
                           CAR ;
906
                           CDR ;
907
                           CDR ;
908
                           SWAP ;
909
                           DUP ;
910
                           DUG 11 ;
911
                           CDR ;
912
                           CDR ;
913
                           CDR ;
914
                           CDR ;
915
                           DIG 10 ;
916
                           DUP ;
917
                           DUG 11 ;
918
                           CDR ;
919
                           GET ;
920
                           IF_NONE { PUSH int 165 ; FAILWITH } {} ;
921
                           CDR ;
922
                           CAR ;
923
                           GET ;
924
                           IF_NONE { PUSH int 165 ; FAILWITH } {} ;
925
                           CDR ;
926
                           ADD ;
927
                           PUSH mutez 1 ;
928
                           DUP ;
929
                           DUP ;
930
                           DIG 12 ;
931
                           DUP ;
932
                           DUG 13 ;
933
                           CDR ;
934
                           CDR ;
935
                           CDR ;
936
                           CDR ;
937
                           DIG 12 ;
938
                           DUP ;
939
                           DUG 13 ;
940
                           CDR ;
941
                           GET ;
942
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
943
                           CDR ;
944
                           CDR ;
945
                           EDIV ;
946
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
947
                           CAR ;
948
                           DIG 12 ;
949
                           DUP ;
950
                           DUG 13 ;
951
                           CDR ;
952
                           CDR ;
953
                           CDR ;
954
                           CDR ;
955
                           DIG 12 ;
956
                           DUP ;
957
                           DUG 13 ;
958
                           CDR ;
959
                           GET ;
960
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
961
                           CDR ;
962
                           CDR ;
963
                           AMOUNT ;
964
                           EDIV ;
965
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
966
                           CAR ;
967
                           MUL ;
968
                           MUL ;
969
                           EDIV ;
970
                           IF_NONE { PUSH int 165 ; FAILWITH } {} ;
971
                           CAR ;
972
                           MUL ;
973
                           EDIV ;
974
                           IF_NONE { PUSH int 165 ; FAILWITH } { CAR } ;
975
                           SUB ;
976
                           ABS ;
977
                           PAIR %amount %to_ ;
978
                           CONS ;
979
                           DIG 5 ;
980
                           DUP ;
981
                           DUG 6 ;
982
                           CDR ;
983
                           CDR ;
984
                           CDR ;
985
                           CDR ;
986
                           DIG 5 ;
987
                           DUP ;
988
                           DUG 6 ;
989
                           CDR ;
990
                           GET ;
991
                           IF_NONE { PUSH int 179 ; FAILWITH } {} ;
992
                           CAR ;
993
                           CAR ;
994
                           PUSH nat 2 ;
995
                           PUSH mutez 1 ;
996
                           DIG 8 ;
997
                           DUP ;
998
                           DUG 9 ;
999
                           CDR ;
1000
                           CDR ;
1001
                           CDR ;
1002
                           CDR ;
1003
                           DIG 8 ;
1004
                           DUP ;
1005
                           DUG 9 ;
1006
                           CDR ;
1007
                           GET ;
1008
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
1009
                           CDR ;
1010
                           CDR ;
1011
                           EDIV ;
1012
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
1013
                           CAR ;
1014
                           DIG 8 ;
1015
                           DUP ;
1016
                           DUG 9 ;
1017
                           CDR ;
1018
                           CDR ;
1019
                           CDR ;
1020
                           CDR ;
1021
                           DIG 8 ;
1022
                           DUP ;
1023
                           DUG 9 ;
1024
                           CDR ;
1025
                           GET ;
1026
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
1027
                           CDR ;
1028
                           CDR ;
1029
                           AMOUNT ;
1030
                           EDIV ;
1031
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
1032
                           CAR ;
1033
                           MUL ;
1034
                           EDIV ;
1035
                           IF_NONE { PUSH int 179 ; FAILWITH } { CAR } ;
1036
                           PAIR %amount %to_ ;
1037
                           CONS ;
1038
                           SENDER ;
1039
                           PUSH nat 2 ;
1040
                           PUSH mutez 1 ;
1041
                           DIG 8 ;
1042
                           DUP ;
1043
                           DUG 9 ;
1044
                           CDR ;
1045
                           CDR ;
1046
                           CDR ;
1047
                           CDR ;
1048
                           DIG 8 ;
1049
                           DUP ;
1050
                           DUG 9 ;
1051
                           CDR ;
1052
                           GET ;
1053
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
1054
                           CDR ;
1055
                           CDR ;
1056
                           EDIV ;
1057
                           IF_NONE { PUSH int 161 ; FAILWITH } {} ;
1058
                           CAR ;
1059
                           DIG 8 ;
1060
                           DUP ;
1061
                           DUG 9 ;
1062
                           CDR ;
1063
                           CDR ;
1064
                           CDR ;
1065
                           CDR ;
1066
                           DIG 8 ;
1067
                           DUP ;
1068
                           DUG 9 ;
1069
                           CDR ;
1070
                           GET ;
1071
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
1072
                           CDR ;
1073
                           CDR ;
1074
                           AMOUNT ;
1075
                           EDIV ;
1076
                           IF_NONE { PUSH int 159 ; FAILWITH } {} ;
1077
                           CAR ;
1078
                           MUL ;
1079
                           EDIV ;
1080
                           IF_NONE { PUSH int 179 ; FAILWITH } { CAR } ;
1081
                           PAIR %amount %to_ ;
1082
                           CONS ;
1083
                           TRANSFER_TOKENS ;
1084
                           CONS }
1085
                         {} }
1086
                     { NIL operation } ;
1087
                   DIG 2 ;
1088
                   DUP ;
1089
                   DUG 3 ;
1090
                   CDR ;
1091
                   CAR ;
1092
                   CAR ;
1093
                   CONTRACT %transfer (list (pair (address %from_)
1094
                                                 (list %txs (pair (address %to_)
1095
                                                                 (pair (nat %token_id)
1096
                                                                       (nat %amount)))))) ;
1097
                   IF_NONE { PUSH int 256 ; FAILWITH } {} ;
1098
                   PUSH mutez 0 ;
1099
                   NIL (pair (address %from_)
1100
                             (list %txs (pair (address %to_)
1101
                                             (pair (nat %token_id) (nat %amount))))) ;
1102
                   NIL (pair (address %to_) (pair (nat %token_id) (nat %amount))) ;
1103
                   DIG 5 ;
1104
                   DUP ;
1105
                   DUG 6 ;
1106
                   CAR ;
1107
                   DIG 7 ;
1108
                   DUP ;
1109
                   DUG 8 ;
1110
                   CDR ;
1111
                   CDR ;
1112
                   CDR ;
1113
                   CDR ;
1114
                   DIG 7 ;
1115
                   DUP ;
1116
                   DUG 8 ;
1117
                   CDR ;
1118
                   GET ;
1119
                   IF_NONE { PUSH int 181 ; FAILWITH } {} ;
1120
                   CDR ;
1121
                   CAR ;
1122
                   PAIR %token_id %amount ;
1123
                   SENDER ;
1124
                   PAIR %to_ ;
1125
                   CONS ;
1126
                   SELF ;
1127
                   ADDRESS ;
1128
                   PAIR %from_ %txs ;
1129
                   CONS ;
1130
                   TRANSFER_TOKENS ;
1131
                   CONS ;
1132
                   DIG 2 ;
1133
                   DUP ;
1134
                   DUG 3 ;
1135
                   DUP ;
1136
                   CAR ;
1137
                   SWAP ;
1138
                   CDR ;
1139
                   DUP ;
1140
                   CAR ;
1141
                   SWAP ;
1142
                   CDR ;
1143
                   DUP ;
1144
                   CAR ;
1145
                   SWAP ;
1146
                   CDR ;
1147
                   DUP ;
1148
                   CAR ;
1149
                   SWAP ;
1150
                   CDR ;
1151
                   DUP ;
1152
                   DIG 7 ;
1153
                   DUP ;
1154
                   DUG 8 ;
1155
                   CDR ;
1156
                   DUP ;
1157
                   DUG 2 ;
1158
                   GET ;
1159
                   IF_NONE { PUSH int 183 ; FAILWITH } {} ;
1160
                   DUP ;
1161
                   CDR ;
1162
                   SWAP ;
1163
                   CAR ;
1164
                   CAR ;
1165
                   DIG 9 ;
1166
                   DUP ;
1167
                   DUG 10 ;
1168
                   CAR ;
1169
                   DIG 11 ;
1170
                   CDR ;
1171
                   CDR ;
1172
                   CDR ;
1173
                   CDR ;
1174
                   DIG 11 ;
1175
                   DUP ;
1176
                   DUG 12 ;
1177
                   CDR ;
1178
                   GET ;
1179
                   IF_NONE { PUSH int 183 ; FAILWITH } {} ;
1180
                   CAR ;
1181
                   CDR ;
1182
                   SUB ;
1183
                   ABS ;
1184
                   SWAP ;
1185
                   PAIR ;
1186
                   PAIR ;
1187
                   SOME ;
1188
                   SWAP ;
1189
                   UPDATE ;
1190
                   SWAP ;
1191
                   PAIR ;
1192
                   SWAP ;
1193
                   PAIR ;
1194
                   SWAP ;
1195
                   PAIR ;
1196
                   SWAP ;
1197
                   PAIR ;
1198
                   DUG 2 ;
1199
                   PUSH nat 0 ;
1200
                   DIG 3 ;
1201
                   DUP ;
1202
                   DUG 4 ;
1203
                   CDR ;
1204
                   CDR ;
1205
                   CDR ;
1206
                   CDR ;
1207
                   DIG 3 ;
1208
                   DUP ;
1209
                   DUG 4 ;
1210
                   CDR ;
1211
                   GET ;
1212
                   IF_NONE { PUSH int 185 ; FAILWITH } {} ;
1213
                   CAR ;
1214
                   CDR ;
1215
                   COMPARE ;
1216
                   EQ ;
1217
                   IF
1218
                     { DIG 2 ;
1219
                       DUP ;
1220
                       CAR ;
1221
                       SWAP ;
1222
                       CDR ;
1223
                       DUP ;
1224
                       CAR ;
1225
                       SWAP ;
1226
                       CDR ;
1227
                       DUP ;
1228
                       CAR ;
1229
                       SWAP ;
1230
                       CDR ;
1231
                       DUP ;
1232
                       CAR ;
1233
                       SWAP ;
1234
                       CDR ;
1235
                       NONE (pair (pair (address %issuer) (nat %objkt_amount))
1236
                                  (pair (nat %objkt_id) (mutez %xtz_per_objkt))) ;
1237
                       DIG 7 ;
1238
                       CDR ;
1239
                       UPDATE ;
1240
                       SWAP ;
1241
                       PAIR ;
1242
                       SWAP ;
1243
                       PAIR ;
1244
                       SWAP ;
1245
                       PAIR ;
1246
                       SWAP ;
1247
                       PAIR ;
1248
                       SWAP }
1249
                     { SWAP ; DROP } }
1250
                 { NIL operation ;
1251
                   DIG 2 ;
1252
                   DUP ;
1253
                   DUG 3 ;
1254
                   CAR ;
1255
                   CAR ;
1256
                   CDR ;
1257
                   CDR ;
1258
                   CONTRACT %transfer (list (pair (address %from_)
1259
                                                 (list %txs (pair (address %to_)
1260
                                                                 (pair (nat %token_id)
1261
                                                                       (nat %amount)))))) ;
1262
                   IF_NONE { PUSH int 256 ; FAILWITH } {} ;
1263
                   PUSH mutez 0 ;
1264
                   NIL (pair (address %from_)
1265
                             (list %txs (pair (address %to_)
1266
                                             (pair (nat %token_id) (nat %amount))))) ;
1267
                   NIL (pair (address %to_) (pair (nat %token_id) (nat %amount))) ;
1268
                   DIG 5 ;
1269
                   DUP ;
1270
                   DUG 6 ;
1271
                   CAR ;
1272
                   PUSH nat 0 ;
1273
                   PAIR %token_id %amount ;
1274
                   DIG 7 ;
1275
                   DUP ;
1276
                   DUG 8 ;
1277
                   CAR ;
1278
                   CAR ;
1279
                   CAR ;
1280
                   PAIR %to_ ;
1281
                   CONS ;
1282
                   SENDER ;
1283
                   PAIR %from_ %txs ;
1284
                   CONS ;
1285
                   TRANSFER_TOKENS ;
1286
                   CONS ;
1287
                   DIG 2 ;
1288
                   DUP ;
1289
                   DUG 3 ;
1290
                   CAR ;
1291
                   CAR ;
1292
                   CAR ;
1293
                   CONTRACT %curate (pair (nat %hDAO_amount)
1294
                                          (pair (address %issuer) (nat %objkt_id))) ;
1295
                   IF_NONE { PUSH int 219 ; FAILWITH } {} ;
1296
                   PUSH mutez 0 ;
1297
                   DIG 3 ;
1298
                   DUP ;
1299
                   DUG 4 ;
1300
                   CDR ;
1301
                   DIG 5 ;
1302
                   DUP ;
1303
                   DUG 6 ;
1304
                   CDR ;
1305
                   CAR ;
1306
                   CDR ;
1307
                   CDR ;
1308
                   DIG 5 ;
1309
                   DUP ;
1310
                   DUG 6 ;
1311
                   CDR ;
1312
                   GET ;
1313
                   IF_NONE { PUSH int 229 ; FAILWITH } {} ;
1314
                   CAR ;
1315
                   PAIR %issuer %objkt_id ;
1316
                   DIG 4 ;
1317
                   CAR ;
1318
                   PAIR %hDAO_amount ;
1319
                   TRANSFER_TOKENS ;
1320
                   CONS } } }
1321
         { IF_LEFT
1322
             { IF_LEFT
1323
                 { DROP ;
1324
                   DUP ;
1325
                   CAR ;
1326
                   CDR ;
1327
                   CDR ;
1328
                   CAR ;
1329
                   SENDER ;
1330
                   COMPARE ;
1331
                   EQ ;
1332
                   IF { DUP ; CAR ; CDR ; CAR ; NOT } { PUSH bool False } ;
1333
                   IF
1334
                     {}
1335
                     { PUSH string "WrongCondition: (sp.sender == self.data.manager) & (~ self.data.locked)" ;
1336
                       FAILWITH } ;
1337
                   DUP ;
1338
                   CDR ;
1339
                   SWAP ;
1340
                   CAR ;
1341
                   DUP ;
1342
                   CDR ;
1343
                   SWAP ;
1344
                   CAR ;
1345
                   DUP ;
1346
                   CAR ;
1347
                   SWAP ;
1348
                   CDR ;
1349
                   CDR ;
1350
                   NOW ;
1351
                   PUSH int 3888000 ;
1352
                   ADD ;
1353
                   PAIR ;
1354
                   SWAP ;
1355
                   PAIR ;
1356
                   PAIR ;
1357
                   PAIR ;
1358
                   DUP ;
1359
                   CDR ;
1360
                   SWAP ;
1361
                   CAR ;
1362
                   DUP ;
1363
                   CAR ;
1364
                   SWAP ;
1365
                   CDR ;
1366
                   CDR ;
1367
                   PUSH bool True ;
1368
                   PAIR ;
1369
                   SWAP ;
1370
                   PAIR ;
1371
                   PAIR ;
1372
                   NIL operation }
1373
                 { DUP ;
1374
                   CAR ;
1375
                   CDR ;
1376
                   PUSH nat 0 ;
1377
                   COMPARE ;
1378
                   LT ;
1379
                   IF
1380
                     { DUP ;
1381
                       CDR ;
1382
                       CDR ;
1383
                       PUSH nat 0 ;
1384
                       SWAP ;
1385
                       COMPARE ;
1386
                       GE ;
1387
                       IF
1388
                         { DUP ; CDR ; CDR ; PUSH nat 250 ; SWAP ; COMPARE ; LE }
1389
                         { PUSH bool False } }
1390
                     { PUSH bool False } ;
1391
                   IF
1392
                     { DUP ; CDR ; CAR ; SIZE ; PUSH nat 53 ; COMPARE ; EQ }
1393
                     { PUSH bool False } ;
1394
                   IF
1395
                     { DUP ; CAR ; CDR ; PUSH nat 10000 ; SWAP ; COMPARE ; LE }
1396
                     { PUSH bool False } ;
1397
                   IF
1398
                     {}
1399
                     { PUSH string "WrongCondition: (((params.amount > 0) & ((params.royalties >= 0) & (params.royalties <= 250))) & (sp.len(params.metadata) == 53)) & (params.amount <= 10000)" ;
1400
                       FAILWITH } ;
1401
                   NIL operation ;
1402
                   DIG 2 ;
1403
                   DUP ;
1404
                   DUG 3 ;
1405
                   CDR ;
1406
                   CAR ;
1407
                   CAR ;
1408
                   CONTRACT %mint (pair (pair (address %address) (nat %amount))
1409
                                        (pair (nat %token_id)
1410
                                              (map %token_info string bytes))) ;
1411
                   IF_NONE { PUSH int 192 ; FAILWITH } {} ;
1412
                   PUSH mutez 0 ;
1413
                   EMPTY_MAP string bytes ;
1414
                   DIG 4 ;
1415
                   DUP ;
1416
                   DUG 5 ;
1417
                   CDR ;
1418
                   CAR ;
1419
                   SOME ;
1420
                   PUSH string "" ;
1421
                   UPDATE ;
1422
                   DIG 5 ;
1423
                   DUP ;
1424
                   DUG 6 ;
1425
                   CDR ;
1426
                   CAR ;
1427
                   CDR ;
1428
                   CAR ;
1429
                   PAIR %token_id %token_info ;
1430
                   DIG 4 ;
1431
                   DUP ;
1432
                   CAR ;
1433
                   CDR ;
1434
                   SWAP ;
1435
                   DUP ;
1436
                   DUG 6 ;
1437
                   CAR ;
1438
                   CAR ;
1439
                   PAIR %address %amount ;
1440
                   PAIR ;
1441
                   TRANSFER_TOKENS ;
1442
                   CONS ;
1443
                   DIG 2 ;
1444
                   DUP ;
1445
                   DUG 3 ;
1446
                   DUP ;
1447
                   CAR ;
1448
                   SWAP ;
1449
                   CDR ;
1450
                   DUP ;
1451
                   CDR ;
1452
                   SWAP ;
1453
                   CAR ;
1454
                   DUP ;
1455
                   CAR ;
1456
                   SWAP ;
1457
                   CDR ;
1458
                   DUP ;
1459
                   CAR ;
1460
                   SWAP ;
1461
                   CDR ;
1462
                   DIG 6 ;
1463
                   CDR ;
1464
                   CDR ;
1465
                   SENDER ;
1466
                   PAIR %issuer %royalties ;
1467
                   SOME ;
1468
                   DIG 7 ;
1469
                   CDR ;
1470
                   CAR ;
1471
                   CDR ;
1472
                   CAR ;
1473
                   UPDATE ;
1474
                   SWAP ;
1475
                   PAIR ;
1476
                   SWAP ;
1477
                   PAIR ;
1478
                   PAIR ;
1479
                   SWAP ;
1480
                   PAIR ;
1481
                   DUP ;
1482
                   CAR ;
1483
                   SWAP ;
1484
                   CDR ;
1485
                   DUP ;
1486
                   CDR ;
1487
                   SWAP ;
1488
                   CAR ;
1489
                   DUP ;
1490
                   CAR ;
1491
                   SWAP ;
1492
                   CDR ;
1493
                   DUP ;
1494
                   CDR ;
1495
                   SWAP ;
1496
                   CAR ;
1497
                   PUSH nat 1 ;
1498
                   ADD ;
1499
                   PAIR ;
1500
                   SWAP ;
1501
                   PAIR ;
1502
                   PAIR ;
1503
                   SWAP ;
1504
                   PAIR ;
1505
                   SWAP } }
1506
             { IF_LEFT
1507
                 { DUP ;
1508
                   CAR ;
1509
                   PUSH nat 0 ;
1510
                   COMPARE ;
1511
                   LT ;
1512
                   IF
1513
                     {}
1514
                     { PUSH string "WrongCondition: params.objkt_amount > 0" ; FAILWITH } ;
1515
                   NIL operation ;
1516
                   DIG 2 ;
1517
                   DUP ;
1518
                   DUG 3 ;
1519
                   CDR ;
1520
                   CAR ;
1521
                   CAR ;
1522
                   CONTRACT %transfer (list (pair (address %from_)
1523
                                                 (list %txs (pair (address %to_)
1524
                                                                 (pair (nat %token_id)
1525
                                                                       (nat %amount)))))) ;
1526
                   IF_NONE { PUSH int 256 ; FAILWITH } {} ;
1527
                   PUSH mutez 0 ;
1528
                   NIL (pair (address %from_)
1529
                             (list %txs (pair (address %to_)
1530
                                             (pair (nat %token_id) (nat %amount))))) ;
1531
                   NIL (pair (address %to_) (pair (nat %token_id) (nat %amount))) ;
1532
                   DIG 5 ;
1533
                   DUP ;
1534
                   CAR ;
1535
                   SWAP ;
1536
                   DUP ;
1537
                   DUG 7 ;
1538
                   CDR ;
1539
                   CAR ;
1540
                   PAIR %token_id %amount ;
1541
                   SELF ;
1542
                   ADDRESS ;
1543
                   PAIR %to_ ;
1544
                   CONS ;
1545
                   SENDER ;
1546
                   PAIR %from_ %txs ;
1547
                   CONS ;
1548
                   TRANSFER_TOKENS ;
1549
                   CONS ;
1550
                   DIG 2 ;
1551
                   DUP ;
1552
                   DUG 3 ;
1553
                   DUP ;
1554
                   CAR ;
1555
                   SWAP ;
1556
                   CDR ;
1557
                   DUP ;
1558
                   CAR ;
1559
                   SWAP ;
1560
                   CDR ;
1561
                   DUP ;
1562
                   CAR ;
1563
                   SWAP ;
1564
                   CDR ;
1565
                   DUP ;
1566
                   CAR ;
1567
                   SWAP ;
1568
                   CDR ;
1569
                   DIG 6 ;
1570
                   DUP ;
1571
                   CDR ;
1572
                   CDR ;
1573
                   SWAP ;
1574
                   DUP ;
1575
                   DUG 8 ;
1576
                   CDR ;
1577
                   CAR ;
1578
                   PAIR %objkt_id %xtz_per_objkt ;
1579
                   DIG 7 ;
1580
                   CAR ;
1581
                   SENDER ;
1582
                   PAIR %issuer %objkt_amount ;
1583
                   PAIR ;
1584
                   SOME ;
1585
                   DIG 7 ;
1586
                   CDR ;
1587
                   CDR ;
1588
                   CDR ;
1589
                   CAR ;
1590
                   UPDATE ;
1591
                   SWAP ;
1592
                   PAIR ;
1593
                   SWAP ;
1594
                   PAIR ;
1595
                   SWAP ;
1596
                   PAIR ;
1597
                   SWAP ;
1598
                   PAIR ;
1599
                   DUP ;
1600
                   CAR ;
1601
                   SWAP ;
1602
                   CDR ;
1603
                   DUP ;
1604
                   CAR ;
1605
                   SWAP ;
1606
                   CDR ;
1607
                   DUP ;
1608
                   CAR ;
1609
                   SWAP ;
1610
                   CDR ;
1611
                   DUP ;
1612
                   CDR ;
1613
                   SWAP ;
1614
                   CAR ;
1615
                   PUSH nat 1 ;
1616
                   ADD ;
1617
                   PAIR ;
1618
                   SWAP ;
1619
                   PAIR ;
1620
                   SWAP ;
1621
                   PAIR ;
1622
                   SWAP ;
1623
                   PAIR ;
1624
                   SWAP }
1625
                 { SWAP ;
1626
                   DUP ;
1627
                   DUG 2 ;
1628
                   CAR ;
1629
                   CDR ;
1630
                   CDR ;
1631
                   CAR ;
1632
                   SENDER ;
1633
                   COMPARE ;
1634
                   EQ ;
1635
                   IF
1636
                     {}
1637
                     { PUSH string "WrongCondition: sp.sender == self.data.manager" ;
1638
                       FAILWITH } ;
1639
                   SWAP ;
1640
                   DUP ;
1641
                   CDR ;
1642
                   SWAP ;
1643
                   CAR ;
1644
                   DUP ;
1645
                   CAR ;
1646
                   SWAP ;
1647
                   CDR ;
1648
                   DUP ;
1649
                   CAR ;
1650
                   SWAP ;
1651
                   CDR ;
1652
                   CDR ;
1653
                   DIG 4 ;
1654
                   PAIR ;
1655
                   SWAP ;
1656
                   PAIR ;
1657
                   SWAP ;
1658
                   PAIR ;
1659
                   PAIR ;
1660
                   NIL operation } } } ;
1661
       NIL operation ;
1662
       SWAP ;
1663
       ITER { CONS } ;
1664
       PAIR }