You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuweni.apache.org by to...@apache.org on 2020/05/30 06:18:58 UTC

[incubator-tuweni] 04/07: BlockHeader serialization fix for block with no parent hash

This is an automated email from the ASF dual-hosted git repository.

toulmean pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-tuweni.git

commit dfee946dda654099c2530aa8cf420a5723b67e53
Author: Antoine Toulme <an...@lunar-ocean.com>
AuthorDate: Fri May 29 23:08:57 2020 -0700

    BlockHeader serialization fix for block with no parent hash
---
 eth/src/main/java/org/apache/tuweni/eth/BlockHeader.java   | 14 ++++++++------
 .../test/java/org/apache/tuweni/eth/BlockHeaderTest.java   |  3 ++-
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/eth/src/main/java/org/apache/tuweni/eth/BlockHeader.java b/eth/src/main/java/org/apache/tuweni/eth/BlockHeader.java
index 87fc115..9809874 100644
--- a/eth/src/main/java/org/apache/tuweni/eth/BlockHeader.java
+++ b/eth/src/main/java/org/apache/tuweni/eth/BlockHeader.java
@@ -15,10 +15,12 @@ package org.apache.tuweni.eth;
 import static java.util.Objects.requireNonNull;
 
 import org.apache.tuweni.bytes.Bytes;
+import org.apache.tuweni.bytes.Bytes32;
 import org.apache.tuweni.rlp.RLP;
 import org.apache.tuweni.rlp.RLPReader;
 import org.apache.tuweni.rlp.RLPWriter;
 import org.apache.tuweni.units.bigints.UInt256;
+import org.apache.tuweni.units.bigints.UInt64;
 import org.apache.tuweni.units.ethereum.Gas;
 
 import java.time.Instant;
@@ -66,7 +68,7 @@ public final class BlockHeader {
         Instant.ofEpochSecond(reader.readLong()),
         reader.readValue(),
         Hash.fromBytes(reader.readValue()),
-        reader.readValue());
+        UInt64.fromBytes(reader.readValue()));
   }
 
   @Nullable
@@ -84,7 +86,7 @@ public final class BlockHeader {
   private final Instant timestamp;
   private final Bytes extraData;
   private final Hash mixHash;
-  private final Bytes nonce;
+  private final UInt64 nonce;
   private Hash hash;
 
   /**
@@ -121,7 +123,7 @@ public final class BlockHeader {
       Instant timestamp,
       Bytes extraData,
       Hash mixHash,
-      Bytes nonce) {
+      UInt64 nonce) {
     requireNonNull(ommersHash);
     requireNonNull(coinbase);
     requireNonNull(stateRoot);
@@ -225,7 +227,7 @@ public final class BlockHeader {
    * @return the nonce of the block.
    */
   @JsonGetter("nonce")
-  public Bytes getNonce() {
+  public UInt64 getNonce() {
     return nonce;
   }
 
@@ -382,7 +384,7 @@ public final class BlockHeader {
    * @param writer The RLP writer.
    */
   void writeTo(RLPWriter writer) {
-    writer.writeValue((parentHash != null) ? parentHash : Bytes.EMPTY);
+    writer.writeValue((parentHash != null) ? parentHash : Bytes32.wrap(new byte[32]));
     writer.writeValue(ommersHash);
     writer.writeValue(coinbase);
     writer.writeValue(stateRoot);
@@ -396,6 +398,6 @@ public final class BlockHeader {
     writer.writeLong(timestamp.getEpochSecond());
     writer.writeValue(extraData);
     writer.writeValue(mixHash);
-    writer.writeValue(nonce);
+    writer.writeValue(nonce.toBytes());
   }
 }
diff --git a/eth/src/test/java/org/apache/tuweni/eth/BlockHeaderTest.java b/eth/src/test/java/org/apache/tuweni/eth/BlockHeaderTest.java
index 9cd6753..5739b73 100644
--- a/eth/src/test/java/org/apache/tuweni/eth/BlockHeaderTest.java
+++ b/eth/src/test/java/org/apache/tuweni/eth/BlockHeaderTest.java
@@ -17,6 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import org.apache.tuweni.bytes.Bytes;
 import org.apache.tuweni.junit.BouncyCastleExtension;
 import org.apache.tuweni.units.bigints.UInt256;
+import org.apache.tuweni.units.bigints.UInt64;
 import org.apache.tuweni.units.ethereum.Gas;
 
 import java.time.Instant;
@@ -44,7 +45,7 @@ class BlockHeaderTest {
         Instant.now().truncatedTo(ChronoUnit.SECONDS),
         Bytes.random(22),
         Hash.fromBytes(Bytes.random(32)),
-        Bytes.random(8));
+        UInt64.ONE);
   }
 
   @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tuweni.apache.org
For additional commands, e-mail: commits-help@tuweni.apache.org