NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1842 most downloaded on PyPI
web3: A Python library for interacting with Ethereum
Last release 1 months ago
31 Aug 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 43 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
253 releases · first in 2016
- Add snake_case methods to Geth Miner class, deprecate camelCase methods
Add snake_case methods to Geth Miner class, deprecate camelCase methods ( #1579 )
Add snake_case methods for the net module, deprecate camelCase methods ( #1581 )
Add PEP561 type marker ( #1583 )
Increase replacement tx minimum gas price bump
Parity/OpenEthereum requires a replacement transaction’s gas to be a minimum of 12.5% higher than the original (vs. Geth’s 10%). ( #1570 )
- Documents the getUncleCount method.
Documents the getUncleCount method. ( #1534 )
#1576
One column per quarter.
- ENS had to release a new registry to push a bugfix. See this article for background information. web3.py uses the new registry for all default ENS i
ENS had to release a new registry to push a bugfix. See this article for background information. web3.py uses the new registry for all default ENS interactions, now. ( #1573 )
Minor bugfix in how ContractCaller looks up abi functions. ( #1552 )
Update modules to use compatible typing-extensions import. ( #1554 )
Make ‘from’ and ‘to’ fields checksum addresses in returned transaction receipts ( #1562 )
Use local Trinity’s IPC socket if it is available, for newer versions of Trinity. ( #1563 )
Add Matomo Tracking to Docs site.
Matomo is an Open Source web analytics platform that allows us to get better insights and optimize for our audience without the negative consequences of other compareable platforms.
Read more: https://matomo.org/why-matomo/ ( #1541 )
Fix web3 typo in docs ( #1559 )
#1521 , #1546 , #1571
- Add required typing-extensions library to setup.py
Add str to IPCProvider ( #1536 )
Add required typing-extensions library to setup.py ( #1544 )
- Only apply hexbytes formatting to r and s values in transaction if present
Only apply hexbytes formatting to r and s values in transaction if present ( #1531 )
Update eth-utils dependency which contains mypy bugfix. ( #1537 )
Update Contract Event documentation to show correct example ( #1515 )
Add documentation to methods that raise an error in v5 instead of returning None ( #1527 )
#1518 , #1532
- Support handling ENS domains in ERC1319 URIs.
Support handling ENS domains in ERC1319 URIs. ( #1489 )
Make local block filter return empty list when when no blocks mined ( #1255 )
Google protobuf dependency was updated to 3.10.0 ( #1493 )
Infura websocket provider works when no secret key is present ( #1501 )
Update Quickstart instructions to use the auto Infura module instead of the more complicated web3 auto module ( #1482 )
Remove outdated py.test command from readme ( #1483 )
#1461 , #1471 , #1475 , #1476 , #1479 , #1488 , #1492 , #1498
- Add poll_latency to waitForTransactionReceipt
Add poll_latency to waitForTransactionReceipt ( #1453 )
Fix flaky Parity whisper module test ( #1473 )
#1472 , #1474
- Update documentation for unlock account duration
Update documentation for unlock account duration ( #1464 )
Clarify module installation command for OSX>=10.15 ( #1467 )
#1468
- Move Geth Whisper methods to snake case and deprecate camel case methods
Add enable_strict_bytes_type_checking flag to web3 instance ( #1419 )
Move Geth Whisper methods to snake case and deprecate camel case methods ( #1433 )
Add null check to logsbloom formatter ( #1445 )
Reformat autogenerated towncrier release notes ( #1460 )
- Add contract_types property to Package class.
Add contract_types property to Package class. ( #1440 )
Fix flaky parity integration test in the whisper module ( #1147 )
Remove whitespace, move topics key -> topic in Geth docs ( #1425 )
Enforce stricter doc checking, turning warnings into errors to fail CI builds to catch issues quickly.
Add missing web3.tools.rst to the table of contents and fix incorrectly formatted JSON example. ( #1437 )
Add example using Geth POA Middleware with Infura Rinkeby Node ( #1444 )
#1446 , #1451
- [ethPM] Fix bug in package id and release id fetching strategy
Released August 22, 2019
Bugfixes
[ethPM] Fix bug in package id and release id fetching strategy
- [ethPM] Add begin/close chars to package name regex
Released August 15, 2019
Bugfixes
[ethPM] Add begin/close chars to package name regex
#1418
[ethPM] Update deployments to work when only abi available
#1417
Fix tuples handled incorrectly in decode_function_input - #1410
Misc
Eliminate signTransaction warning
- Deprecation Warnings now show for methods that have a @combomethod decorator
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
This is intended to be the final release before the stable v5 release.
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
- [ethPM] Update registry uri to support basic uris w/o package id
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
- Implement web3.pm.get_local_package()
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
- Mark deprecated sha3 method as static
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
- Add support for tilda in provider IPC Path
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
- Update deprecated collections.abc imports
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
- Moved non-standard JSON-RPC endpoints to applicable Parity/Geth docs. Deprecated web3.version for web3.api - #1290
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
- Raise error if there is no Infura API Key
Released March 26, 2019
Breaking Changes
Raise error if there is no Infura API Key
#1294 &
#1299
Misc
Upgraded Parity version for integration testing
- Deprecated web3.net.chainId() , web3.eth.getCompilers() , and web3.eth.getTransactionFromBlock() . Removed web3.eth.enableUnauditedFeatures() - #127…
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
- Updated JSON-RPC calls that lookup txs or blocks to raise an error if lookup fails
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
- New NoABIFound error for cases where there is no ABI
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
- Remove deprecated buildTransaction , call , deploy , estimateGas , and transact methods
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
- Drop already deprecated web3.soliditySha3 - #1217
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
- Replace deprecated web3.sha3 method with web3.keccak method
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
- Remove support for python3.5, drop support for eth-abi v1
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
- Deprecated Web3.soliditySha3 ; use Web3.solidityKeccak instead.
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
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Released November 15, 2018 - Misc - Reduce unneeded memory usage - #1138
Released November 15, 2018
Misc
Reduce unneeded memory usage
- Add timeout for WebsocketProvider
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
Nothing published for this version
- IPC paths starting with ~ are appropriately resolved to the home directory
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
- old pip bug used during release made it impossible for non-windows users to install 4.7.0.
Released September 11th, 2018
Bugfixes
old pip bug used during release made it impossible for non-windows users to install 4.7.0.
- Support for Python 3.7, most notably in WebsocketProvider - #996
Released Aug 24, 2018
Features
Support for Python 3.7, most notably in WebsocketProvider - #996
You can now decode a transaction’s data to its original function call and arguments with: contract.decode_function_input() - #991
Support for IPCProvider in FreeBSD (and more readme docs) - #1008
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
#1006
#1010
- Accept addresses supplied in bytes format (which does not provide checksum validation)
Released July 30, 2018
Features
Accept addresses supplied in bytes format (which does not provide checksum validation)
Improve estimation of gas prices
Bugfixes
Can now use a block number with getCode() when connected to EthereumTesterProvider (without crashing)
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
Released July 30, 2018
Features
Accept addresses supplied in bytes format (which does not provide checksum validation)
Improve estimation of gas prices
Bugfixes
Can now use a block number with ~web3.eth.Eth.getCode when connected to ~web3.providers.eth_tester.EthereumTesterProvider (without crashing)
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
- eth-pm package was renamed (old one deleted) which broke the web3 release. eth-pm was removed from the web3.py install until it’s stable.
Released June 29, 2018
Bugfixes
eth-pm package was renamed (old one deleted) which broke the web3 release. eth-pm was removed from the web3.py install until it’s stable.
Misc
IPCProvider now accepts a pathlib.Path argument for the IPC path
Docs explaining the new custom autoproviders in web3
- Raise deprecation warning on getTransactionFromBlock()
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
Bugfixes
Can now receive large responses in WebsocketProvider by specifying a large max_size in the websocket connection parameters.
Misc
Websockets dependency upgraded to v5
Raise deprecation warning on getTransactionFromBlock()
Fix docs for waitForTransactionReceipt()
Developer Dockerfile now installs testing dependencies
Released June 21, 2018
Features
Add support for https in WEB3_PROVIDER_URI environment variable
Can send websocket connection parameters in ~web3.providers.websocket.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
Bugfixes
Can now receive large responses in ~web3.providers.websocket.WebsocketProvider by specifying a large max_size in the websocket connection parameters.
Misc
Websockets dependency upgraded to v5
Raise deprecation warning on ~web3.eth.Eth.getTransactionFromBlock
Fix docs for ~web3.eth.Eth.waitForTransactionReceipt
Developer Dockerfile now installs testing dependencies
- New name getTransactionByBlock() , which replaces the deprecated getTransactionFromBlock()
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
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
- 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
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
- Cleaned up a lot of test warnings by upgrading from deprecated APIs, especially from the deprecated contract.deploy(txn_dict, args=contract_args) to…
Released Apr 25, 2018
Removed audit warning and opt-in requirement for w3.eth.account . See more in: Accounts
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
- New WebsocketProvider . If you’re looking for better performance than HTTP, check out websockets.
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
Released Apr 2, 2018 - Marked beta.13 as stable - Documentation tweaks
Released Apr 2, 2018
Marked beta.13 as stable
Documentation tweaks
This is intended to be the final release before the stable v4 release.
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
A little hiccup on release. Skipped.
A little hiccup on release. Skipped.
- New methods to modify or replace pending transactions
Released Feb 28, 2018
New methods to modify or replace pending transactions
A compatibility option for connecting to geth --dev – see Proof of Authority
A new web3.net.chainId
Create a filter object from an existing filter ID.
eth-utils v1.0.1 (stable) compatibility
- bugfix: Compatibility with eth-utils v1-beta2 (the incompatibility was causing fresh web3.py installs to fail)
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
- Access event log parameters as attributes
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
- Support for web3.eth.Eth.getLogs() in eth-tester with py-evm
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
- New contract function call API: my_contract.functions.my_func().call() is preferred over the now deprecated my_contract.call().my_func() API.
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
- Improvements to working with eth-tester, using EthereumTesterProvider :
Released Dec 28, 2017
Improvements to working with eth-tester, using EthereumTesterProvider :
Bugfix the key names in event logging
Add support for sendRawTransaction()
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
Released Dec 28, 2017
Improvements to working with eth-tester, using ~web3.providers.eth_tester.EthereumTesterProvider:
Bugfix the key names in event logging
Add support for ~web3.eth.Eth.sendRawTransaction
~web3.providers.ipc.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
- New buildTransaction() method to prepare contract transactions, offline
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.
- Fix encoding of ABI types: bytes[] and string[]
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
- sendRawTransaction() accepts raw bytes
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.
Released Nov 22, 2017
Bug Fixes:
~web3.eth.Eth.sendRawTransaction accepts raw bytes
~web3.eth.Eth.contract accepts an ENS name as contract address
~web3.account.Account.signTransaction returns the expected hash (after signing the transaction)
~web3.account.Account methods can all be called statically, like: Account.sign(...)
~web3.eth.Eth.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.
- A number of deprecated methods from v3 were removed
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: Encoding and Decoding Helpers
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
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: ~web3.utils.filters.Filter.get_all_entries and ~web3.utils.filters.Filter.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: overview_type_conversions
All filter calls are synchronous, gevent integration dropped
Contract ~web3.contract.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
Your coding agent can read these notes before it upgrades. Set up the MCP server →