simplicity/jet/init/bitcoin.rs
1/* This file has been automatically generated. */
2
3use crate::jet::type_name::TypeName;
4use crate::jet::Jet;
5use crate::merkle::cmr::Cmr;
6use crate::decode_bits;
7use crate::{decode, BitIter, BitWriter};
8use crate::analysis::Cost;
9use hashes::sha256::Midstate;
10use simplicity_sys::CFrameItem;
11use std::io::Write;
12use std::{fmt, str};
13use crate::jet::bitcoin::BitcoinEnv;
14
15/// The Bitcoin jet family.
16#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
17pub enum Bitcoin {
18 Add16,
19 Add32,
20 Add64,
21 Add8,
22 All16,
23 All32,
24 All64,
25 All8,
26 And1,
27 And16,
28 And32,
29 And64,
30 And8,
31 Bip0340Verify,
32 Ch1,
33 Ch16,
34 Ch32,
35 Ch64,
36 Ch8,
37 CheckLockDistance,
38 CheckLockDuration,
39 CheckLockHeight,
40 CheckLockTime,
41 CheckSigVerify,
42 Complement1,
43 Complement16,
44 Complement32,
45 Complement64,
46 Complement8,
47 CurrentAnnexHash,
48 CurrentIndex,
49 CurrentPrevOutpoint,
50 CurrentScriptSigHash,
51 CurrentSequence,
52 CurrentValue,
53 Decompress,
54 Decrement16,
55 Decrement32,
56 Decrement64,
57 Decrement8,
58 DivMod128_64,
59 DivMod16,
60 DivMod32,
61 DivMod64,
62 DivMod8,
63 Divide16,
64 Divide32,
65 Divide64,
66 Divide8,
67 Divides16,
68 Divides32,
69 Divides64,
70 Divides8,
71 Eq1,
72 Eq16,
73 Eq256,
74 Eq32,
75 Eq64,
76 Eq8,
77 FeAdd,
78 FeInvert,
79 FeIsOdd,
80 FeIsZero,
81 FeMultiply,
82 FeMultiplyBeta,
83 FeNegate,
84 FeNormalize,
85 FeSquare,
86 FeSquareRoot,
87 FullAdd16,
88 FullAdd32,
89 FullAdd64,
90 FullAdd8,
91 FullDecrement16,
92 FullDecrement32,
93 FullDecrement64,
94 FullDecrement8,
95 FullIncrement16,
96 FullIncrement32,
97 FullIncrement64,
98 FullIncrement8,
99 FullLeftShift16_1,
100 FullLeftShift16_2,
101 FullLeftShift16_4,
102 FullLeftShift16_8,
103 FullLeftShift32_1,
104 FullLeftShift32_16,
105 FullLeftShift32_2,
106 FullLeftShift32_4,
107 FullLeftShift32_8,
108 FullLeftShift64_1,
109 FullLeftShift64_16,
110 FullLeftShift64_2,
111 FullLeftShift64_32,
112 FullLeftShift64_4,
113 FullLeftShift64_8,
114 FullLeftShift8_1,
115 FullLeftShift8_2,
116 FullLeftShift8_4,
117 FullMultiply16,
118 FullMultiply32,
119 FullMultiply64,
120 FullMultiply8,
121 FullRightShift16_1,
122 FullRightShift16_2,
123 FullRightShift16_4,
124 FullRightShift16_8,
125 FullRightShift32_1,
126 FullRightShift32_16,
127 FullRightShift32_2,
128 FullRightShift32_4,
129 FullRightShift32_8,
130 FullRightShift64_1,
131 FullRightShift64_16,
132 FullRightShift64_2,
133 FullRightShift64_32,
134 FullRightShift64_4,
135 FullRightShift64_8,
136 FullRightShift8_1,
137 FullRightShift8_2,
138 FullRightShift8_4,
139 FullSubtract16,
140 FullSubtract32,
141 FullSubtract64,
142 FullSubtract8,
143 GeIsOnCurve,
144 GeNegate,
145 GejAdd,
146 GejDouble,
147 GejEquiv,
148 GejGeAdd,
149 GejGeAddEx,
150 GejGeEquiv,
151 GejInfinity,
152 GejIsInfinity,
153 GejIsOnCurve,
154 GejNegate,
155 GejNormalize,
156 GejRescale,
157 GejXEquiv,
158 GejYIsOdd,
159 Generate,
160 HashToCurve,
161 High1,
162 High16,
163 High32,
164 High64,
165 High8,
166 Increment16,
167 Increment32,
168 Increment64,
169 Increment8,
170 InputAnnexHash,
171 InputPrevOutpoint,
172 InputScriptSigHash,
173 InputSequence,
174 InputValue,
175 InternalKey,
176 IsOne16,
177 IsOne32,
178 IsOne64,
179 IsOne8,
180 IsZero16,
181 IsZero32,
182 IsZero64,
183 IsZero8,
184 Le16,
185 Le32,
186 Le64,
187 Le8,
188 LeftExtend16_32,
189 LeftExtend16_64,
190 LeftExtend1_16,
191 LeftExtend1_32,
192 LeftExtend1_64,
193 LeftExtend1_8,
194 LeftExtend32_64,
195 LeftExtend8_16,
196 LeftExtend8_32,
197 LeftExtend8_64,
198 LeftPadHigh16_32,
199 LeftPadHigh16_64,
200 LeftPadHigh1_16,
201 LeftPadHigh1_32,
202 LeftPadHigh1_64,
203 LeftPadHigh1_8,
204 LeftPadHigh32_64,
205 LeftPadHigh8_16,
206 LeftPadHigh8_32,
207 LeftPadHigh8_64,
208 LeftPadLow16_32,
209 LeftPadLow16_64,
210 LeftPadLow1_16,
211 LeftPadLow1_32,
212 LeftPadLow1_64,
213 LeftPadLow1_8,
214 LeftPadLow32_64,
215 LeftPadLow8_16,
216 LeftPadLow8_32,
217 LeftPadLow8_64,
218 LeftRotate16,
219 LeftRotate32,
220 LeftRotate64,
221 LeftRotate8,
222 LeftShift16,
223 LeftShift32,
224 LeftShift64,
225 LeftShift8,
226 LeftShiftWith16,
227 LeftShiftWith32,
228 LeftShiftWith64,
229 LeftShiftWith8,
230 Leftmost16_1,
231 Leftmost16_2,
232 Leftmost16_4,
233 Leftmost16_8,
234 Leftmost32_1,
235 Leftmost32_16,
236 Leftmost32_2,
237 Leftmost32_4,
238 Leftmost32_8,
239 Leftmost64_1,
240 Leftmost64_16,
241 Leftmost64_2,
242 Leftmost64_32,
243 Leftmost64_4,
244 Leftmost64_8,
245 Leftmost8_1,
246 Leftmost8_2,
247 Leftmost8_4,
248 LinearCombination1,
249 LinearVerify1,
250 LockTime,
251 Low1,
252 Low16,
253 Low32,
254 Low64,
255 Low8,
256 Lt16,
257 Lt32,
258 Lt64,
259 Lt8,
260 Maj1,
261 Maj16,
262 Maj32,
263 Maj64,
264 Maj8,
265 Max16,
266 Max32,
267 Max64,
268 Max8,
269 Median16,
270 Median32,
271 Median64,
272 Median8,
273 Min16,
274 Min32,
275 Min64,
276 Min8,
277 Modulo16,
278 Modulo32,
279 Modulo64,
280 Modulo8,
281 Multiply16,
282 Multiply32,
283 Multiply64,
284 Multiply8,
285 Negate16,
286 Negate32,
287 Negate64,
288 Negate8,
289 NumInputs,
290 NumOutputs,
291 One16,
292 One32,
293 One64,
294 One8,
295 Or1,
296 Or16,
297 Or32,
298 Or64,
299 Or8,
300 OutputScriptHash,
301 OutputValue,
302 ParseLock,
303 ParseSequence,
304 PointVerify1,
305 RightExtend16_32,
306 RightExtend16_64,
307 RightExtend32_64,
308 RightExtend8_16,
309 RightExtend8_32,
310 RightExtend8_64,
311 RightPadHigh16_32,
312 RightPadHigh16_64,
313 RightPadHigh1_16,
314 RightPadHigh1_32,
315 RightPadHigh1_64,
316 RightPadHigh1_8,
317 RightPadHigh32_64,
318 RightPadHigh8_16,
319 RightPadHigh8_32,
320 RightPadHigh8_64,
321 RightPadLow16_32,
322 RightPadLow16_64,
323 RightPadLow1_16,
324 RightPadLow1_32,
325 RightPadLow1_64,
326 RightPadLow1_8,
327 RightPadLow32_64,
328 RightPadLow8_16,
329 RightPadLow8_32,
330 RightPadLow8_64,
331 RightRotate16,
332 RightRotate32,
333 RightRotate64,
334 RightRotate8,
335 RightShift16,
336 RightShift32,
337 RightShift64,
338 RightShift8,
339 RightShiftWith16,
340 RightShiftWith32,
341 RightShiftWith64,
342 RightShiftWith8,
343 Rightmost16_1,
344 Rightmost16_2,
345 Rightmost16_4,
346 Rightmost16_8,
347 Rightmost32_1,
348 Rightmost32_16,
349 Rightmost32_2,
350 Rightmost32_4,
351 Rightmost32_8,
352 Rightmost64_1,
353 Rightmost64_16,
354 Rightmost64_2,
355 Rightmost64_32,
356 Rightmost64_4,
357 Rightmost64_8,
358 Rightmost8_1,
359 Rightmost8_2,
360 Rightmost8_4,
361 ScalarAdd,
362 ScalarInvert,
363 ScalarIsZero,
364 ScalarMultiply,
365 ScalarMultiplyLambda,
366 ScalarNegate,
367 ScalarNormalize,
368 ScalarSquare,
369 Scale,
370 ScriptCMR,
371 Sha256Block,
372 Sha256Ctx8Add1,
373 Sha256Ctx8Add128,
374 Sha256Ctx8Add16,
375 Sha256Ctx8Add2,
376 Sha256Ctx8Add256,
377 Sha256Ctx8Add32,
378 Sha256Ctx8Add4,
379 Sha256Ctx8Add512,
380 Sha256Ctx8Add64,
381 Sha256Ctx8Add8,
382 Sha256Ctx8AddBuffer511,
383 Sha256Ctx8Finalize,
384 Sha256Ctx8Init,
385 Sha256Iv,
386 Some1,
387 Some16,
388 Some32,
389 Some64,
390 Some8,
391 Subtract16,
392 Subtract32,
393 Subtract64,
394 Subtract8,
395 Swu,
396 TapdataInit,
397 TapleafVersion,
398 Tappath,
399 TotalInputValue,
400 TotalOutputValue,
401 TxIsFinal,
402 TxLockDistance,
403 TxLockDuration,
404 TxLockHeight,
405 TxLockTime,
406 Verify,
407 Version,
408 Xor1,
409 Xor16,
410 Xor32,
411 Xor64,
412 Xor8,
413 XorXor1,
414 XorXor16,
415 XorXor32,
416 XorXor64,
417 XorXor8,
418}
419
420impl Bitcoin {
421 /// Array of all Bitcoin jets.
422 pub const ALL: [Self; 400] = [
423 Self::Add16,
424 Self::Add32,
425 Self::Add64,
426 Self::Add8,
427 Self::All16,
428 Self::All32,
429 Self::All64,
430 Self::All8,
431 Self::And1,
432 Self::And16,
433 Self::And32,
434 Self::And64,
435 Self::And8,
436 Self::Bip0340Verify,
437 Self::Ch1,
438 Self::Ch16,
439 Self::Ch32,
440 Self::Ch64,
441 Self::Ch8,
442 Self::CheckLockDistance,
443 Self::CheckLockDuration,
444 Self::CheckLockHeight,
445 Self::CheckLockTime,
446 Self::CheckSigVerify,
447 Self::Complement1,
448 Self::Complement16,
449 Self::Complement32,
450 Self::Complement64,
451 Self::Complement8,
452 Self::CurrentAnnexHash,
453 Self::CurrentIndex,
454 Self::CurrentPrevOutpoint,
455 Self::CurrentScriptSigHash,
456 Self::CurrentSequence,
457 Self::CurrentValue,
458 Self::Decompress,
459 Self::Decrement16,
460 Self::Decrement32,
461 Self::Decrement64,
462 Self::Decrement8,
463 Self::DivMod128_64,
464 Self::DivMod16,
465 Self::DivMod32,
466 Self::DivMod64,
467 Self::DivMod8,
468 Self::Divide16,
469 Self::Divide32,
470 Self::Divide64,
471 Self::Divide8,
472 Self::Divides16,
473 Self::Divides32,
474 Self::Divides64,
475 Self::Divides8,
476 Self::Eq1,
477 Self::Eq16,
478 Self::Eq256,
479 Self::Eq32,
480 Self::Eq64,
481 Self::Eq8,
482 Self::FeAdd,
483 Self::FeInvert,
484 Self::FeIsOdd,
485 Self::FeIsZero,
486 Self::FeMultiply,
487 Self::FeMultiplyBeta,
488 Self::FeNegate,
489 Self::FeNormalize,
490 Self::FeSquare,
491 Self::FeSquareRoot,
492 Self::FullAdd16,
493 Self::FullAdd32,
494 Self::FullAdd64,
495 Self::FullAdd8,
496 Self::FullDecrement16,
497 Self::FullDecrement32,
498 Self::FullDecrement64,
499 Self::FullDecrement8,
500 Self::FullIncrement16,
501 Self::FullIncrement32,
502 Self::FullIncrement64,
503 Self::FullIncrement8,
504 Self::FullLeftShift16_1,
505 Self::FullLeftShift16_2,
506 Self::FullLeftShift16_4,
507 Self::FullLeftShift16_8,
508 Self::FullLeftShift32_1,
509 Self::FullLeftShift32_16,
510 Self::FullLeftShift32_2,
511 Self::FullLeftShift32_4,
512 Self::FullLeftShift32_8,
513 Self::FullLeftShift64_1,
514 Self::FullLeftShift64_16,
515 Self::FullLeftShift64_2,
516 Self::FullLeftShift64_32,
517 Self::FullLeftShift64_4,
518 Self::FullLeftShift64_8,
519 Self::FullLeftShift8_1,
520 Self::FullLeftShift8_2,
521 Self::FullLeftShift8_4,
522 Self::FullMultiply16,
523 Self::FullMultiply32,
524 Self::FullMultiply64,
525 Self::FullMultiply8,
526 Self::FullRightShift16_1,
527 Self::FullRightShift16_2,
528 Self::FullRightShift16_4,
529 Self::FullRightShift16_8,
530 Self::FullRightShift32_1,
531 Self::FullRightShift32_16,
532 Self::FullRightShift32_2,
533 Self::FullRightShift32_4,
534 Self::FullRightShift32_8,
535 Self::FullRightShift64_1,
536 Self::FullRightShift64_16,
537 Self::FullRightShift64_2,
538 Self::FullRightShift64_32,
539 Self::FullRightShift64_4,
540 Self::FullRightShift64_8,
541 Self::FullRightShift8_1,
542 Self::FullRightShift8_2,
543 Self::FullRightShift8_4,
544 Self::FullSubtract16,
545 Self::FullSubtract32,
546 Self::FullSubtract64,
547 Self::FullSubtract8,
548 Self::GeIsOnCurve,
549 Self::GeNegate,
550 Self::GejAdd,
551 Self::GejDouble,
552 Self::GejEquiv,
553 Self::GejGeAdd,
554 Self::GejGeAddEx,
555 Self::GejGeEquiv,
556 Self::GejInfinity,
557 Self::GejIsInfinity,
558 Self::GejIsOnCurve,
559 Self::GejNegate,
560 Self::GejNormalize,
561 Self::GejRescale,
562 Self::GejXEquiv,
563 Self::GejYIsOdd,
564 Self::Generate,
565 Self::HashToCurve,
566 Self::High1,
567 Self::High16,
568 Self::High32,
569 Self::High64,
570 Self::High8,
571 Self::Increment16,
572 Self::Increment32,
573 Self::Increment64,
574 Self::Increment8,
575 Self::InputAnnexHash,
576 Self::InputPrevOutpoint,
577 Self::InputScriptSigHash,
578 Self::InputSequence,
579 Self::InputValue,
580 Self::InternalKey,
581 Self::IsOne16,
582 Self::IsOne32,
583 Self::IsOne64,
584 Self::IsOne8,
585 Self::IsZero16,
586 Self::IsZero32,
587 Self::IsZero64,
588 Self::IsZero8,
589 Self::Le16,
590 Self::Le32,
591 Self::Le64,
592 Self::Le8,
593 Self::LeftExtend16_32,
594 Self::LeftExtend16_64,
595 Self::LeftExtend1_16,
596 Self::LeftExtend1_32,
597 Self::LeftExtend1_64,
598 Self::LeftExtend1_8,
599 Self::LeftExtend32_64,
600 Self::LeftExtend8_16,
601 Self::LeftExtend8_32,
602 Self::LeftExtend8_64,
603 Self::LeftPadHigh16_32,
604 Self::LeftPadHigh16_64,
605 Self::LeftPadHigh1_16,
606 Self::LeftPadHigh1_32,
607 Self::LeftPadHigh1_64,
608 Self::LeftPadHigh1_8,
609 Self::LeftPadHigh32_64,
610 Self::LeftPadHigh8_16,
611 Self::LeftPadHigh8_32,
612 Self::LeftPadHigh8_64,
613 Self::LeftPadLow16_32,
614 Self::LeftPadLow16_64,
615 Self::LeftPadLow1_16,
616 Self::LeftPadLow1_32,
617 Self::LeftPadLow1_64,
618 Self::LeftPadLow1_8,
619 Self::LeftPadLow32_64,
620 Self::LeftPadLow8_16,
621 Self::LeftPadLow8_32,
622 Self::LeftPadLow8_64,
623 Self::LeftRotate16,
624 Self::LeftRotate32,
625 Self::LeftRotate64,
626 Self::LeftRotate8,
627 Self::LeftShift16,
628 Self::LeftShift32,
629 Self::LeftShift64,
630 Self::LeftShift8,
631 Self::LeftShiftWith16,
632 Self::LeftShiftWith32,
633 Self::LeftShiftWith64,
634 Self::LeftShiftWith8,
635 Self::Leftmost16_1,
636 Self::Leftmost16_2,
637 Self::Leftmost16_4,
638 Self::Leftmost16_8,
639 Self::Leftmost32_1,
640 Self::Leftmost32_16,
641 Self::Leftmost32_2,
642 Self::Leftmost32_4,
643 Self::Leftmost32_8,
644 Self::Leftmost64_1,
645 Self::Leftmost64_16,
646 Self::Leftmost64_2,
647 Self::Leftmost64_32,
648 Self::Leftmost64_4,
649 Self::Leftmost64_8,
650 Self::Leftmost8_1,
651 Self::Leftmost8_2,
652 Self::Leftmost8_4,
653 Self::LinearCombination1,
654 Self::LinearVerify1,
655 Self::LockTime,
656 Self::Low1,
657 Self::Low16,
658 Self::Low32,
659 Self::Low64,
660 Self::Low8,
661 Self::Lt16,
662 Self::Lt32,
663 Self::Lt64,
664 Self::Lt8,
665 Self::Maj1,
666 Self::Maj16,
667 Self::Maj32,
668 Self::Maj64,
669 Self::Maj8,
670 Self::Max16,
671 Self::Max32,
672 Self::Max64,
673 Self::Max8,
674 Self::Median16,
675 Self::Median32,
676 Self::Median64,
677 Self::Median8,
678 Self::Min16,
679 Self::Min32,
680 Self::Min64,
681 Self::Min8,
682 Self::Modulo16,
683 Self::Modulo32,
684 Self::Modulo64,
685 Self::Modulo8,
686 Self::Multiply16,
687 Self::Multiply32,
688 Self::Multiply64,
689 Self::Multiply8,
690 Self::Negate16,
691 Self::Negate32,
692 Self::Negate64,
693 Self::Negate8,
694 Self::NumInputs,
695 Self::NumOutputs,
696 Self::One16,
697 Self::One32,
698 Self::One64,
699 Self::One8,
700 Self::Or1,
701 Self::Or16,
702 Self::Or32,
703 Self::Or64,
704 Self::Or8,
705 Self::OutputScriptHash,
706 Self::OutputValue,
707 Self::ParseLock,
708 Self::ParseSequence,
709 Self::PointVerify1,
710 Self::RightExtend16_32,
711 Self::RightExtend16_64,
712 Self::RightExtend32_64,
713 Self::RightExtend8_16,
714 Self::RightExtend8_32,
715 Self::RightExtend8_64,
716 Self::RightPadHigh16_32,
717 Self::RightPadHigh16_64,
718 Self::RightPadHigh1_16,
719 Self::RightPadHigh1_32,
720 Self::RightPadHigh1_64,
721 Self::RightPadHigh1_8,
722 Self::RightPadHigh32_64,
723 Self::RightPadHigh8_16,
724 Self::RightPadHigh8_32,
725 Self::RightPadHigh8_64,
726 Self::RightPadLow16_32,
727 Self::RightPadLow16_64,
728 Self::RightPadLow1_16,
729 Self::RightPadLow1_32,
730 Self::RightPadLow1_64,
731 Self::RightPadLow1_8,
732 Self::RightPadLow32_64,
733 Self::RightPadLow8_16,
734 Self::RightPadLow8_32,
735 Self::RightPadLow8_64,
736 Self::RightRotate16,
737 Self::RightRotate32,
738 Self::RightRotate64,
739 Self::RightRotate8,
740 Self::RightShift16,
741 Self::RightShift32,
742 Self::RightShift64,
743 Self::RightShift8,
744 Self::RightShiftWith16,
745 Self::RightShiftWith32,
746 Self::RightShiftWith64,
747 Self::RightShiftWith8,
748 Self::Rightmost16_1,
749 Self::Rightmost16_2,
750 Self::Rightmost16_4,
751 Self::Rightmost16_8,
752 Self::Rightmost32_1,
753 Self::Rightmost32_16,
754 Self::Rightmost32_2,
755 Self::Rightmost32_4,
756 Self::Rightmost32_8,
757 Self::Rightmost64_1,
758 Self::Rightmost64_16,
759 Self::Rightmost64_2,
760 Self::Rightmost64_32,
761 Self::Rightmost64_4,
762 Self::Rightmost64_8,
763 Self::Rightmost8_1,
764 Self::Rightmost8_2,
765 Self::Rightmost8_4,
766 Self::ScalarAdd,
767 Self::ScalarInvert,
768 Self::ScalarIsZero,
769 Self::ScalarMultiply,
770 Self::ScalarMultiplyLambda,
771 Self::ScalarNegate,
772 Self::ScalarNormalize,
773 Self::ScalarSquare,
774 Self::Scale,
775 Self::ScriptCMR,
776 Self::Sha256Block,
777 Self::Sha256Ctx8Add1,
778 Self::Sha256Ctx8Add128,
779 Self::Sha256Ctx8Add16,
780 Self::Sha256Ctx8Add2,
781 Self::Sha256Ctx8Add256,
782 Self::Sha256Ctx8Add32,
783 Self::Sha256Ctx8Add4,
784 Self::Sha256Ctx8Add512,
785 Self::Sha256Ctx8Add64,
786 Self::Sha256Ctx8Add8,
787 Self::Sha256Ctx8AddBuffer511,
788 Self::Sha256Ctx8Finalize,
789 Self::Sha256Ctx8Init,
790 Self::Sha256Iv,
791 Self::Some1,
792 Self::Some16,
793 Self::Some32,
794 Self::Some64,
795 Self::Some8,
796 Self::Subtract16,
797 Self::Subtract32,
798 Self::Subtract64,
799 Self::Subtract8,
800 Self::Swu,
801 Self::TapdataInit,
802 Self::TapleafVersion,
803 Self::Tappath,
804 Self::TotalInputValue,
805 Self::TotalOutputValue,
806 Self::TxIsFinal,
807 Self::TxLockDistance,
808 Self::TxLockDuration,
809 Self::TxLockHeight,
810 Self::TxLockTime,
811 Self::Verify,
812 Self::Version,
813 Self::Xor1,
814 Self::Xor16,
815 Self::Xor32,
816 Self::Xor64,
817 Self::Xor8,
818 Self::XorXor1,
819 Self::XorXor16,
820 Self::XorXor32,
821 Self::XorXor64,
822 Self::XorXor8,
823 ];
824}
825
826impl Jet for Bitcoin {
827
828 type Environment = BitcoinEnv;
829 type CJetEnvironment = ();
830
831 fn c_jet_env(_env: &Self::Environment) -> &Self::CJetEnvironment {
832 unimplemented!("Unspecified CJetEnvironment for Bitcoin jets")
833 }
834
835 fn cmr(&self) -> Cmr {
836 unimplemented!("Bitcoin jet CMRs weights have not yet been implemented.")
837 }
838
839 fn source_ty(&self) -> TypeName {
840 let name: &'static [u8] = match self {
841 Bitcoin::Add16 => b"i",
842 Bitcoin::Add32 => b"l",
843 Bitcoin::Add64 => b"*ll",
844 Bitcoin::Add8 => b"****22*22**22*22***22*22**22*22",
845 Bitcoin::All16 => b"****22*22**22*22***22*22**22*22",
846 Bitcoin::All32 => b"i",
847 Bitcoin::All64 => b"l",
848 Bitcoin::All8 => b"***22*22**22*22",
849 Bitcoin::And1 => b"*22",
850 Bitcoin::And16 => b"i",
851 Bitcoin::And32 => b"l",
852 Bitcoin::And64 => b"*ll",
853 Bitcoin::And8 => b"****22*22**22*22***22*22**22*22",
854 Bitcoin::Bip0340Verify => b"**hh*hh",
855 Bitcoin::Ch1 => b"*2*22",
856 Bitcoin::Ch16 => b"*****22*22**22*22***22*22**22*22i",
857 Bitcoin::Ch32 => b"*il",
858 Bitcoin::Ch64 => b"*l*ll",
859 Bitcoin::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
860 Bitcoin::CheckLockDistance => b"****22*22**22*22***22*22**22*22",
861 Bitcoin::CheckLockDuration => b"****22*22**22*22***22*22**22*22",
862 Bitcoin::CheckLockHeight => b"i",
863 Bitcoin::CheckLockTime => b"i",
864 Bitcoin::CheckSigVerify => b"**h*hh*hh",
865 Bitcoin::Complement1 => b"2",
866 Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
867 Bitcoin::Complement32 => b"i",
868 Bitcoin::Complement64 => b"l",
869 Bitcoin::Complement8 => b"***22*22**22*22",
870 Bitcoin::CurrentAnnexHash => b"1",
871 Bitcoin::CurrentIndex => b"1",
872 Bitcoin::CurrentPrevOutpoint => b"1",
873 Bitcoin::CurrentScriptSigHash => b"1",
874 Bitcoin::CurrentSequence => b"1",
875 Bitcoin::CurrentValue => b"1",
876 Bitcoin::Decompress => b"*2h",
877 Bitcoin::Decrement16 => b"****22*22**22*22***22*22**22*22",
878 Bitcoin::Decrement32 => b"i",
879 Bitcoin::Decrement64 => b"l",
880 Bitcoin::Decrement8 => b"***22*22**22*22",
881 Bitcoin::DivMod128_64 => b"**lll",
882 Bitcoin::DivMod16 => b"i",
883 Bitcoin::DivMod32 => b"l",
884 Bitcoin::DivMod64 => b"*ll",
885 Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
886 Bitcoin::Divide16 => b"i",
887 Bitcoin::Divide32 => b"l",
888 Bitcoin::Divide64 => b"*ll",
889 Bitcoin::Divide8 => b"****22*22**22*22***22*22**22*22",
890 Bitcoin::Divides16 => b"i",
891 Bitcoin::Divides32 => b"l",
892 Bitcoin::Divides64 => b"*ll",
893 Bitcoin::Divides8 => b"****22*22**22*22***22*22**22*22",
894 Bitcoin::Eq1 => b"*22",
895 Bitcoin::Eq16 => b"i",
896 Bitcoin::Eq256 => b"*hh",
897 Bitcoin::Eq32 => b"l",
898 Bitcoin::Eq64 => b"*ll",
899 Bitcoin::Eq8 => b"****22*22**22*22***22*22**22*22",
900 Bitcoin::FeAdd => b"*hh",
901 Bitcoin::FeInvert => b"h",
902 Bitcoin::FeIsOdd => b"h",
903 Bitcoin::FeIsZero => b"h",
904 Bitcoin::FeMultiply => b"*hh",
905 Bitcoin::FeMultiplyBeta => b"h",
906 Bitcoin::FeNegate => b"h",
907 Bitcoin::FeNormalize => b"h",
908 Bitcoin::FeSquare => b"h",
909 Bitcoin::FeSquareRoot => b"h",
910 Bitcoin::FullAdd16 => b"*2i",
911 Bitcoin::FullAdd32 => b"*2l",
912 Bitcoin::FullAdd64 => b"*2*ll",
913 Bitcoin::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
914 Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
915 Bitcoin::FullDecrement32 => b"*2i",
916 Bitcoin::FullDecrement64 => b"*2l",
917 Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
918 Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
919 Bitcoin::FullIncrement32 => b"*2i",
920 Bitcoin::FullIncrement64 => b"*2l",
921 Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
922 Bitcoin::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
923 Bitcoin::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
924 Bitcoin::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
925 Bitcoin::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
926 Bitcoin::FullLeftShift32_1 => b"*i2",
927 Bitcoin::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
928 Bitcoin::FullLeftShift32_2 => b"*i*22",
929 Bitcoin::FullLeftShift32_4 => b"*i**22*22",
930 Bitcoin::FullLeftShift32_8 => b"*i***22*22**22*22",
931 Bitcoin::FullLeftShift64_1 => b"*l2",
932 Bitcoin::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
933 Bitcoin::FullLeftShift64_2 => b"*l*22",
934 Bitcoin::FullLeftShift64_32 => b"*li",
935 Bitcoin::FullLeftShift64_4 => b"*l**22*22",
936 Bitcoin::FullLeftShift64_8 => b"*l***22*22**22*22",
937 Bitcoin::FullLeftShift8_1 => b"****22*22**22*222",
938 Bitcoin::FullLeftShift8_2 => b"****22*22**22*22*22",
939 Bitcoin::FullLeftShift8_4 => b"****22*22**22*22**22*22",
940 Bitcoin::FullMultiply16 => b"l",
941 Bitcoin::FullMultiply32 => b"*ll",
942 Bitcoin::FullMultiply64 => b"h",
943 Bitcoin::FullMultiply8 => b"i",
944 Bitcoin::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
945 Bitcoin::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
946 Bitcoin::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
947 Bitcoin::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
948 Bitcoin::FullRightShift32_1 => b"*2i",
949 Bitcoin::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
950 Bitcoin::FullRightShift32_2 => b"**22i",
951 Bitcoin::FullRightShift32_4 => b"***22*22i",
952 Bitcoin::FullRightShift32_8 => b"****22*22**22*22i",
953 Bitcoin::FullRightShift64_1 => b"*2l",
954 Bitcoin::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
955 Bitcoin::FullRightShift64_2 => b"**22l",
956 Bitcoin::FullRightShift64_32 => b"*il",
957 Bitcoin::FullRightShift64_4 => b"***22*22l",
958 Bitcoin::FullRightShift64_8 => b"****22*22**22*22l",
959 Bitcoin::FullRightShift8_1 => b"*2***22*22**22*22",
960 Bitcoin::FullRightShift8_2 => b"**22***22*22**22*22",
961 Bitcoin::FullRightShift8_4 => b"***22*22***22*22**22*22",
962 Bitcoin::FullSubtract16 => b"*2i",
963 Bitcoin::FullSubtract32 => b"*2l",
964 Bitcoin::FullSubtract64 => b"*2*ll",
965 Bitcoin::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
966 Bitcoin::GeIsOnCurve => b"*hh",
967 Bitcoin::GeNegate => b"*hh",
968 Bitcoin::GejAdd => b"***hhh**hhh",
969 Bitcoin::GejDouble => b"**hhh",
970 Bitcoin::GejEquiv => b"***hhh**hhh",
971 Bitcoin::GejGeAdd => b"***hhh*hh",
972 Bitcoin::GejGeAddEx => b"***hhh*hh",
973 Bitcoin::GejGeEquiv => b"***hhh*hh",
974 Bitcoin::GejInfinity => b"1",
975 Bitcoin::GejIsInfinity => b"**hhh",
976 Bitcoin::GejIsOnCurve => b"**hhh",
977 Bitcoin::GejNegate => b"**hhh",
978 Bitcoin::GejNormalize => b"**hhh",
979 Bitcoin::GejRescale => b"***hhhh",
980 Bitcoin::GejXEquiv => b"*h**hhh",
981 Bitcoin::GejYIsOdd => b"**hhh",
982 Bitcoin::Generate => b"h",
983 Bitcoin::HashToCurve => b"h",
984 Bitcoin::High1 => b"1",
985 Bitcoin::High16 => b"1",
986 Bitcoin::High32 => b"1",
987 Bitcoin::High64 => b"1",
988 Bitcoin::High8 => b"1",
989 Bitcoin::Increment16 => b"****22*22**22*22***22*22**22*22",
990 Bitcoin::Increment32 => b"i",
991 Bitcoin::Increment64 => b"l",
992 Bitcoin::Increment8 => b"***22*22**22*22",
993 Bitcoin::InputAnnexHash => b"i",
994 Bitcoin::InputPrevOutpoint => b"i",
995 Bitcoin::InputScriptSigHash => b"i",
996 Bitcoin::InputSequence => b"i",
997 Bitcoin::InputValue => b"i",
998 Bitcoin::InternalKey => b"1",
999 Bitcoin::IsOne16 => b"****22*22**22*22***22*22**22*22",
1000 Bitcoin::IsOne32 => b"i",
1001 Bitcoin::IsOne64 => b"l",
1002 Bitcoin::IsOne8 => b"***22*22**22*22",
1003 Bitcoin::IsZero16 => b"****22*22**22*22***22*22**22*22",
1004 Bitcoin::IsZero32 => b"i",
1005 Bitcoin::IsZero64 => b"l",
1006 Bitcoin::IsZero8 => b"***22*22**22*22",
1007 Bitcoin::Le16 => b"i",
1008 Bitcoin::Le32 => b"l",
1009 Bitcoin::Le64 => b"*ll",
1010 Bitcoin::Le8 => b"****22*22**22*22***22*22**22*22",
1011 Bitcoin::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
1012 Bitcoin::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
1013 Bitcoin::LeftExtend1_16 => b"2",
1014 Bitcoin::LeftExtend1_32 => b"2",
1015 Bitcoin::LeftExtend1_64 => b"2",
1016 Bitcoin::LeftExtend1_8 => b"2",
1017 Bitcoin::LeftExtend32_64 => b"i",
1018 Bitcoin::LeftExtend8_16 => b"***22*22**22*22",
1019 Bitcoin::LeftExtend8_32 => b"***22*22**22*22",
1020 Bitcoin::LeftExtend8_64 => b"***22*22**22*22",
1021 Bitcoin::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1022 Bitcoin::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1023 Bitcoin::LeftPadHigh1_16 => b"2",
1024 Bitcoin::LeftPadHigh1_32 => b"2",
1025 Bitcoin::LeftPadHigh1_64 => b"2",
1026 Bitcoin::LeftPadHigh1_8 => b"2",
1027 Bitcoin::LeftPadHigh32_64 => b"i",
1028 Bitcoin::LeftPadHigh8_16 => b"***22*22**22*22",
1029 Bitcoin::LeftPadHigh8_32 => b"***22*22**22*22",
1030 Bitcoin::LeftPadHigh8_64 => b"***22*22**22*22",
1031 Bitcoin::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1032 Bitcoin::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1033 Bitcoin::LeftPadLow1_16 => b"2",
1034 Bitcoin::LeftPadLow1_32 => b"2",
1035 Bitcoin::LeftPadLow1_64 => b"2",
1036 Bitcoin::LeftPadLow1_8 => b"2",
1037 Bitcoin::LeftPadLow32_64 => b"i",
1038 Bitcoin::LeftPadLow8_16 => b"***22*22**22*22",
1039 Bitcoin::LeftPadLow8_32 => b"***22*22**22*22",
1040 Bitcoin::LeftPadLow8_64 => b"***22*22**22*22",
1041 Bitcoin::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1042 Bitcoin::LeftRotate32 => b"****22*22**22*22i",
1043 Bitcoin::LeftRotate64 => b"****22*22**22*22l",
1044 Bitcoin::LeftRotate8 => b"***22*22***22*22**22*22",
1045 Bitcoin::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1046 Bitcoin::LeftShift32 => b"****22*22**22*22i",
1047 Bitcoin::LeftShift64 => b"****22*22**22*22l",
1048 Bitcoin::LeftShift8 => b"***22*22***22*22**22*22",
1049 Bitcoin::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1050 Bitcoin::LeftShiftWith32 => b"*2****22*22**22*22i",
1051 Bitcoin::LeftShiftWith64 => b"*2****22*22**22*22l",
1052 Bitcoin::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
1053 Bitcoin::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
1054 Bitcoin::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
1055 Bitcoin::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
1056 Bitcoin::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
1057 Bitcoin::Leftmost32_1 => b"i",
1058 Bitcoin::Leftmost32_16 => b"i",
1059 Bitcoin::Leftmost32_2 => b"i",
1060 Bitcoin::Leftmost32_4 => b"i",
1061 Bitcoin::Leftmost32_8 => b"i",
1062 Bitcoin::Leftmost64_1 => b"l",
1063 Bitcoin::Leftmost64_16 => b"l",
1064 Bitcoin::Leftmost64_2 => b"l",
1065 Bitcoin::Leftmost64_32 => b"l",
1066 Bitcoin::Leftmost64_4 => b"l",
1067 Bitcoin::Leftmost64_8 => b"l",
1068 Bitcoin::Leftmost8_1 => b"***22*22**22*22",
1069 Bitcoin::Leftmost8_2 => b"***22*22**22*22",
1070 Bitcoin::Leftmost8_4 => b"***22*22**22*22",
1071 Bitcoin::LinearCombination1 => b"**h**hhhh",
1072 Bitcoin::LinearVerify1 => b"***h*hhh*hh",
1073 Bitcoin::LockTime => b"1",
1074 Bitcoin::Low1 => b"1",
1075 Bitcoin::Low16 => b"1",
1076 Bitcoin::Low32 => b"1",
1077 Bitcoin::Low64 => b"1",
1078 Bitcoin::Low8 => b"1",
1079 Bitcoin::Lt16 => b"i",
1080 Bitcoin::Lt32 => b"l",
1081 Bitcoin::Lt64 => b"*ll",
1082 Bitcoin::Lt8 => b"****22*22**22*22***22*22**22*22",
1083 Bitcoin::Maj1 => b"*2*22",
1084 Bitcoin::Maj16 => b"*****22*22**22*22***22*22**22*22i",
1085 Bitcoin::Maj32 => b"*il",
1086 Bitcoin::Maj64 => b"*l*ll",
1087 Bitcoin::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1088 Bitcoin::Max16 => b"i",
1089 Bitcoin::Max32 => b"l",
1090 Bitcoin::Max64 => b"*ll",
1091 Bitcoin::Max8 => b"****22*22**22*22***22*22**22*22",
1092 Bitcoin::Median16 => b"*****22*22**22*22***22*22**22*22i",
1093 Bitcoin::Median32 => b"*il",
1094 Bitcoin::Median64 => b"*l*ll",
1095 Bitcoin::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1096 Bitcoin::Min16 => b"i",
1097 Bitcoin::Min32 => b"l",
1098 Bitcoin::Min64 => b"*ll",
1099 Bitcoin::Min8 => b"****22*22**22*22***22*22**22*22",
1100 Bitcoin::Modulo16 => b"i",
1101 Bitcoin::Modulo32 => b"l",
1102 Bitcoin::Modulo64 => b"*ll",
1103 Bitcoin::Modulo8 => b"****22*22**22*22***22*22**22*22",
1104 Bitcoin::Multiply16 => b"i",
1105 Bitcoin::Multiply32 => b"l",
1106 Bitcoin::Multiply64 => b"*ll",
1107 Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1108 Bitcoin::Negate16 => b"****22*22**22*22***22*22**22*22",
1109 Bitcoin::Negate32 => b"i",
1110 Bitcoin::Negate64 => b"l",
1111 Bitcoin::Negate8 => b"***22*22**22*22",
1112 Bitcoin::NumInputs => b"1",
1113 Bitcoin::NumOutputs => b"1",
1114 Bitcoin::One16 => b"1",
1115 Bitcoin::One32 => b"1",
1116 Bitcoin::One64 => b"1",
1117 Bitcoin::One8 => b"1",
1118 Bitcoin::Or1 => b"*22",
1119 Bitcoin::Or16 => b"i",
1120 Bitcoin::Or32 => b"l",
1121 Bitcoin::Or64 => b"*ll",
1122 Bitcoin::Or8 => b"****22*22**22*22***22*22**22*22",
1123 Bitcoin::OutputScriptHash => b"i",
1124 Bitcoin::OutputValue => b"i",
1125 Bitcoin::ParseLock => b"i",
1126 Bitcoin::ParseSequence => b"i",
1127 Bitcoin::PointVerify1 => b"***h*2hh*2h",
1128 Bitcoin::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
1129 Bitcoin::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
1130 Bitcoin::RightExtend32_64 => b"i",
1131 Bitcoin::RightExtend8_16 => b"***22*22**22*22",
1132 Bitcoin::RightExtend8_32 => b"***22*22**22*22",
1133 Bitcoin::RightExtend8_64 => b"***22*22**22*22",
1134 Bitcoin::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
1135 Bitcoin::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
1136 Bitcoin::RightPadHigh1_16 => b"2",
1137 Bitcoin::RightPadHigh1_32 => b"2",
1138 Bitcoin::RightPadHigh1_64 => b"2",
1139 Bitcoin::RightPadHigh1_8 => b"2",
1140 Bitcoin::RightPadHigh32_64 => b"i",
1141 Bitcoin::RightPadHigh8_16 => b"***22*22**22*22",
1142 Bitcoin::RightPadHigh8_32 => b"***22*22**22*22",
1143 Bitcoin::RightPadHigh8_64 => b"***22*22**22*22",
1144 Bitcoin::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
1145 Bitcoin::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
1146 Bitcoin::RightPadLow1_16 => b"2",
1147 Bitcoin::RightPadLow1_32 => b"2",
1148 Bitcoin::RightPadLow1_64 => b"2",
1149 Bitcoin::RightPadLow1_8 => b"2",
1150 Bitcoin::RightPadLow32_64 => b"i",
1151 Bitcoin::RightPadLow8_16 => b"***22*22**22*22",
1152 Bitcoin::RightPadLow8_32 => b"***22*22**22*22",
1153 Bitcoin::RightPadLow8_64 => b"***22*22**22*22",
1154 Bitcoin::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
1155 Bitcoin::RightRotate32 => b"****22*22**22*22i",
1156 Bitcoin::RightRotate64 => b"****22*22**22*22l",
1157 Bitcoin::RightRotate8 => b"***22*22***22*22**22*22",
1158 Bitcoin::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
1159 Bitcoin::RightShift32 => b"****22*22**22*22i",
1160 Bitcoin::RightShift64 => b"****22*22**22*22l",
1161 Bitcoin::RightShift8 => b"***22*22***22*22**22*22",
1162 Bitcoin::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
1163 Bitcoin::RightShiftWith32 => b"*2****22*22**22*22i",
1164 Bitcoin::RightShiftWith64 => b"*2****22*22**22*22l",
1165 Bitcoin::RightShiftWith8 => b"*2***22*22***22*22**22*22",
1166 Bitcoin::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
1167 Bitcoin::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
1168 Bitcoin::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
1169 Bitcoin::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
1170 Bitcoin::Rightmost32_1 => b"i",
1171 Bitcoin::Rightmost32_16 => b"i",
1172 Bitcoin::Rightmost32_2 => b"i",
1173 Bitcoin::Rightmost32_4 => b"i",
1174 Bitcoin::Rightmost32_8 => b"i",
1175 Bitcoin::Rightmost64_1 => b"l",
1176 Bitcoin::Rightmost64_16 => b"l",
1177 Bitcoin::Rightmost64_2 => b"l",
1178 Bitcoin::Rightmost64_32 => b"l",
1179 Bitcoin::Rightmost64_4 => b"l",
1180 Bitcoin::Rightmost64_8 => b"l",
1181 Bitcoin::Rightmost8_1 => b"***22*22**22*22",
1182 Bitcoin::Rightmost8_2 => b"***22*22**22*22",
1183 Bitcoin::Rightmost8_4 => b"***22*22**22*22",
1184 Bitcoin::ScalarAdd => b"*hh",
1185 Bitcoin::ScalarInvert => b"h",
1186 Bitcoin::ScalarIsZero => b"h",
1187 Bitcoin::ScalarMultiply => b"*hh",
1188 Bitcoin::ScalarMultiplyLambda => b"h",
1189 Bitcoin::ScalarNegate => b"h",
1190 Bitcoin::ScalarNormalize => b"h",
1191 Bitcoin::ScalarSquare => b"h",
1192 Bitcoin::Scale => b"*h**hhh",
1193 Bitcoin::ScriptCMR => b"1",
1194 Bitcoin::Sha256Block => b"*h*hh",
1195 Bitcoin::Sha256Ctx8Add1 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***22*22**22*22",
1196 Bitcoin::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
1197 Bitcoin::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
1198 Bitcoin::Sha256Ctx8Add2 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****22*22**22*22***22*22**22*22",
1199 Bitcoin::Sha256Ctx8Add256 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***hh*hh**hh*hh",
1200 Bitcoin::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
1201 Bitcoin::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
1202 Bitcoin::Sha256Ctx8Add512 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****hh*hh**hh*hh***hh*hh**hh*hh",
1203 Bitcoin::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
1204 Bitcoin::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
1205 Bitcoin::Sha256Ctx8AddBuffer511 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1***hh*hh**hh*hh*+1**hh*hh*+1*hh*+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22",
1206 Bitcoin::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1207 Bitcoin::Sha256Ctx8Init => b"1",
1208 Bitcoin::Sha256Iv => b"1",
1209 Bitcoin::Some1 => b"2",
1210 Bitcoin::Some16 => b"****22*22**22*22***22*22**22*22",
1211 Bitcoin::Some32 => b"i",
1212 Bitcoin::Some64 => b"l",
1213 Bitcoin::Some8 => b"***22*22**22*22",
1214 Bitcoin::Subtract16 => b"i",
1215 Bitcoin::Subtract32 => b"l",
1216 Bitcoin::Subtract64 => b"*ll",
1217 Bitcoin::Subtract8 => b"****22*22**22*22***22*22**22*22",
1218 Bitcoin::Swu => b"h",
1219 Bitcoin::TapdataInit => b"1",
1220 Bitcoin::TapleafVersion => b"1",
1221 Bitcoin::Tappath => b"***22*22**22*22",
1222 Bitcoin::TotalInputValue => b"1",
1223 Bitcoin::TotalOutputValue => b"1",
1224 Bitcoin::TxIsFinal => b"1",
1225 Bitcoin::TxLockDistance => b"1",
1226 Bitcoin::TxLockDuration => b"1",
1227 Bitcoin::TxLockHeight => b"1",
1228 Bitcoin::TxLockTime => b"1",
1229 Bitcoin::Verify => b"2",
1230 Bitcoin::Version => b"1",
1231 Bitcoin::Xor1 => b"*22",
1232 Bitcoin::Xor16 => b"i",
1233 Bitcoin::Xor32 => b"l",
1234 Bitcoin::Xor64 => b"*ll",
1235 Bitcoin::Xor8 => b"****22*22**22*22***22*22**22*22",
1236 Bitcoin::XorXor1 => b"*2*22",
1237 Bitcoin::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
1238 Bitcoin::XorXor32 => b"*il",
1239 Bitcoin::XorXor64 => b"*l*ll",
1240 Bitcoin::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1241 };
1242
1243 TypeName(name)
1244 }
1245
1246 fn target_ty(&self) -> TypeName {
1247 let name: &'static [u8] = match self {
1248 Bitcoin::Add16 => b"*2****22*22**22*22***22*22**22*22",
1249 Bitcoin::Add32 => b"*2i",
1250 Bitcoin::Add64 => b"*2l",
1251 Bitcoin::Add8 => b"*2***22*22**22*22",
1252 Bitcoin::All16 => b"2",
1253 Bitcoin::All32 => b"2",
1254 Bitcoin::All64 => b"2",
1255 Bitcoin::All8 => b"2",
1256 Bitcoin::And1 => b"2",
1257 Bitcoin::And16 => b"****22*22**22*22***22*22**22*22",
1258 Bitcoin::And32 => b"i",
1259 Bitcoin::And64 => b"l",
1260 Bitcoin::And8 => b"***22*22**22*22",
1261 Bitcoin::Bip0340Verify => b"1",
1262 Bitcoin::Ch1 => b"2",
1263 Bitcoin::Ch16 => b"****22*22**22*22***22*22**22*22",
1264 Bitcoin::Ch32 => b"i",
1265 Bitcoin::Ch64 => b"l",
1266 Bitcoin::Ch8 => b"***22*22**22*22",
1267 Bitcoin::CheckLockDistance => b"1",
1268 Bitcoin::CheckLockDuration => b"1",
1269 Bitcoin::CheckLockHeight => b"1",
1270 Bitcoin::CheckLockTime => b"1",
1271 Bitcoin::CheckSigVerify => b"1",
1272 Bitcoin::Complement1 => b"2",
1273 Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22",
1274 Bitcoin::Complement32 => b"i",
1275 Bitcoin::Complement64 => b"l",
1276 Bitcoin::Complement8 => b"***22*22**22*22",
1277 Bitcoin::CurrentAnnexHash => b"+1h",
1278 Bitcoin::CurrentIndex => b"i",
1279 Bitcoin::CurrentPrevOutpoint => b"*hi",
1280 Bitcoin::CurrentScriptSigHash => b"h",
1281 Bitcoin::CurrentSequence => b"i",
1282 Bitcoin::CurrentValue => b"l",
1283 Bitcoin::Decompress => b"+1*hh",
1284 Bitcoin::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
1285 Bitcoin::Decrement32 => b"*2i",
1286 Bitcoin::Decrement64 => b"*2l",
1287 Bitcoin::Decrement8 => b"*2***22*22**22*22",
1288 Bitcoin::DivMod128_64 => b"*ll",
1289 Bitcoin::DivMod16 => b"i",
1290 Bitcoin::DivMod32 => b"l",
1291 Bitcoin::DivMod64 => b"*ll",
1292 Bitcoin::DivMod8 => b"****22*22**22*22***22*22**22*22",
1293 Bitcoin::Divide16 => b"****22*22**22*22***22*22**22*22",
1294 Bitcoin::Divide32 => b"i",
1295 Bitcoin::Divide64 => b"l",
1296 Bitcoin::Divide8 => b"***22*22**22*22",
1297 Bitcoin::Divides16 => b"2",
1298 Bitcoin::Divides32 => b"2",
1299 Bitcoin::Divides64 => b"2",
1300 Bitcoin::Divides8 => b"2",
1301 Bitcoin::Eq1 => b"2",
1302 Bitcoin::Eq16 => b"2",
1303 Bitcoin::Eq256 => b"2",
1304 Bitcoin::Eq32 => b"2",
1305 Bitcoin::Eq64 => b"2",
1306 Bitcoin::Eq8 => b"2",
1307 Bitcoin::FeAdd => b"h",
1308 Bitcoin::FeInvert => b"h",
1309 Bitcoin::FeIsOdd => b"2",
1310 Bitcoin::FeIsZero => b"2",
1311 Bitcoin::FeMultiply => b"h",
1312 Bitcoin::FeMultiplyBeta => b"h",
1313 Bitcoin::FeNegate => b"h",
1314 Bitcoin::FeNormalize => b"h",
1315 Bitcoin::FeSquare => b"h",
1316 Bitcoin::FeSquareRoot => b"+1h",
1317 Bitcoin::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
1318 Bitcoin::FullAdd32 => b"*2i",
1319 Bitcoin::FullAdd64 => b"*2l",
1320 Bitcoin::FullAdd8 => b"*2***22*22**22*22",
1321 Bitcoin::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
1322 Bitcoin::FullDecrement32 => b"*2i",
1323 Bitcoin::FullDecrement64 => b"*2l",
1324 Bitcoin::FullDecrement8 => b"*2***22*22**22*22",
1325 Bitcoin::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
1326 Bitcoin::FullIncrement32 => b"*2i",
1327 Bitcoin::FullIncrement64 => b"*2l",
1328 Bitcoin::FullIncrement8 => b"*2***22*22**22*22",
1329 Bitcoin::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
1330 Bitcoin::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
1331 Bitcoin::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
1332 Bitcoin::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
1333 Bitcoin::FullLeftShift32_1 => b"*2i",
1334 Bitcoin::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
1335 Bitcoin::FullLeftShift32_2 => b"**22i",
1336 Bitcoin::FullLeftShift32_4 => b"***22*22i",
1337 Bitcoin::FullLeftShift32_8 => b"****22*22**22*22i",
1338 Bitcoin::FullLeftShift64_1 => b"*2l",
1339 Bitcoin::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
1340 Bitcoin::FullLeftShift64_2 => b"**22l",
1341 Bitcoin::FullLeftShift64_32 => b"*il",
1342 Bitcoin::FullLeftShift64_4 => b"***22*22l",
1343 Bitcoin::FullLeftShift64_8 => b"****22*22**22*22l",
1344 Bitcoin::FullLeftShift8_1 => b"*2***22*22**22*22",
1345 Bitcoin::FullLeftShift8_2 => b"**22***22*22**22*22",
1346 Bitcoin::FullLeftShift8_4 => b"***22*22***22*22**22*22",
1347 Bitcoin::FullMultiply16 => b"i",
1348 Bitcoin::FullMultiply32 => b"l",
1349 Bitcoin::FullMultiply64 => b"*ll",
1350 Bitcoin::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
1351 Bitcoin::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
1352 Bitcoin::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
1353 Bitcoin::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
1354 Bitcoin::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
1355 Bitcoin::FullRightShift32_1 => b"*i2",
1356 Bitcoin::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
1357 Bitcoin::FullRightShift32_2 => b"*i*22",
1358 Bitcoin::FullRightShift32_4 => b"*i**22*22",
1359 Bitcoin::FullRightShift32_8 => b"*i***22*22**22*22",
1360 Bitcoin::FullRightShift64_1 => b"*l2",
1361 Bitcoin::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
1362 Bitcoin::FullRightShift64_2 => b"*l*22",
1363 Bitcoin::FullRightShift64_32 => b"*li",
1364 Bitcoin::FullRightShift64_4 => b"*l**22*22",
1365 Bitcoin::FullRightShift64_8 => b"*l***22*22**22*22",
1366 Bitcoin::FullRightShift8_1 => b"****22*22**22*222",
1367 Bitcoin::FullRightShift8_2 => b"****22*22**22*22*22",
1368 Bitcoin::FullRightShift8_4 => b"****22*22**22*22**22*22",
1369 Bitcoin::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
1370 Bitcoin::FullSubtract32 => b"*2i",
1371 Bitcoin::FullSubtract64 => b"*2l",
1372 Bitcoin::FullSubtract8 => b"*2***22*22**22*22",
1373 Bitcoin::GeIsOnCurve => b"2",
1374 Bitcoin::GeNegate => b"*hh",
1375 Bitcoin::GejAdd => b"**hhh",
1376 Bitcoin::GejDouble => b"**hhh",
1377 Bitcoin::GejEquiv => b"2",
1378 Bitcoin::GejGeAdd => b"**hhh",
1379 Bitcoin::GejGeAddEx => b"*h**hhh",
1380 Bitcoin::GejGeEquiv => b"2",
1381 Bitcoin::GejInfinity => b"**hhh",
1382 Bitcoin::GejIsInfinity => b"2",
1383 Bitcoin::GejIsOnCurve => b"2",
1384 Bitcoin::GejNegate => b"**hhh",
1385 Bitcoin::GejNormalize => b"+1*hh",
1386 Bitcoin::GejRescale => b"**hhh",
1387 Bitcoin::GejXEquiv => b"2",
1388 Bitcoin::GejYIsOdd => b"2",
1389 Bitcoin::Generate => b"**hhh",
1390 Bitcoin::HashToCurve => b"*hh",
1391 Bitcoin::High1 => b"2",
1392 Bitcoin::High16 => b"****22*22**22*22***22*22**22*22",
1393 Bitcoin::High32 => b"i",
1394 Bitcoin::High64 => b"l",
1395 Bitcoin::High8 => b"***22*22**22*22",
1396 Bitcoin::Increment16 => b"*2****22*22**22*22***22*22**22*22",
1397 Bitcoin::Increment32 => b"*2i",
1398 Bitcoin::Increment64 => b"*2l",
1399 Bitcoin::Increment8 => b"*2***22*22**22*22",
1400 Bitcoin::InputAnnexHash => b"+1+1h",
1401 Bitcoin::InputPrevOutpoint => b"+1*hi",
1402 Bitcoin::InputScriptSigHash => b"+1h",
1403 Bitcoin::InputSequence => b"+1i",
1404 Bitcoin::InputValue => b"+1l",
1405 Bitcoin::InternalKey => b"h",
1406 Bitcoin::IsOne16 => b"2",
1407 Bitcoin::IsOne32 => b"2",
1408 Bitcoin::IsOne64 => b"2",
1409 Bitcoin::IsOne8 => b"2",
1410 Bitcoin::IsZero16 => b"2",
1411 Bitcoin::IsZero32 => b"2",
1412 Bitcoin::IsZero64 => b"2",
1413 Bitcoin::IsZero8 => b"2",
1414 Bitcoin::Le16 => b"2",
1415 Bitcoin::Le32 => b"2",
1416 Bitcoin::Le64 => b"2",
1417 Bitcoin::Le8 => b"2",
1418 Bitcoin::LeftExtend16_32 => b"i",
1419 Bitcoin::LeftExtend16_64 => b"l",
1420 Bitcoin::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
1421 Bitcoin::LeftExtend1_32 => b"i",
1422 Bitcoin::LeftExtend1_64 => b"l",
1423 Bitcoin::LeftExtend1_8 => b"***22*22**22*22",
1424 Bitcoin::LeftExtend32_64 => b"l",
1425 Bitcoin::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
1426 Bitcoin::LeftExtend8_32 => b"i",
1427 Bitcoin::LeftExtend8_64 => b"l",
1428 Bitcoin::LeftPadHigh16_32 => b"i",
1429 Bitcoin::LeftPadHigh16_64 => b"l",
1430 Bitcoin::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1431 Bitcoin::LeftPadHigh1_32 => b"i",
1432 Bitcoin::LeftPadHigh1_64 => b"l",
1433 Bitcoin::LeftPadHigh1_8 => b"***22*22**22*22",
1434 Bitcoin::LeftPadHigh32_64 => b"l",
1435 Bitcoin::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1436 Bitcoin::LeftPadHigh8_32 => b"i",
1437 Bitcoin::LeftPadHigh8_64 => b"l",
1438 Bitcoin::LeftPadLow16_32 => b"i",
1439 Bitcoin::LeftPadLow16_64 => b"l",
1440 Bitcoin::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1441 Bitcoin::LeftPadLow1_32 => b"i",
1442 Bitcoin::LeftPadLow1_64 => b"l",
1443 Bitcoin::LeftPadLow1_8 => b"***22*22**22*22",
1444 Bitcoin::LeftPadLow32_64 => b"l",
1445 Bitcoin::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1446 Bitcoin::LeftPadLow8_32 => b"i",
1447 Bitcoin::LeftPadLow8_64 => b"l",
1448 Bitcoin::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
1449 Bitcoin::LeftRotate32 => b"i",
1450 Bitcoin::LeftRotate64 => b"l",
1451 Bitcoin::LeftRotate8 => b"***22*22**22*22",
1452 Bitcoin::LeftShift16 => b"****22*22**22*22***22*22**22*22",
1453 Bitcoin::LeftShift32 => b"i",
1454 Bitcoin::LeftShift64 => b"l",
1455 Bitcoin::LeftShift8 => b"***22*22**22*22",
1456 Bitcoin::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
1457 Bitcoin::LeftShiftWith32 => b"i",
1458 Bitcoin::LeftShiftWith64 => b"l",
1459 Bitcoin::LeftShiftWith8 => b"***22*22**22*22",
1460 Bitcoin::Leftmost16_1 => b"2",
1461 Bitcoin::Leftmost16_2 => b"*22",
1462 Bitcoin::Leftmost16_4 => b"**22*22",
1463 Bitcoin::Leftmost16_8 => b"***22*22**22*22",
1464 Bitcoin::Leftmost32_1 => b"2",
1465 Bitcoin::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
1466 Bitcoin::Leftmost32_2 => b"*22",
1467 Bitcoin::Leftmost32_4 => b"**22*22",
1468 Bitcoin::Leftmost32_8 => b"***22*22**22*22",
1469 Bitcoin::Leftmost64_1 => b"2",
1470 Bitcoin::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
1471 Bitcoin::Leftmost64_2 => b"*22",
1472 Bitcoin::Leftmost64_32 => b"i",
1473 Bitcoin::Leftmost64_4 => b"**22*22",
1474 Bitcoin::Leftmost64_8 => b"***22*22**22*22",
1475 Bitcoin::Leftmost8_1 => b"2",
1476 Bitcoin::Leftmost8_2 => b"*22",
1477 Bitcoin::Leftmost8_4 => b"**22*22",
1478 Bitcoin::LinearCombination1 => b"**hhh",
1479 Bitcoin::LinearVerify1 => b"1",
1480 Bitcoin::LockTime => b"i",
1481 Bitcoin::Low1 => b"2",
1482 Bitcoin::Low16 => b"****22*22**22*22***22*22**22*22",
1483 Bitcoin::Low32 => b"i",
1484 Bitcoin::Low64 => b"l",
1485 Bitcoin::Low8 => b"***22*22**22*22",
1486 Bitcoin::Lt16 => b"2",
1487 Bitcoin::Lt32 => b"2",
1488 Bitcoin::Lt64 => b"2",
1489 Bitcoin::Lt8 => b"2",
1490 Bitcoin::Maj1 => b"2",
1491 Bitcoin::Maj16 => b"****22*22**22*22***22*22**22*22",
1492 Bitcoin::Maj32 => b"i",
1493 Bitcoin::Maj64 => b"l",
1494 Bitcoin::Maj8 => b"***22*22**22*22",
1495 Bitcoin::Max16 => b"****22*22**22*22***22*22**22*22",
1496 Bitcoin::Max32 => b"i",
1497 Bitcoin::Max64 => b"l",
1498 Bitcoin::Max8 => b"***22*22**22*22",
1499 Bitcoin::Median16 => b"****22*22**22*22***22*22**22*22",
1500 Bitcoin::Median32 => b"i",
1501 Bitcoin::Median64 => b"l",
1502 Bitcoin::Median8 => b"***22*22**22*22",
1503 Bitcoin::Min16 => b"****22*22**22*22***22*22**22*22",
1504 Bitcoin::Min32 => b"i",
1505 Bitcoin::Min64 => b"l",
1506 Bitcoin::Min8 => b"***22*22**22*22",
1507 Bitcoin::Modulo16 => b"****22*22**22*22***22*22**22*22",
1508 Bitcoin::Modulo32 => b"i",
1509 Bitcoin::Modulo64 => b"l",
1510 Bitcoin::Modulo8 => b"***22*22**22*22",
1511 Bitcoin::Multiply16 => b"i",
1512 Bitcoin::Multiply32 => b"l",
1513 Bitcoin::Multiply64 => b"*ll",
1514 Bitcoin::Multiply8 => b"****22*22**22*22***22*22**22*22",
1515 Bitcoin::Negate16 => b"*2****22*22**22*22***22*22**22*22",
1516 Bitcoin::Negate32 => b"*2i",
1517 Bitcoin::Negate64 => b"*2l",
1518 Bitcoin::Negate8 => b"*2***22*22**22*22",
1519 Bitcoin::NumInputs => b"i",
1520 Bitcoin::NumOutputs => b"i",
1521 Bitcoin::One16 => b"****22*22**22*22***22*22**22*22",
1522 Bitcoin::One32 => b"i",
1523 Bitcoin::One64 => b"l",
1524 Bitcoin::One8 => b"***22*22**22*22",
1525 Bitcoin::Or1 => b"2",
1526 Bitcoin::Or16 => b"****22*22**22*22***22*22**22*22",
1527 Bitcoin::Or32 => b"i",
1528 Bitcoin::Or64 => b"l",
1529 Bitcoin::Or8 => b"***22*22**22*22",
1530 Bitcoin::OutputScriptHash => b"+1h",
1531 Bitcoin::OutputValue => b"+1l",
1532 Bitcoin::ParseLock => b"+ii",
1533 Bitcoin::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
1534 Bitcoin::PointVerify1 => b"1",
1535 Bitcoin::RightExtend16_32 => b"i",
1536 Bitcoin::RightExtend16_64 => b"l",
1537 Bitcoin::RightExtend32_64 => b"l",
1538 Bitcoin::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
1539 Bitcoin::RightExtend8_32 => b"i",
1540 Bitcoin::RightExtend8_64 => b"l",
1541 Bitcoin::RightPadHigh16_32 => b"i",
1542 Bitcoin::RightPadHigh16_64 => b"l",
1543 Bitcoin::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
1544 Bitcoin::RightPadHigh1_32 => b"i",
1545 Bitcoin::RightPadHigh1_64 => b"l",
1546 Bitcoin::RightPadHigh1_8 => b"***22*22**22*22",
1547 Bitcoin::RightPadHigh32_64 => b"l",
1548 Bitcoin::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
1549 Bitcoin::RightPadHigh8_32 => b"i",
1550 Bitcoin::RightPadHigh8_64 => b"l",
1551 Bitcoin::RightPadLow16_32 => b"i",
1552 Bitcoin::RightPadLow16_64 => b"l",
1553 Bitcoin::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
1554 Bitcoin::RightPadLow1_32 => b"i",
1555 Bitcoin::RightPadLow1_64 => b"l",
1556 Bitcoin::RightPadLow1_8 => b"***22*22**22*22",
1557 Bitcoin::RightPadLow32_64 => b"l",
1558 Bitcoin::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
1559 Bitcoin::RightPadLow8_32 => b"i",
1560 Bitcoin::RightPadLow8_64 => b"l",
1561 Bitcoin::RightRotate16 => b"****22*22**22*22***22*22**22*22",
1562 Bitcoin::RightRotate32 => b"i",
1563 Bitcoin::RightRotate64 => b"l",
1564 Bitcoin::RightRotate8 => b"***22*22**22*22",
1565 Bitcoin::RightShift16 => b"****22*22**22*22***22*22**22*22",
1566 Bitcoin::RightShift32 => b"i",
1567 Bitcoin::RightShift64 => b"l",
1568 Bitcoin::RightShift8 => b"***22*22**22*22",
1569 Bitcoin::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
1570 Bitcoin::RightShiftWith32 => b"i",
1571 Bitcoin::RightShiftWith64 => b"l",
1572 Bitcoin::RightShiftWith8 => b"***22*22**22*22",
1573 Bitcoin::Rightmost16_1 => b"2",
1574 Bitcoin::Rightmost16_2 => b"*22",
1575 Bitcoin::Rightmost16_4 => b"**22*22",
1576 Bitcoin::Rightmost16_8 => b"***22*22**22*22",
1577 Bitcoin::Rightmost32_1 => b"2",
1578 Bitcoin::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
1579 Bitcoin::Rightmost32_2 => b"*22",
1580 Bitcoin::Rightmost32_4 => b"**22*22",
1581 Bitcoin::Rightmost32_8 => b"***22*22**22*22",
1582 Bitcoin::Rightmost64_1 => b"2",
1583 Bitcoin::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
1584 Bitcoin::Rightmost64_2 => b"*22",
1585 Bitcoin::Rightmost64_32 => b"i",
1586 Bitcoin::Rightmost64_4 => b"**22*22",
1587 Bitcoin::Rightmost64_8 => b"***22*22**22*22",
1588 Bitcoin::Rightmost8_1 => b"2",
1589 Bitcoin::Rightmost8_2 => b"*22",
1590 Bitcoin::Rightmost8_4 => b"**22*22",
1591 Bitcoin::ScalarAdd => b"h",
1592 Bitcoin::ScalarInvert => b"h",
1593 Bitcoin::ScalarIsZero => b"2",
1594 Bitcoin::ScalarMultiply => b"h",
1595 Bitcoin::ScalarMultiplyLambda => b"h",
1596 Bitcoin::ScalarNegate => b"h",
1597 Bitcoin::ScalarNormalize => b"h",
1598 Bitcoin::ScalarSquare => b"h",
1599 Bitcoin::Scale => b"**hhh",
1600 Bitcoin::ScriptCMR => b"h",
1601 Bitcoin::Sha256Block => b"h",
1602 Bitcoin::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1603 Bitcoin::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1604 Bitcoin::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1605 Bitcoin::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1606 Bitcoin::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1607 Bitcoin::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1608 Bitcoin::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1609 Bitcoin::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1610 Bitcoin::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1611 Bitcoin::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1612 Bitcoin::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1613 Bitcoin::Sha256Ctx8Finalize => b"h",
1614 Bitcoin::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1615 Bitcoin::Sha256Iv => b"h",
1616 Bitcoin::Some1 => b"2",
1617 Bitcoin::Some16 => b"2",
1618 Bitcoin::Some32 => b"2",
1619 Bitcoin::Some64 => b"2",
1620 Bitcoin::Some8 => b"2",
1621 Bitcoin::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
1622 Bitcoin::Subtract32 => b"*2i",
1623 Bitcoin::Subtract64 => b"*2l",
1624 Bitcoin::Subtract8 => b"*2***22*22**22*22",
1625 Bitcoin::Swu => b"*hh",
1626 Bitcoin::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
1627 Bitcoin::TapleafVersion => b"***22*22**22*22",
1628 Bitcoin::Tappath => b"+1h",
1629 Bitcoin::TotalInputValue => b"l",
1630 Bitcoin::TotalOutputValue => b"l",
1631 Bitcoin::TxIsFinal => b"2",
1632 Bitcoin::TxLockDistance => b"****22*22**22*22***22*22**22*22",
1633 Bitcoin::TxLockDuration => b"****22*22**22*22***22*22**22*22",
1634 Bitcoin::TxLockHeight => b"i",
1635 Bitcoin::TxLockTime => b"i",
1636 Bitcoin::Verify => b"1",
1637 Bitcoin::Version => b"i",
1638 Bitcoin::Xor1 => b"2",
1639 Bitcoin::Xor16 => b"****22*22**22*22***22*22**22*22",
1640 Bitcoin::Xor32 => b"i",
1641 Bitcoin::Xor64 => b"l",
1642 Bitcoin::Xor8 => b"***22*22**22*22",
1643 Bitcoin::XorXor1 => b"2",
1644 Bitcoin::XorXor16 => b"****22*22**22*22***22*22**22*22",
1645 Bitcoin::XorXor32 => b"i",
1646 Bitcoin::XorXor64 => b"l",
1647 Bitcoin::XorXor8 => b"***22*22**22*22",
1648 };
1649
1650 TypeName(name)
1651 }
1652
1653 fn encode<W: Write>(&self, w: &mut BitWriter<W>) -> std::io::Result<usize> {
1654 let (n, len) = match self {
1655 Bitcoin::Verify => (0, 3),
1656 Bitcoin::Low1 => (8, 6),
1657 Bitcoin::Low8 => (37, 8),
1658 Bitcoin::Low16 => (304, 11),
1659 Bitcoin::Low32 => (305, 11),
1660 Bitcoin::Low64 => (306, 11),
1661 Bitcoin::High1 => (10, 6),
1662 Bitcoin::High8 => (45, 8),
1663 Bitcoin::High16 => (368, 11),
1664 Bitcoin::High32 => (369, 11),
1665 Bitcoin::High64 => (370, 11),
1666 Bitcoin::Complement1 => (96, 9),
1667 Bitcoin::Complement8 => (389, 11),
1668 Bitcoin::Complement16 => (3120, 14),
1669 Bitcoin::Complement32 => (3121, 14),
1670 Bitcoin::Complement64 => (3122, 14),
1671 Bitcoin::And1 => (98, 9),
1672 Bitcoin::And8 => (397, 11),
1673 Bitcoin::And16 => (3184, 14),
1674 Bitcoin::And32 => (3185, 14),
1675 Bitcoin::And64 => (3186, 14),
1676 Bitcoin::Or1 => (100, 9),
1677 Bitcoin::Or8 => (405, 11),
1678 Bitcoin::Or16 => (3248, 14),
1679 Bitcoin::Or32 => (3249, 14),
1680 Bitcoin::Or64 => (3250, 14),
1681 Bitcoin::Xor1 => (102, 9),
1682 Bitcoin::Xor8 => (413, 11),
1683 Bitcoin::Xor16 => (3312, 14),
1684 Bitcoin::Xor32 => (3313, 14),
1685 Bitcoin::Xor64 => (3314, 14),
1686 Bitcoin::Maj1 => (208, 10),
1687 Bitcoin::Maj8 => (837, 12),
1688 Bitcoin::Maj16 => (6704, 15),
1689 Bitcoin::Maj32 => (6705, 15),
1690 Bitcoin::Maj64 => (6706, 15),
1691 Bitcoin::XorXor1 => (210, 10),
1692 Bitcoin::XorXor8 => (845, 12),
1693 Bitcoin::XorXor16 => (6768, 15),
1694 Bitcoin::XorXor32 => (6769, 15),
1695 Bitcoin::XorXor64 => (6770, 15),
1696 Bitcoin::Ch1 => (212, 10),
1697 Bitcoin::Ch8 => (853, 12),
1698 Bitcoin::Ch16 => (6832, 15),
1699 Bitcoin::Ch32 => (6833, 15),
1700 Bitcoin::Ch64 => (6834, 15),
1701 Bitcoin::Some1 => (214, 10),
1702 Bitcoin::Some8 => (861, 12),
1703 Bitcoin::Some16 => (6896, 15),
1704 Bitcoin::Some32 => (6897, 15),
1705 Bitcoin::Some64 => (6898, 15),
1706 Bitcoin::All8 => (869, 12),
1707 Bitcoin::All16 => (6960, 15),
1708 Bitcoin::All32 => (6961, 15),
1709 Bitcoin::All64 => (6962, 15),
1710 Bitcoin::Eq1 => (218, 10),
1711 Bitcoin::Eq8 => (877, 12),
1712 Bitcoin::Eq16 => (7024, 15),
1713 Bitcoin::Eq32 => (7025, 15),
1714 Bitcoin::Eq64 => (7026, 15),
1715 Bitcoin::Eq256 => (14056, 16),
1716 Bitcoin::FullLeftShift8_1 => (1765, 13),
1717 Bitcoin::FullLeftShift16_1 => (14128, 16),
1718 Bitcoin::FullLeftShift32_1 => (14129, 16),
1719 Bitcoin::FullLeftShift64_1 => (14130, 16),
1720 Bitcoin::FullLeftShift8_2 => (7076, 15),
1721 Bitcoin::FullLeftShift16_2 => (7077, 15),
1722 Bitcoin::FullLeftShift32_2 => (56624, 18),
1723 Bitcoin::FullLeftShift64_2 => (56625, 18),
1724 Bitcoin::FullLeftShift8_4 => (1770, 13),
1725 Bitcoin::FullLeftShift16_4 => (7084, 15),
1726 Bitcoin::FullLeftShift32_4 => (7085, 15),
1727 Bitcoin::FullLeftShift64_4 => (56688, 18),
1728 Bitcoin::FullLeftShift16_8 => (14176, 16),
1729 Bitcoin::FullLeftShift32_8 => (56708, 18),
1730 Bitcoin::FullLeftShift64_8 => (56709, 18),
1731 Bitcoin::FullLeftShift32_16 => (14178, 16),
1732 Bitcoin::FullLeftShift64_16 => (56716, 18),
1733 Bitcoin::FullLeftShift64_32 => (14180, 16),
1734 Bitcoin::FullRightShift8_1 => (1781, 13),
1735 Bitcoin::FullRightShift16_1 => (14256, 16),
1736 Bitcoin::FullRightShift32_1 => (14257, 16),
1737 Bitcoin::FullRightShift64_1 => (14258, 16),
1738 Bitcoin::FullRightShift8_2 => (7140, 15),
1739 Bitcoin::FullRightShift16_2 => (7141, 15),
1740 Bitcoin::FullRightShift32_2 => (57136, 18),
1741 Bitcoin::FullRightShift64_2 => (57137, 18),
1742 Bitcoin::FullRightShift8_4 => (1786, 13),
1743 Bitcoin::FullRightShift16_4 => (7148, 15),
1744 Bitcoin::FullRightShift32_4 => (7149, 15),
1745 Bitcoin::FullRightShift64_4 => (57200, 18),
1746 Bitcoin::FullRightShift16_8 => (14304, 16),
1747 Bitcoin::FullRightShift32_8 => (57220, 18),
1748 Bitcoin::FullRightShift64_8 => (57221, 18),
1749 Bitcoin::FullRightShift32_16 => (14306, 16),
1750 Bitcoin::FullRightShift64_16 => (57228, 18),
1751 Bitcoin::FullRightShift64_32 => (14308, 16),
1752 Bitcoin::Leftmost8_1 => (28677, 17),
1753 Bitcoin::Leftmost16_1 => (229424, 20),
1754 Bitcoin::Leftmost32_1 => (229425, 20),
1755 Bitcoin::Leftmost64_1 => (229426, 20),
1756 Bitcoin::Leftmost8_2 => (114724, 19),
1757 Bitcoin::Leftmost16_2 => (114725, 19),
1758 Bitcoin::Leftmost32_2 => (917808, 22),
1759 Bitcoin::Leftmost64_2 => (917809, 22),
1760 Bitcoin::Leftmost8_4 => (28682, 17),
1761 Bitcoin::Leftmost16_4 => (114732, 19),
1762 Bitcoin::Leftmost32_4 => (114733, 19),
1763 Bitcoin::Leftmost64_4 => (917872, 22),
1764 Bitcoin::Leftmost16_8 => (229472, 20),
1765 Bitcoin::Leftmost32_8 => (917892, 22),
1766 Bitcoin::Leftmost64_8 => (917893, 22),
1767 Bitcoin::Leftmost32_16 => (229474, 20),
1768 Bitcoin::Leftmost64_16 => (917900, 22),
1769 Bitcoin::Leftmost64_32 => (229476, 20),
1770 Bitcoin::Rightmost8_1 => (28693, 17),
1771 Bitcoin::Rightmost16_1 => (229552, 20),
1772 Bitcoin::Rightmost32_1 => (229553, 20),
1773 Bitcoin::Rightmost64_1 => (229554, 20),
1774 Bitcoin::Rightmost8_2 => (114788, 19),
1775 Bitcoin::Rightmost16_2 => (114789, 19),
1776 Bitcoin::Rightmost32_2 => (918320, 22),
1777 Bitcoin::Rightmost64_2 => (918321, 22),
1778 Bitcoin::Rightmost8_4 => (28698, 17),
1779 Bitcoin::Rightmost16_4 => (114796, 19),
1780 Bitcoin::Rightmost32_4 => (114797, 19),
1781 Bitcoin::Rightmost64_4 => (918384, 22),
1782 Bitcoin::Rightmost16_8 => (229600, 20),
1783 Bitcoin::Rightmost32_8 => (918404, 22),
1784 Bitcoin::Rightmost64_8 => (918405, 22),
1785 Bitcoin::Rightmost32_16 => (229602, 20),
1786 Bitcoin::Rightmost64_16 => (918412, 22),
1787 Bitcoin::Rightmost64_32 => (229604, 20),
1788 Bitcoin::LeftPadLow1_8 => (28709, 17),
1789 Bitcoin::LeftPadLow1_16 => (229680, 20),
1790 Bitcoin::LeftPadLow1_32 => (229681, 20),
1791 Bitcoin::LeftPadLow1_64 => (229682, 20),
1792 Bitcoin::LeftPadLow8_16 => (229728, 20),
1793 Bitcoin::LeftPadLow8_32 => (918916, 22),
1794 Bitcoin::LeftPadLow8_64 => (918917, 22),
1795 Bitcoin::LeftPadLow16_32 => (229730, 20),
1796 Bitcoin::LeftPadLow16_64 => (918924, 22),
1797 Bitcoin::LeftPadLow32_64 => (229732, 20),
1798 Bitcoin::LeftPadHigh1_8 => (28725, 17),
1799 Bitcoin::LeftPadHigh1_16 => (229808, 20),
1800 Bitcoin::LeftPadHigh1_32 => (229809, 20),
1801 Bitcoin::LeftPadHigh1_64 => (229810, 20),
1802 Bitcoin::LeftPadHigh8_16 => (229856, 20),
1803 Bitcoin::LeftPadHigh8_32 => (919428, 22),
1804 Bitcoin::LeftPadHigh8_64 => (919429, 22),
1805 Bitcoin::LeftPadHigh16_32 => (229858, 20),
1806 Bitcoin::LeftPadHigh16_64 => (919436, 22),
1807 Bitcoin::LeftPadHigh32_64 => (229860, 20),
1808 Bitcoin::LeftExtend1_8 => (28741, 17),
1809 Bitcoin::LeftExtend1_16 => (229936, 20),
1810 Bitcoin::LeftExtend1_32 => (229937, 20),
1811 Bitcoin::LeftExtend1_64 => (229938, 20),
1812 Bitcoin::LeftExtend8_16 => (229984, 20),
1813 Bitcoin::LeftExtend8_32 => (919940, 22),
1814 Bitcoin::LeftExtend8_64 => (919941, 22),
1815 Bitcoin::LeftExtend16_32 => (229986, 20),
1816 Bitcoin::LeftExtend16_64 => (919948, 22),
1817 Bitcoin::LeftExtend32_64 => (229988, 20),
1818 Bitcoin::RightPadLow1_8 => (28757, 17),
1819 Bitcoin::RightPadLow1_16 => (230064, 20),
1820 Bitcoin::RightPadLow1_32 => (230065, 20),
1821 Bitcoin::RightPadLow1_64 => (230066, 20),
1822 Bitcoin::RightPadLow8_16 => (230112, 20),
1823 Bitcoin::RightPadLow8_32 => (920452, 22),
1824 Bitcoin::RightPadLow8_64 => (920453, 22),
1825 Bitcoin::RightPadLow16_32 => (230114, 20),
1826 Bitcoin::RightPadLow16_64 => (920460, 22),
1827 Bitcoin::RightPadLow32_64 => (230116, 20),
1828 Bitcoin::RightPadHigh1_8 => (28773, 17),
1829 Bitcoin::RightPadHigh1_16 => (230192, 20),
1830 Bitcoin::RightPadHigh1_32 => (230193, 20),
1831 Bitcoin::RightPadHigh1_64 => (230194, 20),
1832 Bitcoin::RightPadHigh8_16 => (230240, 20),
1833 Bitcoin::RightPadHigh8_32 => (920964, 22),
1834 Bitcoin::RightPadHigh8_64 => (920965, 22),
1835 Bitcoin::RightPadHigh16_32 => (230242, 20),
1836 Bitcoin::RightPadHigh16_64 => (920972, 22),
1837 Bitcoin::RightPadHigh32_64 => (230244, 20),
1838 Bitcoin::RightExtend8_16 => (230368, 20),
1839 Bitcoin::RightExtend8_32 => (921476, 22),
1840 Bitcoin::RightExtend8_64 => (921477, 22),
1841 Bitcoin::RightExtend16_32 => (230370, 20),
1842 Bitcoin::RightExtend16_64 => (921484, 22),
1843 Bitcoin::RightExtend32_64 => (230372, 20),
1844 Bitcoin::LeftShiftWith8 => (14405, 16),
1845 Bitcoin::LeftShiftWith16 => (115248, 19),
1846 Bitcoin::LeftShiftWith32 => (115249, 19),
1847 Bitcoin::LeftShiftWith64 => (115250, 19),
1848 Bitcoin::RightShiftWith8 => (14413, 16),
1849 Bitcoin::RightShiftWith16 => (115312, 19),
1850 Bitcoin::RightShiftWith32 => (115313, 19),
1851 Bitcoin::RightShiftWith64 => (115314, 19),
1852 Bitcoin::LeftShift8 => (14421, 16),
1853 Bitcoin::LeftShift16 => (115376, 19),
1854 Bitcoin::LeftShift32 => (115377, 19),
1855 Bitcoin::LeftShift64 => (115378, 19),
1856 Bitcoin::RightShift8 => (14429, 16),
1857 Bitcoin::RightShift16 => (115440, 19),
1858 Bitcoin::RightShift32 => (115441, 19),
1859 Bitcoin::RightShift64 => (115442, 19),
1860 Bitcoin::LeftRotate8 => (14437, 16),
1861 Bitcoin::LeftRotate16 => (115504, 19),
1862 Bitcoin::LeftRotate32 => (115505, 19),
1863 Bitcoin::LeftRotate64 => (115506, 19),
1864 Bitcoin::RightRotate8 => (14445, 16),
1865 Bitcoin::RightRotate16 => (115568, 19),
1866 Bitcoin::RightRotate32 => (115569, 19),
1867 Bitcoin::RightRotate64 => (115570, 19),
1868 Bitcoin::One8 => (69, 8),
1869 Bitcoin::One16 => (560, 11),
1870 Bitcoin::One32 => (561, 11),
1871 Bitcoin::One64 => (562, 11),
1872 Bitcoin::FullAdd8 => (293, 10),
1873 Bitcoin::FullAdd16 => (2352, 13),
1874 Bitcoin::FullAdd32 => (2353, 13),
1875 Bitcoin::FullAdd64 => (2354, 13),
1876 Bitcoin::Add8 => (301, 10),
1877 Bitcoin::Add16 => (2416, 13),
1878 Bitcoin::Add32 => (2417, 13),
1879 Bitcoin::Add64 => (2418, 13),
1880 Bitcoin::FullIncrement8 => (2437, 13),
1881 Bitcoin::FullIncrement16 => (19504, 16),
1882 Bitcoin::FullIncrement32 => (19505, 16),
1883 Bitcoin::FullIncrement64 => (19506, 16),
1884 Bitcoin::Increment8 => (2445, 13),
1885 Bitcoin::Increment16 => (19568, 16),
1886 Bitcoin::Increment32 => (19569, 16),
1887 Bitcoin::Increment64 => (19570, 16),
1888 Bitcoin::FullSubtract8 => (2461, 13),
1889 Bitcoin::FullSubtract16 => (19696, 16),
1890 Bitcoin::FullSubtract32 => (19697, 16),
1891 Bitcoin::FullSubtract64 => (19698, 16),
1892 Bitcoin::Subtract8 => (4933, 14),
1893 Bitcoin::Subtract16 => (39472, 17),
1894 Bitcoin::Subtract32 => (39473, 17),
1895 Bitcoin::Subtract64 => (39474, 17),
1896 Bitcoin::Negate8 => (4941, 14),
1897 Bitcoin::Negate16 => (39536, 17),
1898 Bitcoin::Negate32 => (39537, 17),
1899 Bitcoin::Negate64 => (39538, 17),
1900 Bitcoin::FullDecrement8 => (4949, 14),
1901 Bitcoin::FullDecrement16 => (39600, 17),
1902 Bitcoin::FullDecrement32 => (39601, 17),
1903 Bitcoin::FullDecrement64 => (39602, 17),
1904 Bitcoin::Decrement8 => (4957, 14),
1905 Bitcoin::Decrement16 => (39664, 17),
1906 Bitcoin::Decrement32 => (39665, 17),
1907 Bitcoin::Decrement64 => (39666, 17),
1908 Bitcoin::FullMultiply8 => (4965, 14),
1909 Bitcoin::FullMultiply16 => (39728, 17),
1910 Bitcoin::FullMultiply32 => (39729, 17),
1911 Bitcoin::FullMultiply64 => (39730, 17),
1912 Bitcoin::Multiply8 => (4973, 14),
1913 Bitcoin::Multiply16 => (39792, 17),
1914 Bitcoin::Multiply32 => (39793, 17),
1915 Bitcoin::Multiply64 => (39794, 17),
1916 Bitcoin::IsZero8 => (4981, 14),
1917 Bitcoin::IsZero16 => (39856, 17),
1918 Bitcoin::IsZero32 => (39857, 17),
1919 Bitcoin::IsZero64 => (39858, 17),
1920 Bitcoin::IsOne8 => (4989, 14),
1921 Bitcoin::IsOne16 => (39920, 17),
1922 Bitcoin::IsOne32 => (39921, 17),
1923 Bitcoin::IsOne64 => (39922, 17),
1924 Bitcoin::Le8 => (79877, 18),
1925 Bitcoin::Le16 => (639024, 21),
1926 Bitcoin::Le32 => (639025, 21),
1927 Bitcoin::Le64 => (639026, 21),
1928 Bitcoin::Lt8 => (79885, 18),
1929 Bitcoin::Lt16 => (639088, 21),
1930 Bitcoin::Lt32 => (639089, 21),
1931 Bitcoin::Lt64 => (639090, 21),
1932 Bitcoin::Min8 => (79893, 18),
1933 Bitcoin::Min16 => (639152, 21),
1934 Bitcoin::Min32 => (639153, 21),
1935 Bitcoin::Min64 => (639154, 21),
1936 Bitcoin::Max8 => (79901, 18),
1937 Bitcoin::Max16 => (639216, 21),
1938 Bitcoin::Max32 => (639217, 21),
1939 Bitcoin::Max64 => (639218, 21),
1940 Bitcoin::Median8 => (79909, 18),
1941 Bitcoin::Median16 => (639280, 21),
1942 Bitcoin::Median32 => (639281, 21),
1943 Bitcoin::Median64 => (639282, 21),
1944 Bitcoin::DivMod128_64 => (639346, 21),
1945 Bitcoin::DivMod8 => (79925, 18),
1946 Bitcoin::DivMod16 => (639408, 21),
1947 Bitcoin::DivMod32 => (639409, 21),
1948 Bitcoin::DivMod64 => (639410, 21),
1949 Bitcoin::Divide8 => (79933, 18),
1950 Bitcoin::Divide16 => (639472, 21),
1951 Bitcoin::Divide32 => (639473, 21),
1952 Bitcoin::Divide64 => (639474, 21),
1953 Bitcoin::Modulo8 => (79941, 18),
1954 Bitcoin::Modulo16 => (639536, 21),
1955 Bitcoin::Modulo32 => (639537, 21),
1956 Bitcoin::Modulo64 => (639538, 21),
1957 Bitcoin::Divides8 => (79949, 18),
1958 Bitcoin::Divides16 => (639600, 21),
1959 Bitcoin::Divides32 => (639601, 21),
1960 Bitcoin::Divides64 => (639602, 21),
1961 Bitcoin::Sha256Block => (20, 6),
1962 Bitcoin::Sha256Iv => (84, 8),
1963 Bitcoin::Sha256Ctx8Add1 => (170, 9),
1964 Bitcoin::Sha256Ctx8Add2 => (684, 11),
1965 Bitcoin::Sha256Ctx8Add4 => (685, 11),
1966 Bitcoin::Sha256Ctx8Add8 => (5488, 14),
1967 Bitcoin::Sha256Ctx8Add16 => (5489, 14),
1968 Bitcoin::Sha256Ctx8Add32 => (5490, 14),
1969 Bitcoin::Sha256Ctx8Add64 => (5491, 14),
1970 Bitcoin::Sha256Ctx8Add128 => (10984, 15),
1971 Bitcoin::Sha256Ctx8Add256 => (10985, 15),
1972 Bitcoin::Sha256Ctx8Add512 => (10986, 15),
1973 Bitcoin::Sha256Ctx8AddBuffer511 => (688, 11),
1974 Bitcoin::Sha256Ctx8Finalize => (689, 11),
1975 Bitcoin::Sha256Ctx8Init => (690, 11),
1976 Bitcoin::PointVerify1 => (192, 9),
1977 Bitcoin::Decompress => (388, 10),
1978 Bitcoin::LinearVerify1 => (778, 11),
1979 Bitcoin::LinearCombination1 => (6240, 14),
1980 Bitcoin::Scale => (3121, 13),
1981 Bitcoin::Generate => (3122, 13),
1982 Bitcoin::GejInfinity => (3123, 13),
1983 Bitcoin::GejNormalize => (6248, 14),
1984 Bitcoin::GejNegate => (6249, 14),
1985 Bitcoin::GeNegate => (6250, 14),
1986 Bitcoin::GejDouble => (6251, 14),
1987 Bitcoin::GejAdd => (6252, 14),
1988 Bitcoin::GejGeAddEx => (6253, 14),
1989 Bitcoin::GejGeAdd => (6254, 14),
1990 Bitcoin::GejRescale => (6255, 14),
1991 Bitcoin::GejIsInfinity => (100096, 18),
1992 Bitcoin::GejEquiv => (100097, 18),
1993 Bitcoin::GejGeEquiv => (100098, 18),
1994 Bitcoin::GejXEquiv => (100099, 18),
1995 Bitcoin::GejYIsOdd => (100100, 18),
1996 Bitcoin::GejIsOnCurve => (100101, 18),
1997 Bitcoin::GeIsOnCurve => (100102, 18),
1998 Bitcoin::ScalarNormalize => (100103, 18),
1999 Bitcoin::ScalarNegate => (100104, 18),
2000 Bitcoin::ScalarAdd => (100105, 18),
2001 Bitcoin::ScalarSquare => (100106, 18),
2002 Bitcoin::ScalarMultiply => (100107, 18),
2003 Bitcoin::ScalarMultiplyLambda => (100108, 18),
2004 Bitcoin::ScalarInvert => (100109, 18),
2005 Bitcoin::ScalarIsZero => (100110, 18),
2006 Bitcoin::FeNormalize => (200227, 19),
2007 Bitcoin::FeNegate => (200228, 19),
2008 Bitcoin::FeAdd => (200229, 19),
2009 Bitcoin::FeSquare => (200230, 19),
2010 Bitcoin::FeMultiply => (200231, 19),
2011 Bitcoin::FeMultiplyBeta => (200232, 19),
2012 Bitcoin::FeInvert => (200233, 19),
2013 Bitcoin::FeSquareRoot => (200234, 19),
2014 Bitcoin::FeIsZero => (200235, 19),
2015 Bitcoin::FeIsOdd => (200236, 19),
2016 Bitcoin::HashToCurve => (200238, 19),
2017 Bitcoin::Swu => (200239, 19),
2018 Bitcoin::CheckSigVerify => (98, 8),
2019 Bitcoin::Bip0340Verify => (396, 10),
2020 Bitcoin::ParseLock => (102, 8),
2021 Bitcoin::ParseSequence => (412, 10),
2022 Bitcoin::TapdataInit => (413, 10),
2023 Bitcoin::CheckLockHeight => (24, 5),
2024 Bitcoin::CheckLockTime => (100, 7),
2025 Bitcoin::CheckLockDistance => (101, 7),
2026 Bitcoin::CheckLockDuration => (816, 10),
2027 Bitcoin::TxLockHeight => (817, 10),
2028 Bitcoin::TxLockTime => (818, 10),
2029 Bitcoin::TxLockDistance => (819, 10),
2030 Bitcoin::TxLockDuration => (1640, 11),
2031 Bitcoin::TxIsFinal => (1641, 11),
2032 Bitcoin::ScriptCMR => (26, 5),
2033 Bitcoin::InternalKey => (108, 7),
2034 Bitcoin::CurrentIndex => (109, 7),
2035 Bitcoin::NumInputs => (880, 10),
2036 Bitcoin::NumOutputs => (881, 10),
2037 Bitcoin::LockTime => (882, 10),
2038 Bitcoin::OutputValue => (1768, 11),
2039 Bitcoin::OutputScriptHash => (1769, 11),
2040 Bitcoin::TotalOutputValue => (1770, 11),
2041 Bitcoin::CurrentPrevOutpoint => (1771, 11),
2042 Bitcoin::CurrentValue => (1772, 11),
2043 Bitcoin::CurrentSequence => (1774, 11),
2044 Bitcoin::CurrentAnnexHash => (1775, 11),
2045 Bitcoin::CurrentScriptSigHash => (28416, 15),
2046 Bitcoin::InputPrevOutpoint => (28417, 15),
2047 Bitcoin::InputValue => (28418, 15),
2048 Bitcoin::InputSequence => (28420, 15),
2049 Bitcoin::InputAnnexHash => (28421, 15),
2050 Bitcoin::InputScriptSigHash => (28422, 15),
2051 Bitcoin::TotalInputValue => (28423, 15),
2052 Bitcoin::TapleafVersion => (28424, 15),
2053 Bitcoin::Tappath => (28425, 15),
2054 Bitcoin::Version => (28426, 15),
2055 };
2056
2057 w.write_bits_be(n, len)
2058 }
2059
2060 fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> {
2061 decode_bits!(bits, {
2062 0 => {
2063 0 => {
2064 0 => {Bitcoin::Verify},
2065 1 => {
2066 0 => {
2067 0 => {
2068 0 => {Bitcoin::Low1},
2069 1 => {
2070 0 => {
2071 0 => {},
2072 1 => {Bitcoin::Low8}
2073 },
2074 1 => {
2075 0 => {
2076 0 => {
2077 0 => {
2078 0 => {Bitcoin::Low16},
2079 1 => {Bitcoin::Low32}
2080 },
2081 1 => {
2082 0 => {Bitcoin::Low64},
2083 1 => {}
2084 }
2085 },
2086 1 => {}
2087 },
2088 1 => {}
2089 }
2090 }
2091 },
2092 1 => {
2093 0 => {Bitcoin::High1},
2094 1 => {
2095 0 => {
2096 0 => {},
2097 1 => {Bitcoin::High8}
2098 },
2099 1 => {
2100 0 => {
2101 0 => {
2102 0 => {
2103 0 => {Bitcoin::High16},
2104 1 => {Bitcoin::High32}
2105 },
2106 1 => {
2107 0 => {Bitcoin::High64},
2108 1 => {}
2109 }
2110 },
2111 1 => {}
2112 },
2113 1 => {}
2114 }
2115 }
2116 }
2117 },
2118 1 => {
2119 0 => {
2120 0 => {
2121 0 => {
2122 0 => {
2123 0 => {Bitcoin::Complement1},
2124 1 => {
2125 0 => {
2126 0 => {},
2127 1 => {Bitcoin::Complement8}
2128 },
2129 1 => {
2130 0 => {
2131 0 => {
2132 0 => {
2133 0 => {Bitcoin::Complement16},
2134 1 => {Bitcoin::Complement32}
2135 },
2136 1 => {
2137 0 => {Bitcoin::Complement64},
2138 1 => {}
2139 }
2140 },
2141 1 => {}
2142 },
2143 1 => {}
2144 }
2145 }
2146 },
2147 1 => {
2148 0 => {Bitcoin::And1},
2149 1 => {
2150 0 => {
2151 0 => {},
2152 1 => {Bitcoin::And8}
2153 },
2154 1 => {
2155 0 => {
2156 0 => {
2157 0 => {
2158 0 => {Bitcoin::And16},
2159 1 => {Bitcoin::And32}
2160 },
2161 1 => {
2162 0 => {Bitcoin::And64},
2163 1 => {}
2164 }
2165 },
2166 1 => {}
2167 },
2168 1 => {}
2169 }
2170 }
2171 }
2172 },
2173 1 => {
2174 0 => {
2175 0 => {Bitcoin::Or1},
2176 1 => {
2177 0 => {
2178 0 => {},
2179 1 => {Bitcoin::Or8}
2180 },
2181 1 => {
2182 0 => {
2183 0 => {
2184 0 => {
2185 0 => {Bitcoin::Or16},
2186 1 => {Bitcoin::Or32}
2187 },
2188 1 => {
2189 0 => {Bitcoin::Or64},
2190 1 => {}
2191 }
2192 },
2193 1 => {}
2194 },
2195 1 => {}
2196 }
2197 }
2198 },
2199 1 => {
2200 0 => {Bitcoin::Xor1},
2201 1 => {
2202 0 => {
2203 0 => {},
2204 1 => {Bitcoin::Xor8}
2205 },
2206 1 => {
2207 0 => {
2208 0 => {
2209 0 => {
2210 0 => {Bitcoin::Xor16},
2211 1 => {Bitcoin::Xor32}
2212 },
2213 1 => {
2214 0 => {Bitcoin::Xor64},
2215 1 => {}
2216 }
2217 },
2218 1 => {}
2219 },
2220 1 => {}
2221 }
2222 }
2223 }
2224 }
2225 },
2226 1 => {
2227 0 => {
2228 0 => {
2229 0 => {
2230 0 => {Bitcoin::Maj1},
2231 1 => {
2232 0 => {
2233 0 => {},
2234 1 => {Bitcoin::Maj8}
2235 },
2236 1 => {
2237 0 => {
2238 0 => {
2239 0 => {
2240 0 => {Bitcoin::Maj16},
2241 1 => {Bitcoin::Maj32}
2242 },
2243 1 => {
2244 0 => {Bitcoin::Maj64},
2245 1 => {}
2246 }
2247 },
2248 1 => {}
2249 },
2250 1 => {}
2251 }
2252 }
2253 },
2254 1 => {
2255 0 => {Bitcoin::XorXor1},
2256 1 => {
2257 0 => {
2258 0 => {},
2259 1 => {Bitcoin::XorXor8}
2260 },
2261 1 => {
2262 0 => {
2263 0 => {
2264 0 => {
2265 0 => {Bitcoin::XorXor16},
2266 1 => {Bitcoin::XorXor32}
2267 },
2268 1 => {
2269 0 => {Bitcoin::XorXor64},
2270 1 => {}
2271 }
2272 },
2273 1 => {}
2274 },
2275 1 => {}
2276 }
2277 }
2278 }
2279 },
2280 1 => {
2281 0 => {
2282 0 => {Bitcoin::Ch1},
2283 1 => {
2284 0 => {
2285 0 => {},
2286 1 => {Bitcoin::Ch8}
2287 },
2288 1 => {
2289 0 => {
2290 0 => {
2291 0 => {
2292 0 => {Bitcoin::Ch16},
2293 1 => {Bitcoin::Ch32}
2294 },
2295 1 => {
2296 0 => {Bitcoin::Ch64},
2297 1 => {}
2298 }
2299 },
2300 1 => {}
2301 },
2302 1 => {}
2303 }
2304 }
2305 },
2306 1 => {
2307 0 => {Bitcoin::Some1},
2308 1 => {
2309 0 => {
2310 0 => {},
2311 1 => {Bitcoin::Some8}
2312 },
2313 1 => {
2314 0 => {
2315 0 => {
2316 0 => {
2317 0 => {Bitcoin::Some16},
2318 1 => {Bitcoin::Some32}
2319 },
2320 1 => {
2321 0 => {Bitcoin::Some64},
2322 1 => {}
2323 }
2324 },
2325 1 => {}
2326 },
2327 1 => {}
2328 }
2329 }
2330 }
2331 }
2332 },
2333 1 => {
2334 0 => {
2335 0 => {
2336 0 => {},
2337 1 => {
2338 0 => {
2339 0 => {},
2340 1 => {Bitcoin::All8}
2341 },
2342 1 => {
2343 0 => {
2344 0 => {
2345 0 => {
2346 0 => {Bitcoin::All16},
2347 1 => {Bitcoin::All32}
2348 },
2349 1 => {
2350 0 => {Bitcoin::All64},
2351 1 => {}
2352 }
2353 },
2354 1 => {}
2355 },
2356 1 => {}
2357 }
2358 }
2359 },
2360 1 => {
2361 0 => {Bitcoin::Eq1},
2362 1 => {
2363 0 => {
2364 0 => {},
2365 1 => {Bitcoin::Eq8}
2366 },
2367 1 => {
2368 0 => {
2369 0 => {
2370 0 => {
2371 0 => {Bitcoin::Eq16},
2372 1 => {Bitcoin::Eq32}
2373 },
2374 1 => {
2375 0 => {Bitcoin::Eq64},
2376 1 => {}
2377 }
2378 },
2379 1 => {
2380 0 => {
2381 0 => {
2382 0 => {Bitcoin::Eq256},
2383 1 => {}
2384 },
2385 1 => {}
2386 },
2387 1 => {}
2388 }
2389 },
2390 1 => {}
2391 }
2392 }
2393 }
2394 },
2395 1 => {
2396 0 => {
2397 0 => {
2398 0 => {},
2399 1 => {
2400 0 => {
2401 0 => {},
2402 1 => {Bitcoin::FullLeftShift8_1}
2403 },
2404 1 => {
2405 0 => {
2406 0 => {
2407 0 => {
2408 0 => {Bitcoin::FullLeftShift16_1},
2409 1 => {Bitcoin::FullLeftShift32_1}
2410 },
2411 1 => {
2412 0 => {Bitcoin::FullLeftShift64_1},
2413 1 => {}
2414 }
2415 },
2416 1 => {}
2417 },
2418 1 => {}
2419 }
2420 }
2421 },
2422 1 => {
2423 0 => {
2424 0 => {
2425 0 => {},
2426 1 => {
2427 0 => {
2428 0 => {Bitcoin::FullLeftShift8_2},
2429 1 => {Bitcoin::FullLeftShift16_2}
2430 },
2431 1 => {
2432 0 => {
2433 0 => {
2434 0 => {
2435 0 => {Bitcoin::FullLeftShift32_2},
2436 1 => {Bitcoin::FullLeftShift64_2}
2437 },
2438 1 => {}
2439 },
2440 1 => {}
2441 },
2442 1 => {}
2443 }
2444 }
2445 },
2446 1 => {
2447 0 => {Bitcoin::FullLeftShift8_4},
2448 1 => {
2449 0 => {
2450 0 => {Bitcoin::FullLeftShift16_4},
2451 1 => {Bitcoin::FullLeftShift32_4}
2452 },
2453 1 => {
2454 0 => {
2455 0 => {
2456 0 => {
2457 0 => {Bitcoin::FullLeftShift64_4},
2458 1 => {}
2459 },
2460 1 => {}
2461 },
2462 1 => {}
2463 },
2464 1 => {}
2465 }
2466 }
2467 }
2468 },
2469 1 => {
2470 0 => {
2471 0 => {
2472 0 => {
2473 0 => {
2474 0 => {Bitcoin::FullLeftShift16_8},
2475 1 => {
2476 0 => {
2477 0 => {Bitcoin::FullLeftShift32_8},
2478 1 => {Bitcoin::FullLeftShift64_8}
2479 },
2480 1 => {}
2481 }
2482 },
2483 1 => {
2484 0 => {Bitcoin::FullLeftShift32_16},
2485 1 => {
2486 0 => {
2487 0 => {Bitcoin::FullLeftShift64_16},
2488 1 => {}
2489 },
2490 1 => {}
2491 }
2492 }
2493 },
2494 1 => {
2495 0 => {
2496 0 => {Bitcoin::FullLeftShift64_32},
2497 1 => {}
2498 },
2499 1 => {}
2500 }
2501 },
2502 1 => {}
2503 },
2504 1 => {}
2505 }
2506 }
2507 },
2508 1 => {
2509 0 => {
2510 0 => {},
2511 1 => {
2512 0 => {
2513 0 => {},
2514 1 => {Bitcoin::FullRightShift8_1}
2515 },
2516 1 => {
2517 0 => {
2518 0 => {
2519 0 => {
2520 0 => {Bitcoin::FullRightShift16_1},
2521 1 => {Bitcoin::FullRightShift32_1}
2522 },
2523 1 => {
2524 0 => {Bitcoin::FullRightShift64_1},
2525 1 => {}
2526 }
2527 },
2528 1 => {}
2529 },
2530 1 => {}
2531 }
2532 }
2533 },
2534 1 => {
2535 0 => {
2536 0 => {
2537 0 => {},
2538 1 => {
2539 0 => {
2540 0 => {Bitcoin::FullRightShift8_2},
2541 1 => {Bitcoin::FullRightShift16_2}
2542 },
2543 1 => {
2544 0 => {
2545 0 => {
2546 0 => {
2547 0 => {Bitcoin::FullRightShift32_2},
2548 1 => {Bitcoin::FullRightShift64_2}
2549 },
2550 1 => {}
2551 },
2552 1 => {}
2553 },
2554 1 => {}
2555 }
2556 }
2557 },
2558 1 => {
2559 0 => {Bitcoin::FullRightShift8_4},
2560 1 => {
2561 0 => {
2562 0 => {Bitcoin::FullRightShift16_4},
2563 1 => {Bitcoin::FullRightShift32_4}
2564 },
2565 1 => {
2566 0 => {
2567 0 => {
2568 0 => {
2569 0 => {Bitcoin::FullRightShift64_4},
2570 1 => {}
2571 },
2572 1 => {}
2573 },
2574 1 => {}
2575 },
2576 1 => {}
2577 }
2578 }
2579 }
2580 },
2581 1 => {
2582 0 => {
2583 0 => {
2584 0 => {
2585 0 => {
2586 0 => {Bitcoin::FullRightShift16_8},
2587 1 => {
2588 0 => {
2589 0 => {Bitcoin::FullRightShift32_8},
2590 1 => {Bitcoin::FullRightShift64_8}
2591 },
2592 1 => {}
2593 }
2594 },
2595 1 => {
2596 0 => {Bitcoin::FullRightShift32_16},
2597 1 => {
2598 0 => {
2599 0 => {Bitcoin::FullRightShift64_16},
2600 1 => {}
2601 },
2602 1 => {}
2603 }
2604 }
2605 },
2606 1 => {
2607 0 => {
2608 0 => {Bitcoin::FullRightShift64_32},
2609 1 => {}
2610 },
2611 1 => {}
2612 }
2613 },
2614 1 => {}
2615 },
2616 1 => {}
2617 }
2618 }
2619 }
2620 }
2621 }
2622 }
2623 },
2624 1 => {
2625 0 => {
2626 0 => {
2627 0 => {
2628 0 => {
2629 0 => {
2630 0 => {
2631 0 => {
2632 0 => {
2633 0 => {
2634 0 => {},
2635 1 => {
2636 0 => {
2637 0 => {},
2638 1 => {Bitcoin::Leftmost8_1}
2639 },
2640 1 => {
2641 0 => {
2642 0 => {
2643 0 => {
2644 0 => {Bitcoin::Leftmost16_1},
2645 1 => {Bitcoin::Leftmost32_1}
2646 },
2647 1 => {
2648 0 => {Bitcoin::Leftmost64_1},
2649 1 => {}
2650 }
2651 },
2652 1 => {}
2653 },
2654 1 => {}
2655 }
2656 }
2657 },
2658 1 => {
2659 0 => {
2660 0 => {
2661 0 => {},
2662 1 => {
2663 0 => {
2664 0 => {Bitcoin::Leftmost8_2},
2665 1 => {Bitcoin::Leftmost16_2}
2666 },
2667 1 => {
2668 0 => {
2669 0 => {
2670 0 => {
2671 0 => {Bitcoin::Leftmost32_2},
2672 1 => {Bitcoin::Leftmost64_2}
2673 },
2674 1 => {}
2675 },
2676 1 => {}
2677 },
2678 1 => {}
2679 }
2680 }
2681 },
2682 1 => {
2683 0 => {Bitcoin::Leftmost8_4},
2684 1 => {
2685 0 => {
2686 0 => {Bitcoin::Leftmost16_4},
2687 1 => {Bitcoin::Leftmost32_4}
2688 },
2689 1 => {
2690 0 => {
2691 0 => {
2692 0 => {
2693 0 => {Bitcoin::Leftmost64_4},
2694 1 => {}
2695 },
2696 1 => {}
2697 },
2698 1 => {}
2699 },
2700 1 => {}
2701 }
2702 }
2703 }
2704 },
2705 1 => {
2706 0 => {
2707 0 => {
2708 0 => {
2709 0 => {
2710 0 => {Bitcoin::Leftmost16_8},
2711 1 => {
2712 0 => {
2713 0 => {Bitcoin::Leftmost32_8},
2714 1 => {Bitcoin::Leftmost64_8}
2715 },
2716 1 => {}
2717 }
2718 },
2719 1 => {
2720 0 => {Bitcoin::Leftmost32_16},
2721 1 => {
2722 0 => {
2723 0 => {Bitcoin::Leftmost64_16},
2724 1 => {}
2725 },
2726 1 => {}
2727 }
2728 }
2729 },
2730 1 => {
2731 0 => {
2732 0 => {Bitcoin::Leftmost64_32},
2733 1 => {}
2734 },
2735 1 => {}
2736 }
2737 },
2738 1 => {}
2739 },
2740 1 => {}
2741 }
2742 }
2743 },
2744 1 => {
2745 0 => {
2746 0 => {},
2747 1 => {
2748 0 => {
2749 0 => {},
2750 1 => {Bitcoin::Rightmost8_1}
2751 },
2752 1 => {
2753 0 => {
2754 0 => {
2755 0 => {
2756 0 => {Bitcoin::Rightmost16_1},
2757 1 => {Bitcoin::Rightmost32_1}
2758 },
2759 1 => {
2760 0 => {Bitcoin::Rightmost64_1},
2761 1 => {}
2762 }
2763 },
2764 1 => {}
2765 },
2766 1 => {}
2767 }
2768 }
2769 },
2770 1 => {
2771 0 => {
2772 0 => {
2773 0 => {},
2774 1 => {
2775 0 => {
2776 0 => {Bitcoin::Rightmost8_2},
2777 1 => {Bitcoin::Rightmost16_2}
2778 },
2779 1 => {
2780 0 => {
2781 0 => {
2782 0 => {
2783 0 => {Bitcoin::Rightmost32_2},
2784 1 => {Bitcoin::Rightmost64_2}
2785 },
2786 1 => {}
2787 },
2788 1 => {}
2789 },
2790 1 => {}
2791 }
2792 }
2793 },
2794 1 => {
2795 0 => {Bitcoin::Rightmost8_4},
2796 1 => {
2797 0 => {
2798 0 => {Bitcoin::Rightmost16_4},
2799 1 => {Bitcoin::Rightmost32_4}
2800 },
2801 1 => {
2802 0 => {
2803 0 => {
2804 0 => {
2805 0 => {Bitcoin::Rightmost64_4},
2806 1 => {}
2807 },
2808 1 => {}
2809 },
2810 1 => {}
2811 },
2812 1 => {}
2813 }
2814 }
2815 }
2816 },
2817 1 => {
2818 0 => {
2819 0 => {
2820 0 => {
2821 0 => {
2822 0 => {Bitcoin::Rightmost16_8},
2823 1 => {
2824 0 => {
2825 0 => {Bitcoin::Rightmost32_8},
2826 1 => {Bitcoin::Rightmost64_8}
2827 },
2828 1 => {}
2829 }
2830 },
2831 1 => {
2832 0 => {Bitcoin::Rightmost32_16},
2833 1 => {
2834 0 => {
2835 0 => {Bitcoin::Rightmost64_16},
2836 1 => {}
2837 },
2838 1 => {}
2839 }
2840 }
2841 },
2842 1 => {
2843 0 => {
2844 0 => {Bitcoin::Rightmost64_32},
2845 1 => {}
2846 },
2847 1 => {}
2848 }
2849 },
2850 1 => {}
2851 },
2852 1 => {}
2853 }
2854 }
2855 }
2856 },
2857 1 => {
2858 0 => {
2859 0 => {
2860 0 => {},
2861 1 => {
2862 0 => {
2863 0 => {},
2864 1 => {Bitcoin::LeftPadLow1_8}
2865 },
2866 1 => {
2867 0 => {
2868 0 => {
2869 0 => {
2870 0 => {Bitcoin::LeftPadLow1_16},
2871 1 => {Bitcoin::LeftPadLow1_32}
2872 },
2873 1 => {
2874 0 => {Bitcoin::LeftPadLow1_64},
2875 1 => {}
2876 }
2877 },
2878 1 => {}
2879 },
2880 1 => {}
2881 }
2882 }
2883 },
2884 1 => {
2885 0 => {},
2886 1 => {
2887 0 => {
2888 0 => {
2889 0 => {
2890 0 => {
2891 0 => {Bitcoin::LeftPadLow8_16},
2892 1 => {
2893 0 => {
2894 0 => {Bitcoin::LeftPadLow8_32},
2895 1 => {Bitcoin::LeftPadLow8_64}
2896 },
2897 1 => {}
2898 }
2899 },
2900 1 => {
2901 0 => {Bitcoin::LeftPadLow16_32},
2902 1 => {
2903 0 => {
2904 0 => {Bitcoin::LeftPadLow16_64},
2905 1 => {}
2906 },
2907 1 => {}
2908 }
2909 }
2910 },
2911 1 => {
2912 0 => {
2913 0 => {Bitcoin::LeftPadLow32_64},
2914 1 => {}
2915 },
2916 1 => {}
2917 }
2918 },
2919 1 => {}
2920 },
2921 1 => {}
2922 }
2923 }
2924 },
2925 1 => {
2926 0 => {
2927 0 => {},
2928 1 => {
2929 0 => {
2930 0 => {},
2931 1 => {Bitcoin::LeftPadHigh1_8}
2932 },
2933 1 => {
2934 0 => {
2935 0 => {
2936 0 => {
2937 0 => {Bitcoin::LeftPadHigh1_16},
2938 1 => {Bitcoin::LeftPadHigh1_32}
2939 },
2940 1 => {
2941 0 => {Bitcoin::LeftPadHigh1_64},
2942 1 => {}
2943 }
2944 },
2945 1 => {}
2946 },
2947 1 => {}
2948 }
2949 }
2950 },
2951 1 => {
2952 0 => {},
2953 1 => {
2954 0 => {
2955 0 => {
2956 0 => {
2957 0 => {
2958 0 => {Bitcoin::LeftPadHigh8_16},
2959 1 => {
2960 0 => {
2961 0 => {Bitcoin::LeftPadHigh8_32},
2962 1 => {Bitcoin::LeftPadHigh8_64}
2963 },
2964 1 => {}
2965 }
2966 },
2967 1 => {
2968 0 => {Bitcoin::LeftPadHigh16_32},
2969 1 => {
2970 0 => {
2971 0 => {Bitcoin::LeftPadHigh16_64},
2972 1 => {}
2973 },
2974 1 => {}
2975 }
2976 }
2977 },
2978 1 => {
2979 0 => {
2980 0 => {Bitcoin::LeftPadHigh32_64},
2981 1 => {}
2982 },
2983 1 => {}
2984 }
2985 },
2986 1 => {}
2987 },
2988 1 => {}
2989 }
2990 }
2991 }
2992 }
2993 },
2994 1 => {
2995 0 => {
2996 0 => {
2997 0 => {
2998 0 => {},
2999 1 => {
3000 0 => {
3001 0 => {},
3002 1 => {Bitcoin::LeftExtend1_8}
3003 },
3004 1 => {
3005 0 => {
3006 0 => {
3007 0 => {
3008 0 => {Bitcoin::LeftExtend1_16},
3009 1 => {Bitcoin::LeftExtend1_32}
3010 },
3011 1 => {
3012 0 => {Bitcoin::LeftExtend1_64},
3013 1 => {}
3014 }
3015 },
3016 1 => {}
3017 },
3018 1 => {}
3019 }
3020 }
3021 },
3022 1 => {
3023 0 => {},
3024 1 => {
3025 0 => {
3026 0 => {
3027 0 => {
3028 0 => {
3029 0 => {Bitcoin::LeftExtend8_16},
3030 1 => {
3031 0 => {
3032 0 => {Bitcoin::LeftExtend8_32},
3033 1 => {Bitcoin::LeftExtend8_64}
3034 },
3035 1 => {}
3036 }
3037 },
3038 1 => {
3039 0 => {Bitcoin::LeftExtend16_32},
3040 1 => {
3041 0 => {
3042 0 => {Bitcoin::LeftExtend16_64},
3043 1 => {}
3044 },
3045 1 => {}
3046 }
3047 }
3048 },
3049 1 => {
3050 0 => {
3051 0 => {Bitcoin::LeftExtend32_64},
3052 1 => {}
3053 },
3054 1 => {}
3055 }
3056 },
3057 1 => {}
3058 },
3059 1 => {}
3060 }
3061 }
3062 },
3063 1 => {
3064 0 => {
3065 0 => {},
3066 1 => {
3067 0 => {
3068 0 => {},
3069 1 => {Bitcoin::RightPadLow1_8}
3070 },
3071 1 => {
3072 0 => {
3073 0 => {
3074 0 => {
3075 0 => {Bitcoin::RightPadLow1_16},
3076 1 => {Bitcoin::RightPadLow1_32}
3077 },
3078 1 => {
3079 0 => {Bitcoin::RightPadLow1_64},
3080 1 => {}
3081 }
3082 },
3083 1 => {}
3084 },
3085 1 => {}
3086 }
3087 }
3088 },
3089 1 => {
3090 0 => {},
3091 1 => {
3092 0 => {
3093 0 => {
3094 0 => {
3095 0 => {
3096 0 => {Bitcoin::RightPadLow8_16},
3097 1 => {
3098 0 => {
3099 0 => {Bitcoin::RightPadLow8_32},
3100 1 => {Bitcoin::RightPadLow8_64}
3101 },
3102 1 => {}
3103 }
3104 },
3105 1 => {
3106 0 => {Bitcoin::RightPadLow16_32},
3107 1 => {
3108 0 => {
3109 0 => {Bitcoin::RightPadLow16_64},
3110 1 => {}
3111 },
3112 1 => {}
3113 }
3114 }
3115 },
3116 1 => {
3117 0 => {
3118 0 => {Bitcoin::RightPadLow32_64},
3119 1 => {}
3120 },
3121 1 => {}
3122 }
3123 },
3124 1 => {}
3125 },
3126 1 => {}
3127 }
3128 }
3129 }
3130 },
3131 1 => {
3132 0 => {
3133 0 => {
3134 0 => {},
3135 1 => {
3136 0 => {
3137 0 => {},
3138 1 => {Bitcoin::RightPadHigh1_8}
3139 },
3140 1 => {
3141 0 => {
3142 0 => {
3143 0 => {
3144 0 => {Bitcoin::RightPadHigh1_16},
3145 1 => {Bitcoin::RightPadHigh1_32}
3146 },
3147 1 => {
3148 0 => {Bitcoin::RightPadHigh1_64},
3149 1 => {}
3150 }
3151 },
3152 1 => {}
3153 },
3154 1 => {}
3155 }
3156 }
3157 },
3158 1 => {
3159 0 => {},
3160 1 => {
3161 0 => {
3162 0 => {
3163 0 => {
3164 0 => {
3165 0 => {Bitcoin::RightPadHigh8_16},
3166 1 => {
3167 0 => {
3168 0 => {Bitcoin::RightPadHigh8_32},
3169 1 => {Bitcoin::RightPadHigh8_64}
3170 },
3171 1 => {}
3172 }
3173 },
3174 1 => {
3175 0 => {Bitcoin::RightPadHigh16_32},
3176 1 => {
3177 0 => {
3178 0 => {Bitcoin::RightPadHigh16_64},
3179 1 => {}
3180 },
3181 1 => {}
3182 }
3183 }
3184 },
3185 1 => {
3186 0 => {
3187 0 => {Bitcoin::RightPadHigh32_64},
3188 1 => {}
3189 },
3190 1 => {}
3191 }
3192 },
3193 1 => {}
3194 },
3195 1 => {}
3196 }
3197 }
3198 },
3199 1 => {
3200 0 => {},
3201 1 => {
3202 0 => {},
3203 1 => {
3204 0 => {
3205 0 => {
3206 0 => {
3207 0 => {
3208 0 => {Bitcoin::RightExtend8_16},
3209 1 => {
3210 0 => {
3211 0 => {Bitcoin::RightExtend8_32},
3212 1 => {Bitcoin::RightExtend8_64}
3213 },
3214 1 => {}
3215 }
3216 },
3217 1 => {
3218 0 => {Bitcoin::RightExtend16_32},
3219 1 => {
3220 0 => {
3221 0 => {Bitcoin::RightExtend16_64},
3222 1 => {}
3223 },
3224 1 => {}
3225 }
3226 }
3227 },
3228 1 => {
3229 0 => {
3230 0 => {Bitcoin::RightExtend32_64},
3231 1 => {}
3232 },
3233 1 => {}
3234 }
3235 },
3236 1 => {}
3237 },
3238 1 => {}
3239 }
3240 }
3241 }
3242 }
3243 }
3244 },
3245 1 => {
3246 0 => {
3247 0 => {
3248 0 => {
3249 0 => {},
3250 1 => {
3251 0 => {
3252 0 => {},
3253 1 => {Bitcoin::LeftShiftWith8}
3254 },
3255 1 => {
3256 0 => {
3257 0 => {
3258 0 => {
3259 0 => {Bitcoin::LeftShiftWith16},
3260 1 => {Bitcoin::LeftShiftWith32}
3261 },
3262 1 => {
3263 0 => {Bitcoin::LeftShiftWith64},
3264 1 => {}
3265 }
3266 },
3267 1 => {}
3268 },
3269 1 => {}
3270 }
3271 }
3272 },
3273 1 => {
3274 0 => {},
3275 1 => {
3276 0 => {
3277 0 => {},
3278 1 => {Bitcoin::RightShiftWith8}
3279 },
3280 1 => {
3281 0 => {
3282 0 => {
3283 0 => {
3284 0 => {Bitcoin::RightShiftWith16},
3285 1 => {Bitcoin::RightShiftWith32}
3286 },
3287 1 => {
3288 0 => {Bitcoin::RightShiftWith64},
3289 1 => {}
3290 }
3291 },
3292 1 => {}
3293 },
3294 1 => {}
3295 }
3296 }
3297 }
3298 },
3299 1 => {
3300 0 => {
3301 0 => {},
3302 1 => {
3303 0 => {
3304 0 => {},
3305 1 => {Bitcoin::LeftShift8}
3306 },
3307 1 => {
3308 0 => {
3309 0 => {
3310 0 => {
3311 0 => {Bitcoin::LeftShift16},
3312 1 => {Bitcoin::LeftShift32}
3313 },
3314 1 => {
3315 0 => {Bitcoin::LeftShift64},
3316 1 => {}
3317 }
3318 },
3319 1 => {}
3320 },
3321 1 => {}
3322 }
3323 }
3324 },
3325 1 => {
3326 0 => {},
3327 1 => {
3328 0 => {
3329 0 => {},
3330 1 => {Bitcoin::RightShift8}
3331 },
3332 1 => {
3333 0 => {
3334 0 => {
3335 0 => {
3336 0 => {Bitcoin::RightShift16},
3337 1 => {Bitcoin::RightShift32}
3338 },
3339 1 => {
3340 0 => {Bitcoin::RightShift64},
3341 1 => {}
3342 }
3343 },
3344 1 => {}
3345 },
3346 1 => {}
3347 }
3348 }
3349 }
3350 }
3351 },
3352 1 => {
3353 0 => {
3354 0 => {
3355 0 => {},
3356 1 => {
3357 0 => {
3358 0 => {},
3359 1 => {Bitcoin::LeftRotate8}
3360 },
3361 1 => {
3362 0 => {
3363 0 => {
3364 0 => {
3365 0 => {Bitcoin::LeftRotate16},
3366 1 => {Bitcoin::LeftRotate32}
3367 },
3368 1 => {
3369 0 => {Bitcoin::LeftRotate64},
3370 1 => {}
3371 }
3372 },
3373 1 => {}
3374 },
3375 1 => {}
3376 }
3377 }
3378 },
3379 1 => {
3380 0 => {},
3381 1 => {
3382 0 => {
3383 0 => {},
3384 1 => {Bitcoin::RightRotate8}
3385 },
3386 1 => {
3387 0 => {
3388 0 => {
3389 0 => {
3390 0 => {Bitcoin::RightRotate16},
3391 1 => {Bitcoin::RightRotate32}
3392 },
3393 1 => {
3394 0 => {Bitcoin::RightRotate64},
3395 1 => {}
3396 }
3397 },
3398 1 => {}
3399 },
3400 1 => {}
3401 }
3402 }
3403 }
3404 },
3405 1 => {}
3406 }
3407 }
3408 },
3409 1 => {}
3410 },
3411 1 => {}
3412 },
3413 1 => {}
3414 },
3415 1 => {}
3416 }
3417 }
3418 }
3419 },
3420 1 => {
3421 0 => {
3422 0 => {
3423 0 => {
3424 0 => {},
3425 1 => {
3426 0 => {
3427 0 => {},
3428 1 => {Bitcoin::One8}
3429 },
3430 1 => {
3431 0 => {
3432 0 => {
3433 0 => {
3434 0 => {Bitcoin::One16},
3435 1 => {Bitcoin::One32}
3436 },
3437 1 => {
3438 0 => {Bitcoin::One64},
3439 1 => {}
3440 }
3441 },
3442 1 => {}
3443 },
3444 1 => {}
3445 }
3446 }
3447 },
3448 1 => {
3449 0 => {
3450 0 => {
3451 0 => {},
3452 1 => {
3453 0 => {
3454 0 => {},
3455 1 => {Bitcoin::FullAdd8}
3456 },
3457 1 => {
3458 0 => {
3459 0 => {
3460 0 => {
3461 0 => {Bitcoin::FullAdd16},
3462 1 => {Bitcoin::FullAdd32}
3463 },
3464 1 => {
3465 0 => {Bitcoin::FullAdd64},
3466 1 => {}
3467 }
3468 },
3469 1 => {}
3470 },
3471 1 => {}
3472 }
3473 }
3474 },
3475 1 => {
3476 0 => {},
3477 1 => {
3478 0 => {
3479 0 => {},
3480 1 => {Bitcoin::Add8}
3481 },
3482 1 => {
3483 0 => {
3484 0 => {
3485 0 => {
3486 0 => {Bitcoin::Add16},
3487 1 => {Bitcoin::Add32}
3488 },
3489 1 => {
3490 0 => {Bitcoin::Add64},
3491 1 => {}
3492 }
3493 },
3494 1 => {}
3495 },
3496 1 => {}
3497 }
3498 }
3499 }
3500 },
3501 1 => {
3502 0 => {
3503 0 => {
3504 0 => {
3505 0 => {
3506 0 => {},
3507 1 => {
3508 0 => {
3509 0 => {},
3510 1 => {Bitcoin::FullIncrement8}
3511 },
3512 1 => {
3513 0 => {
3514 0 => {
3515 0 => {
3516 0 => {Bitcoin::FullIncrement16},
3517 1 => {Bitcoin::FullIncrement32}
3518 },
3519 1 => {
3520 0 => {Bitcoin::FullIncrement64},
3521 1 => {}
3522 }
3523 },
3524 1 => {}
3525 },
3526 1 => {}
3527 }
3528 }
3529 },
3530 1 => {
3531 0 => {},
3532 1 => {
3533 0 => {
3534 0 => {},
3535 1 => {Bitcoin::Increment8}
3536 },
3537 1 => {
3538 0 => {
3539 0 => {
3540 0 => {
3541 0 => {Bitcoin::Increment16},
3542 1 => {Bitcoin::Increment32}
3543 },
3544 1 => {
3545 0 => {Bitcoin::Increment64},
3546 1 => {}
3547 }
3548 },
3549 1 => {}
3550 },
3551 1 => {}
3552 }
3553 }
3554 }
3555 },
3556 1 => {
3557 0 => {},
3558 1 => {
3559 0 => {},
3560 1 => {
3561 0 => {
3562 0 => {},
3563 1 => {Bitcoin::FullSubtract8}
3564 },
3565 1 => {
3566 0 => {
3567 0 => {
3568 0 => {
3569 0 => {Bitcoin::FullSubtract16},
3570 1 => {Bitcoin::FullSubtract32}
3571 },
3572 1 => {
3573 0 => {Bitcoin::FullSubtract64},
3574 1 => {}
3575 }
3576 },
3577 1 => {}
3578 },
3579 1 => {}
3580 }
3581 }
3582 }
3583 }
3584 },
3585 1 => {
3586 0 => {
3587 0 => {
3588 0 => {
3589 0 => {},
3590 1 => {
3591 0 => {
3592 0 => {},
3593 1 => {Bitcoin::Subtract8}
3594 },
3595 1 => {
3596 0 => {
3597 0 => {
3598 0 => {
3599 0 => {Bitcoin::Subtract16},
3600 1 => {Bitcoin::Subtract32}
3601 },
3602 1 => {
3603 0 => {Bitcoin::Subtract64},
3604 1 => {}
3605 }
3606 },
3607 1 => {}
3608 },
3609 1 => {}
3610 }
3611 }
3612 },
3613 1 => {
3614 0 => {},
3615 1 => {
3616 0 => {
3617 0 => {},
3618 1 => {Bitcoin::Negate8}
3619 },
3620 1 => {
3621 0 => {
3622 0 => {
3623 0 => {
3624 0 => {Bitcoin::Negate16},
3625 1 => {Bitcoin::Negate32}
3626 },
3627 1 => {
3628 0 => {Bitcoin::Negate64},
3629 1 => {}
3630 }
3631 },
3632 1 => {}
3633 },
3634 1 => {}
3635 }
3636 }
3637 }
3638 },
3639 1 => {
3640 0 => {
3641 0 => {},
3642 1 => {
3643 0 => {
3644 0 => {},
3645 1 => {Bitcoin::FullDecrement8}
3646 },
3647 1 => {
3648 0 => {
3649 0 => {
3650 0 => {
3651 0 => {Bitcoin::FullDecrement16},
3652 1 => {Bitcoin::FullDecrement32}
3653 },
3654 1 => {
3655 0 => {Bitcoin::FullDecrement64},
3656 1 => {}
3657 }
3658 },
3659 1 => {}
3660 },
3661 1 => {}
3662 }
3663 }
3664 },
3665 1 => {
3666 0 => {},
3667 1 => {
3668 0 => {
3669 0 => {},
3670 1 => {Bitcoin::Decrement8}
3671 },
3672 1 => {
3673 0 => {
3674 0 => {
3675 0 => {
3676 0 => {Bitcoin::Decrement16},
3677 1 => {Bitcoin::Decrement32}
3678 },
3679 1 => {
3680 0 => {Bitcoin::Decrement64},
3681 1 => {}
3682 }
3683 },
3684 1 => {}
3685 },
3686 1 => {}
3687 }
3688 }
3689 }
3690 }
3691 },
3692 1 => {
3693 0 => {
3694 0 => {
3695 0 => {},
3696 1 => {
3697 0 => {
3698 0 => {},
3699 1 => {Bitcoin::FullMultiply8}
3700 },
3701 1 => {
3702 0 => {
3703 0 => {
3704 0 => {
3705 0 => {Bitcoin::FullMultiply16},
3706 1 => {Bitcoin::FullMultiply32}
3707 },
3708 1 => {
3709 0 => {Bitcoin::FullMultiply64},
3710 1 => {}
3711 }
3712 },
3713 1 => {}
3714 },
3715 1 => {}
3716 }
3717 }
3718 },
3719 1 => {
3720 0 => {},
3721 1 => {
3722 0 => {
3723 0 => {},
3724 1 => {Bitcoin::Multiply8}
3725 },
3726 1 => {
3727 0 => {
3728 0 => {
3729 0 => {
3730 0 => {Bitcoin::Multiply16},
3731 1 => {Bitcoin::Multiply32}
3732 },
3733 1 => {
3734 0 => {Bitcoin::Multiply64},
3735 1 => {}
3736 }
3737 },
3738 1 => {}
3739 },
3740 1 => {}
3741 }
3742 }
3743 }
3744 },
3745 1 => {
3746 0 => {
3747 0 => {},
3748 1 => {
3749 0 => {
3750 0 => {},
3751 1 => {Bitcoin::IsZero8}
3752 },
3753 1 => {
3754 0 => {
3755 0 => {
3756 0 => {
3757 0 => {Bitcoin::IsZero16},
3758 1 => {Bitcoin::IsZero32}
3759 },
3760 1 => {
3761 0 => {Bitcoin::IsZero64},
3762 1 => {}
3763 }
3764 },
3765 1 => {}
3766 },
3767 1 => {}
3768 }
3769 }
3770 },
3771 1 => {
3772 0 => {},
3773 1 => {
3774 0 => {
3775 0 => {},
3776 1 => {Bitcoin::IsOne8}
3777 },
3778 1 => {
3779 0 => {
3780 0 => {
3781 0 => {
3782 0 => {Bitcoin::IsOne16},
3783 1 => {Bitcoin::IsOne32}
3784 },
3785 1 => {
3786 0 => {Bitcoin::IsOne64},
3787 1 => {}
3788 }
3789 },
3790 1 => {}
3791 },
3792 1 => {}
3793 }
3794 }
3795 }
3796 }
3797 }
3798 }
3799 },
3800 1 => {
3801 0 => {
3802 0 => {
3803 0 => {
3804 0 => {
3805 0 => {
3806 0 => {
3807 0 => {
3808 0 => {
3809 0 => {},
3810 1 => {
3811 0 => {
3812 0 => {},
3813 1 => {Bitcoin::Le8}
3814 },
3815 1 => {
3816 0 => {
3817 0 => {
3818 0 => {
3819 0 => {Bitcoin::Le16},
3820 1 => {Bitcoin::Le32}
3821 },
3822 1 => {
3823 0 => {Bitcoin::Le64},
3824 1 => {}
3825 }
3826 },
3827 1 => {}
3828 },
3829 1 => {}
3830 }
3831 }
3832 },
3833 1 => {
3834 0 => {},
3835 1 => {
3836 0 => {
3837 0 => {},
3838 1 => {Bitcoin::Lt8}
3839 },
3840 1 => {
3841 0 => {
3842 0 => {
3843 0 => {
3844 0 => {Bitcoin::Lt16},
3845 1 => {Bitcoin::Lt32}
3846 },
3847 1 => {
3848 0 => {Bitcoin::Lt64},
3849 1 => {}
3850 }
3851 },
3852 1 => {}
3853 },
3854 1 => {}
3855 }
3856 }
3857 }
3858 },
3859 1 => {
3860 0 => {
3861 0 => {},
3862 1 => {
3863 0 => {
3864 0 => {},
3865 1 => {Bitcoin::Min8}
3866 },
3867 1 => {
3868 0 => {
3869 0 => {
3870 0 => {
3871 0 => {Bitcoin::Min16},
3872 1 => {Bitcoin::Min32}
3873 },
3874 1 => {
3875 0 => {Bitcoin::Min64},
3876 1 => {}
3877 }
3878 },
3879 1 => {}
3880 },
3881 1 => {}
3882 }
3883 }
3884 },
3885 1 => {
3886 0 => {},
3887 1 => {
3888 0 => {
3889 0 => {},
3890 1 => {Bitcoin::Max8}
3891 },
3892 1 => {
3893 0 => {
3894 0 => {
3895 0 => {
3896 0 => {Bitcoin::Max16},
3897 1 => {Bitcoin::Max32}
3898 },
3899 1 => {
3900 0 => {Bitcoin::Max64},
3901 1 => {}
3902 }
3903 },
3904 1 => {}
3905 },
3906 1 => {}
3907 }
3908 }
3909 }
3910 }
3911 },
3912 1 => {
3913 0 => {
3914 0 => {
3915 0 => {},
3916 1 => {
3917 0 => {
3918 0 => {},
3919 1 => {Bitcoin::Median8}
3920 },
3921 1 => {
3922 0 => {
3923 0 => {
3924 0 => {
3925 0 => {Bitcoin::Median16},
3926 1 => {Bitcoin::Median32}
3927 },
3928 1 => {
3929 0 => {Bitcoin::Median64},
3930 1 => {}
3931 }
3932 },
3933 1 => {}
3934 },
3935 1 => {}
3936 }
3937 }
3938 },
3939 1 => {
3940 0 => {},
3941 1 => {
3942 0 => {},
3943 1 => {
3944 0 => {
3945 0 => {
3946 0 => {},
3947 1 => {
3948 0 => {Bitcoin::DivMod128_64},
3949 1 => {}
3950 }
3951 },
3952 1 => {}
3953 },
3954 1 => {}
3955 }
3956 }
3957 }
3958 },
3959 1 => {
3960 0 => {
3961 0 => {},
3962 1 => {
3963 0 => {
3964 0 => {},
3965 1 => {Bitcoin::DivMod8}
3966 },
3967 1 => {
3968 0 => {
3969 0 => {
3970 0 => {
3971 0 => {Bitcoin::DivMod16},
3972 1 => {Bitcoin::DivMod32}
3973 },
3974 1 => {
3975 0 => {Bitcoin::DivMod64},
3976 1 => {}
3977 }
3978 },
3979 1 => {}
3980 },
3981 1 => {}
3982 }
3983 }
3984 },
3985 1 => {
3986 0 => {},
3987 1 => {
3988 0 => {
3989 0 => {},
3990 1 => {Bitcoin::Divide8}
3991 },
3992 1 => {
3993 0 => {
3994 0 => {
3995 0 => {
3996 0 => {Bitcoin::Divide16},
3997 1 => {Bitcoin::Divide32}
3998 },
3999 1 => {
4000 0 => {Bitcoin::Divide64},
4001 1 => {}
4002 }
4003 },
4004 1 => {}
4005 },
4006 1 => {}
4007 }
4008 }
4009 }
4010 }
4011 }
4012 },
4013 1 => {
4014 0 => {
4015 0 => {
4016 0 => {
4017 0 => {},
4018 1 => {
4019 0 => {
4020 0 => {},
4021 1 => {Bitcoin::Modulo8}
4022 },
4023 1 => {
4024 0 => {
4025 0 => {
4026 0 => {
4027 0 => {Bitcoin::Modulo16},
4028 1 => {Bitcoin::Modulo32}
4029 },
4030 1 => {
4031 0 => {Bitcoin::Modulo64},
4032 1 => {}
4033 }
4034 },
4035 1 => {}
4036 },
4037 1 => {}
4038 }
4039 }
4040 },
4041 1 => {
4042 0 => {},
4043 1 => {
4044 0 => {
4045 0 => {},
4046 1 => {Bitcoin::Divides8}
4047 },
4048 1 => {
4049 0 => {
4050 0 => {
4051 0 => {
4052 0 => {Bitcoin::Divides16},
4053 1 => {Bitcoin::Divides32}
4054 },
4055 1 => {
4056 0 => {Bitcoin::Divides64},
4057 1 => {}
4058 }
4059 },
4060 1 => {}
4061 },
4062 1 => {}
4063 }
4064 }
4065 }
4066 },
4067 1 => {}
4068 },
4069 1 => {}
4070 }
4071 },
4072 1 => {}
4073 },
4074 1 => {}
4075 },
4076 1 => {}
4077 },
4078 1 => {}
4079 }
4080 }
4081 }
4082 },
4083 1 => {
4084 0 => {
4085 0 => {Bitcoin::Sha256Block},
4086 1 => {
4087 0 => {
4088 0 => {Bitcoin::Sha256Iv},
4089 1 => {
4090 0 => {Bitcoin::Sha256Ctx8Add1},
4091 1 => {
4092 0 => {
4093 0 => {Bitcoin::Sha256Ctx8Add2},
4094 1 => {Bitcoin::Sha256Ctx8Add4}
4095 },
4096 1 => {
4097 0 => {
4098 0 => {
4099 0 => {
4100 0 => {Bitcoin::Sha256Ctx8Add8},
4101 1 => {Bitcoin::Sha256Ctx8Add16}
4102 },
4103 1 => {
4104 0 => {Bitcoin::Sha256Ctx8Add32},
4105 1 => {Bitcoin::Sha256Ctx8Add64}
4106 }
4107 },
4108 1 => {
4109 0 => {
4110 0 => {
4111 0 => {Bitcoin::Sha256Ctx8Add128},
4112 1 => {Bitcoin::Sha256Ctx8Add256}
4113 },
4114 1 => {
4115 0 => {Bitcoin::Sha256Ctx8Add512},
4116 1 => {}
4117 }
4118 },
4119 1 => {}
4120 }
4121 },
4122 1 => {}
4123 }
4124 }
4125 }
4126 },
4127 1 => {
4128 0 => {
4129 0 => {
4130 0 => {
4131 0 => {Bitcoin::Sha256Ctx8AddBuffer511},
4132 1 => {Bitcoin::Sha256Ctx8Finalize}
4133 },
4134 1 => {
4135 0 => {Bitcoin::Sha256Ctx8Init},
4136 1 => {}
4137 }
4138 },
4139 1 => {}
4140 },
4141 1 => {}
4142 }
4143 }
4144 },
4145 1 => {}
4146 }
4147 },
4148 1 => {
4149 0 => {
4150 0 => {
4151 0 => {
4152 0 => {
4153 0 => {
4154 0 => {Bitcoin::PointVerify1},
4155 1 => {}
4156 },
4157 1 => {
4158 0 => {
4159 0 => {Bitcoin::Decompress},
4160 1 => {
4161 0 => {Bitcoin::LinearVerify1},
4162 1 => {}
4163 }
4164 },
4165 1 => {
4166 0 => {
4167 0 => {
4168 0 => {
4169 0 => {
4170 0 => {Bitcoin::LinearCombination1},
4171 1 => {}
4172 },
4173 1 => {Bitcoin::Scale}
4174 },
4175 1 => {
4176 0 => {Bitcoin::Generate},
4177 1 => {Bitcoin::GejInfinity}
4178 }
4179 },
4180 1 => {
4181 0 => {
4182 0 => {
4183 0 => {Bitcoin::GejNormalize},
4184 1 => {Bitcoin::GejNegate}
4185 },
4186 1 => {
4187 0 => {Bitcoin::GeNegate},
4188 1 => {Bitcoin::GejDouble}
4189 }
4190 },
4191 1 => {
4192 0 => {
4193 0 => {Bitcoin::GejAdd},
4194 1 => {Bitcoin::GejGeAddEx}
4195 },
4196 1 => {
4197 0 => {Bitcoin::GejGeAdd},
4198 1 => {Bitcoin::GejRescale}
4199 }
4200 }
4201 }
4202 },
4203 1 => {
4204 0 => {
4205 0 => {
4206 0 => {
4207 0 => {
4208 0 => {
4209 0 => {
4210 0 => {
4211 0 => {Bitcoin::GejIsInfinity},
4212 1 => {Bitcoin::GejEquiv}
4213 },
4214 1 => {
4215 0 => {Bitcoin::GejGeEquiv},
4216 1 => {Bitcoin::GejXEquiv}
4217 }
4218 },
4219 1 => {
4220 0 => {
4221 0 => {Bitcoin::GejYIsOdd},
4222 1 => {Bitcoin::GejIsOnCurve}
4223 },
4224 1 => {
4225 0 => {Bitcoin::GeIsOnCurve},
4226 1 => {Bitcoin::ScalarNormalize}
4227 }
4228 }
4229 },
4230 1 => {
4231 0 => {
4232 0 => {
4233 0 => {Bitcoin::ScalarNegate},
4234 1 => {Bitcoin::ScalarAdd}
4235 },
4236 1 => {
4237 0 => {Bitcoin::ScalarSquare},
4238 1 => {Bitcoin::ScalarMultiply}
4239 }
4240 },
4241 1 => {
4242 0 => {
4243 0 => {Bitcoin::ScalarMultiplyLambda},
4244 1 => {Bitcoin::ScalarInvert}
4245 },
4246 1 => {
4247 0 => {Bitcoin::ScalarIsZero},
4248 1 => {}
4249 }
4250 }
4251 }
4252 },
4253 1 => {
4254 0 => {
4255 0 => {
4256 0 => {
4257 0 => {},
4258 1 => {
4259 0 => {},
4260 1 => {Bitcoin::FeNormalize}
4261 }
4262 },
4263 1 => {
4264 0 => {
4265 0 => {Bitcoin::FeNegate},
4266 1 => {Bitcoin::FeAdd}
4267 },
4268 1 => {
4269 0 => {Bitcoin::FeSquare},
4270 1 => {Bitcoin::FeMultiply}
4271 }
4272 }
4273 },
4274 1 => {
4275 0 => {
4276 0 => {
4277 0 => {Bitcoin::FeMultiplyBeta},
4278 1 => {Bitcoin::FeInvert}
4279 },
4280 1 => {
4281 0 => {Bitcoin::FeSquareRoot},
4282 1 => {Bitcoin::FeIsZero}
4283 }
4284 },
4285 1 => {
4286 0 => {
4287 0 => {Bitcoin::FeIsOdd},
4288 1 => {}
4289 },
4290 1 => {
4291 0 => {Bitcoin::HashToCurve},
4292 1 => {Bitcoin::Swu}
4293 }
4294 }
4295 }
4296 },
4297 1 => {}
4298 }
4299 },
4300 1 => {}
4301 },
4302 1 => {}
4303 },
4304 1 => {}
4305 }
4306 }
4307 }
4308 },
4309 1 => {
4310 0 => {Bitcoin::CheckSigVerify},
4311 1 => {
4312 0 => {
4313 0 => {Bitcoin::Bip0340Verify},
4314 1 => {}
4315 },
4316 1 => {}
4317 }
4318 }
4319 },
4320 1 => {
4321 0 => {},
4322 1 => {
4323 0 => {Bitcoin::ParseLock},
4324 1 => {
4325 0 => {
4326 0 => {Bitcoin::ParseSequence},
4327 1 => {Bitcoin::TapdataInit}
4328 },
4329 1 => {}
4330 }
4331 }
4332 }
4333 },
4334 1 => {}
4335 },
4336 1 => {}
4337 }
4338 }
4339 },
4340 1 => {
4341 0 => {},
4342 1 => {
4343 0 => {
4344 0 => {
4345 0 => {Bitcoin::CheckLockHeight},
4346 1 => {
4347 0 => {
4348 0 => {Bitcoin::CheckLockTime},
4349 1 => {Bitcoin::CheckLockDistance}
4350 },
4351 1 => {
4352 0 => {
4353 0 => {
4354 0 => {
4355 0 => {Bitcoin::CheckLockDuration},
4356 1 => {Bitcoin::TxLockHeight}
4357 },
4358 1 => {
4359 0 => {Bitcoin::TxLockTime},
4360 1 => {Bitcoin::TxLockDistance}
4361 }
4362 },
4363 1 => {
4364 0 => {
4365 0 => {
4366 0 => {Bitcoin::TxLockDuration},
4367 1 => {Bitcoin::TxIsFinal}
4368 },
4369 1 => {}
4370 },
4371 1 => {}
4372 }
4373 },
4374 1 => {}
4375 }
4376 }
4377 },
4378 1 => {
4379 0 => {Bitcoin::ScriptCMR},
4380 1 => {
4381 0 => {
4382 0 => {Bitcoin::InternalKey},
4383 1 => {Bitcoin::CurrentIndex}
4384 },
4385 1 => {
4386 0 => {
4387 0 => {
4388 0 => {
4389 0 => {Bitcoin::NumInputs},
4390 1 => {Bitcoin::NumOutputs}
4391 },
4392 1 => {
4393 0 => {Bitcoin::LockTime},
4394 1 => {}
4395 }
4396 },
4397 1 => {
4398 0 => {
4399 0 => {
4400 0 => {Bitcoin::OutputValue},
4401 1 => {Bitcoin::OutputScriptHash}
4402 },
4403 1 => {
4404 0 => {Bitcoin::TotalOutputValue},
4405 1 => {Bitcoin::CurrentPrevOutpoint}
4406 }
4407 },
4408 1 => {
4409 0 => {
4410 0 => {Bitcoin::CurrentValue},
4411 1 => {}
4412 },
4413 1 => {
4414 0 => {Bitcoin::CurrentSequence},
4415 1 => {Bitcoin::CurrentAnnexHash}
4416 }
4417 }
4418 }
4419 },
4420 1 => {
4421 0 => {
4422 0 => {
4423 0 => {
4424 0 => {
4425 0 => {
4426 0 => {
4427 0 => {
4428 0 => {Bitcoin::CurrentScriptSigHash},
4429 1 => {Bitcoin::InputPrevOutpoint}
4430 },
4431 1 => {
4432 0 => {Bitcoin::InputValue},
4433 1 => {}
4434 }
4435 },
4436 1 => {
4437 0 => {
4438 0 => {Bitcoin::InputSequence},
4439 1 => {Bitcoin::InputAnnexHash}
4440 },
4441 1 => {
4442 0 => {Bitcoin::InputScriptSigHash},
4443 1 => {Bitcoin::TotalInputValue}
4444 }
4445 }
4446 },
4447 1 => {
4448 0 => {
4449 0 => {
4450 0 => {Bitcoin::TapleafVersion},
4451 1 => {Bitcoin::Tappath}
4452 },
4453 1 => {
4454 0 => {Bitcoin::Version},
4455 1 => {}
4456 }
4457 },
4458 1 => {}
4459 }
4460 },
4461 1 => {}
4462 },
4463 1 => {}
4464 },
4465 1 => {}
4466 },
4467 1 => {}
4468 }
4469 }
4470 }
4471 }
4472 },
4473 1 => {}
4474 }
4475 }
4476 })
4477 }
4478
4479 fn c_jet_ptr(&self) -> &dyn Fn(&mut CFrameItem, CFrameItem, &Self::CJetEnvironment) -> bool {
4480 unimplemented!("Bitcoin jets have not yet been implemented.")
4481 }
4482
4483 fn cost(&self) -> Cost {
4484 unimplemented!("Unspecified cost of Bitcoin jets")
4485 }
4486}
4487
4488impl fmt::Display for Bitcoin {
4489 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4490 match self {
4491 Bitcoin::Add16 => f.write_str("add_16"),
4492 Bitcoin::Add32 => f.write_str("add_32"),
4493 Bitcoin::Add64 => f.write_str("add_64"),
4494 Bitcoin::Add8 => f.write_str("add_8"),
4495 Bitcoin::All16 => f.write_str("all_16"),
4496 Bitcoin::All32 => f.write_str("all_32"),
4497 Bitcoin::All64 => f.write_str("all_64"),
4498 Bitcoin::All8 => f.write_str("all_8"),
4499 Bitcoin::And1 => f.write_str("and_1"),
4500 Bitcoin::And16 => f.write_str("and_16"),
4501 Bitcoin::And32 => f.write_str("and_32"),
4502 Bitcoin::And64 => f.write_str("and_64"),
4503 Bitcoin::And8 => f.write_str("and_8"),
4504 Bitcoin::Bip0340Verify => f.write_str("bip_0340_verify"),
4505 Bitcoin::Ch1 => f.write_str("ch_1"),
4506 Bitcoin::Ch16 => f.write_str("ch_16"),
4507 Bitcoin::Ch32 => f.write_str("ch_32"),
4508 Bitcoin::Ch64 => f.write_str("ch_64"),
4509 Bitcoin::Ch8 => f.write_str("ch_8"),
4510 Bitcoin::CheckLockDistance => f.write_str("check_lock_distance"),
4511 Bitcoin::CheckLockDuration => f.write_str("check_lock_duration"),
4512 Bitcoin::CheckLockHeight => f.write_str("check_lock_height"),
4513 Bitcoin::CheckLockTime => f.write_str("check_lock_time"),
4514 Bitcoin::CheckSigVerify => f.write_str("check_sig_verify"),
4515 Bitcoin::Complement1 => f.write_str("complement_1"),
4516 Bitcoin::Complement16 => f.write_str("complement_16"),
4517 Bitcoin::Complement32 => f.write_str("complement_32"),
4518 Bitcoin::Complement64 => f.write_str("complement_64"),
4519 Bitcoin::Complement8 => f.write_str("complement_8"),
4520 Bitcoin::CurrentAnnexHash => f.write_str("current_annex_hash"),
4521 Bitcoin::CurrentIndex => f.write_str("current_index"),
4522 Bitcoin::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
4523 Bitcoin::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
4524 Bitcoin::CurrentSequence => f.write_str("current_sequence"),
4525 Bitcoin::CurrentValue => f.write_str("current_value"),
4526 Bitcoin::Decompress => f.write_str("decompress"),
4527 Bitcoin::Decrement16 => f.write_str("decrement_16"),
4528 Bitcoin::Decrement32 => f.write_str("decrement_32"),
4529 Bitcoin::Decrement64 => f.write_str("decrement_64"),
4530 Bitcoin::Decrement8 => f.write_str("decrement_8"),
4531 Bitcoin::DivMod128_64 => f.write_str("div_mod_128_64"),
4532 Bitcoin::DivMod16 => f.write_str("div_mod_16"),
4533 Bitcoin::DivMod32 => f.write_str("div_mod_32"),
4534 Bitcoin::DivMod64 => f.write_str("div_mod_64"),
4535 Bitcoin::DivMod8 => f.write_str("div_mod_8"),
4536 Bitcoin::Divide16 => f.write_str("divide_16"),
4537 Bitcoin::Divide32 => f.write_str("divide_32"),
4538 Bitcoin::Divide64 => f.write_str("divide_64"),
4539 Bitcoin::Divide8 => f.write_str("divide_8"),
4540 Bitcoin::Divides16 => f.write_str("divides_16"),
4541 Bitcoin::Divides32 => f.write_str("divides_32"),
4542 Bitcoin::Divides64 => f.write_str("divides_64"),
4543 Bitcoin::Divides8 => f.write_str("divides_8"),
4544 Bitcoin::Eq1 => f.write_str("eq_1"),
4545 Bitcoin::Eq16 => f.write_str("eq_16"),
4546 Bitcoin::Eq256 => f.write_str("eq_256"),
4547 Bitcoin::Eq32 => f.write_str("eq_32"),
4548 Bitcoin::Eq64 => f.write_str("eq_64"),
4549 Bitcoin::Eq8 => f.write_str("eq_8"),
4550 Bitcoin::FeAdd => f.write_str("fe_add"),
4551 Bitcoin::FeInvert => f.write_str("fe_invert"),
4552 Bitcoin::FeIsOdd => f.write_str("fe_is_odd"),
4553 Bitcoin::FeIsZero => f.write_str("fe_is_zero"),
4554 Bitcoin::FeMultiply => f.write_str("fe_multiply"),
4555 Bitcoin::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
4556 Bitcoin::FeNegate => f.write_str("fe_negate"),
4557 Bitcoin::FeNormalize => f.write_str("fe_normalize"),
4558 Bitcoin::FeSquare => f.write_str("fe_square"),
4559 Bitcoin::FeSquareRoot => f.write_str("fe_square_root"),
4560 Bitcoin::FullAdd16 => f.write_str("full_add_16"),
4561 Bitcoin::FullAdd32 => f.write_str("full_add_32"),
4562 Bitcoin::FullAdd64 => f.write_str("full_add_64"),
4563 Bitcoin::FullAdd8 => f.write_str("full_add_8"),
4564 Bitcoin::FullDecrement16 => f.write_str("full_decrement_16"),
4565 Bitcoin::FullDecrement32 => f.write_str("full_decrement_32"),
4566 Bitcoin::FullDecrement64 => f.write_str("full_decrement_64"),
4567 Bitcoin::FullDecrement8 => f.write_str("full_decrement_8"),
4568 Bitcoin::FullIncrement16 => f.write_str("full_increment_16"),
4569 Bitcoin::FullIncrement32 => f.write_str("full_increment_32"),
4570 Bitcoin::FullIncrement64 => f.write_str("full_increment_64"),
4571 Bitcoin::FullIncrement8 => f.write_str("full_increment_8"),
4572 Bitcoin::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
4573 Bitcoin::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
4574 Bitcoin::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
4575 Bitcoin::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
4576 Bitcoin::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
4577 Bitcoin::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
4578 Bitcoin::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
4579 Bitcoin::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
4580 Bitcoin::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
4581 Bitcoin::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
4582 Bitcoin::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
4583 Bitcoin::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
4584 Bitcoin::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
4585 Bitcoin::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
4586 Bitcoin::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
4587 Bitcoin::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
4588 Bitcoin::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
4589 Bitcoin::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
4590 Bitcoin::FullMultiply16 => f.write_str("full_multiply_16"),
4591 Bitcoin::FullMultiply32 => f.write_str("full_multiply_32"),
4592 Bitcoin::FullMultiply64 => f.write_str("full_multiply_64"),
4593 Bitcoin::FullMultiply8 => f.write_str("full_multiply_8"),
4594 Bitcoin::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
4595 Bitcoin::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
4596 Bitcoin::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
4597 Bitcoin::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
4598 Bitcoin::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
4599 Bitcoin::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
4600 Bitcoin::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
4601 Bitcoin::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
4602 Bitcoin::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
4603 Bitcoin::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
4604 Bitcoin::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
4605 Bitcoin::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
4606 Bitcoin::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
4607 Bitcoin::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
4608 Bitcoin::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
4609 Bitcoin::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
4610 Bitcoin::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
4611 Bitcoin::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
4612 Bitcoin::FullSubtract16 => f.write_str("full_subtract_16"),
4613 Bitcoin::FullSubtract32 => f.write_str("full_subtract_32"),
4614 Bitcoin::FullSubtract64 => f.write_str("full_subtract_64"),
4615 Bitcoin::FullSubtract8 => f.write_str("full_subtract_8"),
4616 Bitcoin::GeIsOnCurve => f.write_str("ge_is_on_curve"),
4617 Bitcoin::GeNegate => f.write_str("ge_negate"),
4618 Bitcoin::GejAdd => f.write_str("gej_add"),
4619 Bitcoin::GejDouble => f.write_str("gej_double"),
4620 Bitcoin::GejEquiv => f.write_str("gej_equiv"),
4621 Bitcoin::GejGeAdd => f.write_str("gej_ge_add"),
4622 Bitcoin::GejGeAddEx => f.write_str("gej_ge_add_ex"),
4623 Bitcoin::GejGeEquiv => f.write_str("gej_ge_equiv"),
4624 Bitcoin::GejInfinity => f.write_str("gej_infinity"),
4625 Bitcoin::GejIsInfinity => f.write_str("gej_is_infinity"),
4626 Bitcoin::GejIsOnCurve => f.write_str("gej_is_on_curve"),
4627 Bitcoin::GejNegate => f.write_str("gej_negate"),
4628 Bitcoin::GejNormalize => f.write_str("gej_normalize"),
4629 Bitcoin::GejRescale => f.write_str("gej_rescale"),
4630 Bitcoin::GejXEquiv => f.write_str("gej_x_equiv"),
4631 Bitcoin::GejYIsOdd => f.write_str("gej_y_is_odd"),
4632 Bitcoin::Generate => f.write_str("generate"),
4633 Bitcoin::HashToCurve => f.write_str("hash_to_curve"),
4634 Bitcoin::High1 => f.write_str("high_1"),
4635 Bitcoin::High16 => f.write_str("high_16"),
4636 Bitcoin::High32 => f.write_str("high_32"),
4637 Bitcoin::High64 => f.write_str("high_64"),
4638 Bitcoin::High8 => f.write_str("high_8"),
4639 Bitcoin::Increment16 => f.write_str("increment_16"),
4640 Bitcoin::Increment32 => f.write_str("increment_32"),
4641 Bitcoin::Increment64 => f.write_str("increment_64"),
4642 Bitcoin::Increment8 => f.write_str("increment_8"),
4643 Bitcoin::InputAnnexHash => f.write_str("input_annex_hash"),
4644 Bitcoin::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
4645 Bitcoin::InputScriptSigHash => f.write_str("input_script_sig_hash"),
4646 Bitcoin::InputSequence => f.write_str("input_sequence"),
4647 Bitcoin::InputValue => f.write_str("input_value"),
4648 Bitcoin::InternalKey => f.write_str("internal_key"),
4649 Bitcoin::IsOne16 => f.write_str("is_one_16"),
4650 Bitcoin::IsOne32 => f.write_str("is_one_32"),
4651 Bitcoin::IsOne64 => f.write_str("is_one_64"),
4652 Bitcoin::IsOne8 => f.write_str("is_one_8"),
4653 Bitcoin::IsZero16 => f.write_str("is_zero_16"),
4654 Bitcoin::IsZero32 => f.write_str("is_zero_32"),
4655 Bitcoin::IsZero64 => f.write_str("is_zero_64"),
4656 Bitcoin::IsZero8 => f.write_str("is_zero_8"),
4657 Bitcoin::Le16 => f.write_str("le_16"),
4658 Bitcoin::Le32 => f.write_str("le_32"),
4659 Bitcoin::Le64 => f.write_str("le_64"),
4660 Bitcoin::Le8 => f.write_str("le_8"),
4661 Bitcoin::LeftExtend16_32 => f.write_str("left_extend_16_32"),
4662 Bitcoin::LeftExtend16_64 => f.write_str("left_extend_16_64"),
4663 Bitcoin::LeftExtend1_16 => f.write_str("left_extend_1_16"),
4664 Bitcoin::LeftExtend1_32 => f.write_str("left_extend_1_32"),
4665 Bitcoin::LeftExtend1_64 => f.write_str("left_extend_1_64"),
4666 Bitcoin::LeftExtend1_8 => f.write_str("left_extend_1_8"),
4667 Bitcoin::LeftExtend32_64 => f.write_str("left_extend_32_64"),
4668 Bitcoin::LeftExtend8_16 => f.write_str("left_extend_8_16"),
4669 Bitcoin::LeftExtend8_32 => f.write_str("left_extend_8_32"),
4670 Bitcoin::LeftExtend8_64 => f.write_str("left_extend_8_64"),
4671 Bitcoin::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
4672 Bitcoin::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
4673 Bitcoin::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
4674 Bitcoin::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
4675 Bitcoin::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
4676 Bitcoin::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
4677 Bitcoin::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
4678 Bitcoin::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
4679 Bitcoin::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
4680 Bitcoin::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
4681 Bitcoin::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
4682 Bitcoin::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
4683 Bitcoin::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
4684 Bitcoin::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
4685 Bitcoin::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
4686 Bitcoin::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
4687 Bitcoin::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
4688 Bitcoin::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
4689 Bitcoin::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
4690 Bitcoin::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
4691 Bitcoin::LeftRotate16 => f.write_str("left_rotate_16"),
4692 Bitcoin::LeftRotate32 => f.write_str("left_rotate_32"),
4693 Bitcoin::LeftRotate64 => f.write_str("left_rotate_64"),
4694 Bitcoin::LeftRotate8 => f.write_str("left_rotate_8"),
4695 Bitcoin::LeftShift16 => f.write_str("left_shift_16"),
4696 Bitcoin::LeftShift32 => f.write_str("left_shift_32"),
4697 Bitcoin::LeftShift64 => f.write_str("left_shift_64"),
4698 Bitcoin::LeftShift8 => f.write_str("left_shift_8"),
4699 Bitcoin::LeftShiftWith16 => f.write_str("left_shift_with_16"),
4700 Bitcoin::LeftShiftWith32 => f.write_str("left_shift_with_32"),
4701 Bitcoin::LeftShiftWith64 => f.write_str("left_shift_with_64"),
4702 Bitcoin::LeftShiftWith8 => f.write_str("left_shift_with_8"),
4703 Bitcoin::Leftmost16_1 => f.write_str("leftmost_16_1"),
4704 Bitcoin::Leftmost16_2 => f.write_str("leftmost_16_2"),
4705 Bitcoin::Leftmost16_4 => f.write_str("leftmost_16_4"),
4706 Bitcoin::Leftmost16_8 => f.write_str("leftmost_16_8"),
4707 Bitcoin::Leftmost32_1 => f.write_str("leftmost_32_1"),
4708 Bitcoin::Leftmost32_16 => f.write_str("leftmost_32_16"),
4709 Bitcoin::Leftmost32_2 => f.write_str("leftmost_32_2"),
4710 Bitcoin::Leftmost32_4 => f.write_str("leftmost_32_4"),
4711 Bitcoin::Leftmost32_8 => f.write_str("leftmost_32_8"),
4712 Bitcoin::Leftmost64_1 => f.write_str("leftmost_64_1"),
4713 Bitcoin::Leftmost64_16 => f.write_str("leftmost_64_16"),
4714 Bitcoin::Leftmost64_2 => f.write_str("leftmost_64_2"),
4715 Bitcoin::Leftmost64_32 => f.write_str("leftmost_64_32"),
4716 Bitcoin::Leftmost64_4 => f.write_str("leftmost_64_4"),
4717 Bitcoin::Leftmost64_8 => f.write_str("leftmost_64_8"),
4718 Bitcoin::Leftmost8_1 => f.write_str("leftmost_8_1"),
4719 Bitcoin::Leftmost8_2 => f.write_str("leftmost_8_2"),
4720 Bitcoin::Leftmost8_4 => f.write_str("leftmost_8_4"),
4721 Bitcoin::LinearCombination1 => f.write_str("linear_combination_1"),
4722 Bitcoin::LinearVerify1 => f.write_str("linear_verify_1"),
4723 Bitcoin::LockTime => f.write_str("lock_time"),
4724 Bitcoin::Low1 => f.write_str("low_1"),
4725 Bitcoin::Low16 => f.write_str("low_16"),
4726 Bitcoin::Low32 => f.write_str("low_32"),
4727 Bitcoin::Low64 => f.write_str("low_64"),
4728 Bitcoin::Low8 => f.write_str("low_8"),
4729 Bitcoin::Lt16 => f.write_str("lt_16"),
4730 Bitcoin::Lt32 => f.write_str("lt_32"),
4731 Bitcoin::Lt64 => f.write_str("lt_64"),
4732 Bitcoin::Lt8 => f.write_str("lt_8"),
4733 Bitcoin::Maj1 => f.write_str("maj_1"),
4734 Bitcoin::Maj16 => f.write_str("maj_16"),
4735 Bitcoin::Maj32 => f.write_str("maj_32"),
4736 Bitcoin::Maj64 => f.write_str("maj_64"),
4737 Bitcoin::Maj8 => f.write_str("maj_8"),
4738 Bitcoin::Max16 => f.write_str("max_16"),
4739 Bitcoin::Max32 => f.write_str("max_32"),
4740 Bitcoin::Max64 => f.write_str("max_64"),
4741 Bitcoin::Max8 => f.write_str("max_8"),
4742 Bitcoin::Median16 => f.write_str("median_16"),
4743 Bitcoin::Median32 => f.write_str("median_32"),
4744 Bitcoin::Median64 => f.write_str("median_64"),
4745 Bitcoin::Median8 => f.write_str("median_8"),
4746 Bitcoin::Min16 => f.write_str("min_16"),
4747 Bitcoin::Min32 => f.write_str("min_32"),
4748 Bitcoin::Min64 => f.write_str("min_64"),
4749 Bitcoin::Min8 => f.write_str("min_8"),
4750 Bitcoin::Modulo16 => f.write_str("modulo_16"),
4751 Bitcoin::Modulo32 => f.write_str("modulo_32"),
4752 Bitcoin::Modulo64 => f.write_str("modulo_64"),
4753 Bitcoin::Modulo8 => f.write_str("modulo_8"),
4754 Bitcoin::Multiply16 => f.write_str("multiply_16"),
4755 Bitcoin::Multiply32 => f.write_str("multiply_32"),
4756 Bitcoin::Multiply64 => f.write_str("multiply_64"),
4757 Bitcoin::Multiply8 => f.write_str("multiply_8"),
4758 Bitcoin::Negate16 => f.write_str("negate_16"),
4759 Bitcoin::Negate32 => f.write_str("negate_32"),
4760 Bitcoin::Negate64 => f.write_str("negate_64"),
4761 Bitcoin::Negate8 => f.write_str("negate_8"),
4762 Bitcoin::NumInputs => f.write_str("num_inputs"),
4763 Bitcoin::NumOutputs => f.write_str("num_outputs"),
4764 Bitcoin::One16 => f.write_str("one_16"),
4765 Bitcoin::One32 => f.write_str("one_32"),
4766 Bitcoin::One64 => f.write_str("one_64"),
4767 Bitcoin::One8 => f.write_str("one_8"),
4768 Bitcoin::Or1 => f.write_str("or_1"),
4769 Bitcoin::Or16 => f.write_str("or_16"),
4770 Bitcoin::Or32 => f.write_str("or_32"),
4771 Bitcoin::Or64 => f.write_str("or_64"),
4772 Bitcoin::Or8 => f.write_str("or_8"),
4773 Bitcoin::OutputScriptHash => f.write_str("output_script_hash"),
4774 Bitcoin::OutputValue => f.write_str("output_value"),
4775 Bitcoin::ParseLock => f.write_str("parse_lock"),
4776 Bitcoin::ParseSequence => f.write_str("parse_sequence"),
4777 Bitcoin::PointVerify1 => f.write_str("point_verify_1"),
4778 Bitcoin::RightExtend16_32 => f.write_str("right_extend_16_32"),
4779 Bitcoin::RightExtend16_64 => f.write_str("right_extend_16_64"),
4780 Bitcoin::RightExtend32_64 => f.write_str("right_extend_32_64"),
4781 Bitcoin::RightExtend8_16 => f.write_str("right_extend_8_16"),
4782 Bitcoin::RightExtend8_32 => f.write_str("right_extend_8_32"),
4783 Bitcoin::RightExtend8_64 => f.write_str("right_extend_8_64"),
4784 Bitcoin::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
4785 Bitcoin::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
4786 Bitcoin::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
4787 Bitcoin::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
4788 Bitcoin::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
4789 Bitcoin::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
4790 Bitcoin::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
4791 Bitcoin::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
4792 Bitcoin::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
4793 Bitcoin::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
4794 Bitcoin::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
4795 Bitcoin::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
4796 Bitcoin::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
4797 Bitcoin::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
4798 Bitcoin::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
4799 Bitcoin::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
4800 Bitcoin::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
4801 Bitcoin::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
4802 Bitcoin::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
4803 Bitcoin::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
4804 Bitcoin::RightRotate16 => f.write_str("right_rotate_16"),
4805 Bitcoin::RightRotate32 => f.write_str("right_rotate_32"),
4806 Bitcoin::RightRotate64 => f.write_str("right_rotate_64"),
4807 Bitcoin::RightRotate8 => f.write_str("right_rotate_8"),
4808 Bitcoin::RightShift16 => f.write_str("right_shift_16"),
4809 Bitcoin::RightShift32 => f.write_str("right_shift_32"),
4810 Bitcoin::RightShift64 => f.write_str("right_shift_64"),
4811 Bitcoin::RightShift8 => f.write_str("right_shift_8"),
4812 Bitcoin::RightShiftWith16 => f.write_str("right_shift_with_16"),
4813 Bitcoin::RightShiftWith32 => f.write_str("right_shift_with_32"),
4814 Bitcoin::RightShiftWith64 => f.write_str("right_shift_with_64"),
4815 Bitcoin::RightShiftWith8 => f.write_str("right_shift_with_8"),
4816 Bitcoin::Rightmost16_1 => f.write_str("rightmost_16_1"),
4817 Bitcoin::Rightmost16_2 => f.write_str("rightmost_16_2"),
4818 Bitcoin::Rightmost16_4 => f.write_str("rightmost_16_4"),
4819 Bitcoin::Rightmost16_8 => f.write_str("rightmost_16_8"),
4820 Bitcoin::Rightmost32_1 => f.write_str("rightmost_32_1"),
4821 Bitcoin::Rightmost32_16 => f.write_str("rightmost_32_16"),
4822 Bitcoin::Rightmost32_2 => f.write_str("rightmost_32_2"),
4823 Bitcoin::Rightmost32_4 => f.write_str("rightmost_32_4"),
4824 Bitcoin::Rightmost32_8 => f.write_str("rightmost_32_8"),
4825 Bitcoin::Rightmost64_1 => f.write_str("rightmost_64_1"),
4826 Bitcoin::Rightmost64_16 => f.write_str("rightmost_64_16"),
4827 Bitcoin::Rightmost64_2 => f.write_str("rightmost_64_2"),
4828 Bitcoin::Rightmost64_32 => f.write_str("rightmost_64_32"),
4829 Bitcoin::Rightmost64_4 => f.write_str("rightmost_64_4"),
4830 Bitcoin::Rightmost64_8 => f.write_str("rightmost_64_8"),
4831 Bitcoin::Rightmost8_1 => f.write_str("rightmost_8_1"),
4832 Bitcoin::Rightmost8_2 => f.write_str("rightmost_8_2"),
4833 Bitcoin::Rightmost8_4 => f.write_str("rightmost_8_4"),
4834 Bitcoin::ScalarAdd => f.write_str("scalar_add"),
4835 Bitcoin::ScalarInvert => f.write_str("scalar_invert"),
4836 Bitcoin::ScalarIsZero => f.write_str("scalar_is_zero"),
4837 Bitcoin::ScalarMultiply => f.write_str("scalar_multiply"),
4838 Bitcoin::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
4839 Bitcoin::ScalarNegate => f.write_str("scalar_negate"),
4840 Bitcoin::ScalarNormalize => f.write_str("scalar_normalize"),
4841 Bitcoin::ScalarSquare => f.write_str("scalar_square"),
4842 Bitcoin::Scale => f.write_str("scale"),
4843 Bitcoin::ScriptCMR => f.write_str("script_cmr"),
4844 Bitcoin::Sha256Block => f.write_str("sha_256_block"),
4845 Bitcoin::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
4846 Bitcoin::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
4847 Bitcoin::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
4848 Bitcoin::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
4849 Bitcoin::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
4850 Bitcoin::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
4851 Bitcoin::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
4852 Bitcoin::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
4853 Bitcoin::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
4854 Bitcoin::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
4855 Bitcoin::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
4856 Bitcoin::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
4857 Bitcoin::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
4858 Bitcoin::Sha256Iv => f.write_str("sha_256_iv"),
4859 Bitcoin::Some1 => f.write_str("some_1"),
4860 Bitcoin::Some16 => f.write_str("some_16"),
4861 Bitcoin::Some32 => f.write_str("some_32"),
4862 Bitcoin::Some64 => f.write_str("some_64"),
4863 Bitcoin::Some8 => f.write_str("some_8"),
4864 Bitcoin::Subtract16 => f.write_str("subtract_16"),
4865 Bitcoin::Subtract32 => f.write_str("subtract_32"),
4866 Bitcoin::Subtract64 => f.write_str("subtract_64"),
4867 Bitcoin::Subtract8 => f.write_str("subtract_8"),
4868 Bitcoin::Swu => f.write_str("swu"),
4869 Bitcoin::TapdataInit => f.write_str("tapdata_init"),
4870 Bitcoin::TapleafVersion => f.write_str("tapleaf_version"),
4871 Bitcoin::Tappath => f.write_str("tappath"),
4872 Bitcoin::TotalInputValue => f.write_str("total_input_value"),
4873 Bitcoin::TotalOutputValue => f.write_str("total_output_value"),
4874 Bitcoin::TxIsFinal => f.write_str("tx_is_final"),
4875 Bitcoin::TxLockDistance => f.write_str("tx_lock_distance"),
4876 Bitcoin::TxLockDuration => f.write_str("tx_lock_duration"),
4877 Bitcoin::TxLockHeight => f.write_str("tx_lock_height"),
4878 Bitcoin::TxLockTime => f.write_str("tx_lock_time"),
4879 Bitcoin::Verify => f.write_str("verify"),
4880 Bitcoin::Version => f.write_str("version"),
4881 Bitcoin::Xor1 => f.write_str("xor_1"),
4882 Bitcoin::Xor16 => f.write_str("xor_16"),
4883 Bitcoin::Xor32 => f.write_str("xor_32"),
4884 Bitcoin::Xor64 => f.write_str("xor_64"),
4885 Bitcoin::Xor8 => f.write_str("xor_8"),
4886 Bitcoin::XorXor1 => f.write_str("xor_xor_1"),
4887 Bitcoin::XorXor16 => f.write_str("xor_xor_16"),
4888 Bitcoin::XorXor32 => f.write_str("xor_xor_32"),
4889 Bitcoin::XorXor64 => f.write_str("xor_xor_64"),
4890 Bitcoin::XorXor8 => f.write_str("xor_xor_8"),
4891 }
4892 }
4893}
4894
4895impl str::FromStr for Bitcoin {
4896 type Err = crate::Error;
4897
4898 fn from_str(s: &str) -> Result<Self, Self::Err> {
4899 match s {
4900 "add_16" => Ok(Bitcoin::Add16),
4901 "add_32" => Ok(Bitcoin::Add32),
4902 "add_64" => Ok(Bitcoin::Add64),
4903 "add_8" => Ok(Bitcoin::Add8),
4904 "all_16" => Ok(Bitcoin::All16),
4905 "all_32" => Ok(Bitcoin::All32),
4906 "all_64" => Ok(Bitcoin::All64),
4907 "all_8" => Ok(Bitcoin::All8),
4908 "and_1" => Ok(Bitcoin::And1),
4909 "and_16" => Ok(Bitcoin::And16),
4910 "and_32" => Ok(Bitcoin::And32),
4911 "and_64" => Ok(Bitcoin::And64),
4912 "and_8" => Ok(Bitcoin::And8),
4913 "bip_0340_verify" => Ok(Bitcoin::Bip0340Verify),
4914 "ch_1" => Ok(Bitcoin::Ch1),
4915 "ch_16" => Ok(Bitcoin::Ch16),
4916 "ch_32" => Ok(Bitcoin::Ch32),
4917 "ch_64" => Ok(Bitcoin::Ch64),
4918 "ch_8" => Ok(Bitcoin::Ch8),
4919 "check_lock_distance" => Ok(Bitcoin::CheckLockDistance),
4920 "check_lock_duration" => Ok(Bitcoin::CheckLockDuration),
4921 "check_lock_height" => Ok(Bitcoin::CheckLockHeight),
4922 "check_lock_time" => Ok(Bitcoin::CheckLockTime),
4923 "check_sig_verify" => Ok(Bitcoin::CheckSigVerify),
4924 "complement_1" => Ok(Bitcoin::Complement1),
4925 "complement_16" => Ok(Bitcoin::Complement16),
4926 "complement_32" => Ok(Bitcoin::Complement32),
4927 "complement_64" => Ok(Bitcoin::Complement64),
4928 "complement_8" => Ok(Bitcoin::Complement8),
4929 "current_annex_hash" => Ok(Bitcoin::CurrentAnnexHash),
4930 "current_index" => Ok(Bitcoin::CurrentIndex),
4931 "current_prev_outpoint" => Ok(Bitcoin::CurrentPrevOutpoint),
4932 "current_script_sig_hash" => Ok(Bitcoin::CurrentScriptSigHash),
4933 "current_sequence" => Ok(Bitcoin::CurrentSequence),
4934 "current_value" => Ok(Bitcoin::CurrentValue),
4935 "decompress" => Ok(Bitcoin::Decompress),
4936 "decrement_16" => Ok(Bitcoin::Decrement16),
4937 "decrement_32" => Ok(Bitcoin::Decrement32),
4938 "decrement_64" => Ok(Bitcoin::Decrement64),
4939 "decrement_8" => Ok(Bitcoin::Decrement8),
4940 "div_mod_128_64" => Ok(Bitcoin::DivMod128_64),
4941 "div_mod_16" => Ok(Bitcoin::DivMod16),
4942 "div_mod_32" => Ok(Bitcoin::DivMod32),
4943 "div_mod_64" => Ok(Bitcoin::DivMod64),
4944 "div_mod_8" => Ok(Bitcoin::DivMod8),
4945 "divide_16" => Ok(Bitcoin::Divide16),
4946 "divide_32" => Ok(Bitcoin::Divide32),
4947 "divide_64" => Ok(Bitcoin::Divide64),
4948 "divide_8" => Ok(Bitcoin::Divide8),
4949 "divides_16" => Ok(Bitcoin::Divides16),
4950 "divides_32" => Ok(Bitcoin::Divides32),
4951 "divides_64" => Ok(Bitcoin::Divides64),
4952 "divides_8" => Ok(Bitcoin::Divides8),
4953 "eq_1" => Ok(Bitcoin::Eq1),
4954 "eq_16" => Ok(Bitcoin::Eq16),
4955 "eq_256" => Ok(Bitcoin::Eq256),
4956 "eq_32" => Ok(Bitcoin::Eq32),
4957 "eq_64" => Ok(Bitcoin::Eq64),
4958 "eq_8" => Ok(Bitcoin::Eq8),
4959 "fe_add" => Ok(Bitcoin::FeAdd),
4960 "fe_invert" => Ok(Bitcoin::FeInvert),
4961 "fe_is_odd" => Ok(Bitcoin::FeIsOdd),
4962 "fe_is_zero" => Ok(Bitcoin::FeIsZero),
4963 "fe_multiply" => Ok(Bitcoin::FeMultiply),
4964 "fe_multiply_beta" => Ok(Bitcoin::FeMultiplyBeta),
4965 "fe_negate" => Ok(Bitcoin::FeNegate),
4966 "fe_normalize" => Ok(Bitcoin::FeNormalize),
4967 "fe_square" => Ok(Bitcoin::FeSquare),
4968 "fe_square_root" => Ok(Bitcoin::FeSquareRoot),
4969 "full_add_16" => Ok(Bitcoin::FullAdd16),
4970 "full_add_32" => Ok(Bitcoin::FullAdd32),
4971 "full_add_64" => Ok(Bitcoin::FullAdd64),
4972 "full_add_8" => Ok(Bitcoin::FullAdd8),
4973 "full_decrement_16" => Ok(Bitcoin::FullDecrement16),
4974 "full_decrement_32" => Ok(Bitcoin::FullDecrement32),
4975 "full_decrement_64" => Ok(Bitcoin::FullDecrement64),
4976 "full_decrement_8" => Ok(Bitcoin::FullDecrement8),
4977 "full_increment_16" => Ok(Bitcoin::FullIncrement16),
4978 "full_increment_32" => Ok(Bitcoin::FullIncrement32),
4979 "full_increment_64" => Ok(Bitcoin::FullIncrement64),
4980 "full_increment_8" => Ok(Bitcoin::FullIncrement8),
4981 "full_left_shift_16_1" => Ok(Bitcoin::FullLeftShift16_1),
4982 "full_left_shift_16_2" => Ok(Bitcoin::FullLeftShift16_2),
4983 "full_left_shift_16_4" => Ok(Bitcoin::FullLeftShift16_4),
4984 "full_left_shift_16_8" => Ok(Bitcoin::FullLeftShift16_8),
4985 "full_left_shift_32_1" => Ok(Bitcoin::FullLeftShift32_1),
4986 "full_left_shift_32_16" => Ok(Bitcoin::FullLeftShift32_16),
4987 "full_left_shift_32_2" => Ok(Bitcoin::FullLeftShift32_2),
4988 "full_left_shift_32_4" => Ok(Bitcoin::FullLeftShift32_4),
4989 "full_left_shift_32_8" => Ok(Bitcoin::FullLeftShift32_8),
4990 "full_left_shift_64_1" => Ok(Bitcoin::FullLeftShift64_1),
4991 "full_left_shift_64_16" => Ok(Bitcoin::FullLeftShift64_16),
4992 "full_left_shift_64_2" => Ok(Bitcoin::FullLeftShift64_2),
4993 "full_left_shift_64_32" => Ok(Bitcoin::FullLeftShift64_32),
4994 "full_left_shift_64_4" => Ok(Bitcoin::FullLeftShift64_4),
4995 "full_left_shift_64_8" => Ok(Bitcoin::FullLeftShift64_8),
4996 "full_left_shift_8_1" => Ok(Bitcoin::FullLeftShift8_1),
4997 "full_left_shift_8_2" => Ok(Bitcoin::FullLeftShift8_2),
4998 "full_left_shift_8_4" => Ok(Bitcoin::FullLeftShift8_4),
4999 "full_multiply_16" => Ok(Bitcoin::FullMultiply16),
5000 "full_multiply_32" => Ok(Bitcoin::FullMultiply32),
5001 "full_multiply_64" => Ok(Bitcoin::FullMultiply64),
5002 "full_multiply_8" => Ok(Bitcoin::FullMultiply8),
5003 "full_right_shift_16_1" => Ok(Bitcoin::FullRightShift16_1),
5004 "full_right_shift_16_2" => Ok(Bitcoin::FullRightShift16_2),
5005 "full_right_shift_16_4" => Ok(Bitcoin::FullRightShift16_4),
5006 "full_right_shift_16_8" => Ok(Bitcoin::FullRightShift16_8),
5007 "full_right_shift_32_1" => Ok(Bitcoin::FullRightShift32_1),
5008 "full_right_shift_32_16" => Ok(Bitcoin::FullRightShift32_16),
5009 "full_right_shift_32_2" => Ok(Bitcoin::FullRightShift32_2),
5010 "full_right_shift_32_4" => Ok(Bitcoin::FullRightShift32_4),
5011 "full_right_shift_32_8" => Ok(Bitcoin::FullRightShift32_8),
5012 "full_right_shift_64_1" => Ok(Bitcoin::FullRightShift64_1),
5013 "full_right_shift_64_16" => Ok(Bitcoin::FullRightShift64_16),
5014 "full_right_shift_64_2" => Ok(Bitcoin::FullRightShift64_2),
5015 "full_right_shift_64_32" => Ok(Bitcoin::FullRightShift64_32),
5016 "full_right_shift_64_4" => Ok(Bitcoin::FullRightShift64_4),
5017 "full_right_shift_64_8" => Ok(Bitcoin::FullRightShift64_8),
5018 "full_right_shift_8_1" => Ok(Bitcoin::FullRightShift8_1),
5019 "full_right_shift_8_2" => Ok(Bitcoin::FullRightShift8_2),
5020 "full_right_shift_8_4" => Ok(Bitcoin::FullRightShift8_4),
5021 "full_subtract_16" => Ok(Bitcoin::FullSubtract16),
5022 "full_subtract_32" => Ok(Bitcoin::FullSubtract32),
5023 "full_subtract_64" => Ok(Bitcoin::FullSubtract64),
5024 "full_subtract_8" => Ok(Bitcoin::FullSubtract8),
5025 "ge_is_on_curve" => Ok(Bitcoin::GeIsOnCurve),
5026 "ge_negate" => Ok(Bitcoin::GeNegate),
5027 "gej_add" => Ok(Bitcoin::GejAdd),
5028 "gej_double" => Ok(Bitcoin::GejDouble),
5029 "gej_equiv" => Ok(Bitcoin::GejEquiv),
5030 "gej_ge_add" => Ok(Bitcoin::GejGeAdd),
5031 "gej_ge_add_ex" => Ok(Bitcoin::GejGeAddEx),
5032 "gej_ge_equiv" => Ok(Bitcoin::GejGeEquiv),
5033 "gej_infinity" => Ok(Bitcoin::GejInfinity),
5034 "gej_is_infinity" => Ok(Bitcoin::GejIsInfinity),
5035 "gej_is_on_curve" => Ok(Bitcoin::GejIsOnCurve),
5036 "gej_negate" => Ok(Bitcoin::GejNegate),
5037 "gej_normalize" => Ok(Bitcoin::GejNormalize),
5038 "gej_rescale" => Ok(Bitcoin::GejRescale),
5039 "gej_x_equiv" => Ok(Bitcoin::GejXEquiv),
5040 "gej_y_is_odd" => Ok(Bitcoin::GejYIsOdd),
5041 "generate" => Ok(Bitcoin::Generate),
5042 "hash_to_curve" => Ok(Bitcoin::HashToCurve),
5043 "high_1" => Ok(Bitcoin::High1),
5044 "high_16" => Ok(Bitcoin::High16),
5045 "high_32" => Ok(Bitcoin::High32),
5046 "high_64" => Ok(Bitcoin::High64),
5047 "high_8" => Ok(Bitcoin::High8),
5048 "increment_16" => Ok(Bitcoin::Increment16),
5049 "increment_32" => Ok(Bitcoin::Increment32),
5050 "increment_64" => Ok(Bitcoin::Increment64),
5051 "increment_8" => Ok(Bitcoin::Increment8),
5052 "input_annex_hash" => Ok(Bitcoin::InputAnnexHash),
5053 "input_prev_outpoint" => Ok(Bitcoin::InputPrevOutpoint),
5054 "input_script_sig_hash" => Ok(Bitcoin::InputScriptSigHash),
5055 "input_sequence" => Ok(Bitcoin::InputSequence),
5056 "input_value" => Ok(Bitcoin::InputValue),
5057 "internal_key" => Ok(Bitcoin::InternalKey),
5058 "is_one_16" => Ok(Bitcoin::IsOne16),
5059 "is_one_32" => Ok(Bitcoin::IsOne32),
5060 "is_one_64" => Ok(Bitcoin::IsOne64),
5061 "is_one_8" => Ok(Bitcoin::IsOne8),
5062 "is_zero_16" => Ok(Bitcoin::IsZero16),
5063 "is_zero_32" => Ok(Bitcoin::IsZero32),
5064 "is_zero_64" => Ok(Bitcoin::IsZero64),
5065 "is_zero_8" => Ok(Bitcoin::IsZero8),
5066 "le_16" => Ok(Bitcoin::Le16),
5067 "le_32" => Ok(Bitcoin::Le32),
5068 "le_64" => Ok(Bitcoin::Le64),
5069 "le_8" => Ok(Bitcoin::Le8),
5070 "left_extend_16_32" => Ok(Bitcoin::LeftExtend16_32),
5071 "left_extend_16_64" => Ok(Bitcoin::LeftExtend16_64),
5072 "left_extend_1_16" => Ok(Bitcoin::LeftExtend1_16),
5073 "left_extend_1_32" => Ok(Bitcoin::LeftExtend1_32),
5074 "left_extend_1_64" => Ok(Bitcoin::LeftExtend1_64),
5075 "left_extend_1_8" => Ok(Bitcoin::LeftExtend1_8),
5076 "left_extend_32_64" => Ok(Bitcoin::LeftExtend32_64),
5077 "left_extend_8_16" => Ok(Bitcoin::LeftExtend8_16),
5078 "left_extend_8_32" => Ok(Bitcoin::LeftExtend8_32),
5079 "left_extend_8_64" => Ok(Bitcoin::LeftExtend8_64),
5080 "left_pad_high_16_32" => Ok(Bitcoin::LeftPadHigh16_32),
5081 "left_pad_high_16_64" => Ok(Bitcoin::LeftPadHigh16_64),
5082 "left_pad_high_1_16" => Ok(Bitcoin::LeftPadHigh1_16),
5083 "left_pad_high_1_32" => Ok(Bitcoin::LeftPadHigh1_32),
5084 "left_pad_high_1_64" => Ok(Bitcoin::LeftPadHigh1_64),
5085 "left_pad_high_1_8" => Ok(Bitcoin::LeftPadHigh1_8),
5086 "left_pad_high_32_64" => Ok(Bitcoin::LeftPadHigh32_64),
5087 "left_pad_high_8_16" => Ok(Bitcoin::LeftPadHigh8_16),
5088 "left_pad_high_8_32" => Ok(Bitcoin::LeftPadHigh8_32),
5089 "left_pad_high_8_64" => Ok(Bitcoin::LeftPadHigh8_64),
5090 "left_pad_low_16_32" => Ok(Bitcoin::LeftPadLow16_32),
5091 "left_pad_low_16_64" => Ok(Bitcoin::LeftPadLow16_64),
5092 "left_pad_low_1_16" => Ok(Bitcoin::LeftPadLow1_16),
5093 "left_pad_low_1_32" => Ok(Bitcoin::LeftPadLow1_32),
5094 "left_pad_low_1_64" => Ok(Bitcoin::LeftPadLow1_64),
5095 "left_pad_low_1_8" => Ok(Bitcoin::LeftPadLow1_8),
5096 "left_pad_low_32_64" => Ok(Bitcoin::LeftPadLow32_64),
5097 "left_pad_low_8_16" => Ok(Bitcoin::LeftPadLow8_16),
5098 "left_pad_low_8_32" => Ok(Bitcoin::LeftPadLow8_32),
5099 "left_pad_low_8_64" => Ok(Bitcoin::LeftPadLow8_64),
5100 "left_rotate_16" => Ok(Bitcoin::LeftRotate16),
5101 "left_rotate_32" => Ok(Bitcoin::LeftRotate32),
5102 "left_rotate_64" => Ok(Bitcoin::LeftRotate64),
5103 "left_rotate_8" => Ok(Bitcoin::LeftRotate8),
5104 "left_shift_16" => Ok(Bitcoin::LeftShift16),
5105 "left_shift_32" => Ok(Bitcoin::LeftShift32),
5106 "left_shift_64" => Ok(Bitcoin::LeftShift64),
5107 "left_shift_8" => Ok(Bitcoin::LeftShift8),
5108 "left_shift_with_16" => Ok(Bitcoin::LeftShiftWith16),
5109 "left_shift_with_32" => Ok(Bitcoin::LeftShiftWith32),
5110 "left_shift_with_64" => Ok(Bitcoin::LeftShiftWith64),
5111 "left_shift_with_8" => Ok(Bitcoin::LeftShiftWith8),
5112 "leftmost_16_1" => Ok(Bitcoin::Leftmost16_1),
5113 "leftmost_16_2" => Ok(Bitcoin::Leftmost16_2),
5114 "leftmost_16_4" => Ok(Bitcoin::Leftmost16_4),
5115 "leftmost_16_8" => Ok(Bitcoin::Leftmost16_8),
5116 "leftmost_32_1" => Ok(Bitcoin::Leftmost32_1),
5117 "leftmost_32_16" => Ok(Bitcoin::Leftmost32_16),
5118 "leftmost_32_2" => Ok(Bitcoin::Leftmost32_2),
5119 "leftmost_32_4" => Ok(Bitcoin::Leftmost32_4),
5120 "leftmost_32_8" => Ok(Bitcoin::Leftmost32_8),
5121 "leftmost_64_1" => Ok(Bitcoin::Leftmost64_1),
5122 "leftmost_64_16" => Ok(Bitcoin::Leftmost64_16),
5123 "leftmost_64_2" => Ok(Bitcoin::Leftmost64_2),
5124 "leftmost_64_32" => Ok(Bitcoin::Leftmost64_32),
5125 "leftmost_64_4" => Ok(Bitcoin::Leftmost64_4),
5126 "leftmost_64_8" => Ok(Bitcoin::Leftmost64_8),
5127 "leftmost_8_1" => Ok(Bitcoin::Leftmost8_1),
5128 "leftmost_8_2" => Ok(Bitcoin::Leftmost8_2),
5129 "leftmost_8_4" => Ok(Bitcoin::Leftmost8_4),
5130 "linear_combination_1" => Ok(Bitcoin::LinearCombination1),
5131 "linear_verify_1" => Ok(Bitcoin::LinearVerify1),
5132 "lock_time" => Ok(Bitcoin::LockTime),
5133 "low_1" => Ok(Bitcoin::Low1),
5134 "low_16" => Ok(Bitcoin::Low16),
5135 "low_32" => Ok(Bitcoin::Low32),
5136 "low_64" => Ok(Bitcoin::Low64),
5137 "low_8" => Ok(Bitcoin::Low8),
5138 "lt_16" => Ok(Bitcoin::Lt16),
5139 "lt_32" => Ok(Bitcoin::Lt32),
5140 "lt_64" => Ok(Bitcoin::Lt64),
5141 "lt_8" => Ok(Bitcoin::Lt8),
5142 "maj_1" => Ok(Bitcoin::Maj1),
5143 "maj_16" => Ok(Bitcoin::Maj16),
5144 "maj_32" => Ok(Bitcoin::Maj32),
5145 "maj_64" => Ok(Bitcoin::Maj64),
5146 "maj_8" => Ok(Bitcoin::Maj8),
5147 "max_16" => Ok(Bitcoin::Max16),
5148 "max_32" => Ok(Bitcoin::Max32),
5149 "max_64" => Ok(Bitcoin::Max64),
5150 "max_8" => Ok(Bitcoin::Max8),
5151 "median_16" => Ok(Bitcoin::Median16),
5152 "median_32" => Ok(Bitcoin::Median32),
5153 "median_64" => Ok(Bitcoin::Median64),
5154 "median_8" => Ok(Bitcoin::Median8),
5155 "min_16" => Ok(Bitcoin::Min16),
5156 "min_32" => Ok(Bitcoin::Min32),
5157 "min_64" => Ok(Bitcoin::Min64),
5158 "min_8" => Ok(Bitcoin::Min8),
5159 "modulo_16" => Ok(Bitcoin::Modulo16),
5160 "modulo_32" => Ok(Bitcoin::Modulo32),
5161 "modulo_64" => Ok(Bitcoin::Modulo64),
5162 "modulo_8" => Ok(Bitcoin::Modulo8),
5163 "multiply_16" => Ok(Bitcoin::Multiply16),
5164 "multiply_32" => Ok(Bitcoin::Multiply32),
5165 "multiply_64" => Ok(Bitcoin::Multiply64),
5166 "multiply_8" => Ok(Bitcoin::Multiply8),
5167 "negate_16" => Ok(Bitcoin::Negate16),
5168 "negate_32" => Ok(Bitcoin::Negate32),
5169 "negate_64" => Ok(Bitcoin::Negate64),
5170 "negate_8" => Ok(Bitcoin::Negate8),
5171 "num_inputs" => Ok(Bitcoin::NumInputs),
5172 "num_outputs" => Ok(Bitcoin::NumOutputs),
5173 "one_16" => Ok(Bitcoin::One16),
5174 "one_32" => Ok(Bitcoin::One32),
5175 "one_64" => Ok(Bitcoin::One64),
5176 "one_8" => Ok(Bitcoin::One8),
5177 "or_1" => Ok(Bitcoin::Or1),
5178 "or_16" => Ok(Bitcoin::Or16),
5179 "or_32" => Ok(Bitcoin::Or32),
5180 "or_64" => Ok(Bitcoin::Or64),
5181 "or_8" => Ok(Bitcoin::Or8),
5182 "output_script_hash" => Ok(Bitcoin::OutputScriptHash),
5183 "output_value" => Ok(Bitcoin::OutputValue),
5184 "parse_lock" => Ok(Bitcoin::ParseLock),
5185 "parse_sequence" => Ok(Bitcoin::ParseSequence),
5186 "point_verify_1" => Ok(Bitcoin::PointVerify1),
5187 "right_extend_16_32" => Ok(Bitcoin::RightExtend16_32),
5188 "right_extend_16_64" => Ok(Bitcoin::RightExtend16_64),
5189 "right_extend_32_64" => Ok(Bitcoin::RightExtend32_64),
5190 "right_extend_8_16" => Ok(Bitcoin::RightExtend8_16),
5191 "right_extend_8_32" => Ok(Bitcoin::RightExtend8_32),
5192 "right_extend_8_64" => Ok(Bitcoin::RightExtend8_64),
5193 "right_pad_high_16_32" => Ok(Bitcoin::RightPadHigh16_32),
5194 "right_pad_high_16_64" => Ok(Bitcoin::RightPadHigh16_64),
5195 "right_pad_high_1_16" => Ok(Bitcoin::RightPadHigh1_16),
5196 "right_pad_high_1_32" => Ok(Bitcoin::RightPadHigh1_32),
5197 "right_pad_high_1_64" => Ok(Bitcoin::RightPadHigh1_64),
5198 "right_pad_high_1_8" => Ok(Bitcoin::RightPadHigh1_8),
5199 "right_pad_high_32_64" => Ok(Bitcoin::RightPadHigh32_64),
5200 "right_pad_high_8_16" => Ok(Bitcoin::RightPadHigh8_16),
5201 "right_pad_high_8_32" => Ok(Bitcoin::RightPadHigh8_32),
5202 "right_pad_high_8_64" => Ok(Bitcoin::RightPadHigh8_64),
5203 "right_pad_low_16_32" => Ok(Bitcoin::RightPadLow16_32),
5204 "right_pad_low_16_64" => Ok(Bitcoin::RightPadLow16_64),
5205 "right_pad_low_1_16" => Ok(Bitcoin::RightPadLow1_16),
5206 "right_pad_low_1_32" => Ok(Bitcoin::RightPadLow1_32),
5207 "right_pad_low_1_64" => Ok(Bitcoin::RightPadLow1_64),
5208 "right_pad_low_1_8" => Ok(Bitcoin::RightPadLow1_8),
5209 "right_pad_low_32_64" => Ok(Bitcoin::RightPadLow32_64),
5210 "right_pad_low_8_16" => Ok(Bitcoin::RightPadLow8_16),
5211 "right_pad_low_8_32" => Ok(Bitcoin::RightPadLow8_32),
5212 "right_pad_low_8_64" => Ok(Bitcoin::RightPadLow8_64),
5213 "right_rotate_16" => Ok(Bitcoin::RightRotate16),
5214 "right_rotate_32" => Ok(Bitcoin::RightRotate32),
5215 "right_rotate_64" => Ok(Bitcoin::RightRotate64),
5216 "right_rotate_8" => Ok(Bitcoin::RightRotate8),
5217 "right_shift_16" => Ok(Bitcoin::RightShift16),
5218 "right_shift_32" => Ok(Bitcoin::RightShift32),
5219 "right_shift_64" => Ok(Bitcoin::RightShift64),
5220 "right_shift_8" => Ok(Bitcoin::RightShift8),
5221 "right_shift_with_16" => Ok(Bitcoin::RightShiftWith16),
5222 "right_shift_with_32" => Ok(Bitcoin::RightShiftWith32),
5223 "right_shift_with_64" => Ok(Bitcoin::RightShiftWith64),
5224 "right_shift_with_8" => Ok(Bitcoin::RightShiftWith8),
5225 "rightmost_16_1" => Ok(Bitcoin::Rightmost16_1),
5226 "rightmost_16_2" => Ok(Bitcoin::Rightmost16_2),
5227 "rightmost_16_4" => Ok(Bitcoin::Rightmost16_4),
5228 "rightmost_16_8" => Ok(Bitcoin::Rightmost16_8),
5229 "rightmost_32_1" => Ok(Bitcoin::Rightmost32_1),
5230 "rightmost_32_16" => Ok(Bitcoin::Rightmost32_16),
5231 "rightmost_32_2" => Ok(Bitcoin::Rightmost32_2),
5232 "rightmost_32_4" => Ok(Bitcoin::Rightmost32_4),
5233 "rightmost_32_8" => Ok(Bitcoin::Rightmost32_8),
5234 "rightmost_64_1" => Ok(Bitcoin::Rightmost64_1),
5235 "rightmost_64_16" => Ok(Bitcoin::Rightmost64_16),
5236 "rightmost_64_2" => Ok(Bitcoin::Rightmost64_2),
5237 "rightmost_64_32" => Ok(Bitcoin::Rightmost64_32),
5238 "rightmost_64_4" => Ok(Bitcoin::Rightmost64_4),
5239 "rightmost_64_8" => Ok(Bitcoin::Rightmost64_8),
5240 "rightmost_8_1" => Ok(Bitcoin::Rightmost8_1),
5241 "rightmost_8_2" => Ok(Bitcoin::Rightmost8_2),
5242 "rightmost_8_4" => Ok(Bitcoin::Rightmost8_4),
5243 "scalar_add" => Ok(Bitcoin::ScalarAdd),
5244 "scalar_invert" => Ok(Bitcoin::ScalarInvert),
5245 "scalar_is_zero" => Ok(Bitcoin::ScalarIsZero),
5246 "scalar_multiply" => Ok(Bitcoin::ScalarMultiply),
5247 "scalar_multiply_lambda" => Ok(Bitcoin::ScalarMultiplyLambda),
5248 "scalar_negate" => Ok(Bitcoin::ScalarNegate),
5249 "scalar_normalize" => Ok(Bitcoin::ScalarNormalize),
5250 "scalar_square" => Ok(Bitcoin::ScalarSquare),
5251 "scale" => Ok(Bitcoin::Scale),
5252 "script_cmr" => Ok(Bitcoin::ScriptCMR),
5253 "sha_256_block" => Ok(Bitcoin::Sha256Block),
5254 "sha_256_ctx_8_add_1" => Ok(Bitcoin::Sha256Ctx8Add1),
5255 "sha_256_ctx_8_add_128" => Ok(Bitcoin::Sha256Ctx8Add128),
5256 "sha_256_ctx_8_add_16" => Ok(Bitcoin::Sha256Ctx8Add16),
5257 "sha_256_ctx_8_add_2" => Ok(Bitcoin::Sha256Ctx8Add2),
5258 "sha_256_ctx_8_add_256" => Ok(Bitcoin::Sha256Ctx8Add256),
5259 "sha_256_ctx_8_add_32" => Ok(Bitcoin::Sha256Ctx8Add32),
5260 "sha_256_ctx_8_add_4" => Ok(Bitcoin::Sha256Ctx8Add4),
5261 "sha_256_ctx_8_add_512" => Ok(Bitcoin::Sha256Ctx8Add512),
5262 "sha_256_ctx_8_add_64" => Ok(Bitcoin::Sha256Ctx8Add64),
5263 "sha_256_ctx_8_add_8" => Ok(Bitcoin::Sha256Ctx8Add8),
5264 "sha_256_ctx_8_add_buffer_511" => Ok(Bitcoin::Sha256Ctx8AddBuffer511),
5265 "sha_256_ctx_8_finalize" => Ok(Bitcoin::Sha256Ctx8Finalize),
5266 "sha_256_ctx_8_init" => Ok(Bitcoin::Sha256Ctx8Init),
5267 "sha_256_iv" => Ok(Bitcoin::Sha256Iv),
5268 "some_1" => Ok(Bitcoin::Some1),
5269 "some_16" => Ok(Bitcoin::Some16),
5270 "some_32" => Ok(Bitcoin::Some32),
5271 "some_64" => Ok(Bitcoin::Some64),
5272 "some_8" => Ok(Bitcoin::Some8),
5273 "subtract_16" => Ok(Bitcoin::Subtract16),
5274 "subtract_32" => Ok(Bitcoin::Subtract32),
5275 "subtract_64" => Ok(Bitcoin::Subtract64),
5276 "subtract_8" => Ok(Bitcoin::Subtract8),
5277 "swu" => Ok(Bitcoin::Swu),
5278 "tapdata_init" => Ok(Bitcoin::TapdataInit),
5279 "tapleaf_version" => Ok(Bitcoin::TapleafVersion),
5280 "tappath" => Ok(Bitcoin::Tappath),
5281 "total_input_value" => Ok(Bitcoin::TotalInputValue),
5282 "total_output_value" => Ok(Bitcoin::TotalOutputValue),
5283 "tx_is_final" => Ok(Bitcoin::TxIsFinal),
5284 "tx_lock_distance" => Ok(Bitcoin::TxLockDistance),
5285 "tx_lock_duration" => Ok(Bitcoin::TxLockDuration),
5286 "tx_lock_height" => Ok(Bitcoin::TxLockHeight),
5287 "tx_lock_time" => Ok(Bitcoin::TxLockTime),
5288 "verify" => Ok(Bitcoin::Verify),
5289 "version" => Ok(Bitcoin::Version),
5290 "xor_1" => Ok(Bitcoin::Xor1),
5291 "xor_16" => Ok(Bitcoin::Xor16),
5292 "xor_32" => Ok(Bitcoin::Xor32),
5293 "xor_64" => Ok(Bitcoin::Xor64),
5294 "xor_8" => Ok(Bitcoin::Xor8),
5295 "xor_xor_1" => Ok(Bitcoin::XorXor1),
5296 "xor_xor_16" => Ok(Bitcoin::XorXor16),
5297 "xor_xor_32" => Ok(Bitcoin::XorXor32),
5298 "xor_xor_64" => Ok(Bitcoin::XorXor64),
5299 "xor_xor_8" => Ok(Bitcoin::XorXor8),
5300 x => Err(crate::Error::InvalidJetName(x.to_owned())),
5301 }
5302 }
5303}