BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • Juster Pool: Test
Delegatable
operations (34)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
877
1756
 
1
{ parameter (or
2
              (or
3
                (or
4
                  (or
5
                    (or (unit %acceptOwnership)
6
                        (pair %addLine
7
                          (pair
8
                            (pair (pair (nat %advanceTime) (nat %betsPeriod))
9
                                  (pair (string %currencyPair) (bool %isPaused)))
10
                            (pair
11
                              (pair (address %juster) (timestamp %lastBetsCloseTime))
12
                              (pair (nat %liquidityPercent) (nat %maxEvents))))
13
                          (pair
14
                            (pair (pair (nat %measurePeriod) (nat %minBettingPeriod))
15
                                  (pair (nat %rateAboveEq) (nat %rateBelow)))
16
                            (nat %targetDynamics))))
17
                    (or (nat %approveEntry) (nat %cancelEntry)))
18
                  (or
19
                    (or (pair %claimLiquidity (address %provider) (nat %shares))
20
                        (nat %createEvent))
21
                    (or (unit %default) (unit %depositLiquidity))))
22
                (or
23
                  (or (or (unit %disband) (nat %payReward))
24
                      (or (address %proposeManager) (option %setDelegate key_hash)))
25
                  (or (or (nat %setEntryLockPeriod) (unit %triggerPauseDeposit))
26
                      (or (nat %triggerPauseLine) (address %updateDurationPoints)))))
27
              (list %withdrawClaims (pair (nat %eventId) (address %provider)))) ;
28
  storage (pair
29
            (pair
30
              (pair
31
                (pair (pair (map %activeEvents nat nat) (nat %activeLiquidityF))
32
                      (pair
33
                        (big_map %claims (pair (nat %eventId) (address %provider)) nat)
34
                        (big_map %durationPoints address
35
                                                 (pair (nat %amount) (nat %updateLevel)))))
36
                (pair
37
                  (pair
38
                    (big_map %entries nat
39
                                      (pair
40
                                        (pair (timestamp %acceptAfter) (nat %amount))
41
                                        (address %provider)))
42
                    (nat %entryLiquidityF))
43
                  (pair (nat %entryLockPeriod)
44
                        (big_map %events nat
45
                                         (pair (pair (nat %claimed) (nat %provided))
46
                                               (option %result nat))))))
47
              (pair
48
                (pair (pair (bool %isDepositPaused) (bool %isDisbandAllow))
49
                      (pair
50
                        (big_map %lines nat
51
                                        (pair
52
                                          (pair
53
                                            (pair
54
                                              (pair (nat %advanceTime) (nat %betsPeriod))
55
                                              (pair (string %currencyPair)
56
                                                    (bool %isPaused)))
57
                                            (pair
58
                                              (pair (address %juster)
59
                                                    (timestamp %lastBetsCloseTime))
60
                                              (pair (nat %liquidityPercent)
61
                                                    (nat %maxEvents))))
62
                                          (pair
63
                                            (pair
64
                                              (pair (nat %measurePeriod)
65
                                                    (nat %minBettingPeriod))
66
                                              (pair (nat %rateAboveEq) (nat %rateBelow)))
67
                                            (nat %targetDynamics))))
68
                        (address %manager)))
69
                (pair (pair (nat %maxEvents) (big_map %metadata string bytes))
70
                      (pair (nat %nextEntryId) (nat %nextLineId)))))
71
            (pair
72
              (pair (pair (nat %precision) (address %proposedManager))
73
                    (pair (big_map %shares address nat) (nat %totalDurationPoints)))
74
              (pair (nat %totalShares) (nat %withdrawableLiquidityF)))) ;
75
  code { NIL operation ;
76
         LAMBDA
77
           unit
78
           unit
79
           { DROP ;
80
             PUSH mutez 0 ;
81
             AMOUNT ;
82
             COMPARE ;
83
             GT ;
84
             IF
85
               { PUSH string "Including tez using this entrypoint call is not allowed" ;
86
                 FAILWITH }
87
               { UNIT } } ;
88
         LAMBDA
89
           (pair address string)
90
           unit
91
           { UNPAIR ; SENDER ; COMPARE ; NEQ ; IF { FAILWITH } { DROP ; UNIT } } ;
92
         LAMBDA
93
           (pair (lambda (pair address string) unit) address)
94
           unit
95
           { UNPAIR ; SWAP ; PUSH string "Not a contract manager" ; SWAP ; PAIR ; EXEC } ;
96
         DUP 2 ;
97
         APPLY ;
98
         LAMBDA
99
           (pair address mutez)
100
           operation
101
           { UNPAIR ;
102
             CONTRACT unit ;
103
             IF_NONE { PUSH string "Not a contract" ; FAILWITH } {} ;
104
             SWAP ;
105
             UNIT ;
106
             TRANSFER_TOKENS } ;
107
         PUSH string "Max active events limit reached" ;
108
         PUSH string "Wrong state: negative entry liquidity" ;
109
         PUSH string "Wrong state: claimed exceed provided" ;
110
         LAMBDA
111
           (pair
112
             (pair
113
               (pair
114
                 (pair (pair (map nat nat) nat)
115
                       (pair (big_map (pair nat address) nat)
116
                             (big_map address (pair nat nat))))
117
                 (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat)
118
                       (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
119
               (pair
120
                 (pair (pair bool bool)
121
                       (pair
122
                         (big_map nat
123
                                  (pair
124
                                    (pair (pair (pair nat nat) (pair string bool))
125
                                          (pair (pair address timestamp) (pair nat nat)))
126
                                    (pair (pair (pair nat nat) (pair nat nat)) nat)))
127
                         address))
128
                 (pair (pair nat (big_map string bytes)) (pair nat nat))))
129
             (pair (pair (pair nat address) (pair (big_map address nat) nat))
130
                   (pair nat nat)))
131
           int
132
           { DUP ;
133
             CAR ;
134
             CAR ;
135
             CDR ;
136
             CAR ;
137
             CDR ;
138
             DUP 2 ;
139
             CDR ;
140
             CDR ;
141
             CDR ;
142
             DIG 2 ;
143
             CDR ;
144
             CAR ;
145
             CAR ;
146
             CAR ;
147
             PUSH mutez 1 ;
148
             BALANCE ;
149
             EDIV ;
150
             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
151
             CAR ;
152
             MUL ;
153
             SUB ;
154
             SUB } ;
155
         LAMBDA
156
           (pair
157
             (lambda
158
               (pair
159
                 (pair
160
                   (pair
161
                     (pair (pair (map nat nat) nat)
162
                           (pair (big_map (pair nat address) nat)
163
                                 (big_map address (pair nat nat))))
164
                     (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat)
165
                           (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
166
                   (pair
167
                     (pair (pair bool bool)
168
                           (pair
169
                             (big_map nat
170
                                      (pair
171
                                        (pair (pair (pair nat nat) (pair string bool))
172
                                              (pair (pair address timestamp)
173
                                                    (pair nat nat)))
174
                                        (pair (pair (pair nat nat) (pair nat nat)) nat)))
175
                             address))
176
                     (pair (pair nat (big_map string bytes)) (pair nat nat))))
177
                 (pair (pair (pair nat address) (pair (big_map address nat) nat))
178
                       (pair nat nat)))
179
               int)
180
             (pair
181
               (pair
182
                 (pair
183
                   (pair (pair (map nat nat) nat)
184
                         (pair (big_map (pair nat address) nat)
185
                               (big_map address (pair nat nat))))
186
                   (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat)
187
                         (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
188
                 (pair
189
                   (pair (pair bool bool)
190
                         (pair
191
                           (big_map nat
192
                                    (pair
193
                                      (pair (pair (pair nat nat) (pair string bool))
194
                                            (pair (pair address timestamp)
195
                                                  (pair nat nat)))
196
                                      (pair (pair (pair nat nat) (pair nat nat)) nat)))
197
                           address))
198
                   (pair (pair nat (big_map string bytes)) (pair nat nat))))
199
               (pair (pair (pair nat address) (pair (big_map address nat) nat))
200
                     (pair nat nat))))
201
           int
202
           { UNPAIR ; SWAP ; DUP ; CAR ; CAR ; CAR ; CAR ; CDR ; SWAP ; DIG 2 ; SWAP ; EXEC ; ADD } ;
203
         DUP 2 ;
204
         APPLY ;
205
         LAMBDA
206
           (pair nat
207
                 (pair
208
                   (pair
209
                     (pair
210
                       (pair (pair (map nat nat) nat)
211
                             (pair (big_map (pair nat address) nat)
212
                                   (big_map address (pair nat nat))))
213
                       (pair
214
                         (pair (big_map nat (pair (pair timestamp nat) address)) nat)
215
                         (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
216
                     (pair
217
                       (pair (pair bool bool)
218
                             (pair
219
                               (big_map nat
220
                                        (pair
221
                                          (pair (pair (pair nat nat) (pair string bool))
222
                                                (pair (pair address timestamp)
223
                                                      (pair nat nat)))
224
                                          (pair (pair (pair nat nat) (pair nat nat)) nat)))
225
                               address))
226
                       (pair (pair nat (big_map string bytes)) (pair nat nat))))
227
                   (pair (pair (pair nat address) (pair (big_map address nat) nat))
228
                         (pair nat nat))))
229
           (pair (pair timestamp nat) address)
230
           { UNPAIR ;
231
             SWAP ;
232
             CAR ;
233
             CAR ;
234
             CDR ;
235
             CAR ;
236
             CAR ;
237
             SWAP ;
238
             GET ;
239
             IF_NONE { PUSH string "Entry is not found" ; FAILWITH } {} } ;
240
         LAMBDA
241
           (pair nat
242
                 (pair
243
                   (pair
244
                     (pair
245
                       (pair (pair (map nat nat) nat)
246
                             (pair (big_map (pair nat address) nat)
247
                                   (big_map address (pair nat nat))))
248
                       (pair
249
                         (pair (big_map nat (pair (pair timestamp nat) address)) nat)
250
                         (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
251
                     (pair
252
                       (pair (pair bool bool)
253
                             (pair
254
                               (big_map nat
255
                                        (pair
256
                                          (pair (pair (pair nat nat) (pair string bool))
257
                                                (pair (pair address timestamp)
258
                                                      (pair nat nat)))
259
                                          (pair (pair (pair nat nat) (pair nat nat)) nat)))
260
                               address))
261
                       (pair (pair nat (big_map string bytes)) (pair nat nat))))
262
                   (pair (pair (pair nat address) (pair (big_map address nat) nat))
263
                         (pair nat nat))))
264
           (pair (pair nat nat) (option nat))
265
           { UNPAIR ;
266
             SWAP ;
267
             CAR ;
268
             CAR ;
269
             CDR ;
270
             CDR ;
271
             CDR ;
272
             SWAP ;
273
             GET ;
274
             IF_NONE { PUSH string "Event is not found" ; FAILWITH } {} } ;
275
         LAMBDA
276
           (pair nat
277
                 (pair
278
                   (pair
279
                     (pair
280
                       (pair (pair (map nat nat) nat)
281
                             (pair (big_map (pair nat address) nat)
282
                                   (big_map address (pair nat nat))))
283
                       (pair
284
                         (pair (big_map nat (pair (pair timestamp nat) address)) nat)
285
                         (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
286
                     (pair
287
                       (pair (pair bool bool)
288
                             (pair
289
                               (big_map nat
290
                                        (pair
291
                                          (pair (pair (pair nat nat) (pair string bool))
292
                                                (pair (pair address timestamp)
293
                                                      (pair nat nat)))
294
                                          (pair (pair (pair nat nat) (pair nat nat)) nat)))
295
                               address))
296
                       (pair (pair nat (big_map string bytes)) (pair nat nat))))
297
                   (pair (pair (pair nat address) (pair (big_map address nat) nat))
298
                         (pair nat nat))))
299
           (pair
300
             (pair (pair (pair nat nat) (pair string bool))
301
                   (pair (pair address timestamp) (pair nat nat)))
302
             (pair (pair (pair nat nat) (pair nat nat)) nat))
303
           { UNPAIR ;
304
             SWAP ;
305
             CAR ;
306
             CDR ;
307
             CAR ;
308
             CDR ;
309
             CAR ;
310
             SWAP ;
311
             GET ;
312
             IF_NONE { PUSH string "Line is not found" ; FAILWITH } {} } ;
313
         LAMBDA
314
           int
315
           nat
316
           { PUSH int 0 ; DUP 2 ; COMPARE ; GE ; IF { ABS } { DROP ; PUSH nat 0 } } ;
317
         LAMBDA
318
           (pair int string)
319
           nat
320
           { UNPAIR ;
321
             PUSH int 0 ;
322
             DUP 2 ;
323
             COMPARE ;
324
             GE ;
325
             IF { SWAP ; DROP ; ABS } { DROP ; FAILWITH } } ;
326
         LAMBDA
327
           (pair address
328
                 (pair
329
                   (pair
330
                     (pair
331
                       (pair (pair (map nat nat) nat)
332
                             (pair (big_map (pair nat address) nat)
333
                                   (big_map address (pair nat nat))))
334
                       (pair
335
                         (pair (big_map nat (pair (pair timestamp nat) address)) nat)
336
                         (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
337
                     (pair
338
                       (pair (pair bool bool)
339
                             (pair
340
                               (big_map nat
341
                                        (pair
342
                                          (pair (pair (pair nat nat) (pair string bool))
343
                                                (pair (pair address timestamp)
344
                                                      (pair nat nat)))
345
                                          (pair (pair (pair nat nat) (pair nat nat)) nat)))
346
                               address))
347
                       (pair (pair nat (big_map string bytes)) (pair nat nat))))
348
                   (pair (pair (pair nat address) (pair (big_map address nat) nat))
349
                         (pair nat nat))))
350
           nat
351
           { UNPAIR ; SWAP ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} } ;
352
         LAMBDA
353
           (pair
354
             (pair
355
               (lambda
356
                 (pair address
357
                       (pair
358
                         (pair
359
                           (pair
360
                             (pair (pair (map nat nat) nat)
361
                                   (pair (big_map (pair nat address) nat)
362
                                         (big_map address (pair nat nat))))
363
                             (pair
364
                               (pair (big_map nat (pair (pair timestamp nat) address))
365
                                     nat)
366
                               (pair nat
367
                                     (big_map nat (pair (pair nat nat) (option nat))))))
368
                           (pair
369
                             (pair (pair bool bool)
370
                                   (pair
371
                                     (big_map nat
372
                                              (pair
373
                                                (pair
374
                                                  (pair (pair nat nat)
375
                                                        (pair string bool))
376
                                                  (pair (pair address timestamp)
377
                                                        (pair nat nat)))
378
                                                (pair
379
                                                  (pair (pair nat nat) (pair nat nat))
380
                                                  nat)))
381
                                     address))
382
                             (pair (pair nat (big_map string bytes)) (pair nat nat))))
383
                         (pair
384
                           (pair (pair nat address) (pair (big_map address nat) nat))
385
                           (pair nat nat))))
386
                 nat)
387
               (lambda int nat))
388
             (pair address
389
                   (pair
390
                     (pair
391
                       (pair
392
                         (pair (pair (map nat nat) nat)
393
                               (pair (big_map (pair nat address) nat)
394
                                     (big_map address (pair nat nat))))
395
                         (pair
396
                           (pair (big_map nat (pair (pair timestamp nat) address)) nat)
397
                           (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
398
                       (pair
399
                         (pair (pair bool bool)
400
                               (pair
401
                                 (big_map nat
402
                                          (pair
403
                                            (pair
404
                                              (pair (pair nat nat) (pair string bool))
405
                                              (pair (pair address timestamp)
406
                                                    (pair nat nat)))
407
                                            (pair (pair (pair nat nat) (pair nat nat))
408
                                                  nat)))
409
                                 address))
410
                         (pair (pair nat (big_map string bytes)) (pair nat nat))))
411
                     (pair (pair (pair nat address) (pair (big_map address nat) nat))
412
                           (pair nat nat)))))
413
           (pair
414
             (pair
415
               (pair
416
                 (pair (pair (map nat nat) nat)
417
                       (pair (big_map (pair nat address) nat)
418
                             (big_map address (pair nat nat))))
419
                 (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat)
420
                       (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
421
               (pair
422
                 (pair (pair bool bool)
423
                       (pair
424
                         (big_map nat
425
                                  (pair
426
                                    (pair (pair (pair nat nat) (pair string bool))
427
                                          (pair (pair address timestamp) (pair nat nat)))
428
                                    (pair (pair (pair nat nat) (pair nat nat)) nat)))
429
                         address))
430
                 (pair (pair nat (big_map string bytes)) (pair nat nat))))
431
             (pair (pair (pair nat address) (pair (big_map address nat) nat))
432
                   (pair nat nat)))
433
           { UNPAIR ;
434
             UNPAIR ;
435
             DIG 2 ;
436
             UNPAIR ;
437
             LEVEL ;
438
             PUSH nat 0 ;
439
             PAIR ;
440
             DUP 3 ;
441
             CAR ;
442
             CAR ;
443
             CAR ;
444
             CDR ;
445
             CDR ;
446
             DUP 3 ;
447
             GET ;
448
             IF_NONE {} { SWAP ; DROP } ;
449
             DUP 3 ;
450
             DUP 3 ;
451
             PAIR ;
452
             DIG 4 ;
453
             SWAP ;
454
             EXEC ;
455
             DUP 2 ;
456
             CDR ;
457
             LEVEL ;
458
             SUB ;
459
             DIG 5 ;
460
             SWAP ;
461
             EXEC ;
462
             SWAP ;
463
             MUL ;
464
             LEVEL ;
465
             DUP 2 ;
466
             DIG 3 ;
467
             CAR ;
468
             ADD ;
469
             PAIR ;
470
             DUP 4 ;
471
             CDR ;
472
             DUP 5 ;
473
             CAR ;
474
             CDR ;
475
             DUP 6 ;
476
             CAR ;
477
             CAR ;
478
             CDR ;
479
             DUP 7 ;
480
             CAR ;
481
             CAR ;
482
             CAR ;
483
             CDR ;
484
             CDR ;
485
             DIG 4 ;
486
             SOME ;
487
             DIG 6 ;
488
             UPDATE ;
489
             DUP 6 ;
490
             CAR ;
491
             CAR ;
492
             CAR ;
493
             CDR ;
494
             CAR ;
495
             PAIR ;
496
             DUP 6 ;
497
             CAR ;
498
             CAR ;
499
             CAR ;
500
             CAR ;
501
             PAIR ;
502
             PAIR ;
503
             PAIR ;
504
             PAIR ;
505
             DUP ;
506
             CDR ;
507
             CDR ;
508
             DIG 2 ;
509
             DIG 3 ;
510
             CDR ;
511
             CAR ;
512
             CDR ;
513
             CDR ;
514
             ADD ;
515
             DUP 3 ;
516
             CDR ;
517
             CAR ;
518
             CDR ;
519
             CAR ;
520
             PAIR ;
521
             DUP 3 ;
522
             CDR ;
523
             CAR ;
524
             CAR ;
525
             PAIR ;
526
             PAIR ;
527
             SWAP ;
528
             CAR ;
529
             PAIR } ;
530
         DUP 4 ;
531
         DUP 3 ;
532
         PAIR ;
533
         APPLY ;
534
         DIG 17 ;
535
         UNPAIR ;
536
         IF_LEFT
537
           { IF_LEFT
538
               { DIG 5 ;
539
                 DROP ;
540
                 IF_LEFT
541
                   { DIG 5 ;
542
                     DIG 6 ;
543
                     DIG 9 ;
544
                     DIG 10 ;
545
                     DIG 12 ;
546
                     DROP 5 ;
547
                     IF_LEFT
548
                       { DIG 2 ;
549
                         DIG 3 ;
550
                         DIG 4 ;
551
                         DIG 5 ;
552
                         DIG 6 ;
553
                         DIG 7 ;
554
                         DIG 8 ;
555
                         DROP 7 ;
556
                         IF_LEFT
557
                           { DIG 2 ;
558
                             DROP 2 ;
559
                             UNIT ;
560
                             DIG 3 ;
561
                             SWAP ;
562
                             EXEC ;
563
                             DROP ;
564
                             PUSH string "Not allowed to accept ownership" ;
565
                             DUP 2 ;
566
                             CDR ;
567
                             CAR ;
568
                             CAR ;
569
                             CDR ;
570
                             PAIR ;
571
                             DIG 2 ;
572
                             SWAP ;
573
                             EXEC ;
574
                             DROP ;
575
                             DUP ;
576
                             DUP ;
577
                             CDR ;
578
                             DUP 2 ;
579
                             CAR ;
580
                             CDR ;
581
                             CDR ;
582
                             DIG 3 ;
583
                             CDR ;
584
                             CAR ;
585
                             CAR ;
586
                             CDR ;
587
                             DUP 4 ;
588
                             CAR ;
589
                             CDR ;
590
                             CAR ;
591
                             CDR ;
592
                             CAR ;
593
                             PAIR ;
594
                             DUP 4 ;
595
                             CAR ;
596
                             CDR ;
597
                             CAR ;
598
                             CAR ;
599
                             PAIR ;
600
                             PAIR ;
601
                             DIG 2 ;
602
                             CAR ;
603
                             CAR ;
604
                             PAIR ;
605
                             PAIR }
606
                           { DIG 3 ;
607
                             DROP ;
608
                             SWAP ;
609
                             UNIT ;
610
                             DIG 4 ;
611
                             SWAP ;
612
                             EXEC ;
613
                             DROP ;
614
                             DUP ;
615
                             CAR ;
616
                             CDR ;
617
                             CAR ;
618
                             CDR ;
619
                             CDR ;
620
                             DIG 3 ;
621
                             SWAP ;
622
                             EXEC ;
623
                             DROP ;
624
                             PUSH nat 0 ;
625
                             DUP 3 ;
626
                             CAR ;
627
                             CAR ;
628
                             CAR ;
629
                             CDR ;
630
                             COMPARE ;
631
                             EQ ;
632
                             IF
633
                               { PUSH string "betsPeriod should be more than 0" ;
634
                                 FAILWITH }
635
                               {} ;
636
                             PUSH nat 0 ;
637
                             DUP 3 ;
638
                             CAR ;
639
                             CDR ;
640
                             CDR ;
641
                             CDR ;
642
                             COMPARE ;
643
                             EQ ;
644
                             IF
645
                               { PUSH string "Line should have at least one event" ;
646
                                 FAILWITH }
647
                               {} ;
648
                             DUP ;
649
                             DUP ;
650
                             CDR ;
651
                             DUP 2 ;
652
                             CAR ;
653
                             CDR ;
654
                             CDR ;
655
                             DUP 3 ;
656
                             CAR ;
657
                             CDR ;
658
                             CAR ;
659
                             CDR ;
660
                             CDR ;
661
                             DUP 5 ;
662
                             CAR ;
663
                             CDR ;
664
                             CAR ;
665
                             CDR ;
666
                             CAR ;
667
                             DUP 7 ;
668
                             DIG 6 ;
669
                             CAR ;
670
                             CDR ;
671
                             CDR ;
672
                             CDR ;
673
                             CDR ;
674
                             SWAP ;
675
                             SOME ;
676
                             SWAP ;
677
                             UPDATE ;
678
                             PAIR ;
679
                             DUP 4 ;
680
                             CAR ;
681
                             CDR ;
682
                             CAR ;
683
                             CAR ;
684
                             PAIR ;
685
                             PAIR ;
686
                             DIG 2 ;
687
                             CAR ;
688
                             CAR ;
689
                             PAIR ;
690
                             PAIR ;
691
                             DUP ;
692
                             DUP ;
693
                             CDR ;
694
                             PUSH nat 1 ;
695
                             DIG 3 ;
696
                             CAR ;
697
                             CDR ;
698
                             CDR ;
699
                             CDR ;
700
                             CDR ;
701
                             ADD ;
702
                             DUP 3 ;
703
                             CAR ;
704
                             CDR ;
705
                             CDR ;
706
                             CDR ;
707
                             CAR ;
708
                             PAIR ;
709
                             DUP 3 ;
710
                             CAR ;
711
                             CDR ;
712
                             CDR ;
713
                             CAR ;
714
                             PAIR ;
715
                             DUP 3 ;
716
                             CAR ;
717
                             CDR ;
718
                             CAR ;
719
                             PAIR ;
720
                             DIG 2 ;
721
                             CAR ;
722
                             CAR ;
723
                             PAIR ;
724
                             PAIR ;
725
                             DUP 2 ;
726
                             CAR ;
727
                             CAR ;
728
                             CDR ;
729
                             CDR ;
730
                             NOT ;
731
                             IF
732
                               { DUP ;
733
                                 DUP ;
734
                                 CDR ;
735
                                 DUP 2 ;
736
                                 CAR ;
737
                                 CDR ;
738
                                 CDR ;
739
                                 CDR ;
740
                                 DUP 3 ;
741
                                 CAR ;
742
                                 CDR ;
743
                                 CDR ;
744
                                 CAR ;
745
                                 CDR ;
746
                                 DIG 5 ;
747
                                 CAR ;
748
                                 CDR ;
749
                                 CDR ;
750
                                 CDR ;
751
                                 DIG 5 ;
752
                                 CAR ;
753
                                 CDR ;
754
                                 CDR ;
755
                                 CAR ;
756
                                 CAR ;
757
                                 ADD ;
758
                                 PAIR ;
759
                                 PAIR ;
760
                                 DUP 3 ;
761
                                 CAR ;
762
                                 CDR ;
763
                                 CAR ;
764
                                 PAIR ;
765
                                 DIG 2 ;
766
                                 CAR ;
767
                                 CAR ;
768
                                 PAIR ;
769
                                 PAIR }
770
                               { SWAP ; DROP } } }
771
                       { DIG 9 ;
772
                         DROP ;
773
                         IF_LEFT
774
                           { DIG 8 ;
775
                             DIG 9 ;
776
                             DROP 2 ;
777
                             SWAP ;
778
                             UNIT ;
779
                             DIG 9 ;
780
                             SWAP ;
781
                             EXEC ;
782
                             DROP ;
783
                             DUP ;
784
                             DUP 3 ;
785
                             PAIR ;
786
                             DIG 6 ;
787
                             SWAP ;
788
                             EXEC ;
789
                             DUP 2 ;
790
                             DUP ;
791
                             CDR ;
792
                             DUP 2 ;
793
                             CAR ;
794
                             CDR ;
795
                             DUP 3 ;
796
                             CAR ;
797
                             CAR ;
798
                             CDR ;
799
                             CDR ;
800
                             DUP 4 ;
801
                             CAR ;
802
                             CAR ;
803
                             CDR ;
804
                             CAR ;
805
                             CDR ;
806
                             DIG 6 ;
807
                             CAR ;
808
                             CAR ;
809
                             CDR ;
810
                             CAR ;
811
                             CAR ;
812
                             DIG 7 ;
813
                             NONE (pair (pair timestamp nat) address) ;
814
                             SWAP ;
815
                             UPDATE ;
816
                             PAIR ;
817
                             PAIR ;
818
                             DIG 3 ;
819
                             CAR ;
820
                             CAR ;
821
                             CAR ;
822
                             PAIR ;
823
                             PAIR ;
824
                             PAIR ;
825
                             DUP 2 ;
826
                             CDR ;
827
                             PAIR ;
828
                             DIG 2 ;
829
                             SWAP ;
830
                             EXEC ;
831
                             SWAP ;
832
                             DUP 2 ;
833
                             CDR ;
834
                             CAR ;
835
                             CAR ;
836
                             CAR ;
837
                             DUP 2 ;
838
                             CAR ;
839
                             CDR ;
840
                             MUL ;
841
                             DUP 2 ;
842
                             CAR ;
843
                             CAR ;
844
                             NOW ;
845
                             COMPARE ;
846
                             LT ;
847
                             IF
848
                               { PUSH string "Cannot approve liquidity before acceptAfter" ;
849
                                 FAILWITH }
850
                               {} ;
851
                             DUP 3 ;
852
                             DUP ;
853
                             CDR ;
854
                             DUP 2 ;
855
                             CAR ;
856
                             CDR ;
857
                             DUP 3 ;
858
                             CAR ;
859
                             CAR ;
860
                             CDR ;
861
                             CDR ;
862
                             DIG 10 ;
863
                             DUP 6 ;
864
                             DIG 8 ;
865
                             CAR ;
866
                             CAR ;
867
                             CDR ;
868
                             CAR ;
869
                             CDR ;
870
                             SUB ;
871
                             PAIR ;
872
                             DUP 9 ;
873
                             SWAP ;
874
                             EXEC ;
875
                             DUP 5 ;
876
                             CAR ;
877
                             CAR ;
878
                             CDR ;
879
                             CAR ;
880
                             CAR ;
881
                             PAIR ;
882
                             PAIR ;
883
                             DIG 3 ;
884
                             CAR ;
885
                             CAR ;
886
                             CAR ;
887
                             PAIR ;
888
                             PAIR ;
889
                             PAIR ;
890
                             DUG 2 ;
891
                             DUP 3 ;
892
                             DIG 6 ;
893
                             SWAP ;
894
                             EXEC ;
895
                             PUSH string "Wrong state: negative total liquidity" ;
896
                             DUP 3 ;
897
                             DIG 2 ;
898
                             SUB ;
899
                             PAIR ;
900
                             DIG 5 ;
901
                             SWAP ;
902
                             EXEC ;
903
                             PUSH nat 0 ;
904
                             DUP 5 ;
905
                             CDR ;
906
                             CDR ;
907
                             CAR ;
908
                             COMPARE ;
909
                             EQ ;
910
                             IF
911
                               { DROP 2 ; DUP ; CAR ; CDR }
912
                               { DUP 4 ;
913
                                 CDR ;
914
                                 CDR ;
915
                                 CAR ;
916
                                 DIG 2 ;
917
                                 MUL ;
918
                                 EDIV ;
919
                                 IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
920
                                 CAR } ;
921
                             PUSH nat 0 ;
922
                             DUP 2 ;
923
                             COMPARE ;
924
                             EQ ;
925
                             IF
926
                               { PUSH string "Approve 0 shares dissalowed" ; FAILWITH }
927
                               {} ;
928
                             DUP 3 ;
929
                             DUP ;
930
                             CDR ;
931
                             CDR ;
932
                             DUP 2 ;
933
                             CDR ;
934
                             CAR ;
935
                             CDR ;
936
                             CDR ;
937
                             DUP 6 ;
938
                             CDR ;
939
                             CAR ;
940
                             CDR ;
941
                             CAR ;
942
                             DUP 5 ;
943
                             DIG 7 ;
944
                             DUP 8 ;
945
                             CDR ;
946
                             PAIR ;
947
                             DIG 8 ;
948
                             SWAP ;
949
                             EXEC ;
950
                             ADD ;
951
                             DIG 6 ;
952
                             CDR ;
953
                             SWAP ;
954
                             SOME ;
955
                             SWAP ;
956
                             UPDATE ;
957
                             PAIR ;
958
                             DUP 3 ;
959
                             CDR ;
960
                             CAR ;
961
                             CAR ;
962
                             PAIR ;
963
                             PAIR ;
964
                             SWAP ;
965
                             CAR ;
966
                             PAIR ;
967
                             SWAP ;
968
                             DUP 2 ;
969
                             DUP ;
970
                             CDR ;
971
                             CDR ;
972
                             CDR ;
973
                             DIG 2 ;
974
                             DIG 3 ;
975
                             CDR ;
976
                             CDR ;
977
                             CAR ;
978
                             ADD ;
979
                             PAIR ;
980
                             DUP 2 ;
981
                             CDR ;
982
                             CAR ;
983
                             PAIR ;
984
                             SWAP ;
985
                             CAR ;
986
                             PAIR }
987
                           { DIG 2 ;
988
                             DIG 3 ;
989
                             DIG 6 ;
990
                             DROP 3 ;
991
                             SWAP ;
992
                             UNIT ;
993
                             DIG 8 ;
994
                             SWAP ;
995
                             EXEC ;
996
                             DROP ;
997
                             DUP ;
998
                             CAR ;
999
                             CDR ;
1000
                             CAR ;
1001
                             CAR ;
1002
                             CAR ;
1003
                             NOT ;
1004
                             IF { PUSH string "Cancel is not allowed" ; FAILWITH } {} ;
1005
                             DUP ;
1006
                             DUP 3 ;
1007
                             PAIR ;
1008
                             DIG 4 ;
1009
                             SWAP ;
1010
                             EXEC ;
1011
                             DUP 2 ;
1012
                             DUP ;
1013
                             CDR ;
1014
                             DUP 2 ;
1015
                             CAR ;
1016
                             CDR ;
1017
                             DUP 3 ;
1018
                             CAR ;
1019
                             CAR ;
1020
                             CDR ;
1021
                             CDR ;
1022
                             DUP 4 ;
1023
                             CAR ;
1024
                             CAR ;
1025
                             CDR ;
1026
                             CAR ;
1027
                             CDR ;
1028
                             DIG 6 ;
1029
                             CAR ;
1030
                             CAR ;
1031
                             CDR ;
1032
                             CAR ;
1033
                             CAR ;
1034
                             DIG 7 ;
1035
                             NONE (pair (pair timestamp nat) address) ;
1036
                             SWAP ;
1037
                             UPDATE ;
1038
                             PAIR ;
1039
                             PAIR ;
1040
                             DIG 3 ;
1041
                             CAR ;
1042
                             CAR ;
1043
                             CAR ;
1044
                             PAIR ;
1045
                             PAIR ;
1046
                             PAIR ;
1047
                             SWAP ;
1048
                             DUP 2 ;
1049
                             CAR ;
1050
                             CDR ;
1051
                             CAR ;
1052
                             CAR ;
1053
                             CDR ;
1054
                             NOT ;
1055
                             IF
1056
                               { PUSH string "Not entry position owner" ;
1057
                                 DUP 2 ;
1058
                                 CDR ;
1059
                                 PAIR ;
1060
                                 DIG 6 ;
1061
                                 SWAP ;
1062
                                 EXEC ;
1063
                                 DROP }
1064
                               { DIG 5 ; DROP } ;
1065
                             DUP 2 ;
1066
                             CDR ;
1067
                             CAR ;
1068
                             CAR ;
1069
                             CAR ;
1070
                             DUP 2 ;
1071
                             CAR ;
1072
                             CDR ;
1073
                             MUL ;
1074
                             DUP 3 ;
1075
                             DUP ;
1076
                             CDR ;
1077
                             DUP 2 ;
1078
                             CAR ;
1079
                             CDR ;
1080
                             DUP 3 ;
1081
                             CAR ;
1082
                             CAR ;
1083
                             CDR ;
1084
                             CDR ;
1085
                             DIG 8 ;
1086
                             DIG 5 ;
1087
                             DIG 7 ;
1088
                             CAR ;
1089
                             CAR ;
1090
                             CDR ;
1091
                             CAR ;
1092
                             CDR ;
1093
                             SUB ;
1094
                             PAIR ;
1095
                             DIG 6 ;
1096
                             SWAP ;
1097
                             EXEC ;
1098
                             DUP 5 ;
1099
                             CAR ;
1100
                             CAR ;
1101
                             CDR ;
1102
                             CAR ;
1103
                             CAR ;
1104
                             PAIR ;
1105
                             PAIR ;
1106
                             DIG 3 ;
1107
                             CAR ;
1108
                             CAR ;
1109
                             CAR ;
1110
                             PAIR ;
1111
                             PAIR ;
1112
                             PAIR ;
1113
                             SWAP ;
1114
                             PUSH nat 0 ;
1115
                             DUP 2 ;
1116
                             CAR ;
1117
                             CDR ;
1118
                             COMPARE ;
1119
                             GT ;
1120
                             IF
1121
                               { DIG 3 ;
1122
                                 DROP ;
1123
                                 NIL operation ;
1124
                                 PUSH mutez 1 ;
1125
                                 DUP 3 ;
1126
                                 CAR ;
1127
                                 CDR ;
1128
                                 MUL ;
1129
                                 DIG 2 ;
1130
                                 CDR ;
1131
                                 PAIR ;
1132
                                 DIG 3 ;
1133
                                 SWAP ;
1134
                                 EXEC ;
1135
                                 CONS }
1136
                               { DIG 2 ; DROP 2 ; SWAP } ;
1137
                             SWAP } } ;
1138
                     SWAP }
1139
                   { DIG 7 ;
1140
                     DIG 11 ;
1141
                     DIG 14 ;
1142
                     DROP 3 ;
1143
                     IF_LEFT
1144
                       { IF_LEFT
1145
                           { DIG 5 ;
1146
                             DIG 7 ;
1147
                             DIG 10 ;
1148
                             DROP 3 ;
1149
                             SWAP ;
1150
                             UNIT ;
1151
                             DIG 11 ;
1152
                             SWAP ;
1153
                             EXEC ;
1154
                             DROP ;
1155
                             DUP 2 ;
1156
                             CAR ;
1157
                             PAIR ;
1158
                             DIG 2 ;
1159
                             SWAP ;
1160
                             EXEC ;
1161
                             DUP ;
1162
                             DUP 3 ;
1163
                             CAR ;
1164
                             PAIR ;
1165
                             DIG 3 ;
1166
                             SWAP ;
1167
                             EXEC ;
1168
                             DUP 2 ;
1169
                             CAR ;
1170
                             CDR ;
1171
                             CAR ;
1172
                             CAR ;
1173
                             CDR ;
1174
                             NOT ;
1175
                             IF
1176
                               { PUSH string "Not shares owner" ;
1177
                                 DUP 4 ;
1178
                                 CAR ;
1179
                                 PAIR ;
1180
                                 DIG 9 ;
1181
                                 SWAP ;
1182
                                 EXEC ;
1183
                                 DROP }
1184
                               { DIG 8 ; DROP } ;
1185
                             PUSH string "Claim shares is exceed position shares" ;
1186
                             DUP 4 ;
1187
                             CDR ;
1188
                             DIG 2 ;
1189
                             SUB ;
1190
                             PAIR ;
1191
                             DUP 4 ;
1192
                             SWAP ;
1193
                             EXEC ;
1194
                             PUSH nat 0 ;
1195
                             PUSH nat 0 ;
1196
                             DUP 5 ;
1197
                             CDR ;
1198
                             COMPARE ;
1199
                             EQ ;
1200
                             IF
1201
                               { DIG 5 ; DIG 7 ; DROP 2 }
1202
                               { DUP 3 ;
1203
                                 CAR ;
1204
                                 CAR ;
1205
                                 CAR ;
1206
                                 CAR ;
1207
                                 CAR ;
1208
                                 ITER { CAR ;
1209
                                        DUP 4 ;
1210
                                        DUP 2 ;
1211
                                        PAIR ;
1212
                                        DUP 8 ;
1213
                                        SWAP ;
1214
                                        EXEC ;
1215
                                        DUP 6 ;
1216
                                        CAR ;
1217
                                        DUP 3 ;
1218
                                        PAIR ;
1219
                                        DUP 6 ;
1220
                                        DUP 2 ;
1221
                                        PAIR ;
1222
                                        DUP 12 ;
1223
                                        DUP 4 ;
1224
                                        CAR ;
1225
                                        CAR ;
1226
                                        DUP 5 ;
1227
                                        CAR ;
1228
                                        CDR ;
1229
                                        SUB ;
1230
                                        PAIR ;
1231
                                        DUP 10 ;
1232
                                        SWAP ;
1233
                                        EXEC ;
1234
                                        DUP 8 ;
1235
                                        CDR ;
1236
                                        CDR ;
1237
                                        CAR ;
1238
                                        SWAP ;
1239
                                        DUP 10 ;
1240
                                        CDR ;
1241
                                        DUP 10 ;
1242
                                        CDR ;
1243
                                        CAR ;
1244
                                        CAR ;
1245
                                        CAR ;
1246
                                        MUL ;
1247
                                        MUL ;
1248
                                        EDIV ;
1249
                                        IF_NONE
1250
                                          { PUSH string "DIV by 0" ; FAILWITH }
1251
                                          {} ;
1252
                                        CAR ;
1253
                                        DUP 8 ;
1254
                                        CDR ;
1255
                                        CAR ;
1256
                                        CAR ;
1257
                                        CAR ;
1258
                                        SWAP ;
1259
                                        EDIV ;
1260
                                        IF_NONE
1261
                                          { PUSH string "DIV / 0" ; FAILWITH }
1262
                                          { UNPAIR ;
1263
                                            PUSH nat 0 ;
1264
                                            DIG 2 ;
1265
                                            COMPARE ;
1266
                                            GT ;
1267
                                            IF { PUSH nat 1 ; ADD } {} } ;
1268
                                        DUP 8 ;
1269
                                        DUP ;
1270
                                        CDR ;
1271
                                        DUP 2 ;
1272
                                        CAR ;
1273
                                        CDR ;
1274
                                        DUP 3 ;
1275
                                        CAR ;
1276
                                        CAR ;
1277
                                        CDR ;
1278
                                        DUP 4 ;
1279
                                        CAR ;
1280
                                        CAR ;
1281
                                        CAR ;
1282
                                        CDR ;
1283
                                        CDR ;
1284
                                        DIG 12 ;
1285
                                        CAR ;
1286
                                        CAR ;
1287
                                        CAR ;
1288
                                        CDR ;
1289
                                        CAR ;
1290
                                        DUP 7 ;
1291
                                        DIG 8 ;
1292
                                        UNPAIR ;
1293
                                        SWAP ;
1294
                                        CAR ;
1295
                                        CAR ;
1296
                                        CAR ;
1297
                                        CDR ;
1298
                                        CAR ;
1299
                                        SWAP ;
1300
                                        GET ;
1301
                                        IF_NONE { PUSH nat 0 } {} ;
1302
                                        ADD ;
1303
                                        DIG 8 ;
1304
                                        SWAP ;
1305
                                        SOME ;
1306
                                        SWAP ;
1307
                                        UPDATE ;
1308
                                        PAIR ;
1309
                                        DIG 4 ;
1310
                                        CAR ;
1311
                                        CAR ;
1312
                                        CAR ;
1313
                                        CAR ;
1314
                                        PAIR ;
1315
                                        PAIR ;
1316
                                        PAIR ;
1317
                                        PAIR ;
1318
                                        DUG 5 ;
1319
                                        DUP ;
1320
                                        DIG 4 ;
1321
                                        ADD ;
1322
                                        DUG 3 ;
1323
                                        DUP 2 ;
1324
                                        CAR ;
1325
                                        CAR ;
1326
                                        ADD ;
1327
                                        DUP 2 ;
1328
                                        CAR ;
1329
                                        CDR ;
1330
                                        DUP 2 ;
1331
                                        COMPARE ;
1332
                                        GT ;
1333
                                        IF { DUP 11 ; FAILWITH } {} ;
1334
                                        DUP 6 ;
1335
                                        DUP ;
1336
                                        CDR ;
1337
                                        DUP 2 ;
1338
                                        CAR ;
1339
                                        CDR ;
1340
                                        DIG 8 ;
1341
                                        CAR ;
1342
                                        CAR ;
1343
                                        CDR ;
1344
                                        CDR ;
1345
                                        CDR ;
1346
                                        DUP 6 ;
1347
                                        CDR ;
1348
                                        DIG 6 ;
1349
                                        CAR ;
1350
                                        CDR ;
1351
                                        DIG 6 ;
1352
                                        PAIR ;
1353
                                        PAIR ;
1354
                                        DIG 5 ;
1355
                                        SWAP ;
1356
                                        SOME ;
1357
                                        SWAP ;
1358
                                        UPDATE ;
1359
                                        DUP 4 ;
1360
                                        CAR ;
1361
                                        CAR ;
1362
                                        CDR ;
1363
                                        CDR ;
1364
                                        CAR ;
1365
                                        PAIR ;
1366
                                        DUP 4 ;
1367
                                        CAR ;
1368
                                        CAR ;
1369
                                        CDR ;
1370
                                        CAR ;
1371
                                        PAIR ;
1372
                                        DIG 3 ;
1373
                                        CAR ;
1374
                                        CAR ;
1375
                                        CAR ;
1376
                                        PAIR ;
1377
                                        PAIR ;
1378
                                        PAIR ;
1379
                                        DUG 2 } ;
1380
                                 DIG 5 ;
1381
                                 DIG 7 ;
1382
                                 DROP 2 } ;
1383
                             DUP 3 ;
1384
                             DUP ;
1385
                             CDR ;
1386
                             CDR ;
1387
                             DUP 2 ;
1388
                             CDR ;
1389
                             CAR ;
1390
                             CDR ;
1391
                             CDR ;
1392
                             DIG 5 ;
1393
                             CDR ;
1394
                             CAR ;
1395
                             CDR ;
1396
                             CAR ;
1397
                             DIG 5 ;
1398
                             DUP 7 ;
1399
                             CAR ;
1400
                             SWAP ;
1401
                             SOME ;
1402
                             SWAP ;
1403
                             UPDATE ;
1404
                             PAIR ;
1405
                             DUP 3 ;
1406
                             CDR ;
1407
                             CAR ;
1408
                             CAR ;
1409
                             PAIR ;
1410
                             PAIR ;
1411
                             SWAP ;
1412
                             CAR ;
1413
                             PAIR ;
1414
                             SWAP ;
1415
                             PUSH string "Wrong state: negative payout" ;
1416
                             DUP 3 ;
1417
                             CDR ;
1418
                             CAR ;
1419
                             CAR ;
1420
                             CAR ;
1421
                             DUP 4 ;
1422
                             CDR ;
1423
                             CDR ;
1424
                             CAR ;
1425
                             DUP 6 ;
1426
                             CDR ;
1427
                             DUP 6 ;
1428
                             DIG 9 ;
1429
                             SWAP ;
1430
                             EXEC ;
1431
                             MUL ;
1432
                             EDIV ;
1433
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1434
                             CAR ;
1435
                             EDIV ;
1436
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1437
                             CAR ;
1438
                             PAIR ;
1439
                             DUP 5 ;
1440
                             SWAP ;
1441
                             EXEC ;
1442
                             DUP 3 ;
1443
                             DUP ;
1444
                             CDR ;
1445
                             CDR ;
1446
                             CDR ;
1447
                             PUSH string "Wrong state: negative total shares" ;
1448
                             DUP 7 ;
1449
                             CDR ;
1450
                             DIG 6 ;
1451
                             CDR ;
1452
                             CDR ;
1453
                             CAR ;
1454
                             SUB ;
1455
                             PAIR ;
1456
                             DUP 7 ;
1457
                             SWAP ;
1458
                             EXEC ;
1459
                             PAIR ;
1460
                             DUP 2 ;
1461
                             CDR ;
1462
                             CAR ;
1463
                             PAIR ;
1464
                             SWAP ;
1465
                             CAR ;
1466
                             PAIR ;
1467
                             DUG 2 ;
1468
                             DUP 3 ;
1469
                             CDR ;
1470
                             CAR ;
1471
                             CAR ;
1472
                             CAR ;
1473
                             DIG 2 ;
1474
                             MUL ;
1475
                             DUP 3 ;
1476
                             DUP ;
1477
                             CDR ;
1478
                             DUP 2 ;
1479
                             CAR ;
1480
                             CDR ;
1481
                             DUP 3 ;
1482
                             CAR ;
1483
                             CAR ;
1484
                             CDR ;
1485
                             DUP 4 ;
1486
                             CAR ;
1487
                             CAR ;
1488
                             CAR ;
1489
                             CDR ;
1490
                             PUSH string "Wrong state: negative active liquidity" ;
1491
                             DIG 6 ;
1492
                             DIG 8 ;
1493
                             CAR ;
1494
                             CAR ;
1495
                             CAR ;
1496
                             CAR ;
1497
                             CDR ;
1498
                             SUB ;
1499
                             PAIR ;
1500
                             DIG 8 ;
1501
                             SWAP ;
1502
                             EXEC ;
1503
                             DIG 5 ;
1504
                             CAR ;
1505
                             CAR ;
1506
                             CAR ;
1507
                             CAR ;
1508
                             CAR ;
1509
                             PAIR ;
1510
                             PAIR ;
1511
                             PAIR ;
1512
                             PAIR ;
1513
                             PAIR ;
1514
                             SWAP ;
1515
                             PUSH nat 0 ;
1516
                             DUP 2 ;
1517
                             COMPARE ;
1518
                             GT ;
1519
                             IF
1520
                               { DIG 4 ;
1521
                                 DROP ;
1522
                                 NIL operation ;
1523
                                 PUSH mutez 1 ;
1524
                                 DIG 2 ;
1525
                                 MUL ;
1526
                                 DIG 3 ;
1527
                                 CAR ;
1528
                                 PAIR ;
1529
                                 DIG 3 ;
1530
                                 SWAP ;
1531
                                 EXEC ;
1532
                                 CONS }
1533
                               { DIG 2 ; DIG 3 ; DROP 3 ; SWAP } }
1534
                           { DIG 2 ;
1535
                             DIG 3 ;
1536
                             DIG 4 ;
1537
                             DIG 6 ;
1538
                             DIG 9 ;
1539
                             DIG 11 ;
1540
                             DIG 12 ;
1541
                             DIG 14 ;
1542
                             DROP 8 ;
1543
                             SWAP ;
1544
                             DUP ;
1545
                             DUP 3 ;
1546
                             PAIR ;
1547
                             DIG 3 ;
1548
                             SWAP ;
1549
                             EXEC ;
1550
                             DUP ;
1551
                             CAR ;
1552
                             CDR ;
1553
                             CAR ;
1554
                             CAR ;
1555
                             UNIT ;
1556
                             VIEW "getNextEventId" nat ;
1557
                             IF_NONE
1558
                               { PUSH string "Juster.getNextEventId view is not found" ;
1559
                                 FAILWITH }
1560
                               {} ;
1561
                             UNIT ;
1562
                             DIG 8 ;
1563
                             SWAP ;
1564
                             EXEC ;
1565
                             DROP ;
1566
                             DUP 3 ;
1567
                             PUSH int 0 ;
1568
                             DUP 2 ;
1569
                             CAR ;
1570
                             CAR ;
1571
                             CAR ;
1572
                             CAR ;
1573
                             CAR ;
1574
                             SIZE ;
1575
                             DIG 2 ;
1576
                             CAR ;
1577
                             CDR ;
1578
                             CDR ;
1579
                             CAR ;
1580
                             CAR ;
1581
                             SUB ;
1582
                             COMPARE ;
1583
                             LE ;
1584
                             IF { DUP 7 ; FAILWITH } {} ;
1585
                             DUP 2 ;
1586
                             CAR ;
1587
                             CAR ;
1588
                             CDR ;
1589
                             CDR ;
1590
                             IF { PUSH string "Line is paused" ; FAILWITH } {} ;
1591
                             DUP 3 ;
1592
                             DUP 2 ;
1593
                             SWAP ;
1594
                             CAR ;
1595
                             CAR ;
1596
                             CDR ;
1597
                             CDR ;
1598
                             CDR ;
1599
                             SWAP ;
1600
                             MEM ;
1601
                             IF
1602
                               { PUSH string "Event id is already taken" ; FAILWITH }
1603
                               {} ;
1604
                             DUP 3 ;
1605
                             DUP 3 ;
1606
                             DUP 6 ;
1607
                             PUSH nat 0 ;
1608
                             DIG 3 ;
1609
                             CAR ;
1610
                             CAR ;
1611
                             CAR ;
1612
                             CAR ;
1613
                             CAR ;
1614
                             ITER { SWAP ;
1615
                                    DUP 3 ;
1616
                                    DIG 2 ;
1617
                                    CDR ;
1618
                                    COMPARE ;
1619
                                    EQ ;
1620
                                    IF { PUSH nat 1 ; ADD } {} } ;
1621
                             SWAP ;
1622
                             DROP ;
1623
                             SWAP ;
1624
                             CAR ;
1625
                             CDR ;
1626
                             CDR ;
1627
                             CDR ;
1628
                             SWAP ;
1629
                             COMPARE ;
1630
                             GT ;
1631
                             IF { DIG 6 ; FAILWITH } { DIG 6 ; DROP } ;
1632
                             DUP 2 ;
1633
                             DUP ;
1634
                             CAR ;
1635
                             CAR ;
1636
                             CAR ;
1637
                             CAR ;
1638
                             INT ;
1639
                             SWAP ;
1640
                             CAR ;
1641
                             CDR ;
1642
                             CAR ;
1643
                             CDR ;
1644
                             SUB ;
1645
                             NOW ;
1646
                             COMPARE ;
1647
                             LT ;
1648
                             IF
1649
                               { PUSH string "Event cannot be created until previous event betsCloseTime" ;
1650
                                 FAILWITH }
1651
                               {} ;
1652
                             DUP 2 ;
1653
                             PUSH nat 1 ;
1654
                             DUP 2 ;
1655
                             CAR ;
1656
                             CAR ;
1657
                             CAR ;
1658
                             CDR ;
1659
                             DUP 3 ;
1660
                             CAR ;
1661
                             CDR ;
1662
                             CAR ;
1663
                             CDR ;
1664
                             NOW ;
1665
                             SUB ;
1666
                             EDIV ;
1667
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1668
                             CAR ;
1669
                             ADD ;
1670
                             DUP 2 ;
1671
                             CAR ;
1672
                             CDR ;
1673
                             CAR ;
1674
                             CDR ;
1675
                             NOW ;
1676
                             COMPARE ;
1677
                             LT ;
1678
                             IF { PUSH nat 1 ; ADD } {} ;
1679
                             DUP 2 ;
1680
                             CAR ;
1681
                             CAR ;
1682
                             CAR ;
1683
                             CDR ;
1684
                             MUL ;
1685
                             DUP 2 ;
1686
                             CAR ;
1687
                             CDR ;
1688
                             CAR ;
1689
                             CDR ;
1690
                             ADD ;
1691
                             NOW ;
1692
                             DUP 2 ;
1693
                             SUB ;
1694
                             DUP 3 ;
1695
                             CDR ;
1696
                             CAR ;
1697
                             CAR ;
1698
                             CDR ;
1699
                             SWAP ;
1700
                             ABS ;
1701
                             COMPARE ;
1702
                             LT ;
1703
                             IF
1704
                               { SWAP ; CAR ; CAR ; CAR ; CDR ; INT ; ADD }
1705
                               { SWAP ; DROP } ;
1706
                             DIG 2 ;
1707
                             DUP ;
1708
                             CDR ;
1709
                             DUP 2 ;
1710
                             CAR ;
1711
                             CDR ;
1712
                             CDR ;
1713
                             DUP 4 ;
1714
                             DUP 4 ;
1715
                             CAR ;
1716
                             CDR ;
1717
                             CAR ;
1718
                             CAR ;
1719
                             PAIR ;
1720
                             PAIR ;
1721
                             DIG 2 ;
1722
                             CAR ;
1723
                             CAR ;
1724
                             PAIR ;
1725
                             PAIR ;
1726
                             DUG 2 ;
1727
                             DUP 4 ;
1728
                             DUP ;
1729
                             CDR ;
1730
                             DUP 2 ;
1731
                             CAR ;
1732
                             CDR ;
1733
                             CDR ;
1734
                             DUP 3 ;
1735
                             CAR ;
1736
                             CDR ;
1737
                             CAR ;
1738
                             CDR ;
1739
                             CDR ;
1740
                             DIG 7 ;
1741
                             CAR ;
1742
                             CDR ;
1743
                             CAR ;
1744
                             CDR ;
1745
                             CAR ;
1746
                             DUP 8 ;
1747
                             DUP 10 ;
1748
                             SWAP ;
1749
                             SOME ;
1750
                             SWAP ;
1751
                             UPDATE ;
1752
                             PAIR ;
1753
                             DUP 4 ;
1754
                             CAR ;
1755
                             CDR ;
1756
                             CAR ;
1757
                             CAR ;
1758
                             PAIR ;
1759
                             PAIR ;
1760
                             DIG 2 ;
1761
                             CAR ;
1762
                             CAR ;
1763
                             PAIR ;
1764
                             PAIR ;
1765
                             DUG 3 ;
1766
                             DUP 3 ;
1767
                             CDR ;
1768
                             CDR ;
1769
                             DUP 4 ;
1770
                             CDR ;
1771
                             CAR ;
1772
                             CAR ;
1773
                             CAR ;
1774
                             DUP 5 ;
1775
                             CAR ;
1776
                             CDR ;
1777
                             CDR ;
1778
                             CAR ;
1779
                             PAIR ;
1780
                             DUP 5 ;
1781
                             CAR ;
1782
                             CAR ;
1783
                             CDR ;
1784
                             CAR ;
1785
                             DIG 3 ;
1786
                             PAIR ;
1787
                             PAIR ;
1788
                             PAIR ;
1789
                             DUP 3 ;
1790
                             CAR ;
1791
                             CDR ;
1792
                             CAR ;
1793
                             CAR ;
1794
                             UNIT ;
1795
                             VIEW "getConfig"
1796
                                   (pair
1797
                                     (pair
1798
                                       (pair
1799
                                         (pair (mutez %expirationFee)
1800
                                               (bool %isEventCreationPaused))
1801
                                         (pair (nat %maxAllowedMeasureLag)
1802
                                               (nat %maxLiquidityPercent)))
1803
                                       (pair
1804
                                         (pair (nat %maxMeasurePeriod)
1805
                                               (nat %maxPeriodToBetsClose))
1806
                                         (pair (mutez %measureStartFee)
1807
                                               (nat %minLiquidityPercent))))
1808
                                     (pair
1809
                                       (pair
1810
                                         (pair (nat %minMeasurePeriod)
1811
                                               (nat %minPeriodToBetsClose))
1812
                                         (pair (address %oracleAddress)
1813
                                               (nat %providerProfitFee)))
1814
                                       (pair (mutez %rewardCallFee)
1815
                                             (nat %rewardFeeSplitAfter)))) ;
1816
                             IF_NONE
1817
                               { PUSH string "Juster.getConfig is not found" ; FAILWITH }
1818
                               {} ;
1819
                             DUP ;
1820
                             CAR ;
1821
                             CDR ;
1822
                             CDR ;
1823
                             CAR ;
1824
                             SWAP ;
1825
                             CAR ;
1826
                             CAR ;
1827
                             CAR ;
1828
                             CAR ;
1829
                             ADD ;
1830
                             DUP 4 ;
1831
                             CAR ;
1832
                             CDR ;
1833
                             CAR ;
1834
                             CAR ;
1835
                             CONTRACT %newEvent (pair
1836
                                                  (pair
1837
                                                    (pair (timestamp %betsCloseTime)
1838
                                                          (string %currencyPair))
1839
                                                    (pair (nat %liquidityPercent)
1840
                                                          (nat %measurePeriod)))
1841
                                                  (nat %targetDynamics)) ;
1842
                             IF_NONE
1843
                               { PUSH string "Juster.newEvent is not found" ; FAILWITH }
1844
                               {} ;
1845
                             DUP 2 ;
1846
                             DIG 3 ;
1847
                             TRANSFER_TOKENS ;
1848
                             PUSH nat 0 ;
1849
                             DUP 5 ;
1850
                             CDR ;
1851
                             CAR ;
1852
                             CDR ;
1853
                             CDR ;
1854
                             PAIR ;
1855
                             DUP 5 ;
1856
                             CDR ;
1857
                             CAR ;
1858
                             CDR ;
1859
                             CAR ;
1860
                             DUP 5 ;
1861
                             PAIR ;
1862
                             PAIR ;
1863
                             DUP 6 ;
1864
                             DUP ;
1865
                             CAR ;
1866
                             CDR ;
1867
                             CDR ;
1868
                             CAR ;
1869
                             CAR ;
1870
                             DUP 2 ;
1871
                             DIG 10 ;
1872
                             SWAP ;
1873
                             EXEC ;
1874
                             EDIV ;
1875
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1876
                             CAR ;
1877
                             DUP 2 ;
1878
                             DIG 10 ;
1879
                             SWAP ;
1880
                             EXEC ;
1881
                             DIG 2 ;
1882
                             CDR ;
1883
                             CAR ;
1884
                             CAR ;
1885
                             CAR ;
1886
                             DUP 2 ;
1887
                             DUP 4 ;
1888
                             COMPARE ;
1889
                             GT ;
1890
                             IF { DIG 2 ; DROP } { SWAP ; DROP } ;
1891
                             SWAP ;
1892
                             EDIV ;
1893
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1894
                             CAR ;
1895
                             ABS ;
1896
                             PUSH mutez 1 ;
1897
                             PUSH mutez 1 ;
1898
                             DUP 6 ;
1899
                             EDIV ;
1900
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1901
                             CAR ;
1902
                             DIG 2 ;
1903
                             DUP 2 ;
1904
                             DUP 2 ;
1905
                             COMPARE ;
1906
                             GT ;
1907
                             IF
1908
                               { SUB ; ABS }
1909
                               { DROP 2 ;
1910
                                 PUSH string "Not enough liquidity to run event" ;
1911
                                 FAILWITH } ;
1912
                             MUL ;
1913
                             DIG 5 ;
1914
                             CAR ;
1915
                             CDR ;
1916
                             CAR ;
1917
                             CAR ;
1918
                             CONTRACT %provideLiquidity (pair
1919
                                                          (pair (nat %eventId)
1920
                                                                (nat %expectedRatioAboveEq))
1921
                                                          (pair
1922
                                                            (nat %expectedRatioBelow)
1923
                                                            (nat %maxSlippage))) ;
1924
                             IF_NONE
1925
                               { PUSH string "Juster.provideLiquidity is not found" ;
1926
                                 FAILWITH }
1927
                               {} ;
1928
                             DUP 2 ;
1929
                             DIG 3 ;
1930
                             TRANSFER_TOKENS ;
1931
                             PUSH mutez 1 ;
1932
                             DIG 4 ;
1933
                             DIG 3 ;
1934
                             ADD ;
1935
                             EDIV ;
1936
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
1937
                             CAR ;
1938
                             DUP 5 ;
1939
                             DUP ;
1940
                             CDR ;
1941
                             DUP 2 ;
1942
                             CAR ;
1943
                             CDR ;
1944
                             DIG 7 ;
1945
                             CAR ;
1946
                             CAR ;
1947
                             CDR ;
1948
                             CDR ;
1949
                             CDR ;
1950
                             NONE nat ;
1951
                             DUP 6 ;
1952
                             PUSH nat 0 ;
1953
                             PAIR ;
1954
                             PAIR ;
1955
                             DUP 9 ;
1956
                             SWAP ;
1957
                             SOME ;
1958
                             SWAP ;
1959
                             UPDATE ;
1960
                             DUP 4 ;
1961
                             CAR ;
1962
                             CAR ;
1963
                             CDR ;
1964
                             CDR ;
1965
                             CAR ;
1966
                             PAIR ;
1967
                             DUP 4 ;
1968
                             CAR ;
1969
                             CAR ;
1970
                             CDR ;
1971
                             CAR ;
1972
                             PAIR ;
1973
                             DIG 3 ;
1974
                             CAR ;
1975
                             CAR ;
1976
                             CAR ;
1977
                             PAIR ;
1978
                             PAIR ;
1979
                             PAIR ;
1980
                             DUG 4 ;
1981
                             DUP 5 ;
1982
                             DUP ;
1983
                             CDR ;
1984
                             DUP 2 ;
1985
                             CAR ;
1986
                             CDR ;
1987
                             DUP 3 ;
1988
                             CAR ;
1989
                             CAR ;
1990
                             CDR ;
1991
                             DUP 4 ;
1992
                             CAR ;
1993
                             CAR ;
1994
                             CAR ;
1995
                             CDR ;
1996
                             DIG 4 ;
1997
                             CAR ;
1998
                             CAR ;
1999
                             CAR ;
2000
                             CAR ;
2001
                             CDR ;
2002
                             DIG 9 ;
2003
                             CAR ;
2004
                             CAR ;
2005
                             CAR ;
2006
                             CAR ;
2007
                             CAR ;
2008
                             DIG 10 ;
2009
                             DIG 10 ;
2010
                             SWAP ;
2011
                             SOME ;
2012
                             SWAP ;
2013
                             UPDATE ;
2014
                             PAIR ;
2015
                             PAIR ;
2016
                             PAIR ;
2017
                             PAIR ;
2018
                             PAIR ;
2019
                             DUG 3 ;
2020
                             DUP 4 ;
2021
                             DUP ;
2022
                             CDR ;
2023
                             DUP 2 ;
2024
                             CAR ;
2025
                             CDR ;
2026
                             DUP 3 ;
2027
                             CAR ;
2028
                             CAR ;
2029
                             CDR ;
2030
                             DUP 4 ;
2031
                             CAR ;
2032
                             CAR ;
2033
                             CAR ;
2034
                             CDR ;
2035
                             DUP 9 ;
2036
                             CDR ;
2037
                             CAR ;
2038
                             CAR ;
2039
                             CAR ;
2040
                             DIG 6 ;
2041
                             MUL ;
2042
                             DIG 8 ;
2043
                             CAR ;
2044
                             CAR ;
2045
                             CAR ;
2046
                             CAR ;
2047
                             CDR ;
2048
                             ADD ;
2049
                             DIG 5 ;
2050
                             CAR ;
2051
                             CAR ;
2052
                             CAR ;
2053
                             CAR ;
2054
                             CAR ;
2055
                             PAIR ;
2056
                             PAIR ;
2057
                             PAIR ;
2058
                             PAIR ;
2059
                             PAIR ;
2060
                             NIL operation ;
2061
                             DIG 2 ;
2062
                             CONS ;
2063
                             DIG 2 ;
2064
                             CONS } }
2065
                       { DIG 2 ;
2066
                         DIG 3 ;
2067
                         DIG 4 ;
2068
                         DIG 5 ;
2069
                         DIG 6 ;
2070
                         DIG 7 ;
2071
                         DIG 8 ;
2072
                         DIG 9 ;
2073
                         DIG 10 ;
2074
                         DIG 11 ;
2075
                         DIG 12 ;
2076
                         DIG 13 ;
2077
                         DROP 12 ;
2078
                         IF_LEFT
2079
                           { DROP }
2080
                           { DROP ;
2081
                             DUP ;
2082
                             CAR ;
2083
                             CDR ;
2084
                             CAR ;
2085
                             CAR ;
2086
                             CAR ;
2087
                             IF { PUSH string "Deposit is paused" ; FAILWITH } {} ;
2088
                             PUSH mutez 1 ;
2089
                             AMOUNT ;
2090
                             EDIV ;
2091
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
2092
                             CAR ;
2093
                             PUSH nat 0 ;
2094
                             DUP 2 ;
2095
                             COMPARE ;
2096
                             EQ ;
2097
                             IF { PUSH string "Should provide tez" ; FAILWITH } {} ;
2098
                             SENDER ;
2099
                             DUP 2 ;
2100
                             DUP 4 ;
2101
                             CAR ;
2102
                             CAR ;
2103
                             CDR ;
2104
                             CDR ;
2105
                             CAR ;
2106
                             INT ;
2107
                             NOW ;
2108
                             ADD ;
2109
                             PAIR ;
2110
                             PAIR ;
2111
                             DUP 3 ;
2112
                             DUP ;
2113
                             CDR ;
2114
                             DUP 2 ;
2115
                             CAR ;
2116
                             CDR ;
2117
                             DUP 3 ;
2118
                             CAR ;
2119
                             CAR ;
2120
                             CDR ;
2121
                             CDR ;
2122
                             DUP 4 ;
2123
                             CAR ;
2124
                             CAR ;
2125
                             CDR ;
2126
                             CAR ;
2127
                             CDR ;
2128
                             DUP 8 ;
2129
                             CAR ;
2130
                             CAR ;
2131
                             CDR ;
2132
                             CAR ;
2133
                             CAR ;
2134
                             DIG 6 ;
2135
                             DIG 8 ;
2136
                             CAR ;
2137
                             CDR ;
2138
                             CDR ;
2139
                             CDR ;
2140
                             CAR ;
2141
                             SWAP ;
2142
                             SOME ;
2143
                             SWAP ;
2144
                             UPDATE ;
2145
                             PAIR ;
2146
                             PAIR ;
2147
                             DIG 3 ;
2148
                             CAR ;
2149
                             CAR ;
2150
                             CAR ;
2151
                             PAIR ;
2152
                             PAIR ;
2153
                             PAIR ;
2154
                             SWAP ;
2155
                             DUP 2 ;
2156
                             DUP ;
2157
                             CDR ;
2158
                             DUP 2 ;
2159
                             CAR ;
2160
                             CDR ;
2161
                             CDR ;
2162
                             CDR ;
2163
                             CDR ;
2164
                             PUSH nat 1 ;
2165
                             DIG 5 ;
2166
                             CAR ;
2167
                             CDR ;
2168
                             CDR ;
2169
                             CDR ;
2170
                             CAR ;
2171
                             ADD ;
2172
                             PAIR ;
2173
                             DUP 3 ;
2174
                             CAR ;
2175
                             CDR ;
2176
                             CDR ;
2177
                             CAR ;
2178
                             PAIR ;
2179
                             DUP 3 ;
2180
                             CAR ;
2181
                             CDR ;
2182
                             CAR ;
2183
                             PAIR ;
2184
                             DIG 2 ;
2185
                             CAR ;
2186
                             CAR ;
2187
                             PAIR ;
2188
                             PAIR ;
2189
                             SWAP ;
2190
                             DUP 2 ;
2191
                             DUP ;
2192
                             CDR ;
2193
                             DUP 2 ;
2194
                             CAR ;
2195
                             CDR ;
2196
                             DUP 3 ;
2197
                             CAR ;
2198
                             CAR ;
2199
                             CDR ;
2200
                             CDR ;
2201
                             DUP 6 ;
2202
                             CDR ;
2203
                             CAR ;
2204
                             CAR ;
2205
                             CAR ;
2206
                             DIG 5 ;
2207
                             MUL ;
2208
                             DIG 5 ;
2209
                             CAR ;
2210
                             CAR ;
2211
                             CDR ;
2212
                             CAR ;
2213
                             CDR ;
2214
                             ADD ;
2215
                             DUP 5 ;
2216
                             CAR ;
2217
                             CAR ;
2218
                             CDR ;
2219
                             CAR ;
2220
                             CAR ;
2221
                             PAIR ;
2222
                             PAIR ;
2223
                             DIG 3 ;
2224
                             CAR ;
2225
                             CAR ;
2226
                             CAR ;
2227
                             PAIR ;
2228
                             PAIR ;
2229
                             PAIR } ;
2230
                         SWAP } } }
2231
               { DIG 3 ;
2232
                 DIG 8 ;
2233
                 DIG 9 ;
2234
                 DIG 10 ;
2235
                 DIG 11 ;
2236
                 DIG 12 ;
2237
                 DIG 13 ;
2238
                 DIG 14 ;
2239
                 DROP 8 ;
2240
                 IF_LEFT
2241
                   { DIG 2 ;
2242
                     DIG 3 ;
2243
                     DROP 2 ;
2244
                     IF_LEFT
2245
                       { IF_LEFT
2246
                           { DIG 2 ;
2247
                             DIG 3 ;
2248
                             DIG 4 ;
2249
                             DIG 6 ;
2250
                             DROP 5 ;
2251
                             UNIT ;
2252
                             DIG 3 ;
2253
                             SWAP ;
2254
                             EXEC ;
2255
                             DROP ;
2256
                             DUP ;
2257
                             CAR ;
2258
                             CDR ;
2259
                             CAR ;
2260
                             CDR ;
2261
                             CDR ;
2262
                             DIG 2 ;
2263
                             SWAP ;
2264
                             EXEC ;
2265
                             DROP ;
2266
                             DUP ;
2267
                             CDR ;
2268
                             DUP 2 ;
2269
                             CAR ;
2270
                             CDR ;
2271
                             CDR ;
2272
                             DUP 3 ;
2273
                             CAR ;
2274
                             CDR ;
2275
                             CAR ;
2276
                             CDR ;
2277
                             PUSH bool True ;
2278
                             DUP 5 ;
2279
                             CAR ;
2280
                             CDR ;
2281
                             CAR ;
2282
                             CAR ;
2283
                             CAR ;
2284
                             PAIR ;
2285
                             PAIR ;
2286
                             PAIR ;
2287
                             DIG 2 ;
2288
                             CAR ;
2289
                             CAR }
2290
                           { DIG 5 ;
2291
                             DIG 7 ;
2292
                             DROP 2 ;
2293
                             SWAP ;
2294
                             DUP ;
2295
                             DUP 3 ;
2296
                             SWAP ;
2297
                             CAR ;
2298
                             CAR ;
2299
                             CAR ;
2300
                             CAR ;
2301
                             CAR ;
2302
                             SWAP ;
2303
                             GET ;
2304
                             IF_NONE
2305
                               { PUSH string "Active event is not found" ; FAILWITH }
2306
                               {} ;
2307
                             DUP 2 ;
2308
                             SWAP ;
2309
                             PAIR ;
2310
                             DIG 4 ;
2311
                             SWAP ;
2312
                             EXEC ;
2313
                             PUSH string "Address is not expected" ;
2314
                             SWAP ;
2315
                             CAR ;
2316
                             CDR ;
2317
                             CAR ;
2318
                             CAR ;
2319
                             PAIR ;
2320
                             DIG 5 ;
2321
                             SWAP ;
2322
                             EXEC ;
2323
                             DROP ;
2324
                             PUSH mutez 1 ;
2325
                             AMOUNT ;
2326
                             EDIV ;
2327
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
2328
                             CAR ;
2329
                             DUP 2 ;
2330
                             DUP 4 ;
2331
                             PAIR ;
2332
                             DIG 5 ;
2333
                             SWAP ;
2334
                             EXEC ;
2335
                             DUP 2 ;
2336
                             SOME ;
2337
                             SWAP ;
2338
                             CAR ;
2339
                             PAIR ;
2340
                             DUP 3 ;
2341
                             DUP ;
2342
                             CDR ;
2343
                             DUP 2 ;
2344
                             CAR ;
2345
                             CDR ;
2346
                             DIG 5 ;
2347
                             CAR ;
2348
                             CAR ;
2349
                             CDR ;
2350
                             CDR ;
2351
                             CDR ;
2352
                             DUP 5 ;
2353
                             SOME ;
2354
                             DUP 8 ;
2355
                             UPDATE ;
2356
                             DUP 4 ;
2357
                             CAR ;
2358
                             CAR ;
2359
                             CDR ;
2360
                             CDR ;
2361
                             CAR ;
2362
                             PAIR ;
2363
                             DUP 4 ;
2364
                             CAR ;
2365
                             CAR ;
2366
                             CDR ;
2367
                             CAR ;
2368
                             PAIR ;
2369
                             DIG 3 ;
2370
                             CAR ;
2371
                             CAR ;
2372
                             CAR ;
2373
                             PAIR ;
2374
                             PAIR ;
2375
                             PAIR ;
2376
                             DUG 2 ;
2377
                             DUP 3 ;
2378
                             DUP ;
2379
                             CDR ;
2380
                             DUP 2 ;
2381
                             CAR ;
2382
                             CDR ;
2383
                             DUP 3 ;
2384
                             CAR ;
2385
                             CAR ;
2386
                             CDR ;
2387
                             DUP 4 ;
2388
                             CAR ;
2389
                             CAR ;
2390
                             CAR ;
2391
                             CDR ;
2392
                             DIG 4 ;
2393
                             CAR ;
2394
                             CAR ;
2395
                             CAR ;
2396
                             CAR ;
2397
                             CDR ;
2398
                             DIG 7 ;
2399
                             CAR ;
2400
                             CAR ;
2401
                             CAR ;
2402
                             CAR ;
2403
                             CAR ;
2404
                             DIG 8 ;
2405
                             NONE nat ;
2406
                             SWAP ;
2407
                             UPDATE ;
2408
                             PAIR ;
2409
                             PAIR ;
2410
                             PAIR ;
2411
                             PAIR ;
2412
                             PAIR ;
2413
                             DUG 2 ;
2414
                             DUP ;
2415
                             CAR ;
2416
                             CDR ;
2417
                             DUP 4 ;
2418
                             CDR ;
2419
                             CAR ;
2420
                             CAR ;
2421
                             CAR ;
2422
                             DUP 3 ;
2423
                             CAR ;
2424
                             CAR ;
2425
                             DIG 4 ;
2426
                             MUL ;
2427
                             MUL ;
2428
                             EDIV ;
2429
                             IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
2430
                             CAR ;
2431
                             DUP 3 ;
2432
                             SWAP ;
2433
                             DIG 3 ;
2434
                             CDR ;
2435
                             CDR ;
2436
                             CDR ;
2437
                             ADD ;
2438
                             DUP 2 ;
2439
                             CDR ;
2440
                             CDR ;
2441
                             CAR ;
2442
                             PAIR ;
2443
                             DUP 2 ;
2444
                             CDR ;
2445
                             CAR ;
2446
                             PAIR ;
2447
                             SWAP ;
2448
                             CAR ;
2449
                             PAIR ;
2450
                             SWAP ;
2451
                             DUP 2 ;
2452
                             CDR ;
2453
                             CAR ;
2454
                             CAR ;
2455
                             CAR ;
2456
                             DUP 2 ;
2457
                             CAR ;
2458
                             CAR ;
2459
                             DIG 2 ;
2460
                             CAR ;
2461
                             CDR ;
2462
                             SUB ;
2463
                             MUL ;
2464
                             DUP 2 ;
2465
                             DUP ;
2466
                             CDR ;
2467
                             DUP 2 ;
2468
                             CAR ;
2469
                             CDR ;
2470
                             DUP 3 ;
2471
                             CAR ;
2472
                             CAR ;
2473
                             CDR ;
2474
                             DUP 4 ;
2475
                             CAR ;
2476
                             CAR ;
2477
                             CAR ;
2478
                             CDR ;
2479
                             DIG 5 ;
2480
                             DIG 6 ;
2481
                             CAR ;
2482
                             CAR ;
2483
                             CAR ;
2484
                             CAR ;
2485
                             CDR ;
2486
                             SUB ;
2487
                             DIG 6 ;
2488
                             SWAP ;
2489
                             EXEC ;
2490
                             DIG 5 ;
2491
                             CAR ;
2492
                             CAR ;
2493
                             CAR ;
2494
                             CAR ;
2495
                             CAR ;
2496
                             PAIR ;
2497
                             PAIR ;
2498
                             PAIR } ;
2499
                         PAIR ;
2500
                         PAIR }
2501
                       { DIG 2 ;
2502
                         DIG 3 ;
2503
                         DIG 4 ;
2504
                         DIG 6 ;
2505
                         DROP 4 ;
2506
                         IF_LEFT
2507
                           { SWAP ;
2508
                             UNIT ;
2509
                             DIG 4 ;
2510
                             SWAP ;
2511
                             EXEC ;
2512
                             DROP ;
2513
                             DUP ;
2514
                             CAR ;
2515
                             CDR ;
2516
                             CAR ;
2517
                             CDR ;
2518
                             CDR ;
2519
                             DIG 3 ;
2520
                             SWAP ;
2521
                             EXEC ;
2522
                             DROP ;
2523
                             DUP ;
2524
                             CDR ;
2525
                             CDR ;
2526
                             DUP 2 ;
2527
                             CDR ;
2528
                             CAR ;
2529
                             CDR ;
2530
                             DIG 3 ;
2531
                             DUP 4 ;
2532
                             CDR ;
2533
                             CAR ;
2534
                             CAR ;
2535
                             CAR ;
2536
                             PAIR ;
2537
                             PAIR ;
2538
                             PAIR ;
2539
                             SWAP ;
2540
                             CAR ;
2541
                             PAIR }
2542
                           { DIG 4 ;
2543
                             DROP ;
2544
                             SWAP ;
2545
                             UNIT ;
2546
                             DIG 4 ;
2547
                             SWAP ;
2548
                             EXEC ;
2549
                             DROP ;
2550
                             DUP ;
2551
                             CAR ;
2552
                             CDR ;
2553
                             CAR ;
2554
                             CDR ;
2555
                             CDR ;
2556
                             DIG 3 ;
2557
                             SWAP ;
2558
                             EXEC ;
2559
                             DROP ;
2560
                             NIL operation ;
2561
                             DIG 2 ;
2562
                             SET_DELEGATE ;
2563
                             CONS ;
2564
                             SWAP } } }
2565
                   { DIG 4 ;
2566
                     DIG 6 ;
2567
                     DIG 8 ;
2568
                     DROP 3 ;
2569
                     IF_LEFT
2570
                       { DIG 2 ;
2571
                         DIG 3 ;
2572
                         DIG 4 ;
2573
                         DROP 3 ;
2574
                         IF_LEFT
2575
                           { SWAP ;
2576
                             UNIT ;
2577
                             DIG 4 ;
2578
                             SWAP ;
2579
                             EXEC ;
2580
                             DROP ;
2581
                             DUP ;
2582
                             CAR ;
2583
                             CDR ;
2584
                             CAR ;
2585
                             CDR ;
2586
                             CDR ;
2587
                             DIG 3 ;
2588
                             SWAP ;
2589
                             EXEC ;
2590
                             DROP ;
2591
                             DUP ;
2592
                             CDR ;
2593
                             DUP 2 ;
2594
                             CAR ;
2595
                             CDR ;
2596
                             DUP 3 ;
2597
                             CAR ;
2598
                             CAR ;
2599
                             CDR ;
2600
                             CDR ;
2601
                             CDR ;
2602
                             DIG 4 ;
2603
                             PAIR ;
2604
                             DUP 4 ;
2605
                             CAR ;
2606
                             CAR ;
2607
                             CDR ;
2608
                             CAR ;
2609
                             PAIR ;
2610
                             DIG 3 ;
2611
                             CAR ;
2612
                             CAR ;
2613
                             CAR ;
2614
                             PAIR }
2615
                           { DROP ;
2616
                             UNIT ;
2617
                             DIG 3 ;
2618
                             SWAP ;
2619
                             EXEC ;
2620
                             DROP ;
2621
                             DUP ;
2622
                             CAR ;
2623
                             CDR ;
2624
                             CAR ;
2625
                             CDR ;
2626
                             CDR ;
2627
                             DIG 2 ;
2628
                             SWAP ;
2629
                             EXEC ;
2630
                             DROP ;
2631
                             DUP ;
2632
                             DUP ;
2633
                             CDR ;
2634
                             DUP 2 ;
2635
                             CAR ;
2636
                             CDR ;
2637
                             CDR ;
2638
                             DUP 3 ;
2639
                             CAR ;
2640
                             CDR ;
2641
                             CAR ;
2642
                             CDR ;
2643
                             DUP 4 ;
2644
                             CAR ;
2645
                             CDR ;
2646
                             CAR ;
2647
                             CAR ;
2648
                             CDR ;
2649
                             DIG 5 ;
2650
                             CAR ;
2651
                             CDR ;
2652
                             CAR ;
2653
                             CAR ;
2654
                             CAR ;
2655
                             NOT ;
2656
                             PAIR ;
2657
                             PAIR ;
2658
                             PAIR ;
2659
                             DIG 2 ;
2660
                             CAR ;
2661
                             CAR } ;
2662
                         PAIR ;
2663
                         PAIR }
2664
                       { IF_LEFT
2665
                           { DIG 2 ;
2666
                             DROP ;
2667
                             SWAP ;
2668
                             UNIT ;
2669
                             DIG 6 ;
2670
                             SWAP ;
2671
                             EXEC ;
2672
                             DROP ;
2673
                             DUP ;
2674
                             CAR ;
2675
                             CDR ;
2676
                             CAR ;
2677
                             CDR ;
2678
                             CDR ;
2679
                             DIG 5 ;
2680
                             SWAP ;
2681
                             EXEC ;
2682
                             DROP ;
2683
                             DUP ;
2684
                             DUP 3 ;
2685
                             PAIR ;
2686
                             DIG 4 ;
2687
                             SWAP ;
2688
                             EXEC ;
2689
                             DUP 2 ;
2690
                             DUP ;
2691
                             CDR ;
2692
                             DUP 2 ;
2693
                             CAR ;
2694
                             CDR ;
2695
                             CDR ;
2696
                             CDR ;
2697
                             DUP 3 ;
2698
                             CAR ;
2699
                             CDR ;
2700
                             CDR ;
2701
                             CAR ;
2702
                             CDR ;
2703
                             DUP 5 ;
2704
                             CAR ;
2705
                             CAR ;
2706
                             CDR ;
2707
                             CDR ;
2708
                             IF
2709
                               { DIG 7 ; DROP ; DUP 5 ; CAR ; CDR ; CDR ; CDR ; DIG 6 ; CAR ; CDR ; CDR ; CAR ; CAR ; ADD }
2710
                               { PUSH string "Wrong state: negative events" ;
2711
                                 DUP 6 ;
2712
                                 CAR ;
2713
                                 CDR ;
2714
                                 CDR ;
2715
                                 CDR ;
2716
                                 DIG 7 ;
2717
                                 CAR ;
2718
                                 CDR ;
2719
                                 CDR ;
2720
                                 CAR ;
2721
                                 CAR ;
2722
                                 SUB ;
2723
                                 PAIR ;
2724
                                 DIG 7 ;
2725
                                 SWAP ;
2726
                                 EXEC } ;
2727
                             PAIR ;
2728
                             PAIR ;
2729
                             DUP 3 ;
2730
                             CAR ;
2731
                             CDR ;
2732
                             CAR ;
2733
                             PAIR ;
2734
                             DIG 2 ;
2735
                             CAR ;
2736
                             CAR ;
2737
                             PAIR ;
2738
                             PAIR ;
2739
                             SWAP ;
2740
                             DUP 2 ;
2741
                             DUP ;
2742
                             CDR ;
2743
                             DUP 2 ;
2744
                             CAR ;
2745
                             CDR ;
2746
                             CDR ;
2747
                             DUP 3 ;
2748
                             CAR ;
2749
                             CDR ;
2750
                             CAR ;
2751
                             CDR ;
2752
                             CDR ;
2753
                             DIG 5 ;
2754
                             CAR ;
2755
                             CDR ;
2756
                             CAR ;
2757
                             CDR ;
2758
                             CAR ;
2759
                             DUP 6 ;
2760
                             CDR ;
2761
                             DUP 7 ;
2762
                             CAR ;
2763
                             CDR ;
2764
                             DUP 8 ;
2765
                             CAR ;
2766
                             CAR ;
2767
                             CDR ;
2768
                             CDR ;
2769
                             NOT ;
2770
                             DUP 9 ;
2771
                             CAR ;
2772
                             CAR ;
2773
                             CDR ;
2774
                             CAR ;
2775
                             PAIR ;
2776
                             DIG 8 ;
2777
                             CAR ;
2778
                             CAR ;
2779
                             CAR ;
2780
                             PAIR ;
2781
                             PAIR ;
2782
                             PAIR ;
2783
                             DIG 6 ;
2784
                             SWAP ;
2785
                             SOME ;
2786
                             SWAP ;
2787
                             UPDATE ;
2788
                             PAIR ;
2789
                             DUP 4 ;
2790
                             CAR ;
2791
                             CDR ;
2792
                             CAR ;
2793
                             CAR ;
2794
                             PAIR ;
2795
                             PAIR ;
2796
                             DIG 2 ;
2797
                             CAR ;
2798
                             CAR ;
2799
                             PAIR ;
2800
                             PAIR }
2801
                           { DIG 3 ; DIG 4 ; DIG 5 ; DROP 3 ; UNIT ; DIG 4 ; SWAP ; EXEC ; DROP ; PAIR ; EXEC } } } ;
2802
                 SWAP } }
2803
           { DIG 2 ;
2804
             DIG 3 ;
2805
             DIG 5 ;
2806
             DIG 6 ;
2807
             DIG 8 ;
2808
             DIG 9 ;
2809
             DIG 10 ;
2810
             DIG 11 ;
2811
             DIG 12 ;
2812
             DIG 13 ;
2813
             DIG 15 ;
2814
             DIG 16 ;
2815
             DIG 18 ;
2816
             DROP 13 ;
2817
             SWAP ;
2818
             UNIT ;
2819
             DIG 6 ;
2820
             SWAP ;
2821
             EXEC ;
2822
             DROP ;
2823
             EMPTY_MAP address nat ;
2824
             DIG 2 ;
2825
             ITER { DUP 3 ;
2826
                    DUP 2 ;
2827
                    CAR ;
2828
                    PAIR ;
2829
                    DUP 6 ;
2830
                    SWAP ;
2831
                    EXEC ;
2832
                    DUP ;
2833
                    CDR ;
2834
                    IF_NONE
2835
                      { PUSH string "Event result is not received yet" ; FAILWITH }
2836
                      {} ;
2837
                    DUP 5 ;
2838
                    DUP 4 ;
2839
                    SWAP ;
2840
                    CAR ;
2841
                    CAR ;
2842
                    CAR ;
2843
                    CDR ;
2844
                    CAR ;
2845
                    SWAP ;
2846
                    GET ;
2847
                    IF_NONE { PUSH string "Claim is not found" ; FAILWITH } {} ;
2848
                    DIG 2 ;
2849
                    CAR ;
2850
                    CDR ;
2851
                    DUP 6 ;
2852
                    CDR ;
2853
                    CAR ;
2854
                    CAR ;
2855
                    CAR ;
2856
                    DIG 2 ;
2857
                    DIG 3 ;
2858
                    MUL ;
2859
                    MUL ;
2860
                    EDIV ;
2861
                    IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
2862
                    CAR ;
2863
                    DUP 3 ;
2864
                    DIG 3 ;
2865
                    DUP 4 ;
2866
                    CDR ;
2867
                    GET ;
2868
                    IF_NONE { SWAP } { DIG 2 ; ADD } ;
2869
                    DUP 3 ;
2870
                    CDR ;
2871
                    SWAP ;
2872
                    SOME ;
2873
                    SWAP ;
2874
                    UPDATE ;
2875
                    SWAP ;
2876
                    DUP 3 ;
2877
                    DUP ;
2878
                    CDR ;
2879
                    DUP 2 ;
2880
                    CAR ;
2881
                    CDR ;
2882
                    DUP 3 ;
2883
                    CAR ;
2884
                    CAR ;
2885
                    CDR ;
2886
                    DUP 4 ;
2887
                    CAR ;
2888
                    CAR ;
2889
                    CAR ;
2890
                    CDR ;
2891
                    CDR ;
2892
                    DIG 7 ;
2893
                    CAR ;
2894
                    CAR ;
2895
                    CAR ;
2896
                    CDR ;
2897
                    CAR ;
2898
                    DIG 6 ;
2899
                    NONE nat ;
2900
                    SWAP ;
2901
                    UPDATE ;
2902
                    PAIR ;
2903
                    DIG 4 ;
2904
                    CAR ;
2905
                    CAR ;
2906
                    CAR ;
2907
                    CAR ;
2908
                    PAIR ;
2909
                    PAIR ;
2910
                    PAIR ;
2911
                    PAIR ;
2912
                    SWAP } ;
2913
             DIG 3 ;
2914
             DROP ;
2915
             NIL operation ;
2916
             SWAP ;
2917
             ITER { UNPAIR ;
2918
                    PUSH mutez 1 ;
2919
                    DUP 5 ;
2920
                    CDR ;
2921
                    CAR ;
2922
                    CAR ;
2923
                    CAR ;
2924
                    DUP 4 ;
2925
                    EDIV ;
2926
                    IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
2927
                    CAR ;
2928
                    MUL ;
2929
                    PUSH mutez 0 ;
2930
                    DUP 2 ;
2931
                    COMPARE ;
2932
                    GT ;
2933
                    IF
2934
                      { DIG 3 ; SWAP ; DIG 2 ; PAIR ; DUP 6 ; SWAP ; EXEC ; CONS ; SWAP }
2935
                      { DROP 2 } ;
2936
                    DUP 3 ;
2937
                    PUSH string "Wrong state: negative withdrawable liquidity" ;
2938
                    DIG 2 ;
2939
                    DIG 4 ;
2940
                    CDR ;
2941
                    CDR ;
2942
                    CDR ;
2943
                    SUB ;
2944
                    PAIR ;
2945
                    DUP 4 ;
2946
                    SWAP ;
2947
                    EXEC ;
2948
                    DUP 2 ;
2949
                    CDR ;
2950
                    CDR ;
2951
                    CAR ;
2952
                    PAIR ;
2953
                    DUP 2 ;
2954
                    CDR ;
2955
                    CAR ;
2956
                    PAIR ;
2957
                    SWAP ;
2958
                    CAR ;
2959
                    PAIR ;
2960
                    SWAP } ;
2961
             DIG 2 ;
2962
             DIG 3 ;
2963
             DROP 2 } ;
2964
         PAIR } ;
2965
  view "getLine" nat
2966
        (option (pair
2967
                 (pair
2968
                   (pair (pair (nat %advanceTime) (nat %betsPeriod))
2969
                         (pair (string %currencyPair) (bool %isPaused)))
2970
                   (pair (pair (address %juster) (timestamp %lastBetsCloseTime))
2971
                         (pair (nat %liquidityPercent) (nat %maxEvents))))
2972
                 (pair
2973
                   (pair (pair (nat %measurePeriod) (nat %minBettingPeriod))
2974
                         (pair (nat %rateAboveEq) (nat %rateBelow)))
2975
                   (nat %targetDynamics))))
2976
        { UNPAIR ; SWAP ; CAR ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET } ;
2977
  view "getEntry" nat
2978
        (option (pair (pair (timestamp %acceptAfter) (nat %amount)) (address %provider)))
2979
        { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; CAR ; CAR ; SWAP ; GET } ;
2980
  view "getNextEntryId" unit nat { CDR ; CAR ; CDR ; CDR ; CDR ; CAR } ;
2981
  view "getShares" address (option nat)
2982
        { UNPAIR ; SWAP ; CDR ; CAR ; CDR ; CAR ; SWAP ; GET } ;
2983
  view "getClaim" (pair (nat %eventId) (address %provider)) (option nat)
2984
        { UNPAIR ; SWAP ; CAR ; CAR ; CAR ; CDR ; CAR ; SWAP ; GET } ;
2985
  view "getEvent" nat
2986
        (option (pair (pair (nat %claimed) (nat %provided)) (option %result nat)))
2987
        { UNPAIR ; SWAP ; CAR ; CAR ; CDR ; CDR ; CDR ; SWAP ; GET } ;
2988
  view "getTotalShares" unit nat { CDR ; CDR ; CDR ; CAR } ;
2989
  view "getActiveEvents" unit (map nat nat) { CDR ; CAR ; CAR ; CAR ; CAR ; CAR } ;
2990
  view "getNextLineId" unit nat { CDR ; CAR ; CDR ; CDR ; CDR ; CDR } ;
2991
  view "getBalance" unit mutez { DROP ; BALANCE } ;
2992
  view "isDepositPaused" unit bool { CDR ; CAR ; CDR ; CAR ; CAR ; CAR } ;
2993
  view "getEntryLockPeriod" unit nat { CDR ; CAR ; CAR ; CDR ; CDR ; CAR } ;
2994
  view "getManager" unit address { CDR ; CAR ; CDR ; CAR ; CDR ; CDR } ;
2995
  view "getNextLiquidity" unit nat
2996
        { LAMBDA
2997
            (pair
2998
              (pair
2999
                (pair
3000
                  (pair (pair (map nat nat) nat)
3001
                        (pair (big_map (pair nat address) nat)
3002
                              (big_map address (pair nat nat))))
3003
                  (pair (pair (big_map nat (pair (pair timestamp nat) address)) nat)
3004
                        (pair nat (big_map nat (pair (pair nat nat) (option nat))))))
3005
                (pair
3006
                  (pair (pair bool bool)
3007
                        (pair
3008
                          (big_map nat
3009
                                   (pair
3010
                                     (pair (pair (pair nat nat) (pair string bool))
3011
                                           (pair (pair address timestamp) (pair nat nat)))
3012
                                     (pair (pair (pair nat nat) (pair nat nat)) nat)))
3013
                          address))
3014
                  (pair (pair nat (big_map string bytes)) (pair nat nat))))
3015
              (pair (pair (pair nat address) (pair (big_map address nat) nat))
3016
                    (pair nat nat)))
3017
            int
3018
            { DUP ;
3019
              CAR ;
3020
              CAR ;
3021
              CDR ;
3022
              CAR ;
3023
              CDR ;
3024
              DUP 2 ;
3025
              CDR ;
3026
              CDR ;
3027
              CDR ;
3028
              DIG 2 ;
3029
              CDR ;
3030
              CAR ;
3031
              CAR ;
3032
              CAR ;
3033
              PUSH mutez 1 ;
3034
              BALANCE ;
3035
              EDIV ;
3036
              IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
3037
              CAR ;
3038
              MUL ;
3039
              SUB ;
3040
              SUB } ;
3041
          SWAP ;
3042
          CDR ;
3043
          DUP ;
3044
          CAR ;
3045
          CDR ;
3046
          CDR ;
3047
          CAR ;
3048
          CAR ;
3049
          DUP 2 ;
3050
          CAR ;
3051
          CAR ;
3052
          CAR ;
3053
          CAR ;
3054
          CDR ;
3055
          DUP 3 ;
3056
          DUP 5 ;
3057
          SWAP ;
3058
          EXEC ;
3059
          ADD ;
3060
          EDIV ;
3061
          IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
3062
          CAR ;
3063
          DUP 2 ;
3064
          DIG 3 ;
3065
          SWAP ;
3066
          EXEC ;
3067
          DIG 2 ;
3068
          CDR ;
3069
          CAR ;
3070
          CAR ;
3071
          CAR ;
3072
          DUP 2 ;
3073
          DUP 4 ;
3074
          COMPARE ;
3075
          GT ;
3076
          IF { DIG 2 ; DROP } { SWAP ; DROP } ;
3077
          SWAP ;
3078
          EDIV ;
3079
          IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
3080
          CAR ;
3081
          ABS } ;
3082
  view "getDurationPoints" address (option (pair (nat %amount) (nat %updateLevel)))
3083
        { UNPAIR ; SWAP ; CAR ; CAR ; CAR ; CDR ; CDR ; SWAP ; GET } ;
3084
  view "getTotalDurationPoints" unit nat { CDR ; CDR ; CAR ; CDR ; CDR } ;
3085
  view "getStateValues" unit
3086
        (pair
3087
          (pair (pair (nat %activeLiquidityF) (nat %entryLiquidityF))
3088
                (pair (nat %maxEvents) (nat %precision)))
3089
          (nat %withdrawableLiquidityF))
3090
        { CDR ;
3091
          DUP ;
3092
          CDR ;
3093
          CDR ;
3094
          CDR ;
3095
          DUP 2 ;
3096
          CDR ;
3097
          CAR ;
3098
          CAR ;
3099
          CAR ;
3100
          DUP 3 ;
3101
          CAR ;
3102
          CDR ;
3103
          CDR ;
3104
          CAR ;
3105
          CAR ;
3106
          PAIR ;
3107
          DUP 3 ;
3108
          CAR ;
3109
          CAR ;
3110
          CDR ;
3111
          CAR ;
3112
          CDR ;
3113
          DIG 3 ;
3114
          CAR ;
3115
          CAR ;
3116
          CAR ;
3117
          CAR ;
3118
          CDR ;
3119
          PAIR ;
3120
          PAIR ;
3121
          PAIR } }