From: Matt Corallo Date: Thu, 22 Jul 2021 14:31:37 +0000 (+0000) Subject: Bump dependencies to bitcoin 0.27 and bech32 0.8 X-Git-Tag: v0.0.100~15^2~3 X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=rust-lightning;a=commitdiff_plain;h=3f229052eaba48d13ab66e933bc8e63efea5ecaf Bump dependencies to bitcoin 0.27 and bech32 0.8 --- diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 7c3d4206..3b6d027d 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -19,7 +19,7 @@ stdin_fuzz = [] [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 } diff --git a/lightning-background-processor/Cargo.toml b/lightning-background-processor/Cargo.toml index 9849ac44..1659ffd3 100644 --- a/lightning-background-processor/Cargo.toml +++ b/lightning-background-processor/Cargo.toml @@ -10,7 +10,7 @@ Utilities to perform required background tasks for Rust Lightning. 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" } diff --git a/lightning-block-sync/Cargo.toml b/lightning-block-sync/Cargo.toml index b72d91cd..36bb5af9 100644 --- a/lightning-block-sync/Cargo.toml +++ b/lightning-block-sync/Cargo.toml @@ -14,7 +14,7 @@ rest-client = [ "serde", "serde_json", "chunked_transfer" ] 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 } diff --git a/lightning-invoice/Cargo.toml b/lightning-invoice/Cargo.toml index ae37382f..404f12d7 100644 --- a/lightning-invoice/Cargo.toml +++ b/lightning-invoice/Cargo.toml @@ -9,11 +9,11 @@ keywords = [ "lightning", "bitcoin", "invoice", "BOLT11" ] 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"] } diff --git a/lightning-invoice/fuzz/Cargo.toml b/lightning-invoice/fuzz/Cargo.toml index 68a0d4e0..eb583a41 100644 --- a/lightning-invoice/fuzz/Cargo.toml +++ b/lightning-invoice/fuzz/Cargo.toml @@ -15,7 +15,7 @@ honggfuzz_fuzz = ["honggfuzz"] 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] diff --git a/lightning-invoice/src/de.rs b/lightning-invoice/src/de.rs index 9c5120e4..dbcb74e0 100644 --- a/lightning-invoice/src/de.rs +++ b/lightning-invoice/src/de.rs @@ -250,7 +250,13 @@ impl FromStr for SignedRawInvoice { type Err = ParseError; fn from_str(s: &str) -> Result { - 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); diff --git a/lightning-invoice/src/ser.rs b/lightning-invoice/src/ser.rs index 5c7b4aa8..7d9ca9eb 100644 --- a/lightning-invoice/src/ser.rs +++ b/lightning-invoice/src/ser.rs @@ -117,7 +117,7 @@ impl Display for SignedRawInvoice { 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(()) } diff --git a/lightning-net-tokio/Cargo.toml b/lightning-net-tokio/Cargo.toml index d855529f..928eab7a 100644 --- a/lightning-net-tokio/Cargo.toml +++ b/lightning-net-tokio/Cargo.toml @@ -11,7 +11,7 @@ For Rust-Lightning clients which wish to make direct connections to Lightning P2 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" ] } diff --git a/lightning-persister/Cargo.toml b/lightning-persister/Cargo.toml index 9ce4e8f6..81c69d0f 100644 --- a/lightning-persister/Cargo.toml +++ b/lightning-persister/Cargo.toml @@ -12,7 +12,7 @@ Utilities to manage Rust-Lightning channel data persistence and retrieval. unstable = ["lightning/unstable"] [dependencies] -bitcoin = "0.26" +bitcoin = "0.27" lightning = { version = "0.0.99", path = "../lightning" } libc = "0.2" diff --git a/lightning/Cargo.toml b/lightning/Cargo.toml index 32c0d0af..9a2861d6 100644 --- a/lightning/Cargo.toml +++ b/lightning/Cargo.toml @@ -26,13 +26,13 @@ max_level_debug = [] 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 } @@ -43,7 +43,7 @@ hex = "0.3" regex = "0.1.80" [dev-dependencies.bitcoin] -version = "0.26" +version = "0.27" features = ["bitcoinconsensus"] [package.metadata.docs.rs]