Bump dependencies to bitcoin 0.27 and bech32 0.8
authorMatt Corallo <git@bluematt.me>
Thu, 22 Jul 2021 14:31:37 +0000 (14:31 +0000)
committerMatt Corallo <git@bluematt.me>
Sat, 31 Jul 2021 18:29:07 +0000 (18:29 +0000)
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

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]