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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
