@@ -2,7 +2,8 @@ package io.iohk.ethereum.jsonrpc
22
33import akka .util .ByteString
44import io .iohk .ethereum .jsonrpc .EthService ._
5- import io .iohk .ethereum .jsonrpc .JsonRpcController .{JsonDecoder , JsonEncoder }
5+ import io .iohk .ethereum .jsonrpc .JsonRpcController .JsonDecoder .NoParamsDecoder
6+ import io .iohk .ethereum .jsonrpc .JsonRpcController .{Codec , JsonDecoder , JsonEncoder }
67import io .iohk .ethereum .jsonrpc .JsonRpcErrors .InvalidParams
78import io .iohk .ethereum .jsonrpc .PersonalService .{SendTransactionRequest , SendTransactionResponse , SignRequest }
89import org .json4s .{Extraction , JsonAST }
@@ -12,28 +13,17 @@ import org.json4s.JsonDSL._
1213// scalastyle:off number.of.methods
1314object EthJsonMethodsImplicits extends JsonMethodsImplicits {
1415
15- implicit val eth_protocolVersion = new JsonDecoder [ProtocolVersionRequest ] with JsonEncoder [ProtocolVersionResponse ] {
16- def decodeJson (params : Option [JArray ]): Either [JsonRpcError , ProtocolVersionRequest ] = Right (
17- ProtocolVersionRequest ()
18- )
19-
16+ implicit val eth_protocolVersion = new NoParamsDecoder (ProtocolVersionRequest ())
17+ with JsonEncoder [ProtocolVersionResponse ] {
2018 def encodeJson (t : ProtocolVersionResponse ): JValue = t.value
2119 }
2220
23- implicit val eth_chainId = new JsonDecoder [ChainIdRequest ] with JsonEncoder [ChainIdResponse ] {
24- def decodeJson (params : Option [JArray ]) = params match {
25- case None | Some (JArray (Nil )) => Right (ChainIdRequest ())
26- case other => Left (InvalidParams (" eth_chainId method does not take params" ))
27- }
28-
21+ implicit val eth_chainId = new NoParamsDecoder (ChainIdRequest ()) with JsonEncoder [ChainIdResponse ] {
2922 def encodeJson (t : ChainIdResponse ) = encodeAsHex(t.value)
3023 }
3124
32- implicit val eth_blockNumber = new JsonDecoder [BestBlockNumberRequest ] with JsonEncoder [BestBlockNumberResponse ] {
33- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , BestBlockNumberRequest ] = Right (
34- BestBlockNumberRequest ()
35- )
36-
25+ implicit val eth_blockNumber = new NoParamsDecoder (BestBlockNumberRequest ())
26+ with JsonEncoder [BestBlockNumberResponse ] {
3727 override def encodeJson (t : BestBlockNumberResponse ): JValue = Extraction .decompose(t.bestBlockNumber)
3828 }
3929
@@ -53,50 +43,25 @@ object EthJsonMethodsImplicits extends JsonMethodsImplicits {
5343 override def encodeJson (t : SubmitHashRateResponse ): JValue = JBool (t.success)
5444 }
5545
56- implicit val eth_gasPrice = new JsonDecoder [GetGasPriceRequest ] with JsonEncoder [GetGasPriceResponse ] {
57- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , GetGasPriceRequest ] = params match {
58- case None | Some (JArray (Nil )) => Right (GetGasPriceRequest ())
59- case Some (_) => Left (InvalidParams ())
60- }
61-
46+ implicit val eth_gasPrice = new NoParamsDecoder (GetGasPriceRequest ()) with JsonEncoder [GetGasPriceResponse ] {
6247 override def encodeJson (t : GetGasPriceResponse ): JValue = encodeAsHex(t.price)
6348 }
6449
65- implicit val eth_mining = new JsonDecoder [GetMiningRequest ] with JsonEncoder [GetMiningResponse ] {
66- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , GetMiningRequest ] = params match {
67- case None | Some (JArray (Nil )) => Right (GetMiningRequest ())
68- case Some (_) => Left (InvalidParams ())
69- }
70-
50+ implicit val eth_mining = new NoParamsDecoder (GetMiningRequest ()) with JsonEncoder [GetMiningResponse ] {
7151 override def encodeJson (t : GetMiningResponse ): JValue = JBool (t.isMining)
7252 }
7353
74- implicit val eth_hashrate = new JsonDecoder [GetHashRateRequest ] with JsonEncoder [GetHashRateResponse ] {
75- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , GetHashRateRequest ] = params match {
76- case None | Some (JArray (Nil )) => Right (GetHashRateRequest ())
77- case Some (_) => Left (InvalidParams ())
78- }
79-
54+ implicit val eth_hashrate = new NoParamsDecoder (GetHashRateRequest ()) with JsonEncoder [GetHashRateResponse ] {
8055 override def encodeJson (t : GetHashRateResponse ): JsonAST .JValue = encodeAsHex(t.hashRate)
8156 }
8257
83- implicit val eth_coinbase = new JsonDecoder [GetCoinbaseRequest ] with JsonEncoder [GetCoinbaseResponse ] {
84- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , GetCoinbaseRequest ] = params match {
85- case None | Some (JArray (Nil )) => Right (GetCoinbaseRequest ())
86- case Some (_) => Left (InvalidParams ())
87- }
88-
58+ implicit val eth_coinbase = new NoParamsDecoder (GetCoinbaseRequest ()) with JsonEncoder [GetCoinbaseResponse ] {
8959 override def encodeJson (t : GetCoinbaseResponse ): JsonAST .JValue = {
9060 encodeAsHex(t.address.bytes)
9161 }
9262 }
9363
94- implicit val eth_getWork = new JsonDecoder [GetWorkRequest ] with JsonEncoder [GetWorkResponse ] {
95- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , GetWorkRequest ] = params match {
96- case None | Some (JArray (Nil )) => Right (GetWorkRequest ())
97- case Some (_) => Left (InvalidParams ())
98- }
99-
64+ implicit val eth_getWork = new NoParamsDecoder (GetWorkRequest ()) with JsonEncoder [GetWorkResponse ] {
10065 override def encodeJson (t : GetWorkResponse ): JsonAST .JValue = {
10166 val powHeaderHash = encodeAsHex(t.powHeaderHash)
10267 val dagSeed = encodeAsHex(t.dagSeed)
@@ -267,9 +232,7 @@ object EthJsonMethodsImplicits extends JsonMethodsImplicits {
267232 }
268233 }
269234
270- implicit val eth_syncing = new JsonDecoder [SyncingRequest ] with JsonEncoder [SyncingResponse ] {
271- def decodeJson (params : Option [JArray ]): Either [JsonRpcError , SyncingRequest ] = Right (SyncingRequest ())
272-
235+ implicit val eth_syncing = new NoParamsDecoder (SyncingRequest ()) with JsonEncoder [SyncingResponse ] {
273236 def encodeJson (t : SyncingResponse ): JValue = t.syncStatus match {
274237 case Some (syncStatus) => Extraction .decompose(syncStatus)
275238 case None => false
@@ -445,15 +408,9 @@ object EthJsonMethodsImplicits extends JsonMethodsImplicits {
445408 }
446409 }
447410
448- implicit val eth_newBlockFilter = new JsonDecoder [NewBlockFilterRequest ] {
449- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , NewBlockFilterRequest ] =
450- Right (NewBlockFilterRequest ())
451- }
411+ implicit val eth_newBlockFilter = new NoParamsDecoder (NewBlockFilterRequest ()) {}
452412
453- implicit val eth_newPendingTransactionFilter = new JsonDecoder [NewPendingTransactionFilterRequest ] {
454- override def decodeJson (params : Option [JArray ]): Either [JsonRpcError , NewPendingTransactionFilterRequest ] =
455- Right (NewPendingTransactionFilterRequest ())
456- }
413+ implicit val eth_newPendingTransactionFilter = new NoParamsDecoder (NewPendingTransactionFilterRequest ()) {}
457414
458415 implicit val eth_uninstallFilter = new JsonDecoder [UninstallFilterRequest ] with JsonEncoder [UninstallFilterResponse ] {
459416 def decodeJson (params : Option [JArray ]): Either [JsonRpcError , UninstallFilterRequest ] =
0 commit comments