[dependencies]
afl = { version = "0.4", optional = true }
lightning = { path = "../lightning", features = ["fuzztarget"] }
-bitcoin = { version = "0.26", features = ["fuzztarget", "secp-lowmemory"] }
+bitcoin = { version = "0.27", features = ["fuzztarget", "secp-lowmemory"] }
hex = "0.3"
honggfuzz = { version = "0.5", optional = true }
libfuzzer-sys = { git = "https://github.com/rust-fuzz/libfuzzer-sys.git", optional = true }
edition = "2018"
[dependencies]
-bitcoin = "0.26"
+bitcoin = "0.27"
lightning = { version = "0.0.99", path = "../lightning", features = ["allow_wallclock_use"] }
lightning-persister = { version = "0.0.99", path = "../lightning-persister" }
rpc-client = [ "serde", "serde_json", "chunked_transfer" ]
[dependencies]
-bitcoin = "0.26"
+bitcoin = "0.27"
lightning = { version = "0.0.99", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
readme = "README.md"
[dependencies]
-bech32 = "0.7"
+bech32 = "0.8"
lightning = { version = "0.0.99", path = "../lightning" }
secp256k1 = { version = "0.20", features = ["recovery"] }
num-traits = "0.2.8"
-bitcoin_hashes = "0.9.4"
+bitcoin_hashes = "0.10"
[dev-dependencies]
lightning = { version = "0.0.99", path = "../lightning", features = ["_test_utils"] }
honggfuzz = { version = "0.5", optional = true }
afl = { version = "0.4", optional = true }
lightning-invoice = { path = ".."}
-bech32 = "0.7"
+bech32 = "0.8"
# Prevent this from interfering with workspaces
[workspace]
type Err = ParseError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
- let (hrp, data) = bech32::decode(s)?;
+ let (hrp, data, var) = bech32::decode(s)?;
+
+ if var == bech32::Variant::Bech32m {
+ // Consider Bech32m addresses to be "Invalid Checksum", since that is what we'd get if
+ // we didn't support Bech32m (which lightning does not use).
+ return Err(ParseError::Bech32Error(bech32::Error::InvalidChecksum));
+ }
if data.len() < 104 {
return Err(ParseError::TooShortDataPart);
let mut data = self.raw_invoice.data.to_base32();
data.extend_from_slice(&self.signature.to_base32());
- bech32::encode_to_fmt(f, &hrp, data).expect("HRP is valid")?;
+ bech32::encode_to_fmt(f, &hrp, data, bech32::Variant::Bech32).expect("HRP is valid")?;
Ok(())
}
edition = "2018"
[dependencies]
-bitcoin = "0.26"
+bitcoin = "0.27"
lightning = { version = "0.0.99", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "macros", "rt", "sync", "net", "time" ] }
unstable = ["lightning/unstable"]
[dependencies]
-bitcoin = "0.26"
+bitcoin = "0.27"
lightning = { version = "0.0.99", path = "../lightning" }
libc = "0.2"
unsafe_revoked_tx_signing = []
unstable = []
-no_std = ["hashbrown"]
-std = []
+no_std = ["hashbrown", "bitcoin/no-std"]
+std = ["bitcoin/std"]
default = ["std"]
[dependencies]
-bitcoin = "0.26"
+bitcoin = "0.27"
hashbrown = { version = "0.11", optional = true }
hex = { version = "0.3", optional = true }
regex = "0.1.80"
[dev-dependencies.bitcoin]
-version = "0.26"
+version = "0.27"
features = ["bitcoinconsensus"]
[package.metadata.docs.rs]