Release Notes

v5 Breaking Changes Summary
See the v5 Migration Guide

v5.0.0

Released August 1, 2019

  • Features
    • web3.eth.chainId now returns an integer instead of hex - #1394
  • Bugfixes
    • Deprecation Warnings now show for methods that have a @combomethod decorator - #1401
  • Misc
    • [ethPM] Add ethPM to the docker file - #1405
  • Docs
    • Docs are updated to use checksummed addresses - #1390
    • Minor doc formatting fixes - #1338 & #1345

v5.0.0-beta.5

Released July 31, 2019

This is intended to be the final release before the stable v5 release.

  • Features
    • Parity operating mode can be read and set - #1355
    • Process a single event log, instead of a whole transaction receipt - #1354
  • Docs
    • Remove doctest dependency on ethtoken - #1395
  • Bugfixes
    • [ethPM] Bypass IPFS validation for large files - #1393
  • Misc
    • [ethPM] Update default Registry solidity contract - #1400
    • [ethPM] Update web3.pm to use new simple Registry implementation - #1398
    • Update dependency requirement formatting for releasing - #1403

v5.0.0-beta.4

Released July 18,2019

  • Features
    • [ethPM] Update registry uri to support basic uris w/o package id - #1389
  • Docs
    • Clarify in docs the return of Eth.sendRawTransaction() as a HexBytes object, not a string. - #1384
  • Misc
    • [ethPM] Migrate tests over from pytest-ethereum - #1385

v5.0.0-beta.3

Released July 15, 2019

  • Features
    • Add eth_getProof support - #1185
    • Implement web3.pm.get_local_package() - #1372
    • Update registry URIs to support chain IDs - #1382
    • Add error flags to event.processReceipt - #1366
  • Bugfixes
    • Remove full IDNA processing in favor of UTS46 - #1364
  • Misc
    • Migrate py-ethpm library to web3/ethpm - #1379
    • Relax canonical address requirement in ethPM - #1380
    • Replace ethPM’s infura strategy with web3’s native infura support - #1383
    • Change combine_argument_formatters to apply_formatters_to_sequence - #1360
    • Move pytest.xfail instances to @pytest.mark.xfail - #1376
    • Change net.version to eth.chainId in default transaction params - #1378

v5.0.0-beta.2

Released May 13, 2019

  • Features
    • Mark deprecated sha3 method as static - #1350
    • Upgrade to eth-account v0.4.0 - #1348
  • Docs
    • Add note about web3[tester] in documentation - #1325
  • Misc
    • Replace web3._utils.toolz imports with eth_utils.toolz - #1317

v5.0.0-beta.1

Released May 6, 2019

  • Features
    • Add support for tilda in provider IPC Path - #1049
    • EIP 712 Signing Supported - #1319
  • Docs
    • Update contract example to use compile_standard - #1263
    • Fix typo in middleware docs - #1339

v5.0.0-alpha.11

Released April 24, 2019

  • Docs
    • Add documentation for web3.py unit tests - #1324
  • Misc
    • Update deprecated collections.abc imports - #1334
    • Fix documentation typo - #1335
    • Upgrade eth-tester version - #1332

v5.0.0-alpha.10

Released April 15, 2019

  • Features
    • Add getLogs by blockHash - #1269
    • Implement chainId endpoint - #1295
    • Moved non-standard JSON-RPC endpoints to applicable Parity/Geth docs. Deprecated web3.version for web3.api - #1290
    • Moved Whisper endpoints to applicable Geth or Parity namespace - #1308
    • Added support for Goerli provider - #1286
    • Added addReservedPeer to Parity module - #1311
  • Bugfixes
    • Cast gas price values to integers in gas strategies - #1297
    • Missing constructor function no longer ignores constructor args - #1316
  • Misc
    • Require eth-utils >= 1.4, downgrade Go version for integration tests - #1310
    • Fix doc build warnings - #1331
    • Zip Fixture data - #1307
    • Update Geth version for integration tests - #1301
    • Remove unneeded testrpc - #1322
    • Add ContractCaller docs to v5 migration guide - #1323

v5.0.0-alpha.9

Released March 26, 2019

  • Breaking Changes
    • Raise error if there is no Infura API Key - #1294 & - #1299
  • Misc
    • Upgraded Parity version for integration testing - #1292

v5.0.0-alpha.8

Released March 20, 2019

  • Breaking Changes
    • Removed web3/utils directory in favor of web3/_utils - #1282
    • Relocated personal RPC endpoints to Parity and Geth class - #1211
    • Deprecated web3.net.chainId(), web3.eth.getCompilers(), and web3.eth.getTransactionFromBlock(). Removed web3.eth.enableUnauditedFeatures() - #1270
    • Relocated eth_protocolVersion and web3_clientVersion - #1274
    • Relocated web3.txpool to web3.geth.txpool - #1275
    • Relocated admin module to Geth namespace - #1288
    • Relocated miner module to Geth namespace - #1287
  • Features
    • Implement eth_submitHashrate and eth_submitWork JSONRPC endpoints. - #1280
    • Implement web3.eth.signTransaction - #1277
  • Docs
    • Added v5 migration docs - #1284

v5.0.0-alpha.7

Released March 11, 2019

  • Breaking Changes
    • Updated JSON-RPC calls that lookup txs or blocks to raise an error if lookup fails - #1218 and #1268
  • Features
    • Tuple ABI support - #1235
  • Bugfixes
    • One last middleware_stack was still hanging on. Changed to middleware_onion - #1262

v5.0.0-alpha.6

Released February 25th, 2019

  • Features
    • New NoABIFound error for cases where there is no ABI - #1247
  • Misc
    • Interact with Infura using an API Key. Key will be required after March 27th. - #1232
    • Remove process_type utility function in favor of eth-abi functionality - #1249

v5.0.0-alpha.5

Released February 13th, 2019

  • Breaking Changes
    • Remove deprecated buildTransaction, call, deploy, estimateGas, and transact methods - #1232
  • Features
    • Adds Web3.toJSON method - #1173
    • Contract Caller API Implemented - #1227
    • Add Geth POA middleware to use Rinkeby with Infura Auto - #1234
    • Add manifest and input argument validation to pm.release_package() - #1237
  • Misc
    • Clean up intro and block/tx sections in Filter docs - #1223
    • Remove unnecessary EncodingError exception catching - #1224
    • Improvements to merge_args_and_kwargs utility function - #1228
    • Update vyper registry assets - #1242

v5.0.0-alpha.4

Released January 23rd, 2019

  • Breaking Changes
    • Rename middleware_stack to middleware_onion - #1210
    • Drop already deprecated web3.soliditySha3 - #1217
    • ENS: Stop inferring .eth TLD on domain names - #1205
  • Bugfixes
    • Validate ethereum_tester class in EthereumTesterProvider - #1217
    • Support getLogs() method without creating filters - #1192
  • Features
    • Stablize the PM module - #1125
    • Implement async Version module - #1166
  • Misc
    • Update .gitignore to ignore .DS_Store and .mypy_cache/ - #1215
    • Change CircleCI badge link to CircleCI project - #1214

v5.0.0-alpha.3

Released January 15th, 2019

  • Breaking Changes
    • Remove web3.miner.hashrate and web3.version.network - #1198
    • Remove web3.providers.tester.EthereumTesterProvider and web3.providers.tester.TestRPCProvider - #1199
    • Change manager.providers from list to single manager.provider - #1200
    • Replace deprecated web3.sha3 method with web3.keccak method - #1207
    • Drop auto detect testnets for IPCProvider - #1206
  • Bugfixes
    • Add check to make sure blockHash exists - #1158
  • Misc
    • Remove some unreachable code in providers/base.py - #1160
    • Migrate tester provider results from middleware to defaults - #1188
    • Fix doc formatting for build_filter method - #1187
    • Add ERC20 example in docs - #1178
    • Code style improvements - #1194 & #1191
    • Convert Web3 instance variables to w3 - #1186
    • Update eth-utils dependencies and clean up other dependencies - #1195

v5.0.0-alpha.2

Released December 20th, 2018

  • Breaking Changes
    • Remove support for python3.5, drop support for eth-abi v1 - #1163
  • Features
    • Support for custom ReleaseManager was fixed - #1165
  • Misc
    • Fix doctest nonsense with unicorn token - 3b2047
    • Docs for installing web3 in FreeBSD - #1156
    • Use latest python in readthedocs - #1162
    • Use twine in release script - #1164
    • Upgrade eth-tester, for eth-abi v2 support - #1168

v5.0.0-alpha.1

Released December 13th, 2018

  • Features
    • Add Rinkeby and Kovan Infura networks; made mainnet the default - #1150
    • Add parity-specific listStorageKeys RPC - #1145
    • Deprecated Web3.soliditySha3; use Web3.solidityKeccak instead. - #1139
    • Add default trinity locations to IPC path guesser - #1121
    • Add wss to AutoProvider - #1110
    • Add timeout for WebsocketProvider - #1109
    • Receipt timeout raises TimeExhausted - #1070
    • Allow specification of block number for eth_estimateGas - #1046
  • Misc
    • Removed web3._utils.six support - #1116
    • Upgrade eth-utils to 1.2.0 - #1104
    • Require Python version 3.5.3 or greater - #1095
    • Bump websockets version to 7.0.0 - #1146
    • Bump parity test binary to 1.11.11 - #1064

v4.8.2

Released November 15, 2018

  • Misc
    • Reduce unneeded memory usage - #1138

v4.8.1

Released October 28, 2018

  • Features
    • Add timeout for WebsocketProvider - #1119
    • Reject transactions that send ether to non-payable contract functions - #1115
    • Add Auto Infura Ropsten support: from web3.auto.infura.ropsten import w3 - #1124
    • Auto-detect trinity IPC file location - #1129
  • Misc
    • Require Python >=3.5.3 - #1107
    • Upgrade eth-tester and eth-utils - #1085
    • Configure readthedocs dependencies - #1082
    • soliditySha3 docs fixup - #1100
    • Update ropsten faucet links in troubleshooting docs

v4.7.2

Released September 25th, 2018

  • Bugfixes
    • IPC paths starting with ~ are appropriately resolved to the home directory - #1072
    • You can use the local signing middleware with bytes-type addresses - #1069

v4.7.1

Released September 11th, 2018

  • Bugfixes
    • old pip bug used during release made it impossible for non-windows users to install 4.7.0.

v4.7.0

Released September 10th, 2018

  • Features
    • Add traceFilter method to the parity module. - #1051
    • Move datastructures to public namespace datastructures to improve support for type checking. - #1038
    • Optimization to contract calls - #944
  • Bugfixes
    • ENS name resolution only attempted on mainnet by default. - #1037
    • Fix attribute access error when attributedict middleware is not used. - #1040
  • Misc - Upgrade eth-tester to 0.1.0-beta.32, and remove integration tests for py-ethereum. - Upgrade eth-hash to 0.2.0 with pycryptodome 3.6.6 which resolves a vulnerability.

v4.6.0

Released Aug 24, 2018

  • Features

  • Bugfixes

    • Fix crash in time-based gas strategies with small number of transactions - #983
    • Fx crash when passing multiple addresses to w3.eth.getLogs() - #1005
  • Misc

    • Disallow configuring filters with both manual and generated topic lists - #976

    • Add support for the upcoming eth-abi v2, which does ABI string decoding differently - #974

    • Add a lot more filter tests - #997

    • Add more tests for filtering with None. Note that geth & parity differ here. - #985

    • Follow-up on Parity bug that we reported upstream (parity#7816): they resolved in 1.10. We removed xfail on that test. - #992

    • Docs: add an example of interacting with an ERC20 contract - #995

    • A couple doc typo fixes

v4.5.0

Released July 30, 2018

  • Features
    • Accept addresses supplied in bytes format (which does not provide checksum validation)
    • Improve estimation of gas prices
  • Bugfixes
  • Misc
    • Test Parity 1.11.7
    • Parity integration tests upgrade to use sha256 instead of md5
    • Fix some filter docs
    • eth-account upgrade to v0.3.0
    • eth-tester upgrade to v0.1.0-beta.29

v4.4.1

Released June 29, 2018

v4.4.0

Released June 21, 2018

  • Features
    • Add support for https in WEB3_PROVIDER_URI environment variable
    • Can send websocket connection parameters in WebsocketProvider
    • Two new auto-initialization options:
      • from web3.auto.gethdev import w3
      • from web3.auto.infura import w3 (After setting the INFURA_API_KEY environment variable)
    • Alpha support for a new package management tool based on ethpm-spec, see Package Manager API
  • Bugfixes
    • Can now receive large responses in WebsocketProvider by specifying a large max_size in the websocket connection parameters.
  • Misc

v4.3.0

Released June 6, 2018

  • Features
    • Support for the ABI types like: fixedMxN which is used by Vyper.
    • In-flight transaction-signing middleware: Use local keys as if they were hosted keys using the new sign_and_send_raw_middleware
    • New getUncleByBlock() API
    • New name getTransactionByBlock(), which replaces the deprecated getTransactionFromBlock()
    • Add several new Parity trace functions
    • New API to resolve ambiguous function calls, for example:
      • Two functions with the same name that accept similar argument types, like myfunc(uint8) and myfunc(int8), and you want to call contract.functions.myfunc(1).call()
      • See how to use it at: Invoke Ambiguous Contract Functions Example
  • Bugfixes
    • Gas estimation doesn’t crash, when 0 blocks are available. (ie~ on the genesis block)
    • Close out all HTTPProvider sessions, to squash warnings on exit
    • Stop adding Contract address twice to the filter. It was making some nodes unhappy
  • Misc
    • Friendlier json encoding/decoding failure error messages
    • Performance improvements, when the responses from the node are large (by reducing the number of times we evaluate if the response is valid json)
    • Parity CI test fixes (ugh, environment setup hell, thanks to the community for cleaning this up!)
    • Don’t crash when requesting a transaction that was created with the parity bug (which allowed an unsigned transaction to be included, so publicKey is None)
    • Doc fixes: addresses must be checksummed (or ENS names on mainnet)
    • Enable local integration testing of parity on non-Debian OS
    • README:
      • Testing setup for devs
      • Change the build badge from Travis to Circle CI
    • Cache the parity binary in Circle CI, to reduce the impact of their binary API going down
    • Dropped the dot: py.test -> pytest

v4.2.1

Released May 9, 2018

  • Bugfixes
    • When getting a transaction with data attached and trying to modify it (say, to increase the gas price), the data was not being reattached in the new transaction.
    • web3.personal.sendTransaction() was crashing when using a transaction generated with buildTransaction()
  • Misc
    • Improved error message when connecting to a geth-style PoA network
    • Improved error message when address is not checksummed
    • Started in on support for fixedMxN ABI arguments
    • Lots of documentation upgrades, including:
      • Guide for understanding nodes/networks/connections
      • Simplified Quickstart with notes for common issues
      • A new Troubleshooting section
    • Potential pypy performance improvements (use toolz instead of cytoolz)
    • eth-tester upgraded to beta 24

v4.2.0

Released Apr 25, 2018

  • Removed audit warning and opt-in requirement for w3.eth.account. See more in: Working with Local Private Keys
  • Added an API to look up contract functions: fn = contract.functions['function_name_here']
  • Upgrade Whisper (shh) module to use v6 API
  • Bugfix: set ‘to’ field of transaction to empty when using transaction = contract.constructor().buildTransaction()
  • You can now specify nonce in buildTransaction()
  • Distinguish between chain id and network id – currently always return None for chainId
  • Better error message when trying to use a contract function that has 0 or >1 matches
  • Better error message when trying to install on a python version <3.5
  • Installs pypiwin32 during pip install, for a better Windows experience
  • Cleaned up a lot of test warnings by upgrading from deprecated APIs, especially from the deprecated contract.deploy(txn_dict, args=contract_args) to the new contract.constructor(*contract_args).transact(txn_dict)
  • Documentation typo fixes
  • Better template for Pull Requests

v4.1.0

Released Apr 9, 2018

  • New WebsocketProvider. If you’re looking for better performance than HTTP, check out websockets.
  • New w3.eth.waitForTransactionReceipt()
  • Added name collision detection to ConciseContract and ImplicitContract
  • Bugfix to allow fromBlock set to 0 in createFilter, like contract.events.MyEvent.createFilter(fromBlock=0, ...)
  • Bugfix of ENS automatic connection
  • eth-tester support for Byzantium
  • New migration guide for v3 -> v4 upgrade
  • Various documentation updates
  • Pinned eth-account to older version

v4.0.0

Released Apr 2, 2018

  • Marked beta.13 as stable
  • Documentation tweaks

v4.0.0-beta.13

Released Mar 27, 2018

This is intended to be the final release before the stable v4 release.

  • Add support for geth 1.8 (fixed error on getTransactionReceipt())
  • You can now call a contract method at a specific block with the block_identifier keyword argument, see: call()
  • In preparation for stable release, disable w3.eth.account by default, until a third-party audit is complete & resolved.
  • New API for contract deployment, which enables gas estimation, local signing, etc. See constructor().
  • Find contract events with contract.events.$my_event.createFilter()
  • Support auto-complete for contract methods.
  • Upgrade most dependencies to stable
    • eth-abi
    • eth-utils
    • hexbytes
    • not included: eth-tester and eth-account
  • Switch the default EthereumTesterProvider backend from eth-testrpc to eth-tester: web3.providers.eth_tester.EthereumTesterProvider
  • A lot of documentation improvements
  • Test node integrations over a variety of providers
  • geth 1.8 test suite

v4.0.0-beta.12

A little hiccup on release. Skipped.

v4.0.0-beta.11

Released Feb 28, 2018

  • New methods to modify or replace pending transactions
  • A compatibility option for connecting to geth --dev – see Geth-style Proof of Authority
  • A new web3.net.chainId
  • Create a filter object from an existing filter ID.
  • eth-utils v1.0.1 (stable) compatibility

v4.0.0-beta.10

Released Feb 21, 2018

  • bugfix: Compatibility with eth-utils v1-beta2 (the incompatibility was causing fresh web3.py installs to fail)
  • bugfix: crash when sending the output of contract.functions.myFunction().buildTransaction() to sendTransaction(). Now, having a chainID key does not crash sendTransaction.
  • bugfix: a TypeError when estimating gas like: contract.functions.myFunction().estimateGas() is fixed
  • Added parity integration tests to the continuous integration suite!
  • Some py3 and docs cleanup

v4.0.0-beta.9

Released Feb 8, 2018

  • Access event log parameters as attributes
  • Support for specifying nonce in eth-tester
  • Bugfix dependency conflicts between eth-utils, eth-abi, and eth-tester
  • Clearer error message when invalid keywords provided to contract constructor function
  • New docs for working with private keys + set up doctests
  • First parity integration tests
  • replace internal implementation of w3.eth.account with eth_account.account.Account

v4.0.0-beta.8

Released Feb 7, 2018, then recalled. It added 32MB of test data to git history, so the tag was deleted, as well as the corresponding release. (Although the release would not have contained that test data)

v4.0.0-beta.7

Released Jan 29, 2018

  • Support for web3.eth.Eth.getLogs() in eth-tester with py-evm
  • Process transaction receipts with Event ABI, using Contract.events.myEvent(*args, **kwargs).processReceipt(transaction_receipt) see Event Log Object for the new type.
  • Add timeout parameter to web3.providers.ipc.IPCProvider
  • bugfix: make sure idna package is always installed
  • Replace ethtestrpc with py-evm, in all tests
  • Dockerfile fixup
  • Test refactoring & cleanup
  • Reduced warnings during tests

v4.0.0-beta.6

Released Jan 18, 2018

  • New contract function call API: my_contract.functions.my_func().call() is preferred over the now deprecated my_contract.call().my_func() API.
  • A new, sophisticated gas estimation algorithm, based on the https://ethgasstation.info approach. You must opt-in to the new approach, because it’s quite slow. We recommend using the new caching middleware. See web3.gas_strategies.time_based.construct_time_based_gas_price_strategy()
  • New caching middleware that can cache based on time, block, or indefinitely.
  • Automatically retry JSON-RPC requests over HTTP, a few times.
  • ConciseContract now has the address directly
  • Many eth-tester fixes. web3.providers.eth_tester.main.EthereumTesterProvider is now a legitimate alternative to web3.providers.tester.EthereumTesterProvider.
  • ethtest-rpc removed from testing. Tests use eth-tester only, on pyethereum. Soon it will be eth-tester with py-evm.
  • Bumped several dependencies, like eth-tester
  • Documentation updates

v4.0.0-beta.5

Released Dec 28, 2017

  • Improvements to working with eth-tester, using EthereumTesterProvider:
  • IPCProvider now automatically retries on a broken connection, like when you restart your node
  • New gas price engine API, laying groundwork for more advanced gas pricing strategies

v4.0.0-beta.4

Released Dec 7, 2017

  • New buildTransaction() method to prepare contract transactions, offline
  • New automatic provider detection, for w3 = Web3() initialization
  • Set environment variable WEB3_PROVIDER_URI to suggest a provider for automatic detection
  • New API to set providers like: w3.providers = [IPCProvider()]
  • Crashfix: web3.eth.Eth.filter() when retrieving logs with the argument ‘latest’
  • Bump eth-tester to v0.1.0-beta.5, with bugfix for filtering by topic
  • Removed GPL lib pylru, now believed to be in full MIT license compliance.

v4.0.0-beta.3

Released Dec 1, 2017

  • Fix encoding of ABI types: bytes[] and string[]
  • Windows connection error bugfix
  • Bugfix message signatures that were broken ~1% of the time (zero-pad r and s)
  • Autoinit web3 now produces None instead of raising an exception on from web3.auto import w3
  • Clearer errors on formatting failure (includes field name that failed)
  • Python modernization, removing Py2 compatibility cruft
  • Update dependencies with changed names, now:
    • eth-abi
    • eth-keyfile
    • eth-keys
    • eth-tester
    • eth-utils
  • Faster Travis CI builds, with cached geth binary

v4.0.0-beta.2

Released Nov 22, 2017

Bug Fixes:

  • sendRawTransaction() accepts raw bytes
  • contract() accepts an ENS name as contract address
  • signTransaction() returns the expected hash (after signing the transaction)
  • Account methods can all be called statically, like: Account.sign(...)
  • getTransactionReceipt() returns the status field as an int
  • Web3.soliditySha3() looks up ENS names if they are supplied with an “address” ABI
  • If running multiple threads with the same w3 instance, ValueError: Recursively called ... is no longer raised

Plus, various python modernization code cleanups, and testing against geth 1.7.2.

v4.0.0-beta.1

  • Python 3 is now required
  • ENS names can be used anywhere that a hex address can
  • Sign transactions and messages with local private keys
  • New filter mechanism: get_all_entries() and get_new_entries()
  • Quick automatic initialization with from web3.auto import w3
  • All addresses must be supplied with an EIP-55 checksum
  • All addresses are returned with a checksum
  • Renamed Web3.toDecimal() to toInt(), see: Type Conversions
  • All filter calls are synchronous, gevent integration dropped
  • Contract eventFilter() has replaced both Contract.on() and Contract.pastEvents()
  • Contract arguments of bytes ABI type now accept hex strings.
  • Contract arguments of string ABI type now accept python str.
  • Contract return values of string ABI type now return python str.
  • Many methods now return a bytes-like object where they used to return a hex string, like in Web3.sha3()
  • IPC connection left open and reused, rather than opened and closed on each call
  • A number of deprecated methods from v3 were removed

3.16.1

  • Addition of ethereum-tester as a dependency

3.16.0

  • Addition of named middlewares for easier manipulation of middleware stack.
  • Provider middlewares can no longer be modified during runtime.
  • Experimental custom ABI normalization API for Contract objects.

3.15.0

  • Change docs to use RTD theme
  • Experimental new EthereumTesterProvider for the ethereum-tester library.
  • Bugfix for function type abi encoding via ethereum-abi-utils upgrade to v0.4.1
  • Bugfix for Web3.toHex to conform to RPC spec.

3.14.2

  • Fix PyPi readme text.

3.14.1

  • Fix PyPi readme text.

3.14.0

  • New stalecheck_middleware
  • Improvements to Web3.toHex and Web3.toText.
  • Improvements to Web3.sha3 signature.
  • Bugfixes for Web3.eth.sign api

3.13.5

  • Add experimental fixture_middleware
  • Various bugfixes introduced in middleware API introduction and migration to formatter middleware.

3.13.4

  • Bugfix for formatter handling of contract creation transaction.

3.13.3

  • Improved testing infrastructure.

3.13.2

  • Bugfix for retrieving filter changes for both new block filters and pending transaction filters.

3.13.1

  • Fix mispelled attrdict_middleware (was spelled attrdict_middlware).

3.13.0

  • New Middleware API
  • Support for multiple providers
  • New web3.soliditySha3
  • Remove multiple functions that were never implemented from the original web3.
  • Deprecated web3.currentProvider accessor. Use web3.provider now instead.
  • Deprecated password prompt within web3.personal.newAccount.

3.12.0

  • Bugfix for abi filtering to correctly handle constructor and fallback type abi entries.

3.11.0

  • All web3 apis which accept address parameters now enforce checksums if the address looks like it is checksummed.
  • Improvements to error messaging with when calling a contract on a node that may not be fully synced
  • Bugfix for web3.eth.syncing to correctly handle False

3.10.0

  • Web3 now returns web3.utils.datastructures.AttributeDict in places where it previously returned a normal dict.
  • web3.eth.contract now performs validation on the address parameter.
  • Added web3.eth.getWork API

3.9.0

  • Add validation for the abi parameter of eth
  • Contract return values of bytes, bytesXX and string are no longer converted to text types and will be returned in their raw byte-string format.

3.8.1

  • Bugfix for eth_sign double hashing input.
  • Removed deprecated DelegatedSigningManager
  • Removed deprecate PrivateKeySigningManager

3.8.0

  • Update pyrlp dependency to >=0.4.7
  • Update eth-testrpc dependency to >=1.2.0
  • Deprecate DelegatedSigningManager
  • Deprecate PrivateKeySigningManager

3.7.1

  • upstream version bump for bugfix in eth-abi-utils

3.7.0

  • deprecate eth.defaultAccount defaulting to the coinbase account.

3.6.2

  • Fix error message from contract factory creation.
  • Use ethereum-utils for utility functions.

3.6.1

  • Upgrade ethereum-abi-utils dependency for upstream bugfix.

3.6.0

  • Deprecate Contract.code: replaced by Contract.bytecode
  • Deprecate Contract.code_runtime: replaced by Contract.bytecode_runtime
  • Deprecate abi, code, code_runtime and source as arguments for the Contract object.
  • Deprecate source as a property of the Contract object
  • Add Contract.factory() API.
  • Deprecate the construct_contract_factory helper function.

3.5.3

  • Bugfix for how requests library is used. Now reuses session.

3.5.2

  • Bugfix for construction of request_kwargs within HTTPProvider

3.5.1

  • Allow HTTPProvider to be imported from web3 module.
  • make HTTPProvider accessible as a property of web3 instances.

3.5.0

  • Deprecate web3.providers.rpc.RPCProvider
  • Deprecate web3.providers.rpc.KeepAliveRPCProvider
  • Add new web3.providers.rpc.HTTPProvider
  • Remove hard dependency on gevent.

3.4.4

  • Bugfix for web3.eth.getTransaction when the hash is unknown.

3.4.3

  • Bugfix for event log data decoding to properly handle dynamic sized values.
  • New web3.tester module to access extra RPC functionality from eth-testrpc

3.4.2

  • Fix package so that eth-testrpc is not required.

3.4.1

3.4.0

  • Bugfix for contract instances to respect web3.eth.defaultAccount
  • Better error reporting when ABI decoding fails for contract method response.

3.3.0

  • New EthereumTesterProvider now available. Faster test runs than TestRPCProvider
  • Updated underlying eth-testrpc requirement.

3.2.0

  • web3.shh is now implemented.
  • Introduced KeepAliveRPCProvider to correctly recycle HTTP connections and use HTTP keep alive

3.1.1

  • Bugfix for contract transaction sending not respecting the web3.eth.defaultAccount configuration.

3.1.0

  • New DelegatedSigningManager and PrivateKeySigningManager classes.

3.0.2

  • Bugfix or IPCProvider not handling large JSON responses well.

3.0.1

  • Better RPC compliance to be compatable with the Parity JSON-RPC server.

3.0.0

  • Filter objects now support controlling the interval through which they poll using the poll_interval property

2.9.0

  • Bugfix generation of event topics.
  • Web3.Iban now allows access to Iban address tools.

2.8.1

  • Bugfix for geth.ipc path on linux systems.

2.8.0

  • Changes to the Contract API:
    • Contract.deploy() parameter arguments renamed to args
    • Contract.deploy() now takes args and kwargs parameters to allow constructing with keyword arguments or positional arguments.
    • Contract.pastEvents now allows you to specify a fromBlock or ``toBlock. Previously these were forced to be 'earliest' and web3.eth.blockNumber respectively.
    • Contract.call, Contract.transact and Contract.estimateGas are now callable as class methods as well as instance methods. When called this way, an address must be provided with the transaction parameter.
    • Contract.call, Contract.transact and Contract.estimateGas now allow specifying an alternate address for the transaction.
  • RPCProvider now supports the following constructor arguments.
    • ssl for enabling SSL
    • connection_timeout and network_timeout for controlling the timeouts for requests.

2.7.1

  • Bugfix: Fix KeyError in merge_args_and_kwargs helper fn.

2.7.0

  • Bugfix for usage of block identifiers ‘latest’, ‘earliest’, ‘pending’
  • Sphinx documentation
  • Non-data transactions now default to 90000 gas.
  • Web3 object now has helpers set as static methods rather than being set at initialization.
  • RPCProvider now takes a path parameter to allow configuration for requests to go to paths other than /.

2.6.0

  • TestRPCProvider no longer dumps logging output to stdout and stderr.
  • Bugfix for return types of address[]
  • Bugfix for event data types of address

2.5.0

  • All transactions which contain a data element will now have their gas automatically estimated with 100k additional buffer. This was previously only true with transactions initiated from a Contract object.

2.4.0

  • Contract functions can now be called using keyword arguments.

2.3.0

  • Upstream fixes for filters
  • Filter APIs on and pastEvents now callable as both instance and class methods.

2.2.0

  • The filters that come back from the contract on and pastEvents methods now call their callbacks with the same data format as web3.js.

2.1.1

  • Cast RPCProvider port to an integer.

2.1.0

  • Remove all monkeypatching

2.0.0

  • Pull in downstream updates to proper gevent usage.
  • Fix eth_sign
  • Bugfix with contract operations mutating the transaction object that is passed in.
  • More explicit linting ignore statements.

1.9.0

  • BugFix: fix for python3 only json.JSONDecodeError handling.

1.8.0

  • BugFix: RPCProvider not sending a content-type header
  • Bugfix: web3.toWei now returns an integer instead of a decimal.Decimal

1.7.1

  • TestRPCProvider can now be imported directly from web3

1.7.0

  • Add eth.admin interface.
  • Bugfix: Format the return value of web3.eth.syncing
  • Bugfix: IPCProvider socket interactions are now more robust.

1.6.0

  • Downstream package upgrades for eth-testrpc and ethereum-tester-client to handle configuration of the Homestead and DAO fork block numbers.

1.5.0

  • Rename web3.contract._Contract to web3.contract.Contract to expose it for static analysis and auto completion tools
  • Allow passing string parameters to functions
  • Automatically compute gas requirements for contract deployment and
  • transactions.
  • Contract Filters
  • Block, Transaction, and Log filters
  • web3.eth.txpool interface
  • web3.eth.mining interface
  • Fixes for encoding.

1.4.0

  • Bugfix to allow address types in constructor arguments.

1.3.0

  • Partial implementation of the web3.eth.contract interface.

1.2.0

  • Restructure project modules to be more flat
  • Add ability to run test suite without the slow tests.
  • Breakup encoding utils into smaller modules.
  • Basic pep8 formatting.
  • Apply python naming conventions to internal APIs
  • Lots of minor bugfixes.
  • Removal of dead code left behing from 1.0.0 refactor.
  • Removal of web3/solidity module.

1.1.0

  • Add missing isConnected() method.
  • Add test coverage for setProvider()

1.0.1

  • Specify missing pyrlp and gevent dependencies

1.0.0

  • Massive refactor to the majority of the app.

0.1.0

  • Initial release