diff --git a/Cargo.toml b/Cargo.toml index f9f7406339e..e262cd09058 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,4 +67,5 @@ check-cfg = [ "cfg(require_route_graph_test)", "cfg(simple_close)", "cfg(peer_storage)", + "cfg(dual_funding)", ] diff --git a/ci/ci-tests.sh b/ci/ci-tests.sh index f78414052f5..397a464a93c 100755 --- a/ci/ci-tests.sh +++ b/ci/ci-tests.sh @@ -163,3 +163,5 @@ RUSTFLAGS="--cfg=simple_close" cargo test --verbose --color always -p lightning RUSTFLAGS="--cfg=lsps1_service" cargo test --verbose --color always -p lightning-liquidity [ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean RUSTFLAGS="--cfg=peer_storage" cargo test --verbose --color always -p lightning +[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean +RUSTFLAGS="--cfg=dual_funding" cargo test --verbose --color always -p lightning diff --git a/lightning-background-processor/Cargo.toml b/lightning-background-processor/Cargo.toml index 415676f4ea1..7cece743a32 100644 --- a/lightning-background-processor/Cargo.toml +++ b/lightning-background-processor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-background-processor" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Valentine Wallace "] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -22,17 +22,17 @@ std = ["lightning/std", "lightning-liquidity/std", "bitcoin-io/std", "bitcoin_ha bitcoin = { version = "0.32.2", default-features = false } bitcoin_hashes = { version = "0.14.0", default-features = false } bitcoin-io = { version = "0.1.2", default-features = false } -lightning = { version = "0.2.0", path = "../lightning", default-features = false } -lightning-rapid-gossip-sync = { version = "0.2.0", path = "../lightning-rapid-gossip-sync", default-features = false } -lightning-liquidity = { version = "0.2.0", path = "../lightning-liquidity", default-features = false } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false } +lightning-rapid-gossip-sync = { version = "0.2.0-beta1", path = "../lightning-rapid-gossip-sync", default-features = false } +lightning-liquidity = { version = "0.2.0-beta1", path = "../lightning-liquidity", default-features = false } possiblyrandom = { version = "0.2", path = "../possiblyrandom", default-features = false } [dev-dependencies] tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] } -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } -lightning-invoice = { version = "0.34.0", path = "../lightning-invoice" } -lightning-liquidity = { version = "0.2.0", path = "../lightning-liquidity", default-features = false, features = ["_test_utils"] } -lightning-persister = { version = "0.2.0", path = "../lightning-persister" } +lightning = { version = "0.2.0-beta1", path = "../lightning", features = ["_test_utils"] } +lightning-invoice = { version = "0.34.0-beta1", path = "../lightning-invoice" } +lightning-liquidity = { version = "0.2.0-beta1", path = "../lightning-liquidity", default-features = false, features = ["_test_utils"] } +lightning-persister = { version = "0.2.0-beta1", path = "../lightning-persister" } [lints] workspace = true diff --git a/lightning-block-sync/Cargo.toml b/lightning-block-sync/Cargo.toml index b001b47585a..51ff2502489 100644 --- a/lightning-block-sync/Cargo.toml +++ b/lightning-block-sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-block-sync" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Jeffrey Czyz", "Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -19,13 +19,13 @@ rpc-client = [ "serde_json", "chunked_transfer" ] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.2.0-beta1", path = "../lightning" } tokio = { version = "1.35", features = [ "io-util", "net", "time", "rt" ], optional = true } serde_json = { version = "1.0", optional = true } chunked_transfer = { version = "1.4", optional = true } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.2.0-beta1", path = "../lightning", features = ["_test_utils"] } tokio = { version = "1.35", features = [ "macros", "rt" ] } [lints] diff --git a/lightning-custom-message/Cargo.toml b/lightning-custom-message/Cargo.toml index fd0d302bf56..1f02d7bc732 100644 --- a/lightning-custom-message/Cargo.toml +++ b/lightning-custom-message/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-custom-message" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Jeffrey Czyz"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -15,7 +15,7 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.2.0-beta1", path = "../lightning" } [lints] workspace = true diff --git a/lightning-dns-resolver/Cargo.toml b/lightning-dns-resolver/Cargo.toml index 19ffe44094e..9eda19a22fc 100644 --- a/lightning-dns-resolver/Cargo.toml +++ b/lightning-dns-resolver/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-dns-resolver" -version = "0.3.0+git" +version = "0.3.0-beta1" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" @@ -8,12 +8,12 @@ description = "A crate which implements DNSSEC resolution for lightning clients edition = "2021" [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false } -lightning-types = { version = "0.3.0", path = "../lightning-types", default-features = false } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false } +lightning-types = { version = "0.3.0-beta1", path = "../lightning-types", default-features = false } dnssec-prover = { version = "0.6", default-features = false, features = [ "std", "tokio" ] } tokio = { version = "1.0", default-features = false, features = ["rt"] } [dev-dependencies] bitcoin = { version = "0.32" } tokio = { version = "1.0", default-features = false, features = ["macros", "time"] } -lightning = { version = "0.2.0", path = "../lightning", features = ["dnssec", "_test_utils"] } +lightning = { version = "0.2.0-beta1", path = "../lightning", features = ["dnssec", "_test_utils"] } diff --git a/lightning-invoice/Cargo.toml b/lightning-invoice/Cargo.toml index 8e0c7587f4f..9c82cb57e0c 100644 --- a/lightning-invoice/Cargo.toml +++ b/lightning-invoice/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lightning-invoice" description = "Data structures to parse and serialize BOLT11 lightning invoices" -version = "0.34.0+git" +version = "0.34.0-beta1" authors = ["Sebastian Geisler "] documentation = "https://docs.rs/lightning-invoice/" license = "MIT OR Apache-2.0" @@ -19,7 +19,7 @@ std = [] [dependencies] bech32 = { version = "0.11.0", default-features = false } -lightning-types = { version = "0.3.0", path = "../lightning-types", default-features = false } +lightning-types = { version = "0.3.0-beta1", path = "../lightning-types", default-features = false } serde = { version = "1.0", optional = true, default-features = false, features = ["alloc"] } bitcoin = { version = "0.32.2", default-features = false, features = ["secp-recovery"] } diff --git a/lightning-liquidity/Cargo.toml b/lightning-liquidity/Cargo.toml index a29fc36043a..420f661a0f6 100644 --- a/lightning-liquidity/Cargo.toml +++ b/lightning-liquidity/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-liquidity" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["John Cantrell ", "Elias Rohrer "] homepage = "https://lightningdevkit.org/" license = "MIT OR Apache-2.0" @@ -21,10 +21,10 @@ backtrace = ["dep:backtrace"] _test_utils = [] [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false } -lightning-types = { version = "0.3.0", path = "../lightning-types", default-features = false } -lightning-invoice = { version = "0.34.0", path = "../lightning-invoice", default-features = false, features = ["serde"] } -lightning-macros = { version = "0.2", path = "../lightning-macros" } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false } +lightning-types = { version = "0.3.0-beta1", path = "../lightning-types", default-features = false } +lightning-invoice = { version = "0.34.0-beta1", path = "../lightning-invoice", default-features = false, features = ["serde"] } +lightning-macros = { version = "0.2.0-beta1", path = "../lightning-macros" } bitcoin = { version = "0.32.2", default-features = false, features = ["serde"] } @@ -34,9 +34,9 @@ serde_json = { version = "1.0", default-features = false, features = ["alloc"] } backtrace = { version = "0.3", optional = true } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false, features = ["_test_utils"] } -lightning-invoice = { version = "0.34.0", path = "../lightning-invoice", default-features = false, features = ["serde", "std"] } -lightning-persister = { version = "0.2.0", path = "../lightning-persister", default-features = false } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false, features = ["_test_utils"] } +lightning-invoice = { version = "0.34.0-beta1", path = "../lightning-invoice", default-features = false, features = ["serde", "std"] } +lightning-persister = { version = "0.2.0-beta1", path = "../lightning-persister", default-features = false } proptest = "1.0.0" tokio = { version = "1.35", default-features = false, features = [ "rt-multi-thread", "time", "sync", "macros" ] } diff --git a/lightning-macros/Cargo.toml b/lightning-macros/Cargo.toml index abeca85da24..55632d6d900 100644 --- a/lightning-macros/Cargo.toml +++ b/lightning-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-macros" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Elias Rohrer"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" diff --git a/lightning-net-tokio/Cargo.toml b/lightning-net-tokio/Cargo.toml index 3fde86c93bc..1e6eb7c9552 100644 --- a/lightning-net-tokio/Cargo.toml +++ b/lightning-net-tokio/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-net-tokio" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" @@ -16,12 +16,12 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.2.0-beta1", path = "../lightning" } tokio = { version = "1.35", features = [ "rt", "sync", "net", "time" ] } [dev-dependencies] tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] } -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.2.0-beta1", path = "../lightning", features = ["_test_utils"] } [lints] workspace = true diff --git a/lightning-persister/Cargo.toml b/lightning-persister/Cargo.toml index 593e19a95f7..50249f29504 100644 --- a/lightning-persister/Cargo.toml +++ b/lightning-persister/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-persister" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Valentine Wallace", "Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -18,7 +18,7 @@ tokio = ["dep:tokio"] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.2.0-beta1", path = "../lightning" } tokio = { version = "1.35", optional = true, default-features = false, features = ["rt-multi-thread"] } [target.'cfg(windows)'.dependencies] @@ -28,7 +28,7 @@ windows-sys = { version = "0.48.0", default-features = false, features = ["Win32 criterion = { version = "0.4", optional = true, default-features = false } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.2.0-beta1", path = "../lightning", features = ["_test_utils"] } bitcoin = { version = "0.32.2", default-features = false } tokio = { version = "1.35", default-features = false, features = ["macros"] } diff --git a/lightning-rapid-gossip-sync/Cargo.toml b/lightning-rapid-gossip-sync/Cargo.toml index 17d4687c3e8..9e3eba2c0bd 100644 --- a/lightning-rapid-gossip-sync/Cargo.toml +++ b/lightning-rapid-gossip-sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-rapid-gossip-sync" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Arik Sosman "] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -14,7 +14,7 @@ default = ["std"] std = ["bitcoin-io/std", "bitcoin_hashes/std"] [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false } bitcoin = { version = "0.32.2", default-features = false } bitcoin_hashes = { version = "0.14.0", default-features = false } bitcoin-io = { version = "0.1.2", default-features = false } @@ -23,7 +23,7 @@ bitcoin-io = { version = "0.1.2", default-features = false } criterion = { version = "0.4", optional = true, default-features = false } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.2.0-beta1", path = "../lightning", features = ["_test_utils"] } [lints] workspace = true diff --git a/lightning-transaction-sync/Cargo.toml b/lightning-transaction-sync/Cargo.toml index 48100144d01..6dd34e1f22f 100644 --- a/lightning-transaction-sync/Cargo.toml +++ b/lightning-transaction-sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-transaction-sync" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Elias Rohrer"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -31,15 +31,15 @@ electrum-rustls = ["electrum"] electrum-rustls-ring = ["_electrum", "electrum-client/use-rustls-ring"] [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false, features = ["std"] } -lightning-macros = { version = "0.2", path = "../lightning-macros", default-features = false } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false, features = ["std"] } +lightning-macros = { version = "0.2.0-beta1", path = "../lightning-macros", default-features = false } bitcoin = { version = "0.32.2", default-features = false } futures = { version = "0.3", optional = true } esplora-client = { version = "0.12", default-features = false, optional = true } electrum-client = { version = "0.24.0", optional = true, default-features = false, features = ["proxy"] } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false, features = ["std", "_test_utils"] } +lightning = { version = "0.2.0-beta1", path = "../lightning", default-features = false, features = ["std", "_test_utils"] } tokio = { version = "1.35.0", features = ["macros"] } [target.'cfg(not(target_os = "windows"))'.dev-dependencies] diff --git a/lightning-types/Cargo.toml b/lightning-types/Cargo.toml index 15b40aa669c..73fc7ff62f4 100644 --- a/lightning-types/Cargo.toml +++ b/lightning-types/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-types" -version = "0.3.0+git" +version = "0.3.0-beta1" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" diff --git a/lightning/Cargo.toml b/lightning/Cargo.toml index 94919efe66d..adb76a0a453 100644 --- a/lightning/Cargo.toml +++ b/lightning/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning" -version = "0.2.0+git" +version = "0.2.0-beta1" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" @@ -32,9 +32,9 @@ grind_signatures = [] default = ["std", "grind_signatures"] [dependencies] -lightning-types = { version = "0.3.0", path = "../lightning-types", default-features = false } -lightning-invoice = { version = "0.34.0", path = "../lightning-invoice", default-features = false } -lightning-macros = { version = "0.2", path = "../lightning-macros" } +lightning-types = { version = "0.3.0-beta1", path = "../lightning-types", default-features = false } +lightning-invoice = { version = "0.34.0-beta1", path = "../lightning-invoice", default-features = false } +lightning-macros = { version = "0.2.0-beta1", path = "../lightning-macros" } bech32 = { version = "0.11.0", default-features = false } bitcoin = { version = "0.32.2", default-features = false, features = ["secp-recovery"] } @@ -51,8 +51,8 @@ inventory = { version = "0.3", optional = true } [dev-dependencies] regex = "1.5.6" -lightning-types = { version = "0.3.0", path = "../lightning-types", features = ["_test_utils"] } -lightning-macros = { path = "../lightning-macros" } +lightning-types = { version = "0.3.0-beta1", path = "../lightning-types", features = ["_test_utils"] } +lightning-macros = { version = "0.2.0-beta1", path = "../lightning-macros" } parking_lot = { version = "0.12", default-features = false } [dev-dependencies.bitcoin] diff --git a/lightning/src/lib.rs b/lightning/src/lib.rs index 4e9d105df5f..6755dfad4ef 100644 --- a/lightning/src/lib.rs +++ b/lightning/src/lib.rs @@ -37,7 +37,6 @@ // that don't do anything but annoy us and cant actually ever be resolved. #![allow(bare_trait_objects)] #![allow(ellipsis_inclusive_range_patterns)] -#![cfg_attr(docsrs, feature(doc_auto_cfg))] #![cfg_attr(all(not(feature = "std"), not(test)), no_std)] #[cfg(all(fuzzing, test))] diff --git a/lightning/src/ln/channelmanager.rs b/lightning/src/ln/channelmanager.rs index 4b7092d6dbe..617faeefdcc 100644 --- a/lightning/src/ln/channelmanager.rs +++ b/lightning/src/ln/channelmanager.rs @@ -15603,6 +15603,7 @@ pub fn provided_init_features(config: &UserConfig) -> InitFeatures { if config.channel_handshake_config.negotiate_anchors_zero_fee_htlc_tx { features.set_anchors_zero_fee_htlc_tx_optional(); } + #[cfg(dual_funding)] if config.enable_dual_funded_channels { features.set_dual_fund_optional(); } diff --git a/lightning/src/util/config.rs b/lightning/src/util/config.rs index 500c0b7c8ae..8451ac09f23 100644 --- a/lightning/src/util/config.rs +++ b/lightning/src/util/config.rs @@ -927,6 +927,7 @@ pub struct UserConfig { /// [`ChannelManager::send_payment_for_bolt12_invoice`]: crate::ln::channelmanager::ChannelManager::send_payment_for_bolt12_invoice /// [`ChannelManager::abandon_payment`]: crate::ln::channelmanager::ChannelManager::abandon_payment pub manually_handle_bolt12_invoices: bool, + #[cfg(dual_funding)] /// If this is set to `true`, dual-funded channels will be enabled. /// /// Default value: `false` @@ -981,6 +982,7 @@ impl Default for UserConfig { manually_accept_inbound_channels: false, accept_intercept_htlcs: false, manually_handle_bolt12_invoices: false, + #[cfg(dual_funding)] enable_dual_funded_channels: false, enable_htlc_hold: false, hold_outbound_htlcs_at_next_hop: false, @@ -995,19 +997,32 @@ impl Default for UserConfig { #[cfg(fuzzing)] impl Readable for UserConfig { fn read(reader: &mut R) -> Result { + let channel_handshake_config = Readable::read(reader)?; + let channel_handshake_limits = Readable::read(reader)?; + let channel_config = Readable::read(reader)?; + let accept_forwards_to_priv_channels = Readable::read(reader)?; + let accept_inbound_channels = Readable::read(reader)?; + let manually_accept_inbound_channels = Readable::read(reader)?; + let accept_intercept_htlcs = Readable::read(reader)?; + let manually_handle_bolt12_invoices = Readable::read(reader)?; + let _enable_dual_funded_channels: bool = Readable::read(reader)?; + let hold_outbound_htlcs_at_next_hop = Readable::read(reader)?; + let enable_htlc_hold = Readable::read(reader)?; + let reject_inbound_splices = Readable::read(reader)?; Ok(Self { - channel_handshake_config: Readable::read(reader)?, - channel_handshake_limits: Readable::read(reader)?, - channel_config: Readable::read(reader)?, - accept_forwards_to_priv_channels: Readable::read(reader)?, - accept_inbound_channels: Readable::read(reader)?, - manually_accept_inbound_channels: Readable::read(reader)?, - accept_intercept_htlcs: Readable::read(reader)?, - manually_handle_bolt12_invoices: Readable::read(reader)?, - enable_dual_funded_channels: Readable::read(reader)?, - hold_outbound_htlcs_at_next_hop: Readable::read(reader)?, - enable_htlc_hold: Readable::read(reader)?, - reject_inbound_splices: Readable::read(reader)?, + channel_handshake_config, + channel_handshake_limits, + channel_config, + accept_forwards_to_priv_channels, + accept_inbound_channels, + manually_accept_inbound_channels, + accept_intercept_htlcs, + manually_handle_bolt12_invoices, + #[cfg(dual_funding)] + enable_dual_funded_channels: _enable_dual_funded_channels, + hold_outbound_htlcs_at_next_hop, + enable_htlc_hold, + reject_inbound_splices, }) } }