Skip to content

Commit 1c61be6

Browse files
chore: remove constants.rs, use btck_* names from sys crate
Delete the constants.rs module and update all call sites to import btck_* constants directly from libbitcoinkernel-sys. The BTCK_* aliases are no longer needed.
1 parent 8553fd7 commit 1c61be6

8 files changed

Lines changed: 241 additions & 258 deletions

File tree

libbitcoinkernel-sys/src/lib.rs

Lines changed: 91 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![allow(non_camel_case_types)]
1+
#![allow(non_camel_case_types, non_upper_case_globals)]
22

33
use core::ffi::{c_char, c_int, c_uchar, c_uint, c_void};
44

@@ -15,6 +15,96 @@ pub type btck_SynchronizationState = u8;
1515
pub type btck_ValidationMode = u8;
1616
pub type btck_Warning = u8;
1717

18+
// btck_BlockCheckFlags
19+
20+
pub const btck_BlockCheckFlags_BASE: btck_BlockCheckFlags = 0;
21+
pub const btck_BlockCheckFlags_POW: btck_BlockCheckFlags = 1 << 0;
22+
pub const btck_BlockCheckFlags_MERKLE: btck_BlockCheckFlags = 1 << 1;
23+
pub const btck_BlockCheckFlags_ALL: btck_BlockCheckFlags =
24+
btck_BlockCheckFlags_POW | btck_BlockCheckFlags_MERKLE;
25+
26+
// btck_BlockValidationResult
27+
28+
pub const btck_BlockValidationResult_UNSET: btck_BlockValidationResult = 0;
29+
pub const btck_BlockValidationResult_CONSENSUS: btck_BlockValidationResult = 1;
30+
pub const btck_BlockValidationResult_CACHED_INVALID: btck_BlockValidationResult = 2;
31+
pub const btck_BlockValidationResult_INVALID_HEADER: btck_BlockValidationResult = 3;
32+
pub const btck_BlockValidationResult_MUTATED: btck_BlockValidationResult = 4;
33+
pub const btck_BlockValidationResult_MISSING_PREV: btck_BlockValidationResult = 5;
34+
pub const btck_BlockValidationResult_INVALID_PREV: btck_BlockValidationResult = 6;
35+
pub const btck_BlockValidationResult_TIME_FUTURE: btck_BlockValidationResult = 7;
36+
pub const btck_BlockValidationResult_HEADER_LOW_WORK: btck_BlockValidationResult = 8;
37+
38+
// btck_ChainType
39+
40+
pub const btck_ChainType_MAINNET: btck_ChainType = 0;
41+
pub const btck_ChainType_TESTNET: btck_ChainType = 1;
42+
pub const btck_ChainType_TESTNET_4: btck_ChainType = 2;
43+
pub const btck_ChainType_SIGNET: btck_ChainType = 3;
44+
pub const btck_ChainType_REGTEST: btck_ChainType = 4;
45+
46+
// btck_LogCategory
47+
48+
pub const btck_LogCategory_ALL: btck_LogCategory = 0;
49+
pub const btck_LogCategory_BENCH: btck_LogCategory = 1;
50+
pub const btck_LogCategory_BLOCKSTORAGE: btck_LogCategory = 2;
51+
pub const btck_LogCategory_COINDB: btck_LogCategory = 3;
52+
pub const btck_LogCategory_LEVELDB: btck_LogCategory = 4;
53+
pub const btck_LogCategory_MEMPOOL: btck_LogCategory = 5;
54+
pub const btck_LogCategory_PRUNE: btck_LogCategory = 6;
55+
pub const btck_LogCategory_RAND: btck_LogCategory = 7;
56+
pub const btck_LogCategory_REINDEX: btck_LogCategory = 8;
57+
pub const btck_LogCategory_VALIDATION: btck_LogCategory = 9;
58+
pub const btck_LogCategory_KERNEL: btck_LogCategory = 10;
59+
60+
// btck_LogLevel
61+
62+
pub const btck_LogLevel_TRACE: btck_LogLevel = 0;
63+
pub const btck_LogLevel_DEBUG: btck_LogLevel = 1;
64+
pub const btck_LogLevel_INFO: btck_LogLevel = 2;
65+
66+
// btck_ScriptVerificationFlags
67+
68+
pub const btck_ScriptVerificationFlags_NONE: btck_ScriptVerificationFlags = 0;
69+
pub const btck_ScriptVerificationFlags_P2SH: btck_ScriptVerificationFlags = 1 << 0;
70+
pub const btck_ScriptVerificationFlags_DERSIG: btck_ScriptVerificationFlags = 1 << 2;
71+
pub const btck_ScriptVerificationFlags_NULLDUMMY: btck_ScriptVerificationFlags = 1 << 4;
72+
pub const btck_ScriptVerificationFlags_CHECKLOCKTIMEVERIFY: btck_ScriptVerificationFlags = 1 << 9;
73+
pub const btck_ScriptVerificationFlags_CHECKSEQUENCEVERIFY: btck_ScriptVerificationFlags = 1 << 10;
74+
pub const btck_ScriptVerificationFlags_WITNESS: btck_ScriptVerificationFlags = 1 << 11;
75+
pub const btck_ScriptVerificationFlags_TAPROOT: btck_ScriptVerificationFlags = 1 << 17;
76+
pub const btck_ScriptVerificationFlags_ALL: btck_ScriptVerificationFlags =
77+
btck_ScriptVerificationFlags_P2SH
78+
| btck_ScriptVerificationFlags_DERSIG
79+
| btck_ScriptVerificationFlags_NULLDUMMY
80+
| btck_ScriptVerificationFlags_CHECKLOCKTIMEVERIFY
81+
| btck_ScriptVerificationFlags_CHECKSEQUENCEVERIFY
82+
| btck_ScriptVerificationFlags_WITNESS
83+
| btck_ScriptVerificationFlags_TAPROOT;
84+
85+
// btck_ScriptVerifyStatus
86+
87+
pub const btck_ScriptVerifyStatus_OK: btck_ScriptVerifyStatus = 0;
88+
pub const btck_ScriptVerifyStatus_ERROR_INVALID_FLAGS_COMBINATION: btck_ScriptVerifyStatus = 1;
89+
pub const btck_ScriptVerifyStatus_ERROR_SPENT_OUTPUTS_REQUIRED: btck_ScriptVerifyStatus = 2;
90+
91+
// btck_SynchronizationState
92+
93+
pub const btck_SynchronizationState_INIT_REINDEX: btck_SynchronizationState = 0;
94+
pub const btck_SynchronizationState_INIT_DOWNLOAD: btck_SynchronizationState = 1;
95+
pub const btck_SynchronizationState_POST_INIT: btck_SynchronizationState = 2;
96+
97+
// btck_ValidationMode
98+
99+
pub const btck_ValidationMode_VALID: btck_ValidationMode = 0;
100+
pub const btck_ValidationMode_INVALID: btck_ValidationMode = 1;
101+
pub const btck_ValidationMode_INTERNAL_ERROR: btck_ValidationMode = 2;
102+
103+
// btck_Warning
104+
105+
pub const btck_Warning_UNKNOWN_NEW_RULES_ACTIVATED: btck_Warning = 0;
106+
pub const btck_Warning_LARGE_WORK_INVALID_CHAIN: btck_Warning = 1;
107+
18108
// Opaque types - alphabetical order
19109

20110
#[repr(C)]

src/core/verify.rs

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -154,55 +154,51 @@ use std::{
154154
};
155155

156156
use 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

163170
use 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).
191187
pub const VERIFY_CHECKLOCKTIMEVERIFY: btck_ScriptVerificationFlags =
192-
BTCK_SCRIPT_VERIFICATION_FLAGS_CHECKLOCKTIMEVERIFY;
188+
btck_ScriptVerificationFlags_CHECKLOCKTIMEVERIFY;
193189

194190
/// Enable OP_CHECKSEQUENCEVERIFY (BIP 112).
195191
pub 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.
208204
pub const VERIFY_ALL_PRE_TAPROOT: btck_ScriptVerificationFlags = VERIFY_P2SH
@@ -455,7 +451,7 @@ pub fn verify(
455451
#[repr(u8)]
456452
enum 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

481477
impl From<ScriptVerifyStatus> for btck_ScriptVerifyStatus {
@@ -487,11 +483,11 @@ impl From<ScriptVerifyStatus> for btck_ScriptVerifyStatus {
487483
impl 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

src/ffi/constants.rs

Lines changed: 0 additions & 80 deletions
This file was deleted.

src/ffi/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
pub mod c_helpers;
2-
pub mod constants;
32
#[cfg(test)]
43
pub mod test_utils;
54

@@ -21,4 +20,3 @@ pub(crate) mod sealed {
2120
}
2221

2322
pub use c_helpers::{enabled, present, success, to_c_bool, to_c_result, to_string};
24-
pub(crate) use constants::*;

0 commit comments

Comments
 (0)