BCD

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