RPC Module for Relays (#80)

* Test defining an RPC API

* Add wrapper clients for the RPC API

* Implement most Ethereum RPCs

Does not include RPCs that require the bridge contract.

* Implement a few of the Substrate RPCs

Still missing proper error handling, as well as decoding responses from the
Substrate node.

* Make error handling more ergonomic

* Implement Substrate RPCs that use `state_call`

* Implement rest of Substrate RPCs

* Implement `eth_call` RPC

This can be used to implement higher level requests like fetching Substrate headers
from an Ethereum node.

* Build some of the higher level Ethereum RPCs

Uses the new Ethereum RPC interface to do so

* Build some of the higher level Substrate RPCs

* Remove old Ethereum RPC methods

* Remove old Substrate RPC methods

* Add some documentation to Substrate RPCs

* Fix typo in enum construction

* Revert commits `0f0435d` to `ca75502`

This range of commits was mainly trying to integrate the new RPC interface into the existing
codebase, however this turned out to be a little out of scope for the current PR. Instead this work
will be incorporated into a PR which aims to close #72.

* Add documentation to RPCs

* Rename functions in RPC API to conform to snake_case

* Check that header contains a number and hash

* Put doc comments on trait instead of impl methods

* Remove expect() calls

* Replace runtime API enums with consts

* Accept Bytes when submitting extrinsic

Let's us avoid using a runtime specific Extrinsic.

* Add strictly typed arguments to RPC API

Missing two methods right now, which require a `serde::Deserialize`
implemenation before they can be changed.

* Add `chain_getBlock` Substrate RPC

* Use typed arguments for `eth_estimateGas` and `eth_call`

* Silence dead code warnings

* Add check for logs bloom

* Remove unused variables

* Add documentation to RPC error enums
This commit is contained in:
Hernando Castano
2020-05-22 14:52:00 -04:00
committed by Bastian Köcher
parent 792226c9fd
commit 0e7666e63b
5 changed files with 405 additions and 0 deletions
+1
View File
@@ -8,6 +8,7 @@ edition = "2018"
ansi_term = "0.12"
async-std = "1.0.1"
async-stream = "0.2.0"
async-trait = "0.1.30"
clap = { version = "2.33.1", features = ["yaml"] }
codec = { package = "parity-scale-codec", version = "1.0.0" }
env_logger = "0.7.0"