BCD

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