A Rust library that implements the main lightning logic of the lipa wallet app.

Overview

lipa-lightning-lib (3L)

Warning This library is not production ready yet.

Build

Test

Start Nigiri Bitcoin:

nigiri start --ln

The --ln flag is not strictly required, but it starts an LND and a CLN node which you are likely going to use to test the library.

Start the example node:

cargo run --example node

View logs in ./.ldk/logs.txt.

Comments
  • Shutdown node gracefully when LightningNode gets out of scope

    Shutdown node gracefully when LightningNode gets out of scope

    When the node is being stopped, we want do 2 things for a clean shutdown:

    • Disconnect all peers
    • Gracefully shutdown the BackgroundProcessor

    The background processor actually implements the Drop trait itself. This stops the thread in which the background processor is running (wrapped inside macro define_run_body!). So there's no need to do anything from 3L's side, it can just wait for the BackgroundProcessor to go out of scope.

    On the contrary, function peer_manager.disconnect_all_peers() is never being called. However, when I was running tests locally and I was checking on the connected LND node, the 3L example node was actually anyways being disconnected from LND as soon as the 3L example node stopped running. I couldn't figure out how this disconnecting was initiated, but maybe it was just the LND node that disconnected the peer, once the TCP connection disconnected.

    Anyhow, it feels kind of like the right thing to do to call peer_manager.disconnect_all_peers() when the node shuts down, and there doesn't seem to be any big drawback even if it would turn out that this step was actually not necessary.

    opened by gcomte 5
  • Fix Clippy warnings

    Fix Clippy warnings

    Due to our clippy check CI not working as intended, some clippy warnings are now being thrown on develop.

    This PR removes them, by mostly making the clippy rules less strict, which must be undone as soon as the different yet-to-be-developed parts of the project are finally integrated!

    opened by gcomte 4
  • Add StorageCallback interface

    Add StorageCallback interface

    Hi.

    Please have a look at the proposed interface for persistence callback. Seems that we do not need a full-featured file system access, so we can limit our API to a key-value storage. Mobile devs please check if you can easily implement such interface. Lightning devs please make sure that such interface would be enough for our needs.

    opened by andrei-21 3
  • Update lightning-rapid-gossip-sync requirement from 0.0.110 to 0.0.111

    Update lightning-rapid-gossip-sync requirement from 0.0.110 to 0.0.111

    Updates the requirements on lightning-rapid-gossip-sync to permit the latest version.

    Release notes

    Sourced from lightning-rapid-gossip-sync's releases.

    v0.0.110

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz
    • Matt Corallo

    ... (truncated)

    Changelog

    Sourced from lightning-rapid-gossip-sync's changelog.

    0.0.110 - 2022-07-26 - "Routing, With a Vengeance"

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update lightning-background-processor requirement from 0.0.110 to 0.0.111

    Update lightning-background-processor requirement from 0.0.110 to 0.0.111

    Updates the requirements on lightning-background-processor to permit the latest version.

    Release notes

    Sourced from lightning-background-processor's releases.

    v0.0.110

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz
    • Matt Corallo

    ... (truncated)

    Changelog

    Sourced from lightning-background-processor's changelog.

    0.0.110 - 2022-07-26 - "Routing, With a Vengeance"

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Update lightning-net-tokio requirement from 0.0.110 to 0.0.111

    Update lightning-net-tokio requirement from 0.0.110 to 0.0.111

    Updates the requirements on lightning-net-tokio to permit the latest version.

    Release notes

    Sourced from lightning-net-tokio's releases.

    v0.0.110

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz
    • Matt Corallo

    ... (truncated)

    Changelog

    Sourced from lightning-net-tokio's changelog.

    0.0.110 - 2022-07-26 - "Routing, With a Vengeance"

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Start background processing

    Start background processing

    RapidGossipSync and ProbabilisticScorer instances are created just to be fed to the background processor. Properly initializing them will be handled in later PRs.

    The docs state that a persistence error will make the background processor stop and that this should be handled by calling join(), handling the error, and finally starting the background processor again.

    To deal with that, instead of just having the initial thread launching the thread in which the background processor runs, we have a new intermediate thread that continually launches the background processor, joins, launches again, and so forth.

    The main issue I'm experiencing is that now there's no easy way for the original thread to stop the background processor gracefully. For that to be possible, the new thread must not block on the join(). That would be possible if the JoinHandle field of lightning_background_processor::BackgroundProcessor was public. That way, the new thread could call JoinHandle.is_finished() and avoid getting stuck in join().

    opened by danielgranhao 1
  • Fail CI on clippy warnings

    Fail CI on clippy warnings

    Configures Clippy CI job to fail if there are any warnings and fixes warnings. Warnings were fixed by ignoring certain Clippy rules because of the current software being a WIP.

    opened by danielgranhao 1
  • Add detached Esplora client

    Add detached Esplora client

    This adds an Esplora client to the project, which is however not being used yet by the library. That's why it declares #[allow(dead_code)], which should be undone later, once the client is actually being used.

    The client contains all the functionality required for keeping the chain synced for LDK. Not more not less. There is more functionality to be found in the linked source file, linked to in the top of the files src/esplora_client.rs and src/esplora_client_api.rs

    Even though this PR introduces detached code, that is never being called, I still wanted to bring this code into discussion early, because there are a lot of design decisions that should be considered:

    • Copied code: Should we rather rely on forks of forks of forks or copy the code and have our own implementation? Should we switch to use maintained libraries later, when the code has eventually been merged?
    • Given the nature of copied code that might be replaced by using libraries later .. should we provide any testing?
    • Is it okay to go for an async client or should we rather develop a sync client?
    opened by gcomte 1
  • Update uniffi_bindgen requirement from 0.19.6 to 0.20.0

    Update uniffi_bindgen requirement from 0.19.6 to 0.20.0

    Updates the requirements on uniffi_bindgen to permit the latest version.

    Changelog

    Sourced from uniffi_bindgen's changelog.

    v0.20.0 - (2022-09-13)

    All changes in v0.20.0.

    ⚠️ Breaking Changes ⚠️

    • Renamed the uniffi_bindgen cydlib argument to lib_file, since it can also accept static libraries

    What's changed

    • The guess_crate_root function is now public

    v0.19.6 - (2022-08-31)

    All changes in v0.19.6.

    • Fix callback interface init signature in Rust scaffolding
    • Drop unused dependencies
    • Update to MSRV 1.61.0

    v0.19.5 - (2022-08-29)

    All changes in v0.19.5.

    • Fixed a small bug in the 0.19.4 release, where the extraneous r# was present in the HashMap generated scaffolding.

    v0.19.4 - (2022-08-29)

    All changes in v0.19.4.

    • Implement Timestamp and Duration types in Ruby backend.
    • Fixed in a bug where callback interfaces with arguments that include underscores do not get converted to camelCase on Swift.

    v0.19.3 - (2022-07-08)

    All changes in v0.19.3.

    v0.19.2 - (2022-06-28)

    All changes in v0.19.2.

    • Fixed sccache issue with the askama.toml config file.

    v0.19.1 - (2022-06-16)

    All changes in v0.19.1.

    What's Changed

    • Fixed the dependency from uniffi_build -> uniffi_bindgen

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Update bitcoin requirement from 0.28.1 to 0.29.1

    Update bitcoin requirement from 0.28.1 to 0.29.1

    Updates the requirements on bitcoin to permit the latest version.

    Changelog

    Sourced from bitcoin's changelog.

    0.29 - 2022-07-20 "Edition 2018 Release"

    As promised, this is our quick release to bring on edition 2018 by increasing our MSRV to Rust 1.41.1 #983

    This work saw a bunch of new language features become available to us. At the same time we were able to start using rustfmt. We also started linting as part of CI.

    Breaking changes

    There are numerous breaking changes in this release related to the new language features but also other improvements such as more newtypes added. Note that not all changes cause compilation failure! For example, Witness serialization was changed to support human-readable formats.

    Detailed list of breaking changes

    Highlights

    • Added support for BIP 152 #1088
    • Edition 2018 improvements
      • Implement TryFrom #1007
      • Add non_exhaustive to all error enums #1026
      • Various other improvements, see tracking issue for more information.
    • Enable clippy on CI #1061
    • Taproot improvements #950 #936
    • serde improvements/changes #1006 #905 #1071 []
    • Performance improvements #1033 #996 #1053 #1023
    • PSBT improvements #853 #951 (rust-bitcoin/rust-bitcoin#951) #940
    • Script improvements #1021 #954
    • New types that may be of interest
      • Sequence, transaction sequence number #1093
      • ChainHash, as used in Lightning #878
      • LockTime, transaction nLockTime #994
    • Improve pubkey sorting: #1084
    • Introduce rustfmt #1040
    • Dependencies
      • Upgrade to use bitcoinconsensus v0.20.2-0.5.0 #1165
      • Upgrade to use secp256k1 v0.24.0 #1110
      • Upgrade to use bech32 v0.9.0 #1131
      • Remove base64-compat in favour of base64 #993

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Panic on missing example node config

    Panic on missing example node config

    Change behavior of how the example node loads the .env file.

    Before: Load .env if the file is present, otherwise assume that environment variables are set in another way or are not present at all.

    Afterwards: Make .env file mandatory. Panic if it can't be found.

    opened by gcomte 0
  • Update lightning requirement from 0.0.110 to 0.0.111

    Update lightning requirement from 0.0.110 to 0.0.111

    Updates the requirements on lightning to permit the latest version.

    Release notes

    Sourced from lightning's releases.

    v0.0.110

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz
    • Matt Corallo

    ... (truncated)

    Changelog

    Sourced from lightning's changelog.

    0.0.110 - 2022-07-26 - "Routing, With a Vengeance"

    API Updates

    • ChannelManager::send_probe and Score::probe_{failed,successful} have been added to make probing more explicit, as well as new Event::Probe{Failed,Successful} events (#1567).
    • ProbabilisticScoringParameters::banned_nodes has been renamed manual_node_penalties and changed to take msat penalties (#1592).
    • Per-payment tracking of failed paths was added to enable configuration of ProbabilisticScoringParameters::considered_impossible_penalty_msat (#1600)
    • ProbabilisticScoringParameters::base_penalty_amount_multiplier_msat was added to allow a penalty that is only amount-dependent (#1617).
    • ProbabilisticScoringParameters::amount_penalty_multiplier_msat was renamed liquidity_penalty_amount_multiplier_msat (#1617).
    • A new Event::HTLCHandlingFailed has been added which provides visibility into failures to forward/claim accepted HTLCs (#1403).
    • Support has been added for DNS hostnames in the NetAddress type, see [BOLT PR #911](lightning/bolts#911) (#1553).
    • GossipSync now has rapid, p2p, and none constructors (#1618).
    • lightning-net-tokio no longer requires types to be in Arcs (#1623).
    • The htlc_maximum_msat field is now required in ChannelUpdate gossip messages. In tests this rejects < 1% of channels (#1519).
    • ReadOnlyNetworkGraph::{channel,node} have been added to query for individual channel/node data, primarily for bindings users (#1543).
    • FeeEstimator implementations are now wrapped internally to ensure values below 253 sats/kW are never used (#1552).
    • Route selection no longer attempts to randomize path selection. This is unlikely to lead to a material change in the paths selected (#1610).

    Bug Fixes

    • Fixed a panic when deserializing ChannelDetails objects (#1588).
    • When routing, channels are no longer fully saturated before MPP splits are generated, instead a configuration knob was added as PaymentParameters::max_channel_saturation_power_of_half (#1605).
    • Fixed a panic which occurred in ProbabilisticScorer when wallclock time goes backwards across a restart (#1603).

    Serialization Compatibility

    • All new fields are ignored by prior versions of LDK. All new fields are not present when reading objects serialized by prior versions of LDK.
    • Channel information written in the NetworkGraph which is missing htlc_maximum_msat may be dropped on deserialization (#1519).
    • Similarly, node information written in the NetworkGraph which contains an invalid hostname may be dropped on deserialization (#1519).

    In total, this release features 79 files changed, 2935 insertions, 1363 deletions in 52 commits from 9 authors, in alphabetical order:

    • Duncan Dean
    • Elias Rohrer
    • Jeffrey Czyz

    ... (truncated)

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies blocked 
    opened by dependabot[bot] 1
Owner
lipa
lipa
A library in Rust for theorem proving with Intuitionistic Propositional Logic.

Prop Propositional logic with types in Rust. A library in Rust for theorem proving with Intuitionistic Propositional Logic. Supports theorem proving i

AdvancedResearch 17 Sep 26, 2022
Logimu: Circuit & logic gate simulator

Logimu: Circuit & logic gate simulator The main goal of Logimu is to simulate large circuits at a high speed. Features Live simulation Embed other cir

David Hoppenbrouwers 4 Jul 14, 2022
Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.

Welcome! This is the official repository for the Soufflé language project. The Soufflé language is similar to Datalog (but has terms known as records)

The Soufflé Project 610 Sep 29, 2022
This crate implements an array_chunks method for iterators

This crate implements an array_chunks method for iterators. It behaves like [slice::array_chunks] but works with any [Iterator] type. Several nightly

kangalioo 1 Jan 24, 2022
Quad-rand implements pseudo-random generator

quad-rand quad-rand implements pseudo-random generator based on rust atomics. Compatible with wasm and any oth

Fedor Logachev 10 Feb 11, 2022
A lightning fast version of tmux-fingers written in Rust, copy/pasting tmux like vimium/vimperator

tmux-thumbs A lightning fast version of tmux-fingers written in Rust for copy pasting with vimium/vimperator like hints. Usage Press ( prefix + Space

Ferran Basora 558 Sep 21, 2022
A lightning fast state management module for Yew.

yewv A lightning fast state management module for Yew built with performance and simplicity as a first priority. Who is this for? If you wish to use a

null 5 Jul 18, 2022
Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion 1 Oct 19, 2021
How to use libtor in a Rust app

libtor example Uses libtor crate to run a Tor daemon in process. This example spawns the Tor daemon using Tokio's spawn_blocking, and then spawns othe

Byron Hambly 1 Nov 28, 2021
Reload Rust code without app restarts. For faster feedback cycles.

hot-lib-reloader hot-lib-reloader is a development tool that allows you to reload functions of a running Rust program. This allows to do "live program

Robert Krahn 148 Sep 24, 2022
Czkawka is a simple, fast and easy to use app to remove unnecessary files from your computer.

Multi functional app to find duplicates, empty folders, similar images etc.

Rafał Mikrut 8.4k Sep 24, 2022
Simple comparison app for iRacing car setups.

CarTunes Simple comparison app for iRacing car setups. About Export a setup in the iRacing garage and CarTunes will let you compare it with other setu

Jay Oster 26 Sep 24, 2022
A VtubeStudio plugin that allows iFacialMocap to stream data to the app, enabling full apple ARkit facial tracking to be used for 2D Vtuber models.

facelink_rs A VtubeStudio plugin that allows iFacialMocap to stream data to the app, enabling full apple ARkit facial tracking to be used for 2D Vtube

Slashscreen 2 May 6, 2022
Easily sync your clipboard between devices. This is a work in progress app.

Clipboard Sync Description Easily sync your clipboard between devices. This is a work in progress app. Stack Frontend: React Tauri isomorphic-ws TSX,

Steveplays 2 Mar 2, 2022
Extracting react native app source code from apk file.

extract-myreact Extracting React Native app source code from apk file.

Aan 2 Mar 29, 2022
A simple web-app allowing you to batch archive groups of repositories from a given organization

ice-repos My goal here is to build a simple web-app allowing you to batch archive groups of repositories from a given organization, using Rust+Yew. As

Nic McPhee 5 Aug 24, 2022
A library to compile USDT probes into a Rust library

sonde sonde is a library to compile USDT probes into a Rust library, and to generate a friendly Rust idiomatic API around it. Userland Statically Defi

Ivan Enderlin 38 Aug 30, 2022
A Rust library for calculating sun positions

sun A rust port of the JS library suncalc. Install Add the following to your Cargo.toml [dependencies] sun = "0.2" Usage pub fn main() { let unixti

Markus Kohlhase 31 Sep 14, 2022
A cross-platform serial port library in Rust.

Introduction serialport-rs is a general-purpose cross-platform serial port library for Rust. It provides a blocking I/O interface and port enumeration

Bryant Mairs 143 Nov 5, 2021