npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ln-sync

v6.0.2

Published

LN metadata persistence methods

Downloads

1,888

Readme

LN Sync

Methods for synchronizing metadata about Lightning Network nodes, channels, and payments.

Methods

acceptsChannelOpen

Confirm that a peer will accept a channel open

{
  capacity: <Channel Capacity Tokens Number>
  [cooperative_close_address]: <Restrict Coop Close To Address String>
  [give_tokens]: <Tokens to Gift To Partner Number> // Defaults to zero
  [is_private]: <Channel is Private Bool> // Defaults to false
  lnd: <Authenticated LND API Object>
  [min_htlc_mtokens]: <Minimum HTLC Millitokens String>
  [partner_csv_delay]: <Peer Output CSV Delay Number>
  partner_public_key: <Public Key Hex String>
}

@returns via cbk or Promise
{
  is_accepted: <Channel Proposal Is Accepted Bool>
}

askForFeeRate

Ask to get a chain fee rate

{
  ask: <Inquirer Ask Function>
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  tokens_per_vbyte: <Chain Fee Tokens Per VByte Number>
}

broadcastTransaction

Broadcast a chain transaction until it gets confirmed in a block

{
  [description]: <Transaction Description String>
  lnd: <Authenticated LND API Object>
  logger: <Winston Logger Object>
  transaction: <Transaction String>
}

@returns via cbk or Promise
{
  transaction_confirmed_in_block: <Block Height Number>
}

connectPeer

Connect a peer

{
  id: <Node Public Key Hex String>
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise

findConfirmedOutput

Find a confirmed on-chain output

{
  lnd: <Authenticated LND API Object>
  [min_confirmations]: <Minimum Confirmations Count Number>
  output_script: <Chain Output Script Hex String>
  start_height: <Start Chain Height Number>
  timeout_ms: <Timeout Milliseconds Number>
  tokens: <Tokens Sent To Script Number>
}

@returns via cbk or Promise
{
  confirmation_height: <Transaction Confirmed At Height Number>
  is_coinbase: <Transaction is Coinbase Transaction Bool>
  transaction_id: <Transaction Id Hex String>
  transaction_vout: <Transaction Output Index Number>
}

findKey

Find a public key given a query

{
  [channels]: [{
    partner_public_key: <Partner Public Key Hex String>
  }]
  lnd: <Authenticated LND API Object>
  [query]: <Query String>
}

@returns via cbk or Promise
{
  [public_key]: <Public Key Hex String>
}

formatTokens

Format tokens for display

{
  is_monochrome: <Avoid Applying Colors Bool>
  tokens: <Tokens Number>
}

@returns
{
  display: <Display Formatted Tokens String>
}

getAllInvoices

Get all invoices

{
  [confirmed_after]: <Confirmed At or After ISO 8601 Date String>
  [created_after]: <Confirmed At or After ISO 8601 Date String>
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  invoices: [{
    [chain_address]: <Fallback Chain Address String>
    cltv_delta: <Final CLTV Delta Number>
    [confirmed_at]: <Settled at ISO 8601 Date String>
    created_at: <ISO 8601 Date String>
    description: <Description String>
    [description_hash]: <Description Hash Hex String>
    expires_at: <ISO 8601 Date String>
    features: [{
      bit: <BOLT 09 Feature Bit Number>
      is_known: <Feature is Known Bool>
      is_required: <Feature Support is Required To Pay Bool>
      type: <Feature Type String>
    }]
    id: <Payment Hash String>
    [is_canceled]: <Invoice is Canceled Bool>
    is_confirmed: <Invoice is Confirmed Bool>
    [is_held]: <HTLC is Held Bool>
    is_private: <Invoice is Private Bool>
    [is_push]: <Invoice is Push Payment Bool>
    payments: [{
      [confirmed_at]: <Payment Settled At ISO 8601 Date String>
      created_at: <Payment Held Since ISO 860 Date String>
      created_height: <Payment Held Since Block Height Number>
      in_channel: <Incoming Payment Through Channel Id String>
      is_canceled: <Payment is Canceled Bool>
      is_confirmed: <Payment is Confirmed Bool>
      is_held: <Payment is Held Bool>
      messages: [{
        type: <Message Type Number String>
        value: <Raw Value Hex String>
      }]
      mtokens: <Incoming Payment Millitokens String>
      [pending_index]: <Pending Payment Channel HTLC Index Number>
      tokens: <Payment Tokens Number>
      [total_mtokens]: <Total Millitokens String>
    }]
    received: <Received Tokens Number>
    received_mtokens: <Received Millitokens String>
    [request]: <Bolt 11 Invoice String>
    secret: <Secret Preimage Hex String>
    tokens: <Tokens Number>
  }]
}

getFundedTransaction

Get a funded transaction

{
  ask: <Inquirer Ask Function>
  [chain_fee_tokens_per_vbyte]: <Internal Funding Uses Tokens/Vbyte Number>
  [is_external]: <Transaction Uses External Funds Bool>
  lnd: Authenticated LND API Object>
  logger: <Winston Logger Object>
  outputs: [{
    address: <Chain Address String>
    tokens: <Tokens To Send To Output Number>
  }]
}

@returns via cbk or Promise
{
  id: <Transaction Id Hex String>
  [inputs]: [{
    [lock_expires_at]: <UTXO Lock Expires At ISO 8601 Date String>
    [lock_id]: <UTXO Lock Id Hex String>
    transaction_id: <Transaction Hex Id String>
    transaction_vout: <Transaction Output Index Number>
  }]
  [psbt]: <Transaction As Finalized PSBT Hex String>
  transaction: <Raw Transaction Hex String>
}

getLiquidity

Get the channel available liquidity

A request function is required when min_node_score is specified

{
  [is_outbound]: <Return Outbound Liquidity Bool>
  [is_top]: <Return Top Liquidity Bool>
  lnd: <Authenticated LND API Object>
  [min_node_score]: <Minimum Node Score Number>
  [max_fee_rate]: <Max Inbound Fee Rate Parts Per Million Number>
  [request]: <Request Function>
  [with]: [<Liquidity With Specific Node Public Key Hex String>]
}

@returns via cbk
{
  tokens: [<Liquidity Tokens Number>]
}

getNetwork

Get network name for lnd

{
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  [bitcoinjs]: <Bitcoin JS Network Name String>
  network: <Network Name String>
}

getNodeAlias

Get the alias of a node, ignoring errors

{
  id: <Node Identity Public Key Hex String>
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  alias: <Node Alias String>
  id: <Node Identity Public Key Hex String>
}

getNodeFunds

Get a detailed balance that categorizes balance of tokens on the node

{
  [is_confirmed]: <Only Consider Confirmed Transactions Bool>
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  [closing_balance]: <Total Coins Closing Tokens Number>
  [conflicted_pending]: <Conflicted Transaction Tokens Number>
  [invalid_pending]: <Invalid Pending Tokens Tokens Number>
  [offchain_balance]: <Channel Tokens Balance Tokens Number>
  [offchain_pending]: <Pending Channel Tokens Balance Tokens Number>
  [onchain_confirmed]: <Confirmed On Chain Balance Tokens Number>
  [onchain_pending]: <Pending Chain Tokens Balance Tokens Number>
  [onchain_vbytes]: <UTXO Footprint Virtual Bytes Number>
  [utxos_count]: <Total UTXOs Count Number>
}

getMaxFundAmount

Find the max amount that can be used for funding outputs given inputs

{
  addresses: [<Send to Address String>]
  fee_tokens_per_vbyte: <Funding Fee Tokens Per VByte Number>
  inputs: [{
    tokens: <Input Tokens Number>
    transaction_id: <UTXO Transaction Id Hex String>
    transaction_vout: <UTXO Transaction Output Index Number>
  }]
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  fee_tokens_per_vbyte: <Effective Final Fee Tokens Per VByte Number>
  max_tokens: <Maximum Spendable Tokens Number>
}

getPayments

Get payments

{
  [after]: <Get Only Payments Create At Or After ISO 8601 Date String>
  lnd: <Authenticated LND API Object>
}

@returns via cbk or Promise
{
  payments: [{
    attempts: [{
      [failure]: {
        code: <Error Type Code Number>
        [details]: {
          [channel]: <Standard Format Channel Id String>
          [height]: <Error Associated Block Height Number>
          [index]: <Failed Hop Index Number>
          [mtokens]: <Error Millitokens String>
          [policy]: {
            base_fee_mtokens: <Base Fee Millitokens String>
            cltv_delta: <Locktime Delta Number>
            fee_rate: <Fees Charged in Millitokens Per Million Number>
            [is_disabled]: <Channel is Disabled Bool>
            max_htlc_mtokens: <Maximum HLTC Millitokens Value String>
            min_htlc_mtokens: <Minimum HTLC Millitokens Value String>
            updated_at: <Updated At ISO 8601 Date String>
          }
          [timeout_height]: <Error CLTV Timeout Height Number>
          [update]: {
            chain: <Chain Id Hex String>
            channel_flags: <Channel Flags Number>
            extra_opaque_data: <Extra Opaque Data Hex String>
            message_flags: <Message Flags Number>
            signature: <Channel Update Signature Hex String>
          }
        }
        message: <Error Message String>
      }
      [index]: <Payment Add Index Number>
      is_confirmed: <Payment Attempt Succeeded Bool>
      is_failed: <Payment Attempt Failed Bool>
      is_pending: <Payment Attempt is Waiting For Resolution Bool>
      route: {
        fee: <Route Fee Tokens Number>
        fee_mtokens: <Route Fee Millitokens String>
        hops: [{
          channel: <Standard Format Channel Id String>
          channel_capacity: <Channel Capacity Tokens Number>
          fee: <Fee Number>
          fee_mtokens: <Fee Millitokens String>
          forward: <Forward Tokens Number>
          forward_mtokens: <Forward Millitokens String>
          [public_key]: <Forward Edge Public Key Hex String>
          [timeout]: <Timeout Block Height Number>
        }]
        mtokens: <Total Fee-Inclusive Millitokens String>
        [payment]: <Payment Identifier Hex String>
        timeout: <Timeout Block Height Number>
        tokens: <Total Fee-Inclusive Tokens Number>
        [total_mtokens]: <Total Millitokens String>
      }
    }]
    created_at: <Payment at ISO-8601 Date String>
    destination: <Destination Node Public Key Hex String>
    fee: <Paid Routing Fee Rounded Down Tokens Number>
    fee_mtokens: <Paid Routing Fee in Millitokens String>
    hops: [<First Route Hop Public Key Hex String>]
    id: <Payment Preimage Hash String>
    [index]: <Payment Add Index Number>
    is_confirmed: <Payment is Confirmed Bool>
    is_outgoing: <Transaction Is Outgoing Bool>
    mtokens: <Millitokens Sent to Destination String>
    [request]: <BOLT 11 Payment Request String>
    safe_fee: <Payment Forwarding Fee Rounded Up Tokens Number>
    safe_tokens: <Payment Tokens Rounded Up Number>
    secret: <Payment Preimage Hex String>
    tokens: <Rounded Down Tokens Sent to Destination Number>
  }]
}

getPeerLiquidity

Get the rundown on liquidity with a specific peer

{
  lnd: <Authenticated LND API Object>
  public_key: <Peer Public Key Hex String>
  [settled]: <Known Settled Payment Id String>
}

@returns via cbk or Promise
{
  alias: <Alias String>
  inbound: <Inbound Liquidity Tokens Number>
  inbound_pending: <Pending Inbound Liquidity Tokens Number>
  outbound: <Outbound Liquidity Tokens Number>
  outbound_pending: <Pending Outbound Liquidity Tokens Number>
}

getRebalancePayments

Get payments that were rebalances

{
  after: <Rebalance Payments After ISO 8601 Date String>
  lnds: [<Authenticated LND API Object>]
}

@returns via cbk or Promise
{
  payments: [{
    attempts: [{
      [failure]: {
        code: <Error Type Code Number>
        [details]: {
          [channel]: <Standard Format Channel Id String>
          [height]: <Error Associated Block Height Number>
          [index]: <Failed Hop Index Number>
          [mtokens]: <Error Millitokens String>
          [policy]: {
            base_fee_mtokens: <Base Fee Millitokens String>
            cltv_delta: <Locktime Delta Number>
            fee_rate: <Fees Charged in Millitokens Per Million Number>
            [is_disabled]: <Channel is Disabled Bool>
            max_htlc_mtokens: <Maximum HLTC Millitokens Value String>
            min_htlc_mtokens: <Minimum HTLC Millitokens Value String>
            updated_at: <Updated At ISO 8601 Date String>
          }
          [timeout_height]: <Error CLTV Timeout Height Number>
          [update]: {
            chain: <Chain Id Hex String>
            channel_flags: <Channel Flags Number>
            extra_opaque_data: <Extra Opaque Data Hex String>
            message_flags: <Message Flags Number>
            signature: <Channel Update Signature Hex String>
          }
        }
        message: <Error Message String>
      }
      [index]: <Payment Add Index Number>
      [confirmed_at]: <Payment Confirmed At ISO 8601 Date String>
      is_confirmed: <Payment Attempt Succeeded Bool>
      is_failed: <Payment Attempt Failed Bool>
      is_pending: <Payment Attempt is Waiting For Resolution Bool>
      route: {
        fee: <Route Fee Tokens Number>
        fee_mtokens: <Route Fee Millitokens String>
        hops: [{
          channel: <Standard Format Channel Id String>
          channel_capacity: <Channel Capacity Tokens Number>
          fee: <Fee Number>
          fee_mtokens: <Fee Millitokens String>
          forward: <Forward Tokens Number>
          forward_mtokens: <Forward Millitokens String>
          [public_key]: <Forward Edge Public Key Hex String>
          [timeout]: <Timeout Block Height Number>
        }]
        mtokens: <Total Fee-Inclusive Millitokens String>
        [payment]: <Payment Identifier Hex String>
        timeout: <Timeout Block Height Number>
        tokens: <Total Fee-Inclusive Tokens Number>
        [total_mtokens]: <Total Millitokens String>
      }
    }]
    confirmed_at: <Payment Confirmed At ISO 8601 Date String>
    created_at: <Payment at ISO-8601 Date String>
    destination: <Destination Node Public Key Hex String>
    fee: <Paid Routing Fee Rounded Down Tokens Number>
    fee_mtokens: <Paid Routing Fee in Millitokens String>
    hops: [<First Route Hop Public Key Hex String>]
    id: <Payment Preimage Hash String>
    [index]: <Payment Add Index Number>
    is_confirmed: <Payment is Confirmed Bool>
    is_outgoing: <Transaction Is Outgoing Bool>
    mtokens: <Millitokens Sent to Destination String>
    [request]: <BOLT 11 Payment Request String>
    safe_fee: <Payment Forwarding Fee Rounded Up Tokens Number>
    safe_tokens: <Payment Tokens Rounded Up Number>
    secret: <Payment Preimage Hex String>
    tokens: <Rounded Down Tokens Sent to Destination Number>
  }]
}

getScoredNodes

Get scored nodes

{
  network: <Network Name String>
  request: <Request Function>
}

@returns via cbk or Promise
{
  nodes: [{
    public_key: <Public Key Hex String>
    score: <Forwarding Quality Score Out Of One Hundred Million Number>
  }]
}

getTransactionRecord

Get LND internal record associated with a transaction id

{
  [chain_transactions]: [{
    [block_id]: <Block Hash String>
    [confirmation_count]: <Confirmation Count Number>
    [confirmation_height]: <Confirmation Block Height Number>
    created_at: <Created ISO 8601 Date String>
    [description]: <Transaction Label String>
    [fee]: <Fees Paid Tokens Number>
    id: <Transaction Id String>
    is_confirmed: <Is Confirmed Bool>
    is_outgoing: <Transaction Outbound Bool>
    output_addresses: [<Address String>]
    tokens: <Tokens Including Fee Number>
    [transaction]: <Raw Transaction Hex String>
  }]
  [channels]: [{
    capacity: <Capacity Tokens Numberr>
    id: <Standard Format Short Channel Id Hex String>
    partner_public_key: <Peer Public Key Hex String>
    transaction_id: <Channel Transaction Id Hex String>
  }]
  [closed_channels]: [{
    capacity: <Closed Channel Capacity Tokens Number>
    [close_balance_spent_by]: <Channel Balance Output Spent By Tx Id String>
    [close_balance_vout]: <Channel Balance Close Tx Output Index Number>
    [close_confirm_height]: <Channel Close Confirmation Height Number>
    close_payments: [{
      is_outgoing: <Payment Is Outgoing Bool>
      is_paid: <Payment Is Claimed With Preimage Bool>
      is_pending: <Payment Resolution Is Pending Bool>
      is_refunded: <Payment Timed Out And Went Back To Payer Bool>
      [spent_by]: <Close Transaction Spent By Transaction Id Hex String>
      tokens: <Associated Tokens Number>
      transaction_id: <Transaction Id Hex String>
      transaction_vout: <Transaction Output Index Number>
    }]
    [close_transaction_id]: <Closing Transaction Id Hex String>
    final_local_balance: <Channel Close Final Local Balance Tokens Number>
    final_time_locked_balance: <Closed Channel Timelocked Tokens Number>
    [id]: <Closed Standard Format Channel Id String>
    is_breach_close: <Is Breach Close Bool>
    is_cooperative_close: <Is Cooperative Close Bool>
    is_funding_cancel: <Is Funding Cancelled Close Bool>
    is_local_force_close: <Is Local Force Close Bool>
    [is_partner_closed]: <Channel Was Closed By Channel Peer Bool>
    [is_partner_initiated]: <Channel Was Initiated By Channel Peer Bool>
    is_remote_force_close: <Is Remote Force Close Bool>
    partner_public_key: <Partner Public Key Hex String>
    transaction_id: <Channel Funding Transaction Id Hex String>
    transaction_vout: <Channel Funding Output Index Number>
  }]
  id: <Transaction Id Hex String>
  lnd: <Authenticated LND API Object>
  [pending_channels]: [{
    [close_transaction_id]: <Channel Closing Transaction Id String>
    is_active: <Channel Is Active Bool>
    is_closing: <Channel Is Closing Bool>
    is_opening: <Channel Is Opening Bool>
    is_partner_initiated: <Channel Partner Initiated Channel Bool>
    local_balance: <Channel Local Tokens Balance Number>
    local_reserve: <Channel Local Reserved Tokens Number>
    partner_public_key: <Channel Peer Public Key String>
    [pending_balance]: <Tokens Pending Recovery Number>
    [pending_payments]: [{
      is_incoming: <Payment Is Incoming Bool>
      timelock_height: <Payment Timelocked Until Height Number>
      tokens: <Payment Tokens Number>
      transaction_id: <Payment Transaction Id String>
      transaction_vout: <Payment Transaction Vout Number>
    }]
    received: <Tokens Received Number>
    [recovered_tokens]: <Tokens Recovered From Close Number>
    remote_balance: <Remote Tokens Balance Number>
    remote_reserve: <Channel Remote Reserved Tokens Number>
    sent: <Send Tokens Number>
    [timelock_expiration]: <Pending Tokens Block Height Timelock Number>
    [transaction_fee]: <Funding Transaction Fee Tokens Number>
    transaction_id: <Channel Funding Transaction Id String>
    transaction_vout: <Channel Funding Transaction Vout Number>
    [transaction_weight]: <Funding Transaction Weight Number>
  }]
}

@returns via cbk or Promise
{
  [chain_fee]: <Paid Transaction Fee Tokens Number>
  [received]: <Received Tokens Number>
  related_channels: [{
    action: <Channel Action String>
    [balance]: <Channel Balance Tokens Number>
    [capacity]: <Channel Capacity Value Number>
    [channel]: <Channel Standard Format Id String>
    [close_tx]: <Channel Closing Transaction Id Hex String>
    [open_tx]: <Channel Opening Transaction id Hex String>
    [timelock]: <Channel Funds Timelocked Until Height Number>
    with: <Channel Peer Public Key Hex String>
  }]
  [sent]: <Sent Tokens Number>
  [sent_to]: [<Sent to Address String>]
  [tx]: <Transaction Id Hex String>
}

getTransitRefund

Make a refund transaction for transit funds

{
  funded_tokens: <Tokens Sent to Transit Address Number>
  lnd: <Authenticated LND API Object>
  network: <Network Name String>
  refund_address: <Refund Coins to On Chain Address String>
  transit_address: <Transit On Chain Bech32 Address String>
  transit_key_index: <Transit Key Index Number>
  transit_public_key: <Transit Public Key Hex String>
  transaction_id: <Transaction Id Hex String>
  transaction_vout: <Transaction Output Index Number>
}

@returns via cbk or Promise
{
  refund: <Fully Signed Refund Transaction Hex String>
}

reserveTransitFunds

Get on-chain funding and a refund

{
  ask: <Ask Function>
  lnd: <Authenticated LND API Object>
  logger: <Winston Logger Object>
  [rate]: <Chain Fee Rate Tokens Per VByte Number>
  tokens: <Fund Tokens Number>
}

@returns via cbk or Promise
{
  address: <Transit Address String>
  id: <Transaction Id Hex String>
  index: <Transit Public Key Index Number>
  [inputs]: [{
    [lock_expires_at]: <UTXO Lock Expires At ISO 8601 Date String>
    [lock_id]: <UTXO Lock Id Hex String>
    transaction_id: <Transaction Hex Id String>
    transaction_vout: <Transaction Output Index Number>
  }]
  key: <Transit Key Public Key Hex String>
  output: <Transit Output Script Hex String>
  [psbt]: <Transaction As Finalized PSBT Hex String>
  refund: <Refund Transaction Hex String>
  script: <Transit Signing Witness Script Hex String>
  transaction: <Raw Transaction Hex String>
  vout: <Funds Reserved At Output Index Number>
}

updateChannelFee

Update the fee for an individual channel

{
  [base_fee_mtokens]: <Base Fee Millitokens String>
  [cltv_delta]: <CLTV Delta to Use Number>
  fee_rate: <Fee Rate Number>
  from: <Local Node Public Key Hex String>
  lnd: <Authenticated LND API Object>
  [max_htlc_mtokens]: <Maximum HTLC Millitokens to Forward String>
  [min_htlc_mtokens]: <Minimum HTLC Millitokens to Forward String>
  transaction_id: <Funding Transaction Id Hex String>
  transaction_vout: <Funding Transaction Output Index Number>
}

@returns via cbk or Promise

waitForConnectedPeer

Wait for a peer to connect

{
  id: <Node Identity Public Key Hex String>
  lnd: <Authenticated LND API Object>
  [timeout]: <Timeout Milliseconds Number>
}

@returns via cbk or Promise

waitForPendingOpen

Wait for an incoming pending open channel matching specific criteria

{
  [capacity]: <Channel Capacity Tokens Number>
  interval: <Check Time Milliseconds Number>
  lnd: <Authenticated LND API Object>
  local_balance: <Starting Local Balance Number>
  partner_public_key: <Peer Public Key Hex String>
  times: <Total Check Times Number>
  transaction_id: <Transaction Id Hex String>
  transaction_vout: <Transaction Output Index Number>
}

@returns via cbk or Promise
{
  transaction_id: <Transaction Id Hex String>
  transaction_vout: <Transaction Output Index Number>
}