[package]
edition = "2021"
rust-version = "1.82"
name = "blvm-protocol"
version = "0.1.4"
authors = ["Bitcoin Commons Team"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Bitcoin Commons BLVM: Bitcoin protocol abstraction layer for multiple variants and evolution"
homepage = "https://btcdecoded.org"
documentation = "https://docs.rs/blvm-protocol"
readme = "README.md"
keywords = [
"bitcoin",
"protocol",
"blockchain",
"network",
"consensus",
]
categories = [
"cryptography::cryptocurrencies",
"network-programming",
]
license = "MIT"
repository = "https://github.com/BTCDecoded/blvm-protocol"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
bip324 = []
ctv = ["blvm-consensus/ctv"]
parallel-verification = ["dep:rayon"]
production = [
"blvm-consensus/production",
"dep:smallvec",
"dep:lru",
"dep:rayon",
]
profile = ["blvm-consensus/profile"]
utxo-commitments = [
"sparse-merkle-tree",
"dep:rand",
"dep:blvm-spec-lock",
]
utxo-proof-verification = []
[lib]
name = "blvm_protocol"
path = "src/lib.rs"
[[test]]
name = "address_encoding"
path = "tests/address_encoding.rs"
[[test]]
name = "bip152_tests"
path = "tests/bip152_tests.rs"
[[test]]
name = "bip158_tests"
path = "tests/bip158_tests.rs"
[[test]]
name = "commons_edge_cases_tests"
path = "tests/commons_edge_cases_tests.rs"
[[test]]
name = "commons_messages_tests"
path = "tests/commons_messages_tests.rs"
[[test]]
name = "config_tests"
path = "tests/config_tests.rs"
[[test]]
name = "economic_comprehensive_tests"
path = "tests/economic_comprehensive_tests.rs"
[[test]]
name = "edge_cases_tests"
path = "tests/edge_cases_tests.rs"
[[test]]
name = "error_handling_tests"
path = "tests/error_handling_tests.rs"
[[test]]
name = "feature_registry_tests"
path = "tests/feature_registry_tests.rs"
[[test]]
name = "features_edge_cases_tests"
path = "tests/features_edge_cases_tests.rs"
[[test]]
name = "fibre_protocol_tests"
path = "tests/fibre_protocol_tests.rs"
[[test]]
name = "genesis_comprehensive_tests"
path = "tests/genesis_comprehensive_tests.rs"
[[test]]
name = "network_message_tests"
path = "tests/network_message_tests.rs"
[[test]]
name = "network_params_tests"
path = "tests/network_params_tests.rs"
[[test]]
name = "payment_protocol_edge_cases_tests"
path = "tests/payment_protocol_edge_cases_tests.rs"
[[test]]
name = "payment_protocol_tests"
path = "tests/payment_protocol_tests.rs"
[[test]]
name = "protocol_integration"
path = "tests/protocol_integration.rs"
[[test]]
name = "protocol_limits_tests"
path = "tests/protocol_limits_tests.rs"
[[test]]
name = "service_flags_comprehensive_tests"
path = "tests/service_flags_comprehensive_tests.rs"
[[test]]
name = "utxo_commitments_consensus_unit"
path = "tests/utxo_commitments_consensus_unit.rs"
[[test]]
name = "utxo_commitments_hardening"
path = "tests/utxo_commitments_hardening.rs"
[[test]]
name = "utxo_commitments_proof_verification"
path = "tests/utxo_commitments_proof_verification.rs"
[[test]]
name = "utxo_commitments_sync_integration"
path = "tests/utxo_commitments_sync_integration.rs"
[[test]]
name = "validation_rules_tests"
path = "tests/validation_rules_tests.rs"
[[test]]
name = "variants_edge_cases_tests"
path = "tests/variants_edge_cases_tests.rs"
[[test]]
name = "varint_edge_cases_tests"
path = "tests/varint_edge_cases_tests.rs"
[[test]]
name = "wire_format_edge_cases_tests"
path = "tests/wire_format_edge_cases_tests.rs"
[[test]]
name = "wire_format_tests"
path = "tests/wire_format_tests.rs"
[dependencies.aead]
version = "=0.5.2"
[dependencies.anyhow]
version = "=1.0.93"
[dependencies.bech32]
version = "=0.9"
[dependencies.bincode]
version = "=1.3.3"
[dependencies.blvm-consensus]
version = "0.1.8"
[dependencies.blvm-spec-lock]
version = ">=0.1, <1"
optional = true
default-features = false
[dependencies.chacha20poly1305]
version = "=0.10.1"
[dependencies.crc32fast]
version = "=1.3"
[dependencies.getrandom]
version = "=0.2"
[dependencies.hex]
version = "=0.4"
[dependencies.hkdf]
version = "=0.12.4"
[dependencies.lru]
version = "0.12"
optional = true
[dependencies.rand]
version = "=0.8.5"
optional = true
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.ripemd]
version = "=0.1.3"
[dependencies.secp256k1]
version = "0.28"
default-features = true
[dependencies.serde]
version = "=1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "=1.0.108"
[dependencies.sha2]
version = "=0.10.9"
[dependencies.smallvec]
version = "1.11"
features = ["serde"]
optional = true
[dependencies.sparse-merkle-tree]
version = "0.6"
optional = true
[dependencies.thiserror]
version = "=1.0.69"
[dev-dependencies.bytes]
version = "1.11.1"
[dev-dependencies.cargo-tarpaulin]
version = "0.27"
[dev-dependencies.tempfile]
version = "=3.8.1"
[profile.release-fast]
opt-level = 2
inherits = "release"