Class SpendableOutputDescriptor.DelayedPaymentOutput

  • Enclosing class:
    SpendableOutputDescriptor

    public static final class SpendableOutputDescriptor.DelayedPaymentOutput
    extends SpendableOutputDescriptor
    An output to a P2WSH script which can be spent with a single signature after a CSV delay. The witness in the spending input should be: (MINIMALIF standard rule) Note that the nSequence field in the spending input must be set to to_self_delay (which means the transaction is not broadcastable until at least to_self_delay blocks after the outpoint confirms). These are generally the result of a \"revocable\" output to us, spendable only by us unless it is an output from an old state which we broadcast (which should never happen). To derive the delayed_payment key which is used to sign for this input, you must pass the holder delayed_payment_base_key (ie the private key which corresponds to the pubkey in Sign::pubkeys().delayed_payment_basepoint) and the provided per_commitment_point to chan_utils::derive_private_key. The public key can be generated without the secret key using chan_utils::derive_public_key and only the delayed_payment_basepoint which appears in Sign::pubkeys(). To derive the revocation_pubkey provided here (which is used in the witness script generation), you must pass the counterparty revocation_basepoint (which appears in the call to Sign::ready_channel) and the provided per_commitment point to chan_utils::derive_public_revocation_key. The witness script which is hashed and included in the output script_pubkey may be regenerated by passing the revocation_pubkey (derived as above), our delayed_payment pubkey (derived as above), and the to_self_delay contained here to chan_utils::get_revokeable_redeemscript.