Changelog¶
0.10.0 (2025-10-19)¶
Changed¶
compile_contract_fileandEVMVersionmoved tocompilersubmodule;LocalProvidermoved tolocal_providersubmodule;HTTPProviderServermoved tohttp_provider_serversubmodule. (PR_89)
0.9.0 (2025-10-18)¶
Changed¶
JSONremoved from the public API, instead we have a more specificABI_JSON. (PR_82)Renamed
id_fields ofBlockFilter,PendingTransactionFilter, andLogFilterto justid. (PR_82)Split out
http-provider-serverfeature fromlocal-provider. (PR_82)RemoteErrorremoved. (PR_82)The internal structure of
BlockFilter,LogFilter, andPendingTransactionFilteris now undocumented. (PR_87)The path returned by
Provider.rpc_and_pin()is now aProviderPathobject. (PR_87)ProviderErrorremoved,ethereum_rpc.RPCErroris used instead. (PR_88)
Added¶
Hash methods for ABI types. (PR_81)
A base class for bound calls (
BaseBoundMethodCall). (PR_84)A helper class for interacting with the Multicall contract (
Multicall). (PR_84)Exporting
HTTPErrorandBadResponseFormat. (PR_82)Exporting
InvalidResponse. (PR_86)LocalProvider.rootis now of typeAccountSignerinstead ofSigner. (PR_86)FallbackProvidernow records encountered errors, and they can be accessed via theerrors()method. (PR_87)BlockFilter,LogFilter, andPendingTransactionFilterare exported from the top level. (PR_87)EVMVersion.PRAGUE. (PR_88)
0.8.1 (2024-11-12)¶
Added¶
0.8.0 (2024-05-28)¶
Changed¶
Added an explicit
typing_extensionsdependency. (PR_57)Various boolean arguments are now keyword-only to prevent usage errors. (PR_57)
Field names clashing with Python built-ins (
hash,type,id) are suffixed with an underscore. (PR_57)AccountSignertakesLocalSignerspecifically and not just anyBaseSigner. (PR_62)ClientSession.estimate_transact()andestimate_deploy()now require asender_addressparameter. (PR_62)Switched to
alysisfrometh-testerfor the backend ofLocalProvider. (PR_70)Bumped the minimum Python version to 3.10. (PR_72)
The entities are now dataclasses instead of namedtuples. (PR_75)
Bumped
eth-accountto0.13. (PR_76)Use the types from
ethereum-rpc. (PR_77)
Added¶
Client.transact()takes an optionalreturn_eventsargument, allowing one to get “return values” from the transaction via events. (PR_52)Exposed
ClientSession,ConstructorCall,MethodCall,EventFilter,BoundConstructor,BoundConstructorCall,BoundMethod,BoundMethodCall,BoundEvent,BoundEventFilterfrom the top level. (PR_56)Various methods that had a default
Amount(0)for a parameter can now takeNone. (PR_57)Support for overloaded methods via
MultiMethod. (PR_59)Expose
HTTPProviderServer,LocalProvider,compile_contract_filethat can be used for tests of Ethereum-using applications. These are gated behind optional features. (PR_54)LocalProvider.take_snapshot()andrevert_to_snapshot(). (PR_61)AccountSigner.private_keyproperty. (PR_62)LocalProvider.add_account()method. (PR_62)An optional
sender_addressparameter ofClientSession.eth_call(). (PR_62)Expose
Providerat the top level. (PR_63)eth_getCodesupport (asClientSession.eth_get_code()). (PR_64)eth_getStorageAtsupport (asClientSession.eth_get_storage_at()). (PR_64)Support for the
logsfield inTxReceipt. (PR_68)ClientSession.eth_get_logs()andeth_get_filter_logs(). (PR_68)Support for a custom block number in gas estimation methods. (PR_70)
LocalProvideraccepts anevm_versionparameter. (PR_78)
Fixed¶
Process unnamed arguments in JSON entries correctly (as positional arguments). (PR_51)
More robust error handling in HTTP provider. (PR_63)
The transaction tip being set larger than the max gas price (which some providers don’t like). (PR_64)
Decoding error when fetching pending transactions. (PR_65)
Decoding error when fetching pending blocks. (PR_67)
Get the default nonce based on the pending block, not the latest one. (PR_68)
Using
eth_getLogsinstead of creating a filter intransact(). (PR_70)Expect the block number to be non-null even for pending blocks, since that’s what providers return. (PR_70)
0.7.0 (09-07-2023)¶
Changed¶
ReadMethodandWriteMethodwere merged intoMethod(with the corresponding merge ofContractABIrouting objects and various bound calls). (PR_50)
Added¶
0.6.0 (11-05-2023)¶
Changed¶
Parameter names and fields coinciding with Python keywords have
_appended to them on the creation of ABI objects. (PR_47)
Added¶
Added support for Python 3.11. (PR_47)
Fixed¶
Support the existence of outputs in the JSON ABI of a mutating method. (PR_47)
0.5.1 (14-11-2022)¶
Fixed¶
A bug in processing keyword arguments to contract calls. (PR_42)
0.5.0 (14-09-2022)¶
Changed¶
Bumped dependencies:
eth-account>=0.6,eth-utils>=2,eth-abi>=3. (PR_40)
Fixed¶
Return type of classmethods of
AmountandAddressnow provides correct information tomypyin dependent projects. (PR_37)
0.4.2 (05-06-2022)¶
Added¶
__repr__/__eq__/__hash__implementations for multiple entities. (PR_32)eth_get_transaction_by_hash(),eth_block_number(),eth_get_block_by_hash(),eth_get_block_by_number()and corresponding entities. (PR_32)eth_new_block_filter(),eth_new_pending_transaction_filter(),eth_new_filter(),eth_get_filter_changes()for low-level event filtering support. (PR_32)iter_blocks(),iter_pending_transactions(),iter_events()for high-level event filtering support. (PR_32)More fields in
TxReceipt. (PR_32)Errorclass for Contract ABI, and support oftype="error"declarations in JSON ABI. (PR_33)Error data parsing and matching it with known errors from the ABI when calling
estimate_transact()andestimate_deploy(). (PR_33)
Fixed¶
Removed
TxReceiptexport (making an exception here and not counting it as a breaking change, since nobody would have any use for creating one manually). (PR_32)
0.4.1 (01-05-2022)¶
Added¶
0.4.0 (23-04-2022)¶
Changed¶
Added¶
Allowed one to declare ABI via Python calls instead of JSON. (PR_4)
Support for binding of contract arguments to named parameters. (PR_4)
An
abi.struct()function to create struct types in contract definitions. (PR_5)Hashing, more comparisons and arithmetic functions for
Amount. (PR_5)Hashing and equality for
TxHash. (PR_5)An empty nonpayable constructor is created for a contract if none is specified. (PR_5)
RemoteErrorandUnreachableexception types to report errors from client sessions in a standardized way. (PR_5)
0.3.0 (03-04-2022)¶
Changed¶
Fixed¶
0.2.0 (19-03-2022)¶
Initial release.