Home

Awesome

Ethereum Test RPC server

Join the chat at https://gitter.im/pipermerriam/eth-testrpc

Ethereum Test RPC

Limited RPC client intended for use with automated testing. Uses pythereum to run an Ethereum client behind the scenes without the need for mining or networking. The result is an Ethereum client that provides instant results and quick feedback during development.

Install

Installing is easy, through pip:

$ pip install eth-testrpc

Or, to upgrade:

pip install eth-testrpc --upgrade

Or, to install with gevent threads

pip install eth-testrpc[gevent]

And then set the environment variable TESTRPC_THREADING_BACKEND=gevent

Run

Installing through pip will make the testrpc-py command available on your machine:

$ testrpc

This will run testrpc on localhost:8545. You can pass through a different port (-p, --port) or domain (-d, --domain).

Implemented methods

The RPC methods currently implemented are:

There’s also special non-standard methods that aren’t included within the original RPC specification:

When calling evm_reset, the testrpc will revert the state of its internal chain back to the genesis block and it will act as if no processing of transactions has taken place. Similarly, you can use evm_snapshot and evm_revert methods to save and restore the evm state as desired. Example use cases for these methods are as follows:

TestRPC also exposes the evm_mine method for advancing the test evm by some number of blocks.

TestRPC exposes the testing_timeTravel method for fast-forwarding to a future timestamp.

TestRPC exposes the rpc_configure method which can be used to modify the static values returned by the following endpoints.

The rpc_configure takes two parameters.

The homestead, dao, anti_dos and clearing fork configurations determine which block number the respective fork rules should come into effect. All default to 0.

TestRPC uses a default gas limit of 4000000. To change this set the environment variable TESTRPC_GAS_LIMIT to the desired value.

Releasing a new version (for eth-testrpc developers)

git tag -s -m "X.X.X Release" vX.X.X
git push --tags
make release

License

MIT

Consensys

This library was originally authored by Consensys and transferred later when it was no longer maintained. A big thanks for them to creating this extremely useful library.