Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rustfmt: Run on util/* (2/2) #3323

Open
wants to merge 20 commits into
base: main
Choose a base branch
from

Conversation

tnull
Copy link
Contributor

@tnull tnull commented Sep 18, 2024

This is PR 2/2, based on #3324.

The diff is a bit larger for this one, but AFAICT the changes look mostly reasonable (besides the oddity commented below).

FWIW, I had a look at currently open inflight PRs and the conflicts should be minimal if I'm not overlooking something.

Copy link

codecov bot commented Sep 18, 2024

Codecov Report

Attention: Patch coverage is 82.14286% with 195 lines in your changes missing coverage. Please review.

Project coverage is 89.56%. Comparing base (bc1931b) to head (572f48c).

Files with missing lines Patch % Lines
lightning/src/util/test_channel_signer.rs 48.17% 8 Missing and 77 partials ⚠️
lightning/src/util/test_utils.rs 84.01% 68 Missing and 2 partials ⚠️
lightning/src/util/ser.rs 74.24% 17 Missing ⚠️
lightning/src/util/ser_macros.rs 91.59% 9 Missing and 1 partial ⚠️
lightning/src/util/wakers.rs 93.00% 5 Missing and 2 partials ⚠️
lightning/src/util/transaction_utils.rs 95.71% 3 Missing and 3 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3323      +/-   ##
==========================================
- Coverage   89.62%   89.56%   -0.07%     
==========================================
  Files         127      127              
  Lines      103517   104124     +607     
  Branches   103517   104124     +607     
==========================================
+ Hits        92780    93257     +477     
- Misses       8041     8116      +75     
- Partials     2696     2751      +55     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@tnull tnull force-pushed the 2024-09-rustfmt-util branch 2 times, most recently from 6c4dd83 to 9b991df Compare September 18, 2024 08:42
@TheBlueMatt
Copy link
Collaborator

Ugh, can we split this? 42 commits in one PR is just a lot...

@tnull
Copy link
Contributor Author

tnull commented Sep 18, 2024

Ugh, can we split this? 42 commits in one PR is just a lot...

Alright, happy to if you prefer (although at least half of these commits are one-line diffs). Now split out ~the first half of commits to #3324.

@tnull tnull changed the title rustfmt: Run on util/* rustfmt: Run on util/* (2/2) Sep 18, 2024
@tnull tnull force-pushed the 2024-09-rustfmt-util branch 2 times, most recently from 60ae0af to e2dcdc7 Compare September 19, 2024 08:10
@tnull
Copy link
Contributor Author

tnull commented Sep 19, 2024

Rebased after #3327 landed.

@tnull
Copy link
Contributor Author

tnull commented Oct 1, 2024

Rebased after #3324 landed.

@tnull
Copy link
Contributor Author

tnull commented Oct 7, 2024

Rebased to resolve minor conflicts.

@tnull
Copy link
Contributor Author

tnull commented Nov 5, 2024

Rebased once more to resolve minor conflicts.

Any additional comments here after we landed the split-out commits in #3324, @TheBlueMatt ?

@tnull
Copy link
Contributor Author

tnull commented Nov 18, 2024

Rebased once more to resolve minor conflicts.

Copy link
Collaborator

@TheBlueMatt TheBlueMatt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial comments. Maybe could have been split across PRs.

($last_type: expr, $type: expr, $fieldty: tt) => {
if let Some(t) = $last_type {
#[allow(unused_comparisons)] // Note that $type may be 0 making the following comparison always false
#[allow(unused_comparisons)]
// Note that $type may be 0 making the following comparison always false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should go above the allow, no?

$crate::_get_varint_length_prefixed_tlv_length!(
$len,
$type,
$crate::util::ser::WithoutLength(&$field),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be pulled out into a var?

$crate::_get_varint_length_prefixed_tlv_length!(
$len,
$type,
$field.map(|f| $encoding(f)),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same.

#[allow(unused_comparisons)] // Note that $type may be 0 making the second comparison always false
let invalid_order = ($last_seen_type.is_none() || $last_seen_type.unwrap() < $type) && $typ.0 > $type;
#[allow(unused_comparisons)]
// Note that $type may be 0 making the second comparison always false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

#[allow(unused_comparisons)] // Note that $type may be 0 making the second comparison always false
let invalid_order = ($last_seen_type.is_none() || $last_seen_type.unwrap() < $type) && $typ.0 > $type;
#[allow(unused_comparisons)]
// Note that $type may be 0 making the second comparison always false
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same

).unwrap()[..]) {
} else { panic!(); }
if let Err(DecodeError::InvalidValue) = tlv_reader(
&<Vec<u8>>::from_hex(concat!("0100", "0304deadbeef", "0208deadbeef1badbeef")).unwrap()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of these (across these tests) could be cleaned up a good bit if the vec+slice were pulled out or the tlv_reader return value were pulled out.

do_test!(concat!("01", "08", "0100000000000000"), Some(72057594037927936), None, None, None);
do_test!(concat!("02", "08", "0000000000000226"), None, Some((0 << 30) | (0 << 5) | (550 << 0)), None, None);
do_test!(
concat!("01", "08", "0100000000000000"),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

}

fn sign_counterparty_htlc_transaction(&self, htlc_tx: &Transaction, input: usize, amount: u64, per_commitment_point: &PublicKey, htlc: &HTLCOutputInCommitment, secp_ctx: &Secp256k1<secp256k1::All>) -> Result<Signature, ()> {
Ok(EcdsaChannelSigner::sign_holder_htlc_transaction(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be less verbose if we use self.inner.sign_holder_htlc_transaction?

Comment on lines +59 to +71
weight_with_change += (VarInt(tx.output.len() as u64 + 1).size()
- VarInt(tx.output.len() as u64).size()) as i64
* 4;
// When calculating weight, add two for the flag bytes
let change_value: i64 = (input_value - output_value).to_sat() as i64 - weight_with_change * feerate_sat_per_1000_weight as i64 / 1000;
let change_value: i64 = (input_value - output_value).to_sat() as i64
- weight_with_change * feerate_sat_per_1000_weight as i64 / 1000;
if change_value >= dust_value.to_sat() as i64 {
change_output.value = Amount::from_sat(change_value as u64);
tx.output.push(change_output);
Ok(weight_with_change as u64)
} else if (input_value - output_value).to_sat() as i64 - (starting_weight as i64) * feerate_sat_per_1000_weight as i64 / 1000 < 0 {
} else if (input_value - output_value).to_sat() as i64
- (starting_weight as i64) * feerate_sat_per_1000_weight as i64 / 1000
< 0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could probably use some new variables here.

Comment on lines +224 to +234
version: Version::TWO,
lock_time: LockTime::ZERO,
input: Vec::new(),
output: vec![TxOut { script_pubkey: ScriptBuf::new(), value: Amount::from_sat(1000) }],
};
assert!(maybe_add_change_output(
&mut tx,
Amount::from_sat(21_000_000_0000_0001),
0,
253,
ScriptBuf::new()
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do these want new variables (similarly below)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants