Skip to content

Commit 651f837

Browse files
authored
Merge pull request #376 from G8XSU/vss-bindings
Launch VSS, Expose build_with_vss* methods in bindings.
2 parents 5909063 + 5bb4855 commit 651f837

File tree

7 files changed

+24
-17
lines changed

7 files changed

+24
-17
lines changed

.github/workflows/vss-integration.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ jobs:
7474
run: |
7575
cd ldk-node
7676
export TEST_VSS_BASE_URL="http://localhost:8080/vss"
77-
RUSTFLAGS="--cfg vss_test --cfg vss" cargo build --verbose --color always
78-
RUSTFLAGS="--cfg vss_test --cfg vss" cargo test --test integration_tests_vss
77+
RUSTFLAGS="--cfg vss_test" cargo build --verbose --color always
78+
RUSTFLAGS="--cfg vss_test" cargo test --test integration_tests_vss
7979
8080
- name: Cleanup
8181
run: |

Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ uniffi = { version = "0.27.3", features = ["build"], optional = true }
7676
serde = { version = "1.0.210", default-features = false, features = ["std", "derive"] }
7777
serde_json = { version = "1.0.128", default-features = false, features = ["std"] }
7878

79-
[target.'cfg(vss)'.dependencies]
8079
vss-client = "0.3"
8180
prost = { version = "0.11.6", default-features = false}
8281

@@ -113,7 +112,6 @@ panic = "abort"
113112
level = "forbid"
114113
# When adding a new cfg attribute, ensure that it is added to this list.
115114
check-cfg = [
116-
"cfg(vss)",
117115
"cfg(vss_test)",
118116
"cfg(ldk_bench)",
119117
"cfg(tokio_unstable)",

bindings/ldk_node.udl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ interface Builder {
5050
Node build();
5151
[Throws=BuildError]
5252
Node build_with_fs_store();
53+
[Throws=BuildError]
54+
Node build_with_vss_store(string vss_url, string store_id, string lnurl_auth_server_url, record<string, string> fixed_headers);
55+
[Throws=BuildError]
56+
Node build_with_vss_store_and_fixed_headers(string vss_url, string store_id, record<string, string> fixed_headers);
57+
[Throws=BuildError]
58+
Node build_with_vss_store_and_header_provider(string vss_url, string store_id, VssHeaderProvider header_provider);
5359
};
5460

5561
interface Node {
@@ -251,6 +257,20 @@ enum BuildError {
251257
"LoggerSetupFailed",
252258
};
253259

260+
[Trait]
261+
interface VssHeaderProvider {
262+
[Async, Throws=VssHeaderProviderError]
263+
record<string, string> get_headers([ByRef]sequence<u8> request);
264+
};
265+
266+
[Error]
267+
enum VssHeaderProviderError {
268+
"InvalidData",
269+
"RequestError",
270+
"AuthorizationError",
271+
"InternalError",
272+
};
273+
254274
[Enum]
255275
interface Event {
256276
PaymentSuccessful(PaymentId? payment_id, PaymentHash payment_hash, u64? fee_paid_msat);

src/builder.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ use crate::fee_estimator::OnchainFeeEstimator;
1414
use crate::gossip::GossipSource;
1515
use crate::io::sqlite_store::SqliteStore;
1616
use crate::io::utils::{read_node_metrics, write_node_metrics};
17-
#[cfg(any(vss, vss_test))]
1817
use crate::io::vss_store::VssStore;
1918
use crate::liquidity::LiquiditySource;
2019
use crate::logger::{log_error, log_info, FilesystemLogger, Logger};
@@ -64,9 +63,7 @@ use bip39::Mnemonic;
6463
use bitcoin::secp256k1::PublicKey;
6564
use bitcoin::{BlockHash, Network};
6665

67-
#[cfg(any(vss, vss_test))]
6866
use bitcoin::bip32::{ChildNumber, Xpriv};
69-
#[cfg(any(vss, vss_test))]
7067
use std::collections::HashMap;
7168
use std::convert::TryInto;
7269
use std::default::Default;
@@ -76,7 +73,6 @@ use std::path::PathBuf;
7673
use std::sync::atomic::AtomicBool;
7774
use std::sync::{Arc, Mutex, RwLock};
7875
use std::time::SystemTime;
79-
#[cfg(any(vss, vss_test))]
8076
use vss_client::headers::{FixedHeaders, LnurlAuthToJwtProvider, VssHeaderProvider};
8177

8278
#[derive(Debug, Clone)]
@@ -389,7 +385,6 @@ impl NodeBuilder {
389385
///
390386
/// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
391387
/// [LNURL-auth]: https://github.com/lnurl/luds/blob/luds/04.md
392-
#[cfg(any(vss, vss_test))]
393388
pub fn build_with_vss_store(
394389
&self, vss_url: String, store_id: String, lnurl_auth_server_url: String,
395390
fixed_headers: HashMap<String, String>,
@@ -439,7 +434,6 @@ impl NodeBuilder {
439434
/// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
440435
///
441436
/// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
442-
#[cfg(any(vss, vss_test))]
443437
pub fn build_with_vss_store_and_fixed_headers(
444438
&self, vss_url: String, store_id: String, fixed_headers: HashMap<String, String>,
445439
) -> Result<Node, BuildError> {
@@ -459,7 +453,6 @@ impl NodeBuilder {
459453
/// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
460454
///
461455
/// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
462-
#[cfg(any(vss, vss_test))]
463456
pub fn build_with_vss_store_and_header_provider(
464457
&self, vss_url: String, store_id: String, header_provider: Arc<dyn VssHeaderProvider>,
465458
) -> Result<Node, BuildError> {
@@ -676,7 +669,6 @@ impl ArcedNodeBuilder {
676669
///
677670
/// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
678671
/// [LNURL-auth]: https://github.com/lnurl/luds/blob/luds/04.md
679-
#[cfg(any(vss, vss_test))]
680672
pub fn build_with_vss_store(
681673
&self, vss_url: String, store_id: String, lnurl_auth_server_url: String,
682674
fixed_headers: HashMap<String, String>,
@@ -700,7 +692,6 @@ impl ArcedNodeBuilder {
700692
/// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
701693
///
702694
/// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
703-
#[cfg(any(vss, vss_test))]
704695
pub fn build_with_vss_store_and_fixed_headers(
705696
&self, vss_url: String, store_id: String, fixed_headers: HashMap<String, String>,
706697
) -> Result<Arc<Node>, BuildError> {
@@ -722,7 +713,6 @@ impl ArcedNodeBuilder {
722713
/// unrecoverable, i.e., if they remain unresolved after internal retries are exhausted.
723714
///
724715
/// [VSS]: https://github.com/lightningdevkit/vss-server/blob/main/README.md
725-
#[cfg(any(vss, vss_test))]
726716
pub fn build_with_vss_store_and_header_provider(
727717
&self, vss_url: String, store_id: String, header_provider: Arc<dyn VssHeaderProvider>,
728718
) -> Result<Arc<Node>, BuildError> {
@@ -1276,7 +1266,6 @@ fn seed_bytes_from_config(
12761266
}
12771267
}
12781268

1279-
#[cfg(any(vss, vss_test))]
12801269
fn derive_vss_xprv(
12811270
config: Arc<Config>, seed_bytes: &[u8; 64], logger: Arc<FilesystemLogger>,
12821271
) -> Result<Xpriv, BuildError> {

src/io/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ pub mod sqlite_store;
1111
#[cfg(test)]
1212
pub(crate) mod test_utils;
1313
pub(crate) mod utils;
14-
#[cfg(any(vss, vss_test))]
1514
pub(crate) mod vss_store;
1615

1716
/// The event queue will be persisted under this key.

src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ pub use bip39;
100100
pub use bitcoin;
101101
pub use lightning;
102102
pub use lightning_invoice;
103-
#[cfg(any(vss, vss_test))]
104103
pub use vss_client;
105104

106105
pub use balance::{BalanceDetails, LightningBalance, PendingSweepBalance};

src/uniffi_types.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ pub use bitcoin::{Address, BlockHash, Network, OutPoint, Txid};
3232

3333
pub use bip39::Mnemonic;
3434

35+
pub use vss_client::headers::{VssHeaderProvider, VssHeaderProviderError};
36+
3537
use crate::UniffiCustomTypeConverter;
3638

3739
use crate::builder::sanitize_alias;

0 commit comments

Comments
 (0)