BCD

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