Skip to content

Commit 47f1a81

Browse files
committed
[ETCM-980] restore json OptionNoneToNullSerializer
This reverts commit 357bc89 regarding OptionNoneToNullSerializer.
1 parent 911978b commit 47f1a81

File tree

5 files changed

+42
-1
lines changed

5 files changed

+42
-1
lines changed

src/main/scala/io/iohk/ethereum/jsonrpc/serialization/JsonSerializers.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import org.json4s.CustomSerializer
77
import org.json4s.DefaultFormats
88
import org.json4s.Extraction
99
import org.json4s.Formats
10+
import org.json4s.JNull
1011
import org.json4s.JString
1112

1213
import io.iohk.ethereum.domain.Address
@@ -15,7 +16,7 @@ import io.iohk.ethereum.testmode.EthTransactionResponse
1516

1617
object JsonSerializers {
1718
implicit val formats: Formats =
18-
DefaultFormats + UnformattedDataJsonSerializer + QuantitiesSerializer + AddressJsonSerializer + EthTransactionResponseSerializer
19+
DefaultFormats + UnformattedDataJsonSerializer + QuantitiesSerializer + OptionNoneToJNullSerializer + AddressJsonSerializer + EthTransactionResponseSerializer
1920

2021
object UnformattedDataJsonSerializer
2122
extends CustomSerializer[ByteString](_ =>
@@ -38,6 +39,14 @@ object JsonSerializers {
3839
)
3940
)
4041

42+
object OptionNoneToJNullSerializer
43+
extends CustomSerializer[Option[_]](formats =>
44+
(
45+
PartialFunction.empty,
46+
{ case None => JNull }
47+
)
48+
)
49+
4150
object AddressJsonSerializer
4251
extends CustomSerializer[Address](_ =>
4352
(

src/test/scala/io/iohk/ethereum/jsonrpc/JsonRpcControllerEthLegacyTransactionSpec.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import monix.eval.Task
88
import monix.execution.Scheduler.Implicits.global
99

1010
import org.bouncycastle.util.encoders.Hex
11+
import org.json4s.DefaultFormats
1112
import org.json4s.Extraction
13+
import org.json4s.Formats
1214
import org.json4s.JsonAST._
1315
import org.json4s.JsonDSL._
1416
import org.scalatest.concurrent.Eventually
@@ -27,6 +29,9 @@ import io.iohk.ethereum.jsonrpc.EthTxService._
2729
import io.iohk.ethereum.jsonrpc.EthUserService._
2830
import io.iohk.ethereum.jsonrpc.FilterManager.TxLog
2931
import io.iohk.ethereum.jsonrpc.PersonalService._
32+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.OptionNoneToJNullSerializer
33+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.QuantitiesSerializer
34+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.UnformattedDataJsonSerializer
3035
import io.iohk.ethereum.transactions.PendingTransactionsManager.PendingTransaction
3136

3237
// scalastyle:off magic.number
@@ -41,6 +46,9 @@ class JsonRpcControllerEthLegacyTransactionSpec
4146
with LongPatience
4247
with Eventually {
4348

49+
implicit val formats: Formats = DefaultFormats.preservingEmptyValues + OptionNoneToJNullSerializer +
50+
QuantitiesSerializer + UnformattedDataJsonSerializer
51+
4452
it should "handle eth_getTransactionByBlockHashAndIndex request" in new JsonRpcControllerFixture {
4553
val blockToRequest = Block(Fixtures.Blocks.Block3125369.header, Fixtures.Blocks.Block3125369.body)
4654
val txIndexToRequest = blockToRequest.body.transactionList.size / 2

src/test/scala/io/iohk/ethereum/jsonrpc/JsonRpcControllerEthSpec.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import monix.eval.Task
88
import monix.execution.Scheduler.Implicits.global
99

1010
import org.bouncycastle.util.encoders.Hex
11+
import org.json4s.DefaultFormats
1112
import org.json4s.Extraction
13+
import org.json4s.Formats
1214
import org.json4s.JsonAST._
1315
import org.json4s.JsonDSL._
1416
import org.scalatest.concurrent.Eventually
@@ -38,6 +40,9 @@ import io.iohk.ethereum.jsonrpc.ProofService.GetProofResponse
3840
import io.iohk.ethereum.jsonrpc.ProofService.ProofAccount
3941
import io.iohk.ethereum.jsonrpc.ProofService.StorageProofKey
4042
import io.iohk.ethereum.jsonrpc.ProofService.StorageValueProof
43+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.OptionNoneToJNullSerializer
44+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.QuantitiesSerializer
45+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.UnformattedDataJsonSerializer
4146
import io.iohk.ethereum.ledger.InMemoryWorldStateProxy
4247
import io.iohk.ethereum.ommers.OmmersPool
4348
import io.iohk.ethereum.ommers.OmmersPool.Ommers
@@ -56,6 +61,9 @@ class JsonRpcControllerEthSpec
5661
with LongPatience
5762
with Eventually {
5863

64+
implicit val formats: Formats = DefaultFormats.preservingEmptyValues + OptionNoneToJNullSerializer +
65+
QuantitiesSerializer + UnformattedDataJsonSerializer
66+
5967
it should "eth_protocolVersion" in new JsonRpcControllerFixture {
6068
val rpcRequest = newJsonRpcRequest("eth_protocolVersion")
6169
val response = jsonRpcController.handleRequest(rpcRequest).runSyncUnsafe()

src/test/scala/io/iohk/ethereum/jsonrpc/JsonRpcControllerPersonalSpec.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import monix.eval.Task
1010
import monix.execution.Scheduler.Implicits.global
1111

1212
import org.bouncycastle.util.encoders.Hex
13+
import org.json4s.DefaultFormats
14+
import org.json4s.Formats
1315
import org.json4s.JsonAST._
1416
import org.json4s.JsonDSL._
1517
import org.scalatest.concurrent.Eventually
@@ -22,6 +24,9 @@ import io.iohk.ethereum.LongPatience
2224
import io.iohk.ethereum.WithActorSystemShutDown
2325
import io.iohk.ethereum.domain._
2426
import io.iohk.ethereum.jsonrpc.PersonalService._
27+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.OptionNoneToJNullSerializer
28+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.QuantitiesSerializer
29+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.UnformattedDataJsonSerializer
2530

2631
class JsonRpcControllerPersonalSpec
2732
extends TestKit(ActorSystem("JsonRpcControllerPersonalSpec_System"))
@@ -34,6 +39,9 @@ class JsonRpcControllerPersonalSpec
3439
with LongPatience
3540
with Eventually {
3641

42+
implicit val formats: Formats = DefaultFormats.preservingEmptyValues + OptionNoneToJNullSerializer +
43+
QuantitiesSerializer + UnformattedDataJsonSerializer
44+
3745
it should "personal_importRawKey" in new JsonRpcControllerFixture {
3846
val key = "7a44789ed3cd85861c0bbf9693c7e1de1862dd4396c390147ecf1275099c6e6f"
3947
val keyBytes = ByteString(Hex.decode(key))

src/test/scala/io/iohk/ethereum/jsonrpc/JsonRpcControllerSpec.scala

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import monix.execution.Scheduler.Implicits.global
88

99
import scala.concurrent.duration._
1010

11+
import org.json4s.DefaultFormats
12+
import org.json4s.Formats
1113
import org.json4s.JArray
1214
import org.json4s.JObject
1315
import org.json4s.JString
@@ -26,6 +28,9 @@ import io.iohk.ethereum.jsonrpc.DebugService.ListPeersInfoResponse
2628
import io.iohk.ethereum.jsonrpc.NetService.ListeningResponse
2729
import io.iohk.ethereum.jsonrpc.NetService.PeerCountResponse
2830
import io.iohk.ethereum.jsonrpc.NetService.VersionResponse
31+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.OptionNoneToJNullSerializer
32+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.QuantitiesSerializer
33+
import io.iohk.ethereum.jsonrpc.serialization.JsonSerializers.UnformattedDataJsonSerializer
2934
import io.iohk.ethereum.jsonrpc.server.controllers.JsonRpcBaseController.JsonRpcConfig
3035
import io.iohk.ethereum.jsonrpc.server.http.JsonRpcHttpServer
3136
import io.iohk.ethereum.jsonrpc.server.ipc.JsonRpcIpcServer
@@ -44,6 +49,9 @@ class JsonRpcControllerSpec
4449
with LongPatience
4550
with Eventually {
4651

52+
implicit val formats: Formats = DefaultFormats.preservingEmptyValues + OptionNoneToJNullSerializer +
53+
QuantitiesSerializer + UnformattedDataJsonSerializer
54+
4755
"JsonRpcController" should "handle valid sha3 request" in new JsonRpcControllerFixture {
4856
val rpcRequest = newJsonRpcRequest("web3_sha3", JString("0x1234") :: Nil)
4957

0 commit comments

Comments
 (0)