BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Youves v3 Engine Vault (uUSD with USDT)
operations (16.7K)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
644
1265
 
1
{ parameter (or
2
              (or
3
                (or (or (nat %burn) (option %create_vault address))
4
                    (or (nat %deposit)
5
                        (or
6
                          (lambda %execute
7
                            (big_map address
8
                                     (pair (nat %balance)
9
                                           (pair (option %introducer address)
10
                                                 (nat %minted))))
11
                            (pair
12
                              (big_map address
13
                                       (pair (nat %balance)
14
                                             (pair (option %introducer address)
15
                                                   (nat %minted))))
16
                              (list operation)))
17
                          (pair %liquidate (address %vault_owner) (nat %token_amount)))))
18
                (or
19
                  (or (nat %mint)
20
                      (pair %remove_administrator (address %administrator_to_remove)
21
                                                  (nat %token_id)))
22
                  (or
23
                    (pair %set_administrator (address %administrator_to_set)
24
                                             (nat %token_id))
25
                    (or (pair %set_collateral_ratio (nat %numerator) (nat %denominator))
26
                        (pair %set_contracts
27
                          (pair (address %governance_token_contract)
28
                                (pair (address %interest_rate_setter_contract)
29
                                      (address %options_contract)))
30
                          (pair (address %reward_pool_contract)
31
                                (pair (address %savings_pool_contract)
32
                                      (address %target_price_oracle))))))))
33
              (or
34
                (or
35
                  (or (pair %set_introducer_ratio (nat %numerator) (nat %denominator))
36
                      (pair %set_liquidation_payout_ratio (nat %numerator)
37
                                                          (nat %denominator)))
38
                  (or (pair %set_minting_fee_ratio (nat %numerator) (nat %denominator))
39
                      (or (nat %set_reference_interest_rate)
40
                          (pair %set_settlement_payout_ratio (nat %numerator)
41
                                                             (nat %denominator)))))
42
                (or
43
                  (or (pair %set_settlement_ratio (nat %numerator) (nat %denominator))
44
                      (or
45
                        (pair %set_settlement_reward_fee_ratio (nat %numerator)
46
                                                               (nat %denominator))
47
                        (pair %settle_with_vault (address %vault_owner)
48
                                                 (pair (nat %token_amount)
49
                                                       (address %recipient)))))
50
                  (or (list %touch address) (or (unit %update) (nat %withdraw)))))) ;
51
  storage (pair (timestamp %accrual_update_timestamp)
52
                (pair
53
                  (big_map %administrators (pair (address %owner) (nat %token_id)) unit)
54
                  (pair (pair %collateral_ratio (nat %numerator) (nat %denominator))
55
                        (pair (address %collateral_token_contract)
56
                              (pair (nat %collateral_token_id)
57
                                    (pair (nat %compound_interest_rate)
58
                                          (pair (address %governance_token_contract)
59
                                                (pair
60
                                                  (address %interest_rate_setter_contract)
61
                                                  (pair
62
                                                    (pair %introducer_ratio
63
                                                      (nat %numerator)
64
                                                      (nat %denominator))
65
                                                    (pair
66
                                                      (pair %liquidation_payout_ratio
67
                                                        (nat %numerator)
68
                                                        (nat %denominator))
69
                                                      (pair
70
                                                        (pair %minting_fee_ratio
71
                                                          (nat %numerator)
72
                                                          (nat %denominator))
73
                                                        (pair
74
                                                          (address %options_contract)
75
                                                          (pair
76
                                                            (nat %reference_interest_rate)
77
                                                            (pair
78
                                                              (address %reward_pool_contract)
79
                                                              (pair
80
                                                                (address %savings_pool_contract)
81
                                                                (pair
82
                                                                  (pair %settlement_payout_ratio
83
                                                                    (nat %numerator)
84
                                                                    (nat %denominator))
85
                                                                  (pair
86
                                                                    (pair %settlement_ratio
87
                                                                      (nat %numerator)
88
                                                                      (nat %denominator))
89
                                                                    (pair
90
                                                                      (pair %settlement_reward_fee_ratio
91
                                                                        (nat %numerator)
92
                                                                        (nat %denominator))
93
                                                                      (pair
94
                                                                        (nat %spread_rate)
95
                                                                        (pair
96
                                                                          (address %target_price_oracle)
97
                                                                          (pair
98
                                                                            (address %token_contract)
99
                                                                            (pair
100
                                                                              (nat %token_id)
101
                                                                              (pair
102
                                                                                (nat %total_supply)
103
                                                                                (big_map %vault_contexts
104
                                                                                  address
105
                                                                                  (pair
106
                                                                                    (nat %balance)
107
                                                                                    (pair
108
                                                                                      (option %introducer address)
109
                                                                                      (nat %minted))))))))))))))))))))))))))) ;
110
  code { LAMBDA
111
           (pair
112
             (pair address
113
                   (pair nat (pair address (pair (pair nat nat) (pair nat nat)))))
114
             (pair (list operation)
115
                   (pair timestamp
116
                         (pair (big_map (pair address nat) unit)
117
                               (pair (pair nat nat)
118
                                     (pair address
119
                                           (pair nat
120
                                                 (pair nat
121
                                                       (pair address
122
                                                             (pair address
123
                                                                   (pair (pair nat nat)
124
                                                                         (pair
125
                                                                           (pair nat nat)
126
                                                                           (pair
127
                                                                             (pair nat
128
                                                                                   nat)
129
                                                                             (pair
130
                                                                               address
131
                                                                               (pair nat
132
                                                                                     (pair
133
                                                                                       address
134
                                                                                       (pair
135
                                                                                         address
136
                                                                                         (pair
137
                                                                                           (pair
138
                                                                                             nat
139
                                                                                             nat)
140
                                                                                           (pair
141
                                                                                             (pair
142
                                                                                               nat
143
                                                                                               nat)
144
                                                                                             (pair
145
                                                                                               (pair
146
                                                                                                 nat
147
                                                                                                 nat)
148
                                                                                               (pair
149
                                                                                                 nat
150
                                                                                                 (pair
151
                                                                                                   address
152
                                                                                                   (pair
153
                                                                                                     address
154
                                                                                                     (pair
155
                                                                                                       nat
156
                                                                                                       (pair
157
                                                                                                         nat
158
                                                                                                         (big_map
159
                                                                                                           address
160
                                                                                                           (pair
161
                                                                                                             nat
162
                                                                                                             (pair
163
                                                                                                               (option address)
164
                                                                                                               nat))))))))))))))))))))))))))))
165
           (pair unit
166
                 (pair (list operation)
167
                       (pair timestamp
168
                             (pair (big_map (pair address nat) unit)
169
                                   (pair (pair nat nat)
170
                                         (pair address
171
                                               (pair nat
172
                                                     (pair nat
173
                                                           (pair address
174
                                                                 (pair address
175
                                                                       (pair
176
                                                                         (pair nat nat)
177
                                                                         (pair
178
                                                                           (pair nat nat)
179
                                                                           (pair
180
                                                                             (pair nat
181
                                                                                   nat)
182
                                                                             (pair
183
                                                                               address
184
                                                                               (pair nat
185
                                                                                     (pair
186
                                                                                       address
187
                                                                                       (pair
188
                                                                                         address
189
                                                                                         (pair
190
                                                                                           (pair
191
                                                                                             nat
192
                                                                                             nat)
193
                                                                                           (pair
194
                                                                                             (pair
195
                                                                                               nat
196
                                                                                               nat)
197
                                                                                             (pair
198
                                                                                               (pair
199
                                                                                                 nat
200
                                                                                                 nat)
201
                                                                                               (pair
202
                                                                                                 nat
203
                                                                                                 (pair
204
                                                                                                   address
205
                                                                                                   (pair
206
                                                                                                     address
207
                                                                                                     (pair
208
                                                                                                       nat
209
                                                                                                       (pair
210
                                                                                                         nat
211
                                                                                                         (big_map
212
                                                                                                           address
213
                                                                                                           (pair
214
                                                                                                             nat
215
                                                                                                             (pair
216
                                                                                                               (option address)
217
                                                                                                               nat))))))))))))))))))))))))))))
218
           { UNPAIR 3 ;
219
             SWAP ;
220
             DUP 3 ;
221
             GET 46 ;
222
             DUP 3 ;
223
             CAR ;
224
             GET ;
225
             IF_NONE { PUSH int 341 ; FAILWITH } {} ;
226
             DUP ;
227
             CAR ;
228
             DUP 5 ;
229
             GET 11 ;
230
             DUP 3 ;
231
             GET 4 ;
232
             MUL ;
233
             LAMBDA
234
               (pair nat nat)
235
               nat
236
               { UNPAIR ;
237
                 PUSH nat 0 ;
238
                 DUP 3 ;
239
                 DUP 3 ;
240
                 EDIV ;
241
                 IF_NONE { PUSH int 128 ; FAILWITH } { CDR } ;
242
                 COMPARE ;
243
                 EQ ;
244
                 IF
245
                   { EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } { CAR } }
246
                   { PUSH nat 1 ;
247
                     DUG 2 ;
248
                     EDIV ;
249
                     IF_NONE { PUSH int 132 ; FAILWITH } { CAR } ;
250
                     ADD } } ;
251
             DUP ;
252
             PUSH nat 1000000000000 ;
253
             DUP 4 ;
254
             PAIR ;
255
             EXEC ;
256
             PUSH nat 1000000 ;
257
             DUP 9 ;
258
             GET 39 ;
259
             UNIT ;
260
             VIEW "get_price" nat ;
261
             IF_NONE { PUSH int 502 ; FAILWITH } {} ;
262
             DUP 3 ;
263
             MUL ;
264
             MUL ;
265
             PUSH nat 1000000000000 ;
266
             PUSH nat 1 ;
267
             PUSH nat 1000000 ;
268
             DUP ;
269
             DUP 9 ;
270
             MUL ;
271
             MUL ;
272
             MUL ;
273
             MUL ;
274
             EDIV ;
275
             IF_NONE { PUSH int 366 ; FAILWITH } { CAR } ;
276
             DIG 7 ;
277
             DUP ;
278
             GET 7 ;
279
             CDR ;
280
             SWAP ;
281
             DUP ;
282
             DUG 9 ;
283
             GET 7 ;
284
             CAR ;
285
             PUSH nat 1000000 ;
286
             MUL ;
287
             EDIV ;
288
             IF_NONE { PUSH int 375 ; FAILWITH } { CAR } ;
289
             SWAP ;
290
             DUP ;
291
             DUG 2 ;
292
             COMPARE ;
293
             LT ;
294
             IF {} { PUSH int 802 ; FAILWITH } ;
295
             PUSH nat 1000000 ;
296
             DIG 8 ;
297
             DUP ;
298
             GET 10 ;
299
             SWAP ;
300
             DUP ;
301
             DUG 10 ;
302
             GET 9 ;
303
             PUSH nat 1000000 ;
304
             MUL ;
305
             EDIV ;
306
             IF_NONE { PUSH int 370 ; FAILWITH } { CAR } ;
307
             DUP 3 ;
308
             DUP ;
309
             DUP 3 ;
310
             COMPARE ;
311
             LE ;
312
             IF { DROP } { SWAP ; DROP } ;
313
             PUSH nat 1000000000000000000 ;
314
             PUSH nat 1000000 ;
315
             DUP 13 ;
316
             GET 39 ;
317
             UNIT ;
318
             VIEW "get_price" nat ;
319
             IF_NONE { PUSH int 502 ; FAILWITH } {} ;
320
             DUP 13 ;
321
             GET 3 ;
322
             MUL ;
323
             MUL ;
324
             EDIV ;
325
             IF_NONE { PUSH int 388 ; FAILWITH } { CAR } ;
326
             MUL ;
327
             EDIV ;
328
             IF_NONE { PUSH int 392 ; FAILWITH } { CAR } ;
329
             DIG 9 ;
330
             DUP ;
331
             GET 35 ;
332
             CDR ;
333
             SWAP ;
334
             DUP ;
335
             DUG 11 ;
336
             GET 35 ;
337
             CAR ;
338
             PUSH nat 1000000000000000000 ;
339
             PUSH nat 1000000 ;
340
             DUP 14 ;
341
             GET 39 ;
342
             UNIT ;
343
             VIEW "get_price" nat ;
344
             IF_NONE { PUSH int 502 ; FAILWITH } {} ;
345
             DUP 14 ;
346
             GET 3 ;
347
             MUL ;
348
             MUL ;
349
             EDIV ;
350
             IF_NONE { PUSH int 388 ; FAILWITH } { CAR } ;
351
             DUP 4 ;
352
             SUB ;
353
             PUSH int 0 ;
354
             DUP ;
355
             DUP 3 ;
356
             COMPARE ;
357
             LE ;
358
             IF { SWAP ; DROP } { DROP } ;
359
             ISNAT ;
360
             IF_NONE { PUSH int 397 ; FAILWITH } {} ;
361
             MUL ;
362
             EDIV ;
363
             IF_NONE { PUSH int 397 ; FAILWITH } { CAR } ;
364
             DUP 10 ;
365
             GET 3 ;
366
             DUP 5 ;
367
             SUB ;
368
             ISNAT ;
369
             IF_NONE { PUSH int 404 ; FAILWITH } {} ;
370
             PUSH nat 1 ;
371
             DUP 13 ;
372
             GET 39 ;
373
             UNIT ;
374
             VIEW "get_price" nat ;
375
             IF_NONE { PUSH int 502 ; FAILWITH } {} ;
376
             DUP 3 ;
377
             MUL ;
378
             EDIV ;
379
             IF_NONE { PUSH int 408 ; FAILWITH } { CAR } ;
380
             DIG 11 ;
381
             DUP ;
382
             GET 7 ;
383
             CDR ;
384
             SWAP ;
385
             DUP ;
386
             DUG 13 ;
387
             GET 7 ;
388
             CAR ;
389
             PUSH nat 1000000 ;
390
             DIG 3 ;
391
             MUL ;
392
             MUL ;
393
             EDIV ;
394
             IF_NONE { PUSH int 415 ; FAILWITH } { CAR } ;
395
             PUSH nat 1000000000000 ;
396
             PUSH nat 1000000 ;
397
             DUP 6 ;
398
             DUP 12 ;
399
             SUB ;
400
             ISNAT ;
401
             IF_NONE { PUSH int 413 ; FAILWITH } {} ;
402
             MUL ;
403
             MUL ;
404
             COMPARE ;
405
             LT ;
406
             IF {} { PUSH int 803 ; FAILWITH } ;
407
             PUSH nat 1000001 ;
408
             DUP 4 ;
409
             COMPARE ;
410
             GE ;
411
             IF {} { PUSH int 602 ; FAILWITH } ;
412
             DIG 9 ;
413
             DUP 12 ;
414
             GET 41 ;
415
             CONTRACT %burn (pair (address %owner)
416
                                  (pair (nat %token_id) (nat %token_amount))) ;
417
             IF_NONE { PUSH int 125 ; FAILWITH } {} ;
418
             PUSH mutez 0 ;
419
             DUP 13 ;
420
             GET 3 ;
421
             DUP 15 ;
422
             GET 43 ;
423
             SENDER ;
424
             PAIR 3 ;
425
             TRANSFER_TOKENS ;
426
             CONS ;
427
             DUG 9 ;
428
             DUP 12 ;
429
             DUP 12 ;
430
             GET 3 ;
431
             DIG 13 ;
432
             GET 45 ;
433
             SUB ;
434
             ISNAT ;
435
             IF_NONE { PUSH int 432 ; FAILWITH } {} ;
436
             UPDATE 45 ;
437
             DUG 11 ;
438
             DIG 8 ;
439
             DUP 12 ;
440
             GET 11 ;
441
             PUSH nat 1000000000000 ;
442
             DIG 3 ;
443
             MUL ;
444
             EDIV ;
445
             IF_NONE { PUSH int 437 ; FAILWITH } { CAR } ;
446
             UPDATE 4 ;
447
             DUP 3 ;
448
             DUP 9 ;
449
             SUB ;
450
             ISNAT ;
451
             IF_NONE { PUSH int 441 ; FAILWITH } {} ;
452
             UPDATE 1 ;
453
             DUG 7 ;
454
             DIG 10 ;
455
             DUP ;
456
             GET 46 ;
457
             DUP 10 ;
458
             SOME ;
459
             DUP 13 ;
460
             CAR ;
461
             UPDATE ;
462
             UPDATE 46 ;
463
             DUG 10 ;
464
             DUP ;
465
             PUSH nat 0 ;
466
             SWAP ;
467
             DUP 4 ;
468
             SUB ;
469
             ISNAT ;
470
             IF_NONE { PUSH int 473 ; FAILWITH } {} ;
471
             COMPARE ;
472
             GT ;
473
             IF
474
               { DIG 8 ;
475
                 DUP 11 ;
476
                 GET 7 ;
477
                 CONTRACT %transfer (list (pair (address %from_)
478
                                               (list %txs (pair (address %to_)
479
                                                               (pair (nat %token_id)
480
                                                                     (nat %amount)))))) ;
481
                 IF_NONE { PUSH int 36 ; FAILWITH } {} ;
482
                 PUSH mutez 0 ;
483
                 NIL (pair address (list (pair address (pair nat nat)))) ;
484
                 NIL (pair address (pair nat nat)) ;
485
                 DUP 6 ;
486
                 DUP 8 ;
487
                 SUB ;
488
                 ISNAT ;
489
                 IF_NONE { PUSH int 473 ; FAILWITH } {} ;
490
                 DUP 16 ;
491
                 GET 9 ;
492
                 DUP 16 ;
493
                 GET 5 ;
494
                 PAIR 3 ;
495
                 CONS ;
496
                 SELF_ADDRESS ;
497
                 PAIR ;
498
                 CONS ;
499
                 TRANSFER_TOKENS ;
500
                 CONS ;
501
                 DUG 8 }
502
               {} ;
503
             DUP ;
504
             PUSH nat 0 ;
505
             COMPARE ;
506
             LT ;
507
             IF
508
               { SWAP ;
509
                 DROP ;
510
                 SWAP ;
511
                 DROP ;
512
                 SWAP ;
513
                 DROP ;
514
                 SWAP ;
515
                 DROP ;
516
                 SWAP ;
517
                 DROP ;
518
                 SWAP ;
519
                 DROP ;
520
                 SWAP ;
521
                 DROP ;
522
                 DIG 2 ;
523
                 DROP ;
524
                 SWAP ;
525
                 DUP 3 ;
526
                 GET 7 ;
527
                 CONTRACT %transfer (list (pair (address %from_)
528
                                               (list %txs (pair (address %to_)
529
                                                               (pair (nat %token_id)
530
                                                                     (nat %amount)))))) ;
531
                 IF_NONE { PUSH int 36 ; FAILWITH } {} ;
532
                 PUSH mutez 0 ;
533
                 NIL (pair address (list (pair address (pair nat nat)))) ;
534
                 NIL (pair address (pair nat nat)) ;
535
                 DIG 5 ;
536
                 DIG 6 ;
537
                 DUP ;
538
                 GET 9 ;
539
                 SWAP ;
540
                 DUP ;
541
                 DUG 8 ;
542
                 GET 27 ;
543
                 PAIR 3 ;
544
                 CONS ;
545
                 SELF_ADDRESS ;
546
                 PAIR ;
547
                 CONS ;
548
                 TRANSFER_TOKENS ;
549
                 CONS }
550
               { DROP 8 ; SWAP ; DROP } ;
551
             UNIT ;
552
             PAIR 3 } ;
553
         SWAP ;
554
         LAMBDA
555
           (pair unit
556
                 (pair (list operation)
557
                       (pair timestamp
558
                             (pair (big_map (pair address nat) unit)
559
                                   (pair (pair nat nat)
560
                                         (pair address
561
                                               (pair nat
562
                                                     (pair nat
563
                                                           (pair address
564
                                                                 (pair address
565
                                                                       (pair
566
                                                                         (pair nat nat)
567
                                                                         (pair
568
                                                                           (pair nat nat)
569
                                                                           (pair
570
                                                                             (pair nat
571
                                                                                   nat)
572
                                                                             (pair
573
                                                                               address
574
                                                                               (pair nat
575
                                                                                     (pair
576
                                                                                       address
577
                                                                                       (pair
578
                                                                                         address
579
                                                                                         (pair
580
                                                                                           (pair
581
                                                                                             nat
582
                                                                                             nat)
583
                                                                                           (pair
584
                                                                                             (pair
585
                                                                                               nat
586
                                                                                               nat)
587
                                                                                             (pair
588
                                                                                               (pair
589
                                                                                                 nat
590
                                                                                                 nat)
591
                                                                                               (pair
592
                                                                                                 nat
593
                                                                                                 (pair
594
                                                                                                   address
595
                                                                                                   (pair
596
                                                                                                     address
597
                                                                                                     (pair
598
                                                                                                       nat
599
                                                                                                       (pair
600
                                                                                                         nat
601
                                                                                                         (big_map
602
                                                                                                           address
603
                                                                                                           (pair
604
                                                                                                             nat
605
                                                                                                             (pair
606
                                                                                                               (option address)
607
                                                                                                               nat))))))))))))))))))))))))))))
608
           (pair unit
609
                 (pair (list operation)
610
                       (pair timestamp
611
                             (pair (big_map (pair address nat) unit)
612
                                   (pair (pair nat nat)
613
                                         (pair address
614
                                               (pair nat
615
                                                     (pair nat
616
                                                           (pair address
617
                                                                 (pair address
618
                                                                       (pair
619
                                                                         (pair nat nat)
620
                                                                         (pair
621
                                                                           (pair nat nat)
622
                                                                           (pair
623
                                                                             (pair nat
624
                                                                                   nat)
625
                                                                             (pair
626
                                                                               address
627
                                                                               (pair nat
628
                                                                                     (pair
629
                                                                                       address
630
                                                                                       (pair
631
                                                                                         address
632
                                                                                         (pair
633
                                                                                           (pair
634
                                                                                             nat
635
                                                                                             nat)
636
                                                                                           (pair
637
                                                                                             (pair
638
                                                                                               nat
639
                                                                                               nat)
640
                                                                                             (pair
641
                                                                                               (pair
642
                                                                                                 nat
643
                                                                                                 nat)
644
                                                                                               (pair
645
                                                                                                 nat
646
                                                                                                 (pair
647
                                                                                                   address
648
                                                                                                   (pair
649
                                                                                                     address
650
                                                                                                     (pair
651
                                                                                                       nat
652
                                                                                                       (pair
653
                                                                                                         nat
654
                                                                                                         (big_map
655
                                                                                                           address
656
                                                                                                           (pair
657
                                                                                                             nat
658
                                                                                                             (pair
659
                                                                                                               (option address)
660
                                                                                                               nat))))))))))))))))))))))))))))
661
           { UNPAIR 3 ;
662
             SWAP ;
663
             DUP 3 ;
664
             CAR ;
665
             NOW ;
666
             SUB ;
667
             ISNAT ;
668
             IF_NONE { PUSH int 232 ; FAILWITH } {} ;
669
             DUP ;
670
             PUSH nat 0 ;
671
             COMPARE ;
672
             LT ;
673
             IF
674
               { DIG 2 ;
675
                 DROP ;
676
                 PUSH nat 1000000000000 ;
677
                 DUP 4 ;
678
                 GET 45 ;
679
                 DUP 3 ;
680
                 DUP 6 ;
681
                 GET 25 ;
682
                 MUL ;
683
                 MUL ;
684
                 EDIV ;
685
                 IF_NONE { PUSH int 237 ; FAILWITH } { CAR } ;
686
                 PUSH nat 1000000000000 ;
687
                 DUP 5 ;
688
                 GET 45 ;
689
                 DUP 4 ;
690
                 DUP 7 ;
691
                 GET 37 ;
692
                 MUL ;
693
                 MUL ;
694
                 EDIV ;
695
                 IF_NONE { PUSH int 246 ; FAILWITH } { CAR } ;
696
                 DUP 5 ;
697
                 PUSH nat 1000000000000 ;
698
                 DIG 4 ;
699
                 DIG 6 ;
700
                 DUP ;
701
                 GET 37 ;
702
                 SWAP ;
703
                 DUP ;
704
                 DUG 8 ;
705
                 GET 25 ;
706
                 ADD ;
707
                 MUL ;
708
                 PUSH nat 1000000000000 ;
709
                 ADD ;
710
                 DIG 6 ;
711
                 GET 11 ;
712
                 MUL ;
713
                 EDIV ;
714
                 IF_NONE { PUSH int 261 ; FAILWITH } { CAR } ;
715
                 UPDATE 11 ;
716
                 DUG 3 ;
717
                 DIG 2 ;
718
                 DUP 4 ;
719
                 GET 41 ;
720
                 CONTRACT %mint (pair (address %owner)
721
                                      (pair (nat %token_id) (nat %token_amount))) ;
722
                 IF_NONE { PUSH int 125 ; FAILWITH } {} ;
723
                 PUSH mutez 0 ;
724
                 DUP 5 ;
725
                 DIG 6 ;
726
                 DUP ;
727
                 GET 43 ;
728
                 SWAP ;
729
                 DUP ;
730
                 DUG 8 ;
731
                 GET 29 ;
732
                 PAIR 3 ;
733
                 TRANSFER_TOKENS ;
734
                 CONS ;
735
                 DUP 4 ;
736
                 GET 41 ;
737
                 CONTRACT %mint (pair (address %owner)
738
                                      (pair (nat %token_id) (nat %token_amount))) ;
739
                 IF_NONE { PUSH int 125 ; FAILWITH } {} ;
740
                 PUSH mutez 0 ;
741
                 DUP 4 ;
742
                 DIG 6 ;
743
                 DUP ;
744
                 GET 43 ;
745
                 SWAP ;
746
                 DUP ;
747
                 DUG 8 ;
748
                 GET 27 ;
749
                 PAIR 3 ;
750
                 TRANSFER_TOKENS ;
751
                 CONS ;
752
                 DUG 2 ;
753
                 DIG 3 ;
754
                 DUP ;
755
                 GET 45 ;
756
                 DIG 2 ;
757
                 DIG 3 ;
758
                 ADD ;
759
                 ADD ;
760
                 UPDATE 45 ;
761
                 NOW ;
762
                 UPDATE 1 ;
763
                 SWAP }
764
               { DROP ; SWAP ; DROP } ;
765
             UNIT ;
766
             PAIR 3 } ;
767
         SWAP ;
768
         LAMBDA
769
           (pair (pair address nat)
770
                 (pair (list operation)
771
                       (pair timestamp
772
                             (pair (big_map (pair address nat) unit)
773
                                   (pair (pair nat nat)
774
                                         (pair address
775
                                               (pair nat
776
                                                     (pair nat
777
                                                           (pair address
778
                                                                 (pair address
779
                                                                       (pair
780
                                                                         (pair nat nat)
781
                                                                         (pair
782
                                                                           (pair nat nat)
783
                                                                           (pair
784
                                                                             (pair nat
785
                                                                                   nat)
786
                                                                             (pair
787
                                                                               address
788
                                                                               (pair nat
789
                                                                                     (pair
790
                                                                                       address
791
                                                                                       (pair
792
                                                                                         address
793
                                                                                         (pair
794
                                                                                           (pair
795
                                                                                             nat
796
                                                                                             nat)
797
                                                                                           (pair
798
                                                                                             (pair
799
                                                                                               nat
800
                                                                                               nat)
801
                                                                                             (pair
802
                                                                                               (pair
803
                                                                                                 nat
804
                                                                                                 nat)
805
                                                                                               (pair
806
                                                                                                 nat
807
                                                                                                 (pair
808
                                                                                                   address
809
                                                                                                   (pair
810
                                                                                                     address
811
                                                                                                     (pair
812
                                                                                                       nat
813
                                                                                                       (pair
814
                                                                                                         nat
815
                                                                                                         (big_map
816
                                                                                                           address
817
                                                                                                           (pair
818
                                                                                                             nat
819
                                                                                                             (pair
820
                                                                                                               (option address)
821
                                                                                                               nat))))))))))))))))))))))))))))
822
           (pair unit
823
                 (pair (list operation)
824
                       (pair timestamp
825
                             (pair (big_map (pair address nat) unit)
826
                                   (pair (pair nat nat)
827
                                         (pair address
828
                                               (pair nat
829
                                                     (pair nat
830
                                                           (pair address
831
                                                                 (pair address
832
                                                                       (pair
833
                                                                         (pair nat nat)
834
                                                                         (pair
835
                                                                           (pair nat nat)
836
                                                                           (pair
837
                                                                             (pair nat
838
                                                                                   nat)
839
                                                                             (pair
840
                                                                               address
841
                                                                               (pair nat
842
                                                                                     (pair
843
                                                                                       address
844
                                                                                       (pair
845
                                                                                         address
846
                                                                                         (pair
847
                                                                                           (pair
848
                                                                                             nat
849
                                                                                             nat)
850
                                                                                           (pair
851
                                                                                             (pair
852
                                                                                               nat
853
                                                                                               nat)
854
                                                                                             (pair
855
                                                                                               (pair
856
                                                                                                 nat
857
                                                                                                 nat)
858
                                                                                               (pair
859
                                                                                                 nat
860
                                                                                                 (pair
861
                                                                                                   address
862
                                                                                                   (pair
863
                                                                                                     address
864
                                                                                                     (pair
865
                                                                                                       nat
866
                                                                                                       (pair
867
                                                                                                         nat
868
                                                                                                         (big_map
869
                                                                                                           address
870
                                                                                                           (pair
871
                                                                                                             nat
872
                                                                                                             (pair
873
                                                                                                               (option address)
874
                                                                                                               nat))))))))))))))))))))))))))))
875
           { UNPAIR 3 ;
876
             SWAP ;
877
             DUP 3 ;
878
             GET 13 ;
879
             CONTRACT %update_stake (pair (address %address) (nat %amount)) ;
880
             IF_NONE { PUSH int 293 ; FAILWITH } {} ;
881
             PUSH mutez 0 ;
882
             DIG 3 ;
883
             TRANSFER_TOKENS ;
884
             CONS ;
885
             UNIT ;
886
             PAIR 3 } ;
887
         SWAP ;
888
         LAMBDA
889
           (pair nat
890
                 (pair (list operation)
891
                       (pair timestamp
892
                             (pair (big_map (pair address nat) unit)
893
                                   (pair (pair nat nat)
894
                                         (pair address
895
                                               (pair nat
896
                                                     (pair nat
897
                                                           (pair address
898
                                                                 (pair address
899
                                                                       (pair
900
                                                                         (pair nat nat)
901
                                                                         (pair
902
                                                                           (pair nat nat)
903
                                                                           (pair
904
                                                                             (pair nat
905
                                                                                   nat)
906
                                                                             (pair
907
                                                                               address
908
                                                                               (pair nat
909
                                                                                     (pair
910
                                                                                       address
911
                                                                                       (pair
912
                                                                                         address
913
                                                                                         (pair
914
                                                                                           (pair
915
                                                                                             nat
916
                                                                                             nat)
917
                                                                                           (pair
918
                                                                                             (pair
919
                                                                                               nat
920
                                                                                               nat)
921
                                                                                             (pair
922
                                                                                               (pair
923
                                                                                                 nat
924
                                                                                                 nat)
925
                                                                                               (pair
926
                                                                                                 nat
927
                                                                                                 (pair
928
                                                                                                   address
929
                                                                                                   (pair
930
                                                                                                     address
931
                                                                                                     (pair
932
                                                                                                       nat
933
                                                                                                       (pair
934
                                                                                                         nat
935
                                                                                                         (big_map
936
                                                                                                           address
937
                                                                                                           (pair
938
                                                                                                             nat
939
                                                                                                             (pair
940
                                                                                                               (option address)
941
                                                                                                               nat))))))))))))))))))))))))))))
942
           (pair unit
943
                 (pair (list operation)
944
                       (pair timestamp
945
                             (pair (big_map (pair address nat) unit)
946
                                   (pair (pair nat nat)
947
                                         (pair address
948
                                               (pair nat
949
                                                     (pair nat
950
                                                           (pair address
951
                                                                 (pair address
952
                                                                       (pair
953
                                                                         (pair nat nat)
954
                                                                         (pair
955
                                                                           (pair nat nat)
956
                                                                           (pair
957
                                                                             (pair nat
958
                                                                                   nat)
959
                                                                             (pair
960
                                                                               address
961
                                                                               (pair nat
962
                                                                                     (pair
963
                                                                                       address
964
                                                                                       (pair
965
                                                                                         address
966
                                                                                         (pair
967
                                                                                           (pair
968
                                                                                             nat
969
                                                                                             nat)
970
                                                                                           (pair
971
                                                                                             (pair
972
                                                                                               nat
973
                                                                                               nat)
974
                                                                                             (pair
975
                                                                                               (pair
976
                                                                                                 nat
977
                                                                                                 nat)
978
                                                                                               (pair
979
                                                                                                 nat
980
                                                                                                 (pair
981
                                                                                                   address
982
                                                                                                   (pair
983
                                                                                                     address
984
                                                                                                     (pair
985
                                                                                                       nat
986
                                                                                                       (pair
987
                                                                                                         nat
988
                                                                                                         (big_map
989
                                                                                                           address
990
                                                                                                           (pair
991
                                                                                                             nat
992
                                                                                                             (pair
993
                                                                                                               (option address)
994
                                                                                                               nat))))))))))))))))))))))))))))
995
           { UNPAIR 3 ;
996
             SWAP ;
997
             DUP 3 ;
998
             GET 3 ;
999
             DIG 2 ;
1000
             SENDER ;
1001
             PAIR ;
1002
             MEM ;
1003
             IF {} { PUSH int 401 ; FAILWITH } ;
1004
             UNIT ;
1005
             PAIR 3 } ;
1006
         SWAP ;
1007
         UNPAIR ;
1008
         IF_LEFT
1009
           { IF_LEFT
1010
               { IF_LEFT
1011
                   { IF_LEFT
1012
                       { AMOUNT ;
1013
                         PUSH mutez 0 ;
1014
                         COMPARE ;
1015
                         EQ ;
1016
                         IF {} { AMOUNT ; FAILWITH } ;
1017
                         NIL operation ;
1018
                         DUP 6 ;
1019
                         UNIT ;
1020
                         SWAP ;
1021
                         DIG 4 ;
1022
                         DIG 3 ;
1023
                         DIG 3 ;
1024
                         PAIR 3 ;
1025
                         EXEC ;
1026
                         UNPAIR 3 ;
1027
                         DIG 7 ;
1028
                         DIG 7 ;
1029
                         DIG 7 ;
1030
                         DIG 7 ;
1031
                         DIG 6 ;
1032
                         DIG 7 ;
1033
                         DIG 7 ;
1034
                         DIG 7 ;
1035
                         PUSH nat 1000001 ;
1036
                         DUP 4 ;
1037
                         COMPARE ;
1038
                         GE ;
1039
                         IF {} { PUSH int 602 ; FAILWITH } ;
1040
                         DUP 4 ;
1041
                         GET 46 ;
1042
                         SENDER ;
1043
                         GET ;
1044
                         IF_NONE { PUSH int 629 ; FAILWITH } {} ;
1045
                         DUP 5 ;
1046
                         GET 11 ;
1047
                         SWAP ;
1048
                         DUP ;
1049
                         DUG 2 ;
1050
                         GET 4 ;
1051
                         MUL ;
1052
                         LAMBDA
1053
                           (pair nat nat)
1054
                           nat
1055
                           { UNPAIR ;
1056
                             PUSH nat 0 ;
1057
                             DUP 3 ;
1058
                             DUP 3 ;
1059
                             EDIV ;
1060
                             IF_NONE { PUSH int 128 ; FAILWITH } { CDR } ;
1061
                             COMPARE ;
1062
                             EQ ;
1063
                             IF
1064
                               { EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } { CAR } }
1065
                               { PUSH nat 1 ;
1066
                                 DUG 2 ;
1067
                                 EDIV ;
1068
                                 IF_NONE { PUSH int 132 ; FAILWITH } { CAR } ;
1069
                                 ADD } } ;
1070
                         DUP ;
1071
                         PUSH nat 1000000000000 ;
1072
                         DIG 3 ;
1073
                         PAIR ;
1074
                         EXEC ;
1075
                         PUSH nat 1000000000000 ;
1076
                         DUP 7 ;
1077
                         DIG 2 ;
1078
                         SUB ;
1079
                         ISNAT ;
1080
                         IF_NONE { PUSH int 641 ; FAILWITH } {} ;
1081
                         MUL ;
1082
                         DUG 2 ;
1083
                         DUP 7 ;
1084
                         GET 11 ;
1085
                         DIG 3 ;
1086
                         PAIR ;
1087
                         EXEC ;
1088
                         UPDATE 4 ;
1089
                         DIG 4 ;
1090
                         DUP ;
1091
                         GET 46 ;
1092
                         DUP 3 ;
1093
                         SOME ;
1094
                         SENDER ;
1095
                         UPDATE ;
1096
                         UPDATE 46 ;
1097
                         DUG 4 ;
1098
                         DIG 2 ;
1099
                         DUP 5 ;
1100
                         GET 41 ;
1101
                         CONTRACT %burn (pair (address %owner)
1102
                                              (pair (nat %token_id) (nat %token_amount))) ;
1103
                         IF_NONE { PUSH int 125 ; FAILWITH } {} ;
1104
                         PUSH mutez 0 ;
1105
                         DUP 6 ;
1106
                         DUP 8 ;
1107
                         GET 43 ;
1108
                         SENDER ;
1109
                         PAIR 3 ;
1110
                         TRANSFER_TOKENS ;
1111
                         CONS ;
1112
                         DUG 2 ;
1113
                         DUP 5 ;
1114
                         DUP 5 ;
1115
                         DIG 6 ;
1116
                         GET 45 ;
1117
                         SUB ;
1118
                         ISNAT ;
1119
                         IF_NONE { PUSH int 650 ; FAILWITH } {} ;
1120
                         UPDATE 45 ;
1121
                         DUG 4 ;
1122
                         DUP 7 ;
1123
                         SWAP ;
1124
                         DUP ;
1125
                         DUG 2 ;
1126
                         GET 4 ;
1127
                         SENDER ;
1128
                         PAIR ;
1129
                         SWAP ;
1130
                         DIG 6 ;
1131
                         DIG 5 ;
1132
                         DIG 3 ;
1133
                         PAIR 3 ;
1134
                         EXEC ;
1135
                         CDR ;
1136
                         UNPAIR ;
1137
                         DIG 8 ;
1138
                         DIG 8 ;
1139
                         DIG 8 ;
1140
                         DIG 8 ;
1141
                         DIG 5 ;
1142
                         DIG 8 ;
1143
                         DIG 6 ;
1144
                         DIG 8 ;
1145
                         DIG 8 ;
1146
                         DUP ;
1147
                         GET 3 ;
1148
                         IF_NONE
1149
                           { DROP 2 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP }
1150
                           { DROP ;
1151
                             SWAP ;
1152
                             DROP ;
1153
                             DIG 2 ;
1154
                             DROP ;
1155
                             DIG 3 ;
1156
                             DROP ;
1157
                             DIG 4 ;
1158
                             DROP ;
1159
                             DIG 4 ;
1160
                             DROP ;
1161
                             DIG 3 ;
1162
                             DIG 3 ;
1163
                             DUP ;
1164
                             GET 17 ;
1165
                             CDR ;
1166
                             SWAP ;
1167
                             DUP ;
1168
                             DUG 5 ;
1169
                             GET 17 ;
1170
                             CAR ;
1171
                             DUP 4 ;
1172
                             GET 4 ;
1173
                             MUL ;
1174
                             EDIV ;
1175
                             IF_NONE { PUSH int 659 ; FAILWITH } { CAR } ;
1176
                             DIG 2 ;
1177
                             GET 3 ;
1178
                             IF_NONE { PUSH int 604 ; FAILWITH } {} ;
1179
                             PAIR ;
1180
                             SWAP ;
1181
                             DUG 3 ;
1182
                             PAIR 3 ;
1183
                             EXEC ;
1184
                             CDR ;
1185
                             UNPAIR } }
1186
                       { DIG 2 ;
1187
                         DROP ;
1188
                         DIG 2 ;
1189
                         DROP ;
1190
                         DIG 2 ;
1191
                         DROP ;
1192
                         DIG 2 ;
1193
                         DROP ;
1194
                         AMOUNT ;
1195
                         PUSH mutez 0 ;
1196
                         COMPARE ;
1197
                         EQ ;
1198
                         IF {} { AMOUNT ; FAILWITH } ;
1199
                         SWAP ;
1200
                         DUP ;
1201
                         DUG 2 ;
1202
                         GET 46 ;
1203
                         SENDER ;
1204
                         MEM ;
1205
                         IF
1206
                           { DROP }
1207
                           { SWAP ;
1208
                             DUP ;
1209
                             GET 46 ;
1210
                             PUSH nat 0 ;
1211
                             DIG 3 ;
1212
                             PUSH nat 0 ;
1213
                             PAIR 3 ;
1214
                             SOME ;
1215
                             SENDER ;
1216
                             UPDATE ;
1217
                             UPDATE 46 } ;
1218
                         NIL operation } }
1219
                   { IF_LEFT
1220
                       { DIG 2 ;
1221
                         DROP ;
1222
                         DIG 2 ;
1223
                         DROP ;
1224
                         DIG 2 ;
1225
                         DROP ;
1226
                         DIG 2 ;
1227
                         DROP ;
1228
                         AMOUNT ;
1229
                         PUSH mutez 0 ;
1230
                         COMPARE ;
1231
                         EQ ;
1232
                         IF {} { AMOUNT ; FAILWITH } ;
1233
                         DUP ;
1234
                         PUSH nat 0 ;
1235
                         COMPARE ;
1236
                         LT ;
1237
                         IF
1238
                           { NIL operation ;
1239
                             DUP 3 ;
1240
                             GET 7 ;
1241
                             CONTRACT %transfer (list (pair (address %from_)
1242
                                                           (list %txs (pair
1243
                                                                       (address %to_)
1244
                                                                       (pair
1245
                                                                         (nat %token_id)
1246
                                                                         (nat %amount)))))) ;
1247
                             IF_NONE { PUSH int 36 ; FAILWITH } {} ;
1248
                             PUSH mutez 0 ;
1249
                             NIL (pair address (list (pair address (pair nat nat)))) ;
1250
                             NIL (pair address (pair nat nat)) ;
1251
                             DUP 6 ;
1252
                             DUP 8 ;
1253
                             GET 9 ;
1254
                             SELF_ADDRESS ;
1255
                             PAIR 3 ;
1256
                             CONS ;
1257
                             SENDER ;
1258
                             PAIR ;
1259
                             CONS ;
1260
                             TRANSFER_TOKENS ;
1261
                             CONS }
1262
                           { NIL operation } ;
1263
                         DIG 2 ;
1264
                         DUP ;
1265
                         GET 46 ;
1266
                         DUP ;
1267
                         SENDER ;
1268
                         DUP ;
1269
                         DUG 2 ;
1270
                         GET ;
1271
                         IF_NONE { PUSH int 144 ; FAILWITH } {} ;
1272
                         DUP ;
1273
                         CAR ;
1274
                         DIG 6 ;
1275
                         ADD ;
1276
                         UPDATE 1 ;
1277
                         SOME ;
1278
                         SWAP ;
1279
                         UPDATE ;
1280
                         UPDATE 46 ;
1281
                         SWAP }
1282
                       { IF_LEFT
1283
                           { AMOUNT ;
1284
                             PUSH mutez 0 ;
1285
                             COMPARE ;
1286
                             EQ ;
1287
                             IF {} { AMOUNT ; FAILWITH } ;
1288
                             NIL operation ;
1289
                             DUP 4 ;
1290
                             PUSH nat 0 ;
1291
                             SWAP ;
1292
                             DIG 4 ;
1293
                             DIG 3 ;
1294
                             DIG 3 ;
1295
                             PAIR 3 ;
1296
                             EXEC ;
1297
                             UNPAIR 3 ;
1298
                             DIG 7 ;
1299
                             DIG 7 ;
1300
                             DIG 7 ;
1301
                             DIG 7 ;
1302
                             DIG 6 ;
1303
                             DIG 7 ;
1304
                             DIG 7 ;
1305
                             DIG 7 ;
1306
                             DUP 3 ;
1307
                             DUP 5 ;
1308
                             GET 46 ;
1309
                             EXEC ;
1310
                             DIG 4 ;
1311
                             SWAP ;
1312
                             DUP ;
1313
                             DUG 2 ;
1314
                             CAR ;
1315
                             UPDATE 46 ;
1316
                             DUG 4 ;
1317
                             DUP ;
1318
                             CDR ;
1319
                             NIL operation ;
1320
                             SWAP ;
1321
                             ITER { CONS } ;
1322
                             ITER { DIG 3 ; SWAP ; CONS ; DUG 2 } ;
1323
                             DROP 2 ;
1324
                             SWAP ;
1325
                             DROP ;
1326
                             DIG 2 ;
1327
                             DROP ;
1328
                             DIG 2 ;
1329
                             DROP ;
1330
                             DIG 2 ;
1331
                             DROP ;
1332
                             DIG 2 ;
1333
                             DROP }
1334
                           { AMOUNT ;
1335
                             PUSH mutez 0 ;
1336
                             COMPARE ;
1337
                             EQ ;
1338
                             IF {} { AMOUNT ; FAILWITH } ;
1339
                             NIL operation ;
1340
                             DUP 6 ;
1341
                             UNIT ;
1342
                             SWAP ;
1343
                             DIG 4 ;
1344
                             DIG 3 ;
1345
                             DIG 3 ;
1346
                             PAIR 3 ;
1347
                             EXEC ;
1348
                             UNPAIR 3 ;
1349
                             DIG 7 ;
1350
                             DIG 7 ;
1351
                             DIG 7 ;
1352
                             DIG 7 ;
1353
                             DIG 6 ;
1354
                             DIG 7 ;
1355
                             DIG 7 ;
1356
                             DIG 7 ;
1357
                             DUP 8 ;
1358
                             DIG 4 ;
1359
                             DUP ;
1360
                             GET 19 ;
1361
                             SWAP ;
1362
                             DUP ;
1363
                             DUG 6 ;
1364
                             GET 5 ;
1365
                             SENDER ;
1366
                             DIG 6 ;
1367
                             DUP ;
1368
                             CDR ;
1369
                             SWAP ;
1370
                             DUP ;
1371
                             DUG 8 ;
1372
                             CAR ;
1373
                             PAIR 5 ;
1374
                             SWAP ;
1375
                             DIG 5 ;
1376
                             DIG 4 ;
1377
                             DIG 3 ;
1378
                             PAIR 3 ;
1379
                             EXEC ;
1380
                             UNPAIR 3 ;
1381
                             DIG 8 ;
1382
                             DIG 8 ;
1383
                             DIG 8 ;
1384
                             DIG 8 ;
1385
                             DIG 6 ;
1386
                             DIG 8 ;
1387
                             DIG 7 ;
1388
                             DIG 8 ;
1389
                             DIG 8 ;
1390
                             DUP 5 ;
1391
                             GET 46 ;
1392
                             DUP 5 ;
1393
                             CAR ;
1394
                             GET ;
1395
                             IF_NONE { PUSH int 692 ; FAILWITH } {} ;
1396
                             DUP 8 ;
1397
                             SWAP ;
1398
                             DUP ;
1399
                             DUG 2 ;
1400
                             GET 4 ;
1401
                             DUP 7 ;
1402
                             CAR ;
1403
                             PAIR ;
1404
                             SWAP ;
1405
                             DIG 7 ;
1406
                             DIG 6 ;
1407
                             DIG 3 ;
1408
                             PAIR 3 ;
1409
                             EXEC ;
1410
                             CDR ;
1411
                             UNPAIR ;
1412
                             DIG 9 ;
1413
                             DIG 9 ;
1414
                             DIG 9 ;
1415
                             DIG 9 ;
1416
                             DIG 5 ;
1417
                             DIG 9 ;
1418
                             DIG 6 ;
1419
                             DIG 9 ;
1420
                             DIG 9 ;
1421
                             DIG 9 ;
1422
                             DUP ;
1423
                             GET 3 ;
1424
                             IF_NONE
1425
                               { DROP 3 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP }
1426
                               { DROP ;
1427
                                 SWAP ;
1428
                                 DROP ;
1429
                                 SWAP ;
1430
                                 DROP ;
1431
                                 DIG 2 ;
1432
                                 DROP ;
1433
                                 DIG 3 ;
1434
                                 DROP ;
1435
                                 DIG 4 ;
1436
                                 DROP ;
1437
                                 DIG 4 ;
1438
                                 DROP ;
1439
                                 DIG 3 ;
1440
                                 DIG 3 ;
1441
                                 DUP ;
1442
                                 GET 17 ;
1443
                                 CDR ;
1444
                                 SWAP ;
1445
                                 DUP ;
1446
                                 DUG 5 ;
1447
                                 GET 17 ;
1448
                                 CAR ;
1449
                                 DUP 4 ;
1450
                                 GET 4 ;
1451
                                 MUL ;
1452
                                 EDIV ;
1453
                                 IF_NONE { PUSH int 703 ; FAILWITH } { CAR } ;
1454
                                 DIG 2 ;
1455
                                 GET 3 ;
1456
                                 IF_NONE { PUSH int 604 ; FAILWITH } {} ;
1457
                                 PAIR ;
1458
                                 SWAP ;
1459
                                 DUG 3 ;
1460
                                 PAIR 3 ;
1461
                                 EXEC ;
1462
                                 CDR ;
1463
                                 UNPAIR } } } } }
1464
               { IF_LEFT
1465
                   { IF_LEFT
1466
                       { AMOUNT ;
1467
                         PUSH mutez 0 ;
1468
                         COMPARE ;
1469
                         EQ ;
1470
                         IF {} { AMOUNT ; FAILWITH } ;
1471
                         NIL operation ;
1472
                         DUP 6 ;
1473
                         UNIT ;
1474
                         SWAP ;
1475
                         DIG 4 ;
1476
                         DIG 3 ;
1477
                         DIG 3 ;
1478
                         PAIR 3 ;
1479
                         EXEC ;
1480
                         UNPAIR 3 ;
1481
                         DIG 7 ;
1482
                         DIG 7 ;
1483
                         DIG 7 ;
1484
                         DIG 7 ;
1485
                         DIG 6 ;
1486
                         DIG 7 ;
1487
                         DIG 7 ;
1488
                         DIG 7 ;
1489
                         PUSH nat 1000001 ;
1490
                         DUP 4 ;
1491
                         COMPARE ;
1492
                         GE ;
1493
                         IF {} { PUSH int 602 ; FAILWITH } ;
1494
                         DUP 4 ;
1495
                         GET 46 ;
1496
                         SENDER ;
1497
                         GET ;
1498
                         IF_NONE { PUSH int 534 ; FAILWITH } {} ;
1499
                         DUP 5 ;
1500
                         GET 11 ;
1501
                         SWAP ;
1502
                         DUP ;
1503
                         DUG 2 ;
1504
                         GET 4 ;
1505
                         MUL ;
1506
                         LAMBDA
1507
                           (pair nat nat)
1508
                           nat
1509
                           { UNPAIR ;
1510
                             PUSH nat 0 ;
1511
                             DUP 3 ;
1512
                             DUP 3 ;
1513
                             EDIV ;
1514
                             IF_NONE { PUSH int 128 ; FAILWITH } { CDR } ;
1515
                             COMPARE ;
1516
                             EQ ;
1517
                             IF
1518
                               { EDIV ; IF_NONE { PUSH int 130 ; FAILWITH } { CAR } }
1519
                               { PUSH nat 1 ;
1520
                                 DUG 2 ;
1521
                                 EDIV ;
1522
                                 IF_NONE { PUSH int 132 ; FAILWITH } { CAR } ;
1523
                                 ADD } } ;
1524
                         PUSH nat 1000000000000 ;
1525
                         DIG 2 ;
1526
                         PAIR ;
1527
                         EXEC ;
1528
                         PUSH nat 1 ;
1529
                         DUP 7 ;
1530
                         GET 39 ;
1531
                         UNIT ;
1532
                         VIEW "get_price" nat ;
1533
                         IF_NONE { PUSH int 502 ; FAILWITH } {} ;
1534
                         DUP 7 ;
1535
                         DIG 3 ;
1536
                         ADD ;
1537
                         MUL ;
1538
                         EDIV ;
1539
                         IF_NONE { PUSH int 551 ; FAILWITH } { CAR } ;
1540
                         PUSH nat 1000000 ;
1541
                         DIG 6 ;
1542
                         DUP ;
1543
                         GET 5 ;
1544
                         CDR ;
1545
                         SWAP ;
1546
                         DUP ;
1547
                         DUG 8 ;
1548
                         GET 5 ;
1549
                         CAR ;
1550
                         DIG 3 ;
1551
                         MUL ;
1552
                         EDIV ;
1553
                         IF_NONE { PUSH int 556 ; FAILWITH } { CAR } ;
1554
                         MUL ;
1555
                         PUSH nat 1000000000000 ;
1556
                         PUSH nat 1000000 ;
1557
                         DUP 4 ;
1558
                         CAR ;
1559
                         MUL ;
1560
                         MUL ;
1561
                         COMPARE ;
1562
                         GE ;
1563
                         IF {} { PUSH int 801 ; FAILWITH } ;
1564
                         DUP ;
1565
                         GET 4 ;
1566
                         DUP 6 ;
1567
                         GET 11 ;
1568
                         PUSH nat 1000000000000 ;
1569
                         DUP 7 ;
1570
                         MUL ;
1571
                         EDIV ;
1572
                         IF_NONE { PUSH int 573 ; FAILWITH } { CAR } ;
1573
                         ADD ;
1574
                         UPDATE 4 ;
1575
                         DIG 4 ;
1576
                         DUP ;
1577
                         GET 46 ;
1578
                         DUP 3 ;
1579
                         SOME ;
1580
                         SENDER ;
1581
                         UPDATE ;
1582
                         UPDATE 46 ;
1583
                         DUG 4 ;
1584
                         DIG 2 ;
1585
                         DUP 5 ;
1586
                         GET 41 ;
1587
                         CONTRACT %mint (pair (address %owner)
1588
                                              (pair (nat %token_id) (nat %token_amount))) ;
1589
                         IF_NONE { PUSH int 125 ; FAILWITH } {} ;
1590
                         PUSH mutez 0 ;
1591
                         DIG 6 ;
1592
                         DUP ;
1593
                         GET 21 ;
1594
                         CDR ;
1595
                         SWAP ;
1596
                         DUP ;
1597
                         DUG 8 ;
1598
                         GET 21 ;
1599
                         CAR ;
1600
                         DUP 8 ;
1601
                         MUL ;
1602
                         EDIV ;
1603
                         IF_NONE { PUSH int 567 ; FAILWITH } { CAR } ;
1604
                         DUP 7 ;
1605
                         SUB ;
1606
                         ISNAT ;
1607
                         IF_NONE { PUSH int 571 ; FAILWITH } {} ;
1608
                         DUP 8 ;
1609
                         GET 43 ;
1610
                         SENDER ;
1611
                         PAIR 3 ;
1612
                         TRANSFER_TOKENS ;
1613
                         CONS ;
1614
                         DUP 5 ;
1615
                         GET 41 ;
1616
                         CONTRACT %mint (pair (address %owner)
1617
                                              (pair (nat %token_id) (nat %token_amount))) ;
1618
                         IF_NONE { PUSH int 125 ; FAILWITH } {} ;
1619
                         PUSH mutez 0 ;
1620
                         DIG 6 ;
1621
                         DUP ;
1622
                         GET 21 ;
1623
                         CDR ;
1624
                         SWAP ;
1625
                         DUP ;
1626
                         DUG 8 ;
1627
                         GET 21 ;
1628
                         CAR ;
1629
                         DUP 8 ;
1630
                         MUL ;
1631
                         EDIV ;
1632
                         IF_NONE { PUSH int 567 ; FAILWITH } { CAR } ;
1633
                         DIG 7 ;
1634
                         DUP ;
1635
                         GET 43 ;
1636
                         SWAP ;
1637
                         DUP ;
1638
                         DUG 9 ;
1639
                         GET 27 ;
1640
                         PAIR 3 ;
1641
                         TRANSFER_TOKENS ;
1642
                         CONS ;
1643
                         DUG 2 ;
1644
                         DIG 4 ;
1645
                         DUP ;
1646
                         GET 45 ;
1647
                         DUP 6 ;
1648
                         ADD ;
1649
                         UPDATE 45 ;
1650
                         DUG 4 ;
1651
                         DUP 7 ;
1652
                         SWAP ;
1653
                         DUP ;
1654
                         DUG 2 ;
1655
                         GET 4 ;
1656
                         SENDER ;
1657
                         PAIR ;
1658
                         SWAP ;
1659
                         DIG 6 ;
1660
                         DIG 5 ;
1661
                         DIG 3 ;
1662
                         PAIR 3 ;
1663
                         EXEC ;
1664
                         CDR ;
1665
                         UNPAIR ;
1666
                         DIG 8 ;
1667
                         DIG 8 ;
1668
                         DIG 8 ;
1669
                         DIG 8 ;
1670
                         DIG 5 ;
1671
                         DIG 8 ;
1672
                         DIG 6 ;
1673
                         DIG 8 ;
1674
                         DIG 8 ;
1675
                         DUP ;
1676
                         GET 3 ;
1677
                         IF_NONE
1678
                           { DROP 2 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP }
1679
                           { DROP ;
1680
                             SWAP ;
1681
                             DROP ;
1682
                             DIG 2 ;
1683
                             DROP ;
1684
                             DIG 3 ;
1685
                             DROP ;
1686
                             DIG 4 ;
1687
                             DROP ;
1688
                             DIG 4 ;
1689
                             DROP ;
1690
                             DIG 3 ;
1691
                             DIG 3 ;
1692
                             DUP ;
1693
                             GET 17 ;
1694
                             CDR ;
1695
                             SWAP ;
1696
                             DUP ;
1697
                             DUG 5 ;
1698
                             GET 17 ;
1699
                             CAR ;
1700
                             DUP 4 ;
1701
                             GET 4 ;
1702
                             MUL ;
1703
                             EDIV ;
1704
                             IF_NONE { PUSH int 598 ; FAILWITH } { CAR } ;
1705
                             DIG 2 ;
1706
                             GET 3 ;
1707
                             IF_NONE { PUSH int 604 ; FAILWITH } {} ;
1708
                             PAIR ;
1709
                             SWAP ;
1710
                             DUG 3 ;
1711
                             PAIR 3 ;
1712
                             EXEC ;
1713
                             CDR ;
1714
                             UNPAIR } }
1715
                       { DIG 3 ;
1716
                         DROP ;
1717
                         DIG 3 ;
1718
                         DROP ;
1719
                         DIG 3 ;
1720
                         DROP ;
1721
                         AMOUNT ;
1722
                         PUSH mutez 0 ;
1723
                         COMPARE ;
1724
                         EQ ;
1725
                         IF {} { AMOUNT ; FAILWITH } ;
1726
                         NIL operation ;
1727
                         DIG 3 ;
1728
                         DUP 3 ;
1729
                         CDR ;
1730
                         SWAP ;
1731
                         DIG 4 ;
1732
                         DIG 3 ;
1733
                         DIG 3 ;
1734
                         PAIR 3 ;
1735
                         EXEC ;
1736
                         CDR ;
1737
                         UNPAIR ;
1738
                         SWAP ;
1739
                         DUP ;
1740
                         GET 3 ;
1741
                         NONE unit ;
1742
                         DIG 4 ;
1743
                         UPDATE ;
1744
                         UPDATE 3 ;
1745
                         SWAP } }
1746
                   { IF_LEFT
1747
                       { DIG 3 ;
1748
                         DROP ;
1749
                         DIG 3 ;
1750
                         DROP ;
1751
                         DIG 3 ;
1752
                         DROP ;
1753
                         AMOUNT ;
1754
                         PUSH mutez 0 ;
1755
                         COMPARE ;
1756
                         EQ ;
1757
                         IF {} { AMOUNT ; FAILWITH } ;
1758
                         NIL operation ;
1759
                         DIG 3 ;
1760
                         DUP 3 ;
1761
                         CDR ;
1762
                         SWAP ;
1763
                         DIG 4 ;
1764
                         DIG 3 ;
1765
                         DIG 3 ;
1766
                         PAIR 3 ;
1767
                         EXEC ;
1768
                         CDR ;
1769
                         UNPAIR ;
1770
                         SWAP ;
1771
                         DUP ;
1772
                         GET 3 ;
1773
                         PUSH (option unit) (Some Unit) ;
1774
                         DIG 4 ;
1775
                         UPDATE ;
1776
                         UPDATE 3 ;
1777
                         SWAP }
1778
                       { IF_LEFT
1779
                           { DIG 3 ;
1780
                             DROP ;
1781
                             DIG 3 ;
1782
                             DROP ;
1783
                             DIG 3 ;
1784
                             DROP ;
1785
                             AMOUNT ;
1786
                             PUSH mutez 0 ;
1787
                             COMPARE ;
1788
                             EQ ;
1789
                             IF {} { AMOUNT ; FAILWITH } ;
1790
                             NIL operation ;
1791
                             DIG 3 ;
1792
                             PUSH nat 0 ;
1793
                             SWAP ;
1794
                             DIG 4 ;
1795
                             DIG 3 ;
1796
                             DIG 3 ;
1797
                             PAIR 3 ;
1798
                             EXEC ;
1799
                             CDR ;
1800
                             UNPAIR ;
1801
                             SWAP ;
1802
                             DIG 2 ;
1803
                             UPDATE 5 ;
1804
                             SWAP }
1805
                           { DIG 3 ;
1806
                             DROP ;
1807
                             DIG 3 ;
1808
                             DROP ;
1809
                             DIG 3 ;
1810
                             DROP ;
1811
                             AMOUNT ;
1812
                             PUSH mutez 0 ;
1813
                             COMPARE ;
1814
                             EQ ;
1815
                             IF {} { AMOUNT ; FAILWITH } ;
1816
                             NIL operation ;
1817
                             DIG 3 ;
1818
                             PUSH nat 0 ;
1819
                             SWAP ;
1820
                             DIG 4 ;
1821
                             DIG 3 ;
1822
                             DIG 3 ;
1823
                             PAIR 3 ;
1824
                             EXEC ;
1825
                             CDR ;
1826
                             UNPAIR ;
1827
                             SWAP ;
1828
                             DIG 2 ;
1829
                             DUP ;
1830
                             DUG 3 ;
1831
                             GET 6 ;
1832
                             UPDATE 39 ;
1833
                             DUG 2 ;
1834
                             DUG 2 ;
1835
                             DUP ;
1836
                             DUG 3 ;
1837
                             GET 3 ;
1838
                             UPDATE 27 ;
1839
                             DUG 2 ;
1840
                             DUG 2 ;
1841
                             DUP ;
1842
                             DUG 3 ;
1843
                             GET 5 ;
1844
                             UPDATE 29 ;
1845
                             DUG 2 ;
1846
                             DUG 2 ;
1847
                             DUP ;
1848
                             DUG 3 ;
1849
                             CAR ;
1850
                             CAR ;
1851
                             UPDATE 13 ;
1852
                             DUG 2 ;
1853
                             DUG 2 ;
1854
                             DUP ;
1855
                             DUG 3 ;
1856
                             CAR ;
1857
                             GET 4 ;
1858
                             UPDATE 23 ;
1859
                             DUG 2 ;
1860
                             DUG 2 ;
1861
                             CAR ;
1862
                             GET 3 ;
1863
                             UPDATE 15 ;
1864
                             SWAP } } } } }
1865
           { IF_LEFT
1866
               { IF_LEFT
1867
                   { IF_LEFT
1868
                       { DIG 3 ;
1869
                         DROP ;
1870
                         DIG 3 ;
1871
                         DROP ;
1872
                         DIG 3 ;
1873
                         DROP ;
1874
                         AMOUNT ;
1875
                         PUSH mutez 0 ;
1876
                         COMPARE ;
1877
                         EQ ;
1878
                         IF {} { AMOUNT ; FAILWITH } ;
1879
                         NIL operation ;
1880
                         DIG 3 ;
1881
                         PUSH nat 0 ;
1882
                         SWAP ;
1883
                         DIG 4 ;
1884
                         DIG 3 ;
1885
                         DIG 3 ;
1886
                         PAIR 3 ;
1887
                         EXEC ;
1888
                         CDR ;
1889
                         UNPAIR ;
1890
                         SWAP ;
1891
                         DIG 2 ;
1892
                         UPDATE 17 ;
1893
                         SWAP }
1894
                       { DIG 3 ;
1895
                         DROP ;
1896
                         DIG 3 ;
1897
                         DROP ;
1898
                         DIG 3 ;
1899
                         DROP ;
1900
                         AMOUNT ;
1901
                         PUSH mutez 0 ;
1902
                         COMPARE ;
1903
                         EQ ;
1904
                         IF {} { AMOUNT ; FAILWITH } ;
1905
                         NIL operation ;
1906
                         DIG 3 ;
1907
                         PUSH nat 0 ;
1908
                         SWAP ;
1909
                         DIG 4 ;
1910
                         DIG 3 ;
1911
                         DIG 3 ;
1912
                         PAIR 3 ;
1913
                         EXEC ;
1914
                         CDR ;
1915
                         UNPAIR ;
1916
                         SWAP ;
1917
                         DIG 2 ;
1918
                         UPDATE 19 ;
1919
                         SWAP } }
1920
                   { IF_LEFT
1921
                       { DIG 3 ;
1922
                         DROP ;
1923
                         DIG 3 ;
1924
                         DROP ;
1925
                         DIG 3 ;
1926
                         DROP ;
1927
                         AMOUNT ;
1928
                         PUSH mutez 0 ;
1929
                         COMPARE ;
1930
                         EQ ;
1931
                         IF {} { AMOUNT ; FAILWITH } ;
1932
                         NIL operation ;
1933
                         DIG 3 ;
1934
                         PUSH nat 0 ;
1935
                         SWAP ;
1936
                         DIG 4 ;
1937
                         DIG 3 ;
1938
                         DIG 3 ;
1939
                         PAIR 3 ;
1940
                         EXEC ;
1941
                         CDR ;
1942
                         UNPAIR ;
1943
                         SWAP ;
1944
                         DIG 2 ;
1945
                         UPDATE 21 ;
1946
                         SWAP }
1947
                       { IF_LEFT
1948
                           { DIG 2 ;
1949
                             DROP ;
1950
                             DIG 2 ;
1951
                             DROP ;
1952
                             DIG 3 ;
1953
                             DROP ;
1954
                             AMOUNT ;
1955
                             PUSH mutez 0 ;
1956
                             COMPARE ;
1957
                             EQ ;
1958
                             IF {} { AMOUNT ; FAILWITH } ;
1959
                             SWAP ;
1960
                             DUP ;
1961
                             DUG 2 ;
1962
                             GET 15 ;
1963
                             SENDER ;
1964
                             COMPARE ;
1965
                             EQ ;
1966
                             IF {} { PUSH int 401 ; FAILWITH } ;
1967
                             NIL operation ;
1968
                             DIG 3 ;
1969
                             UNIT ;
1970
                             SWAP ;
1971
                             DIG 4 ;
1972
                             DIG 3 ;
1973
                             DIG 3 ;
1974
                             PAIR 3 ;
1975
                             EXEC ;
1976
                             CDR ;
1977
                             UNPAIR ;
1978
                             SWAP ;
1979
                             DIG 2 ;
1980
                             UPDATE 25 ;
1981
                             SWAP }
1982
                           { DIG 3 ;
1983
                             DROP ;
1984
                             DIG 3 ;
1985
                             DROP ;
1986
                             DIG 3 ;
1987
                             DROP ;
1988
                             AMOUNT ;
1989
                             PUSH mutez 0 ;
1990
                             COMPARE ;
1991
                             EQ ;
1992
                             IF {} { AMOUNT ; FAILWITH } ;
1993
                             NIL operation ;
1994
                             DIG 3 ;
1995
                             PUSH nat 0 ;
1996
                             SWAP ;
1997
                             DIG 4 ;
1998
                             DIG 3 ;
1999
                             DIG 3 ;
2000
                             PAIR 3 ;
2001
                             EXEC ;
2002
                             CDR ;
2003
                             UNPAIR ;
2004
                             SWAP ;
2005
                             DIG 2 ;
2006
                             UPDATE 31 ;
2007
                             SWAP } } } }
2008
               { IF_LEFT
2009
                   { IF_LEFT
2010
                       { DIG 3 ;
2011
                         DROP ;
2012
                         DIG 3 ;
2013
                         DROP ;
2014
                         DIG 3 ;
2015
                         DROP ;
2016
                         AMOUNT ;
2017
                         PUSH mutez 0 ;
2018
                         COMPARE ;
2019
                         EQ ;
2020
                         IF {} { AMOUNT ; FAILWITH } ;
2021
                         NIL operation ;
2022
                         DIG 3 ;
2023
                         PUSH nat 0 ;
2024
                         SWAP ;
2025
                         DIG 4 ;
2026
                         DIG 3 ;
2027
                         DIG 3 ;
2028
                         PAIR 3 ;
2029
                         EXEC ;
2030
                         CDR ;
2031
                         UNPAIR ;
2032
                         SWAP ;
2033
                         DIG 2 ;
2034
                         UPDATE 33 ;
2035
                         SWAP }
2036
                       { IF_LEFT
2037
                           { DIG 3 ;
2038
                             DROP ;
2039
                             DIG 3 ;
2040
                             DROP ;
2041
                             DIG 3 ;
2042
                             DROP ;
2043
                             AMOUNT ;
2044
                             PUSH mutez 0 ;
2045
                             COMPARE ;
2046
                             EQ ;
2047
                             IF {} { AMOUNT ; FAILWITH } ;
2048
                             NIL operation ;
2049
                             DIG 3 ;
2050
                             PUSH nat 0 ;
2051
                             SWAP ;
2052
                             DIG 4 ;
2053
                             DIG 3 ;
2054
                             DIG 3 ;
2055
                             PAIR 3 ;
2056
                             EXEC ;
2057
                             CDR ;
2058
                             UNPAIR ;
2059
                             SWAP ;
2060
                             DIG 2 ;
2061
                             UPDATE 35 ;
2062
                             SWAP }
2063
                           { AMOUNT ;
2064
                             PUSH mutez 0 ;
2065
                             COMPARE ;
2066
                             EQ ;
2067
                             IF {} { AMOUNT ; FAILWITH } ;
2068
                             SWAP ;
2069
                             DUP ;
2070
                             DUG 2 ;
2071
                             GET 23 ;
2072
                             SENDER ;
2073
                             COMPARE ;
2074
                             EQ ;
2075
                             IF {} { PUSH int 401 ; FAILWITH } ;
2076
                             NIL operation ;
2077
                             DUP 6 ;
2078
                             UNIT ;
2079
                             SWAP ;
2080
                             DIG 4 ;
2081
                             DIG 3 ;
2082
                             DIG 3 ;
2083
                             PAIR 3 ;
2084
                             EXEC ;
2085
                             UNPAIR 3 ;
2086
                             DIG 7 ;
2087
                             DIG 7 ;
2088
                             DIG 7 ;
2089
                             DIG 7 ;
2090
                             DIG 6 ;
2091
                             DIG 7 ;
2092
                             DIG 7 ;
2093
                             DIG 7 ;
2094
                             DUP 8 ;
2095
                             DIG 4 ;
2096
                             DUP ;
2097
                             GET 31 ;
2098
                             SWAP ;
2099
                             DUP ;
2100
                             DUG 6 ;
2101
                             GET 33 ;
2102
                             DIG 5 ;
2103
                             DUP ;
2104
                             GET 4 ;
2105
                             SWAP ;
2106
                             DUP ;
2107
                             GET 3 ;
2108
                             SWAP ;
2109
                             DUP ;
2110
                             DUG 8 ;
2111
                             CAR ;
2112
                             PAIR 5 ;
2113
                             SWAP ;
2114
                             DIG 5 ;
2115
                             DIG 4 ;
2116
                             DIG 3 ;
2117
                             PAIR 3 ;
2118
                             EXEC ;
2119
                             UNPAIR 3 ;
2120
                             DIG 8 ;
2121
                             DIG 8 ;
2122
                             DIG 8 ;
2123
                             DIG 8 ;
2124
                             DIG 6 ;
2125
                             DIG 8 ;
2126
                             DIG 7 ;
2127
                             DIG 8 ;
2128
                             DIG 8 ;
2129
                             DUP 5 ;
2130
                             GET 46 ;
2131
                             DUP 5 ;
2132
                             CAR ;
2133
                             GET ;
2134
                             IF_NONE { PUSH int 743 ; FAILWITH } {} ;
2135
                             DUP 8 ;
2136
                             SWAP ;
2137
                             DUP ;
2138
                             DUG 2 ;
2139
                             GET 4 ;
2140
                             DUP 7 ;
2141
                             CAR ;
2142
                             PAIR ;
2143
                             SWAP ;
2144
                             DIG 7 ;
2145
                             DIG 6 ;
2146
                             DIG 3 ;
2147
                             PAIR 3 ;
2148
                             EXEC ;
2149
                             CDR ;
2150
                             UNPAIR ;
2151
                             DIG 9 ;
2152
                             DIG 9 ;
2153
                             DIG 9 ;
2154
                             DIG 9 ;
2155
                             DIG 5 ;
2156
                             DIG 9 ;
2157
                             DIG 6 ;
2158
                             DIG 9 ;
2159
                             DIG 9 ;
2160
                             DIG 9 ;
2161
                             DUP ;
2162
                             GET 3 ;
2163
                             IF_NONE
2164
                               { DROP 3 ; SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP }
2165
                               { DROP ;
2166
                                 SWAP ;
2167
                                 DROP ;
2168
                                 SWAP ;
2169
                                 DROP ;
2170
                                 DIG 2 ;
2171
                                 DROP ;
2172
                                 DIG 3 ;
2173
                                 DROP ;
2174
                                 DIG 4 ;
2175
                                 DROP ;
2176
                                 DIG 4 ;
2177
                                 DROP ;
2178
                                 DIG 3 ;
2179
                                 DIG 3 ;
2180
                                 DUP ;
2181
                                 GET 17 ;
2182
                                 CDR ;
2183
                                 SWAP ;
2184
                                 DUP ;
2185
                                 DUG 5 ;
2186
                                 GET 17 ;
2187
                                 CAR ;
2188
                                 DUP 4 ;
2189
                                 GET 4 ;
2190
                                 MUL ;
2191
                                 EDIV ;
2192
                                 IF_NONE { PUSH int 754 ; FAILWITH } { CAR } ;
2193
                                 DIG 2 ;
2194
                                 GET 3 ;
2195
                                 IF_NONE { PUSH int 604 ; FAILWITH } {} ;
2196
                                 PAIR ;
2197
                                 SWAP ;
2198
                                 DUG 3 ;
2199
                                 PAIR 3 ;
2200
                                 EXEC ;
2201
                                 CDR ;
2202
                                 UNPAIR } } } }
2203
                   { IF_LEFT
2204
                       { AMOUNT ;
2205
                         PUSH mutez 0 ;
2206
                         COMPARE ;
2207
                         EQ ;
2208
                         IF {} { AMOUNT ; FAILWITH } ;
2209
                         NIL operation ;
2210
                         DUP 6 ;
2211
                         UNIT ;
2212
                         SWAP ;
2213
                         DIG 4 ;
2214
                         DIG 3 ;
2215
                         DIG 3 ;
2216
                         PAIR 3 ;
2217
                         EXEC ;
2218
                         UNPAIR 3 ;
2219
                         DIG 7 ;
2220
                         DIG 7 ;
2221
                         DIG 7 ;
2222
                         DIG 7 ;
2223
                         DIG 6 ;
2224
                         DIG 7 ;
2225
                         DIG 7 ;
2226
                         DIG 7 ;
2227
                         DUP 3 ;
2228
                         ITER { DUP 5 ;
2229
                                GET 46 ;
2230
                                SWAP ;
2231
                                DUP ;
2232
                                DUG 2 ;
2233
                                GET ;
2234
                                IF_NONE { PUSH int 839 ; FAILWITH } {} ;
2235
                                DUP 8 ;
2236
                                SWAP ;
2237
                                DUP ;
2238
                                DUG 2 ;
2239
                                GET 4 ;
2240
                                DUP 4 ;
2241
                                PAIR ;
2242
                                SWAP ;
2243
                                DIG 7 ;
2244
                                DIG 6 ;
2245
                                DIG 3 ;
2246
                                PAIR 3 ;
2247
                                EXEC ;
2248
                                CDR ;
2249
                                UNPAIR ;
2250
                                DIG 9 ;
2251
                                DIG 9 ;
2252
                                DIG 9 ;
2253
                                DIG 9 ;
2254
                                DIG 5 ;
2255
                                DIG 9 ;
2256
                                DIG 6 ;
2257
                                DIG 9 ;
2258
                                DIG 9 ;
2259
                                DIG 9 ;
2260
                                DUP ;
2261
                                GET 3 ;
2262
                                IF_NONE
2263
                                  { DROP 2 }
2264
                                  { DROP ;
2265
                                    SWAP ;
2266
                                    DROP ;
2267
                                    DUP 7 ;
2268
                                    DIG 5 ;
2269
                                    DUP ;
2270
                                    GET 17 ;
2271
                                    CDR ;
2272
                                    SWAP ;
2273
                                    DUP ;
2274
                                    DUG 7 ;
2275
                                    GET 17 ;
2276
                                    CAR ;
2277
                                    DUP 4 ;
2278
                                    GET 4 ;
2279
                                    MUL ;
2280
                                    EDIV ;
2281
                                    IF_NONE { PUSH int 850 ; FAILWITH } { CAR } ;
2282
                                    DIG 2 ;
2283
                                    GET 3 ;
2284
                                    IF_NONE { PUSH int 604 ; FAILWITH } {} ;
2285
                                    PAIR ;
2286
                                    SWAP ;
2287
                                    DIG 5 ;
2288
                                    DIG 4 ;
2289
                                    DIG 3 ;
2290
                                    PAIR 3 ;
2291
                                    EXEC ;
2292
                                    CDR ;
2293
                                    UNPAIR ;
2294
                                    DIG 7 ;
2295
                                    DIG 7 ;
2296
                                    DIG 7 ;
2297
                                    DIG 7 ;
2298
                                    DIG 5 ;
2299
                                    DIG 7 ;
2300
                                    DIG 6 ;
2301
                                    DIG 7 } } ;
2302
                         DROP ;
2303
                         SWAP ;
2304
                         DROP ;
2305
                         DIG 2 ;
2306
                         DROP ;
2307
                         DIG 2 ;
2308
                         DROP ;
2309
                         DIG 2 ;
2310
                         DROP ;
2311
                         DIG 2 ;
2312
                         DROP }
2313
                       { IF_LEFT
2314
                           { DROP ;
2315
                             SWAP ;
2316
                             DROP ;
2317
                             SWAP ;
2318
                             DROP ;
2319
                             DIG 2 ;
2320
                             DROP ;
2321
                             AMOUNT ;
2322
                             PUSH mutez 0 ;
2323
                             COMPARE ;
2324
                             EQ ;
2325
                             IF {} { AMOUNT ; FAILWITH } ;
2326
                             NIL operation ;
2327
                             DIG 2 ;
2328
                             UNIT ;
2329
                             SWAP ;
2330
                             DUG 3 ;
2331
                             PAIR 3 ;
2332
                             EXEC ;
2333
                             CDR ;
2334
                             UNPAIR }
2335
                           { AMOUNT ;
2336
                             PUSH mutez 0 ;
2337
                             COMPARE ;
2338
                             EQ ;
2339
                             IF {} { AMOUNT ; FAILWITH } ;
2340
                             NIL operation ;
2341
                             DUP 6 ;
2342
                             UNIT ;
2343
                             SWAP ;
2344
                             DIG 4 ;
2345
                             DIG 3 ;
2346
                             DIG 3 ;
2347
                             PAIR 3 ;
2348
                             EXEC ;
2349
                             CDR ;
2350
                             UNPAIR ;
2351
                             DUG 6 ;
2352
                             DUG 6 ;
2353
                             DUG 6 ;
2354
                             DIG 5 ;
2355
                             DIG 6 ;
2356
                             DIG 6 ;
2357
                             DUP 3 ;
2358
                             GET 46 ;
2359
                             SENDER ;
2360
                             GET ;
2361
                             IF_NONE { PUSH int 778 ; FAILWITH } {} ;
2362
                             PUSH nat 1000000 ;
2363
                             DIG 4 ;
2364
                             DUP ;
2365
                             GET 5 ;
2366
                             CAR ;
2367
                             SWAP ;
2368
                             DUP ;
2369
                             DUG 6 ;
2370
                             GET 39 ;
2371
                             UNIT ;
2372
                             VIEW "get_price" nat ;
2373
                             IF_NONE { PUSH int 502 ; FAILWITH } {} ;
2374
                             DUP 7 ;
2375
                             GET 11 ;
2376
                             DUP 5 ;
2377
                             GET 4 ;
2378
                             MUL ;
2379
                             MUL ;
2380
                             MUL ;
2381
                             MUL ;
2382
                             DUP 5 ;
2383
                             GET 5 ;
2384
                             CDR ;
2385
                             PUSH nat 1000000000000 ;
2386
                             PUSH nat 1 ;
2387
                             PUSH nat 1000000 ;
2388
                             PUSH nat 1000000000000 ;
2389
                             DUP 9 ;
2390
                             DUP 8 ;
2391
                             CAR ;
2392
                             SUB ;
2393
                             ISNAT ;
2394
                             IF_NONE { PUSH int 780 ; FAILWITH } {} ;
2395
                             MUL ;
2396
                             MUL ;
2397
                             MUL ;
2398
                             MUL ;
2399
                             MUL ;
2400
                             COMPARE ;
2401
                             GE ;
2402
                             IF {} { PUSH int 801 ; FAILWITH } ;
2403
                             DUP ;
2404
                             DUP 4 ;
2405
                             DIG 2 ;
2406
                             CAR ;
2407
                             SUB ;
2408
                             ISNAT ;
2409
                             IF_NONE { PUSH int 780 ; FAILWITH } {} ;
2410
                             UPDATE 1 ;
2411
                             DIG 3 ;
2412
                             DUP ;
2413
                             GET 46 ;
2414
                             DIG 2 ;
2415
                             SOME ;
2416
                             SENDER ;
2417
                             UPDATE ;
2418
                             UPDATE 46 ;
2419
                             DUG 2 ;
2420
                             PUSH nat 0 ;
2421
                             DUP 3 ;
2422
                             COMPARE ;
2423
                             GT ;
2424
                             IF
2425
                               { DIG 3 ;
2426
                                 DROP ;
2427
                                 DIG 3 ;
2428
                                 DROP ;
2429
                                 DIG 3 ;
2430
                                 DROP ;
2431
                                 DIG 3 ;
2432
                                 DROP ;
2433
                                 DUP 3 ;
2434
                                 GET 7 ;
2435
                                 CONTRACT %transfer (list (pair (address %from_)
2436
                                                               (list %txs (pair
2437
                                                                           (address %to_)
2438
                                                                           (pair
2439
                                                                             (nat %token_id)
2440
                                                                             (nat %amount)))))) ;
2441
                                 IF_NONE { PUSH int 36 ; FAILWITH } {} ;
2442
                                 PUSH mutez 0 ;
2443
                                 NIL (pair address (list (pair address (pair nat nat)))) ;
2444
                                 NIL (pair address (pair nat nat)) ;
2445
                                 DIG 5 ;
2446
                                 DUP 7 ;
2447
                                 GET 9 ;
2448
                                 SENDER ;
2449
                                 PAIR 3 ;
2450
                                 CONS ;
2451
                                 SELF_ADDRESS ;
2452
                                 PAIR ;
2453
                                 CONS ;
2454
                                 TRANSFER_TOKENS ;
2455
                                 CONS }
2456
                               { SWAP ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP ; DIG 2 ; DROP } } } } } } ;
2457
         NIL operation ;
2458
         SWAP ;
2459
         ITER { CONS } ;
2460
         PAIR } ;
2461
  view "accrual_update_timestamp" unit timestamp { CDR ; CAR } ;
2462
  view "collateral_ratio" unit (pair (nat %numerator) (nat %denominator))
2463
        { CDR ; GET 5 } ;
2464
  view "compound_interest_rate" unit nat { CDR ; GET 11 } ;
2465
  view "governance_token_contract" unit address { CDR ; GET 13 } ;
2466
  view "interest_rate_setter_contract" unit address { CDR ; GET 15 } ;
2467
  view "introducer_ratio" unit (pair (nat %numerator) (nat %denominator))
2468
        { CDR ; GET 17 } ;
2469
  view "is_admin" (pair (address %owner) (nat %token_id)) bool
2470
        { UNPAIR ; SWAP ; GET 3 ; SWAP ; MEM } ;
2471
  view "liquidation_payout_ratio" unit (pair (nat %numerator) (nat %denominator))
2472
        { CDR ; GET 19 } ;
2473
  view "minting_fee_ratio" unit (pair (nat %numerator) (nat %denominator))
2474
        { CDR ; GET 21 } ;
2475
  view "options_contract" unit address { CDR ; GET 23 } ;
2476
  view "reference_interest_rate" unit nat { CDR ; GET 25 } ;
2477
  view "reward_pool_contract" unit address { CDR ; GET 27 } ;
2478
  view "savings_pool_contract" unit address { CDR ; GET 29 } ;
2479
  view "settlement_payout_ratio" unit (pair (nat %numerator) (nat %denominator))
2480
        { CDR ; GET 31 } ;
2481
  view "settlement_ratio" unit (pair (nat %numerator) (nat %denominator))
2482
        { CDR ; GET 33 } ;
2483
  view "settlement_reward_fee_ratio" unit (pair (nat %numerator) (nat %denominator))
2484
        { CDR ; GET 35 } ;
2485
  view "spread_rate" unit nat { CDR ; GET 37 } ;
2486
  view "target_price_oracle" unit address { CDR ; GET 39 } ;
2487
  view "total_supply" unit nat { CDR ; GET 45 } ;
2488
  view "vault_context" address
2489
        (option (pair (nat %balance) (pair (option %introducer address) (nat %minted))))
2490
        { UNPAIR ;
2491
          SWAP ;
2492
          DUP ;
2493
          DUG 2 ;
2494
          GET 46 ;
2495
          SWAP ;
2496
          DUP ;
2497
          DUG 2 ;
2498
          MEM ;
2499
          IF
2500
            { SWAP ; GET 46 ; SWAP ; GET ; IF_NONE { PUSH int 1018 ; FAILWITH } {} ; SOME }
2501
            { DROP 2 ; NONE (pair nat (pair (option address) nat)) } } }