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