Crate breez_sdk_core::lightning
Expand description
Rust-Lightning, not Rusty’s Lightning!
A full-featured but also flexible lightning implementation, in library form. This allows the user (you) to decide how they wish to use it instead of being a fully self-contained daemon. This means there is no built-in threading/execution environment and it’s up to the user to figure out how best to make networking happen/timers fire/things get written to disk/keys get generated/etc. This makes it a good candidate for tight integration into an existing wallet instead of having a rather-separate lightning appendage to a wallet.
default
features are:
std
- enables functionalities which requirestd
, includingstd::io
trait implementations and things which utilize timegrind_signatures
- enables generation of low-r bitcoin signatures, which saves 1 byte per signature in 50% of the cases (see bitcoin PR #13666)
Available features are:
std
grind_signatures
no-std
- exposes write trait implementations from thecore2
crate (at least one ofno-std
orstd
are required)- Skip logging of messages at levels below the given log level:
max_level_off
max_level_error
max_level_warn
max_level_info
max_level_debug
max_level_trace
Modules§
- Creating blinded paths and related utilities live here.
- Structs and traits which allow other parts of rust-lightning to interact with the blockchain.
- Events are returned from various bits in the library which indicate some action must be taken by the client.
- Traits, helpers, and type definitions for core I/O functionality.
- Implementations of various parts of the Lightning protocol are in this module.
- Implementation of Lightning Offers (BOLT 12).
- Onion Messages: sending, receiving, forwarding, and ancillary utilities live here
- Structs and impls for receiving messages about the network and storing the topology live here.
- Provides keys to LDK and defines some useful objects describing spendable on-chain outputs.
- Some utility modules live here. See individual sub-modules for more info.
Macros§
- Check whether N channel monitor(s) have been added.
- Check that a channel’s closing channel update has been broadcasted, and optionally check whether an error message event has occurred.
- Check that a channel’s closing channel events has been issued
- Performs the “commitment signed dance” - the series of message exchanges which occur after a commitment update.
- Implements the TLVs deserialization part in a
Readable
implementation of a struct. - Implements the TLVs serialization part in a
Writeable
implementation of a struct. - Handles a PendingHTLCsForwardable event
- Handles a PendingHTLCsForwardable and HTLCHandlingFailed event
- Clears (and ignores) PendingHTLCsForwardable and HTLCHandlingFailed events
- Don’t use this, use the identically-named function instead.
- Clears (and ignores) a PendingHTLCsForwardable event
- Get a specific event from the pending events queue.
- Get an specific event message from the pending events queue.
- Gets an UpdateHTLCs MessageSendEvent
- Returns any local commitment transactions for the channel.
- Returns a channel monitor given a channel id, making some naive assumptions
- Get a payment preimage and hash.
- Gets an RAA and CS which were sent in response to a commitment update
- Gets a route from the given sender to the node described in
payment_params
. - Implements
Readable
/Writeable
for a struct storing it as a set of TLVs If$fieldty
isrequired
, then$field
is a required field that is not anOption
nor aVec
. If$fieldty
is(default_value, $default)
, then$field
will be set to$default
if not present. If$fieldty
isoption
, then$field
is optional field. If$fieldty
isoptional_vec
, then$field
is aVec
, which needs to have its individual elements serialized. Note that foroptional_vec
no bytes are written if the vec is empty - Implement
MaybeReadable
andWriteable
for an enum, with struct variants stored as TLVs and tuple variants stored directly. - Logs a byte slice in hex format.
- Log at the
DEBUG
level. - Log at the
ERROR
level. - Log at the
GOSSIP
level. - Log at the
INFO
level. - Logs a pubkey in hex format.
- Log at the
TRACE
level. - Log at the
WARN
level. - Reads a suffix added by
write_tlv_fields
. - Check the error from attempting a payment.
- Writes out a suffix to an object as a length-prefixed TLV stream which contains potentially backwards-compatible, optional fields which old nodes can happily ignore.