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