diff --git a/.github/workflows/vss-integration.yml b/.github/workflows/vss-integration.yml index 44b7f445d..83544313b 100644 --- a/.github/workflows/vss-integration.yml +++ b/.github/workflows/vss-integration.yml @@ -74,8 +74,8 @@ jobs: run: | cd ldk-node export TEST_VSS_BASE_URL="http://localhost:8080/vss" - RUSTFLAGS="--cfg vss_test --cfg vss" cargo build --verbose --color always - RUSTFLAGS="--cfg vss_test --cfg vss" cargo test --test integration_tests_vss + RUSTFLAGS="--cfg vss_test" cargo build --verbose --color always + RUSTFLAGS="--cfg vss_test" cargo test --test integration_tests_vss - name: Cleanup run: | diff --git a/Cargo.toml b/Cargo.toml index e56faefb0..df68c49a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -76,7 +76,6 @@ uniffi = { version = "0.27.3", features = ["build"], optional = true } serde = { version = "1.0.210", default-features = false, features = ["std", "derive"] } serde_json = { version = "1.0.128", default-features = false, features = ["std"] } -[target.'cfg(vss)'.dependencies] vss-client = "0.3" prost = { version = "0.11.6", default-features = false} @@ -113,7 +112,6 @@ panic = "abort" level = "forbid" # When adding a new cfg attribute, ensure that it is added to this list. check-cfg = [ - "cfg(vss)", "cfg(vss_test)", "cfg(ldk_bench)", "cfg(tokio_unstable)", diff --git a/bindings/ldk_node.udl b/bindings/ldk_node.udl index 5deb36915..6ec7208b2 100644 --- a/bindings/ldk_node.udl +++ b/bindings/ldk_node.udl @@ -50,6 +50,12 @@ interface Builder { Node build(); [Throws=BuildError] Node build_with_fs_store(); + [Throws=BuildError] + Node build_with_vss_store(string vss_url, string store_id, string lnurl_auth_server_url, record fixed_headers); + [Throws=BuildError] + Node build_with_vss_store_and_fixed_headers(string vss_url, string store_id, record fixed_headers); + [Throws=BuildError] + Node build_with_vss_store_and_header_provider(string vss_url, string store_id, VssHeaderProvider header_provider); }; interface Node { @@ -251,6 +257,20 @@ enum BuildError { "LoggerSetupFailed", }; +[Trait] +interface VssHeaderProvider { + [Async, Throws=VssHeaderProviderError] + record get_headers([ByRef]sequence request); +}; + +[Error] +enum VssHeaderProviderError { + "InvalidData", + "RequestError", + "AuthorizationError", + "InternalError", +}; + [Enum] interface Event { PaymentSuccessful(PaymentId? payment_id, PaymentHash payment_hash, u64? fee_paid_msat); diff --git a/src/builder.rs b/src/builder.rs index d088adf14..c14ffcf5a 100644 --- a/src/builder.rs +++ b/src/builder.rs @@ -14,7 +14,6 @@ use crate::fee_estimator::OnchainFeeEstimator; use crate::gossip::GossipSource; use crate::io::sqlite_store::SqliteStore; use crate::io::utils::{read_node_metrics, write_node_metrics}; -#[cfg(any(vss, vss_test))] use crate::io::vss_store::VssStore; use crate::liquidity::LiquiditySource; use crate::logger::{log_error, log_info, FilesystemLogger, Logger}; @@ -64,9 +63,7 @@ use bip39::Mnemonic; use bitcoin::secp256k1::PublicKey; use bitcoin::{BlockHash, Network}; -#[cfg(any(vss, vss_test))] use bitcoin::bip32::{ChildNumber, Xpriv}; -#[cfg(any(vss, vss_test))] use std::collections::HashMap; use std::convert::TryInto; use std::default::Default; @@ -76,7 +73,6 @@ use std::path::PathBuf; use std::sync::atomic::AtomicBool; use std::sync::{Arc, Mutex, RwLock}; use std::time::SystemTime; -#[cfg(any(vss, vss_test))] use vss_client::headers::{FixedHeaders, LnurlAuthToJwtProvider, VssHeaderProvider}; #[derive(Debug, Clone)] @@ -389,7 +385,6 @@ impl NodeBuilder { /// /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md /// [LNURL-auth]: https://github.com/lnurl/luds/blob/luds/04.md - #[cfg(any(vss, vss_test))] pub fn build_with_vss_store( &self, vss_url: String, store_id: String, lnurl_auth_server_url: String, fixed_headers: HashMap, @@ -439,7 +434,6 @@ impl NodeBuilder { /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted. /// /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md - #[cfg(any(vss, vss_test))] pub fn build_with_vss_store_and_fixed_headers( &self, vss_url: String, store_id: String, fixed_headers: HashMap, ) -> Result { @@ -459,7 +453,6 @@ impl NodeBuilder { /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted. /// /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md - #[cfg(any(vss, vss_test))] pub fn build_with_vss_store_and_header_provider( &self, vss_url: String, store_id: String, header_provider: Arc, ) -> Result { @@ -676,7 +669,6 @@ impl ArcedNodeBuilder { /// /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md /// [LNURL-auth]: https://github.com/lnurl/luds/blob/luds/04.md - #[cfg(any(vss, vss_test))] pub fn build_with_vss_store( &self, vss_url: String, store_id: String, lnurl_auth_server_url: String, fixed_headers: HashMap, @@ -700,7 +692,6 @@ impl ArcedNodeBuilder { /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted. /// /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md - #[cfg(any(vss, vss_test))] pub fn build_with_vss_store_and_fixed_headers( &self, vss_url: String, store_id: String, fixed_headers: HashMap, ) -> Result, BuildError> { @@ -722,7 +713,6 @@ impl ArcedNodeBuilder { /// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted. /// /// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md - #[cfg(any(vss, vss_test))] pub fn build_with_vss_store_and_header_provider( &self, vss_url: String, store_id: String, header_provider: Arc, ) -> Result, BuildError> { @@ -1276,7 +1266,6 @@ fn seed_bytes_from_config( } } -#[cfg(any(vss, vss_test))] fn derive_vss_xprv( config: Arc, seed_bytes: &[u8; 64], logger: Arc, ) -> Result { diff --git a/src/io/mod.rs b/src/io/mod.rs index fab0a27f9..3192dbb86 100644 --- a/src/io/mod.rs +++ b/src/io/mod.rs @@ -11,7 +11,6 @@ pub mod sqlite_store; #[cfg(test)] pub(crate) mod test_utils; pub(crate) mod utils; -#[cfg(any(vss, vss_test))] pub(crate) mod vss_store; /// The event queue will be persisted under this key. diff --git a/src/lib.rs b/src/lib.rs index 232ab4e1a..8fc3972e1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -100,7 +100,6 @@ pub use bip39; pub use bitcoin; pub use lightning; pub use lightning_invoice; -#[cfg(any(vss, vss_test))] pub use vss_client; pub use balance::{BalanceDetails, LightningBalance, PendingSweepBalance}; diff --git a/src/uniffi_types.rs b/src/uniffi_types.rs index 894e5d739..c8c84dbed 100644 --- a/src/uniffi_types.rs +++ b/src/uniffi_types.rs @@ -32,6 +32,8 @@ pub use bitcoin::{Address, BlockHash, Network, OutPoint, Txid}; pub use bip39::Mnemonic; +pub use vss_client::headers::{VssHeaderProvider, VssHeaderProviderError}; + use crate::UniffiCustomTypeConverter; use crate::builder::sanitize_alias;