BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Ghostnet
  • /
  • KT1JRm8...u5hM
FA2Ledger
operations (586)Storage Code Interact Tokens Metadata Fork Views Statistics Details
Latest
​x
542
1178
 
1
{ parameter (or
2
              (or
3
                (or %checkerEntrypoint
4
                  (or %lazyParams
5
                    (or
6
                      (or
7
                        (or
8
                          (or (nat %activate_burrow)
9
                              (pair %add_liquidity (pair nat nat) (pair nat timestamp)))
10
                          (or (pair %burn_kit nat nat)
11
                              (pair %buy_kit (pair nat nat) timestamp)))
12
                        (or
13
                          (or (nat %cancel_liquidation_slice)
14
                              (pair %create_burrow nat (option key_hash)))
15
                          (or (pair %deactivate_burrow nat address)
16
                              (nat %deposit_collateral))))
17
                      (or
18
                        (or
19
                          (or (nat %liquidation_auction_claim_win)
20
                              (pair %liquidation_auction_place_bid nat nat))
21
                          (or (pair %mark_for_liquidation address nat)
22
                              (pair %mint_kit nat nat)))
23
                        (or
24
                          (or (pair %receive_ctez_marginal_price nat nat)
25
                              (nat %receive_price))
26
                          (or (pair %receive_slice_from_burrow address nat)
27
                              (pair %remove_liquidity (pair nat nat)
28
                                                      (pair nat timestamp))))))
29
                    (or
30
                      (or
31
                        (or
32
                          (or (pair %sell_kit (pair nat nat) timestamp)
33
                              (address %set_admin))
34
                          (or (pair %set_burrow_delegate nat (option key_hash))
35
                              (pair %set_contracts
36
                                (pair (pair (address %ctez) (address %ctez_cfmm))
37
                                      (pair (address %governance)
38
                                            (address %liquidation_tracker)))
39
                                (pair (address %oracle) (address %reward_pool)))))
40
                        (or (or (unit %touch) (pair %touch_burrow address nat))
41
                            (or (list %touch_liquidation_slices nat)
42
                                (list %update_operators (or
43
                                                         (pair %add_operator
44
                                                           (address %owner)
45
                                                           (pair (address %operator)
46
                                                                 (nat %token_id)))
47
                                                         (pair %remove_operator
48
                                                           (address %owner)
49
                                                           (pair (address %operator)
50
                                                                 (nat %token_id))))))))
51
                      (pair %withdraw_collateral nat mutez)))
52
                  (or %strictParams
53
                    (pair %balance_of
54
                      (list %requests (pair (address %owner) (nat %token_id)))
55
                      (contract %callback (list (pair
56
                                                (pair %request (address %owner)
57
                                                               (nat %token_id))
58
                                                (nat %balance)))))
59
                    (list %transfer (pair (address %from_)
60
                                         (list %txs (pair (address %to_)
61
                                                         (pair (nat %token_id)
62
                                                               (nat %amount))))))))
63
                (pair %deployFunction int bytes))
64
              (or (bytes %deployMetadata)
65
                  (pair %sealContract
66
                    (pair (pair address address) (pair address address))
67
                    (pair (pair address address) address)))) ;
68
  storage (pair (big_map %lazy_functions int bytes)
69
                (pair (big_map %metadata string bytes)
70
                      (or %deployment_state
71
                        (pair %sealed
72
                          (pair
73
                            (pair
74
                              (pair (address %admin)
75
                                    (big_map %burrows (pair address nat)
76
                                                      (pair
77
                                                        (pair
78
                                                          (pair (bool %active)
79
                                                                (address %address))
80
                                                          (pair (int %adjustment_index)
81
                                                                (nat %collateral)))
82
                                                        (pair
83
                                                          (pair
84
                                                            (nat %collateral_at_auction)
85
                                                            (timestamp %last_checker_timestamp))
86
                                                          (nat %outstanding_kit)))))
87
                              (pair
88
                                (pair %cfmm
89
                                  (pair (pair (nat %ctez) (nat %kit))
90
                                        (pair
91
                                          (pair %kit_in_ctez_in_prev_block (int %den)
92
                                                                           (int %num))
93
                                          (nat %last_level)))
94
                                  (nat %lqt))
95
                                (pair %external_contracts
96
                                  (pair (pair (address %ctez) (address %ctez_cfmm))
97
                                        (pair (address %governance)
98
                                              (address %liquidation_tracker)))
99
                                  (pair (address %oracle) (address %reward_pool)))))
100
                            (pair
101
                              (pair
102
                                (pair %fa2_state
103
                                  (big_map %ledger (pair address nat) nat)
104
                                  (big_map %operators (pair (pair address address) nat)
105
                                                      unit))
106
                                (option %last_ctez_in_tez (pair (int %den) (int %num))))
107
                              (pair (option %last_price nat)
108
                                    (pair %liquidation_auctions
109
                                      (pair
110
                                        (pair
111
                                          (pair %avl_storage (nat %last_ptr)
112
                                                             (big_map %mem nat
113
                                                                           (or
114
                                                                             (or
115
                                                                               (pair %branch
116
                                                                                 (pair
117
                                                                                   (pair
118
                                                                                     (nat %left)
119
                                                                                     (nat %left_height))
120
                                                                                   (pair
121
                                                                                     (nat %left_tok)
122
                                                                                     (nat %parent)))
123
                                                                                 (pair
124
                                                                                   (pair
125
                                                                                     (nat %right)
126
                                                                                     (nat %right_height))
127
                                                                                   (nat %right_tok)))
128
                                                                               (pair %leaf
129
                                                                                 (nat %parent)
130
                                                                                 (pair %value
131
                                                                                   (pair
132
                                                                                     (pair %contents
133
                                                                                       (pair
134
                                                                                         (pair %burrow
135
                                                                                           address
136
                                                                                           nat)
137
                                                                                         (option %min_kit_for_unwarranted nat))
138
                                                                                       (nat %tok))
139
                                                                                     (option %older nat))
140
                                                                                   (option %younger nat))))
141
                                                                             (pair %root
142
                                                                               (option nat)
143
                                                                               (option (pair
144
                                                                                        (pair
145
                                                                                          (option %older_auction nat)
146
                                                                                          (nat %sold_tok))
147
                                                                                        (pair
148
                                                                                          (pair %winning_bid
149
                                                                                            (address %address)
150
                                                                                            (nat %kit))
151
                                                                                          (option %younger_auction nat))))))))
152
                                          (big_map %burrow_slices (pair address nat)
153
                                                                  (pair
154
                                                                    (nat %oldest_slice)
155
                                                                    (nat %youngest_slice))))
156
                                        (pair
157
                                          (option %completed_auctions (pair (nat %oldest)
158
                                                                           (nat %youngest)))
159
                                          (option %current_auction (pair (nat %contents)
160
                                                                        (or %state
161
                                                                          (pair %ascending
162
                                                                            (pair
163
                                                                              (pair
164
                                                                                (address %address)
165
                                                                                (nat %kit))
166
                                                                              timestamp)
167
                                                                            nat)
168
                                                                          (pair %descending
169
                                                                            nat
170
                                                                            timestamp))))))
171
                                      (nat %queued_slices)))))
172
                          (pair %parameters
173
                            (pair
174
                              (pair
175
                                (pair (int %burrow_fee_index) (nat %circulating_kit))
176
                                (pair (int %drift) (int %drift_derivative)))
177
                              (pair (pair (int %imbalance_index) (nat %index))
178
                                    (pair (timestamp %last_touched)
179
                                          (nat %outstanding_kit))))
180
                            (pair (pair (nat %protected_index) (int %q)) (int %target))))
181
                        (address %unsealed)))) ;
182
  code { PUSH nat 1000000 ;
183
         LAMBDA
184
           nat
185
           unit
186
           { PUSH nat 1 ;
187
             SWAP ;
188
             DUP ;
189
             DUG 2 ;
190
             COMPARE ;
191
             EQ ;
192
             PUSH nat 0 ;
193
             DIG 2 ;
194
             COMPARE ;
195
             EQ ;
196
             OR ;
197
             IF { UNIT } { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } } ;
198
         EMPTY_BIG_MAP (pair (pair address address) nat) unit ;
199
         EMPTY_BIG_MAP (pair address nat) nat ;
200
         PAIR ;
201
         LAMBDA
202
           (pair (big_map (pair address nat) nat) (pair (pair address nat) nat))
203
           (big_map (pair address nat) nat)
204
           { UNPAIR 3 ;
205
             PUSH nat 0 ;
206
             DUP 4 ;
207
             COMPARE ;
208
             EQ ;
209
             IF
210
               { DIG 2 ; DROP ; SWAP ; NONE nat ; SWAP ; UPDATE }
211
               { DUG 2 ; SWAP ; SOME ; SWAP ; UPDATE } } ;
212
         EMPTY_BIG_MAP nat
213
                        (or
214
                          (or
215
                            (pair (pair (pair nat nat) (pair nat nat))
216
                                  (pair (pair nat nat) nat))
217
                            (pair nat
218
                                  (pair
219
                                    (pair
220
                                      (pair (pair (pair address nat) (option nat)) nat)
221
                                      (option nat))
222
                                    (option nat))))
223
                          (pair (option nat)
224
                                (option (pair (pair (option nat) nat)
225
                                             (pair (pair address nat) (option nat)))))) ;
226
         PUSH nat 0 ;
227
         PUSH nat 1 ;
228
         ADD ;
229
         DUP ;
230
         DIG 2 ;
231
         NONE (pair (pair (option nat) nat) (pair (pair address nat) (option nat))) ;
232
         NONE nat ;
233
         PAIR ;
234
         RIGHT (or (pair (pair (pair nat nat) (pair nat nat)) (pair (pair nat nat) nat))
235
                   (pair nat
236
                         (pair
237
                           (pair (pair (pair (pair address nat) (option nat)) nat)
238
                                 (option nat))
239
                           (option nat)))) ;
240
         SOME ;
241
         DUP 4 ;
242
         UPDATE ;
243
         DIG 2 ;
244
         PAIR ;
245
         SWAP ;
246
         NONE (pair nat
247
                    (or (pair (pair (pair address nat) timestamp) nat)
248
                        (pair nat timestamp))) ;
249
         NONE (pair nat nat) ;
250
         PAIR ;
251
         EMPTY_BIG_MAP (pair address nat) (pair nat nat) ;
252
         DIG 3 ;
253
         PAIR ;
254
         PAIR ;
255
         PAIR ;
256
         PUSH int 18446744073709551616 ;
257
         PUSH int 18446744073709551616 ;
258
         DUP 7 ;
259
         PAIR ;
260
         PAIR ;
261
         PUSH nat 0 ;
262
         NOW ;
263
         PAIR ;
264
         DIG 6 ;
265
         PUSH int 18446744073709551616 ;
266
         PAIR ;
267
         PAIR ;
268
         PUSH int 0 ;
269
         PUSH int 0 ;
270
         PAIR ;
271
         PUSH nat 0 ;
272
         PUSH int 18446744073709551616 ;
273
         PAIR ;
274
         PAIR ;
275
         PAIR ;
276
         PAIR ;
277
         LAMBDA
278
           unit
279
           unit
280
           { DROP ; PUSH mutez 0 ; AMOUNT ; COMPARE ; NEQ ; IF { PUSH int 83 ; FAILWITH } { UNIT } } ;
281
         DIG 6 ;
282
         UNPAIR ;
283
         SWAP ;
284
         UNPAIR 3 ;
285
         DIG 2 ;
286
         IF_LEFT
287
           { DIG 5 ;
288
             DIG 6 ;
289
             DIG 8 ;
290
             DROP 3 ;
291
             DIG 3 ;
292
             IF_LEFT
293
               { IF_LEFT
294
                   { IF_LEFT
295
                       { DIG 4 ;
296
                         DIG 5 ;
297
                         DIG 6 ;
298
                         DROP 3 ;
299
                         IF_LEFT
300
                           { IF_LEFT
301
                               { IF_LEFT
302
                                   { IF_LEFT
303
                                       { IF_LEFT
304
                                           { PACK ; PUSH int 8 ; PAIR }
305
                                           { PACK ; PUSH int 17 ; PAIR } }
306
                                       { IF_LEFT
307
                                           { PACK ; PUSH int 7 ; PAIR }
308
                                           { PACK ; PUSH int 15 ; PAIR } } }
309
                                   { IF_LEFT
310
                                       { IF_LEFT
311
                                           { PACK ; PUSH int 12 ; PAIR }
312
                                           { PACK ; PUSH int 3 ; PAIR } }
313
                                       { IF_LEFT
314
                                           { PACK ; PUSH int 9 ; PAIR }
315
                                           { PACK ; PUSH int 4 ; PAIR } } } }
316
                               { IF_LEFT
317
                                   { IF_LEFT
318
                                       { IF_LEFT
319
                                           { PACK ; PUSH int 20 ; PAIR }
320
                                           { PACK ; PUSH int 19 ; PAIR } }
321
                                       { IF_LEFT
322
                                           { PACK ; PUSH int 10 ; PAIR }
323
                                           { PACK ; PUSH int 6 ; PAIR } } }
324
                                   { IF_LEFT
325
                                       { IF_LEFT
326
                                           { PACK ; PUSH int 23 ; PAIR }
327
                                           { PACK ; PUSH int 22 ; PAIR } }
328
                                       { IF_LEFT
329
                                           { PACK ; PUSH int 21 ; PAIR }
330
                                           { PACK ; PUSH int 18 ; PAIR } } } } }
331
                           { IF_LEFT
332
                               { IF_LEFT
333
                                   { IF_LEFT
334
                                       { IF_LEFT
335
                                           { PACK ; PUSH int 16 ; PAIR }
336
                                           { PACK ; PUSH int 2 ; PAIR } }
337
                                       { IF_LEFT
338
                                           { PACK ; PUSH int 14 ; PAIR }
339
                                           { PACK ; PUSH int 1 ; PAIR } } }
340
                                   { IF_LEFT
341
                                       { IF_LEFT
342
                                           { PACK ; PUSH int 0 ; PAIR }
343
                                           { PACK ; PUSH int 13 ; PAIR } }
344
                                       { IF_LEFT
345
                                           { PACK ; PUSH int 11 ; PAIR }
346
                                           { PACK ; PUSH int 24 ; PAIR } } } }
347
                               { PACK ; PUSH int 5 ; PAIR } } ;
348
                         UNPAIR ;
349
                         SWAP ;
350
                         DIG 2 ;
351
                         PAIR ;
352
                         DUP 3 ;
353
                         DIG 2 ;
354
                         GET ;
355
                         IF_NONE
356
                           { PUSH int 151 ; FAILWITH }
357
                           { UNPACK (lambda
358
                                      (pair
359
                                        (pair
360
                                          (pair
361
                                            (pair
362
                                              (pair (address %admin)
363
                                                    (big_map %burrows (pair address nat)
364
                                                                      (pair
365
                                                                        (pair
366
                                                                          (pair
367
                                                                            (bool %active)
368
                                                                            (address %address))
369
                                                                          (pair
370
                                                                            (int %adjustment_index)
371
                                                                            (nat %collateral)))
372
                                                                        (pair
373
                                                                          (pair
374
                                                                            (nat %collateral_at_auction)
375
                                                                            (timestamp %last_checker_timestamp))
376
                                                                          (nat %outstanding_kit)))))
377
                                              (pair
378
                                                (pair %cfmm
379
                                                  (pair (pair (nat %ctez) (nat %kit))
380
                                                        (pair
381
                                                          (pair %kit_in_ctez_in_prev_block
382
                                                            (int %den)
383
                                                            (int %num))
384
                                                          (nat %last_level)))
385
                                                  (nat %lqt))
386
                                                (pair %external_contracts
387
                                                  (pair
388
                                                    (pair (address %ctez)
389
                                                          (address %ctez_cfmm))
390
                                                    (pair (address %governance)
391
                                                          (address %liquidation_tracker)))
392
                                                  (pair (address %oracle)
393
                                                        (address %reward_pool)))))
394
                                            (pair
395
                                              (pair
396
                                                (pair %fa2_state
397
                                                  (big_map %ledger (pair address nat)
398
                                                                   nat)
399
                                                  (big_map %operators
400
                                                    (pair (pair address address) nat)
401
                                                    unit))
402
                                                (option %last_ctez_in_tez (pair
403
                                                                           (int %den)
404
                                                                           (int %num))))
405
                                              (pair (option %last_price nat)
406
                                                    (pair %liquidation_auctions
407
                                                      (pair
408
                                                        (pair
409
                                                          (pair %avl_storage
410
                                                            (nat %last_ptr)
411
                                                            (big_map %mem nat
412
                                                                          (or
413
                                                                            (or
414
                                                                              (pair %branch
415
                                                                                (pair
416
                                                                                  (pair
417
                                                                                    (nat %left)
418
                                                                                    (nat %left_height))
419
                                                                                  (pair
420
                                                                                    (nat %left_tok)
421
                                                                                    (nat %parent)))
422
                                                                                (pair
423
                                                                                  (pair
424
                                                                                    (nat %right)
425
                                                                                    (nat %right_height))
426
                                                                                  (nat %right_tok)))
427
                                                                              (pair %leaf
428
                                                                                (nat %parent)
429
                                                                                (pair %value
430
                                                                                  (pair
431
                                                                                    (pair %contents
432
                                                                                      (pair
433
                                                                                        (pair %burrow
434
                                                                                          address
435
                                                                                          nat)
436
                                                                                        (option %min_kit_for_unwarranted nat))
437
                                                                                      (nat %tok))
438
                                                                                    (option %older nat))
439
                                                                                  (option %younger nat))))
440
                                                                            (pair %root
441
                                                                              (option nat)
442
                                                                              (option (pair
443
                                                                                       (pair
444
                                                                                         (option %older_auction nat)
445
                                                                                         (nat %sold_tok))
446
                                                                                       (pair
447
                                                                                         (pair %winning_bid
448
                                                                                           (address %address)
449
                                                                                           (nat %kit))
450
                                                                                         (option %younger_auction nat))))))))
451
                                                          (big_map %burrow_slices
452
                                                            (pair address nat)
453
                                                            (pair (nat %oldest_slice)
454
                                                                  (nat %youngest_slice))))
455
                                                        (pair
456
                                                          (option %completed_auctions (pair
457
                                                                                       (nat %oldest)
458
                                                                                       (nat %youngest)))
459
                                                          (option %current_auction (pair
460
                                                                                    (nat %contents)
461
                                                                                    (or %state
462
                                                                                      (pair %ascending
463
                                                                                        (pair
464
                                                                                          (pair
465
                                                                                            (address %address)
466
                                                                                            (nat %kit))
467
                                                                                          timestamp)
468
                                                                                        nat)
469
                                                                                      (pair %descending
470
                                                                                        nat
471
                                                                                        timestamp))))))
472
                                                      (nat %queued_slices)))))
473
                                          (pair %parameters
474
                                            (pair
475
                                              (pair
476
                                                (pair (int %burrow_fee_index)
477
                                                      (nat %circulating_kit))
478
                                                (pair (int %drift)
479
                                                      (int %drift_derivative)))
480
                                              (pair
481
                                                (pair (int %imbalance_index)
482
                                                      (nat %index))
483
                                                (pair (timestamp %last_touched)
484
                                                      (nat %outstanding_kit))))
485
                                            (pair (pair (nat %protected_index) (int %q))
486
                                                  (int %target))))
487
                                        bytes)
488
                                      (pair (list operation)
489
                                            (pair
490
                                              (pair
491
                                                (pair
492
                                                  (pair (address %admin)
493
                                                        (big_map %burrows
494
                                                          (pair address nat)
495
                                                          (pair
496
                                                            (pair
497
                                                              (pair (bool %active)
498
                                                                    (address %address))
499
                                                              (pair
500
                                                                (int %adjustment_index)
501
                                                                (nat %collateral)))
502
                                                            (pair
503
                                                              (pair
504
                                                                (nat %collateral_at_auction)
505
                                                                (timestamp %last_checker_timestamp))
506
                                                              (nat %outstanding_kit)))))
507
                                                  (pair
508
                                                    (pair %cfmm
509
                                                      (pair
510
                                                        (pair (nat %ctez) (nat %kit))
511
                                                        (pair
512
                                                          (pair %kit_in_ctez_in_prev_block
513
                                                            (int %den)
514
                                                            (int %num))
515
                                                          (nat %last_level)))
516
                                                      (nat %lqt))
517
                                                    (pair %external_contracts
518
                                                      (pair
519
                                                        (pair (address %ctez)
520
                                                              (address %ctez_cfmm))
521
                                                        (pair (address %governance)
522
                                                              (address %liquidation_tracker)))
523
                                                      (pair (address %oracle)
524
                                                            (address %reward_pool)))))
525
                                                (pair
526
                                                  (pair
527
                                                    (pair %fa2_state
528
                                                      (big_map %ledger
529
                                                        (pair address nat)
530
                                                        nat)
531
                                                      (big_map %operators
532
                                                        (pair (pair address address) nat)
533
                                                        unit))
534
                                                    (option %last_ctez_in_tez (pair
535
                                                                               (int %den)
536
                                                                               (int %num))))
537
                                                  (pair (option %last_price nat)
538
                                                        (pair %liquidation_auctions
539
                                                          (pair
540
                                                            (pair
541
                                                              (pair %avl_storage
542
                                                                (nat %last_ptr)
543
                                                                (big_map %mem nat
544
                                                                              (or
545
                                                                                (or
546
                                                                                  (pair %branch
547
                                                                                    (pair
548
                                                                                      (pair
549
                                                                                        (nat %left)
550
                                                                                        (nat %left_height))
551
                                                                                      (pair
552
                                                                                        (nat %left_tok)
553
                                                                                        (nat %parent)))
554
                                                                                    (pair
555
                                                                                      (pair
556
                                                                                        (nat %right)
557
                                                                                        (nat %right_height))
558
                                                                                      (nat %right_tok)))
559
                                                                                  (pair %leaf
560
                                                                                    (nat %parent)
561
                                                                                    (pair %value
562
                                                                                      (pair
563
                                                                                        (pair %contents
564
                                                                                          (pair
565
                                                                                            (pair %burrow
566
                                                                                              address
567
                                                                                              nat)
568
                                                                                            (option %min_kit_for_unwarranted nat))
569
                                                                                          (nat %tok))
570
                                                                                        (option %older nat))
571
                                                                                      (option %younger nat))))
572
                                                                                (pair %root
573
                                                                                  (option nat)
574
                                                                                  (option (pair
575
                                                                                           (pair
576
                                                                                             (option %older_auction nat)
577
                                                                                             (nat %sold_tok))
578
                                                                                           (pair
579
                                                                                             (pair %winning_bid
580
                                                                                               (address %address)
581
                                                                                               (nat %kit))
582
                                                                                             (option %younger_auction nat))))))))
583
                                                              (big_map %burrow_slices
584
                                                                (pair address nat)
585
                                                                (pair
586
                                                                  (nat %oldest_slice)
587
                                                                  (nat %youngest_slice))))
588
                                                            (pair
589
                                                              (option %completed_auctions (pair
590
                                                                                           (nat %oldest)
591
                                                                                           (nat %youngest)))
592
                                                              (option %current_auction (pair
593
                                                                                        (nat %contents)
594
                                                                                        (or %state
595
                                                                                          (pair %ascending
596
                                                                                            (pair
597
                                                                                              (pair
598
                                                                                                (address %address)
599
                                                                                                (nat %kit))
600
                                                                                              timestamp)
601
                                                                                            nat)
602
                                                                                          (pair %descending
603
                                                                                            nat
604
                                                                                            timestamp))))))
605
                                                          (nat %queued_slices)))))
606
                                              (pair %parameters
607
                                                (pair
608
                                                  (pair
609
                                                    (pair (int %burrow_fee_index)
610
                                                          (nat %circulating_kit))
611
                                                    (pair (int %drift)
612
                                                          (int %drift_derivative)))
613
                                                  (pair
614
                                                    (pair (int %imbalance_index)
615
                                                          (nat %index))
616
                                                    (pair (timestamp %last_touched)
617
                                                          (nat %outstanding_kit))))
618
                                                (pair
619
                                                  (pair (nat %protected_index) (int %q))
620
                                                  (int %target)))))) ;
621
                             IF_NONE { PUSH int 150 ; FAILWITH } {} } ;
622
                         SWAP ;
623
                         EXEC }
624
                       { IF_LEFT
625
                           { DIG 5 ;
626
                             DROP ;
627
                             SWAP ;
628
                             UNIT ;
629
                             DIG 5 ;
630
                             SWAP ;
631
                             EXEC ;
632
                             DROP ;
633
                             SWAP ;
634
                             UNPAIR ;
635
                             DUP 3 ;
636
                             CAR ;
637
                             CDR ;
638
                             CAR ;
639
                             CAR ;
640
                             SWAP ;
641
                             MAP { DUP ;
642
                                   UNPAIR ;
643
                                   DUP 4 ;
644
                                   DUP 3 ;
645
                                   DUP 11 ;
646
                                   SWAP ;
647
                                   EXEC ;
648
                                   DROP ;
649
                                   CAR ;
650
                                   DUG 2 ;
651
                                   PAIR ;
652
                                   GET ;
653
                                   IF_NONE { PUSH nat 0 } {} ;
654
                                   SWAP ;
655
                                   PAIR } ;
656
                             SWAP ;
657
                             DIG 6 ;
658
                             DROP 2 ;
659
                             SWAP ;
660
                             PUSH mutez 0 ;
661
                             DIG 2 ;
662
                             TRANSFER_TOKENS ;
663
                             SWAP ;
664
                             NIL operation ;
665
                             DIG 2 ;
666
                             CONS ;
667
                             PAIR }
668
                           { SWAP ;
669
                             UNIT ;
670
                             DIG 5 ;
671
                             SWAP ;
672
                             EXEC ;
673
                             DROP ;
674
                             DUP ;
675
                             CDR ;
676
                             SWAP ;
677
                             DUP ;
678
                             DUG 2 ;
679
                             CAR ;
680
                             CDR ;
681
                             CDR ;
682
                             DUP 3 ;
683
                             CAR ;
684
                             CDR ;
685
                             CAR ;
686
                             CDR ;
687
                             DIG 4 ;
688
                             DUP 5 ;
689
                             CAR ;
690
                             CDR ;
691
                             CAR ;
692
                             CAR ;
693
                             SWAP ;
694
                             ITER { UNPAIR ;
695
                                    DUG 2 ;
696
                                    ITER { UNPAIR 3 ;
697
                                           SWAP ;
698
                                           DUP ;
699
                                           DUG 2 ;
700
                                           DUP 6 ;
701
                                           PAIR ;
702
                                           SENDER ;
703
                                           DUP 6 ;
704
                                           DIG 2 ;
705
                                           UNPAIR ;
706
                                           DIG 2 ;
707
                                           CDR ;
708
                                           DUG 2 ;
709
                                           DUP ;
710
                                           DUG 3 ;
711
                                           DUP 5 ;
712
                                           PAIR ;
713
                                           PAIR ;
714
                                           MEM ;
715
                                           DUG 2 ;
716
                                           COMPARE ;
717
                                           EQ ;
718
                                           OR ;
719
                                           IF
720
                                             { SWAP ;
721
                                               DUP ;
722
                                               DUG 2 ;
723
                                               DUP 14 ;
724
                                               SWAP ;
725
                                               EXEC ;
726
                                               DROP ;
727
                                               DUP 3 ;
728
                                               DUP 6 ;
729
                                               PAIR ;
730
                                               DUP 3 ;
731
                                               DIG 5 ;
732
                                               DIG 2 ;
733
                                               UNPAIR ;
734
                                               DUP 3 ;
735
                                               CAR ;
736
                                               DIG 4 ;
737
                                               DIG 2 ;
738
                                               PAIR ;
739
                                               DUG 2 ;
740
                                               DUP ;
741
                                               DUG 3 ;
742
                                               DUP 3 ;
743
                                               GET ;
744
                                               IF_NONE { PUSH nat 0 } {} ;
745
                                               SUB ;
746
                                               ISNAT ;
747
                                               IF_NONE
748
                                                 { PUSH string "FA2_INSUFFICIENT_BALANCE" ;
749
                                                   FAILWITH }
750
                                                 {} ;
751
                                               SWAP ;
752
                                               DIG 2 ;
753
                                               PAIR 3 ;
754
                                               DUP 13 ;
755
                                               SWAP ;
756
                                               EXEC ;
757
                                               SWAP ;
758
                                               CDR ;
759
                                               SWAP ;
760
                                               PAIR ;
761
                                               DIG 3 ;
762
                                               DIG 2 ;
763
                                               DUP 3 ;
764
                                               CAR ;
765
                                               DIG 4 ;
766
                                               DIG 2 ;
767
                                               PAIR ;
768
                                               DUG 2 ;
769
                                               DUP ;
770
                                               DUG 3 ;
771
                                               DUP 3 ;
772
                                               GET ;
773
                                               IF_NONE { PUSH nat 0 } {} ;
774
                                               ADD ;
775
                                               SWAP ;
776
                                               DIG 2 ;
777
                                               PAIR 3 ;
778
                                               DUP 10 ;
779
                                               SWAP ;
780
                                               EXEC ;
781
                                               SWAP ;
782
                                               CDR ;
783
                                               SWAP ;
784
                                               PAIR }
785
                                             { DROP 4 ;
786
                                               PUSH string "FA2_NOT_OPERATOR" ;
787
                                               FAILWITH } } ;
788
                                    SWAP ;
789
                                    DROP } ;
790
                             DIG 7 ;
791
                             DIG 8 ;
792
                             DROP 2 ;
793
                             PAIR ;
794
                             PAIR ;
795
                             DIG 2 ;
796
                             CAR ;
797
                             CAR ;
798
                             PAIR ;
799
                             PAIR ;
800
                             NIL operation ;
801
                             PAIR } } }
802
                   { SWAP ; DIG 4 ; DIG 5 ; DIG 6 ; DROP 5 ; PUSH int 135 ; FAILWITH } }
803
               { SWAP ;
804
                 DIG 4 ;
805
                 DIG 5 ;
806
                 DIG 6 ;
807
                 DROP 4 ;
808
                 IF_LEFT
809
                   { DROP ; PUSH int 135 ; FAILWITH }
810
                   { DROP ; PUSH int 135 ; FAILWITH } } ;
811
             UNPAIR ;
812
             SWAP ;
813
             LEFT address ;
814
             DIG 3 ;
815
             PAIR ;
816
             DUG 2 ;
817
             PAIR ;
818
             PAIR }
819
           { DIG 4 ;
820
             DIG 7 ;
821
             DIG 9 ;
822
             DROP 3 ;
823
             DUP ;
824
             SENDER ;
825
             COMPARE ;
826
             EQ ;
827
             IF
828
               { DIG 3 ;
829
                 IF_LEFT
830
                   { DIG 4 ;
831
                     DIG 5 ;
832
                     DIG 6 ;
833
                     DROP 3 ;
834
                     IF_LEFT
835
                       { DROP 4 ; PUSH int 134 ; FAILWITH }
836
                       { UNPAIR ;
837
                         DIG 2 ;
838
                         RIGHT (pair
839
                                 (pair
840
                                   (pair
841
                                     (pair address
842
                                           (big_map (pair address nat)
843
                                                    (pair
844
                                                      (pair (pair bool address)
845
                                                            (pair int nat))
846
                                                      (pair (pair nat timestamp) nat))))
847
                                     (pair
848
                                       (pair
849
                                         (pair (pair nat nat) (pair (pair int int) nat))
850
                                         nat)
851
                                       (pair
852
                                         (pair (pair address address)
853
                                               (pair address address))
854
                                         (pair address address))))
855
                                   (pair
856
                                     (pair
857
                                       (pair (big_map (pair address nat) nat)
858
                                             (big_map (pair (pair address address) nat)
859
                                                      unit))
860
                                       (option (pair int int)))
861
                                     (pair (option nat)
862
                                           (pair
863
                                             (pair
864
                                               (pair
865
                                                 (pair nat
866
                                                       (big_map nat
867
                                                                (or
868
                                                                  (or
869
                                                                    (pair
870
                                                                      (pair
871
                                                                        (pair nat nat)
872
                                                                        (pair nat nat))
873
                                                                      (pair
874
                                                                        (pair nat nat)
875
                                                                        nat))
876
                                                                    (pair nat
877
                                                                          (pair
878
                                                                            (pair
879
                                                                              (pair
880
                                                                                (pair
881
                                                                                  (pair
882
                                                                                    address
883
                                                                                    nat)
884
                                                                                  (option nat))
885
                                                                                nat)
886
                                                                              (option nat))
887
                                                                            (option nat))))
888
                                                                  (pair (option nat)
889
                                                                        (option (pair
890
                                                                                 (pair
891
                                                                                   (option nat)
892
                                                                                   nat)
893
                                                                                 (pair
894
                                                                                   (pair
895
                                                                                     address
896
                                                                                     nat)
897
                                                                                   (option nat))))))))
898
                                                 (big_map (pair address nat)
899
                                                          (pair nat nat)))
900
                                               (pair (option (pair nat nat))
901
                                                     (option (pair nat
902
                                                                  (or
903
                                                                    (pair
904
                                                                      (pair
905
                                                                        (pair address
906
                                                                              nat)
907
                                                                        timestamp)
908
                                                                      nat)
909
                                                                    (pair nat timestamp))))))
910
                                             nat))))
911
                                 (pair
912
                                   (pair (pair (pair int nat) (pair int int))
913
                                         (pair (pair int nat) (pair timestamp nat)))
914
                                   (pair (pair nat int) int))) ;
915
                         DIG 4 ;
916
                         PAIR ;
917
                         DUP 4 ;
918
                         DUP 3 ;
919
                         GET ;
920
                         IF_NONE
921
                           { DUG 3 ; SWAP ; SOME ; SWAP ; UPDATE }
922
                           { DIG 4 ; DIG 4 ; DIG 2 ; CONCAT ; DIG 3 ; SWAP ; SOME ; SWAP ; UPDATE } ;
923
                         NIL operation ;
924
                         PAIR ;
925
                         PAIR } }
926
                   { IF_LEFT
927
                       { DIG 4 ;
928
                         DIG 5 ;
929
                         DIG 6 ;
930
                         DROP 3 ;
931
                         SWAP ;
932
                         RIGHT (pair
933
                                 (pair
934
                                   (pair
935
                                     (pair address
936
                                           (big_map (pair address nat)
937
                                                    (pair
938
                                                      (pair (pair bool address)
939
                                                            (pair int nat))
940
                                                      (pair (pair nat timestamp) nat))))
941
                                     (pair
942
                                       (pair
943
                                         (pair (pair nat nat) (pair (pair int int) nat))
944
                                         nat)
945
                                       (pair
946
                                         (pair (pair address address)
947
                                               (pair address address))
948
                                         (pair address address))))
949
                                   (pair
950
                                     (pair
951
                                       (pair (big_map (pair address nat) nat)
952
                                             (big_map (pair (pair address address) nat)
953
                                                      unit))
954
                                       (option (pair int int)))
955
                                     (pair (option nat)
956
                                           (pair
957
                                             (pair
958
                                               (pair
959
                                                 (pair nat
960
                                                       (big_map nat
961
                                                                (or
962
                                                                  (or
963
                                                                    (pair
964
                                                                      (pair
965
                                                                        (pair nat nat)
966
                                                                        (pair nat nat))
967
                                                                      (pair
968
                                                                        (pair nat nat)
969
                                                                        nat))
970
                                                                    (pair nat
971
                                                                          (pair
972
                                                                            (pair
973
                                                                              (pair
974
                                                                                (pair
975
                                                                                  (pair
976
                                                                                    address
977
                                                                                    nat)
978
                                                                                  (option nat))
979
                                                                                nat)
980
                                                                              (option nat))
981
                                                                            (option nat))))
982
                                                                  (pair (option nat)
983
                                                                        (option (pair
984
                                                                                 (pair
985
                                                                                   (option nat)
986
                                                                                   nat)
987
                                                                                 (pair
988
                                                                                   (pair
989
                                                                                     address
990
                                                                                     nat)
991
                                                                                   (option nat))))))))
992
                                                 (big_map (pair address nat)
993
                                                          (pair nat nat)))
994
                                               (pair (option (pair nat nat))
995
                                                     (option (pair nat
996
                                                                  (or
997
                                                                    (pair
998
                                                                      (pair
999
                                                                        (pair address
1000
                                                                              nat)
1001
                                                                        timestamp)
1002
                                                                      nat)
1003
                                                                    (pair nat timestamp))))))
1004
                                             nat))))
1005
                                 (pair
1006
                                   (pair (pair (pair int nat) (pair int int))
1007
                                         (pair (pair int nat) (pair timestamp nat)))
1008
                                   (pair (pair nat int) int))) ;
1009
                         DUP 4 ;
1010
                         PUSH string "m" ;
1011
                         GET ;
1012
                         IF_NONE
1013
                           { DIG 3 ; DIG 2 ; SOME ; PUSH string "m" ; UPDATE }
1014
                           { DIG 4 ; DIG 3 ; DIG 2 ; CONCAT ; SOME ; PUSH string "m" ; UPDATE } ;
1015
                         PAIR ;
1016
                         SWAP ;
1017
                         NIL operation ;
1018
                         PAIR ;
1019
                         PAIR }
1020
                       { SWAP ;
1021
                         DROP ;
1022
                         UNPAIR ;
1023
                         UNPAIR ;
1024
                         UNPAIR ;
1025
                         DIG 2 ;
1026
                         UNPAIR ;
1027
                         DIG 4 ;
1028
                         UNPAIR ;
1029
                         UNPAIR ;
1030
                         DIG 4 ;
1031
                         DIG 5 ;
1032
                         PAIR ;
1033
                         SWAP ;
1034
                         DIG 4 ;
1035
                         PAIR ;
1036
                         DIG 3 ;
1037
                         DIG 4 ;
1038
                         PAIR ;
1039
                         PAIR ;
1040
                         PAIR ;
1041
                         DUP ;
1042
                         CAR ;
1043
                         CAR ;
1044
                         CAR ;
1045
                         CONTRACT %transfer (pair (address %from)
1046
                                                  (pair (address %to) (nat %value))) ;
1047
                         IF_NONE { PUSH int 114 ; FAILWITH } { DROP } ;
1048
                         DUP ;
1049
                         CDR ;
1050
                         CAR ;
1051
                         CONTRACT %getPrice (contract nat) ;
1052
                         IF_NONE { PUSH int 113 ; FAILWITH } { DROP } ;
1053
                         DUP ;
1054
                         CAR ;
1055
                         CAR ;
1056
                         CDR ;
1057
                         CONTRACT %getMarginalPrice (contract (pair nat nat)) ;
1058
                         IF_NONE { PUSH int 116 ; FAILWITH } { DROP } ;
1059
                         SELF_ADDRESS ;
1060
                         CONTRACT %touch unit ;
1061
                         IF_NONE
1062
                           { PUSH int 4 ; NEG ; FAILWITH }
1063
                           { PUSH mutez 0 ; UNIT ; TRANSFER_TOKENS } ;
1064
                         DUG 2 ;
1065
                         DIG 5 ;
1066
                         DIG 6 ;
1067
                         NONE nat ;
1068
                         PAIR ;
1069
                         NONE (pair int int) ;
1070
                         DIG 8 ;
1071
                         PAIR ;
1072
                         PAIR ;
1073
                         DIG 2 ;
1074
                         PUSH nat 1 ;
1075
                         LEVEL ;
1076
                         PUSH int 1 ;
1077
                         PUSH int 1 ;
1078
                         PAIR ;
1079
                         PAIR ;
1080
                         PUSH nat 1 ;
1081
                         PUSH nat 1 ;
1082
                         PAIR ;
1083
                         PAIR ;
1084
                         PAIR ;
1085
                         PAIR ;
1086
                         EMPTY_BIG_MAP (pair address nat)
1087
                                        (pair (pair (pair bool address) (pair int nat))
1088
                                              (pair (pair nat timestamp) nat)) ;
1089
                         DIG 4 ;
1090
                         PAIR ;
1091
                         PAIR ;
1092
                         PAIR ;
1093
                         PAIR ;
1094
                         LEFT address ;
1095
                         DIG 3 ;
1096
                         PUSH bytes 0x74657a6f732d73746f726167653a6d ;
1097
                         SOME ;
1098
                         PUSH string "" ;
1099
                         UPDATE ;
1100
                         PAIR ;
1101
                         DIG 2 ;
1102
                         NIL operation ;
1103
                         DIG 3 ;
1104
                         CONS ;
1105
                         PAIR ;
1106
                         PAIR } } }
1107
               { DROP 7 ; PUSH int 111 ; FAILWITH } } ;
1108
         UNPAIR ;
1109
         UNPAIR ;
1110
         DIG 2 ;
1111
         UNPAIR ;
1112
         DIG 3 ;
1113
         PAIR 3 ;
1114
         SWAP ;
1115
         PAIR } ;
1116
  view "vault_context" address
1117
        (option (pair (address %account_address)
1118
                     (pair (nat %balance)
1119
                           (pair (option %introducer address) (nat %minted)))))
1120
        { PUSH nat 1000000 ;
1121
          PUSH int 18446744073709551616 ;
1122
          EMPTY_BIG_MAP nat
1123
                         (or
1124
                           (or
1125
                             (pair (pair (pair nat nat) (pair nat nat))
1126
                                   (pair (pair nat nat) nat))
1127
                             (pair nat
1128
                                   (pair
1129
                                     (pair
1130
                                       (pair (pair (pair address nat) (option nat)) nat)
1131
                                       (option nat))
1132
                                     (option nat))))
1133
                           (pair (option nat)
1134
                                 (option (pair (pair (option nat) nat)
1135
                                              (pair (pair address nat) (option nat)))))) ;
1136
          PUSH nat 0 ;
1137
          PUSH nat 1 ;
1138
          ADD ;
1139
          DUP ;
1140
          DIG 2 ;
1141
          NONE (pair (pair (option nat) nat) (pair (pair address nat) (option nat))) ;
1142
          NONE nat ;
1143
          PAIR ;
1144
          RIGHT (or
1145
                  (pair (pair (pair nat nat) (pair nat nat)) (pair (pair nat nat) nat))
1146
                  (pair nat
1147
                        (pair
1148
                          (pair (pair (pair (pair address nat) (option nat)) nat)
1149
                                (option nat))
1150
                          (option nat)))) ;
1151
          SOME ;
1152
          DUP 4 ;
1153
          DROP 5 ;
1154
          DUP ;
1155
          DUP ;
1156
          DUG 2 ;
1157
          DUP 4 ;
1158
          PAIR ;
1159
          PAIR ;
1160
          PUSH nat 0 ;
1161
          NOW ;
1162
          PAIR ;
1163
          DIG 3 ;
1164
          DUP 4 ;
1165
          PAIR ;
1166
          PAIR ;
1167
          PUSH int 0 ;
1168
          PUSH int 0 ;
1169
          PAIR ;
1170
          PUSH nat 0 ;
1171
          DUP 5 ;
1172
          DROP 5 ;
1173
          SWAP ;
1174
          UNPAIR ;
1175
          SWAP ;
1176
          GET 4 ;
1177
          IF_LEFT
1178
            { DUP ;
1179
              CAR ;
1180
              CAR ;
1181
              CAR ;
1182
              CDR ;
1183
              PUSH nat 0 ;
1184
              DIG 3 ;
1185
              PAIR ;
1186
              GET ;
1187
              IF_NONE { PUSH int 81 ; FAILWITH } {} ;
1188
              SWAP ;
1189
              CDR ;
1190
              SWAP ;
1191
              DUP ;
1192
              DUG 2 ;
1193
              CDR ;
1194
              CAR ;
1195
              CDR ;
1196
              SWAP ;
1197
              DUP ;
1198
              DUG 2 ;
1199
              CAR ;
1200
              CDR ;
1201
              CDR ;
1202
              CAR ;
1203
              COMPARE ;
1204
              EQ ;
1205
              IF
1206
                { DIG 2 ; DROP 2 }
1207
                { DIG 2 ;
1208
                  SWAP ;
1209
                  DUP ;
1210
                  DUG 2 ;
1211
                  CAR ;
1212
                  CDR ;
1213
                  CAR ;
1214
                  CAR ;
1215
                  DUP 3 ;
1216
                  CAR ;
1217
                  CAR ;
1218
                  CAR ;
1219
                  CAR ;
1220
                  MUL ;
1221
                  SWAP ;
1222
                  DUP ;
1223
                  DUG 2 ;
1224
                  SWAP ;
1225
                  EDIV ;
1226
                  IF_NONE
1227
                    { DROP ; PUSH int 292 ; FAILWITH }
1228
                    { UNPAIR ;
1229
                      PUSH nat 0 ;
1230
                      DIG 2 ;
1231
                      COMPARE ;
1232
                      EQ ;
1233
                      IF
1234
                        { SWAP ; DROP }
1235
                        { PUSH int 0 ; DIG 2 ; COMPARE ; GT ; IF {} { PUSH int 1 ; SWAP ; SUB } } } ;
1236
                  DUP 3 ;
1237
                  CAR ;
1238
                  CDR ;
1239
                  CAR ;
1240
                  PUSH int 1000000000000 ;
1241
                  MUL ;
1242
                  SWAP ;
1243
                  DUP ;
1244
                  DUG 2 ;
1245
                  DUP 5 ;
1246
                  CDR ;
1247
                  CDR ;
1248
                  MUL ;
1249
                  PUSH int 0 ;
1250
                  SWAP ;
1251
                  DUP ;
1252
                  DUG 2 ;
1253
                  COMPARE ;
1254
                  LT ;
1255
                  IF
1256
                    { DROP 2 ; PUSH int 271 ; FAILWITH }
1257
                    { SWAP ;
1258
                      PUSH int 1000000000000 ;
1259
                      DIG 2 ;
1260
                      MUL ;
1261
                      SWAP ;
1262
                      DUP ;
1263
                      DUG 2 ;
1264
                      SWAP ;
1265
                      EDIV ;
1266
                      IF_NONE
1267
                        { DROP ; PUSH int 291 ; FAILWITH }
1268
                        { UNPAIR ;
1269
                          PUSH nat 0 ;
1270
                          DIG 2 ;
1271
                          COMPARE ;
1272
                          EQ ;
1273
                          IF
1274
                            { SWAP ; DROP }
1275
                            { PUSH int 0 ; DIG 2 ; COMPARE ; LT ; IF {} { PUSH int 1 ; ADD } } } ;
1276
                      ABS } ;
1277
                  DUP 4 ;
1278
                  CDR ;
1279
                  CAR ;
1280
                  PAIR ;
1281
                  DIG 3 ;
1282
                  CAR ;
1283
                  PAIR ;
1284
                  DUP ;
1285
                  CDR ;
1286
                  SWAP ;
1287
                  DUP ;
1288
                  DUG 2 ;
1289
                  CAR ;
1290
                  CDR ;
1291
                  CDR ;
1292
                  DIG 3 ;
1293
                  PAIR ;
1294
                  DIG 2 ;
1295
                  CAR ;
1296
                  CAR ;
1297
                  PAIR ;
1298
                  PAIR ;
1299
                  DUP ;
1300
                  CDR ;
1301
                  CDR ;
1302
                  DIG 2 ;
1303
                  CAR ;
1304
                  CDR ;
1305
                  CDR ;
1306
                  CAR ;
1307
                  DUP 3 ;
1308
                  CDR ;
1309
                  CAR ;
1310
                  CAR ;
1311
                  PAIR ;
1312
                  PAIR ;
1313
                  SWAP ;
1314
                  CAR ;
1315
                  PAIR } ;
1316
              DUP ;
1317
              CDR ;
1318
              CDR ;
1319
              NONE address ;
1320
              DUP 3 ;
1321
              CAR ;
1322
              CDR ;
1323
              CDR ;
1324
              DIG 3 ;
1325
              CAR ;
1326
              CAR ;
1327
              CDR ;
1328
              PAIR 4 ;
1329
              SOME }
1330
            { DROP 3 ; NONE (pair address (pair nat (pair (option address) nat))) } } }