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