Ethereum JSON RPC Client
Project description
# 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.
## Installation
Install with `pip`
```bash
$ pip install ethereum-rpc-client
```
## Basic Usage
Assuming 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_coinbase
Returns the hex encoded coinbase.
### `Client.get_gas_price()`
> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasprice
Returns 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 is
found.
* **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 is
found.
* **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_blocknumber
Returns the number of the most recent block.
### `Client.get_accounts()`
> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts
Returns 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 for
the 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 block
specified by `block_number` is seen. Returns the block.
[![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.
## Installation
Install with `pip`
```bash
$ pip install ethereum-rpc-client
```
## Basic Usage
Assuming 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_coinbase
Returns the hex encoded coinbase.
### `Client.get_gas_price()`
> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gasprice
Returns 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 is
found.
* **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 is
found.
* **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_blocknumber
Returns the number of the most recent block.
### `Client.get_accounts()`
> https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_accounts
Returns 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 for
the 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 block
specified by `block_number` is seen. Returns the block.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for ethereum-rpc-client-0.4.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e15e9bfb32f3097aa7961346645820adc5c9dcc347221328b2e96725dab3566a |
|
MD5 | a0d848b4ad73cabe2f96d0eddcfad265 |
|
BLAKE2b-256 | cade153302cf36331ca33322dbee5d389b5893a587d0e98d0e7b13efe14d57dc |
Close
Hashes for ethereum_rpc_client-0.4.4-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f5e8015535d0b8af45b1d933bfe751a185f8a885ed077c8142bd434808fcf0e |
|
MD5 | d9b06764e3c0926c587e333186af33a9 |
|
BLAKE2b-256 | 712955b22c83e7cd509abf1ed359c79af50ba2ed9d82466af922753a2b009f2e |