UNPKG

@node-dlc/core

Version:
47 lines (46 loc) 2.03 kB
/// <reference types="node" /> import { Value } from '@node-dlc/bitcoin'; import { HtlcDirection } from './HtlcDirection'; /** * An HTLC (hashed time-locked contract) is part of the transfer * layer of the Lightning network. HTLCs are used to trustlessly offer * a payment to a counterparty if they are able to provide a preimage * of the hash. The offeror can claw back funds after an expiration * period (absolute lock time) if the recipient is unable to provide * the preimage for the contract. HTLCs are used in Lightning for both * initiating payments to a peer directly and as part of forwarding * payments. */ export declare class Htlc { readonly htlcId: bigint; readonly direction: HtlcDirection; readonly value: Value; readonly cltvExpiry: number; readonly paymentHash: Buffer; /** * The preimage of the payment hash using SHA256. */ paymentPreimage: Buffer; /** * Constructs an HTLC with associated information * @param htlcId Identifier for the HTLC is a counter maintained * per-channel, per-peer. It starts at zero and is incremented when * an HTLC is offered. This value is used when sending channel * related messages to disambiguate HTLCs that may share the same * preimage. * * @param direction Direction, from your node's perspective, that * indicates if the HTLC was offered or received. * * @param value The value of the HTLC in millisatoshi. * * @param cltvExpiry The absolutely blocktime expiry of the HTLC. * The value must be under 500,000,000 to ensure it is a block-based * locktime. After this timeout has expired, the offeror can perform * a forced resolution on-chain. * * @param paymentHash The 32-byte hash of the preimage. Knowledge of * the preimage is irrevocable and considers payment complete. */ constructor(htlcId: bigint, direction: HtlcDirection, value: Value, cltvExpiry: number, paymentHash: Buffer, paymentPreimage?: Buffer); }