@@ -154,55 +154,51 @@ use std::{
154154} ;
155155
156156use libbitcoinkernel_sys:: {
157- btck_PrecomputedTransactionData, btck_ScriptVerificationFlags, btck_ScriptVerifyStatus,
157+ btck_PrecomputedTransactionData, btck_ScriptVerificationFlags,
158+ btck_ScriptVerificationFlags_ALL, btck_ScriptVerificationFlags_CHECKLOCKTIMEVERIFY,
159+ btck_ScriptVerificationFlags_CHECKSEQUENCEVERIFY, btck_ScriptVerificationFlags_DERSIG,
160+ btck_ScriptVerificationFlags_NONE, btck_ScriptVerificationFlags_NULLDUMMY,
161+ btck_ScriptVerificationFlags_P2SH, btck_ScriptVerificationFlags_TAPROOT,
162+ btck_ScriptVerificationFlags_WITNESS, btck_ScriptVerifyStatus,
163+ btck_ScriptVerifyStatus_ERROR_INVALID_FLAGS_COMBINATION,
164+ btck_ScriptVerifyStatus_ERROR_SPENT_OUTPUTS_REQUIRED, btck_ScriptVerifyStatus_OK,
158165 btck_TransactionOutput, btck_precomputed_transaction_data_copy,
159166 btck_precomputed_transaction_data_create, btck_precomputed_transaction_data_destroy,
160167 btck_script_pubkey_verify,
161168} ;
162169
163170use crate :: {
164- c_helpers,
165- ffi:: {
166- sealed:: AsPtr , BTCK_SCRIPT_VERIFICATION_FLAGS_ALL ,
167- BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKLOCKTIMEVERIFY ,
168- BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKSEQUENCEVERIFY , BTCK_SCRIPT_VERIFICATION_FLAGS_DERSIG ,
169- BTCK_SCRIPT_VERIFICATION_FLAGS_NONE , BTCK_SCRIPT_VERIFICATION_FLAGS_NULLDUMMY ,
170- BTCK_SCRIPT_VERIFICATION_FLAGS_P2SH , BTCK_SCRIPT_VERIFICATION_FLAGS_TAPROOT ,
171- BTCK_SCRIPT_VERIFICATION_FLAGS_WITNESS ,
172- BTCK_SCRIPT_VERIFY_STATUS_ERROR_INVALID_FLAGS_COMBINATION ,
173- BTCK_SCRIPT_VERIFY_STATUS_ERROR_SPENT_OUTPUTS_REQUIRED , BTCK_SCRIPT_VERIFY_STATUS_OK ,
174- } ,
175- KernelError , ScriptPubkeyExt , TransactionExt , TxOutExt ,
171+ c_helpers, ffi:: sealed:: AsPtr , KernelError , ScriptPubkeyExt , TransactionExt , TxOutExt ,
176172} ;
177173
178174/// No verification flags.
179- pub const VERIFY_NONE : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_NONE ;
175+ pub const VERIFY_NONE : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_NONE ;
180176
181177/// Validate Pay-to-Script-Hash (BIP 16).
182- pub const VERIFY_P2SH : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_P2SH ;
178+ pub const VERIFY_P2SH : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_P2SH ;
183179
184180/// Require strict DER encoding for ECDSA signatures (BIP 66).
185- pub const VERIFY_DERSIG : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_DERSIG ;
181+ pub const VERIFY_DERSIG : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_DERSIG ;
186182
187183/// Require the dummy element in OP_CHECKMULTISIG to be empty (BIP 147).
188- pub const VERIFY_NULLDUMMY : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_NULLDUMMY ;
184+ pub const VERIFY_NULLDUMMY : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_NULLDUMMY ;
189185
190186/// Enable OP_CHECKLOCKTIMEVERIFY (BIP 65).
191187pub const VERIFY_CHECKLOCKTIMEVERIFY : btck_ScriptVerificationFlags =
192- BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKLOCKTIMEVERIFY ;
188+ btck_ScriptVerificationFlags_CHECKLOCKTIMEVERIFY ;
193189
194190/// Enable OP_CHECKSEQUENCEVERIFY (BIP 112).
195191pub const VERIFY_CHECKSEQUENCEVERIFY : btck_ScriptVerificationFlags =
196- BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKSEQUENCEVERIFY ;
192+ btck_ScriptVerificationFlags_CHECKSEQUENCEVERIFY ;
197193
198194/// Validate Segregated Witness programs (BIP 141/143).
199- pub const VERIFY_WITNESS : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_WITNESS ;
195+ pub const VERIFY_WITNESS : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_WITNESS ;
200196
201197/// Validate Taproot spends (BIP 341/342). Requires spent outputs.
202- pub const VERIFY_TAPROOT : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_TAPROOT ;
198+ pub const VERIFY_TAPROOT : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_TAPROOT ;
203199
204200/// All consensus rules.
205- pub const VERIFY_ALL : btck_ScriptVerificationFlags = BTCK_SCRIPT_VERIFICATION_FLAGS_ALL ;
201+ pub const VERIFY_ALL : btck_ScriptVerificationFlags = btck_ScriptVerificationFlags_ALL ;
206202
207203/// All consensus rules except Taproot.
208204pub const VERIFY_ALL_PRE_TAPROOT : btck_ScriptVerificationFlags = VERIFY_P2SH
@@ -455,7 +451,7 @@ pub fn verify(
455451#[ repr( u8 ) ]
456452enum ScriptVerifyStatus {
457453 /// Script verification completed successfully
458- Ok = BTCK_SCRIPT_VERIFY_STATUS_OK ,
454+ Ok = btck_ScriptVerifyStatus_OK ,
459455
460456 /// Invalid or inconsistent verification flags were provided.
461457 ///
@@ -468,14 +464,14 @@ enum ScriptVerifyStatus {
468464 ///
469465 /// These combinations are considered invalid and result in an immediate
470466 /// verification setup failure rather than a script execution failure.
471- ErrorInvalidFlagsCombination = BTCK_SCRIPT_VERIFY_STATUS_ERROR_INVALID_FLAGS_COMBINATION ,
467+ ErrorInvalidFlagsCombination = btck_ScriptVerifyStatus_ERROR_INVALID_FLAGS_COMBINATION ,
472468
473469 /// Spent outputs are required but were not provided.
474470 ///
475471 /// Taproot scripts require the complete set of outputs being spent to properly
476472 /// validate witness data. This occurs when the TAPROOT flag is set but no spent
477473 /// outputs were provided.
478- ErrorSpentOutputsRequired = BTCK_SCRIPT_VERIFY_STATUS_ERROR_SPENT_OUTPUTS_REQUIRED ,
474+ ErrorSpentOutputsRequired = btck_ScriptVerifyStatus_ERROR_SPENT_OUTPUTS_REQUIRED ,
479475}
480476
481477impl From < ScriptVerifyStatus > for btck_ScriptVerifyStatus {
@@ -487,11 +483,11 @@ impl From<ScriptVerifyStatus> for btck_ScriptVerifyStatus {
487483impl From < btck_ScriptVerifyStatus > for ScriptVerifyStatus {
488484 fn from ( value : btck_ScriptVerifyStatus ) -> Self {
489485 match value {
490- BTCK_SCRIPT_VERIFY_STATUS_OK => ScriptVerifyStatus :: Ok ,
491- BTCK_SCRIPT_VERIFY_STATUS_ERROR_INVALID_FLAGS_COMBINATION => {
486+ btck_ScriptVerifyStatus_OK => ScriptVerifyStatus :: Ok ,
487+ btck_ScriptVerifyStatus_ERROR_INVALID_FLAGS_COMBINATION => {
492488 ScriptVerifyStatus :: ErrorInvalidFlagsCombination
493489 }
494- BTCK_SCRIPT_VERIFY_STATUS_ERROR_SPENT_OUTPUTS_REQUIRED => {
490+ btck_ScriptVerifyStatus_ERROR_SPENT_OUTPUTS_REQUIRED => {
495491 ScriptVerifyStatus :: ErrorSpentOutputsRequired
496492 }
497493 _ => panic ! ( "Unknown script verify status: {}" , value) ,
@@ -554,21 +550,21 @@ mod tests {
554550
555551 #[ test]
556552 fn test_verify_constants ( ) {
557- assert_eq ! ( VERIFY_NONE , BTCK_SCRIPT_VERIFICATION_FLAGS_NONE ) ;
558- assert_eq ! ( VERIFY_P2SH , BTCK_SCRIPT_VERIFICATION_FLAGS_P2SH ) ;
559- assert_eq ! ( VERIFY_DERSIG , BTCK_SCRIPT_VERIFICATION_FLAGS_DERSIG ) ;
560- assert_eq ! ( VERIFY_NULLDUMMY , BTCK_SCRIPT_VERIFICATION_FLAGS_NULLDUMMY ) ;
553+ assert_eq ! ( VERIFY_NONE , btck_ScriptVerificationFlags_NONE ) ;
554+ assert_eq ! ( VERIFY_P2SH , btck_ScriptVerificationFlags_P2SH ) ;
555+ assert_eq ! ( VERIFY_DERSIG , btck_ScriptVerificationFlags_DERSIG ) ;
556+ assert_eq ! ( VERIFY_NULLDUMMY , btck_ScriptVerificationFlags_NULLDUMMY ) ;
561557 assert_eq ! (
562558 VERIFY_CHECKLOCKTIMEVERIFY ,
563- BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKLOCKTIMEVERIFY
559+ btck_ScriptVerificationFlags_CHECKLOCKTIMEVERIFY
564560 ) ;
565561 assert_eq ! (
566562 VERIFY_CHECKSEQUENCEVERIFY ,
567- BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKSEQUENCEVERIFY
563+ btck_ScriptVerificationFlags_CHECKSEQUENCEVERIFY
568564 ) ;
569- assert_eq ! ( VERIFY_WITNESS , BTCK_SCRIPT_VERIFICATION_FLAGS_WITNESS ) ;
570- assert_eq ! ( VERIFY_TAPROOT , BTCK_SCRIPT_VERIFICATION_FLAGS_TAPROOT ) ;
571- assert_eq ! ( VERIFY_ALL , BTCK_SCRIPT_VERIFICATION_FLAGS_ALL ) ;
565+ assert_eq ! ( VERIFY_WITNESS , btck_ScriptVerificationFlags_WITNESS ) ;
566+ assert_eq ! ( VERIFY_TAPROOT , btck_ScriptVerificationFlags_TAPROOT ) ;
567+ assert_eq ! ( VERIFY_ALL , btck_ScriptVerificationFlags_ALL ) ;
572568 }
573569
574570 #[ test]
@@ -607,18 +603,18 @@ mod tests {
607603
608604 #[ test]
609605 fn test_script_verify_status_from_kernel ( ) {
610- let ok: ScriptVerifyStatus = BTCK_SCRIPT_VERIFY_STATUS_OK . into ( ) ;
606+ let ok: ScriptVerifyStatus = btck_ScriptVerifyStatus_OK . into ( ) ;
611607 assert_eq ! ( ok, ScriptVerifyStatus :: Ok ) ;
612608
613609 let invalid_flags: ScriptVerifyStatus =
614- BTCK_SCRIPT_VERIFY_STATUS_ERROR_INVALID_FLAGS_COMBINATION . into ( ) ;
610+ btck_ScriptVerifyStatus_ERROR_INVALID_FLAGS_COMBINATION . into ( ) ;
615611 assert_eq ! (
616612 invalid_flags,
617613 ScriptVerifyStatus :: ErrorInvalidFlagsCombination
618614 ) ;
619615
620616 let spent_required: ScriptVerifyStatus =
621- BTCK_SCRIPT_VERIFY_STATUS_ERROR_SPENT_OUTPUTS_REQUIRED . into ( ) ;
617+ btck_ScriptVerifyStatus_ERROR_SPENT_OUTPUTS_REQUIRED . into ( ) ;
622618 assert_eq ! (
623619 spent_required,
624620 ScriptVerifyStatus :: ErrorSpentOutputsRequired
@@ -628,20 +624,20 @@ mod tests {
628624 #[ test]
629625 fn test_script_verify_status_to_kernel ( ) {
630626 let ok: btck_ScriptVerifyStatus = ScriptVerifyStatus :: Ok . into ( ) ;
631- assert_eq ! ( ok, BTCK_SCRIPT_VERIFY_STATUS_OK ) ;
627+ assert_eq ! ( ok, btck_ScriptVerifyStatus_OK ) ;
632628
633629 let invalid_flags: btck_ScriptVerifyStatus =
634630 ScriptVerifyStatus :: ErrorInvalidFlagsCombination . into ( ) ;
635631 assert_eq ! (
636632 invalid_flags,
637- BTCK_SCRIPT_VERIFY_STATUS_ERROR_INVALID_FLAGS_COMBINATION
633+ btck_ScriptVerifyStatus_ERROR_INVALID_FLAGS_COMBINATION
638634 ) ;
639635
640636 let spent_required: btck_ScriptVerifyStatus =
641637 ScriptVerifyStatus :: ErrorSpentOutputsRequired . into ( ) ;
642638 assert_eq ! (
643639 spent_required,
644- BTCK_SCRIPT_VERIFY_STATUS_ERROR_SPENT_OUTPUTS_REQUIRED
640+ btck_ScriptVerifyStatus_ERROR_SPENT_OUTPUTS_REQUIRED
645641 ) ;
646642 }
647643
0 commit comments