mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-24 23:08:36 +01:00
Add get_anchor_script
This is a script builder to generate anchor output ones. They can be satisfied either by a signature for the committed funding pubkey or anyone after CSV delay expiration. This is used at anchor output addition while generating commitment transaction.
This commit is contained in:
parent
4368b56eb6
commit
97c29cfd34
1 changed files with 17 additions and 0 deletions
|
@ -564,6 +564,23 @@ pub fn build_htlc_transaction(commitment_txid: &Txid, feerate_per_kw: u32, conte
|
|||
}
|
||||
}
|
||||
|
||||
/// Gets the witnessScript for an anchor output from the funding public key.
|
||||
/// The witness in the spending input must be:
|
||||
/// <BIP 143 funding_signature>
|
||||
/// After 16 blocks of confirmation, an alternative satisfying witness could be:
|
||||
/// <>
|
||||
#[inline]
|
||||
pub(crate) fn get_anchor_redeemscript(funding_pubkey: &PublicKey) -> Script {
|
||||
Builder::new().push_slice(&funding_pubkey.serialize()[..])
|
||||
.push_opcode(opcodes::all::OP_CHECKSIG)
|
||||
.push_opcode(opcodes::all::OP_IFDUP)
|
||||
.push_opcode(opcodes::all::OP_NOTIF)
|
||||
.push_int(16)
|
||||
.push_opcode(opcodes::all::OP_CSV)
|
||||
.push_opcode(opcodes::all::OP_ENDIF)
|
||||
.into_script()
|
||||
}
|
||||
|
||||
/// Per-channel data used to build transactions in conjunction with the per-commitment data (CommitmentTransaction).
|
||||
/// The fields are organized by holder/counterparty.
|
||||
///
|
||||
|
|
Loading…
Add table
Reference in a new issue