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

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


The following commit(s) were added to refs/heads/main by this push:
     new 88fbeb0  Add support for bytes32 ser/deserialization
     new 7a7c2fb  Merge pull request #379 from atoulme/more_eth_json
88fbeb0 is described below

commit 88fbeb0ab4b2b108d660250e5302009ba7e6f31b
Author: Antoine Toulme <anto...@lunar-ocean.com>
AuthorDate: Sun Mar 13 23:48:46 2022 -0700

    Add support for bytes32 ser/deserialization
---
 .../java/org/apache/tuweni/eth/EthJsonModule.java  | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/eth/src/main/java/org/apache/tuweni/eth/EthJsonModule.java 
b/eth/src/main/java/org/apache/tuweni/eth/EthJsonModule.java
index 66ea82d..f6292d6 100644
--- a/eth/src/main/java/org/apache/tuweni/eth/EthJsonModule.java
+++ b/eth/src/main/java/org/apache/tuweni/eth/EthJsonModule.java
@@ -13,6 +13,7 @@
 package org.apache.tuweni.eth;
 
 import org.apache.tuweni.bytes.Bytes;
+import org.apache.tuweni.bytes.Bytes32;
 import org.apache.tuweni.crypto.SECP256K1;
 import org.apache.tuweni.units.bigints.UInt256;
 import org.apache.tuweni.units.ethereum.Gas;
@@ -80,6 +81,18 @@ public class EthJsonModule extends SimpleModule {
     }
   }
 
+  static class Bytes32Serializer extends StdSerializer<Bytes32> {
+
+    Bytes32Serializer() {
+      super(Bytes32.class);
+    }
+
+    @Override
+    public void serialize(Bytes32 value, JsonGenerator gen, SerializerProvider 
provider) throws IOException {
+      gen.writeString(value.toHexString());
+    }
+  }
+
   static class PublicKeySerializer extends StdSerializer<SECP256K1.PublicKey> {
 
     PublicKeySerializer() {
@@ -177,6 +190,18 @@ public class EthJsonModule extends SimpleModule {
     }
   }
 
+  static class Bytes32Deserializer extends StdDeserializer<Bytes32> {
+
+    Bytes32Deserializer() {
+      super(Bytes32.class);
+    }
+
+    @Override
+    public Bytes32 deserialize(JsonParser p, DeserializationContext ctxt) 
throws IOException {
+      return Bytes32.fromHexString(p.getValueAsString());
+    }
+  }
+
   static class UInt256Deserializer extends StdDeserializer<UInt256> {
 
     UInt256Deserializer() {
@@ -218,6 +243,7 @@ public class EthJsonModule extends SimpleModule {
     addSerializer(Address.class, new AddressSerializer());
     addKeySerializer(Address.class, new AddressKeySerializer());
     addSerializer(Bytes.class, new BytesSerializer());
+    addSerializer(Bytes32.class, new Bytes32Serializer());
     addSerializer(Gas.class, new GasSerializer());
     addSerializer(UInt256.class, new UInt256Serializer());
     addSerializer(Instant.class, new InstantSerializer());
@@ -229,6 +255,7 @@ public class EthJsonModule extends SimpleModule {
     addDeserializer(UInt256.class, new UInt256Deserializer());
     addKeyDeserializer(UInt256.class, new UInt256KeyDeserializer());
     addDeserializer(Bytes.class, new BytesDeserializer());
+    addDeserializer(Bytes32.class, new Bytes32Deserializer());
     addSerializer(SECP256K1.PublicKey.class, new PublicKeySerializer());
   }
 }

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

Reply via email to