From c02f3bed8ba3e9bbe649afa134d7ef020efe4e66 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 01/13] feat: replace `web3.py` with `faster-web3.py` --- requirements.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.in b/requirements.in index 03f8143bc2..847e3bc06f 100644 --- a/requirements.in +++ b/requirements.in @@ -8,6 +8,7 @@ eth-typing>=4.2.1,<6 faster-eth-abi faster-eth-utils>=4.1.2 faster-hexbytes>=1.3.2,<2 +faster-web3>=6,<7 hypothesis<6.28.0 lazy-object-proxy>=1.6.0,<2 prompt-toolkit<4 @@ -28,5 +29,4 @@ tqdm<5 ujson vvm==0.2.1 vyper>=0.4.0,<0.5 -web3>=6,<7 wrapt>=1.12.1,<2 From 603901ce76d616eaea4c97bc01cfbf3752c674c4 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 02/13] Update ganache7.py --- brownie/network/middlewares/ganache7.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brownie/network/middlewares/ganache7.py b/brownie/network/middlewares/ganache7.py index 2e7cf4b073..59d56d8bb4 100644 --- a/brownie/network/middlewares/ganache7.py +++ b/brownie/network/middlewares/ganache7.py @@ -1,7 +1,7 @@ from typing import Any, Callable, Dict, List, Optional, Sequence, final -from web3 import Web3 -from web3.types import RPCEndpoint +from faster_web3 import Web3 +from faster_web3.types import RPCEndpoint from brownie.network.middlewares import BrownieMiddlewareABC From cd5c7003673cf2f7182ce25e2f1029d7d5e4f837 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 03/13] Update web3.py --- brownie/network/web3.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/brownie/network/web3.py b/brownie/network/web3.py index 3d37ebb3d1..96f552643d 100644 --- a/brownie/network/web3.py +++ b/brownie/network/web3.py @@ -7,14 +7,14 @@ from ens import ENS from eth_typing import ChecksumAddress, HexStr +from faster_web3 import HTTPProvider, IPCProvider +from faster_web3 import Web3 as _Web3 +from faster_web3 import WebsocketProvider +from faster_web3.contract.contract import ContractEvent # noqa +from faster_web3.contract.contract import ContractEvents as _ContractEvents # noqa +from faster_web3.gas_strategies.rpc import rpc_gas_price_strategy from requests import HTTPError from ujson import JSONDecodeError -from web3 import HTTPProvider, IPCProvider -from web3 import Web3 as _Web3 -from web3 import WebsocketProvider -from web3.contract.contract import ContractEvent # noqa -from web3.contract.contract import ContractEvents as _ContractEvents # noqa -from web3.gas_strategies.rpc import rpc_gas_price_strategy from brownie._c_constants import ujson_dump, ujson_load from brownie._config import CONFIG, _get_data_folder From 93e24b8efeb80bcb4e90346155267759d56451e1 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 04/13] Update contract.py --- brownie/network/contract.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/brownie/network/contract.py b/brownie/network/contract.py index e05b948441..e0b9d7b6fb 100644 --- a/brownie/network/contract.py +++ b/brownie/network/contract.py @@ -30,11 +30,11 @@ from faster_eth_abi import decode as decode_abi from faster_eth_abi import encode as encode_abi from faster_eth_utils import combomethod +from faster_web3._utils import filters +from faster_web3.datastructures import AttributeDict +from faster_web3.types import LogReceipt from vvm import get_installable_vyper_versions from vvm.utils.convert import to_vyper_version -from web3._utils import filters -from web3.datastructures import AttributeDict -from web3.types import LogReceipt from brownie._c_constants import ( HexBytes, From f2cf5c64db8cf5239a5e8d9ad7e7d0e1643c2280 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 05/13] Update hardhat.py --- brownie/network/middlewares/hardhat.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brownie/network/middlewares/hardhat.py b/brownie/network/middlewares/hardhat.py index 69903146dd..a08955cf47 100644 --- a/brownie/network/middlewares/hardhat.py +++ b/brownie/network/middlewares/hardhat.py @@ -1,7 +1,7 @@ from typing import Any, Callable, Dict, List, Optional, Sequence, final -from web3 import Web3 -from web3.types import RPCEndpoint +from faster_web3 import Web3 +from faster_web3.types import RPCEndpoint from brownie._c_constants import regex_findall from brownie.network.middlewares import BrownieMiddlewareABC From 0badcf3a286df6f243f174ed5f3f421b3d42ab2f Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 06/13] Update __init__.py --- brownie/network/middlewares/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brownie/network/middlewares/__init__.py b/brownie/network/middlewares/__init__.py index fc1f324d1a..0c36b60c54 100644 --- a/brownie/network/middlewares/__init__.py +++ b/brownie/network/middlewares/__init__.py @@ -2,8 +2,8 @@ from abc import ABC, abstractmethod from typing import Any, Callable, Dict, Final, List, Optional, Sequence, Type -from web3 import Web3 -from web3.types import RPCEndpoint +from faster_web3 import Web3 +from faster_web3.types import RPCEndpoint partial: Final = functools.partial From d7f51bfc99d9237abf38593423e8e356dbef4c45 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 07/13] Update catch_tx_revert.py --- brownie/network/middlewares/catch_tx_revert.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brownie/network/middlewares/catch_tx_revert.py b/brownie/network/middlewares/catch_tx_revert.py index b2091954d6..6524453ba1 100644 --- a/brownie/network/middlewares/catch_tx_revert.py +++ b/brownie/network/middlewares/catch_tx_revert.py @@ -1,7 +1,7 @@ from typing import Any, Callable, Dict, Optional, Sequence, final -from web3 import Web3 -from web3.types import RPCEndpoint +from faster_web3 import Web3 +from faster_web3.types import RPCEndpoint from brownie.network.middlewares import BrownieMiddlewareABC From 417572260d372b7860948db17827877f888d35c9 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 08/13] Update geth_poa.py --- brownie/network/middlewares/geth_poa.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/brownie/network/middlewares/geth_poa.py b/brownie/network/middlewares/geth_poa.py index 335058563d..0a4715c8d2 100644 --- a/brownie/network/middlewares/geth_poa.py +++ b/brownie/network/middlewares/geth_poa.py @@ -1,9 +1,9 @@ from typing import Any, Callable, Dict, List, Optional, Sequence, final -from web3 import Web3 -from web3.exceptions import ExtraDataLengthError -from web3.middleware import geth_poa_middleware -from web3.types import RPCEndpoint +from faster_web3 import Web3 +from faster_web3.exceptions import ExtraDataLengthError +from faster_web3.middleware import geth_poa_middleware +from faster_web3.types import RPCEndpoint from brownie.network.middlewares import BrownieMiddlewareABC From 358f3251dd69d24e213f6a2ddf88ba682fe502a8 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 09/13] Update event.py --- brownie/network/event.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brownie/network/event.py b/brownie/network/event.py index ef05d543b6..5554226a42 100644 --- a/brownie/network/event.py +++ b/brownie/network/event.py @@ -31,9 +31,9 @@ from eth_event import EventError from eth_event.main import _TraceStep, DecodedEvent, NonDecodedEvent, TopicMapData from eth_typing import ABIElement, AnyAddress, ChecksumAddress, HexStr +from faster_web3._utils import filters +from faster_web3.datastructures import AttributeDict from ujson import JSONDecodeError -from web3._utils import filters -from web3.datastructures import AttributeDict from brownie._c_constants import ujson_dump, ujson_load from brownie._config import _get_data_folder From bb199a4db91eec7594060942cd89195fe2f7489f Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 10/13] Update test_event.py --- tests/network/test_event.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/network/test_event.py b/tests/network/test_event.py index cdbe302800..a0b0817325 100644 --- a/tests/network/test_event.py +++ b/tests/network/test_event.py @@ -4,8 +4,8 @@ import time import pytest -from web3.datastructures import AttributeDict -from web3.exceptions import ABIEventFunctionNotFound +from faster_web3.datastructures import AttributeDict +from faster_web3.exceptions import ABIEventFunctionNotFound from brownie import Contract, compile_source from brownie.exceptions import EventLookupError From 263c3d897ce147066224eb7ffb30940128c422e4 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 11/13] Update test_get_transaction.py --- tests/network/state/test_get_transaction.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/network/state/test_get_transaction.py b/tests/network/state/test_get_transaction.py index 34bb01efec..9a9bb35f93 100644 --- a/tests/network/state/test_get_transaction.py +++ b/tests/network/state/test_get_transaction.py @@ -1,6 +1,6 @@ import pytest from eth_retry import auto_retry -from web3.exceptions import TransactionNotFound +from faster_web3.exceptions import TransactionNotFound @auto_retry From 475ae53e739181be6c04b34b1030d8bb091e8807 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 12/13] Update caching.py --- brownie/network/middlewares/caching.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/brownie/network/middlewares/caching.py b/brownie/network/middlewares/caching.py index 6052c9a951..45309ff1d1 100644 --- a/brownie/network/middlewares/caching.py +++ b/brownie/network/middlewares/caching.py @@ -4,8 +4,8 @@ from collections import OrderedDict from typing import Any, Callable, Dict, Final, List, Optional, Sequence, final -from web3 import Web3 -from web3.types import LogReceipt, RPCEndpoint +from faster_web3 import Web3 +from faster_web3.types import LogReceipt, RPCEndpoint from brownie._c_constants import HexBytes, ujson_dumps from brownie._config import CONFIG, _get_data_folder From 3469fd7946fc34c010a293bc0373840cf8546496 Mon Sep 17 00:00:00 2001 From: BobTheBuidler <70677534+BobTheBuidler@users.noreply.github.com> Date: Fri, 10 Oct 2025 19:59:09 +0000 Subject: [PATCH 13/13] Update web3.py --- brownie/network/web3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brownie/network/web3.py b/brownie/network/web3.py index 96f552643d..b7f5fa8406 100644 --- a/brownie/network/web3.py +++ b/brownie/network/web3.py @@ -5,8 +5,8 @@ from pathlib import Path from typing import Dict, Optional, Set -from ens import ENS from eth_typing import ChecksumAddress, HexStr +from faster_ens import ENS from faster_web3 import HTTPProvider, IPCProvider from faster_web3 import Web3 as _Web3 from faster_web3 import WebsocketProvider