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