BCD

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