Repository: LFDT-web3j/web3j (Java)

Issue:
Fix incompatibility with Geth 1.12.1 concerning yParity
# Fix incompatibility with Geth 1.12.1 concerning yParity

## Steps To Reproduce
mapping raw transactions to the org.web3j.protocol.core.methods.response.Transaction class fails because of the new yParity field

### Expected behavior
a working Transaction object

### Actual behavior
exception: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "yParity"

## Environment
- Web3j 4.10.2
- Java 17

## Additional context
the field yParity was recently introduced into Geth 1.12.1: 
https://github.com/ethereum/go-ethereum/issues/27727
https://github.com/ethereum/go-ethereum/pull/27882
https://github.com/ethereum/go-ethereum/releases/tag/v1.12.1





Fix (patch):
diff --git a/core/src/main/java/org/web3j/protocol/core/methods/response/EthBlock.java b/core/src/main/java/org/web3j/protocol/core/methods/response/EthBlock.java
index dae4a84ee..6013ada6e 100644
--- a/core/src/main/java/org/web3j/protocol/core/methods/response/EthBlock.java
+++ b/core/src/main/java/org/web3j/protocol/core/methods/response/EthBlock.java
@@ -673,6 +673,7 @@ public TransactionObject(
                 String r,
                 String s,
                 long v,
+                String yParity,
                 String type,
                 String maxFeePerGas,
                 String maxPriorityFeePerGas,
@@ -696,6 +697,7 @@ public TransactionObject(
                     r,
                     s,
                     v,
+                    yParity,
                     type,
                     maxFeePerGas,
                     maxPriorityFeePerGas,
diff --git a/core/src/main/java/org/web3j/protocol/core/methods/response/Transaction.java b/core/src/main/java/org/web3j/protocol/core/methods/response/Transaction.java
index 9a0d62ca1..a72d7e6c7 100644
--- a/core/src/main/java/org/web3j/protocol/core/methods/response/Transaction.java
+++ b/core/src/main/java/org/web3j/protocol/core/methods/response/Transaction.java
@@ -38,6 +38,7 @@ public class Transaction {
     private String r;
     private String s;
     private long v; // see https://github.com/web3j/web3j/issues/44
+    private String yParity;
     private String type;
     private String maxFeePerGas;
     private String maxPriorityFeePerGas;
@@ -111,6 +112,7 @@ public Transaction(
             String r,
             String s,
             long v,
+            String yParity,
             String type,
             String maxFeePerGas,
             String maxPriorityFeePerGas,
@@ -133,6 +135,7 @@ public Transaction(
         this.r = r;
         this.s = s;
         this.v = v;
+        this.yParity = yParity;
         this.type = type;
         this.maxFeePerGas = maxFeePerGas;
         this.maxPriorityFeePerGas = maxPriorityFeePerGas;
@@ -318,6 +321,14 @@ public void setV(Object v) {
     //        this.v = v;
     //    }
 
+    public String getyParity() {
+        return yParity;
+    }
+
+    public void setyParity(String yParity) {
+        this.yParity = yParity;
+    }
+
     public Long getChainId() {
         if (chainId != null) {
             return Numeric.decodeQuantity(chainId).longValue();
@@ -455,6 +466,11 @@ public boolean equals(Object o) {
         if (getR() != null ? !getR().equals(that.getR()) : that.getR() != null) {
             return false;
         }
+        if (getyParity() != null
+                ? !getyParity().equals(that.getyParity())
+                : that.getyParity() != null) {
+            return false;
+        }
         if (getType() != null ? !getType().equals(that.getType()) : that.getType() != null) {
             return false;
         }
@@ -500,6 +516,7 @@ public int hashCode() {
         result = 31 * result + (getR() != null ? getR().hashCode() : 0);
         result = 31 * result + (getS() != null ? getS().hashCode() : 0);
         result = 31 * result + BigInteger.valueOf(getV()).hashCode();
+        result = 31 * result + (getyParity() != null ? getyParity().hashCode() : 0);
         result = 31 * result + (getType() != null ? getType().hashCode() : 0);
         result = 31 * result + (getMaxFeePerGasRaw() != null ? getMaxFeePerGasRaw().hashCode() : 0);
         result =