From ec16f1d292cef10a7c24da7f3b9c196df1d4ee79 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Fri, 19 Jan 2024 17:21:27 +0100 Subject: [PATCH] chore: flip if else arms for eip155 check --- crates/primitives/src/transaction/signature.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/primitives/src/transaction/signature.rs b/crates/primitives/src/transaction/signature.rs index 9df9a29535d1..d92a38f7a483 100644 --- a/crates/primitives/src/transaction/signature.rs +++ b/crates/primitives/src/transaction/signature.rs @@ -101,18 +101,18 @@ impl Signature { let v = u64::decode(buf)?; let r = Decodable::decode(buf)?; let s = Decodable::decode(buf)?; - if v >= 35 { - // EIP-155: v = {0, 1} + CHAIN_ID * 2 + 35 - let odd_y_parity = ((v - 35) % 2) != 0; - let chain_id = (v - 35) >> 1; - Ok((Signature { r, s, odd_y_parity }, Some(chain_id))) - } else { + if v < 35 { // non-EIP-155 legacy scheme, v = 27 for even y-parity, v = 28 for odd y-parity if v != 27 && v != 28 { return Err(RlpError::Custom("invalid Ethereum signature (V is not 27 or 28)")) } let odd_y_parity = v == 28; Ok((Signature { r, s, odd_y_parity }, None)) + } else { + // EIP-155: v = {0, 1} + CHAIN_ID * 2 + 35 + let odd_y_parity = ((v - 35) % 2) != 0; + let chain_id = (v - 35) >> 1; + Ok((Signature { r, s, odd_y_parity }, Some(chain_id))) } }