KernelTypes¶
BitcoinKernel.Interop.Enums and BitcoinKernel.Exceptions
Core enums and exception types used across the .NET bindings.
ChainType¶
Selects the Bitcoin network for ChainParameters.
ScriptVerificationFlags¶
[Flags]
public enum ScriptVerificationFlags : uint
{
None,
P2SH,
DerSig,
NullDummy,
CheckLockTimeVerify,
CheckSequenceVerify,
Witness,
Taproot,
All,
AllPreTaproot
}
Use these flags with ScriptVerifier.VerifyScript(...).
| Flag | Description |
|---|---|
None |
No script checks. |
P2SH |
BIP16 evaluation. |
DerSig |
Strict DER signatures (BIP66). |
NullDummy |
NULLDUMMY checks (BIP147). |
CheckLockTimeVerify |
Enable CLTV (BIP65). |
CheckSequenceVerify |
Enable CSV (BIP112). |
Witness |
SegWit rules (BIP141). |
Taproot |
Taproot/Tapscript rules (BIP341/342). |
All |
Full standard verification set. |
AllPreTaproot |
Full verification without Taproot. |
ScriptVerifyStatus¶
public enum ScriptVerifyStatus : byte
{
OK,
ERROR_INVALID_FLAGS_COMBINATION,
ERROR_SPENT_OUTPUTS_REQUIRED,
ERROR_TX_INPUT_INDEX,
ERROR_SPENT_OUTPUTS_MISMATCH,
ERROR_INVALID_FLAGS
}
Detailed status returned by native script verification.
ValidationMode¶
Shared status model for block validation outcomes.
BlockValidationResult¶
public enum BlockValidationResult : uint
{
UNSET,
CONSENSUS,
CACHED_INVALID,
INVALID_HEADER,
MUTATED,
MISSING_PREV,
INVALID_PREV,
TIME_FUTURE,
HEADER_LOW_WORK
}
Granular reason for block invalidity.
This enum is BitcoinKernel.Interop.Enums.BlockValidationResult, and is distinct from the wrapper class BitcoinKernel.BlockProcessing.BlockValidationResult used by BlockProcessor.ValidateBlock(...).
LogLevel¶
LogCategory¶
public enum LogCategory : byte
{
All,
Bench,
BlockStorage,
CoinDb,
LevelDb,
Mempool,
Prune,
Rand,
Reindex,
Validation,
Kernel
}
Warning¶
Exception Hierarchy¶
KernelException
|- KernelContextException
|- ScriptVerificationException
|- BlockValidationException
|- ChainstateManagerException
|- LoggingException
|- ChainParametersException
|- KernelFatalException
|- KernelFlushException
|- TransactionException
`- BlockException
ScriptVerificationException¶
ScriptVerificationException exposes a Status property of type ScriptVerifyStatus.
BlockValidationException¶
BlockValidationException exposes:
| Property | Type |
|---|---|
Result |
BlockValidationResult |
Mode |
ValidationMode |