Package: ethereum-rpc-client
# Ethereum RPC Client[![Build Status](https://travis-ci.org/pipermerriam/ethereum-rpc-client.png)](https://travis-ci.org/pipermerriam/ethereum-rpc-client)[![Documentation Status](https://readthedocs.org/projects/ethereum-rpc-client/badge/?version=latest)](https://readthedocs.org/projects/ethereum-rpc-client/?badge=latest)[![PyPi version](https://pypip.in/v/ethereum-rpc-client/badge.png)](https://pypi.python.org/pypi/ethereum-rpc-client)[![PyPi downloads](https://pypip.in/d/ethereum-rpc-client/badge.png)](https://pypi.python.org/pypi/ethereum-rpc-client)Python client for Ethereum JSON RPC Server> Note that this currently only implements a handful of the JSON RPC methods> exposed by the server.## InstallationInstall with `pip````bash$ pip install ethereum-rpc-client```## Basic UsageAssuming you have an Ethereum node running the JSON RPC server on `localhost:8454````python>>> from eth_rpc_client import Client>>> client = Client(host="127.0.0.1", port="8545")>>> client.get_coinbase()... '0xd3cda913deb6f67967b99d67acdfa1712c293601'```## API### `Client.get_coinbase()`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_coinbaseReturns the hex encoded coinbase.### `Client.get_gas_price()`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gaspriceReturns the gas price in wei as an integer### `Client.get_balance(address, block="latest")`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getbalance* **address**: The hex encoded address to lookup the balance for.* **block**: The block to use for the lookup.Returns the account balance for the address in wei as an integer.### `Client.get_code(address, block="latest")`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getcode* **address**: The hex encoded address to lookup the code for.* **block**: The block to use for the lookup.Returns the code at the given address.### `Client.call(_from=None, to=None, gas=None, gas_price=None, value=0, data=None, block="latest")`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_call* **_from**: The hex encoded address to use as the source for the call.* **to**: The hex encoded address of the contract for the call.* **gas**: Integer gas alotment for the call.* **gas_price**: Integer gas price in wei.* **value**: Integer amount in wei to send with the call.* **data**: The call data.Returns the call response.### `Client.send_transaction(_from=None, to=None, gas=None, gas_price=None, value=0, data=None)https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sendtransaction* **_from**: The hex encoded address to use as the source for the transaction.* **to**: The hex encoded address of the contract for the transaction.* **gas**: Integer gas alotment for the transaction.* **gas_price**: Integer gas price in wei.* **value**: Integer amount in wei to send with the transaction.* **data**: The transaction data.### `Client.get_transaction_receipt(txn_hash)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionreceipt* **txn_hash**: The hex encoded transaction hash to lookup.Returns a dictionary of the transaction receipt or `None` if no receipt isfound.* **transactionHash**: hex encoded hash of the transaction.* **transactionIndex**: integer of the transactions index position in the block.* **blockHash**: hex encoded hash of the block where this transaction was in.* **blockNumber**: integer block number where this transaction was in.* **cumulativeGasUsed**: The total amount of gas used when this transaction was executed in the block.* **gasUsed**: The amount of gas used by this specific transaction alone.* **contractAddress**: The contract address created, if the transaction was a contract creation, otherwise null.* **logs**: list of log objects, which this transaction generated### `Client.get_transaction_by_hash(txn_hash)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionbyhash* **txn_hash**: The hex encoded transaction hash to lookup.Returns a dictionary of the transaction values or `None` if no transaction isfound.* **hash**: DATA, 32 Bytes - hash of the transaction.* **nonce**: QUANTITY - the number of transactions made by the sender prior to this one.* **blockHash**: DATA, 32 Bytes - hash of the block where this transaction was in. null when its pending.* **blockNumber**: QUANTITY - block number where this transaction was in. null when its pending.* **transactionIndex**: QUANTITY - integer of the transactions index position in the block. null when its pending.* **from**: DATA, 20 Bytes - address of the sender.* **to**: DATA, 20 Bytes - address of the receiver. null when its a contract creation transaction.* **value**: QUANTITY - value transferred in Wei.* **gasPrice**: QUANTITY - gas price provided by the sender in Wei.* **gas**: QUANTITY - gas provided by the sender.* **input**: DATA - the data send along with the transaction.### `Client.get_block_number()`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_blocknumberReturns the number of the most recent block.### `Client.get_accounts()`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accountsReturns a list of the addresses owned by the client.### `Client.new_filter(from_block=None, to_block=None, address=None, topics=None)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newfilter### `Client.new_block_filter()`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newblockfilter### `Client.new_pending_transaction_filter()`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_newpendingtransactionfilter### `Client.uninstall_filter(filter_id)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_uninstallFilter### `Client.get_filter_changes(filter_id)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getfilterchanges### `Client.get_filter_logs(filter_id)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getfilterlogs### `Client.get_logs(from_block=None, to_block=None, address=None, topics=None)`> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getlogs## Helpers### `Client.get_max_gas()`Returns the gas limit from the latest block### `Client.wait_for_transaction(txn_hash, max_wait=60)`Blocks for up to `max_wait` seconds, polling for the transaction receipt forthe provided `txn_hash`.  Returns the transaction hash.### `Client.wait_for_block(block_number, max_wait=60)`Blocks for up to `max_wait` seconds, polling the rpc server until the blockspecified by `block_number` is seen.  Returns the block.