BCD

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