Merge pull request #1012 from TheBlueMatt/2021-07-bump-deps
authorMatt Corallo <649246+TheBlueMatt@users.noreply.github.com>
Sat, 31 Jul 2021 20:42:59 +0000 (20:42 +0000)
committerGitHub <noreply@github.com>
Sat, 31 Jul 2021 20:42:59 +0000 (20:42 +0000)
Bump dependencies to bitcoin 0.27 and bech32 0.8

13 files changed:
.github/workflows/build.yml
fuzz/Cargo.toml
lightning-background-processor/Cargo.toml
lightning-block-sync/Cargo.toml
lightning-invoice/Cargo.toml
lightning-invoice/fuzz/Cargo.toml
lightning-invoice/src/de.rs
lightning-invoice/src/ser.rs
lightning-net-tokio/Cargo.toml
lightning-persister/Cargo.toml
lightning/Cargo.toml
lightning/src/lib.rs
lightning/src/ln/channelmanager.rs

index 440cc240399bcc9f1f5172a52e6979381fa3858a..5b886e19bff5d440cdabb8441b4e4a9d17077fdb 100644 (file)
@@ -16,8 +16,8 @@ jobs:
                      1.41.0,
                      # 1.45.2 is MSRV for lightning-net-tokio, lightning-block-sync, and coverage generation
                      1.45.2,
-                     # 1.49.0 is MSRV for no_std builds using hashbrown
-                     1.49.0]
+                     # 1.47.0 will be the MSRV for no_std builds using hashbrown once core2 is updated
+                     1.47.0]
         include:
           - toolchain: stable
             build-net-tokio: true
@@ -41,8 +41,8 @@ jobs:
             build-net-tokio: true
             build-no-std: false
             coverage: true
-          - toolchain: 1.49.0
-            build-no-std: true
+          - toolchain: 1.47.0
+            build-no-std: false
     runs-on: ${{ matrix.platform }}
     steps:
       - name: Checkout source code
index 7c3d42067da0581e3910eed9fb5d1078cb688a92..3b6d027df321e1c3ff50a73b51d2a0932aa75b31 100644 (file)
@@ -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 }
index 9849ac44bc6b706b7efc51121fe542dd369f1d51..1659ffd3ea37012b0dd3d478020ed458db97b725 100644 (file)
@@ -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" }
 
index b72d91cda5087592690f95c1bc4cb91ff1c9e159..36bb5af90091268f3eeef8aad0c0725356566a79 100644 (file)
@@ -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 }
index ae37382fd340290a961edd9adc03ecb7fb3535b9..404f12d76eb1a87ef1728dd422f1cb14a9fd9eb5 100644 (file)
@@ -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"] }
index 68a0d4e0a3398c9a7c7a5c08e35307f40f7f9b2c..eb583a41c7e87dd4e73cfb27b2e26ac2c1476b38 100644 (file)
@@ -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]
index 9c5120e4ad67cb2e9ccdc492b0757a8479c380f0..dbcb74e073aeaec450a3333159cfb6ace5232115 100644 (file)
@@ -250,7 +250,13 @@ impl FromStr for SignedRawInvoice {
        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);
index 5c7b4aa8978456aebda20014a43c4ea165a2effb..7d9ca9eb895cbd7a5f0566afa94553ac8448133e 100644 (file)
@@ -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(())
        }
index d855529fa9cb0aa1931a1011ccf7111aa4be6477..928eab7aa40ff87304c15b8b61896598303e0aad 100644 (file)
@@ -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" ] }
 
index 9ce4e8f683fb20cb7e6daad7a49fb30ff7d1dd83..81c69d0ff9731330e9098cc3103e5f2b64345d48 100644 (file)
@@ -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"
 
index 32c0d0af63403aaf34676465790c6697cd8f9fd5..9a2861d6927da1969955c7b01f06877e5c95dafa 100644 (file)
@@ -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]
index 14445710655b277f32eaeb1033a475b3b3c53c9e..5c414b7b233caa0c86aec510b548f993214c7e0b 100644 (file)
@@ -31,6 +31,7 @@
 #![cfg_attr(all(any(test, feature = "_test_utils"), feature = "unstable"), feature(test))]
 #[cfg(all(any(test, feature = "_test_utils"), feature = "unstable"))] extern crate test;
 
+#[macro_use]
 extern crate alloc;
 extern crate bitcoin;
 extern crate core;
index f4caa3edfe43fd317750adac832525ec5e5a149c..0aa3f1d0bef33d2dddb0fbf00ceea63bc11ef559 100644 (file)
@@ -5114,10 +5114,8 @@ impl<'a, Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>
 mod tests {
        use bitcoin::hashes::Hash;
        use bitcoin::hashes::sha256::Hash as Sha256;
-       use core::sync::atomic::{AtomicBool, Ordering};
        use core::time::Duration;
        use ln::{PaymentPreimage, PaymentHash, PaymentSecret};
-       use ln::channelmanager::PersistenceNotifier;
        use ln::features::{InitFeatures, InvoiceFeatures};
        use ln::functional_test_utils::*;
        use ln::msgs;
@@ -5125,12 +5123,15 @@ mod tests {
        use routing::router::{get_keysend_route, get_route};
        use util::events::{Event, MessageSendEvent, MessageSendEventsProvider};
        use util::test_utils;
-       use std::sync::Arc;
-       use std::thread;
 
        #[cfg(feature = "std")]
        #[test]
        fn test_wait_timeout() {
+               use ln::channelmanager::PersistenceNotifier;
+               use sync::Arc;
+               use core::sync::atomic::{AtomicBool, Ordering};
+               use std::thread;
+
                let persistence_notifier = Arc::new(PersistenceNotifier::new());
                let thread_notifier = Arc::clone(&persistence_notifier);