Skip to content

Commit 4a6c104

Browse files
committed
f - grind_signatures
1 parent ce1c39b commit 4a6c104

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lightning/src/ln/funding.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,13 @@ impl FundingTxInput {
143143
/// [`TxIn::sequence`]: bitcoin::TxIn::sequence
144144
/// [`set_sequence`]: Self::set_sequence
145145
pub fn new_p2wpkh(prevtx: Transaction, vout: u32) -> Result<Self, ()> {
146-
let witness_weight = Weight::from_wu(P2WPKH_WITNESS_WEIGHT);
146+
let witness_weight = Weight::from_wu(P2WPKH_WITNESS_WEIGHT)
147+
- if cfg!(feature = "grind_signatures") {
148+
// Guarantees a low R signature
149+
Weight::from_wu(1)
150+
} else {
151+
Weight::ZERO
152+
};
147153
FundingTxInput::new(prevtx, vout, witness_weight, Script::is_p2wpkh)
148154
}
149155

lightning/src/util/test_utils.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2226,10 +2226,16 @@ impl TestWalletSource {
22262226
utxo.output.value,
22272227
EcdsaSighashType::All,
22282228
)?;
2229+
#[cfg(not(feature = "grind_signatures"))]
22292230
let signature = self.secp.sign_ecdsa(
22302231
&secp256k1::Message::from_digest(sighash.to_byte_array()),
22312232
&self.secret_key,
22322233
);
2234+
#[cfg(feature = "grind_signatures")]
2235+
let signature = self.secp.sign_ecdsa_low_r(
2236+
&secp256k1::Message::from_digest(sighash.to_byte_array()),
2237+
&self.secret_key,
2238+
);
22332239
let bitcoin_sig =
22342240
bitcoin::ecdsa::Signature { signature, sighash_type: EcdsaSighashType::All };
22352241
tx.input[i].witness =

0 commit comments

Comments
 (0)