From bdf16fff95c7e970157545330174004c52324fb5 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Thu, 14 Jan 2021 20:57:56 -0500 Subject: [PATCH] Update rust-bitcoin --- fuzz/Cargo.toml | 2 +- lightning-c-bindings/Cargo.toml | 2 +- lightning-c-bindings/src/c_types/mod.rs | 3 ++- lightning-net-tokio/Cargo.toml | 2 +- lightning-persister/Cargo.toml | 4 ++-- lightning/Cargo.toml | 4 ++-- lightning/src/lib.rs | 2 +- lightning/src/ln/onion_route_tests.rs | 2 +- lightning/src/util/ser.rs | 3 +-- lightning/src/util/test_utils.rs | 7 ++++--- 10 files changed, 16 insertions(+), 15 deletions(-) diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index cb5d40ea..99ed288f 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.24", features = ["fuzztarget"] } +bitcoin = { version = "0.26", features = ["fuzztarget"] } 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-c-bindings/Cargo.toml b/lightning-c-bindings/Cargo.toml index 3d073d65..2d4155e9 100644 --- a/lightning-c-bindings/Cargo.toml +++ b/lightning-c-bindings/Cargo.toml @@ -15,7 +15,7 @@ crate-type = ["staticlib" ,"cdylib"] [dependencies] -bitcoin = "0.24" +bitcoin = "0.26" lightning = { version = "0.0.12", path = "../lightning" } # Always force panic=abort, further options are set in the genbindings.sh build script diff --git a/lightning-c-bindings/src/c_types/mod.rs b/lightning-c-bindings/src/c_types/mod.rs index d9ed5ca5..6fbbcd55 100644 --- a/lightning-c-bindings/src/c_types/mod.rs +++ b/lightning-c-bindings/src/c_types/mod.rs @@ -71,8 +71,8 @@ pub enum Secp256k1Error { InvalidSecretKey, InvalidRecoveryId, InvalidTweak, + TweakCheckFailed, NotEnoughMemory, - CallbackPanicked, } impl Secp256k1Error { pub(crate) fn from_rust(err: SecpError) -> Self { @@ -84,6 +84,7 @@ impl Secp256k1Error { SecpError::InvalidSecretKey => Secp256k1Error::InvalidSecretKey, SecpError::InvalidRecoveryId => Secp256k1Error::InvalidRecoveryId, SecpError::InvalidTweak => Secp256k1Error::InvalidTweak, + SecpError::TweakCheckFailed => Secp256k1Error::TweakCheckFailed, SecpError::NotEnoughMemory => Secp256k1Error::NotEnoughMemory, } } diff --git a/lightning-net-tokio/Cargo.toml b/lightning-net-tokio/Cargo.toml index 50634bd3..e9c08f89 100644 --- a/lightning-net-tokio/Cargo.toml +++ b/lightning-net-tokio/Cargo.toml @@ -10,7 +10,7 @@ For Rust-Lightning clients which wish to make direct connections to Lightning P2 """ [dependencies] -bitcoin = "0.24" +bitcoin = "0.26" lightning = { version = "0.0.12", path = "../lightning" } tokio = { version = ">=0.2.12", features = [ "io-util", "macros", "rt-core", "sync", "tcp", "time" ] } diff --git a/lightning-persister/Cargo.toml b/lightning-persister/Cargo.toml index 63b69a1e..aad7879f 100644 --- a/lightning-persister/Cargo.toml +++ b/lightning-persister/Cargo.toml @@ -8,12 +8,12 @@ Utilities to manage channel data persistence and retrieval. """ [dependencies] -bitcoin = "0.24" +bitcoin = "0.26" lightning = { version = "0.0.12", path = "../lightning" } libc = "0.2" [dev-dependencies.bitcoin] -version = "0.24" +version = "0.26" features = ["bitcoinconsensus"] [dev-dependencies] diff --git a/lightning/Cargo.toml b/lightning/Cargo.toml index 016399f8..7fef2e98 100644 --- a/lightning/Cargo.toml +++ b/lightning/Cargo.toml @@ -25,13 +25,13 @@ max_level_debug = [] unsafe_revoked_tx_signing = [] [dependencies] -bitcoin = "0.24" +bitcoin = "0.26" hex = { version = "0.3", optional = true } regex = { version = "0.1.80", optional = true } [dev-dependencies.bitcoin] -version = "0.24" +version = "0.26" features = ["bitcoinconsensus"] [dev-dependencies] diff --git a/lightning/src/lib.rs b/lightning/src/lib.rs index e466205c..8cb40fc7 100644 --- a/lightning/src/lib.rs +++ b/lightning/src/lib.rs @@ -19,7 +19,7 @@ //! instead of having a rather-separate lightning appendage to a wallet. #![cfg_attr(not(any(feature = "fuzztarget", feature = "_test_utils")), deny(missing_docs))] -#![forbid(unsafe_code)] +#![cfg_attr(not(any(test, feature = "fuzztarget", feature = "_test_utils")), forbid(unsafe_code))] // In general, rust is absolutely horrid at supporting users doing things like, // for example, compiling Rust code for real environments. Disable useless lints diff --git a/lightning/src/ln/onion_route_tests.rs b/lightning/src/ln/onion_route_tests.rs index bf2709cd..551db24e 100644 --- a/lightning/src/ln/onion_route_tests.rs +++ b/lightning/src/ln/onion_route_tests.rs @@ -219,7 +219,7 @@ impl msgs::ChannelUpdate { use bitcoin::secp256k1::ffi::Signature as FFISignature; use bitcoin::secp256k1::Signature; msgs::ChannelUpdate { - signature: Signature::from(FFISignature::new()), + signature: Signature::from(unsafe { FFISignature::new() }), contents: msgs::UnsignedChannelUpdate { chain_hash: BlockHash::hash(&vec![0u8][..]), short_channel_id: 0, diff --git a/lightning/src/util/ser.rs b/lightning/src/util/ser.rs index 581f228b..81589557 100644 --- a/lightning/src/util/ser.rs +++ b/lightning/src/util/ser.rs @@ -707,8 +707,7 @@ macro_rules! impl_consensus_ser { fn write(&self, writer: &mut W) -> Result<(), ::std::io::Error> { match self.consensus_encode(WriterWriteAdaptor(writer)) { Ok(_) => Ok(()), - Err(consensus::encode::Error::Io(e)) => Err(e), - Err(_) => panic!("We shouldn't get a consensus::encode::Error unless our Write generated an std::io::Error"), + Err(e) => Err(e), } } } diff --git a/lightning/src/util/test_utils.rs b/lightning/src/util/test_utils.rs index 3680a724..571bb0a6 100644 --- a/lightning/src/util/test_utils.rs +++ b/lightning/src/util/test_utils.rs @@ -233,6 +233,7 @@ impl events::MessageSendEventsProvider for TestChannelMessageHandler { } } + fn get_dummy_channel_announcement(short_chan_id: u64) -> msgs::ChannelAnnouncement { use bitcoin::secp256k1::ffi::Signature as FFISignature; let secp_ctx = Secp256k1::new(); @@ -252,20 +253,20 @@ fn get_dummy_channel_announcement(short_chan_id: u64) -> msgs::ChannelAnnounceme excess_data: Vec::new(), }; - msgs::ChannelAnnouncement { + unsafe { msgs::ChannelAnnouncement { node_signature_1: Signature::from(FFISignature::new()), node_signature_2: Signature::from(FFISignature::new()), bitcoin_signature_1: Signature::from(FFISignature::new()), bitcoin_signature_2: Signature::from(FFISignature::new()), contents: unsigned_ann, - } + } } } fn get_dummy_channel_update(short_chan_id: u64) -> msgs::ChannelUpdate { use bitcoin::secp256k1::ffi::Signature as FFISignature; let network = Network::Testnet; msgs::ChannelUpdate { - signature: Signature::from(FFISignature::new()), + signature: Signature::from(unsafe { FFISignature::new() }), contents: msgs::UnsignedChannelUpdate { chain_hash: genesis_block(network).header.block_hash(), short_channel_id: short_chan_id, -- 2.30.2