@taqueria/plugin-contract-types 0.0.0-pr-91-a8fa7172

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