Skip to main content

An Ethereum simulator for aiding smart contract development.

Project description

# Ethereum Test RPC server

## Ethereum Test RPC

Limited RPC client intended for use with automated testing. Uses [pythereum](https://github.com/ethereum/pyethereum) 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 `

### Run

Installing through pip will make the testrpc 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:

  • eth_coinbase

  • eth_accounts

  • eth_gasPrice

  • eth_blockNumber

  • eth_sendTransaction

  • eth_sendRawTransaction

  • eth_call

  • eth_getCompilers

  • eth_compileSolidity

  • eth_getCode (only supports block number “latest”)

  • eth_getBalance

  • eth_getTransactionCount

  • eth_getTransactionByHash

  • eth_getTransactionReceipt

  • eth_newBlockFilter (temporarily removed until implemented in underlying library)

  • eth_newFilter (temporarily removed until implemented in underlying library)

  • eth_getFilterChanges (temporarily removed until implemented in underlying library)

  • eth_uninstallFilter (temporarily removed until implemented in underlying library)

  • eth_protocolVersion ( see rpc_configure)

  • eth_syncing ( see rpc_configure)

  • eth_mining ( see rpc_configure)

  • web3_sha3

  • web3_clientVersion

  • net_version (see rpc_configure)

  • net_listening (see rpc_configure)

  • net_peerCount (see rpc_configure)

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

  • evm_reset : No params, no return value.

  • evm_snapshot : No params. Returns the integer id of the snapshot created.

  • evm_revert : One optional param. Reverts to the snapshot id passed, or the latest snapshot.

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:

  • evm_reset : Run once at the beginning of your test suite.

  • evm_snapshot : Run at the beginning of each test, snapshotting the state of the evm.

  • evm_revert : Run at the end of each test, reverting back to a known clean state.

TestRPC also exposes the evm_mine method for advancing the test evm by a single block.

  • evm_mine : No params, no return value.

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

  • eth_protocolVersion (default 63)

  • eth_syncing (default False)

  • eth_mining (default True)

  • net_version (default 1)

  • net_listening (default False)

  • net_peerCount (default 0)

The rpc_configure takes two parameters.

  • key: string representing the rpc method on which you want to change the return value.

  • value: the value that should be returned by the endpoint.

### Releasing a new version (for eth-testrpc developers)

  • Bump version number in setup.py

  • Add entry to CHANGES.txt

  • Tag the release.

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

  • Go make the release on github for the tag you just pushed

  • Build and push release to PyPI

` 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eth-testrpc-0.2.5.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

eth_testrpc-0.2.5-py2-none-any.whl (9.2 kB view details)

Uploaded Python 2

File details

Details for the file eth-testrpc-0.2.5.tar.gz.

File metadata

  • Download URL: eth-testrpc-0.2.5.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for eth-testrpc-0.2.5.tar.gz
Algorithm Hash digest
SHA256 ed213022e3ea4aaf91a1594c6a5ef92525dac05fd606a2d143fa4b3aea3f1867
MD5 f11d55664939c953e41f224de63537c7
BLAKE2b-256 435c23ddeff09e52e829d8523f8960a64585e96301f185b9a007fde47c835f66

See more details on using hashes here.

File details

Details for the file eth_testrpc-0.2.5-py2-none-any.whl.

File metadata

File hashes

Hashes for eth_testrpc-0.2.5-py2-none-any.whl
Algorithm Hash digest
SHA256 2f53681d08b6bae6af917ab838ee417aad3a6dd7387d40359fb1e8f611df4d34
MD5 7e7c70950bff3b4699da41cea00cc56d
BLAKE2b-256 8b3dfa44571d51cb71f4b45dbfb0790e6bda4bb2285e9dff8e88bae846ff72fc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page