Skip to content

Commit

Permalink
Merge pull request #376 from G8XSU/vss-bindings
Browse files Browse the repository at this point in the history
Launch VSS, Expose build_with_vss* methods in bindings.
  • Loading branch information
tnull authored Oct 17, 2024
2 parents 5909063 + 5bb4855 commit 651f837
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 17 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/vss-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand Down
2 changes: 0 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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}

Expand Down Expand Up @@ -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)",
Expand Down
20 changes: 20 additions & 0 deletions bindings/ldk_node.udl
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, string> fixed_headers);
[Throws=BuildError]
Node build_with_vss_store_and_fixed_headers(string vss_url, string store_id, record<string, string> fixed_headers);
[Throws=BuildError]
Node build_with_vss_store_and_header_provider(string vss_url, string store_id, VssHeaderProvider header_provider);
};

interface Node {
Expand Down Expand Up @@ -251,6 +257,20 @@ enum BuildError {
"LoggerSetupFailed",
};

[Trait]
interface VssHeaderProvider {
[Async, Throws=VssHeaderProviderError]
record<string, string> get_headers([ByRef]sequence<u8> request);
};

[Error]
enum VssHeaderProviderError {
"InvalidData",
"RequestError",
"AuthorizationError",
"InternalError",
};

[Enum]
interface Event {
PaymentSuccessful(PaymentId? payment_id, PaymentHash payment_hash, u64? fee_paid_msat);
Expand Down
11 changes: 0 additions & 11 deletions src/builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down Expand Up @@ -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;
Expand All @@ -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)]
Expand Down Expand Up @@ -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<String, String>,
Expand Down Expand Up @@ -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<String, String>,
) -> Result<Node, BuildError> {
Expand All @@ -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<dyn VssHeaderProvider>,
) -> Result<Node, BuildError> {
Expand Down Expand Up @@ -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<String, String>,
Expand All @@ -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<String, String>,
) -> Result<Arc<Node>, BuildError> {
Expand All @@ -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<dyn VssHeaderProvider>,
) -> Result<Arc<Node>, BuildError> {
Expand Down Expand Up @@ -1276,7 +1266,6 @@ fn seed_bytes_from_config(
}
}

#[cfg(any(vss, vss_test))]
fn derive_vss_xprv(
config: Arc<Config>, seed_bytes: &[u8; 64], logger: Arc<FilesystemLogger>,
) -> Result<Xpriv, BuildError> {
Expand Down
1 change: 0 additions & 1 deletion src/io/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
1 change: 0 additions & 1 deletion src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
Expand Down
2 changes: 2 additions & 0 deletions src/uniffi_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 651f837

Please sign in to comment.