BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • KT1T1tZ...hXxY
operations (80)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
849
1775
 
1
parameter (or
2
            (or
3
              (or
4
                (or (pair %burn (int %amount) (address %fromAddr))
5
                    (or (nat %claimSale)
6
                        (pair %cvrDrop (list %addresses address) (int %amount))))
7
                (or (pair %dispatchRoyalties (list %addresses address) (nat %amount))
8
                    (or (address %getAdministrator)
9
                        (pair %getBalance (address %owner) (address %target)))))
10
              (or
11
                (or (address %getCirculatingSupply)
12
                    (or (address %getFactor) (address %getManager)))
13
                (or (or (address %getSaleLimit) (address %getSaleStatus))
14
                    (or (address %getSoldToken) (address %getSupplyLimit)))))
15
            (or
16
              (or
17
                (or (address %getTransferStatus)
18
                    (or (int %increaseSaleLimit) (address %lockAddress)))
19
                (or
20
                  (or (pair %mint (int %amount) (address %toAddr))
21
                      (pair %offchainSale (address %address) (int %amount)))
22
                  (or (unit %pauseSale) (unit %pauseTransfer))))
23
              (or (or (unit %resumeSale) (or (unit %resumeTransfer) (unit %sale)))
24
                  (or (or (address %setAdministrator) (address %setManager))
25
                      (or
26
                        (pair %transfer (int %amount)
27
                                        (pair (address %fromAddr) (address %toAddr)))
28
                        (address %unlockAddress))))));
29
storage (pair
30
          (pair
31
            (pair
32
              (pair (address %administrator)
33
                    (big_map %balances address (pair (int %balance) (bool %lock))))
34
              (pair (int %circulatingSupply) (address %covir)))
35
            (pair (pair (int %factor) (address %octopus))
36
                  (pair (address %owner) (int %ratio))))
37
          (pair
38
            (pair (pair (int %saleLimit) (address %saleManager))
39
                  (pair (bool %saleStatus) (int %soldToken)))
40
            (pair (pair (int %supplyLimit) (string %tokenName))
41
                  (pair (string %tokenSymbol) (bool %transferStatus)))));
42
code { DUP ;
43
       CDR ;
44
       SWAP ;
45
       CAR ;
46
       IF_LEFT
47
         { IF_LEFT
48
             { IF_LEFT
49
                 { IF_LEFT
50
                     { DUP ;
51
                       CDR ;
52
                       SENDER ;
53
                       COMPARE ;
54
                       EQ ;
55
                       IF
56
                         {}
57
                         { PUSH string "WrongCondition: params.fromAddr == sp.sender" ;
58
                           FAILWITH } ;
59
                       SWAP ;
60
                       DUP ;
61
                       DUG 2 ;
62
                       { CAR ; CAR ; CAR ; CDR } ;
63
                       SWAP ;
64
                       DUP ;
65
                       DUG 2 ;
66
                       CDR ;
67
                       MEM ;
68
                       IF
69
                         {}
70
                         { PUSH string "WrongCondition: self.data.balances.contains(params.fromAddr)" ;
71
                           FAILWITH } ;
72
                       DUP ;
73
                       CAR ;
74
                       DIG 2 ;
75
                       DUP ;
76
                       DUG 3 ;
77
                       { CAR ; CAR ; CAR ; CDR } ;
78
                       DIG 2 ;
79
                       DUP ;
80
                       DUG 3 ;
81
                       CDR ;
82
                       GET ;
83
                       { IF_NONE { PUSH string "Get-item:23" ; FAILWITH } {} } ;
84
                       CAR ;
85
                       COMPARE ;
86
                       GE ;
87
                       IF
88
                         {}
89
                         { PUSH string "WrongCondition: self.data.balances[params.fromAddr].balance >= params.amount" ;
90
                           FAILWITH } ;
91
                       SWAP ;
92
                       DUP ;
93
                       DUG 2 ;
94
                       DUP ;
95
                       CDR ;
96
                       SWAP ;
97
                       CAR ;
98
                       DUP ;
99
                       CDR ;
100
                       SWAP ;
101
                       CAR ;
102
                       DUP ;
103
                       CDR ;
104
                       SWAP ;
105
                       CAR ;
106
                       DUP ;
107
                       CAR ;
108
                       SWAP ;
109
                       CDR ;
110
                       DUP ;
111
                       DIG 6 ;
112
                       DUP ;
113
                       DUG 7 ;
114
                       CDR ;
115
                       DUP ;
116
                       DUG 2 ;
117
                       GET ;
118
                       { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
119
                       CDR ;
120
                       DIG 7 ;
121
                       DUP ;
122
                       DUG 8 ;
123
                       CAR ;
124
                       DIG 9 ;
125
                       DUP ;
126
                       DUG 10 ;
127
                       { CAR ; CAR ; CAR ; CDR } ;
128
                       DIG 9 ;
129
                       DUP ;
130
                       DUG 10 ;
131
                       CDR ;
132
                       GET ;
133
                       { IF_NONE { PUSH string "Get-item:23" ; FAILWITH } {} } ;
134
                       CAR ;
135
                       SUB ;
136
                       PAIR ;
137
                       SOME ;
138
                       SWAP ;
139
                       UPDATE ;
140
                       SWAP ;
141
                       PAIR ;
142
                       PAIR ;
143
                       PAIR ;
144
                       PAIR ;
145
                       DUG 2 ;
146
                       SWAP ;
147
                       DROP ;
148
                       SWAP ;
149
                       DUP ;
150
                       DUG 2 ;
151
                       DUP ;
152
                       CDR ;
153
                       SWAP ;
154
                       CAR ;
155
                       DUP ;
156
                       CDR ;
157
                       SWAP ;
158
                       CAR ;
159
                       DUP ;
160
                       CAR ;
161
                       SWAP ;
162
                       { CDR ; CDR } ;
163
                       DIG 4 ;
164
                       DUP ;
165
                       DUG 5 ;
166
                       CAR ;
167
                       DIG 6 ;
168
                       DUP ;
169
                       DUG 7 ;
170
                       { CAR ; CAR ; CDR ; CAR } ;
171
                       SUB ;
172
                       PAIR ;
173
                       SWAP ;
174
                       PAIR ;
175
                       PAIR ;
176
                       PAIR ;
177
                       DUG 2 ;
178
                       SWAP ;
179
                       DROP ;
180
                       SWAP ;
181
                       DUP ;
182
                       DUG 2 ;
183
                       DUP ;
184
                       CAR ;
185
                       SWAP ;
186
                       CDR ;
187
                       DUP ;
188
                       CAR ;
189
                       SWAP ;
190
                       CDR ;
191
                       DUP ;
192
                       CDR ;
193
                       SWAP ;
194
                       { CAR ; CDR } ;
195
                       DIG 4 ;
196
                       DUP ;
197
                       DUG 5 ;
198
                       CAR ;
199
                       DIG 6 ;
200
                       DUP ;
201
                       DUG 7 ;
202
                       { CDR ; CDR ; CAR ; CAR } ;
203
                       SUB ;
204
                       PAIR ;
205
                       PAIR ;
206
                       SWAP ;
207
                       PAIR ;
208
                       SWAP ;
209
                       PAIR ;
210
                       DUG 2 ;
211
                       DROP 2 ;
212
                       NIL operation }
213
                     { IF_LEFT
214
                         { SWAP ;
215
                           DUP ;
216
                           DUG 2 ;
217
                           { CAR ; CAR ; CAR ; CAR } ;
218
                           SENDER ;
219
                           COMPARE ;
220
                           EQ ;
221
                           IF
222
                             {}
223
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
224
                               FAILWITH } ;
225
                           DUP ;
226
                           PUSH mutez 1 ;
227
                           MUL ;
228
                           BALANCE ;
229
                           COMPARE ;
230
                           GT ;
231
                           IF
232
                             {}
233
                             { PUSH string "WrongCondition: sp.balance > sp.mutez(params.amount)" ;
234
                               FAILWITH } ;
235
                           NIL operation ;
236
                           DIG 2 ;
237
                           DUP ;
238
                           DUG 3 ;
239
                           { CAR ; CDR ; CAR ; CDR } ;
240
                           CONTRACT unit ;
241
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
242
                           PUSH mutez 1 ;
243
                           PUSH nat 75 ;
244
                           PUSH nat 100 ;
245
                           DIG 5 ;
246
                           DUP ;
247
                           DUG 6 ;
248
                           EDIV ;
249
                           { IF_NONE
250
                               { PUSH string "division by zero" ; FAILWITH }
251
                               { CAR } } ;
252
                           MUL ;
253
                           MUL ;
254
                           PUSH unit Unit ;
255
                           TRANSFER_TOKENS ;
256
                           CONS ;
257
                           DUP ;
258
                           DIG 3 ;
259
                           DUP ;
260
                           DUG 4 ;
261
                           { CAR ; CAR ; CDR ; CDR } ;
262
                           CONTRACT unit ;
263
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
264
                           PUSH mutez 1 ;
265
                           PUSH nat 25 ;
266
                           PUSH nat 100 ;
267
                           DIG 6 ;
268
                           DUP ;
269
                           DUG 7 ;
270
                           EDIV ;
271
                           { IF_NONE
272
                               { PUSH string "division by zero" ; FAILWITH }
273
                               { CAR } } ;
274
                           MUL ;
275
                           MUL ;
276
                           PUSH unit Unit ;
277
                           TRANSFER_TOKENS ;
278
                           CONS ;
279
                           SWAP ;
280
                           DROP ;
281
                           SWAP ;
282
                           DROP }
283
                         { SWAP ;
284
                           DUP ;
285
                           DUG 2 ;
286
                           { CAR ; CAR ; CAR ; CAR } ;
287
                           SENDER ;
288
                           COMPARE ;
289
                           EQ ;
290
                           IF
291
                             {}
292
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
293
                               FAILWITH } ;
294
                           SWAP ;
295
                           DUP ;
296
                           DUG 2 ;
297
                           { CDR ; CDR ; CAR ; CAR } ;
298
                           DIG 2 ;
299
                           DUP ;
300
                           DUG 3 ;
301
                           { CAR ; CAR ; CDR ; CAR } ;
302
                           DIG 3 ;
303
                           DUP ;
304
                           DUG 4 ;
305
                           { CDR ; CAR ; CDR ; CDR } ;
306
                           DIG 4 ;
307
                           DUP ;
308
                           DUG 5 ;
309
                           { CDR ; CAR ; CAR ; CAR } ;
310
                           SUB ;
311
                           DIG 3 ;
312
                           DUP ;
313
                           DUG 4 ;
314
                           CAR ;
315
                           SIZE ;
316
                           INT ;
317
                           DIG 4 ;
318
                           DUP ;
319
                           DUG 5 ;
320
                           CDR ;
321
                           MUL ;
322
                           ADD ;
323
                           ADD ;
324
                           COMPARE ;
325
                           LE ;
326
                           IF
327
                             {}
328
                             { PUSH string "WrongCondition: (((params.amount * (sp.to_int(sp.len(params.addresses)))) + (self.data.saleLimit - self.data.soldToken)) + self.data.circulatingSupply) <= self.data.supplyLimit" ;
329
                               FAILWITH } ;
330
                           DUP ;
331
                           CAR ;
332
                           ITER { DIG 2 ;
333
                                  DUP ;
334
                                  DUG 3 ;
335
                                  { CAR ; CAR ; CAR ; CDR } ;
336
                                  SWAP ;
337
                                  DUP ;
338
                                  DUG 2 ;
339
                                  MEM ;
340
                                  IF
341
                                    {}
342
                                    { DIG 2 ;
343
                                      DUP ;
344
                                      DUG 3 ;
345
                                      DUP ;
346
                                      CDR ;
347
                                      SWAP ;
348
                                      CAR ;
349
                                      DUP ;
350
                                      CDR ;
351
                                      SWAP ;
352
                                      CAR ;
353
                                      DUP ;
354
                                      CDR ;
355
                                      SWAP ;
356
                                      CAR ;
357
                                      DUP ;
358
                                      CAR ;
359
                                      SWAP ;
360
                                      CDR ;
361
                                      PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
362
                                      DIG 6 ;
363
                                      DUP ;
364
                                      DUG 7 ;
365
                                      UPDATE ;
366
                                      SWAP ;
367
                                      PAIR ;
368
                                      PAIR ;
369
                                      PAIR ;
370
                                      PAIR ;
371
                                      DUG 3 ;
372
                                      DIG 2 ;
373
                                      DROP } ;
374
                                  DIG 2 ;
375
                                  DUP ;
376
                                  DUG 3 ;
377
                                  DUP ;
378
                                  CDR ;
379
                                  SWAP ;
380
                                  CAR ;
381
                                  DUP ;
382
                                  CDR ;
383
                                  SWAP ;
384
                                  CAR ;
385
                                  DUP ;
386
                                  CDR ;
387
                                  SWAP ;
388
                                  CAR ;
389
                                  DUP ;
390
                                  CAR ;
391
                                  SWAP ;
392
                                  CDR ;
393
                                  DUP ;
394
                                  DIG 6 ;
395
                                  DUP ;
396
                                  DUG 7 ;
397
                                  DUP ;
398
                                  DUG 2 ;
399
                                  GET ;
400
                                  { IF_NONE
401
                                      { PUSH string "set_in_top-any" ; FAILWITH }
402
                                      {} } ;
403
                                  CDR ;
404
                                  DIG 8 ;
405
                                  DUP ;
406
                                  DUG 9 ;
407
                                  CDR ;
408
                                  DIG 10 ;
409
                                  DUP ;
410
                                  DUG 11 ;
411
                                  { CAR ; CAR ; CAR ; CDR } ;
412
                                  DIG 3 ;
413
                                  DUP ;
414
                                  DUG 4 ;
415
                                  GET ;
416
                                  { IF_NONE
417
                                      { PUSH string "Get-item:126" ; FAILWITH }
418
                                      {} } ;
419
                                  CAR ;
420
                                  ADD ;
421
                                  PAIR ;
422
                                  SOME ;
423
                                  SWAP ;
424
                                  UPDATE ;
425
                                  SWAP ;
426
                                  PAIR ;
427
                                  PAIR ;
428
                                  PAIR ;
429
                                  PAIR ;
430
                                  DUG 3 ;
431
                                  DIG 2 ;
432
                                  DROP ;
433
                                  DIG 2 ;
434
                                  DUP ;
435
                                  DUG 3 ;
436
                                  DUP ;
437
                                  CDR ;
438
                                  SWAP ;
439
                                  CAR ;
440
                                  DUP ;
441
                                  CDR ;
442
                                  SWAP ;
443
                                  CAR ;
444
                                  DUP ;
445
                                  CAR ;
446
                                  SWAP ;
447
                                  { CDR ; CDR } ;
448
                                  DIG 5 ;
449
                                  DUP ;
450
                                  DUG 6 ;
451
                                  CDR ;
452
                                  DIG 7 ;
453
                                  DUP ;
454
                                  DUG 8 ;
455
                                  { CAR ; CAR ; CDR ; CAR } ;
456
                                  ADD ;
457
                                  PAIR ;
458
                                  SWAP ;
459
                                  PAIR ;
460
                                  PAIR ;
461
                                  PAIR ;
462
                                  DUG 3 ;
463
                                  DROP ;
464
                                  SWAP ;
465
                                  DROP } ;
466
                           DROP ;
467
                           NIL operation } } }
468
                 { IF_LEFT
469
                     { SWAP ;
470
                       DUP ;
471
                       DUG 2 ;
472
                       { CAR ; CAR ; CAR ; CAR } ;
473
                       SENDER ;
474
                       COMPARE ;
475
                       EQ ;
476
                       IF
477
                         {}
478
                         { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
479
                           FAILWITH } ;
480
                       DUP ;
481
                       CAR ;
482
                       NIL operation ;
483
                       SWAP ;
484
                       ITER { DIG 3 ;
485
                              DUP ;
486
                              DUG 4 ;
487
                              { CAR ; CAR ; CAR ; CDR } ;
488
                              SWAP ;
489
                              DUP ;
490
                              DUG 2 ;
491
                              MEM ;
492
                              IF
493
                                { PUSH nat 1 ;
494
                                  DIG 3 ;
495
                                  DUP ;
496
                                  DUG 4 ;
497
                                  CDR ;
498
                                  PUSH int 10000000000 ;
499
                                  ISNAT ;
500
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
501
                                  DIG 6 ;
502
                                  DUP ;
503
                                  DUG 7 ;
504
                                  { CAR ; CAR ; CDR ; CAR } ;
505
                                  ISNAT ;
506
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
507
                                  MUL ;
508
                                  EDIV ;
509
                                  { IF_NONE
510
                                      { PUSH string "division by zero" ; FAILWITH }
511
                                      { CAR } } ;
512
                                  ADD ;
513
                                  PUSH int 10000000000 ;
514
                                  ISNAT ;
515
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
516
                                  DIG 5 ;
517
                                  DUP ;
518
                                  DUG 6 ;
519
                                  { CAR ; CAR ; CAR ; CDR } ;
520
                                  DIG 3 ;
521
                                  DUP ;
522
                                  DUG 4 ;
523
                                  GET ;
524
                                  { IF_NONE
525
                                      { PUSH string "Get-item:136" ; FAILWITH }
526
                                      {} } ;
527
                                  CAR ;
528
                                  ISNAT ;
529
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
530
                                  MUL ;
531
                                  COMPARE ;
532
                                  GT }
533
                                { PUSH bool False } ;
534
                              IF
535
                                { SWAP ;
536
                                  DUP ;
537
                                  DUG 2 ;
538
                                  SWAP ;
539
                                  DUP ;
540
                                  DUG 2 ;
541
                                  CONTRACT unit ;
542
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
543
                                  PUSH mutez 1 ;
544
                                  PUSH nat 1 ;
545
                                  DIG 6 ;
546
                                  DUP ;
547
                                  DUG 7 ;
548
                                  CDR ;
549
                                  PUSH int 10000000000 ;
550
                                  ISNAT ;
551
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
552
                                  DIG 9 ;
553
                                  DUP ;
554
                                  DUG 10 ;
555
                                  { CAR ; CAR ; CDR ; CAR } ;
556
                                  ISNAT ;
557
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
558
                                  MUL ;
559
                                  EDIV ;
560
                                  { IF_NONE
561
                                      { PUSH string "division by zero" ; FAILWITH }
562
                                      { CAR } } ;
563
                                  ADD ;
564
                                  PUSH int 10000000000 ;
565
                                  ISNAT ;
566
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
567
                                  DIG 8 ;
568
                                  DUP ;
569
                                  DUG 9 ;
570
                                  { CAR ; CAR ; CAR ; CDR } ;
571
                                  DIG 6 ;
572
                                  DUP ;
573
                                  DUG 7 ;
574
                                  GET ;
575
                                  { IF_NONE
576
                                      { PUSH string "Get-item:136" ; FAILWITH }
577
                                      {} } ;
578
                                  CAR ;
579
                                  ISNAT ;
580
                                  { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
581
                                  MUL ;
582
                                  EDIV ;
583
                                  { IF_NONE
584
                                      { PUSH string "division by zero" ; FAILWITH }
585
                                      { CAR } } ;
586
                                  MUL ;
587
                                  PUSH unit Unit ;
588
                                  TRANSFER_TOKENS ;
589
                                  CONS ;
590
                                  DUG 2 ;
591
                                  SWAP ;
592
                                  DROP }
593
                                {} ;
594
                              DROP } ;
595
                       SWAP ;
596
                       DROP }
597
                     { IF_LEFT
598
                         { DUP ;
599
                           NIL operation ;
600
                           SWAP ;
601
                           CONTRACT address ;
602
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
603
                           PUSH mutez 0 ;
604
                           DIG 4 ;
605
                           DUP ;
606
                           DUG 5 ;
607
                           { CAR ; CAR ; CAR ; CAR } ;
608
                           TRANSFER_TOKENS ;
609
                           CONS ;
610
                           SWAP ;
611
                           DROP }
612
                         { SWAP ;
613
                           DUP ;
614
                           DUG 2 ;
615
                           { CAR ; CAR ; CAR ; CDR } ;
616
                           SWAP ;
617
                           DUP ;
618
                           DUG 2 ;
619
                           CAR ;
620
                           MEM ;
621
                           IF
622
                             { DUP ;
623
                               CDR ;
624
                               NIL operation ;
625
                               SWAP ;
626
                               CONTRACT nat ;
627
                               { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
628
                               PUSH mutez 0 ;
629
                               DIG 4 ;
630
                               DUP ;
631
                               DUG 5 ;
632
                               { CAR ; CAR ; CAR ; CDR } ;
633
                               DIG 4 ;
634
                               DUP ;
635
                               DUG 5 ;
636
                               CAR ;
637
                               GET ;
638
                               { IF_NONE { PUSH string "Get-item:154" ; FAILWITH } {} } ;
639
                               CAR ;
640
                               ISNAT ;
641
                               { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
642
                               TRANSFER_TOKENS ;
643
                               CONS }
644
                             { DUP ;
645
                               CDR ;
646
                               NIL operation ;
647
                               SWAP ;
648
                               CONTRACT nat ;
649
                               { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
650
                               PUSH mutez 0 ;
651
                               PUSH int 0 ;
652
                               ISNAT ;
653
                               { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
654
                               TRANSFER_TOKENS ;
655
                               CONS } ;
656
                           SWAP ;
657
                           DROP } } } }
658
             { IF_LEFT
659
                 { IF_LEFT
660
                     { DUP ;
661
                       NIL operation ;
662
                       SWAP ;
663
                       CONTRACT nat ;
664
                       { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
665
                       PUSH mutez 0 ;
666
                       DIG 4 ;
667
                       DUP ;
668
                       DUG 5 ;
669
                       { CAR ; CAR ; CDR ; CAR } ;
670
                       ISNAT ;
671
                       { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
672
                       TRANSFER_TOKENS ;
673
                       CONS ;
674
                       SWAP ;
675
                       DROP }
676
                     { IF_LEFT
677
                         { DUP ;
678
                           NIL operation ;
679
                           SWAP ;
680
                           CONTRACT nat ;
681
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
682
                           PUSH mutez 0 ;
683
                           DIG 4 ;
684
                           DUP ;
685
                           DUG 5 ;
686
                           { CAR ; CDR ; CAR ; CAR } ;
687
                           ISNAT ;
688
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
689
                           TRANSFER_TOKENS ;
690
                           CONS ;
691
                           SWAP ;
692
                           DROP }
693
                         { DUP ;
694
                           NIL operation ;
695
                           SWAP ;
696
                           CONTRACT address ;
697
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
698
                           PUSH mutez 0 ;
699
                           DIG 4 ;
700
                           DUP ;
701
                           DUG 5 ;
702
                           { CDR ; CAR ; CAR ; CDR } ;
703
                           TRANSFER_TOKENS ;
704
                           CONS ;
705
                           SWAP ;
706
                           DROP } } }
707
                 { IF_LEFT
708
                     { IF_LEFT
709
                         { DUP ;
710
                           NIL operation ;
711
                           SWAP ;
712
                           CONTRACT nat ;
713
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
714
                           PUSH mutez 0 ;
715
                           DIG 4 ;
716
                           DUP ;
717
                           DUG 5 ;
718
                           { CDR ; CAR ; CAR ; CAR } ;
719
                           ISNAT ;
720
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
721
                           TRANSFER_TOKENS ;
722
                           CONS ;
723
                           SWAP ;
724
                           DROP }
725
                         { SWAP ;
726
                           DUP ;
727
                           DUG 2 ;
728
                           { CDR ; CAR ; CDR ; CAR } ;
729
                           IF
730
                             { DUP ;
731
                               NIL operation ;
732
                               SWAP ;
733
                               CONTRACT nat ;
734
                               { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
735
                               PUSH mutez 0 ;
736
                               PUSH nat 1 ;
737
                               TRANSFER_TOKENS ;
738
                               CONS }
739
                             { DUP ;
740
                               NIL operation ;
741
                               SWAP ;
742
                               CONTRACT nat ;
743
                               { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
744
                               PUSH mutez 0 ;
745
                               PUSH nat 0 ;
746
                               TRANSFER_TOKENS ;
747
                               CONS } ;
748
                           SWAP ;
749
                           DROP } }
750
                     { IF_LEFT
751
                         { DUP ;
752
                           NIL operation ;
753
                           SWAP ;
754
                           CONTRACT nat ;
755
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
756
                           PUSH mutez 0 ;
757
                           DIG 4 ;
758
                           DUP ;
759
                           DUG 5 ;
760
                           { CDR ; CAR ; CDR ; CDR } ;
761
                           ISNAT ;
762
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
763
                           TRANSFER_TOKENS ;
764
                           CONS ;
765
                           SWAP ;
766
                           DROP }
767
                         { DUP ;
768
                           NIL operation ;
769
                           SWAP ;
770
                           CONTRACT nat ;
771
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
772
                           PUSH mutez 0 ;
773
                           DIG 4 ;
774
                           DUP ;
775
                           DUG 5 ;
776
                           { CDR ; CDR ; CAR ; CAR } ;
777
                           ISNAT ;
778
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
779
                           TRANSFER_TOKENS ;
780
                           CONS ;
781
                           SWAP ;
782
                           DROP } } } } }
783
         { IF_LEFT
784
             { IF_LEFT
785
                 { IF_LEFT
786
                     { SWAP ;
787
                       DUP ;
788
                       DUG 2 ;
789
                       { CDR ; CDR ; CDR ; CDR } ;
790
                       IF
791
                         { DUP ;
792
                           NIL operation ;
793
                           SWAP ;
794
                           CONTRACT nat ;
795
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
796
                           PUSH mutez 0 ;
797
                           PUSH nat 1 ;
798
                           TRANSFER_TOKENS ;
799
                           CONS }
800
                         { DUP ;
801
                           NIL operation ;
802
                           SWAP ;
803
                           CONTRACT nat ;
804
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
805
                           PUSH mutez 0 ;
806
                           PUSH nat 0 ;
807
                           TRANSFER_TOKENS ;
808
                           CONS } ;
809
                       SWAP ;
810
                       DROP }
811
                     { IF_LEFT
812
                         { SWAP ;
813
                           DUP ;
814
                           DUG 2 ;
815
                           { CAR ; CAR ; CAR ; CAR } ;
816
                           SENDER ;
817
                           COMPARE ;
818
                           EQ ;
819
                           IF
820
                             {}
821
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
822
                               FAILWITH } ;
823
                           SWAP ;
824
                           DUP ;
825
                           DUG 2 ;
826
                           { CDR ; CDR ; CAR ; CAR } ;
827
                           DIG 2 ;
828
                           DUP ;
829
                           DUG 3 ;
830
                           { CAR ; CAR ; CDR ; CAR } ;
831
                           DIG 3 ;
832
                           DUP ;
833
                           DUG 4 ;
834
                           { CDR ; CAR ; CDR ; CDR } ;
835
                           DIG 4 ;
836
                           DUP ;
837
                           DUG 5 ;
838
                           { CDR ; CAR ; CAR ; CAR } ;
839
                           SUB ;
840
                           DIG 3 ;
841
                           DUP ;
842
                           DUG 4 ;
843
                           ADD ;
844
                           ADD ;
845
                           COMPARE ;
846
                           LE ;
847
                           IF
848
                             {}
849
                             { PUSH string "WrongCondition: ((params.amount + (self.data.saleLimit - self.data.soldToken)) + self.data.circulatingSupply) <= self.data.supplyLimit" ;
850
                               FAILWITH } ;
851
                           SWAP ;
852
                           DUP ;
853
                           DUG 2 ;
854
                           DUP ;
855
                           CAR ;
856
                           SWAP ;
857
                           CDR ;
858
                           DUP ;
859
                           CDR ;
860
                           SWAP ;
861
                           CAR ;
862
                           DUP ;
863
                           CDR ;
864
                           SWAP ;
865
                           { CAR ; CDR } ;
866
                           DIG 4 ;
867
                           DUP ;
868
                           DUG 5 ;
869
                           DIG 6 ;
870
                           DUP ;
871
                           DUG 7 ;
872
                           { CDR ; CAR ; CAR ; CAR } ;
873
                           ADD ;
874
                           PAIR ;
875
                           PAIR ;
876
                           PAIR ;
877
                           SWAP ;
878
                           PAIR ;
879
                           DUG 2 ;
880
                           DROP 2 }
881
                         { SWAP ;
882
                           DUP ;
883
                           DUG 2 ;
884
                           { CAR ; CAR ; CAR ; CAR } ;
885
                           SENDER ;
886
                           COMPARE ;
887
                           EQ ;
888
                           IF
889
                             {}
890
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
891
                               FAILWITH } ;
892
                           SWAP ;
893
                           DUP ;
894
                           DUG 2 ;
895
                           { CAR ; CAR ; CAR ; CDR } ;
896
                           SWAP ;
897
                           DUP ;
898
                           DUG 2 ;
899
                           MEM ;
900
                           IF
901
                             {}
902
                             { PUSH string "WrongCondition: self.data.balances.contains(params.address)" ;
903
                               FAILWITH } ;
904
                           SWAP ;
905
                           DUP ;
906
                           DUG 2 ;
907
                           DUP ;
908
                           CDR ;
909
                           SWAP ;
910
                           CAR ;
911
                           DUP ;
912
                           CDR ;
913
                           SWAP ;
914
                           CAR ;
915
                           DUP ;
916
                           CDR ;
917
                           SWAP ;
918
                           CAR ;
919
                           DUP ;
920
                           CAR ;
921
                           SWAP ;
922
                           CDR ;
923
                           DUP ;
924
                           DIG 6 ;
925
                           DUP ;
926
                           DUG 7 ;
927
                           DUP ;
928
                           DUG 2 ;
929
                           GET ;
930
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
931
                           CAR ;
932
                           PUSH bool True ;
933
                           SWAP ;
934
                           PAIR ;
935
                           SOME ;
936
                           SWAP ;
937
                           UPDATE ;
938
                           SWAP ;
939
                           PAIR ;
940
                           PAIR ;
941
                           PAIR ;
942
                           PAIR ;
943
                           DUG 2 ;
944
                           DROP 2 } ;
945
                       NIL operation } }
946
                 { IF_LEFT
947
                     { IF_LEFT
948
                         { SWAP ;
949
                           DUP ;
950
                           DUG 2 ;
951
                           { CAR ; CAR ; CAR ; CAR } ;
952
                           SENDER ;
953
                           COMPARE ;
954
                           EQ ;
955
                           IF
956
                             {}
957
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
958
                               FAILWITH } ;
959
                           SWAP ;
960
                           DUP ;
961
                           DUG 2 ;
962
                           { CDR ; CDR ; CAR ; CAR } ;
963
                           DIG 2 ;
964
                           DUP ;
965
                           DUG 3 ;
966
                           { CAR ; CAR ; CDR ; CAR } ;
967
                           DIG 3 ;
968
                           DUP ;
969
                           DUG 4 ;
970
                           { CDR ; CAR ; CDR ; CDR } ;
971
                           DIG 4 ;
972
                           DUP ;
973
                           DUG 5 ;
974
                           { CDR ; CAR ; CAR ; CAR } ;
975
                           SUB ;
976
                           DIG 3 ;
977
                           DUP ;
978
                           DUG 4 ;
979
                           CAR ;
980
                           ADD ;
981
                           ADD ;
982
                           COMPARE ;
983
                           LE ;
984
                           IF
985
                             {}
986
                             { PUSH string "WrongCondition: ((params.amount + (self.data.saleLimit - self.data.soldToken)) + self.data.circulatingSupply) <= self.data.supplyLimit" ;
987
                               FAILWITH } ;
988
                           SWAP ;
989
                           DUP ;
990
                           DUG 2 ;
991
                           { CAR ; CAR ; CAR ; CDR } ;
992
                           SWAP ;
993
                           DUP ;
994
                           DUG 2 ;
995
                           CDR ;
996
                           MEM ;
997
                           IF
998
                             {}
999
                             { SWAP ;
1000
                               DUP ;
1001
                               DUG 2 ;
1002
                               DUP ;
1003
                               CDR ;
1004
                               SWAP ;
1005
                               CAR ;
1006
                               DUP ;
1007
                               CDR ;
1008
                               SWAP ;
1009
                               CAR ;
1010
                               DUP ;
1011
                               CDR ;
1012
                               SWAP ;
1013
                               CAR ;
1014
                               DUP ;
1015
                               CAR ;
1016
                               SWAP ;
1017
                               CDR ;
1018
                               PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
1019
                               DIG 6 ;
1020
                               DUP ;
1021
                               DUG 7 ;
1022
                               CDR ;
1023
                               UPDATE ;
1024
                               SWAP ;
1025
                               PAIR ;
1026
                               PAIR ;
1027
                               PAIR ;
1028
                               PAIR ;
1029
                               DUG 2 ;
1030
                               SWAP ;
1031
                               DROP } ;
1032
                           SWAP ;
1033
                           DUP ;
1034
                           DUG 2 ;
1035
                           DUP ;
1036
                           CDR ;
1037
                           SWAP ;
1038
                           CAR ;
1039
                           DUP ;
1040
                           CDR ;
1041
                           SWAP ;
1042
                           CAR ;
1043
                           DUP ;
1044
                           CDR ;
1045
                           SWAP ;
1046
                           CAR ;
1047
                           DUP ;
1048
                           CAR ;
1049
                           SWAP ;
1050
                           CDR ;
1051
                           DUP ;
1052
                           DIG 6 ;
1053
                           DUP ;
1054
                           DUG 7 ;
1055
                           CDR ;
1056
                           DUP ;
1057
                           DUG 2 ;
1058
                           GET ;
1059
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
1060
                           CDR ;
1061
                           DIG 7 ;
1062
                           DUP ;
1063
                           DUG 8 ;
1064
                           CAR ;
1065
                           DIG 9 ;
1066
                           DUP ;
1067
                           DUG 10 ;
1068
                           { CAR ; CAR ; CAR ; CDR } ;
1069
                           DIG 9 ;
1070
                           DUP ;
1071
                           DUG 10 ;
1072
                           CDR ;
1073
                           GET ;
1074
                           { IF_NONE { PUSH string "Get-item:112" ; FAILWITH } {} } ;
1075
                           CAR ;
1076
                           ADD ;
1077
                           PAIR ;
1078
                           SOME ;
1079
                           SWAP ;
1080
                           UPDATE ;
1081
                           SWAP ;
1082
                           PAIR ;
1083
                           PAIR ;
1084
                           PAIR ;
1085
                           PAIR ;
1086
                           DUG 2 ;
1087
                           SWAP ;
1088
                           DROP ;
1089
                           SWAP ;
1090
                           DUP ;
1091
                           DUG 2 ;
1092
                           DUP ;
1093
                           CDR ;
1094
                           SWAP ;
1095
                           CAR ;
1096
                           DUP ;
1097
                           CDR ;
1098
                           SWAP ;
1099
                           CAR ;
1100
                           DUP ;
1101
                           CAR ;
1102
                           SWAP ;
1103
                           { CDR ; CDR } ;
1104
                           DIG 4 ;
1105
                           DUP ;
1106
                           DUG 5 ;
1107
                           CAR ;
1108
                           DIG 6 ;
1109
                           DUP ;
1110
                           DUG 7 ;
1111
                           { CAR ; CAR ; CDR ; CAR } ;
1112
                           ADD ;
1113
                           PAIR ;
1114
                           SWAP ;
1115
                           PAIR ;
1116
                           PAIR ;
1117
                           PAIR ;
1118
                           DUG 2 ;
1119
                           DROP 2 }
1120
                         { SWAP ;
1121
                           DUP ;
1122
                           DUG 2 ;
1123
                           { CDR ; CAR ; CAR ; CDR } ;
1124
                           SENDER ;
1125
                           COMPARE ;
1126
                           EQ ;
1127
                           IF
1128
                             {}
1129
                             { PUSH string "WrongCondition: sp.sender == self.data.saleManager" ;
1130
                               FAILWITH } ;
1131
                           SWAP ;
1132
                           DUP ;
1133
                           DUG 2 ;
1134
                           { CAR ; CAR ; CAR ; CDR } ;
1135
                           SWAP ;
1136
                           DUP ;
1137
                           DUG 2 ;
1138
                           CAR ;
1139
                           MEM ;
1140
                           IF
1141
                             { SWAP ;
1142
                               DUP ;
1143
                               DUG 2 ;
1144
                               { CAR ; CAR ; CAR ; CDR } ;
1145
                               SWAP ;
1146
                               DUP ;
1147
                               DUG 2 ;
1148
                               CAR ;
1149
                               GET ;
1150
                               { IF_NONE { PUSH string "Get-item:94" ; FAILWITH } {} } ;
1151
                               CDR ;
1152
                               IF
1153
                                 { PUSH string "WrongCondition: ~ self.data.balances[params.address].lock" ;
1154
                                   FAILWITH }
1155
                                 {} }
1156
                             {} ;
1157
                           SWAP ;
1158
                           DUP ;
1159
                           DUG 2 ;
1160
                           { CDR ; CAR ; CAR ; CAR } ;
1161
                           SWAP ;
1162
                           DUP ;
1163
                           DUG 2 ;
1164
                           CDR ;
1165
                           DIG 3 ;
1166
                           DUP ;
1167
                           DUG 4 ;
1168
                           { CDR ; CAR ; CDR ; CDR } ;
1169
                           ADD ;
1170
                           COMPARE ;
1171
                           LE ;
1172
                           IF
1173
                             {}
1174
                             { PUSH string "WrongCondition: (self.data.soldToken + params.amount) <= self.data.saleLimit" ;
1175
                               FAILWITH } ;
1176
                           SWAP ;
1177
                           DUP ;
1178
                           DUG 2 ;
1179
                           { CAR ; CAR ; CAR ; CDR } ;
1180
                           SWAP ;
1181
                           DUP ;
1182
                           DUG 2 ;
1183
                           CAR ;
1184
                           MEM ;
1185
                           IF
1186
                             {}
1187
                             { SWAP ;
1188
                               DUP ;
1189
                               DUG 2 ;
1190
                               DUP ;
1191
                               CDR ;
1192
                               SWAP ;
1193
                               CAR ;
1194
                               DUP ;
1195
                               CDR ;
1196
                               SWAP ;
1197
                               CAR ;
1198
                               DUP ;
1199
                               CDR ;
1200
                               SWAP ;
1201
                               CAR ;
1202
                               DUP ;
1203
                               CAR ;
1204
                               SWAP ;
1205
                               CDR ;
1206
                               PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
1207
                               DIG 6 ;
1208
                               DUP ;
1209
                               DUG 7 ;
1210
                               CAR ;
1211
                               UPDATE ;
1212
                               SWAP ;
1213
                               PAIR ;
1214
                               PAIR ;
1215
                               PAIR ;
1216
                               PAIR ;
1217
                               DUG 2 ;
1218
                               SWAP ;
1219
                               DROP } ;
1220
                           SWAP ;
1221
                           DUP ;
1222
                           DUG 2 ;
1223
                           DUP ;
1224
                           CDR ;
1225
                           SWAP ;
1226
                           CAR ;
1227
                           DUP ;
1228
                           CDR ;
1229
                           SWAP ;
1230
                           CAR ;
1231
                           DUP ;
1232
                           CDR ;
1233
                           SWAP ;
1234
                           CAR ;
1235
                           DUP ;
1236
                           CAR ;
1237
                           SWAP ;
1238
                           CDR ;
1239
                           DUP ;
1240
                           DIG 6 ;
1241
                           DUP ;
1242
                           DUG 7 ;
1243
                           CAR ;
1244
                           DUP ;
1245
                           DUG 2 ;
1246
                           GET ;
1247
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
1248
                           CDR ;
1249
                           DIG 7 ;
1250
                           DUP ;
1251
                           DUG 8 ;
1252
                           CDR ;
1253
                           DIG 9 ;
1254
                           DUP ;
1255
                           DUG 10 ;
1256
                           { CAR ; CAR ; CAR ; CDR } ;
1257
                           DIG 9 ;
1258
                           DUP ;
1259
                           DUG 10 ;
1260
                           CAR ;
1261
                           GET ;
1262
                           { IF_NONE { PUSH string "Get-item:94" ; FAILWITH } {} } ;
1263
                           CAR ;
1264
                           ADD ;
1265
                           PAIR ;
1266
                           SOME ;
1267
                           SWAP ;
1268
                           UPDATE ;
1269
                           SWAP ;
1270
                           PAIR ;
1271
                           PAIR ;
1272
                           PAIR ;
1273
                           PAIR ;
1274
                           DUG 2 ;
1275
                           SWAP ;
1276
                           DROP ;
1277
                           SWAP ;
1278
                           DUP ;
1279
                           DUG 2 ;
1280
                           DUP ;
1281
                           CDR ;
1282
                           SWAP ;
1283
                           CAR ;
1284
                           DUP ;
1285
                           CDR ;
1286
                           SWAP ;
1287
                           CAR ;
1288
                           DUP ;
1289
                           CAR ;
1290
                           SWAP ;
1291
                           { CDR ; CDR } ;
1292
                           DIG 4 ;
1293
                           DUP ;
1294
                           DUG 5 ;
1295
                           CDR ;
1296
                           DIG 6 ;
1297
                           DUP ;
1298
                           DUG 7 ;
1299
                           { CAR ; CAR ; CDR ; CAR } ;
1300
                           ADD ;
1301
                           PAIR ;
1302
                           SWAP ;
1303
                           PAIR ;
1304
                           PAIR ;
1305
                           PAIR ;
1306
                           DUG 2 ;
1307
                           SWAP ;
1308
                           DROP ;
1309
                           SWAP ;
1310
                           DUP ;
1311
                           DUG 2 ;
1312
                           DUP ;
1313
                           CAR ;
1314
                           SWAP ;
1315
                           CDR ;
1316
                           DUP ;
1317
                           CDR ;
1318
                           SWAP ;
1319
                           CAR ;
1320
                           DUP ;
1321
                           CAR ;
1322
                           SWAP ;
1323
                           { CDR ; CAR } ;
1324
                           DIG 4 ;
1325
                           DUP ;
1326
                           DUG 5 ;
1327
                           CDR ;
1328
                           DIG 6 ;
1329
                           DUP ;
1330
                           DUG 7 ;
1331
                           { CDR ; CAR ; CDR ; CDR } ;
1332
                           ADD ;
1333
                           SWAP ;
1334
                           PAIR ;
1335
                           SWAP ;
1336
                           PAIR ;
1337
                           PAIR ;
1338
                           SWAP ;
1339
                           PAIR ;
1340
                           DUG 2 ;
1341
                           DROP 2 } }
1342
                     { IF_LEFT
1343
                         { SWAP ;
1344
                           DUP ;
1345
                           DUG 2 ;
1346
                           { CAR ; CAR ; CAR ; CAR } ;
1347
                           SENDER ;
1348
                           COMPARE ;
1349
                           EQ ;
1350
                           IF
1351
                             {}
1352
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
1353
                               FAILWITH } ;
1354
                           SWAP ;
1355
                           DUP ;
1356
                           DUG 2 ;
1357
                           DUP ;
1358
                           CAR ;
1359
                           SWAP ;
1360
                           CDR ;
1361
                           DUP ;
1362
                           CDR ;
1363
                           SWAP ;
1364
                           CAR ;
1365
                           DUP ;
1366
                           CAR ;
1367
                           SWAP ;
1368
                           { CDR ; CDR } ;
1369
                           PUSH bool False ;
1370
                           PAIR ;
1371
                           SWAP ;
1372
                           PAIR ;
1373
                           PAIR ;
1374
                           SWAP ;
1375
                           PAIR ;
1376
                           DUG 2 ;
1377
                           DROP 2 }
1378
                         { SWAP ;
1379
                           DUP ;
1380
                           DUG 2 ;
1381
                           { CAR ; CAR ; CAR ; CAR } ;
1382
                           SENDER ;
1383
                           COMPARE ;
1384
                           EQ ;
1385
                           IF
1386
                             {}
1387
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
1388
                               FAILWITH } ;
1389
                           SWAP ;
1390
                           DUP ;
1391
                           DUG 2 ;
1392
                           DUP ;
1393
                           CAR ;
1394
                           SWAP ;
1395
                           CDR ;
1396
                           DUP ;
1397
                           CAR ;
1398
                           SWAP ;
1399
                           CDR ;
1400
                           DUP ;
1401
                           CAR ;
1402
                           SWAP ;
1403
                           { CDR ; CAR } ;
1404
                           PUSH bool False ;
1405
                           SWAP ;
1406
                           PAIR ;
1407
                           SWAP ;
1408
                           PAIR ;
1409
                           SWAP ;
1410
                           PAIR ;
1411
                           SWAP ;
1412
                           PAIR ;
1413
                           DUG 2 ;
1414
                           DROP 2 } } ;
1415
                   NIL operation } }
1416
             { IF_LEFT
1417
                 { IF_LEFT
1418
                     { SWAP ;
1419
                       DUP ;
1420
                       DUG 2 ;
1421
                       { CAR ; CAR ; CAR ; CAR } ;
1422
                       SENDER ;
1423
                       COMPARE ;
1424
                       EQ ;
1425
                       IF
1426
                         {}
1427
                         { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
1428
                           FAILWITH } ;
1429
                       SWAP ;
1430
                       DUP ;
1431
                       DUG 2 ;
1432
                       DUP ;
1433
                       CAR ;
1434
                       SWAP ;
1435
                       CDR ;
1436
                       DUP ;
1437
                       CDR ;
1438
                       SWAP ;
1439
                       CAR ;
1440
                       DUP ;
1441
                       CAR ;
1442
                       SWAP ;
1443
                       { CDR ; CDR } ;
1444
                       PUSH bool True ;
1445
                       PAIR ;
1446
                       SWAP ;
1447
                       PAIR ;
1448
                       PAIR ;
1449
                       SWAP ;
1450
                       PAIR ;
1451
                       DUG 2 ;
1452
                       DROP 2 }
1453
                     { IF_LEFT
1454
                         { SWAP ;
1455
                           DUP ;
1456
                           DUG 2 ;
1457
                           { CAR ; CAR ; CAR ; CAR } ;
1458
                           SENDER ;
1459
                           COMPARE ;
1460
                           EQ ;
1461
                           IF
1462
                             {}
1463
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
1464
                               FAILWITH } ;
1465
                           SWAP ;
1466
                           DUP ;
1467
                           DUG 2 ;
1468
                           DUP ;
1469
                           CAR ;
1470
                           SWAP ;
1471
                           CDR ;
1472
                           DUP ;
1473
                           CAR ;
1474
                           SWAP ;
1475
                           CDR ;
1476
                           DUP ;
1477
                           CAR ;
1478
                           SWAP ;
1479
                           { CDR ; CAR } ;
1480
                           PUSH bool True ;
1481
                           SWAP ;
1482
                           PAIR ;
1483
                           SWAP ;
1484
                           PAIR ;
1485
                           SWAP ;
1486
                           PAIR ;
1487
                           SWAP ;
1488
                           PAIR ;
1489
                           DUG 2 ;
1490
                           DROP 2 }
1491
                         { SWAP ;
1492
                           DUP ;
1493
                           DUG 2 ;
1494
                           { CDR ; CAR ; CDR ; CAR } ;
1495
                           IF
1496
                             {}
1497
                             { PUSH string "WrongCondition: self.data.saleStatus" ;
1498
                               FAILWITH } ;
1499
                           SWAP ;
1500
                           DUP ;
1501
                           DUG 2 ;
1502
                           { CAR ; CAR ; CAR ; CDR } ;
1503
                           SENDER ;
1504
                           MEM ;
1505
                           IF
1506
                             { SWAP ;
1507
                               DUP ;
1508
                               DUG 2 ;
1509
                               { CAR ; CAR ; CAR ; CDR } ;
1510
                               SENDER ;
1511
                               GET ;
1512
                               { IF_NONE { PUSH string "Get-item:-1" ; FAILWITH } {} } ;
1513
                               CDR ;
1514
                               IF
1515
                                 { PUSH string "WrongCondition: ~ self.data.balances[sp.sender].lock" ;
1516
                                   FAILWITH }
1517
                                 {} }
1518
                             {} ;
1519
                           SWAP ;
1520
                           DUP ;
1521
                           DUG 2 ;
1522
                           { CDR ; CAR ; CAR ; CAR } ;
1523
                           DIG 2 ;
1524
                           DUP ;
1525
                           DUG 3 ;
1526
                           { CAR ; CDR ; CDR ; CDR } ;
1527
                           PUSH mutez 1 ;
1528
                           AMOUNT ;
1529
                           EDIV ;
1530
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
1531
                           CAR ;
1532
                           INT ;
1533
                           MUL ;
1534
                           DIG 3 ;
1535
                           DUP ;
1536
                           DUG 4 ;
1537
                           { CDR ; CAR ; CDR ; CDR } ;
1538
                           ADD ;
1539
                           COMPARE ;
1540
                           LE ;
1541
                           IF
1542
                             {}
1543
                             { PUSH string "WrongCondition: (self.data.soldToken + ((sp.to_int(sp.fst(sp.ediv(sp.amount, sp.mutez(1)).open_some()))) * self.data.ratio)) <= self.data.saleLimit" ;
1544
                               FAILWITH } ;
1545
                           SWAP ;
1546
                           DUP ;
1547
                           DUG 2 ;
1548
                           { CAR ; CAR ; CAR ; CDR } ;
1549
                           SENDER ;
1550
                           MEM ;
1551
                           IF
1552
                             {}
1553
                             { SWAP ;
1554
                               DUP ;
1555
                               DUG 2 ;
1556
                               DUP ;
1557
                               CDR ;
1558
                               SWAP ;
1559
                               CAR ;
1560
                               DUP ;
1561
                               CDR ;
1562
                               SWAP ;
1563
                               CAR ;
1564
                               DUP ;
1565
                               CDR ;
1566
                               SWAP ;
1567
                               CAR ;
1568
                               DUP ;
1569
                               CAR ;
1570
                               SWAP ;
1571
                               CDR ;
1572
                               PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
1573
                               SENDER ;
1574
                               UPDATE ;
1575
                               SWAP ;
1576
                               PAIR ;
1577
                               PAIR ;
1578
                               PAIR ;
1579
                               PAIR ;
1580
                               DUG 2 ;
1581
                               SWAP ;
1582
                               DROP } ;
1583
                           SWAP ;
1584
                           DUP ;
1585
                           DUG 2 ;
1586
                           DUP ;
1587
                           CDR ;
1588
                           SWAP ;
1589
                           CAR ;
1590
                           DUP ;
1591
                           CDR ;
1592
                           SWAP ;
1593
                           CAR ;
1594
                           DUP ;
1595
                           CDR ;
1596
                           SWAP ;
1597
                           CAR ;
1598
                           DUP ;
1599
                           CAR ;
1600
                           SWAP ;
1601
                           CDR ;
1602
                           DUP ;
1603
                           SENDER ;
1604
                           DUP ;
1605
                           DUG 2 ;
1606
                           GET ;
1607
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
1608
                           CDR ;
1609
                           DIG 8 ;
1610
                           DUP ;
1611
                           DUG 9 ;
1612
                           { CAR ; CDR ; CDR ; CDR } ;
1613
                           PUSH mutez 1 ;
1614
                           AMOUNT ;
1615
                           EDIV ;
1616
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
1617
                           CAR ;
1618
                           INT ;
1619
                           MUL ;
1620
                           DIG 9 ;
1621
                           DUP ;
1622
                           DUG 10 ;
1623
                           { CAR ; CAR ; CAR ; CDR } ;
1624
                           SENDER ;
1625
                           GET ;
1626
                           { IF_NONE { PUSH string "Get-item:-1" ; FAILWITH } {} } ;
1627
                           CAR ;
1628
                           ADD ;
1629
                           PAIR ;
1630
                           SOME ;
1631
                           SWAP ;
1632
                           UPDATE ;
1633
                           SWAP ;
1634
                           PAIR ;
1635
                           PAIR ;
1636
                           PAIR ;
1637
                           PAIR ;
1638
                           DUG 2 ;
1639
                           SWAP ;
1640
                           DROP ;
1641
                           SWAP ;
1642
                           DUP ;
1643
                           DUG 2 ;
1644
                           DUP ;
1645
                           CDR ;
1646
                           SWAP ;
1647
                           CAR ;
1648
                           DUP ;
1649
                           CDR ;
1650
                           SWAP ;
1651
                           CAR ;
1652
                           DUP ;
1653
                           CAR ;
1654
                           SWAP ;
1655
                           { CDR ; CDR } ;
1656
                           DIG 5 ;
1657
                           DUP ;
1658
                           DUG 6 ;
1659
                           { CAR ; CDR ; CDR ; CDR } ;
1660
                           PUSH mutez 1 ;
1661
                           AMOUNT ;
1662
                           EDIV ;
1663
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
1664
                           CAR ;
1665
                           INT ;
1666
                           MUL ;
1667
                           DIG 6 ;
1668
                           DUP ;
1669
                           DUG 7 ;
1670
                           { CAR ; CAR ; CDR ; CAR } ;
1671
                           ADD ;
1672
                           PAIR ;
1673
                           SWAP ;
1674
                           PAIR ;
1675
                           PAIR ;
1676
                           PAIR ;
1677
                           DUG 2 ;
1678
                           SWAP ;
1679
                           DROP ;
1680
                           SWAP ;
1681
                           DUP ;
1682
                           DUG 2 ;
1683
                           DUP ;
1684
                           CAR ;
1685
                           SWAP ;
1686
                           CDR ;
1687
                           DUP ;
1688
                           CDR ;
1689
                           SWAP ;
1690
                           CAR ;
1691
                           DUP ;
1692
                           CAR ;
1693
                           SWAP ;
1694
                           { CDR ; CAR } ;
1695
                           DIG 5 ;
1696
                           DUP ;
1697
                           DUG 6 ;
1698
                           { CAR ; CDR ; CDR ; CDR } ;
1699
                           PUSH mutez 1 ;
1700
                           AMOUNT ;
1701
                           EDIV ;
1702
                           { IF_NONE { PUSH unit Unit ; FAILWITH } {} } ;
1703
                           CAR ;
1704
                           INT ;
1705
                           MUL ;
1706
                           DIG 6 ;
1707
                           DUP ;
1708
                           DUG 7 ;
1709
                           { CDR ; CAR ; CDR ; CDR } ;
1710
                           ADD ;
1711
                           SWAP ;
1712
                           PAIR ;
1713
                           SWAP ;
1714
                           PAIR ;
1715
                           PAIR ;
1716
                           SWAP ;
1717
                           PAIR ;
1718
                           DUG 2 ;
1719
                           DROP 2 } } }
1720
                 { IF_LEFT
1721
                     { IF_LEFT
1722
                         { SWAP ;
1723
                           DUP ;
1724
                           DUG 2 ;
1725
                           { CAR ; CDR ; CDR ; CAR } ;
1726
                           SENDER ;
1727
                           COMPARE ;
1728
                           EQ ;
1729
                           IF
1730
                             {}
1731
                             { PUSH string "WrongCondition: sp.sender == self.data.owner" ;
1732
                               FAILWITH } ;
1733
                           SWAP ;
1734
                           DUP ;
1735
                           DUG 2 ;
1736
                           { CAR ; CAR ; CAR ; CDR } ;
1737
                           SWAP ;
1738
                           DUP ;
1739
                           DUG 2 ;
1740
                           MEM ;
1741
                           IF
1742
                             {}
1743
                             { SWAP ;
1744
                               DUP ;
1745
                               DUG 2 ;
1746
                               DUP ;
1747
                               CDR ;
1748
                               SWAP ;
1749
                               CAR ;
1750
                               DUP ;
1751
                               CDR ;
1752
                               SWAP ;
1753
                               CAR ;
1754
                               DUP ;
1755
                               CDR ;
1756
                               SWAP ;
1757
                               CAR ;
1758
                               DUP ;
1759
                               CAR ;
1760
                               SWAP ;
1761
                               CDR ;
1762
                               PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
1763
                               DIG 6 ;
1764
                               DUP ;
1765
                               DUG 7 ;
1766
                               UPDATE ;
1767
                               SWAP ;
1768
                               PAIR ;
1769
                               PAIR ;
1770
                               PAIR ;
1771
                               PAIR ;
1772
                               DUG 2 ;
1773
                               SWAP ;
1774
                               DROP } ;
1775
                           SWAP ;
1776
                           DUP ;
1777
                           DUG 2 ;
1778
                           DUP ;
1779
                           CDR ;
1780
                           SWAP ;
1781
                           CAR ;
1782
                           DUP ;
1783
                           CDR ;
1784
                           SWAP ;
1785
                           CAR ;
1786
                           DUP ;
1787
                           CDR ;
1788
                           SWAP ;
1789
                           { CAR ; CDR } ;
1790
                           DIG 4 ;
1791
                           DUP ;
1792
                           DUG 5 ;
1793
                           PAIR ;
1794
                           PAIR ;
1795
                           PAIR ;
1796
                           PAIR ;
1797
                           DUG 2 ;
1798
                           DROP 2 }
1799
                         { SWAP ;
1800
                           DUP ;
1801
                           DUG 2 ;
1802
                           { CAR ; CAR ; CAR ; CAR } ;
1803
                           SENDER ;
1804
                           COMPARE ;
1805
                           EQ ;
1806
                           IF
1807
                             {}
1808
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
1809
                               FAILWITH } ;
1810
                           SWAP ;
1811
                           DUP ;
1812
                           DUG 2 ;
1813
                           { CAR ; CAR ; CAR ; CDR } ;
1814
                           SWAP ;
1815
                           DUP ;
1816
                           DUG 2 ;
1817
                           MEM ;
1818
                           IF
1819
                             {}
1820
                             { SWAP ;
1821
                               DUP ;
1822
                               DUG 2 ;
1823
                               DUP ;
1824
                               CDR ;
1825
                               SWAP ;
1826
                               CAR ;
1827
                               DUP ;
1828
                               CDR ;
1829
                               SWAP ;
1830
                               CAR ;
1831
                               DUP ;
1832
                               CDR ;
1833
                               SWAP ;
1834
                               CAR ;
1835
                               DUP ;
1836
                               CAR ;
1837
                               SWAP ;
1838
                               CDR ;
1839
                               PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
1840
                               DIG 6 ;
1841
                               DUP ;
1842
                               DUG 7 ;
1843
                               UPDATE ;
1844
                               SWAP ;
1845
                               PAIR ;
1846
                               PAIR ;
1847
                               PAIR ;
1848
                               PAIR ;
1849
                               DUG 2 ;
1850
                               SWAP ;
1851
                               DROP } ;
1852
                           SWAP ;
1853
                           DUP ;
1854
                           DUG 2 ;
1855
                           DUP ;
1856
                           CAR ;
1857
                           SWAP ;
1858
                           CDR ;
1859
                           DUP ;
1860
                           CDR ;
1861
                           SWAP ;
1862
                           CAR ;
1863
                           DUP ;
1864
                           CDR ;
1865
                           SWAP ;
1866
                           { CAR ; CAR } ;
1867
                           DIG 4 ;
1868
                           DUP ;
1869
                           DUG 5 ;
1870
                           SWAP ;
1871
                           PAIR ;
1872
                           PAIR ;
1873
                           PAIR ;
1874
                           SWAP ;
1875
                           PAIR ;
1876
                           DUG 2 ;
1877
                           DROP 2 } }
1878
                     { IF_LEFT
1879
                         { SWAP ;
1880
                           DUP ;
1881
                           DUG 2 ;
1882
                           { CAR ; CAR ; CAR ; CAR } ;
1883
                           SENDER ;
1884
                           COMPARE ;
1885
                           EQ ;
1886
                           IF
1887
                             { PUSH bool True }
1888
                             { SWAP ;
1889
                               DUP ;
1890
                               DUG 2 ;
1891
                               { CDR ; CDR ; CDR ; CDR } ;
1892
                               IF
1893
                                 { DUP ; { CDR ; CAR } ; SENDER ; COMPARE ; EQ }
1894
                                 { PUSH bool False } } ;
1895
                           IF
1896
                             {}
1897
                             { PUSH string "WrongCondition: (sp.sender == self.data.administrator) | (self.data.transferStatus & (params.fromAddr == sp.sender))" ;
1898
                               FAILWITH } ;
1899
                           SWAP ;
1900
                           DUP ;
1901
                           DUG 2 ;
1902
                           { CAR ; CAR ; CAR ; CDR } ;
1903
                           SWAP ;
1904
                           DUP ;
1905
                           DUG 2 ;
1906
                           { CDR ; CAR } ;
1907
                           MEM ;
1908
                           IF
1909
                             { SWAP ;
1910
                               DUP ;
1911
                               DUG 2 ;
1912
                               { CAR ; CAR ; CAR ; CDR } ;
1913
                               SWAP ;
1914
                               DUP ;
1915
                               DUG 2 ;
1916
                               { CDR ; CAR } ;
1917
                               GET ;
1918
                               { IF_NONE { PUSH string "Get-item:10" ; FAILWITH } {} } ;
1919
                               CDR ;
1920
                               NOT }
1921
                             { PUSH bool False } ;
1922
                           IF
1923
                             { DUP ;
1924
                               CAR ;
1925
                               DIG 2 ;
1926
                               DUP ;
1927
                               DUG 3 ;
1928
                               { CAR ; CAR ; CAR ; CDR } ;
1929
                               DIG 2 ;
1930
                               DUP ;
1931
                               DUG 3 ;
1932
                               { CDR ; CAR } ;
1933
                               GET ;
1934
                               { IF_NONE { PUSH string "Get-item:10" ; FAILWITH } {} } ;
1935
                               CAR ;
1936
                               COMPARE ;
1937
                               GE }
1938
                             { PUSH bool False } ;
1939
                           IF
1940
                             {}
1941
                             { PUSH string "WrongCondition: ((self.data.balances.contains(params.fromAddr)) & (~ self.data.balances[params.fromAddr].lock)) & (self.data.balances[params.fromAddr].balance >= params.amount)" ;
1942
                               FAILWITH } ;
1943
                           DUP ;
1944
                           CAR ;
1945
                           PUSH int 0 ;
1946
                           COMPARE ;
1947
                           LT ;
1948
                           IF
1949
                             {}
1950
                             { PUSH string "WrongCondition: params.amount > 0" ;
1951
                               FAILWITH } ;
1952
                           SWAP ;
1953
                           DUP ;
1954
                           DUG 2 ;
1955
                           { CAR ; CAR ; CAR ; CDR } ;
1956
                           SWAP ;
1957
                           DUP ;
1958
                           DUG 2 ;
1959
                           { CDR ; CDR } ;
1960
                           MEM ;
1961
                           IF
1962
                             {}
1963
                             { SWAP ;
1964
                               DUP ;
1965
                               DUG 2 ;
1966
                               DUP ;
1967
                               CDR ;
1968
                               SWAP ;
1969
                               CAR ;
1970
                               DUP ;
1971
                               CDR ;
1972
                               SWAP ;
1973
                               CAR ;
1974
                               DUP ;
1975
                               CDR ;
1976
                               SWAP ;
1977
                               CAR ;
1978
                               DUP ;
1979
                               CAR ;
1980
                               SWAP ;
1981
                               CDR ;
1982
                               PUSH (option (pair (int %balance) (bool %lock))) (Some (Pair 0 False)) ;
1983
                               DIG 6 ;
1984
                               DUP ;
1985
                               DUG 7 ;
1986
                               { CDR ; CDR } ;
1987
                               UPDATE ;
1988
                               SWAP ;
1989
                               PAIR ;
1990
                               PAIR ;
1991
                               PAIR ;
1992
                               PAIR ;
1993
                               DUG 2 ;
1994
                               SWAP ;
1995
                               DROP } ;
1996
                           SWAP ;
1997
                           DUP ;
1998
                           DUG 2 ;
1999
                           DUP ;
2000
                           CDR ;
2001
                           SWAP ;
2002
                           CAR ;
2003
                           DUP ;
2004
                           CDR ;
2005
                           SWAP ;
2006
                           CAR ;
2007
                           DUP ;
2008
                           CDR ;
2009
                           SWAP ;
2010
                           CAR ;
2011
                           DUP ;
2012
                           CAR ;
2013
                           SWAP ;
2014
                           CDR ;
2015
                           DUP ;
2016
                           DIG 6 ;
2017
                           DUP ;
2018
                           DUG 7 ;
2019
                           { CDR ; CAR } ;
2020
                           DUP ;
2021
                           DUG 2 ;
2022
                           GET ;
2023
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
2024
                           CDR ;
2025
                           DIG 7 ;
2026
                           DUP ;
2027
                           DUG 8 ;
2028
                           CAR ;
2029
                           DIG 9 ;
2030
                           DUP ;
2031
                           DUG 10 ;
2032
                           { CAR ; CAR ; CAR ; CDR } ;
2033
                           DIG 9 ;
2034
                           DUP ;
2035
                           DUG 10 ;
2036
                           { CDR ; CAR } ;
2037
                           GET ;
2038
                           { IF_NONE { PUSH string "Get-item:10" ; FAILWITH } {} } ;
2039
                           CAR ;
2040
                           SUB ;
2041
                           PAIR ;
2042
                           SOME ;
2043
                           SWAP ;
2044
                           UPDATE ;
2045
                           SWAP ;
2046
                           PAIR ;
2047
                           PAIR ;
2048
                           PAIR ;
2049
                           PAIR ;
2050
                           DUG 2 ;
2051
                           SWAP ;
2052
                           DROP ;
2053
                           SWAP ;
2054
                           DUP ;
2055
                           DUG 2 ;
2056
                           DUP ;
2057
                           CDR ;
2058
                           SWAP ;
2059
                           CAR ;
2060
                           DUP ;
2061
                           CDR ;
2062
                           SWAP ;
2063
                           CAR ;
2064
                           DUP ;
2065
                           CDR ;
2066
                           SWAP ;
2067
                           CAR ;
2068
                           DUP ;
2069
                           CAR ;
2070
                           SWAP ;
2071
                           CDR ;
2072
                           DUP ;
2073
                           DIG 6 ;
2074
                           DUP ;
2075
                           DUG 7 ;
2076
                           { CDR ; CDR } ;
2077
                           DUP ;
2078
                           DUG 2 ;
2079
                           GET ;
2080
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
2081
                           CDR ;
2082
                           DIG 7 ;
2083
                           DUP ;
2084
                           DUG 8 ;
2085
                           CAR ;
2086
                           DIG 9 ;
2087
                           DUP ;
2088
                           DUG 10 ;
2089
                           { CAR ; CAR ; CAR ; CDR } ;
2090
                           DIG 9 ;
2091
                           DUP ;
2092
                           DUG 10 ;
2093
                           { CDR ; CDR } ;
2094
                           GET ;
2095
                           { IF_NONE { PUSH string "Get-item:13" ; FAILWITH } {} } ;
2096
                           CAR ;
2097
                           ADD ;
2098
                           PAIR ;
2099
                           SOME ;
2100
                           SWAP ;
2101
                           UPDATE ;
2102
                           SWAP ;
2103
                           PAIR ;
2104
                           PAIR ;
2105
                           PAIR ;
2106
                           PAIR ;
2107
                           DUG 2 ;
2108
                           DROP 2 }
2109
                         { SWAP ;
2110
                           DUP ;
2111
                           DUG 2 ;
2112
                           { CAR ; CAR ; CAR ; CAR } ;
2113
                           SENDER ;
2114
                           COMPARE ;
2115
                           EQ ;
2116
                           IF
2117
                             {}
2118
                             { PUSH string "WrongCondition: sp.sender == self.data.administrator" ;
2119
                               FAILWITH } ;
2120
                           SWAP ;
2121
                           DUP ;
2122
                           DUG 2 ;
2123
                           { CAR ; CAR ; CAR ; CDR } ;
2124
                           SWAP ;
2125
                           DUP ;
2126
                           DUG 2 ;
2127
                           MEM ;
2128
                           IF
2129
                             {}
2130
                             { PUSH string "WrongCondition: self.data.balances.contains(params.address)" ;
2131
                               FAILWITH } ;
2132
                           SWAP ;
2133
                           DUP ;
2134
                           DUG 2 ;
2135
                           DUP ;
2136
                           CDR ;
2137
                           SWAP ;
2138
                           CAR ;
2139
                           DUP ;
2140
                           CDR ;
2141
                           SWAP ;
2142
                           CAR ;
2143
                           DUP ;
2144
                           CDR ;
2145
                           SWAP ;
2146
                           CAR ;
2147
                           DUP ;
2148
                           CAR ;
2149
                           SWAP ;
2150
                           CDR ;
2151
                           DUP ;
2152
                           DIG 6 ;
2153
                           DUP ;
2154
                           DUG 7 ;
2155
                           DUP ;
2156
                           DUG 2 ;
2157
                           GET ;
2158
                           { IF_NONE { PUSH string "set_in_top-any" ; FAILWITH } {} } ;
2159
                           CAR ;
2160
                           PUSH bool False ;
2161
                           SWAP ;
2162
                           PAIR ;
2163
                           SOME ;
2164
                           SWAP ;
2165
                           UPDATE ;
2166
                           SWAP ;
2167
                           PAIR ;
2168
                           PAIR ;
2169
                           PAIR ;
2170
                           PAIR ;
2171
                           DUG 2 ;
2172
                           DROP 2 } } } ;
2173
               NIL operation } } ;
2174
       PAIR }