# Summer Projects ## JSON-RPC Specification There are several opportunities to contribute to the JSON-RPC specification. A few examples are: ### Automated testing Mostly writing `go` to integrate into Hive. See the example JSON-RPC tests [here](https://github.com/ethereum/hive/blob/master/simulators/ethereum/rpc/ethclient.go#L275-L285). The idea is to intercept both the requests and responses and validate them against the spec [schema](https://github.com/ethereum/execution-apis/blob/assembled-spec/openrpc.json). ### Improve documentation tooling There is a [frontend](https://playground.open-rpc.org/?schemaUrl=https://raw.githubusercontent.com/ethereum/eth1.0-apis/assembled-spec/openrpc.json&uiSchema%5BappBar%5D%5Bui:splitView%5D=false&uiSchema%5BappBar%5D%5Bui:input%5D=false&uiSchema%5BappBar%5D%5Bui:examplesDropdown%5D=false) for the documentation written in typescript that could use improvements. The code for that UI is [here](https://github.com/open-rpc/playground). It's using the React framework which is super popular and would be a great thing to learn if you want to do more frontend engineering. ### Improve documentation This would entail interacting with the JSON-RPC API to understand how each method works, then translate that into better documentation. For example, `eth_newFilter` is a relatively complex method and has [very short](https://github.com/ethereum/execution-apis/blob/3a004855e9a88c816c120ea39ea6e12b5359d50b/src/eth/filter.json#L2-L19) description. ## Python testing I started a project a couple months ago to rewrite some of this existing testing tools to combine the functionality of [`retesteth`](https://github.com/ethereum/retesteth) and [`ethereum/tests`](https://github.com/ethreum/tests). That ended up becoming [`lightclient/testing-tools`](https://github.com/lightclient/testing-tools/). To compare the differences, here is a test [before](https://github.com/ethereum/tests/blob/develop/src/GeneralStateTestsFiller/stChainId/chainIdFiller.json) and a test [after](https://github.com/lightclient/testing-tools/blob/main/src/ethereum_tests/vm/chain_id.py) the project. The project is really in the MVP stage. It would be great to implement some more features and improve the UX so we can start having EIP authors use it.