Among the changes from previous LDK version:
1. No need to pass `Secp256k1Error` to `SignError`
2. `OnionMessenger` takes extra argument which should implement `NL`
referring to `NodeIdLookUp` trait. This required adding new struct
`LndkNodeIdLookUp` to implement the above trait.
3. `path.introduction_node` is replaced in favor of `path.introduction_node()`
4. `OfferBuilder` signature change. `OfferBuilder::new` takes now pubkey instead of disc.
5. Replace `sign_closure` with `LndkSigner` struct and implemented `SignInvoiceRequestFn` trait for it
This PR autogenerates TLS credentials in LNDK's data dir at ~/.LNDK and
requires TLS to be used when connecting to the gRPC server.
Some of this code took inspiration from CLN and TEOS's gRPC servers, so credit
where it's due.
We update to ldk v20 for the latest blinded route updates, namely being
able to create a blinded route that's more than one hop. On top of that we use
a custom versoin with a small change, which we need in order to send an onion
message along a specified path for LNDK's integration tests:
lightningdevkit/rust-lightning#2868
We bump ldk-sample to a version that can open channels and broadcasts
the node announcement at a more frequent interval so we can pull ldk's
address from the node graph in our integration tests.
To allow external callers to shutdown lndk, we provide a shutdown
trigger and listener to the onion messenger, replacing the single use
channels that we previously used. This is useful for itests, so that
we can cleanly shut down and for callers of the library to manage
execution.