+ /// Create a signature for a transaction spending an HTLC or commitment transaction output
+ /// when our counterparty broadcast an old state.
+ ///
+ /// Justice transaction may claim multiples outputs at same time if timelock are similar.
+ /// It may be called multiples time for same output(s) if a fee-bump is needed with regards
+ /// to an upcoming timelock expiration.
+ ///
+ /// Witness_script is a revokable witness script as defined in BOLT3 for `to_local`/HTLC
+ /// outputs.
+ ///
+ /// Input index is a pointer towards outpoint spent, commited by sigs (BIP 143).
+ ///
+ /// Amount is value of the output spent by this input, committed by sigs (BIP 143).
+ ///
+ /// Per_commitment key is revocation secret such as provided by remote party while
+ /// revocating detected onchain transaction. It's not a _local_ secret key, therefore
+ /// it may cross interfaces, a node compromise won't allow to spend revoked output without
+ /// also compromissing revocation key.
+ //TODO: dry-up witness_script and pass pubkeys
+ fn sign_justice_transaction<T: secp256k1::Signing>(&self, justice_tx: &Transaction, input: usize, witness_script: &Script, amount: u64, per_commitment_key: &SecretKey, revocation_pubkey: &PublicKey, is_htlc: bool, secp_ctx: &Secp256k1<T>) -> Result<Signature, ()>;
+