LN metadata persistence methods
npm install ln-syncMethods for synchronizing metadata about Lightning Network nodes, channels, and
payments.
Confirm that a peer will accept a channel open
{
capacity:
[cooperative_close_address]:
[give_tokens]:
[is_private]:
lnd:
[min_htlc_mtokens]:
[partner_csv_delay]:
partner_public_key:
}
@returns via cbk or Promise
{
is_accepted:
}
Ask to get a chain fee rate
{
ask:
lnd:
}
@returns via cbk or Promise
{
tokens_per_vbyte:
}
Assemble an unsigned PSBT with funding from multiple parties
{
capacity:
proposed: [{
[change]:
[funding]: [
utxos: [{
[non_witness_utxo]:
transaction_id:
transaction_vout:
witness_utxo: {
script_pub:
tokens:
}
}]
}]
rate:
}
@returns via cbk or Promise
{
psbt:
}
Broadcast a chain transaction until it gets confirmed in a block
{
[description]:
lnd:
logger:
transaction:
}
@returns via cbk or Promise
{
transaction_confirmed_in_block:
}
Connect a peer
{
id:
lnd:
[sockets]: [
}
@returns via cbk or Promise
Find a confirmed on-chain output
{
lnd:
[min_confirmations]:
output_script:
start_height:
timeout_ms:
tokens:
}
@returns via cbk or Promise
{
confirmation_height:
is_coinbase:
transaction_id:
transaction_vout:
}
Find a public key given a query
{
[channels]: [{
partner_public_key:
}]
lnd:
[query]:
}
@returns via cbk or Promise
{
[public_key]:
}
Format tokens for display
{
is_monochrome:
tokens:
}
@returns
{
display:
}
Get all invoices
{
[confirmed_after]:
[created_after]:
lnd:
}
@returns via cbk or Promise
{
invoices: [{
[chain_address]:
cltv_delta:
[confirmed_at]:
created_at:
description:
[description_hash]:
expires_at:
features: [{
bit:
is_known:
is_required:
type:
}]
id:
[is_canceled]:
is_confirmed:
[is_held]:
is_private:
[is_push]:
payments: [{
[confirmed_at]:
created_at:
created_height:
in_channel:
is_canceled:
is_confirmed:
is_held:
messages: [{
type:
value:
}]
mtokens:
[pending_index]:
tokens:
[total_mtokens]:
}]
received:
received_mtokens:
[request]:
secret:
tokens:
}]
}
Get a funded transaction
{
ask:
[chain_fee_tokens_per_vbyte]:
[is_external]:
lnd: Authenticated LND API Object>
logger:
outputs: [{
address:
tokens:
}]
}
@returns via cbk or Promise
{
id:
[inputs]: [{
[lock_expires_at]:
[lock_id]:
transaction_id:
transaction_vout:
}]
[psbt]:
transaction:
}
Get the channel available liquidity
A request function is required when min_node_score is specified
{
[is_outbound]:
[is_top]:
lnd:
[min_node_score]:
[max_fee_rate]:
[request]:
[with]: [
}
@returns via cbk
{
tokens: [
}
Get network name for lnd
{
lnd:
}
@returns via cbk or Promise
{
[bitcoinjs]:
network:
}
Get the alias of a node, ignoring errors
{
id:
lnd:
}
@returns via cbk or Promise
{
alias:
id:
}
Get a detailed balance that categorizes balance of tokens on the node
{
[is_confirmed]:
lnd:
}
@returns via cbk or Promise
{
[closing_balance]:
[conflicted_pending]:
[invalid_pending]:
[offchain_balance]:
[offchain_pending]:
[onchain_confirmed]:
[onchain_pending]:
[onchain_vbytes]:
[utxos_count]:
}
Find the max amount that can be used for funding outputs given inputs
{
addresses: [
fee_tokens_per_vbyte:
inputs: [{
tokens:
transaction_id:
transaction_vout:
}]
lnd:
}
@returns via cbk or Promise
{
fee_tokens_per_vbyte:
max_tokens:
}
Get payments
{
[after]:
lnd:
}
@returns via cbk or Promise
{
payments: [{
attempts: [{
[failure]: {
code:
[details]: {
[channel]:
[height]:
[index]:
[mtokens]:
[policy]: {
base_fee_mtokens:
cltv_delta:
fee_rate:
[is_disabled]:
max_htlc_mtokens:
min_htlc_mtokens:
updated_at:
}
[timeout_height]:
[update]: {
chain:
channel_flags:
extra_opaque_data:
message_flags:
signature:
}
}
message:
}
[index]:
is_confirmed:
is_failed:
is_pending:
route: {
fee:
fee_mtokens:
hops: [{
channel:
channel_capacity:
fee:
fee_mtokens:
forward:
forward_mtokens:
[public_key]:
[timeout]:
}]
mtokens:
[payment]:
timeout:
tokens:
[total_mtokens]:
}
}]
created_at:
destination:
fee:
fee_mtokens:
hops: [
id:
[index]:
is_confirmed:
is_outgoing:
mtokens:
[request]:
safe_fee:
safe_tokens:
secret:
tokens:
}]
}
Get the rundown on liquidity with a specific peer
{
lnd:
public_key:
[settled]:
}
@returns via cbk or Promise
{
alias:
inbound:
inbound_pending:
outbound:
outbound_pending:
}
Get payments that were rebalances
{
after:
lnds: [
}
@returns via cbk or Promise
{
payments: [{
attempts: [{
[failure]: {
code:
[details]: {
[channel]:
[height]:
[index]:
[mtokens]:
[policy]: {
base_fee_mtokens:
cltv_delta:
fee_rate:
[is_disabled]:
max_htlc_mtokens:
min_htlc_mtokens:
updated_at:
}
[timeout_height]:
[update]: {
chain:
channel_flags:
extra_opaque_data:
message_flags:
signature:
}
}
message:
}
[index]:
[confirmed_at]:
is_confirmed:
is_failed:
is_pending:
route: {
fee:
fee_mtokens:
hops: [{
channel:
channel_capacity:
fee:
fee_mtokens:
forward:
forward_mtokens:
[public_key]:
[timeout]:
}]
mtokens:
[payment]:
timeout:
tokens:
[total_mtokens]:
}
}]
confirmed_at:
created_at:
destination:
fee:
fee_mtokens:
hops: [
id:
[index]:
is_confirmed:
is_outgoing:
mtokens:
[request]:
safe_fee:
safe_tokens:
secret:
tokens:
}]
}
Get scored nodes
{
network:
request:
}
@returns via cbk or Promise
{
nodes: [{
public_key:
score:
}]
}
Get LND internal record associated with a transaction id
{
[chain_transactions]: [{
[block_id]:
[confirmation_count]:
[confirmation_height]:
created_at:
[description]:
[fee]:
id:
is_confirmed:
is_outgoing:
output_addresses: []
tokens:
[transaction]:
}]
[channels]: [{
capacity:
id:
partner_public_key:
transaction_id:
}]
[closed_channels]: [{
capacity:
[close_balance_spent_by]:
[close_balance_vout]:
[close_confirm_height]:
close_payments: [{
is_outgoing:
is_paid:
is_pending:
is_refunded:
[spent_by]:
tokens:
transaction_id:
transaction_vout:
}]
[close_transaction_id]:
final_local_balance:
final_time_locked_balance:
[id]:
is_breach_close:
is_cooperative_close:
is_funding_cancel:
is_local_force_close:
[is_partner_closed]:
[is_partner_initiated]:
is_remote_force_close:
partner_public_key:
transaction_id:
transaction_vout:
}]
id:
lnd:
[pending_channels]: [{
[close_transaction_id]:
is_active:
is_closing:
is_opening:
is_partner_initiated:
local_balance:
local_reserve:
partner_public_key:
[pending_balance]:
[pending_payments]: [{
is_incoming:
timelock_height:
tokens:
transaction_id:
transaction_vout:
}]
received:
[recovered_tokens]:
remote_balance:
remote_reserve:
sent:
[timelock_expiration]:
[transaction_fee]:
transaction_id:
transaction_vout:
[transaction_weight]:
}]
}
@returns via cbk or Promise
{
[chain_fee]:
[received]:
related_channels: [{
action:
[balance]:
[capacity]:
[channel]:
[close_tx]:
[open_tx]:
[timelock]:
with:
}]
[sent]:
[sent_to]: [
[tx]:
}
Make a refund transaction for transit funds
{
funded_tokens:
lnd:
network:
refund_address:
transit_address:
transit_key_index:
transit_public_key:
transaction_id:
transaction_vout:
}
@returns via cbk or Promise
{
refund:
}
Get on-chain funding and a refund
{
ask:
lnd:
logger:
[rate]:
tokens:
}
@returns via cbk or Promise
{
address:
id:
index:
[inputs]: [{
[lock_expires_at]:
[lock_id]:
transaction_id:
transaction_vout:
}]
key:
output:
[psbt]:
refund:
script:
transaction:
vout:
}
Partially sign and fund a PSBT and create a conflicting transaction
Only P2TR and P2WPKH inputs are supported
To allow for funding a channel, a dummy "finalized" PSBT is returned
{
lnd:
psbt:
utxos: [{
bip32_derivations: [{
fingerprint:
[leaf_hashes]:
path:
public_key:
}]
[non_witness_utxo]:
transaction_id:
transaction_vout:
witness_utxo: {
script_pub:
tokens:
}
}]
}
@returns via cbk or Promise
{
conflict:
funding:
psbt:
}
Update the fee for an individual channel
{
[base_fee_mtokens]:
[cltv_delta]:
fee_rate:
from:
[inbound_rate_discount]:
lnd:
[max_htlc_mtokens]:
[min_htlc_mtokens]:
transaction_id:
transaction_vout:
}
@returns via cbk or Promise
Wait for a peer to connect
{
id:
lnd:
[timeout]:
}
@returns via cbk or Promise
Wait for an incoming pending open channel matching specific criteria
{
[capacity]:
interval:
lnd:
local_balance:
partner_public_key:
times:
transaction_id:
transaction_vout:
}
@returns via cbk or Promise
{
transaction_id:
transaction_vout:
}