Package: ethjsonrpc
Python client for Ethereum using the JSON-RPC interfacecomplete: implements all 62 JSON-RPC methods plus several client-specific methodsprovides a high-level interface to create contracts on the blockchain and to call contract methodsImportant noteThe API is not yet stable, so please use caution when upgrading.InstallationYou may need additional libraries and tools before installing ethjsonrpc.On Ubuntu 16.04:$sudoaptinstallpython-minimal$sudoaptinstallgcc$sudoaptinstallvirtualenv# optional but recommended$sudoaptinstalllibpython-dev$sudoaptinstalllibssl-devOn Ubuntu 14.04:$sudoapt-getinstallpython-virtualenv# optional but recommended$sudoapt-getinstalllibpython-dev$sudoapt-getinstalllibssl-devTo install ethjsonrpc:$pipinstallethjsonrpcMake sure to have a node running an Ethereum client (such as geth) for the library to connect to.Example>>>fromethjsonrpcimportEthJsonRpc# to use Parity-specific methods, import ParityEthJsonRpc>>>c=EthJsonRpc('127.0.0.1',8545)>>>c.net_version()u'1'>>>c.web3_clientVersion()u'Geth/v1.3.3/linux/go1.5.1'>>>c.eth_gasPrice()50000000000>>>c.eth_blockNumber()828948High-level functionalityThese examples assume the following simple Solidity contract:contract Example {

    string s;

    function set_s(string new_s) {
        s = new_s;
    }

    function get_s() returns (string) {
        return s;
    }
}Compile it like this:$solc--binarystdoutexample.solSetup>>>compiled='606060405261020f806100136000396000f30060606040526000357c01000000000000000000000000000000000000000000000000000000009004806375d74f3914610044578063e7aab290146100bd57610042565b005b61004f600450610191565b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156100af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61010d6004803590602001906004018035906020019191908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050905061010f565b005b806000600050908051906020019082805482825590600052602060002090601f01602090048101928215610160579182015b8281111561015f578251826000505591602001919060010190610141565b5b50905061018b919061016d565b80821115610187576000818150600090555060010161016d565b5090565b50505b50565b60206040519081016040528060008152602001506000600050805480601f0160208091040260200160405190810160405280929190818152602001828054801561020057820191906000526020600020905b8154815290600101906020018083116101e357829003601f168201915b5050505050905061020c565b9056'>>>fromethjsonrpcimportEthJsonRpc# to use Parity-specific methods, import ParityEthJsonRpc>>>c=EthJsonRpc('127.0.0.1',8545)Creating a contract on the blockchain>>># continued from above>>>contract_tx=c.create_contract(c.eth_coinbase(),compiled,gas=300000)>>># wait here for the contract to be created when a new block is mined>>>contract_addr=c.get_contract_address(contract_tx)>>>contract_addru'0x24988147f2f2300450103d8c42c43182cf226857'Calling a contract function with a transaction (storing data)>>># continued from above>>>tx=c.call_with_transaction(c.eth_coinbase(),contract_addr,'set_s(string)',['Hello, world'])>>>txu'0x15bde63d79466e3db5169a913bb2069130ca387033d2ff2e29f4dfbef1bc6e0d'Calling a contract function on the local blockchain (reading data)>>># continued from above>>>results=c.call(contract_addr,'get_s()',[],['string'])>>>results['Hello, world']Additional examplesPlease seetest.pyfor additional examples.Implemented JSON-RPC methodsweb3_clientVersionweb3_sha3net_versionnet_listeningnet_peerCounteth_protocolVersioneth_syncingeth_coinbaseeth_miningeth_hashrateeth_gasPriceeth_accountseth_blockNumbereth_getBalanceeth_getStorageAteth_getTransactionCounteth_getBlockTransactionCountByHasheth_getBlockTransactionCountByNumbereth_getUncleCountByBlockHasheth_getUncleCountByBlockNumbereth_getCodeeth_signeth_sendTransactioneth_sendRawTransactioneth_calleth_estimateGaseth_getBlockByHasheth_getBlockByNumbereth_getTransactionByHasheth_getTransactionByBlockHashAndIndexeth_getTransactionByBlockNumberAndIndexeth_getTransactionReceipteth_getUncleByBlockHashAndIndexeth_getUncleByBlockNumberAndIndexeth_getCompilerseth_compileSolidityeth_compileLLLeth_compileSerpenteth_newFiltereth_newBlockFiltereth_newPendingTransactionFiltereth_uninstallFiltereth_getFilterChangeseth_getFilterLogseth_getLogseth_getWorketh_submitWorketh_submitHashratedb_putStringdb_getStringdb_putHexdb_getHexshh_versionshh_postshh_newIdentityshh_hasIdentityshh_newGroupshh_addToGroupshh_newFiltershh_uninstallFiltershh_getFilterChangesshh_getMessagesParity-only JSON-RPC methodsTo use these methods, make sure that you’rerunning Parity as your clientrunning with the--tracingonoptionusing this library’sParityEthJsonRpcclient (not the vanillaEthJsonRpcclient)Methods:trace_filtertrace_gettrace_transactiontrace_blockReferencehttps://github.com/ethereum/wiki/wiki/JSON-RPChttps://github.com/ethcore/parity/wiki/JSONRPC-trace-module