BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • SiixPiix
FA2Ledger
operations (76)Storage Code Interact Tokens Metadata Fork Statistics Details
Latest
​x
788
 
1
parameter (or
2
            (or %adminAction
3
              (or
4
                (pair %mint (address %address)
5
                            (pair (nat %amount)
6
                                  (pair (nat %token_id) (map %metadata string bytes))))
7
                (pair %reveal (pair bytes nat) nat))
8
              (address %updateAdmin))
9
            (or %assets
10
              (or
11
                (pair %balance_of
12
                  (list %requests (pair (address %owner) (nat %token_id)))
13
                  (contract %callback (list (pair
14
                                            (pair %request (address %owner)
15
                                                           (nat %token_id))
16
                                            (nat %balance)))))
17
                (list %transfer (pair (address %from_)
18
                                     (list %txs (pair (address %to_)
19
                                                     (pair (nat %token_id) (nat %amount)))))))
20
              (list %update_operators (or
21
                                       (pair %add_operator (address %owner)
22
                                                           (pair (address %operator)
23
                                                                 (nat %token_id)))
24
                                       (pair %remove_operator (address %owner)
25
                                                              (pair (address %operator)
26
                                                                    (nat %token_id)))))));
27
storage (pair (big_map %metadata string bytes)
28
              (pair
29
                (pair %assets
30
                  (pair
31
                    (pair (big_map %ledger (pair address nat) nat) (nat %next_token_id))
32
                    (pair (big_map %operators (pair address (pair address nat)) unit)
33
                          (big_map %token_metadata nat
34
                                                   (pair (nat %token_id)
35
                                                         (map %token_info string bytes)))))
36
                  (big_map %token_total_supply nat nat))
37
                (address %admin)));
38
code { LAMBDA
39
         (pair nat
40
               (pair
41
                 (pair (pair (big_map (pair address nat) nat) nat)
42
                       (pair (big_map (pair address (pair address nat)) unit)
43
                             (big_map nat (pair nat (map string bytes)))))
44
                 (big_map nat nat)))
45
         nat
46
         { UNPAIR ; SWAP ; CDR ; SWAP ; GET ; IF_NONE { PUSH nat 0 } {} } ;
47
       LAMBDA
48
         (pair (pair address nat)
49
               (pair
50
                 (pair (pair (big_map (pair address nat) nat) nat)
51
                       (pair (big_map (pair address (pair address nat)) unit)
52
                             (big_map nat (pair nat (map string bytes)))))
53
                 (big_map nat nat)))
54
         nat
55
         { UNPAIR ; UNPAIR ; DIG 2 ; CAR ; CAR ; CAR ; DUG 2 ; PAIR ; GET ; IF_NONE { PUSH nat 0 } {} } ;
56
       LAMBDA
57
         address
58
         unit
59
         { SENDER ; COMPARE ; NEQ ; IF { PUSH string "FA2_NOT_OWNER" ; FAILWITH } { UNIT } } ;
60
       LAMBDA
61
         (pair nat
62
               (pair
63
                 (pair (pair (big_map (pair address nat) nat) nat)
64
                       (pair (big_map (pair address (pair address nat)) unit)
65
                             (big_map nat (pair nat (map string bytes)))))
66
                 (big_map nat nat)))
67
         unit
68
         { UNPAIR ;
69
           SWAP ;
70
           CAR ;
71
           CAR ;
72
           CDR ;
73
           SWAP ;
74
           COMPARE ;
75
           GE ;
76
           IF { PUSH string "FA2_TOKEN_UNDEFINED" ; FAILWITH } { UNIT } } ;
77
       NIL operation ;
78
       DIG 5 ;
79
       UNPAIR ;
80
       IF_LEFT
81
         { DIG 4 ;
82
           DROP ;
83
           PUSH bool False ;
84
           DUP 3 ;
85
           GET 4 ;
86
           SENDER ;
87
           COMPARE ;
88
           EQ ;
89
           COMPARE ;
90
           EQ ;
91
           IF { PUSH string "INVALID_ACCESS" ; FAILWITH } {} ;
92
           IF_LEFT
93
             { IF_LEFT
94
                 { PUSH nat 0 ;
95
                   DUP 3 ;
96
                   GET 3 ;
97
                   DUP 3 ;
98
                   GET 5 ;
99
                   PAIR ;
100
                   DUP 8 ;
101
                   SWAP ;
102
                   EXEC ;
103
                   COMPARE ;
104
                   GT ;
105
                   IF { PUSH string "DUPLICATE_TOKEN_ID" ; FAILWITH } {} ;
106
                   SWAP ;
107
                   DUP ;
108
                   DUP ;
109
                   DUG 3 ;
110
                   GET 3 ;
111
                   DUP ;
112
                   CDR ;
113
                   DIG 4 ;
114
                   GET 3 ;
115
                   CAR ;
116
                   CDR ;
117
                   CDR ;
118
                   DUP 5 ;
119
                   GET 6 ;
120
                   DUP 6 ;
121
                   GET 5 ;
122
                   PAIR ;
123
                   DUP 6 ;
124
                   GET 5 ;
125
                   SWAP ;
126
                   SOME ;
127
                   SWAP ;
128
                   UPDATE ;
129
                   DUP 3 ;
130
                   CAR ;
131
                   CDR ;
132
                   CAR ;
133
                   PAIR ;
134
                   DIG 2 ;
135
                   CAR ;
136
                   CAR ;
137
                   PAIR ;
138
                   PAIR ;
139
                   UPDATE 3 ;
140
                   DUP ;
141
                   DUP ;
142
                   DUG 2 ;
143
                   GET 3 ;
144
                   DUP ;
145
                   CDR ;
146
                   SWAP ;
147
                   DUP ;
148
                   DUG 2 ;
149
                   CAR ;
150
                   CDR ;
151
                   PUSH nat 1 ;
152
                   DUP 7 ;
153
                   GET 5 ;
154
                   ADD ;
155
                   DIG 5 ;
156
                   GET 3 ;
157
                   CAR ;
158
                   CAR ;
159
                   CDR ;
160
                   SWAP ;
161
                   DUP ;
162
                   DUG 2 ;
163
                   SWAP ;
164
                   DUP ;
165
                   DUG 2 ;
166
                   COMPARE ;
167
                   GT ;
168
                   IF { SWAP ; DROP } { DROP } ;
169
                   DIG 3 ;
170
                   CAR ;
171
                   CAR ;
172
                   CAR ;
173
                   PAIR ;
174
                   PAIR ;
175
                   PAIR ;
176
                   UPDATE 3 ;
177
                   DUP ;
178
                   GET 3 ;
179
                   DUP 3 ;
180
                   GET 3 ;
181
                   PAIR ;
182
                   DUP 3 ;
183
                   GET 5 ;
184
                   DIG 3 ;
185
                   CAR ;
186
                   DIG 2 ;
187
                   UNPAIR ;
188
                   SWAP ;
189
                   DUP ;
190
                   DUG 2 ;
191
                   DUP 5 ;
192
                   PAIR ;
193
                   DIG 7 ;
194
                   SWAP ;
195
                   EXEC ;
196
                   DROP ;
197
                   SWAP ;
198
                   DUP ;
199
                   DUG 2 ;
200
                   CDR ;
201
                   DUP 3 ;
202
                   CAR ;
203
                   CDR ;
204
                   DUP 4 ;
205
                   CAR ;
206
                   CAR ;
207
                   CDR ;
208
                   DUP 5 ;
209
                   CAR ;
210
                   CAR ;
211
                   CAR ;
212
                   DUP 5 ;
213
                   DIG 6 ;
214
                   DUP 9 ;
215
                   DUP 9 ;
216
                   PAIR ;
217
                   PAIR ;
218
                   DIG 11 ;
219
                   SWAP ;
220
                   EXEC ;
221
                   ADD ;
222
                   DUP 8 ;
223
                   DIG 7 ;
224
                   PAIR ;
225
                   SWAP ;
226
                   SOME ;
227
                   SWAP ;
228
                   UPDATE ;
229
                   PAIR ;
230
                   PAIR ;
231
                   PAIR ;
232
                   DUP ;
233
                   CDR ;
234
                   DUG 2 ;
235
                   DUP ;
236
                   DUG 3 ;
237
                   DUP 5 ;
238
                   PAIR ;
239
                   DIG 7 ;
240
                   SWAP ;
241
                   EXEC ;
242
                   ADD ;
243
                   DIG 3 ;
244
                   SWAP ;
245
                   SOME ;
246
                   SWAP ;
247
                   UPDATE ;
248
                   SWAP ;
249
                   CAR ;
250
                   PAIR ;
251
                   UPDATE 3 ;
252
                   SWAP ;
253
                   PAIR }
254
                 { DIG 3 ;
255
                   DIG 4 ;
256
                   DIG 5 ;
257
                   DROP 3 ;
258
                   DUP ;
259
                   DUG 2 ;
260
                   CDR ;
261
                   PAIR ;
262
                   SWAP ;
263
                   DUP ;
264
                   DUG 2 ;
265
                   CAR ;
266
                   CDR ;
267
                   DIG 2 ;
268
                   CAR ;
269
                   CAR ;
270
                   DIG 2 ;
271
                   UNPAIR ;
272
                   DIG 3 ;
273
                   INT ;
274
                   DIG 2 ;
275
                   PAIR ;
276
                   DUG 2 ;
277
                   PAIR ;
278
                   LAMBDA
279
                     (pair (pair nat bytes)
280
                           (pair
281
                             (pair (big_map string bytes)
282
                                   (pair
283
                                     (pair
284
                                       (pair (pair (big_map (pair address nat) nat) nat)
285
                                             (pair
286
                                               (big_map
287
                                                 (pair address (pair address nat))
288
                                                 unit)
289
                                               (big_map nat
290
                                                        (pair nat (map string bytes)))))
291
                                       (big_map nat nat))
292
                                     address))
293
                             int))
294
                     (pair bool
295
                           (pair
296
                             (pair (big_map string bytes)
297
                                   (pair
298
                                     (pair
299
                                       (pair (pair (big_map (pair address nat) nat) nat)
300
                                             (pair
301
                                               (big_map
302
                                                 (pair address (pair address nat))
303
                                                 unit)
304
                                               (big_map nat
305
                                                        (pair nat (map string bytes)))))
306
                                       (big_map nat nat))
307
                                     address))
308
                             int))
309
                     { UNPAIR ;
310
                       UNPAIR ;
311
                       DIG 2 ;
312
                       DUP ;
313
                       CDR ;
314
                       DIG 2 ;
315
                       INT ;
316
                       SWAP ;
317
                       DUP ;
318
                       DUG 2 ;
319
                       COMPARE ;
320
                       LE ;
321
                       IF
322
                         { SWAP ;
323
                           CAR ;
324
                           SWAP ;
325
                           DUP ;
326
                           DUG 2 ;
327
                           ABS ;
328
                           PUSH string ".json" ;
329
                           PUSH string "" ;
330
                           DUP 3 ;
331
                           PAIR ;
332
                           LAMBDA
333
                             (pair nat string)
334
                             (pair bool (pair nat string))
335
                             { DUP ;
336
                               CAR ;
337
                               PUSH nat 0 ;
338
                               SWAP ;
339
                               DUP ;
340
                               DUG 2 ;
341
                               COMPARE ;
342
                               GT ;
343
                               IF
344
                                 { SWAP ;
345
                                   CDR ;
346
                                   PUSH nat 10 ;
347
                                   DUP 3 ;
348
                                   EDIV ;
349
                                   IF_NONE { PUSH string "MOD by 0" ; FAILWITH } {} ;
350
                                   CDR ;
351
                                   EMPTY_MAP nat string ;
352
                                   PUSH string "9" ;
353
                                   SOME ;
354
                                   PUSH nat 9 ;
355
                                   UPDATE ;
356
                                   PUSH string "8" ;
357
                                   SOME ;
358
                                   PUSH nat 8 ;
359
                                   UPDATE ;
360
                                   PUSH string "7" ;
361
                                   SOME ;
362
                                   PUSH nat 7 ;
363
                                   UPDATE ;
364
                                   PUSH string "6" ;
365
                                   SOME ;
366
                                   PUSH nat 6 ;
367
                                   UPDATE ;
368
                                   PUSH string "5" ;
369
                                   SOME ;
370
                                   PUSH nat 5 ;
371
                                   UPDATE ;
372
                                   PUSH string "4" ;
373
                                   SOME ;
374
                                   PUSH nat 4 ;
375
                                   UPDATE ;
376
                                   PUSH string "3" ;
377
                                   SOME ;
378
                                   PUSH nat 3 ;
379
                                   UPDATE ;
380
                                   PUSH string "2" ;
381
                                   SOME ;
382
                                   PUSH nat 2 ;
383
                                   UPDATE ;
384
                                   PUSH string "1" ;
385
                                   SOME ;
386
                                   PUSH nat 1 ;
387
                                   UPDATE ;
388
                                   PUSH string "0" ;
389
                                   SOME ;
390
                                   PUSH nat 0 ;
391
                                   UPDATE ;
392
                                   SWAP ;
393
                                   GET ;
394
                                   IF_NONE { PUSH string "INVALID_NAT" ; FAILWITH } {} ;
395
                                   CONCAT ;
396
                                   PUSH nat 10 ;
397
                                   DIG 2 ;
398
                                   EDIV ;
399
                                   IF_NONE { PUSH string "DIV by 0" ; FAILWITH } {} ;
400
                                   CAR ;
401
                                   PAIR ;
402
                                   PUSH bool True ;
403
                                   PAIR }
404
                                 { DROP ; PUSH bool False ; PAIR } } ;
405
                           SWAP ;
406
                           PUSH bool True ;
407
                           LOOP { DIP { DUP } ; EXEC ; UNPAIR } ;
408
                           SWAP ;
409
                           DROP ;
410
                           CDR ;
411
                           PUSH string "" ;
412
                           SWAP ;
413
                           DUP ;
414
                           DUG 2 ;
415
                           COMPARE ;
416
                           EQ ;
417
                           IF { DROP ; PUSH string "0" } {} ;
418
                           CONCAT ;
419
                           PACK ;
420
                           DIG 2 ;
421
                           DUP ;
422
                           DUP ;
423
                           DUG 4 ;
424
                           GET 3 ;
425
                           DUP ;
426
                           CDR ;
427
                           DIG 5 ;
428
                           GET 3 ;
429
                           CAR ;
430
                           CDR ;
431
                           CDR ;
432
                           EMPTY_MAP string bytes ;
433
                           DUP 6 ;
434
                           PUSH nat 6 ;
435
                           DIG 7 ;
436
                           SIZE ;
437
                           SUB ;
438
                           ABS ;
439
                           PUSH nat 6 ;
440
                           SLICE ;
441
                           IF_NONE { PUSH string "SLICE" ; FAILWITH } {} ;
442
                           DIG 8 ;
443
                           CONCAT ;
444
                           SOME ;
445
                           PUSH string "" ;
446
                           UPDATE ;
447
                           DUP 6 ;
448
                           PAIR ;
449
                           DIG 5 ;
450
                           SWAP ;
451
                           SOME ;
452
                           SWAP ;
453
                           UPDATE ;
454
                           DUP 3 ;
455
                           CAR ;
456
                           CDR ;
457
                           CAR ;
458
                           PAIR ;
459
                           DIG 2 ;
460
                           CAR ;
461
                           CAR ;
462
                           PAIR ;
463
                           PAIR ;
464
                           UPDATE 3 ;
465
                           PUSH int 1 ;
466
                           DIG 2 ;
467
                           ADD ;
468
                           SWAP ;
469
                           PAIR ;
470
                           PUSH bool True ;
471
                           PAIR }
472
                         { DIG 2 ; DROP 2 ; PUSH bool False ; PAIR } } ;
473
                   SWAP ;
474
                   APPLY ;
475
                   SWAP ;
476
                   PUSH bool True ;
477
                   LOOP { DIP { DUP } ; EXEC ; UNPAIR } ;
478
                   SWAP ;
479
                   DROP ;
480
                   CAR ;
481
                   SWAP ;
482
                   PAIR } }
483
             { DIG 3 ; DIG 4 ; DIG 5 ; DROP 3 ; UPDATE 4 ; SWAP ; PAIR } }
484
         { DIG 2 ;
485
           DIG 6 ;
486
           DROP 2 ;
487
           SWAP ;
488
           DUP ;
489
           DUG 2 ;
490
           GET 3 ;
491
           SWAP ;
492
           IF_LEFT
493
             { DIG 4 ;
494
               DROP ;
495
               IF_LEFT
496
                 { SWAP ;
497
                   DUP ;
498
                   DIG 2 ;
499
                   NIL (pair (pair address nat) nat) ;
500
                   SWAP ;
501
                   DUP ;
502
                   DUG 2 ;
503
                   CAR ;
504
                   ITER { SWAP ;
505
                          DUP 4 ;
506
                          DUP 3 ;
507
                          CDR ;
508
                          PAIR ;
509
                          DUP 8 ;
510
                          SWAP ;
511
                          EXEC ;
512
                          DROP ;
513
                          SWAP ;
514
                          DUP ;
515
                          DUG 2 ;
516
                          DUP 5 ;
517
                          DUP 4 ;
518
                          CDR ;
519
                          DIG 4 ;
520
                          CAR ;
521
                          PAIR ;
522
                          PAIR ;
523
                          DUP 9 ;
524
                          SWAP ;
525
                          EXEC ;
526
                          SWAP ;
527
                          PAIR ;
528
                          CONS } ;
529
                   DIG 2 ;
530
                   DIG 5 ;
531
                   DIG 6 ;
532
                   DROP 3 ;
533
                   NIL operation ;
534
                   DIG 2 ;
535
                   CDR ;
536
                   PUSH mutez 0 ;
537
                   DIG 3 ;
538
                   TRANSFER_TOKENS ;
539
                   CONS ;
540
                   PAIR }
541
                 { ITER { DUP ;
542
                          DUG 2 ;
543
                          CDR ;
544
                          ITER { SWAP ;
545
                                 DUP ;
546
                                 DUP 3 ;
547
                                 GET 3 ;
548
                                 PAIR ;
549
                                 SENDER ;
550
                                 DUP 5 ;
551
                                 CAR ;
552
                                 DIG 2 ;
553
                                 UNPAIR ;
554
                                 PUSH bool False ;
555
                                 DIG 2 ;
556
                                 CAR ;
557
                                 CDR ;
558
                                 CAR ;
559
                                 DIG 2 ;
560
                                 DUP 5 ;
561
                                 PAIR ;
562
                                 DUP 4 ;
563
                                 PAIR ;
564
                                 MEM ;
565
                                 COMPARE ;
566
                                 EQ ;
567
                                 DUG 2 ;
568
                                 COMPARE ;
569
                                 NEQ ;
570
                                 AND ;
571
                                 IF { PUSH string "FA2_NOT_OPERATOR" ; FAILWITH } {} ;
572
                                 DUP ;
573
                                 DUP 3 ;
574
                                 GET 3 ;
575
                                 PAIR ;
576
                                 DUP 6 ;
577
                                 SWAP ;
578
                                 EXEC ;
579
                                 DROP ;
580
                                 DUP ;
581
                                 DUP 3 ;
582
                                 GET 3 ;
583
                                 DUP 5 ;
584
                                 CAR ;
585
                                 PAIR ;
586
                                 PAIR ;
587
                                 DUP 7 ;
588
                                 SWAP ;
589
                                 EXEC ;
590
                                 DUP 3 ;
591
                                 GET 4 ;
592
                                 SWAP ;
593
                                 DUP ;
594
                                 DUG 2 ;
595
                                 COMPARE ;
596
                                 LT ;
597
                                 IF
598
                                   { PUSH string "FA2_INSUFFICIENT_BALANCE" ; FAILWITH }
599
                                   {} ;
600
                                 SWAP ;
601
                                 DUP ;
602
                                 DUG 2 ;
603
                                 CDR ;
604
                                 DUP 3 ;
605
                                 CAR ;
606
                                 CDR ;
607
                                 DUP 4 ;
608
                                 CAR ;
609
                                 CAR ;
610
                                 CDR ;
611
                                 DIG 4 ;
612
                                 CAR ;
613
                                 CAR ;
614
                                 CAR ;
615
                                 DUP 6 ;
616
                                 GET 4 ;
617
                                 DIG 5 ;
618
                                 SUB ;
619
                                 ABS ;
620
                                 DUP 6 ;
621
                                 GET 3 ;
622
                                 DUP 8 ;
623
                                 CAR ;
624
                                 PAIR ;
625
                                 SWAP ;
626
                                 SOME ;
627
                                 SWAP ;
628
                                 UPDATE ;
629
                                 PAIR ;
630
                                 PAIR ;
631
                                 PAIR ;
632
                                 DUP ;
633
                                 DUP 3 ;
634
                                 GET 3 ;
635
                                 DUP 4 ;
636
                                 CAR ;
637
                                 PAIR ;
638
                                 PAIR ;
639
                                 DUP 7 ;
640
                                 SWAP ;
641
                                 EXEC ;
642
                                 SWAP ;
643
                                 DUP ;
644
                                 DUG 2 ;
645
                                 CDR ;
646
                                 DUP 3 ;
647
                                 CAR ;
648
                                 CDR ;
649
                                 DUP 4 ;
650
                                 CAR ;
651
                                 CAR ;
652
                                 CDR ;
653
                                 DIG 4 ;
654
                                 CAR ;
655
                                 CAR ;
656
                                 CAR ;
657
                                 DUP 6 ;
658
                                 GET 4 ;
659
                                 DIG 5 ;
660
                                 ADD ;
661
                                 DUP 6 ;
662
                                 GET 3 ;
663
                                 DIG 6 ;
664
                                 CAR ;
665
                                 PAIR ;
666
                                 SWAP ;
667
                                 SOME ;
668
                                 SWAP ;
669
                                 UPDATE ;
670
                                 PAIR ;
671
                                 PAIR ;
672
                                 PAIR } ;
673
                          SWAP ;
674
                          DROP } ;
675
                   DIG 2 ;
676
                   DIG 3 ;
677
                   DROP 2 ;
678
                   NIL operation ;
679
                   PAIR } }
680
             { DIG 5 ;
681
               DROP ;
682
               ITER { IF_LEFT
683
                        { SWAP ;
684
                          DUP ;
685
                          DUG 2 ;
686
                          SWAP ;
687
                          DUP ;
688
                          DUG 2 ;
689
                          GET 4 ;
690
                          PAIR ;
691
                          DUP 5 ;
692
                          SWAP ;
693
                          EXEC ;
694
                          DROP ;
695
                          DUP ;
696
                          CAR ;
697
                          DUP 6 ;
698
                          SWAP ;
699
                          EXEC ;
700
                          DROP ;
701
                          SWAP ;
702
                          DUP ;
703
                          DUG 2 ;
704
                          CDR ;
705
                          DUP 3 ;
706
                          CAR ;
707
                          CDR ;
708
                          CDR ;
709
                          DUP 4 ;
710
                          CAR ;
711
                          CDR ;
712
                          CAR ;
713
                          UNIT ;
714
                          SOME ;
715
                          DUP 5 ;
716
                          GET 4 ;
717
                          DUP 6 ;
718
                          GET 3 ;
719
                          PAIR ;
720
                          DIG 5 ;
721
                          CAR ;
722
                          PAIR ;
723
                          UPDATE ;
724
                          PAIR ;
725
                          DIG 2 ;
726
                          CAR ;
727
                          CAR ;
728
                          PAIR ;
729
                          PAIR }
730
                        { SWAP ;
731
                          DUP ;
732
                          DUG 2 ;
733
                          SWAP ;
734
                          DUP ;
735
                          DUG 2 ;
736
                          GET 4 ;
737
                          PAIR ;
738
                          DUP 5 ;
739
                          SWAP ;
740
                          EXEC ;
741
                          DROP ;
742
                          DUP ;
743
                          CAR ;
744
                          DUP 6 ;
745
                          SWAP ;
746
                          EXEC ;
747
                          DROP ;
748
                          SWAP ;
749
                          DUP ;
750
                          DUG 2 ;
751
                          CDR ;
752
                          DUP 3 ;
753
                          CAR ;
754
                          CDR ;
755
                          CDR ;
756
                          DUP 4 ;
757
                          CAR ;
758
                          CDR ;
759
                          CAR ;
760
                          DUP 4 ;
761
                          GET 4 ;
762
                          DUP 5 ;
763
                          GET 3 ;
764
                          PAIR ;
765
                          DIG 4 ;
766
                          CAR ;
767
                          PAIR ;
768
                          NONE unit ;
769
                          SWAP ;
770
                          UPDATE ;
771
                          PAIR ;
772
                          DIG 2 ;
773
                          CAR ;
774
                          CAR ;
775
                          PAIR ;
776
                          PAIR } } ;
777
               DIG 2 ;
778
               DIG 3 ;
779
               DROP 2 ;
780
               NIL operation ;
781
               PAIR } ;
782
           DUP ;
783
           DUG 2 ;
784
           CDR ;
785
           UPDATE 3 ;
786
           SWAP ;
787
           CAR ;
788
           PAIR } }