mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 07:17:40 +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).
|
/// Per-channel data used to build transactions in conjunction with the per-commitment data (CommitmentTransaction).
|
||||||
/// The fields are organized by holder/counterparty.
|
/// The fields are organized by holder/counterparty.
|
||||||
///
|
///
|
||||||
|
|
Loading…
Add table
Reference in a new issue